@flatbiz/antd 4.2.62 → 4.2.63

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 (34) hide show
  1. package/esm/button-operate/index.js +1 -1
  2. package/esm/{button-operate-d3b2e543.js → button-operate-d00df6c9.js} +2 -2
  3. package/esm/{button-operate-d3b2e543.js.map → button-operate-d00df6c9.js.map} +1 -1
  4. package/esm/{cell-render-0b27a14b.js → cell-render-4934a7de.js} +2 -2
  5. package/esm/{cell-render-0b27a14b.js.map → cell-render-4934a7de.js.map} +1 -1
  6. package/esm/create-drawer-wrapper-model/index.js.map +1 -1
  7. package/esm/create-modal-wrapper-model/index.js.map +1 -1
  8. package/esm/dropdown-menu-wrapper/index.js +1 -1
  9. package/esm/{dropdown-menu-wrapper-2b4fc43d.js → dropdown-menu-wrapper-3a565fd8.js} +2 -2
  10. package/esm/dropdown-menu-wrapper-3a565fd8.js.map +1 -0
  11. package/esm/easy-table/index.js +1 -1
  12. package/esm/easy-table/index.js.map +1 -1
  13. package/esm/editable-table/index.js +1 -1
  14. package/esm/{editable-table-c17d96ed.js → editable-table-db8a14a4.js} +2 -2
  15. package/esm/{editable-table-c17d96ed.js.map → editable-table-db8a14a4.js.map} +1 -1
  16. package/esm/index.js +1 -1
  17. package/esm/input-wrapper/index.js +1 -1
  18. package/esm/input-wrapper-43f801ff.js +3 -0
  19. package/esm/input-wrapper-43f801ff.js.map +1 -0
  20. package/esm/pagination-0e66a3b5.js.map +1 -1
  21. package/esm/rich-text-editor/index.js +1 -1
  22. package/esm/{rich-text-editor-c8bac6d2.js → rich-text-editor-213daa34.js} +2 -2
  23. package/esm/rich-text-editor-213daa34.js.map +1 -0
  24. package/esm/rich-text-viewer/index.js +1 -1
  25. package/esm/{rich-text-viewer-239491ee.js → rich-text-viewer-4a859351.js} +2 -2
  26. package/esm/{rich-text-viewer-239491ee.js.map → rich-text-viewer-4a859351.js.map} +1 -1
  27. package/esm/table-cell-render/index.js +1 -1
  28. package/esm/tree-wrapper/index.js +1 -1
  29. package/index.d.ts +10 -15
  30. package/package.json +1 -1
  31. package/esm/dropdown-menu-wrapper-2b4fc43d.js.map +0 -1
  32. package/esm/input-wrapper-b378eb5a.js +0 -3
  33. package/esm/input-wrapper-b378eb5a.js.map +0 -1
  34. package/esm/rich-text-editor-c8bac6d2.js.map +0 -1
@@ -9,5 +9,5 @@ import './../dialog-modal/index.css';
9
9
  import './../flex-layout/index.css';
10
10
  import './index.css';
11
11
  /*! @flatjs/forge MIT @flatbiz/antd */
12
- export{a as ButtonOperate,B as ButtonOperateItemContent}from"../button-operate-d3b2e543.js";import"@ant-design/icons/es/icons/MoreOutlined";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"antd";import"react";import"../button-wrapper-125fce50.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@flatbiz/utils";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";import"../fba-utils-f9e11d02.js";import"../dropdown-menu-wrapper-2b4fc43d.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm-74fc9337.js";import"../dialog-modal-4a0c72c5.js";import"ahooks";import"react-dom/client";import"../flex-layout-8d2b668b.js";
12
+ export{a as ButtonOperate,B as ButtonOperateItemContent}from"../button-operate-d00df6c9.js";import"@ant-design/icons/es/icons/MoreOutlined";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"antd";import"react";import"../button-wrapper-125fce50.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@flatbiz/utils";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";import"../fba-utils-f9e11d02.js";import"../dropdown-menu-wrapper-3a565fd8.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm-74fc9337.js";import"../dialog-modal-4a0c72c5.js";import"ahooks";import"react-dom/client";import"../flex-layout-8d2b668b.js";
13
13
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
1
  /*! @flatjs/forge MIT @flatbiz/antd */
2
- import r from"@ant-design/icons/es/icons/MoreOutlined";import{a as e,_ as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isUndefined as t}from"@dimjs/lang/cjs/is-undefined";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{isPlainObject as o}from"@dimjs/lang/cjs/is-plain-object";import{isString as s}from"@dimjs/lang/cjs/is-string";import{isPromise as p}from"@dimjs/lang/cjs/is-promise";import{hooks as a}from"@wove/react/cjs/hooks";import{Popover as l,Tooltip as c,Space as f,Divider as u,Popconfirm as d,Button as m}from"antd";import{isValidElement as v,Fragment as h,useState as g,useMemo as T,createElement as y}from"react";import{B as j}from"./button-wrapper-125fce50.js";import{D as k}from"./dropdown-menu-wrapper-2b4fc43d.js";import{f as C}from"./fba-utils-f9e11d02.js";import{jsx as P,jsxs as b}from"react/jsx-runtime";var w=["text","onClick","needConfirm","confirmMessage","popconfirmProps","hoverTips"];var x=function r(e){if(e.hoverTips){if(e.tipsType==="popover"){return P(l,{content:e.hoverTips,zIndex:1e3,children:P("span",{children:e.content})})}return P(c,{title:e.hoverTips,zIndex:1e3,children:P("span",{children:e.content})})}if(v(e.content)){return P(h,{children:e.content})}return P("span",{children:e.content})};var B=function l(c){var h=g(false),B=h[0],I=h[1];var M=a.useCallbackRef((function(r,e){var n=r.onClick==null?void 0:r.onClick(e);if(n&&p(n)){I(true);return n.finally((function(){I(false)}))}return}));var z=c.operateList.filter((function(r){if(!r)return false;if(v(r)){var e,n;if(((e=r.props)==null?void 0:e["hidden"])===true)return false;var t=(n=r.props)==null?void 0:n["v-permission"];if(s(t)){return C.hasPermission(t)}return true}if(o(r)){if(!C.hasPermission(r["permission"])){return false}return!r["hidden"]}return false}));var F=T((function(){return z.filter((function(r){if(v(r)){return true}return!r["isFold"]}))}),[z]);var N=T((function(){var r=z.filter((function(r){if(v(r)){return false}return r["isFold"]}));var n=[];r.forEach((function(r){var t=e({},r);delete t.isFold;n.push(t)}));return n}),[z]);var O=c.gap===undefined?10:c.gap;var H=!c.split?O:0;return P("div",{className:i("table-operate",c.className),style:c.style,children:b(f,e({split:c.split?P(u,{type:"vertical"}):null,size:H,wrap:t(c.wrap)?true:c.wrap},c.spaceProps,{children:[F.map((function(r,t){if(r&&v(r)){return P(x,{content:r,hoverTips:r.hoverTips,tipsType:r.tipsType},t)}var i=r.text,o=r.onClick,s=r.needConfirm,p=r.confirmMessage,a=r.popconfirmProps,l=r.hoverTips,c=n(r,w);var f=r.type||"link";if(s&&!c.disabled){var u=!!r.color?false:true;return y(d,e({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},a,{title:p,onConfirm:M.bind(null,r),key:t,okButtonProps:{loading:B},onOpenChange:function r(e){if(!e){I(false)}},onCancel:function r(e){e==null?void 0:e.stopPropagation()}}),P(j,e({danger:u},c,{onClick:function r(e){e.stopPropagation()},type:f,children:P(x,{content:i,hoverTips:l,tipsType:r.tipsType},t)})))}return y(j,e({loadingPosition:"center"},c,{type:f,onClick:function r(e){e.stopPropagation();return o==null?void 0:o(e)},key:t}),P(x,{content:i,hoverTips:l,tipsType:r.tipsType}))})),N.length>0?P(k,e({menuList:N,placement:"bottomCenter"},c.dropdownMenuProps,{children:P(m,{type:"link",className:"fold-more-button",onClick:function r(e){e.stopPropagation()},children:c.foldIcon?c.foldIcon:P(r,{})})})):null]}))})};B.defaultProps={split:true};export{x as B,B as a};
3
- //# sourceMappingURL=button-operate-d3b2e543.js.map
2
+ import r from"@ant-design/icons/es/icons/MoreOutlined";import{a as e,_ as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isUndefined as t}from"@dimjs/lang/cjs/is-undefined";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{isPlainObject as o}from"@dimjs/lang/cjs/is-plain-object";import{isString as s}from"@dimjs/lang/cjs/is-string";import{isPromise as p}from"@dimjs/lang/cjs/is-promise";import{hooks as a}from"@wove/react/cjs/hooks";import{Popover as l,Tooltip as c,Space as f,Divider as u,Popconfirm as d,Button as m}from"antd";import{isValidElement as v,Fragment as h,useState as g,useMemo as T,createElement as y}from"react";import{B as j}from"./button-wrapper-125fce50.js";import{D as k}from"./dropdown-menu-wrapper-3a565fd8.js";import{f as C}from"./fba-utils-f9e11d02.js";import{jsx as P,jsxs as b}from"react/jsx-runtime";var w=["text","onClick","needConfirm","confirmMessage","popconfirmProps","hoverTips"];var x=function r(e){if(e.hoverTips){if(e.tipsType==="popover"){return P(l,{content:e.hoverTips,zIndex:1e3,children:P("span",{children:e.content})})}return P(c,{title:e.hoverTips,zIndex:1e3,children:P("span",{children:e.content})})}if(v(e.content)){return P(h,{children:e.content})}return P("span",{children:e.content})};var B=function l(c){var h=g(false),B=h[0],I=h[1];var M=a.useCallbackRef((function(r,e){var n=r.onClick==null?void 0:r.onClick(e);if(n&&p(n)){I(true);return n.finally((function(){I(false)}))}return}));var z=c.operateList.filter((function(r){if(!r)return false;if(v(r)){var e,n;if(((e=r.props)==null?void 0:e["hidden"])===true)return false;var t=(n=r.props)==null?void 0:n["v-permission"];if(s(t)){return C.hasPermission(t)}return true}if(o(r)){if(!C.hasPermission(r["permission"])){return false}return!r["hidden"]}return false}));var F=T((function(){return z.filter((function(r){if(v(r)){return true}return!r["isFold"]}))}),[z]);var N=T((function(){var r=z.filter((function(r){if(v(r)){return false}return r["isFold"]}));var n=[];r.forEach((function(r){var t=e({},r);delete t.isFold;n.push(t)}));return n}),[z]);var O=c.gap===undefined?10:c.gap;var H=!c.split?O:0;return P("div",{className:i("table-operate",c.className),style:c.style,children:b(f,e({split:c.split?P(u,{type:"vertical"}):null,size:H,wrap:t(c.wrap)?true:c.wrap},c.spaceProps,{children:[F.map((function(r,t){if(r&&v(r)){return P(x,{content:r,hoverTips:r.hoverTips,tipsType:r.tipsType},t)}var i=r.text,o=r.onClick,s=r.needConfirm,p=r.confirmMessage,a=r.popconfirmProps,l=r.hoverTips,c=n(r,w);var f=r.type||"link";if(s&&!c.disabled){var u=!!r.color?false:true;return y(d,e({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},a,{title:p,onConfirm:M.bind(null,r),key:t,okButtonProps:{loading:B},onOpenChange:function r(e){if(!e){I(false)}},onCancel:function r(e){e==null?void 0:e.stopPropagation()}}),P(j,e({danger:u},c,{onClick:function r(e){e.stopPropagation()},type:f,children:P(x,{content:i,hoverTips:l,tipsType:r.tipsType},t)})))}return y(j,e({loadingPosition:"center"},c,{type:f,onClick:function r(e){e.stopPropagation();return o==null?void 0:o(e)},key:t}),P(x,{content:i,hoverTips:l,tipsType:r.tipsType}))})),N.length>0?P(k,e({menuList:N,placement:"bottomCenter"},c.dropdownMenuProps,{children:P(m,{type:"link",className:"fold-more-button",onClick:function r(e){e.stopPropagation()},children:c.foldIcon?c.foldIcon:P(r,{})})})):null]}))})};B.defaultProps={split:true};export{x as B,B as a};
3
+ //# sourceMappingURL=button-operate-d00df6c9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button-operate-d3b2e543.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Divider, Popconfirm, PopconfirmProps, Popover, Space, SpaceProps, Tooltip } from 'antd';\nimport {\n CSSProperties,\n FC,\n Fragment,\n isValidElement,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { DropdownMenuWrapper, DropdownMenuWrapperProps } from '../dropdown-menu-wrapper';\nimport { fbaUtils } from '../fba-utils';\n\nimport { DialogModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n hidden?: boolean;\n /** hover 提示文字,isFold=true无效 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n /** 是否需要二次弹框确认 */\n needConfirm?: boolean;\n /** 二次弹框确认文案 */\n confirmMessage?: string;\n /* isFold=false & needConfirm=true 有效 */\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n /** 是否折叠合拢 */\n isFold?: boolean;\n /* isFold=true & needConfirm=true 有效 */\n confirmModalProps?: DialogModalProps;\n}\n\nexport interface ButtonOperateProps {\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n wrap?: boolean;\n foldIcon?: ReactElement;\n className?: string;\n split?: boolean;\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n style?: CSSProperties;\n /** 折叠合拢属性 */\n dropdownMenuProps?: Omit<DropdownMenuWrapperProps, 'menuList'>;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & { content: ReactNode },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Tooltip>\n );\n }\n if (isValidElement(props.content)) {\n return <Fragment>{props.content}</Fragment>;\n }\n // ButtonOperate item 内部 span 包文案会有动态效果\n return <span>{props.content}</span>;\n};\n\n/**\n * 按钮组合处理组件\n * ```\n * @flatbiz/antd@4.2.49\n * 1. 替换 Fold 中 needConfirm交互,有 Popconfirm 改为 dialogConfirm组件实现二次弹框确认功能\n * 2. 修改原因:升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框组合使用存在问题\n * ```\n */\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item['permission'])) {\n return false;\n }\n return !item['hidden'];\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item['isFold'];\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item['isFold'];\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const gap = props.gap === undefined ? 10 : props.gap;\n const size = !props.split ? gap : 0;\n\n return (\n <div className={classNames('table-operate', props.className)} style={props.style}>\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent\n content={item}\n hoverTips={item.hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n );\n }\n const { text, onClick, needConfirm, confirmMessage, popconfirmProps, hoverTips, ...otherProps } =\n item;\n const type = item.type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = !!item.color ? false : true;\n return (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n onCancel={(event) => {\n event?.stopPropagation();\n }}\n >\n <ButtonWrapper\n danger={danger}\n {...otherProps}\n onClick={(event) => {\n event.stopPropagation();\n }}\n type={type}\n >\n <ButtonOperateItemContent\n content={text}\n hoverTips={hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n </ButtonWrapper>\n </Popconfirm>\n );\n }\n return (\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={type}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n key={index}\n >\n <ButtonOperateItemContent content={text} hoverTips={hoverTips} tipsType={item.tipsType} />\n </ButtonWrapper>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList} placement=\"bottomCenter\" {...props.dropdownMenuProps}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Tooltip","title","isValidElement","Fragment","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","_item$props","_item$props2","permission","_isString","fbaUtils","hasPermission","_isPlainObject","viewList","useMemo","foldList","filterList","forEach","target","_extends","isFold","push","gap","undefined","size","split","className","_classNames","style","_jsxs","Space","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","otherProps","_objectWithoutPropertiesLoose","_excluded","disabled","danger","color","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","onCancel","stopPropagation","ButtonWrapper","loadingPosition","length","DropdownMenuWrapper","menuList","dropdownMenuProps","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"button-operate-d00df6c9.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Divider, Popconfirm, PopconfirmProps, Popover, Space, SpaceProps, Tooltip } from 'antd';\nimport {\n CSSProperties,\n FC,\n Fragment,\n isValidElement,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { DropdownMenuWrapper, DropdownMenuWrapperProps } from '../dropdown-menu-wrapper';\nimport { fbaUtils } from '../fba-utils';\n\nimport { DialogModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n hidden?: boolean;\n /** hover 提示文字,isFold=true无效 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n /** 是否需要二次弹框确认 */\n needConfirm?: boolean;\n /** 二次弹框确认文案 */\n confirmMessage?: string;\n /* isFold=false & needConfirm=true 有效 */\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n /** 是否折叠合拢 */\n isFold?: boolean;\n /* isFold=true & needConfirm=true 有效 */\n confirmModalProps?: DialogModalProps;\n}\n\nexport interface ButtonOperateProps {\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n wrap?: boolean;\n foldIcon?: ReactElement;\n className?: string;\n split?: boolean;\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n style?: CSSProperties;\n /** 折叠合拢属性 */\n dropdownMenuProps?: Omit<DropdownMenuWrapperProps, 'menuList'>;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & { content: ReactNode },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Tooltip>\n );\n }\n if (isValidElement(props.content)) {\n return <Fragment>{props.content}</Fragment>;\n }\n // ButtonOperate item 内部 span 包文案会有动态效果\n return <span>{props.content}</span>;\n};\n\n/**\n * 按钮组合处理组件\n * ```\n * @flatbiz/antd@4.2.49\n * 1. 替换 Fold 中 needConfirm交互,有 Popconfirm 改为 dialogConfirm组件实现二次弹框确认功能\n * 2. 修改原因:升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框组合使用存在问题\n * ```\n */\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item['permission'])) {\n return false;\n }\n return !item['hidden'];\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item['isFold'];\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item['isFold'];\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const gap = props.gap === undefined ? 10 : props.gap;\n const size = !props.split ? gap : 0;\n\n return (\n <div className={classNames('table-operate', props.className)} style={props.style}>\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent\n content={item}\n hoverTips={item.hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n );\n }\n const { text, onClick, needConfirm, confirmMessage, popconfirmProps, hoverTips, ...otherProps } =\n item;\n const type = item.type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = !!item.color ? false : true;\n return (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n onCancel={(event) => {\n event?.stopPropagation();\n }}\n >\n <ButtonWrapper\n danger={danger}\n {...otherProps}\n onClick={(event) => {\n event.stopPropagation();\n }}\n type={type}\n >\n <ButtonOperateItemContent\n content={text}\n hoverTips={hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n </ButtonWrapper>\n </Popconfirm>\n );\n }\n return (\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={type}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n key={index}\n >\n <ButtonOperateItemContent content={text} hoverTips={hoverTips} tipsType={item.tipsType} />\n </ButtonWrapper>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList} placement=\"bottomCenter\" {...props.dropdownMenuProps}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Tooltip","title","isValidElement","Fragment","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","_item$props","_item$props2","permission","_isString","fbaUtils","hasPermission","_isPlainObject","viewList","useMemo","foldList","filterList","forEach","target","_extends","isFold","push","gap","undefined","size","split","className","_classNames","style","_jsxs","Space","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","otherProps","_objectWithoutPropertiesLoose","_excluded","disabled","danger","color","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","onCancel","stopPropagation","ButtonWrapper","loadingPosition","length","DropdownMenuWrapper","menuList","dropdownMenuProps","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as t}from"@dimjs/lang/cjs/is-object";import{get as e}from"@dimjs/utils/cjs/get";import{isPlainObject as n}from"@dimjs/lang/cjs/is-plain-object";import{a as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isNumber as o}from"@dimjs/lang/cjs/is-number";import{isEmpty as a}from"@dimjs/lang/cjs/is-empty";import{isUndefinedOrNull as u,getStrByteLen as l,cutString as f,flatbizDate as c}from"@flatbiz/utils";import{Tooltip as s,Space as m}from"antd";import{Fragment as p}from"react";import{a as v}from"./button-operate-d3b2e543.js";import{T as d}from"./tag-list-select-066f682f.js";import{jsx as j}from"react/jsx-runtime";var h=function r(t,e){return function(r){if(a(r)||r==="")return e;if(o(r))return r;var n=r.toString();var i=u(t)?10:t;var c=l(n);if(c<=i*2){return n}return j(s,{placement:"topLeft",title:n,children:f(n,i*2)})}};var g=function r(t){return function(r,e,n){var o=t(e,n);return j(v,i({},o))}};var x=function r(t,e){return function(r){if(a(r)||r==="")return e;try{return c.format(new Date(r),t)}catch(t){return r||e}}};var C=function r(t,e){return function(r,n,i){if(e&&t){return(t-1)*e+i+1}return i+1}};var b=function r(t){return function(r,e,n){var i=(t==null?void 0:t())||{},o=i.pageNo,a=i.pageSize;if(a&&o){return(o-1)*a+n+1}return n+1}};var w=function r(t,e){return function(r){return j(d,{dataList:t,colorMap:e,value:r,forceMatch:false})}};var k=function r(i,o){return function(r){if(n(r)){var a=e(r,i,o);if(!a)return"";if(t(a))return JSON.stringify(a);return a}return r||o}};var N=function t(e){return function(t,n){var i=e==null?void 0:e(n);if(!i)return j(p,{children:t});var o=u(i.showData)?true:i.showData;var a=u(i.notOverflowShowExtra)?true:i.notOverflowShowExtra;var l=u(i.showMaxNumber)?10:i.showMaxNumber;var c=i.extraPosition?i.extraPosition:"after";var s=r(t)?f(t,l*2):t;if(i.extra&&o){if(s===t&&!a){return t}var v=[j("span",{children:s},"1"),j(p,{children:i.extra},"2")];var d=c==="before"?v.reverse():v;return j(m,{onClick:i.onClick,style:{cursor:i.onClick?"pointer":undefined},size:5,children:d.map((function(r,t){return j(p,{children:r},t)}))})}return j("span",{onClick:i.onClick,children:i.extra})}};var S={extraContentRender:N,indexCell:C,serialNumberCell:b,dateCell:x,operateCell:g,tooltipCell:h,selectorCell:w,objectCell:k};export{S as t};
3
- //# sourceMappingURL=cell-render-0b27a14b.js.map
2
+ import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as t}from"@dimjs/lang/cjs/is-object";import{get as e}from"@dimjs/utils/cjs/get";import{isPlainObject as n}from"@dimjs/lang/cjs/is-plain-object";import{a as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isNumber as o}from"@dimjs/lang/cjs/is-number";import{isEmpty as a}from"@dimjs/lang/cjs/is-empty";import{isUndefinedOrNull as u,getStrByteLen as l,cutString as f,flatbizDate as c}from"@flatbiz/utils";import{Tooltip as s,Space as m}from"antd";import{Fragment as p}from"react";import{a as v}from"./button-operate-d00df6c9.js";import{T as d}from"./tag-list-select-066f682f.js";import{jsx as j}from"react/jsx-runtime";var h=function r(t,e){return function(r){if(a(r)||r==="")return e;if(o(r))return r;var n=r.toString();var i=u(t)?10:t;var c=l(n);if(c<=i*2){return n}return j(s,{placement:"topLeft",title:n,children:f(n,i*2)})}};var g=function r(t){return function(r,e,n){var o=t(e,n);return j(v,i({},o))}};var x=function r(t,e){return function(r){if(a(r)||r==="")return e;try{return c.format(new Date(r),t)}catch(t){return r||e}}};var C=function r(t,e){return function(r,n,i){if(e&&t){return(t-1)*e+i+1}return i+1}};var b=function r(t){return function(r,e,n){var i=(t==null?void 0:t())||{},o=i.pageNo,a=i.pageSize;if(a&&o){return(o-1)*a+n+1}return n+1}};var w=function r(t,e){return function(r){return j(d,{dataList:t,colorMap:e,value:r,forceMatch:false})}};var k=function r(i,o){return function(r){if(n(r)){var a=e(r,i,o);if(!a)return"";if(t(a))return JSON.stringify(a);return a}return r||o}};var N=function t(e){return function(t,n){var i=e==null?void 0:e(n);if(!i)return j(p,{children:t});var o=u(i.showData)?true:i.showData;var a=u(i.notOverflowShowExtra)?true:i.notOverflowShowExtra;var l=u(i.showMaxNumber)?10:i.showMaxNumber;var c=i.extraPosition?i.extraPosition:"after";var s=r(t)?f(t,l*2):t;if(i.extra&&o){if(s===t&&!a){return t}var v=[j("span",{children:s},"1"),j(p,{children:i.extra},"2")];var d=c==="before"?v.reverse():v;return j(m,{onClick:i.onClick,style:{cursor:i.onClick?"pointer":undefined},size:5,children:d.map((function(r,t){return j(p,{children:r},t)}))})}return j("span",{onClick:i.onClick,children:i.extra})}};var S={extraContentRender:N,indexCell:C,serialNumberCell:b,dateCell:x,operateCell:g,tooltipCell:h,selectorCell:w,objectCell:k};export{S as t};
3
+ //# sourceMappingURL=cell-render-4934a7de.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cell-render-0b27a14b.js","sources":["@flatbiz/antd/src/table-cell-render/cell-render.tsx"],"sourcesContent":["import { isEmpty, isNumber, isObject, isPlainObject, isString } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport {\n cutString,\n DateFormatType,\n flatbizDate,\n getStrByteLen,\n isUndefinedOrNull,\n TAny,\n TPlainObject,\n} from '@flatbiz/utils';\nimport { Space, Tooltip } from 'antd';\nimport { Fragment, ReactElement } from 'react';\nimport { ButtonOperate, ButtonOperateProps } from '../button-operate';\nimport { TagListSelect, TagListSelectProps } from '../tag-list-select';\n\nconst tableColumnTooltipRender = (showMaxNumber?: number, defaultValue?: string) => {\n return (value: string | number) => {\n if (isEmpty(value) || value === '') return defaultValue;\n if (isNumber(value)) return value;\n const colunmText = value.toString();\n const maxNumber = (isUndefinedOrNull(showMaxNumber) ? 10 : showMaxNumber) as number;\n const strByteLen = getStrByteLen(colunmText);\n if (strByteLen <= maxNumber * 2) {\n return colunmText;\n }\n return (\n <Tooltip placement=\"topLeft\" title={colunmText}>\n {cutString(colunmText, maxNumber * 2)}\n </Tooltip>\n );\n };\n};\n\nconst tableColumnOperateRender = (options: (item: TAny, index: number) => ButtonOperateProps) => {\n return (_value: string | number, record, index: number) => {\n const operateProps = options(record, index);\n return <ButtonOperate {...operateProps} />;\n };\n};\n\nconst tableColumnDateRender = (dateFormatType?: DateFormatType, defaultValue?: string) => {\n return (value: string | number) => {\n if (isEmpty(value) || value === '') return defaultValue;\n try {\n return flatbizDate.format(new Date(value), dateFormatType);\n } catch (error) {\n return value || defaultValue;\n }\n };\n};\n\n/**\n * table 索引展示,如果存在pageSize、pageNo参数可分页展示索引,否则每页都从1开始\n * @param pageSize\n * @param pageNo\n * @returns\n */\nconst tableColumnIndexRender = (pageNo?: number, pageSize?: number) => {\n return (_value, _record, index: number) => {\n if (pageSize && pageNo) {\n return (pageNo - 1) * pageSize + index + 1;\n }\n return index + 1;\n };\n};\nconst tableColumnIndexRender2 = (method?: () => { pageNo?: number; pageSize?: number }) => {\n return (_value, _record, index: number) => {\n const { pageNo, pageSize } = method?.() || {};\n if (pageSize && pageNo) {\n return (pageNo - 1) * pageSize + index + 1;\n }\n return index + 1;\n };\n};\n\nconst tableColumnSelectorRender = (\n selectorList: TagListSelectProps['dataList'],\n colorMap?: TagListSelectProps['colorMap'],\n) => {\n return (value: string | number) => {\n return <TagListSelect dataList={selectorList} colorMap={colorMap} value={value} forceMatch={false} />;\n };\n};\n\nconst tableColumnObjectRender = (key: string, defaultValue?: string) => {\n return (value?: TPlainObject) => {\n if (isPlainObject(value)) {\n const target = get(value, key, defaultValue);\n if (!target) return '';\n if (isObject(target)) return JSON.stringify(target);\n return target;\n }\n return value || defaultValue;\n };\n};\n\ntype TableColumnIconRenderProps = {\n /** 额外内容,一般为Icon */\n extra: ReactElement;\n extraPosition?: 'before' | 'after';\n onClick?: (e) => void;\n /** 是否显示原单元格数据,默认值:true */\n showData?: boolean;\n /** 溢出显示【...】, 最大长度(默认:20个字节) */\n showMaxNumber?: number;\n /** 未溢出显示【extra】配置,默认值:true */\n notOverflowShowExtra?: boolean;\n};\n\nconst tableColumnExtraContentRender = (handle: (item: TPlainObject) => TableColumnIconRenderProps) => {\n return (value: TAny, item: TPlainObject) => {\n const options = handle?.(item);\n if (!options) return <Fragment>{value}</Fragment>;\n const showData = isUndefinedOrNull(options.showData) ? true : options.showData;\n const notOverflowShowExtra = isUndefinedOrNull(options.notOverflowShowExtra)\n ? true\n : options.notOverflowShowExtra;\n const showMaxNumber = isUndefinedOrNull(options.showMaxNumber) ? 10 : (options.showMaxNumber as number);\n const extraPosition = options.extraPosition ? options.extraPosition : 'after';\n const renderValue = isString(value) ? cutString(value, showMaxNumber * 2) : value;\n\n if (options.extra && showData) {\n if (renderValue === value && !notOverflowShowExtra) {\n return value;\n }\n const spaceContent = [<span key=\"1\">{renderValue}</span>, <Fragment key=\"2\">{options.extra}</Fragment>];\n const spaceContentRender = extraPosition === 'before' ? spaceContent.reverse() : spaceContent;\n return (\n <Space onClick={options.onClick} style={{ cursor: options.onClick ? 'pointer' : undefined }} size={5}>\n {spaceContentRender.map((item, index) => {\n return <Fragment key={index}>{item}</Fragment>;\n })}\n </Space>\n );\n }\n return <span onClick={options.onClick}>{options.extra}</span>;\n };\n};\n\nexport const tableCellRender = {\n /**\n * 表格单元格 拼接额外内容渲染\n * ```\n * 1. extra 额外内容\n * 2. showData 是否显示原单元格数据,默认值:true\n * 3. showMaxNumber 显示最大长度,作用于原单元格字符串数据\n * ```\n */\n extraContentRender: tableColumnExtraContentRender,\n /**\n * table 索引展示,如果存在pageSize、pageNo参数可分页展示索引,否则每页都从1开始\n * @deprecated 已过时 4.3.0版本移除,请使用 serialNumberCell\n */\n indexCell: tableColumnIndexRender,\n /**\n * table 序号展示,如果存在pageSize、pageNo参数可分页展示累加序号,否则每页都从1开始\n * ```\n * render: tableCellRender.serialNumberCell(() => {\n * return { pageNo,pageSize };\n * }),\n * ```\n */\n serialNumberCell: tableColumnIndexRender2,\n /**\n * 表格日期格式数据渲染,默认格式:YYYY-MM-DD\n * ```\n * dateFormatType: 日期格式\n * ```\n */\n dateCell: tableColumnDateRender,\n /**\n * table操作栏目渲染\n * ```\n * 使用方式\n * tableCellRender.operateCell((item) => ({\n * operateList: [\n * {\n * text: '编辑',\n * onClick: onItemOperate.bind(null, 'update', item),\n * permission: SystemAdminPermissionEnum.system_admin_edit,\n * },\n * {\n * text: '删除',\n * needConfirm: true,\n * confirmMessage: '确定要删除吗?',\n * onClick: onItemOperate.bind(null, 'delete', item),\n * permission: SystemAdminPermissionEnum.system_admin_delete,\n * },\n * ],\n * }))\n * ```\n */\n operateCell: tableColumnOperateRender,\n /**\n * 实现字段超出隐藏,默认长度10个字符\n * ```\n * 1. showMaxNumber: 显示最大长度\n * 2. 会讲字符转出字节进行计算显示\n * ```\n */\n tooltipCell: tableColumnTooltipRender,\n /**\n * ```\n * 使用方式1\n * tableCellRender.selectorCell([{ label: '已开启', value: 1, color: '#108ee9' }])\n *\n * 使用方式2\n * tableCellRender.selectorCell([{ label: '已开启', value: 1 }], { 1: '#108ee9' })\n * ```\n */\n selectorCell: tableColumnSelectorRender,\n /**\n * 单元格对象数据处理,支持多级处理\n * ```\n * tableCellRender.objectCell('a.b.c')\n * ```\n */\n objectCell: tableColumnObjectRender,\n};\n"],"names":["tableColumnTooltipRender","showMaxNumber","defaultValue","value","_isEmpty","_isNumber","colunmText","toString","maxNumber","isUndefinedOrNull","strByteLen","getStrByteLen","_jsx","Tooltip","placement","title","children","cutString","tableColumnOperateRender","options","_value","record","index","operateProps","ButtonOperate","_extends","tableColumnDateRender","dateFormatType","flatbizDate","format","Date","error","tableColumnIndexRender","pageNo","pageSize","_record","tableColumnIndexRender2","method","_ref","tableColumnSelectorRender","selectorList","colorMap","TagListSelect","dataList","forceMatch","tableColumnObjectRender","key","_isPlainObject","target","_get","_isObject","JSON","stringify","tableColumnExtraContentRender","handle","item","Fragment","showData","notOverflowShowExtra","extraPosition","renderValue","_isString","extra","spaceContent","spaceContentRender","reverse","Space","onClick","style","cursor","undefined","size","map","tableCellRender","extraContentRender","indexCell","serialNumberCell","dateCell","operateCell","tooltipCell","selectorCell","objectCell"],"mappings":"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"}
1
+ {"version":3,"file":"cell-render-4934a7de.js","sources":["@flatbiz/antd/src/table-cell-render/cell-render.tsx"],"sourcesContent":["import { isEmpty, isNumber, isObject, isPlainObject, isString } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport {\n cutString,\n DateFormatType,\n flatbizDate,\n getStrByteLen,\n isUndefinedOrNull,\n TAny,\n TPlainObject,\n} from '@flatbiz/utils';\nimport { Space, Tooltip } from 'antd';\nimport { Fragment, ReactElement } from 'react';\nimport { ButtonOperate, ButtonOperateProps } from '../button-operate';\nimport { TagListSelect, TagListSelectProps } from '../tag-list-select';\n\nconst tableColumnTooltipRender = (showMaxNumber?: number, defaultValue?: string) => {\n return (value: string | number) => {\n if (isEmpty(value) || value === '') return defaultValue;\n if (isNumber(value)) return value;\n const colunmText = value.toString();\n const maxNumber = (isUndefinedOrNull(showMaxNumber) ? 10 : showMaxNumber) as number;\n const strByteLen = getStrByteLen(colunmText);\n if (strByteLen <= maxNumber * 2) {\n return colunmText;\n }\n return (\n <Tooltip placement=\"topLeft\" title={colunmText}>\n {cutString(colunmText, maxNumber * 2)}\n </Tooltip>\n );\n };\n};\n\nconst tableColumnOperateRender = (options: (item: TAny, index: number) => ButtonOperateProps) => {\n return (_value: string | number, record, index: number) => {\n const operateProps = options(record, index);\n return <ButtonOperate {...operateProps} />;\n };\n};\n\nconst tableColumnDateRender = (dateFormatType?: DateFormatType, defaultValue?: string) => {\n return (value: string | number) => {\n if (isEmpty(value) || value === '') return defaultValue;\n try {\n return flatbizDate.format(new Date(value), dateFormatType);\n } catch (error) {\n return value || defaultValue;\n }\n };\n};\n\n/**\n * table 索引展示,如果存在pageSize、pageNo参数可分页展示索引,否则每页都从1开始\n * @param pageSize\n * @param pageNo\n * @returns\n */\nconst tableColumnIndexRender = (pageNo?: number, pageSize?: number) => {\n return (_value, _record, index: number) => {\n if (pageSize && pageNo) {\n return (pageNo - 1) * pageSize + index + 1;\n }\n return index + 1;\n };\n};\nconst tableColumnIndexRender2 = (method?: () => { pageNo?: number; pageSize?: number }) => {\n return (_value, _record, index: number) => {\n const { pageNo, pageSize } = method?.() || {};\n if (pageSize && pageNo) {\n return (pageNo - 1) * pageSize + index + 1;\n }\n return index + 1;\n };\n};\n\nconst tableColumnSelectorRender = (\n selectorList: TagListSelectProps['dataList'],\n colorMap?: TagListSelectProps['colorMap'],\n) => {\n return (value: string | number) => {\n return <TagListSelect dataList={selectorList} colorMap={colorMap} value={value} forceMatch={false} />;\n };\n};\n\nconst tableColumnObjectRender = (key: string, defaultValue?: string) => {\n return (value?: TPlainObject) => {\n if (isPlainObject(value)) {\n const target = get(value, key, defaultValue);\n if (!target) return '';\n if (isObject(target)) return JSON.stringify(target);\n return target;\n }\n return value || defaultValue;\n };\n};\n\ntype TableColumnIconRenderProps = {\n /** 额外内容,一般为Icon */\n extra: ReactElement;\n extraPosition?: 'before' | 'after';\n onClick?: (e) => void;\n /** 是否显示原单元格数据,默认值:true */\n showData?: boolean;\n /** 溢出显示【...】, 最大长度(默认:20个字节) */\n showMaxNumber?: number;\n /** 未溢出显示【extra】配置,默认值:true */\n notOverflowShowExtra?: boolean;\n};\n\nconst tableColumnExtraContentRender = (handle: (item: TPlainObject) => TableColumnIconRenderProps) => {\n return (value: TAny, item: TPlainObject) => {\n const options = handle?.(item);\n if (!options) return <Fragment>{value}</Fragment>;\n const showData = isUndefinedOrNull(options.showData) ? true : options.showData;\n const notOverflowShowExtra = isUndefinedOrNull(options.notOverflowShowExtra)\n ? true\n : options.notOverflowShowExtra;\n const showMaxNumber = isUndefinedOrNull(options.showMaxNumber) ? 10 : (options.showMaxNumber as number);\n const extraPosition = options.extraPosition ? options.extraPosition : 'after';\n const renderValue = isString(value) ? cutString(value, showMaxNumber * 2) : value;\n\n if (options.extra && showData) {\n if (renderValue === value && !notOverflowShowExtra) {\n return value;\n }\n const spaceContent = [<span key=\"1\">{renderValue}</span>, <Fragment key=\"2\">{options.extra}</Fragment>];\n const spaceContentRender = extraPosition === 'before' ? spaceContent.reverse() : spaceContent;\n return (\n <Space onClick={options.onClick} style={{ cursor: options.onClick ? 'pointer' : undefined }} size={5}>\n {spaceContentRender.map((item, index) => {\n return <Fragment key={index}>{item}</Fragment>;\n })}\n </Space>\n );\n }\n return <span onClick={options.onClick}>{options.extra}</span>;\n };\n};\n\nexport const tableCellRender = {\n /**\n * 表格单元格 拼接额外内容渲染\n * ```\n * 1. extra 额外内容\n * 2. showData 是否显示原单元格数据,默认值:true\n * 3. showMaxNumber 显示最大长度,作用于原单元格字符串数据\n * ```\n */\n extraContentRender: tableColumnExtraContentRender,\n /**\n * table 索引展示,如果存在pageSize、pageNo参数可分页展示索引,否则每页都从1开始\n * @deprecated 已过时 4.3.0版本移除,请使用 serialNumberCell\n */\n indexCell: tableColumnIndexRender,\n /**\n * table 序号展示,如果存在pageSize、pageNo参数可分页展示累加序号,否则每页都从1开始\n * ```\n * render: tableCellRender.serialNumberCell(() => {\n * return { pageNo,pageSize };\n * }),\n * ```\n */\n serialNumberCell: tableColumnIndexRender2,\n /**\n * 表格日期格式数据渲染,默认格式:YYYY-MM-DD\n * ```\n * dateFormatType: 日期格式\n * ```\n */\n dateCell: tableColumnDateRender,\n /**\n * table操作栏目渲染\n * ```\n * 使用方式\n * tableCellRender.operateCell((item) => ({\n * operateList: [\n * {\n * text: '编辑',\n * onClick: onItemOperate.bind(null, 'update', item),\n * permission: SystemAdminPermissionEnum.system_admin_edit,\n * },\n * {\n * text: '删除',\n * needConfirm: true,\n * confirmMessage: '确定要删除吗?',\n * onClick: onItemOperate.bind(null, 'delete', item),\n * permission: SystemAdminPermissionEnum.system_admin_delete,\n * },\n * ],\n * }))\n * ```\n */\n operateCell: tableColumnOperateRender,\n /**\n * 实现字段超出隐藏,默认长度10个字符\n * ```\n * 1. showMaxNumber: 显示最大长度\n * 2. 会讲字符转出字节进行计算显示\n * ```\n */\n tooltipCell: tableColumnTooltipRender,\n /**\n * ```\n * 使用方式1\n * tableCellRender.selectorCell([{ label: '已开启', value: 1, color: '#108ee9' }])\n *\n * 使用方式2\n * tableCellRender.selectorCell([{ label: '已开启', value: 1 }], { 1: '#108ee9' })\n * ```\n */\n selectorCell: tableColumnSelectorRender,\n /**\n * 单元格对象数据处理,支持多级处理\n * ```\n * tableCellRender.objectCell('a.b.c')\n * ```\n */\n objectCell: tableColumnObjectRender,\n};\n"],"names":["tableColumnTooltipRender","showMaxNumber","defaultValue","value","_isEmpty","_isNumber","colunmText","toString","maxNumber","isUndefinedOrNull","strByteLen","getStrByteLen","_jsx","Tooltip","placement","title","children","cutString","tableColumnOperateRender","options","_value","record","index","operateProps","ButtonOperate","_extends","tableColumnDateRender","dateFormatType","flatbizDate","format","Date","error","tableColumnIndexRender","pageNo","pageSize","_record","tableColumnIndexRender2","method","_ref","tableColumnSelectorRender","selectorList","colorMap","TagListSelect","dataList","forceMatch","tableColumnObjectRender","key","_isPlainObject","target","_get","_isObject","JSON","stringify","tableColumnExtraContentRender","handle","item","Fragment","showData","notOverflowShowExtra","extraPosition","renderValue","_isString","extra","spaceContent","spaceContentRender","reverse","Space","onClick","style","cursor","undefined","size","map","tableCellRender","extraContentRender","indexCell","serialNumberCell","dateCell","operateCell","tooltipCell","selectorCell","objectCell"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/create-drawer-wrapper-model/drawer.model.ts","@flatbiz/antd/src/create-drawer-wrapper-model/index.ts"],"sourcesContent":["import { ModelType } from '@dimjs/model';\n\nexport interface DrawerStateType {\n title: string;\n /**\n * 显示drawer\n */\n open: boolean;\n /**\n * 用来处理form, `更新`的时候的传递当前item列表行的数据, 当`创建`的时候强制设置为 `undefined`\n */\n itemData?: Record<string, any>;\n operateType: 'create' | 'update' | 'view' | null;\n pageLoading?: boolean;\n}\n\nexport interface DrawerActionsParamType {\n openDrawerForm: Pick<DrawerStateType, 'title' | 'itemData' | 'operateType' | 'pageLoading'>;\n closeDrawer: void;\n setDrawerItemData: Record<string, any>;\n}\n\n/**\n * @shared\n * 提供公共的drawer处理, 通常用来表单编辑, 弹窗抽屉模式.\n * 注意全部理论上只允许一个drawer实例存在,如需处理多个, 请自行实例话模型.\n */\nexport const DrawerModel: ModelType<DrawerStateType, DrawerActionsParamType> = {\n actions: {\n openDrawerForm({ itemData, title, operateType, pageLoading }) {\n return (state) => {\n state.itemData = itemData;\n state.title = title;\n state.operateType = operateType;\n state.pageLoading = pageLoading;\n state.open = true;\n };\n },\n closeDrawer() {\n return (state) => {\n state.open = false;\n };\n },\n setDrawerItemData(params) {\n return (state) => {\n state.pageLoading = false;\n state.itemData = params;\n };\n },\n },\n state: {\n open: false,\n title: '',\n operateType: null,\n },\n};\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { DrawerActionsParamType, DrawerModel, DrawerStateType } from './drawer.model';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst drawerModels: Record<string, API<ModelType<DrawerStateType, DrawerActionsParamType, any>>> = {};\n\n/**\n * drawer弹窗模型\n * @param key 唯一值必传\n * @returns\n * @deprecated 废弃 DrawerWrapper 4.3.0版本移除\n *\n * ```\n * 使用方式\n * const [drawerState, drawerActions] = createDrawerWrapperModel('key值').useStore();\n * ```\n */\nexport const createDrawerWrapperModel = (key: string) => {\n if (!drawerModels[key]) {\n drawerModels[key] = Model(DrawerModel);\n }\n return drawerModels[key];\n};\n"],"names":["DrawerModel","actions","openDrawerForm","_ref","itemData","title","operateType","pageLoading","state","open","closeDrawer","setDrawerItemData","params","drawerModels","createDrawerWrapperModel","key","Model"],"mappings":";2CA2BO,IAAMA,EAAkE,CAC7EC,QAAS,CACPC,eAAc,SAAAA,EAAAC,GAAgD,IAA7CC,EAAQD,EAARC,SAAUC,EAAKF,EAALE,MAAOC,EAAWH,EAAXG,YAAaC,EAAWJ,EAAXI,YAC7C,OAAO,SAACC,GACNA,EAAMJ,SAAWA,EACjBI,EAAMH,MAAQA,EACdG,EAAMF,YAAcA,EACpBE,EAAMD,YAAcA,EACpBC,EAAMC,KAAO,KAEhB,EACDC,YAAW,SAAAA,IACT,OAAO,SAACF,GACNA,EAAMC,KAAO,MAEhB,EACDE,kBAAiB,SAAAA,EAACC,GAChB,OAAO,SAACJ,GACNA,EAAMD,YAAc,MACpBC,EAAMJ,SAAWQ,EAErB,GAEFJ,MAAO,CACLC,KAAM,MACNJ,MAAO,GACPC,YAAa,OChDjB,IAAMO,EAA6F,CAAA,MAatFC,EAA2B,SAA3BA,EAA4BC,GACvC,IAAKF,EAAaE,GAAM,CACtBF,EAAaE,GAAOC,EAAMhB,EAC5B,CACA,OAAOa,EAAaE,EACtB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/create-drawer-wrapper-model/drawer.model.ts","@flatbiz/antd/src/create-drawer-wrapper-model/index.ts"],"sourcesContent":["import { ModelType } from '@dimjs/model';\n\nexport interface DrawerStateType {\n title: string;\n /**\n * 显示drawer\n */\n open: boolean;\n /**\n * 用来处理form, `更新`的时候的传递当前item列表行的数据, 当`创建`的时候强制设置为 `undefined`\n */\n itemData?: Record<string, any>;\n operateType: 'create' | 'update' | 'view' | null;\n pageLoading?: boolean;\n}\n\nexport interface DrawerActionsParamType {\n openDrawerForm: Pick<DrawerStateType, 'title' | 'itemData' | 'operateType' | 'pageLoading'>;\n closeDrawer: void;\n setDrawerItemData: Record<string, any>;\n}\n\n/**\n * @shared\n * 提供公共的drawer处理, 通常用来表单编辑, 弹窗抽屉模式.\n * 注意全部理论上只允许一个drawer实例存在,如需处理多个, 请自行实例话模型.\n */\nexport const DrawerModel: ModelType<DrawerStateType, DrawerActionsParamType> = {\n actions: {\n openDrawerForm({ itemData, title, operateType, pageLoading }) {\n return (state) => {\n state.itemData = itemData;\n state.title = title;\n state.operateType = operateType;\n state.pageLoading = pageLoading;\n state.open = true;\n };\n },\n closeDrawer() {\n return (state) => {\n state.open = false;\n };\n },\n setDrawerItemData(params) {\n return (state) => {\n state.pageLoading = false;\n state.itemData = params;\n };\n },\n },\n state: {\n open: false,\n title: '',\n operateType: null,\n },\n};\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { DrawerActionsParamType, DrawerModel, DrawerStateType } from './drawer.model';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst drawerModels: Record<string, API<ModelType<DrawerStateType, DrawerActionsParamType, any>>> = {};\n\n/**\n * drawer弹窗模型\n * @param key 唯一值必传\n * @returns\n * @deprecated 废弃 DrawerWrapper 4.3.0版本移除, 请使用 dialogDrawer\n */\nexport const createDrawerWrapperModel = (key: string) => {\n if (!drawerModels[key]) {\n drawerModels[key] = Model(DrawerModel);\n }\n return drawerModels[key];\n};\n"],"names":["DrawerModel","actions","openDrawerForm","_ref","itemData","title","operateType","pageLoading","state","open","closeDrawer","setDrawerItemData","params","drawerModels","createDrawerWrapperModel","key","Model"],"mappings":";2CA2BO,IAAMA,EAAkE,CAC7EC,QAAS,CACPC,eAAc,SAAAA,EAAAC,GAAgD,IAA7CC,EAAQD,EAARC,SAAUC,EAAKF,EAALE,MAAOC,EAAWH,EAAXG,YAAaC,EAAWJ,EAAXI,YAC7C,OAAO,SAACC,GACNA,EAAMJ,SAAWA,EACjBI,EAAMH,MAAQA,EACdG,EAAMF,YAAcA,EACpBE,EAAMD,YAAcA,EACpBC,EAAMC,KAAO,KAEhB,EACDC,YAAW,SAAAA,IACT,OAAO,SAACF,GACNA,EAAMC,KAAO,MAEhB,EACDE,kBAAiB,SAAAA,EAACC,GAChB,OAAO,SAACJ,GACNA,EAAMD,YAAc,MACpBC,EAAMJ,SAAWQ,EAErB,GAEFJ,MAAO,CACLC,KAAM,MACNJ,MAAO,GACPC,YAAa,OChDjB,IAAMO,EAA6F,CAAA,MAQtFC,EAA2B,SAA3BA,EAA4BC,GACvC,IAAKF,EAAaE,GAAM,CACtBF,EAAaE,GAAOC,EAAMhB,EAC5B,CACA,OAAOa,EAAaE,EACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/create-modal-wrapper-model/modal.model.ts","@flatbiz/antd/src/create-modal-wrapper-model/index.ts"],"sourcesContent":["import { ModelType } from '@dimjs/model';\n\nexport interface ModalStateType {\n title?: string;\n /**\n * 显示modal\n */\n open: boolean;\n /**\n * 用来处理form, `更新`的时候的传递当前item列表行的数据, 当`创建`的时候强制设置为 `undefined`\n */\n itemData?: Record<string, unknown> | null;\n operateType: 'create' | 'update' | 'view';\n pageLoading?: boolean;\n}\n\nexport interface ModalActionsParamType {\n openModalForm: Pick<ModalStateType, 'title' | 'itemData' | 'operateType' | 'pageLoading'>;\n closeModal: void;\n setModalItemData: Record<string, unknown>;\n}\n\n/**\n * @shared\n * 提供公共的modal处理, 通常用来表单编辑, 弹窗抽屉模式.\n * 注意全部理论上只允许一个modal实例存在,如需处理多个, 请自行实例话模型.\n */\nexport const ModalModel: ModelType<ModalStateType, ModalActionsParamType> = {\n actions: {\n openModalForm({ itemData, title, operateType, pageLoading }) {\n return (state) => {\n state.itemData = itemData;\n state.title = title;\n state.operateType = operateType;\n state.pageLoading = pageLoading;\n state.open = true;\n };\n },\n closeModal() {\n return (state) => {\n state.open = false;\n };\n },\n setModalItemData(params) {\n return (state) => {\n state.pageLoading = false;\n state.itemData = params;\n };\n },\n },\n state: {\n open: false,\n title: '',\n operateType: 'view',\n },\n};\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { ModalActionsParamType, ModalModel, ModalStateType } from './modal.model';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst modalModels: Record<string, API<ModelType<ModalStateType, ModalActionsParamType, any>>> = {};\n\n/**\n * modal弹窗模型\n * @param key 唯一值必传\n * @deprecated 废弃 ModalWrapper 4.3.0版本移除\n *\n * ```\n * 使用方式\n * const [modalState, modalActions] = createModalWrapperModel('key值').useStore();\n * ```\n */\nexport const createModalWrapperModel = (key: string) => {\n if (!modalModels[key]) {\n modalModels[key] = Model(ModalModel);\n }\n return modalModels[key];\n};\n"],"names":["ModalModel","actions","openModalForm","_ref","itemData","title","operateType","pageLoading","state","open","closeModal","setModalItemData","params","modalModels","createModalWrapperModel","key","Model"],"mappings":";2CA2BO,IAAMA,EAA+D,CAC1EC,QAAS,CACPC,cAAa,SAAAA,EAAAC,GAAgD,IAA7CC,EAAQD,EAARC,SAAUC,EAAKF,EAALE,MAAOC,EAAWH,EAAXG,YAAaC,EAAWJ,EAAXI,YAC5C,OAAO,SAACC,GACNA,EAAMJ,SAAWA,EACjBI,EAAMH,MAAQA,EACdG,EAAMF,YAAcA,EACpBE,EAAMD,YAAcA,EACpBC,EAAMC,KAAO,KAEhB,EACDC,WAAU,SAAAA,IACR,OAAO,SAACF,GACNA,EAAMC,KAAO,MAEhB,EACDE,iBAAgB,SAAAA,EAACC,GACf,OAAO,SAACJ,GACNA,EAAMD,YAAc,MACpBC,EAAMJ,SAAWQ,EAErB,GAEFJ,MAAO,CACLC,KAAM,MACNJ,MAAO,GACPC,YAAa,SChDjB,IAAMO,EAA0F,CAAA,MAYnFC,EAA0B,SAA1BA,EAA2BC,GACtC,IAAKF,EAAYE,GAAM,CACrBF,EAAYE,GAAOC,EAAMhB,EAC3B,CACA,OAAOa,EAAYE,EACrB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/create-modal-wrapper-model/modal.model.ts","@flatbiz/antd/src/create-modal-wrapper-model/index.ts"],"sourcesContent":["import { ModelType } from '@dimjs/model';\n\nexport interface ModalStateType {\n title?: string;\n /**\n * 显示modal\n */\n open: boolean;\n /**\n * 用来处理form, `更新`的时候的传递当前item列表行的数据, 当`创建`的时候强制设置为 `undefined`\n */\n itemData?: Record<string, unknown> | null;\n operateType: 'create' | 'update' | 'view';\n pageLoading?: boolean;\n}\n\nexport interface ModalActionsParamType {\n openModalForm: Pick<ModalStateType, 'title' | 'itemData' | 'operateType' | 'pageLoading'>;\n closeModal: void;\n setModalItemData: Record<string, unknown>;\n}\n\n/**\n * @shared\n * 提供公共的modal处理, 通常用来表单编辑, 弹窗抽屉模式.\n * 注意全部理论上只允许一个modal实例存在,如需处理多个, 请自行实例话模型.\n */\nexport const ModalModel: ModelType<ModalStateType, ModalActionsParamType> = {\n actions: {\n openModalForm({ itemData, title, operateType, pageLoading }) {\n return (state) => {\n state.itemData = itemData;\n state.title = title;\n state.operateType = operateType;\n state.pageLoading = pageLoading;\n state.open = true;\n };\n },\n closeModal() {\n return (state) => {\n state.open = false;\n };\n },\n setModalItemData(params) {\n return (state) => {\n state.pageLoading = false;\n state.itemData = params;\n };\n },\n },\n state: {\n open: false,\n title: '',\n operateType: 'view',\n },\n};\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { ModalActionsParamType, ModalModel, ModalStateType } from './modal.model';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst modalModels: Record<string, API<ModelType<ModalStateType, ModalActionsParamType, any>>> = {};\n\n/**\n * modal弹窗模型\n * @param key 唯一值必传\n * @deprecated 废弃 ModalWrapper 4.3.0版本移除,请使用 dialogModal\n */\nexport const createModalWrapperModel = (key: string) => {\n if (!modalModels[key]) {\n modalModels[key] = Model(ModalModel);\n }\n return modalModels[key];\n};\n"],"names":["ModalModel","actions","openModalForm","_ref","itemData","title","operateType","pageLoading","state","open","closeModal","setModalItemData","params","modalModels","createModalWrapperModel","key","Model"],"mappings":";2CA2BO,IAAMA,EAA+D,CAC1EC,QAAS,CACPC,cAAa,SAAAA,EAAAC,GAAgD,IAA7CC,EAAQD,EAARC,SAAUC,EAAKF,EAALE,MAAOC,EAAWH,EAAXG,YAAaC,EAAWJ,EAAXI,YAC5C,OAAO,SAACC,GACNA,EAAMJ,SAAWA,EACjBI,EAAMH,MAAQA,EACdG,EAAMF,YAAcA,EACpBE,EAAMD,YAAcA,EACpBC,EAAMC,KAAO,KAEhB,EACDC,WAAU,SAAAA,IACR,OAAO,SAACF,GACNA,EAAMC,KAAO,MAEhB,EACDE,iBAAgB,SAAAA,EAACC,GACf,OAAO,SAACJ,GACNA,EAAMD,YAAc,MACpBC,EAAMJ,SAAWQ,EAErB,GAEFJ,MAAO,CACLC,KAAM,MACNJ,MAAO,GACPC,YAAa,SChDjB,IAAMO,EAA0F,CAAA,MAOnFC,EAA0B,SAA1BA,EAA2BC,GACtC,IAAKF,EAAYE,GAAM,CACrBF,EAAYE,GAAOC,EAAMhB,EAC3B,CACA,OAAOa,EAAYE,EACrB"}
@@ -8,5 +8,5 @@ import './../dialog-modal/index.css';
8
8
  import './../flex-layout/index.css';
9
9
  import './index.css';
10
10
  /*! @flatjs/forge MIT @flatbiz/antd */
11
- export{D as DropdownMenuWrapper}from"../dropdown-menu-wrapper-2b4fc43d.js";import"@dimjs/utils/cjs/class-names";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@wove/react/cjs/hooks";import"antd";import"react";import"../button-wrapper-125fce50.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@flatbiz/utils";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";import"../fba-utils-f9e11d02.js";import"../dialog-confirm-74fc9337.js";import"../dialog-modal-4a0c72c5.js";import"@dimjs/lang/cjs/is-string";import"ahooks";import"react-dom/client";import"../flex-layout-8d2b668b.js";
11
+ export{D as DropdownMenuWrapper}from"../dropdown-menu-wrapper-3a565fd8.js";import"@dimjs/utils/cjs/class-names";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@wove/react/cjs/hooks";import"antd";import"react";import"../button-wrapper-125fce50.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@flatbiz/utils";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";import"../fba-utils-f9e11d02.js";import"../dialog-confirm-74fc9337.js";import"../dialog-modal-4a0c72c5.js";import"@dimjs/lang/cjs/is-string";import"ahooks";import"react-dom/client";import"../flex-layout-8d2b668b.js";
12
12
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
1
  /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{classNames as e}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/ExclamationCircleFilled";import{_ as o,a as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as i}from"@wove/react/cjs/hooks";import{Dropdown as t}from"antd";import{Fragment as a,useMemo as s,createElement as l}from"react";import{B as d}from"./button-wrapper-125fce50.js";import{d as m}from"./dialog-confirm-74fc9337.js";import{f}from"./fba-utils-f9e11d02.js";import{F as u}from"./flex-layout-8d2b668b.js";import{jsxs as c,jsx as p}from"react/jsx-runtime";function v(e){var r=true;var o=false;while(r){if(e.tagName==="HTML"||e.tagName==="BODY"){r=false;o=false}else{var n=window.getComputedStyle(e),i=n.position;if(i==="sticky"){o=true;r=false}else{if(!e||!e.parentNode){r=false}else{e=e.parentNode}}}}return o}var g=["menuList"],y=["text","permission","needConfirm","confirmMessage","hidden","type","confirmModalProps"];var h=function h(C){var k=C.menuList,P=o(C,g);var x=i.useId(undefined,"DropdownMenuWrapper");var w=i.useCallbackRef((function(e,o){o.stopPropagation();if(e.needConfirm){var i;m.open(n({title:c(u,{direction:"horizontal",fullIndex:1,gap:8,children:[p(r,{style:{color:"#faad14"}}),p("span",{children:e.text})]}),content:p(a,{children:e.confirmMessage}),onOk:(i=e.onClick)==null?void 0:i.bind(null,o),okButtonProps:{loadingPosition:"center"}},e.confirmModalProps));return Promise.resolve()}return e.onClick==null?void 0:e.onClick(o)}));var M=document.querySelector("."+x);var j=s((function(){if(C.isFixed||M&&v(M)){return undefined}return M}),[C.isFixed,M]);var b=s((function(){var r=[];k.filter(Boolean).forEach((function(i,t){if(!i)return;var a=i.text,s=i.permission,m=i.needConfirm,u=i.confirmMessage,c=i.hidden,p=i.type,v=i.confirmModalProps,g=o(i,y);if(c)return;if(s&&!f.hasPermission(s))return;var h=p||"link";var C=g.color?false:m;r.push({key:t,label:l(d,n({loadingPosition:"center",size:"small",danger:C},g,{style:n({padding:0},g.style),className:e("dmw-item-button",g.className),type:h,key:t,onClick:w.bind(null,n({},i,{needConfirm:m,confirmMessage:u,confirmModalProps:v}))}),a)})}));return r}),[k,w]);return p("div",{className:e("dropdown-menu-wrapper",x),style:{position:"relative"},children:p(t,n({trigger:(P==null?void 0:P.trigger)||["hover"],getPopupContainer:j?function(){return M}:undefined,arrow:{pointAtCenter:true}},P,{overlayStyle:n({zIndex:9},P.overlayStyle),menu:{items:b},children:C.children}))})};export{h as D};
3
- //# sourceMappingURL=dropdown-menu-wrapper-2b4fc43d.js.map
2
+ import{classNames as e}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/ExclamationCircleFilled";import{_ as o,a as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as i}from"@wove/react/cjs/hooks";import{Dropdown as t}from"antd";import{Fragment as a,useMemo as s,createElement as l}from"react";import{B as d}from"./button-wrapper-125fce50.js";import{d as m}from"./dialog-confirm-74fc9337.js";import{f}from"./fba-utils-f9e11d02.js";import{F as u}from"./flex-layout-8d2b668b.js";import{jsxs as c,jsx as p}from"react/jsx-runtime";function v(e){var r=true;var o=false;while(r){if(e.tagName==="HTML"||e.tagName==="BODY"){r=false;o=false}else{var n=window.getComputedStyle(e),i=n.position;if(i==="sticky"){o=true;r=false}else{if(!e||!e.parentNode){r=false}else{e=e.parentNode}}}}return o}var g=["menuList"],y=["text","permission","needConfirm","confirmMessage","hidden","type","confirmModalProps"];var h=function h(C){var k=C.menuList,P=o(C,g);var x=i.useId(undefined,"DropdownMenuWrapper");var w=i.useCallbackRef((function(e,o){if(e.needConfirm){var i;m.open(n({title:c(u,{direction:"horizontal",fullIndex:1,gap:8,children:[p(r,{style:{color:"#faad14"}}),p("span",{children:e.text})]}),content:p(a,{children:e.confirmMessage}),onOk:(i=e.onClick)==null?void 0:i.bind(null,o),okButtonProps:{loadingPosition:"center"}},e.confirmModalProps));return Promise.resolve()}o.stopPropagation();return e.onClick==null?void 0:e.onClick(o)}));var M=document.querySelector("."+x);var j=s((function(){if(C.isFixed||M&&v(M)){return undefined}return M}),[C.isFixed,M]);var b=s((function(){var r=[];k.filter(Boolean).forEach((function(i,t){if(!i)return;var a=i.text,s=i.permission,m=i.needConfirm,u=i.confirmMessage,c=i.hidden,p=i.type,v=i.confirmModalProps,g=o(i,y);if(c)return;if(s&&!f.hasPermission(s))return;var h=p||"link";var C=g.color?false:m;r.push({key:t,label:l(d,n({loadingPosition:"center",size:"small",danger:C},g,{style:n({padding:0},g.style),className:e("dmw-item-button",g.className),type:h,key:t,onClick:w.bind(null,n({},i,{needConfirm:m,confirmMessage:u,confirmModalProps:v}))}),a)})}));return r}),[k,w]);return p("div",{className:e("dropdown-menu-wrapper",x),style:{position:"relative"},children:p(t,n({trigger:(P==null?void 0:P.trigger)||["hover"],getPopupContainer:j?function(){return M}:undefined,arrow:{pointAtCenter:true}},P,{overlayStyle:n({zIndex:9},P.overlayStyle),menu:{items:b},children:C.children}))})};export{h as D};
3
+ //# sourceMappingURL=dropdown-menu-wrapper-3a565fd8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu-wrapper-3a565fd8.js","sources":["@flatbiz/antd/src/dropdown-menu-wrapper/utils.ts","@flatbiz/antd/src/dropdown-menu-wrapper/dropdown-menu-wrapper.tsx"],"sourcesContent":["export function parentsHasSticky(node: Element) {\n let condition = true;\n let result = false;\n while (condition) {\n if (node.tagName === 'HTML' || node.tagName === 'BODY') {\n condition = false;\n result = false;\n } else {\n const { position } = window.getComputedStyle(node);\n if (position === 'sticky') {\n result = true;\n condition = false;\n } else {\n if (!node || !node.parentNode) {\n condition = false;\n } else {\n node = node.parentNode as Element;\n }\n }\n }\n }\n return result;\n}\n","import { ExclamationCircleFilled } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Dropdown, DropdownProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\nimport { fbaUtils } from '../fba-utils';\nimport { FlexLayout } from '../flex-layout';\nimport './style.less';\nimport { parentsHasSticky } from './utils';\n\nexport interface DropdownMenuItem extends ButtonProps {\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n confirmModalProps?: DialogModalProps;\n stopPropagation?: boolean;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n /** dropdown 设置弹框根节点在body下 */\n isFixed?: boolean;\n}\n\n/**\n * DropdownMenuWrapper\n * 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能\n * @param props\n * @returns\n * ```\n * 1. Dropdown默认弹框根节点在组件内部,通过isFixed=true可设置弹框根节点在body下\n * ```\n */\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const clsName = hooks.useId(undefined, 'DropdownMenuWrapper');\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n if (item.needConfirm) {\n dialogConfirm.open({\n title: (\n <FlexLayout direction=\"horizontal\" fullIndex={1} gap={8}>\n <ExclamationCircleFilled style={{ color: '#faad14' }} />\n <span>{item.text}</span>\n </FlexLayout>\n ),\n content: <Fragment>{item.confirmMessage}</Fragment>,\n onOk: item.onClick?.bind(null, event),\n okButtonProps: {\n loadingPosition: 'center',\n },\n ...item.confirmModalProps,\n });\n return Promise.resolve();\n }\n event.stopPropagation();\n return item.onClick?.(event);\n });\n\n const target = document.querySelector(`.${clsName}`);\n const container = useMemo(() => {\n if (props.isFixed || (target && parentsHasSticky(target))) {\n return undefined;\n }\n return target;\n }, [props.isFixed, target]);\n\n const menuItems = useMemo(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n confirmModalProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const buttonType = type || 'link';\n const danger = otherProps.color ? false : needConfirm;\n menuItemsNew.push({\n key: index,\n label: (\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n danger={danger}\n {...otherProps}\n style={{ padding: 0, ...otherProps.style }}\n className={classNames('dmw-item-button', otherProps.className)}\n type={buttonType}\n key={index}\n onClick={onClick.bind(null, {\n ...item,\n needConfirm,\n confirmMessage,\n confirmModalProps,\n })}\n >\n {text}\n </ButtonWrapper>\n ),\n });\n });\n return menuItemsNew;\n }, [menuList, onClick]);\n\n return (\n <div className={classNames('dropdown-menu-wrapper', clsName)} style={{ position: 'relative' }}>\n <Dropdown\n trigger={dropdownOtherProps?.trigger || ['hover']}\n getPopupContainer={container ? () => target as HTMLElement : undefined}\n arrow={{ pointAtCenter: true }}\n {...dropdownOtherProps}\n overlayStyle={{ zIndex: 9, ...dropdownOtherProps.overlayStyle }}\n menu={{ items: menuItems }}\n >\n {props.children}\n </Dropdown>\n </div>\n );\n};\n"],"names":["parentsHasSticky","node","condition","result","tagName","_window$getComputedSt","window","getComputedStyle","position","parentNode","DropdownMenuWrapper","props","menuList","dropdownOtherProps","_objectWithoutPropertiesLoose","_excluded","clsName","_hooks","useId","undefined","onClick","useCallbackRef","item","event","needConfirm","_item$onClick","dialogConfirm","open","_extends","title","_jsxs","FlexLayout","direction","fullIndex","gap","children","_jsx","_ExclamationCircleFilled","style","color","text","content","Fragment","confirmMessage","onOk","bind","okButtonProps","loadingPosition","confirmModalProps","Promise","resolve","stopPropagation","target","document","querySelector","container","useMemo","isFixed","menuItems","menuItemsNew","filter","Boolean","forEach","index","permission","hidden","type","otherProps","_excluded2","fbaUtils","hasPermission","buttonType","danger","push","key","label","_createElement","ButtonWrapper","size","padding","className","_classNames","Dropdown","trigger","getPopupContainer","arrow","pointAtCenter","overlayStyle","zIndex","menu","items"],"mappings":";ujBAAO,SAASA,EAAiBC,GAC/B,IAAIC,EAAY,KAChB,IAAIC,EAAS,MACb,MAAOD,EAAW,CAChB,GAAID,EAAKG,UAAY,QAAUH,EAAKG,UAAY,OAAQ,CACtDF,EAAY,MACZC,EAAS,KACX,KAAO,CACL,IAAAE,EAAqBC,OAAOC,iBAAiBN,GAArCO,EAAQH,EAARG,SACR,GAAIA,IAAa,SAAU,CACzBL,EAAS,KACTD,EAAY,KACd,KAAO,CACL,IAAKD,IAASA,EAAKQ,WAAY,CAC7BP,EAAY,KACd,KAAO,CACLD,EAAOA,EAAKQ,UACd,CACF,CACF,CACF,CACA,OAAON,CACT,mHCmBaO,EAAsB,SAAtBA,EAAuBC,GAClC,IAAQC,EAAoCD,EAApCC,SAAaC,EAAkBC,EAAKH,EAAKI,GACjD,IAAMC,EAAUC,EAAMC,MAAMC,UAAW,uBAEvC,IAAMC,EAAUH,EAAMI,gBAAe,SAACC,EAAwBC,GAC5D,GAAID,EAAKE,YAAa,CAAA,IAAAC,EACpBC,EAAcC,KAAIC,EAAA,CAChBC,MACEC,EAACC,EAAU,CAACC,UAAU,aAAaC,UAAW,EAAGC,IAAK,EAAEC,SAAA,CACtDC,EAAAC,EAAA,CAAyBC,MAAO,CAAEC,MAAO,aACzCH,EAAA,OAAA,CAAAD,SAAOb,EAAKkB,UAGhBC,QAASL,EAACM,EAAQ,CAAAP,SAAEb,EAAKqB,iBACzBC,MAAInB,EAAEH,EAAKF,UAAO,UAAA,EAAZK,EAAcoB,KAAK,KAAMtB,GAC/BuB,cAAe,CACbC,gBAAiB,WAEhBzB,EAAK0B,oBAEV,OAAOC,QAAQC,SACjB,CACA3B,EAAM4B,kBACN,OAAO7B,EAAKF,SAAO,UAAA,EAAZE,EAAKF,QAAUG,EACxB,IAEA,IAAM6B,EAASC,SAASC,cAAa,IAAKtC,GAC1C,IAAMuC,EAAYC,GAAQ,WACxB,GAAI7C,EAAM8C,SAAYL,GAAUpD,EAAiBoD,GAAU,CACzD,OAAOjC,SACT,CACA,OAAOiC,CACR,GAAE,CAACzC,EAAM8C,QAASL,IAEnB,IAAMM,EAAYF,GAAQ,WACxB,IAAMG,EAA2B,GACjC/C,EAASgD,OAAOC,SAASC,SAAQ,SAACxC,EAAMyC,GACtC,IAAKzC,EAAM,OACX,IACEkB,EAQElB,EARFkB,KACAwB,EAOE1C,EAPF0C,WACAxC,EAMEF,EANFE,YACAmB,EAKErB,EALFqB,eACAsB,EAIE3C,EAJF2C,OACAC,EAGE5C,EAHF4C,KACAlB,EAEE1B,EAFF0B,kBACGmB,EAAUrD,EACXQ,EAAI8C,GACR,GAAIH,EAAQ,OACZ,GAAID,IAAeK,EAASC,cAAcN,GAAa,OACvD,IAAMO,EAAaL,GAAQ,OAC3B,IAAMM,EAASL,EAAW5B,MAAQ,MAAQf,EAC1CmC,EAAac,KAAK,CAChBC,IAAKX,EACLY,MACEC,EAACC,EAAajD,EAAA,CACZmB,gBAAgB,SAChB+B,KAAK,QACLN,OAAQA,GACJL,EAAU,CACd7B,MAAKV,EAAA,CAAImD,QAAS,GAAMZ,EAAW7B,OACnC0C,UAAWC,EAAW,kBAAmBd,EAAWa,WACpDd,KAAMK,EACNG,IAAKX,EACL3C,QAASA,EAAQyB,KAAK,KAAIjB,EAAA,CAAA,EACrBN,EAAI,CACPE,YAAAA,EACAmB,eAAAA,EACAK,kBAAAA,OAGDR,IAIT,IACA,OAAOmB,CACT,GAAG,CAAC/C,EAAUQ,IAEd,OACEgB,EAAA,MAAA,CAAK4C,UAAWC,EAAW,wBAAyBjE,GAAUsB,MAAO,CAAE9B,SAAU,YAAa2B,SAC5FC,EAAC8C,EAAQtD,EAAA,CACPuD,SAAStE,GAAAA,UAAAA,EAAAA,EAAoBsE,UAAW,CAAC,SACzCC,kBAAmB7B,EAAY,WAAA,OAAMH,CAAM,EAAkBjC,UAC7DkE,MAAO,CAAEC,cAAe,OACpBzE,EAAkB,CACtB0E,aAAY3D,EAAA,CAAI4D,OAAQ,GAAM3E,EAAmB0E,cACjDE,KAAM,CAAEC,MAAOhC,GAAYvB,SAE1BxB,EAAMwB,aAIf"}
@@ -10,5 +10,5 @@ import './../table-scrollbar/index.css';
10
10
  import './../table-title-tooltip/index.css';
11
11
  import './index.css';
12
12
  /*! @flatjs/forge MIT @flatbiz/antd */
13
- import{f as e}from"../fba-utils-f9e11d02.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{hooks as n}from"@wove/react/cjs/hooks";import{a,_ as o}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as l}from"@dimjs/model";import{Form as s,message as u,Table as d}from"antd";import{forwardRef as c,useState as f,useRef as p,useImperativeHandle as m,useMemo as g,Children as v}from"react";import{P as y,S as h}from"../pagination-0e66a3b5.js";import{createCtx as C}from"@wove/react/cjs/create-ctx";import{Model as S}from"@dimjs/model-react";import{jsx as b,jsxs as j}from"react/jsx-runtime";import F from"@ant-design/icons/es/icons/DownOutlined";import q from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as z}from"react-is";import{B as N}from"../button-wrapper-125fce50.js";import{FormGrid as R}from"../form-grid/index.js";import{S as w}from"../simple-layout-0dce0d39.js";import{isUndefinedOrNull as P,getUuid as x,isMacEnv as k}from"@flatbiz/utils";import{fbaHooks as T}from"../fba-hooks/index.js";import{T as K}from"../table-scrollbar-66c1682c.js";import{T as L}from"../title-render-4f255df0.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var V=C(),E=V[0],O=V[1];var D={queryCondition:{},isInit:true};var I={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=a({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=a({},D.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:D};var B={};var A=function e(t){if(!B[t]){B[t]=S(I)}return B[t]};var _=c((function(e,o){var d;var c=f([]),v=c[0],h=c[1];var C=f(0),S=C[0],F=C[1];var q=f(false),z=q[0],N=q[1];var R=A(e.modelKey).useStore(),w=R[0],P=R[1];var x=e.pageSize||((d=e.initialPaginationParams)==null?void 0:d.pageSize)||10;var k=e.initRequest===undefined?true:e.initRequest;var T=f(false),K=T[0],L=T[1];var V=p();var E=a({list:"list",total:"tatal",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var D=s.useForm(),I=D[0];var B=n.useCallbackRef((function(t){return new Promise((function(i,n){var a,o,s,d,c,f,p,m,g,v;var y=function(){try{return i()}catch(e){return n(e)}};var C=function(t){try{N(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void u.error(t.message)}return y()}catch(e){return n(e)}};try{N(true);return Promise.resolve(P.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,d=s.requestParamsAdapter,c=s.onRequest,f=s.requestResultAdapter;p=d?d(o):o;return Promise.resolve(c(p)).then((function(t){try{m=t||{};V.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=f?f(m):m;v=g[E.list];h(r(v)?v:[]);F(g[E.total]);N(false);return y()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var _=n.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(P.resetFilterCondition()).then((function(r){try{I.resetFields();if(e){void P.updateFilterCondition(e);I.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var H=function e(t,i){if(K){var r;return r={},r[E.pageNo]=t,r[E.pageSize]=i||x,r}else{return{}}};var Y=n.useCallbackRef((function(t){return new Promise((function(i,r){var n;n=a({},H(1,x),e.initialValues,t);return Promise.resolve(P.resetFilterCondition(n)).then((function(e){try{I.resetFields();void B(n);return i()}catch(e){return r(e)}}),r)}))}));var G=n.useCallbackRef((function(){return a({},w.queryCondition,I.getFieldsValue())}));var Q=function e(){return{onRequest:B,clearQueryCondition:_,getRequestParams:G,onResetRequest:Y,form:I,getDataSource:function e(){return V.current},onFilterDataSource:function e(t){h(t)}}};m(o,(function(){return Q()}));var U=function e(t){L(t)};var W=function t(){var i=I.getFieldsValue();if(e.onFormFinish){e.onFormFinish(a({},i,H(1,w.queryCondition.pageSize)))}else{void B(a({},i,H(1,w.queryCondition.pageSize)))}};var Z=i(e.isFull)?true:e.isFull;var $=t("fba-easy-table",{"fba-easy-table-full":Z,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed});var J=g((function(){return a({showSizeChanger:true,current:w.queryCondition[E.pageNo]||1,pageSize:w.queryCondition[E.pageSize]||x,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[E.pageNo,E.pageSize,x,e.pagination,w.queryCondition,S]);var M=n.useCallbackRef((function(t,i){var r,n;void B((r={},r[E.pageSize]=i,r[E.pageNo]=t,r));(n=e.pagination)==null?void 0:n.onChange==null?void 0:n.onChange(t,i)}));var X=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline});var ee=typeof e.children==="function"?e.children(V.current):e.children;return b(O,{value:{getEasyTableRef:Q,modelKey:e.modelKey,onRequest:B,tableList:v,tableTotal:S,loading:z,fieldNames:E,pageSize:x,initRequest:k,initialValues:e.initialValues||{},onSetPaginationStatus:U,paginationStatus:K,onFormFinish:W,form:I,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?j("div",{className:X,children:[b("div",{className:$,children:ee}),S>0&&b("div",{className:"fba-easy-table-pagination",children:b(y,a({size:"small"},J,{onChange:M}))})]}):b("div",{className:$,children:ee})})}));var H=function e(t){var i=t.queryButtonProps,r=t.resetButtonProps,o=t.filterOperate,l=t.formClassName;var u=E(),d=u.modelKey,c=u.foldKeys,p=u.fieldNames,m=u.onRequest,y=u.pageSize,h=u.paginationStatus,C=u.initialValues,S=u.form,P=u.onFormFinish;var x=typeof t.children==="function"?t.children(S):t.children;var k=g((function(){if(z(x)){return v.toArray(x.props.children)}else{return v.toArray(x)}}),[x]);var T=f(false),K=T[0],L=T[1];var V=A(d).useStore(),O=V[0],D=V[1];var I=n.useCallbackRef((function(){return new Promise((function(e,t){var i;return Promise.resolve(D.resetFilterCondition()).then((function(r){try{S.resetFields();if(h){m(a((i={},i[p.pageNo]=1,i[p.pageSize]=y,i),C))}else{m(C)}return e()}catch(e){return t(e)}}),t)}))}));var B=g((function(){var e=a({rightList:[!(i!=null&&i.hidden)?b(N,a({type:"primary",htmlType:"submit"},i,{children:(i==null?void 0:i.text)||"查询"}),"1"):null,!(r!=null&&r.hidden)?b(N,a({onClick:I},r,{children:(r==null?void 0:r.text)||"重置"}),"2"):null],leftList:[]},o==null?void 0:o(S));if(c.length>0){var t=b(N,{type:"link",style:{padding:"0"},onClick:function e(){L(!K)},children:K?j("span",{children:["收起",b(q,{style:{marginLeft:3,fontSize:12}})]}):j("span",{children:["展开",b(F,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");var n=e.rightList,l=e.leftList;if(n.length>0||l.length===0){n.push(t)}else if((l==null?void 0:l.length)>0){l.push(t)}}return k.map((function(e,t){if(!K&&c.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return b(R.Col,{children:e},t)})).filter(Boolean).concat(b(R.OperateCol,a({},e),999))}),[k,o,c,S,I,K,i,r]);return b(w,{className:"easy-table-filter",children:b(s,{form:S,onFinish:P,initialValues:a({},C,O.queryCondition),className:l,children:t.isPure?x:b(R.Row,{gutter:[15,0],gridSize:t.formGridSize,children:B})})})};var Y=function e(){var t=E();var i=p(t.getEasyTableRef());return i.current};var G=function e(){var t=E(),i=t.getEasyTableRef;var r=p(i());return r};var Q=["children","rowKey","pagination"],U=["tooltip","title"];var W=function e(i){var r=i.children,n=i.rowKey,l=i.pagination,s=o(i,Q);var u=E(),c=u.modelKey,f=u.fieldNames,p=u.onRequest,m=u.tableList,v=u.initRequest,y=u.pageSize,C=u.tableTotal,S=u.loading,F=u.initialValues,q=u.paginationFixed,z=u.onSetPaginationStatus;var N=A(c).useStore(),R=N[0],V=N[1];var O=g((function(){if(q||l===false)return false;return a({showSizeChanger:true,current:R.queryCondition[f.pageNo]||1,pageSize:R.queryCondition[f.pageSize]||y,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:h})}),[f.pageNo,f.pageSize,y,l,q,i.pagination,R.queryCondition,C]);var D=function e(t,r,n,a){if(a.action==="paginate"&&O){var o;p((o={},o[f.pageSize]=t.pageSize,o[f.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,r,n,a)}};var I=g((function(){if(m.length===0){return[]}if(typeof n==="string"&&P(m[0][n])){return m.map((function(e){e[n]=x();return e}))}return m}),[m,n]);T.useEffectCustom((function(){var e=q||O!==false;z(e);if(v!==false||!R.isInit){if(e){var t;void p(a((t={},t[f.pageNo]=1,t[f.pageSize]=y,t),F,R.queryCondition))}else{void p(F)}}else{void V.updateFilterCondition(F)}void V.updateInitStatus()}),[]);var B=g((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.title,r=o(e,U);if(typeof i==="string"&&!!t){return a({},r,{title:b(L,{title:i,tooltip:t})})}return e}))}),[i.columns]);return j(w,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[r,k()?b(d,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{columns:B,pagination:O,rowKey:n,onChange:D,loading:S,dataSource:I})):b(K,{children:b(d,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{columns:B,pagination:O,rowKey:n,onChange:D,loading:S,dataSource:I}))})]})};var Z=e.attachPropertiesToComponent(_,{Filter:H,Table:W,useEasyTablRef:G,useEasyTable:Y});export{Z as EasyTable};
13
+ import{f as e}from"../fba-utils-f9e11d02.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{hooks as n}from"@wove/react/cjs/hooks";import{a,_ as o}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as l}from"@dimjs/model";import{Form as s,message as u,Table as c}from"antd";import{forwardRef as d,useState as f,useRef as p,useImperativeHandle as m,useMemo as g,Children as v}from"react";import{P as y,S as h}from"../pagination-0e66a3b5.js";import{createCtx as C}from"@wove/react/cjs/create-ctx";import{Model as S}from"@dimjs/model-react";import{jsx as b,jsxs as j}from"react/jsx-runtime";import F from"@ant-design/icons/es/icons/DownOutlined";import q from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as z}from"react-is";import{B as N}from"../button-wrapper-125fce50.js";import{FormGrid as R}from"../form-grid/index.js";import{S as w}from"../simple-layout-0dce0d39.js";import{isUndefinedOrNull as P,getUuid as x,isMacEnv as k}from"@flatbiz/utils";import{fbaHooks as T}from"../fba-hooks/index.js";import{T as K}from"../table-scrollbar-66c1682c.js";import{T as L}from"../title-render-4f255df0.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var V=C(),E=V[0],O=V[1];var D={queryCondition:{},isInit:true};var I={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=a({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=a({},D.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:D};var B={};var A=function e(t){if(!B[t]){B[t]=S(I)}return B[t]};var _=d((function(e,o){var c;var d=f([]),v=d[0],h=d[1];var C=f(0),S=C[0],F=C[1];var q=f(false),z=q[0],N=q[1];var R=A(e.modelKey).useStore(),w=R[0],P=R[1];var x=e.pageSize||((c=e.initialPaginationParams)==null?void 0:c.pageSize)||10;var k=e.initRequest===undefined?true:e.initRequest;var T=f(false),K=T[0],L=T[1];var V=p();var E=a({list:"list",total:"tatal",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var D=s.useForm(),I=D[0];var B=n.useCallbackRef((function(t){return new Promise((function(i,n){var a,o,s,c,d,f,p,m,g,v;var y=function(){try{return i()}catch(e){return n(e)}};var C=function(t){try{N(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void u.error(t.message)}return y()}catch(e){return n(e)}};try{N(true);return Promise.resolve(P.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,c=s.requestParamsAdapter,d=s.onRequest,f=s.requestResultAdapter;p=c?c(o):o;return Promise.resolve(d(p)).then((function(t){try{m=t||{};V.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=f?f(m):m;v=g[E.list];h(r(v)?v:[]);F(g[E.total]);N(false);return y()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var _=n.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(P.resetFilterCondition()).then((function(r){try{I.resetFields();if(e){void P.updateFilterCondition(e);I.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var H=function e(t,i){if(K){var r;return r={},r[E.pageNo]=t,r[E.pageSize]=i||x,r}else{return{}}};var Y=n.useCallbackRef((function(t){return new Promise((function(i,r){var n;n=a({},H(1,x),e.initialValues,t);return Promise.resolve(P.resetFilterCondition(n)).then((function(e){try{I.resetFields();void B(n);return i()}catch(e){return r(e)}}),r)}))}));var G=n.useCallbackRef((function(){return a({},w.queryCondition,I.getFieldsValue())}));var Q=function e(){return{onRequest:B,clearQueryCondition:_,getRequestParams:G,onResetRequest:Y,form:I,getDataSource:function e(){return V.current},onFilterDataSource:function e(t){h(t)}}};m(o,(function(){return Q()}));var U=function e(t){L(t)};var W=function t(){var i=I.getFieldsValue();if(e.onFormFinish){e.onFormFinish(a({},i,H(1,w.queryCondition.pageSize)))}else{void B(a({},i,H(1,w.queryCondition.pageSize)))}};var Z=i(e.isFull)?true:e.isFull;var $=t("fba-easy-table",{"fba-easy-table-full":Z,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var J=g((function(){return a({showSizeChanger:true,current:w.queryCondition[E.pageNo]||1,pageSize:w.queryCondition[E.pageSize]||x,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[E.pageNo,E.pageSize,x,e.pagination,w.queryCondition,S]);var M=n.useCallbackRef((function(t,i){var r,n;void B((r={},r[E.pageSize]=i,r[E.pageNo]=t,r));(n=e.pagination)==null?void 0:n.onChange==null?void 0:n.onChange(t,i)}));var X=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var ee=typeof e.children==="function"?e.children(V.current):e.children;return b(O,{value:{getEasyTableRef:Q,modelKey:e.modelKey,onRequest:B,tableList:v,tableTotal:S,loading:z,fieldNames:E,pageSize:x,initRequest:k,initialValues:e.initialValues||{},onSetPaginationStatus:U,paginationStatus:K,onFormFinish:W,form:I,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?j("div",{className:X,style:e.style,children:[b("div",{className:$,children:ee}),S>0&&b("div",{className:"fba-easy-table-pagination",children:b(y,a({size:"small"},J,{onChange:M}))})]}):b("div",{className:$,style:e.style,children:ee})})}));var H=function e(t){var i=t.queryButtonProps,r=t.resetButtonProps,o=t.filterOperate,l=t.formClassName;var u=E(),c=u.modelKey,d=u.foldKeys,p=u.fieldNames,m=u.onRequest,y=u.pageSize,h=u.paginationStatus,C=u.initialValues,S=u.form,P=u.onFormFinish;var x=typeof t.children==="function"?t.children(S):t.children;var k=g((function(){if(z(x)){return v.toArray(x.props.children)}else{return v.toArray(x)}}),[x]);var T=f(false),K=T[0],L=T[1];var V=A(c).useStore(),O=V[0],D=V[1];var I=n.useCallbackRef((function(){return new Promise((function(e,t){var i;return Promise.resolve(D.resetFilterCondition()).then((function(r){try{S.resetFields();if(h){m(a((i={},i[p.pageNo]=1,i[p.pageSize]=y,i),C))}else{m(C)}return e()}catch(e){return t(e)}}),t)}))}));var B=g((function(){var e=a({rightList:[!(i!=null&&i.hidden)?b(N,a({type:"primary",htmlType:"submit"},i,{children:(i==null?void 0:i.text)||"查询"}),"1"):null,!(r!=null&&r.hidden)?b(N,a({onClick:I},r,{children:(r==null?void 0:r.text)||"重置"}),"2"):null],leftList:[]},o==null?void 0:o(S));if(d.length>0){var t=b(N,{type:"link",style:{padding:"0"},onClick:function e(){L(!K)},children:K?j("span",{children:["收起",b(q,{style:{marginLeft:3,fontSize:12}})]}):j("span",{children:["展开",b(F,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");var n=e.rightList,l=e.leftList;if(n.length>0||l.length===0){n.push(t)}else if((l==null?void 0:l.length)>0){l.push(t)}}return k.map((function(e,t){if(!K&&d.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return b(R.Col,{children:e},t)})).filter(Boolean).concat(b(R.OperateCol,a({},e),999))}),[k,o,d,S,I,K,i,r]);return b(w,{className:"easy-table-filter",children:b(s,{form:S,autoComplete:"off",onFinish:P,initialValues:a({},C,O.queryCondition),className:l,children:t.isPure?x:b(R.Row,{gutter:[15,0],gridSize:t.formGridSize,children:B})})})};var Y=function e(){var t=E();var i=p(t.getEasyTableRef());return i.current};var G=function e(){var t=E(),i=t.getEasyTableRef;var r=p(i());return r};var Q=["children","rowKey","pagination"],U=["tooltip","title"];var W=function e(i){var r=i.children,n=i.rowKey,l=i.pagination,s=o(i,Q);var u=E(),d=u.modelKey,f=u.fieldNames,p=u.onRequest,m=u.tableList,v=u.initRequest,y=u.pageSize,C=u.tableTotal,S=u.loading,F=u.initialValues,q=u.paginationFixed,z=u.onSetPaginationStatus;var N=A(d).useStore(),R=N[0],V=N[1];var O=g((function(){if(q||l===false)return false;return a({showSizeChanger:true,current:R.queryCondition[f.pageNo]||1,pageSize:R.queryCondition[f.pageSize]||y,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:h})}),[f.pageNo,f.pageSize,y,l,q,i.pagination,R.queryCondition,C]);var D=function e(t,r,n,a){if(a.action==="paginate"&&O){var o;p((o={},o[f.pageSize]=t.pageSize,o[f.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,r,n,a)}};var I=g((function(){if(m.length===0){return[]}if(typeof n==="string"&&P(m[0][n])){return m.map((function(e){e[n]=x();return e}))}return m}),[m,n]);T.useEffectCustom((function(){var e=q||O!==false;z(e);if(v!==false||!R.isInit){if(e){var t;void p(a((t={},t[f.pageNo]=1,t[f.pageSize]=y,t),F,R.queryCondition))}else{void p(F)}}else{void V.updateFilterCondition(F)}void V.updateInitStatus()}),[]);var B=g((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.title,r=o(e,U);if(typeof i==="string"&&!!t){return a({},r,{title:b(L,{title:i,tooltip:t})})}return e}))}),[i.columns]);return j(w,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[r,k()?b(c,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{columns:B,pagination:O,rowKey:n,onChange:D,loading:S,dataSource:I})):b(K,{children:b(c,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{columns:B,pagination:O,rowKey:n,onChange:D,loading:S,dataSource:I}))})]})};var Z=e.attachPropertiesToComponent(_,{Filter:H,Table:W,useEasyTablRef:G,useEasyTable:Y});export{Z as EasyTable};
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message, PaginationProps } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /** EasyTable唯一值,可用于缓存查询条件 */\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * ```\n */\n isInline?: boolean;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props: EasyTableProps, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'tatal',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm();\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, pageSize),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({ ...values, ...getPaginationData(1, state.queryCondition.pageSize) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition.pageSize),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames('fba-easy-table', {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n });\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames('fba-easy-table-wrapper', {\n 'fba-easy-table-wrapper-inline': props.isInline,\n });\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey: props.modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className}>{children}</div>\n )}\n </EasyTableCtxProvider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, ReactElement, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n\n formClassName?: string;\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate, formClassName } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n });\n\n const formRowChildren = useMemo(() => {\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n leftList: [],\n ...filterOperate?.(form),\n };\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n const { rightList, leftList } = formOperateColProps;\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(<FormGrid.OperateCol key={999} {...formOperateColProps} />);\n }, [childrens, filterOperate, foldKeys, form, onReset, openFold, queryButtonProps, resetButtonProps]);\n\n return (\n <SimpleLayout className=\"easy-table-filter\">\n <Form\n form={form}\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useEasyTableCtx();\n const resp = useRef(ctx.getEasyTableRef());\n return resp.current;\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * ```\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: keyof T | (string & {});\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n tableWrapperStyle?: CSSProperties;\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, title, ...otherProps } = item;\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip title={title} tooltip={tooltip} />,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 4. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 5. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 6. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 7. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 8. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getEasyTableRef","getDataSource","onFilterDataSource","filterDataSource","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","useMemo","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","value","tableList","tableTotal","foldKeys","_jsxs","PaginationWrapper","size","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","formClassName","_useEasyTableCtx","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","leftList","length","changeFolditem","style","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","filter","Boolean","concat","OperateCol","SimpleLayout","onFinish","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","ctx","resp","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","title","_excluded2","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /** EasyTable唯一值,可用于缓存查询条件 */\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * ```\n */\n isInline?: boolean;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props: EasyTableProps, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'tatal',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm();\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, pageSize),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({ ...values, ...getPaginationData(1, state.queryCondition.pageSize) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition.pageSize),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey: props.modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableCtxProvider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, ReactElement, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n\n formClassName?: string;\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate, formClassName } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n });\n\n const formRowChildren = useMemo(() => {\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n leftList: [],\n ...filterOperate?.(form),\n };\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n const { rightList, leftList } = formOperateColProps;\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(<FormGrid.OperateCol key={999} {...formOperateColProps} />);\n }, [childrens, filterOperate, foldKeys, form, onReset, openFold, queryButtonProps, resetButtonProps]);\n\n return (\n <SimpleLayout className=\"easy-table-filter\">\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useEasyTableCtx();\n const resp = useRef(ctx.getEasyTableRef());\n return resp.current;\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * ```\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: keyof T | (string & {});\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n tableWrapperStyle?: CSSProperties;\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, title, ...otherProps } = item;\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip title={title} tooltip={tooltip} />,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 4. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 5. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 6. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 7. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 8. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getEasyTableRef","getDataSource","onFilterDataSource","filterDataSource","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","useMemo","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","value","tableList","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","formClassName","_useEasyTableCtx","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","leftList","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","filter","Boolean","concat","OperateCol","SimpleLayout","autoComplete","onFinish","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","ctx","resp","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","title","_excluded2","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}