@flatbiz/antd 4.2.26 → 4.2.27

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.
@@ -6,5 +6,5 @@ import './../fba-utils/index.css';
6
6
  import './../dropdown-menu-wrapper/index.css';
7
7
  import './index.css';
8
8
  /*! @flatjs/forge MIT @flatbiz/antd */
9
- export{a as ButtonOperate,B as ButtonOperateItemContent}from"../button-operate-f09bce7f.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-698da5b1.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-a4c7d94d.js";import"../dropdown-menu-wrapper-24932100.js";
9
+ export{a as ButtonOperate,B as ButtonOperateItemContent}from"../button-operate-2f27502d.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-698da5b1.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-a4c7d94d.js";import"../dropdown-menu-wrapper-3d2b8cda.js";
10
10
  //# 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 i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isUndefined as n}from"@dimjs/lang/cjs/is-undefined";import{classNames as o}from"@dimjs/utils/cjs/class-names";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{isString as s}from"@dimjs/lang/cjs/is-string";import{isPromise as l}from"@dimjs/lang/cjs/is-promise";import{hooks as a}from"@wove/react/cjs/hooks";import{Popover as p,Tooltip as c,Space as f,Divider as u,Popconfirm as d,Button as m}from"antd";import{Fragment as h,useState as v,isValidElement as g,useMemo as T,createElement as j}from"react";import{B as y}from"./button-wrapper-698da5b1.js";import{D as k}from"./dropdown-menu-wrapper-24932100.js";import{f as C}from"./fba-utils-a4c7d94d.js";import{jsx as P,jsxs as b}from"react/jsx-runtime";var w=["text","onClick","needConfirm","confirmMessage","popconfirmProps"];var x=function r(e){if(e.hoverTips){if(e.tipsType==="popover"){return P(p,{content:e.hoverTips,zIndex:1e3,children:P(h,{children:e.children})})}return P(c,{title:e.hoverTips,zIndex:1e3,children:P(h,{children:e.children})})}return P(h,{children:e.children})};var B=function p(c){var h=v(false),B=h[0],I=h[1];var z=a.useCallbackRef((function(r,e){var i=r.onClick==null?void 0:r.onClick(e);if(i&&l(i)){I(true);return i.finally((function(){I(false)}))}return}));var F=c.operateList.filter((function(r){if(!r)return false;if(g(r)){var e,i;if(((e=r.props)==null?void 0:e["hidden"])===true)return false;var n=(i=r.props)==null?void 0:i["v-permission"];if(s(n)){return C.hasPermission(n)}return true}if(t(r)){if(!C.hasPermission(r["permission"])){return false}return!r["hidden"]}return false}));var M=T((function(){return F.filter((function(r){if(g(r)){return true}return!r["isFold"]}))}),[F]);var N=T((function(){var r=F.filter((function(r){if(g(r)){return false}return r["isFold"]}));var i=[];r.forEach((function(r){var n=e({},r);delete n.isFold;i.push(n)}));return i}),[F]);var O=c.gap===undefined?10:c.gap;var H=!c.split?O:0;return P("div",{className:o("table-operate",c.className),style:c.style,children:b(f,e({split:c.split?P(u,{type:"vertical"}):null,size:H,wrap:n(c.wrap)?true:c.wrap},c.spaceProps,{children:[M.map((function(r,n){if(r&&g(r)){return P(x,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:r},n)}var o=r.text,t=r.onClick,s=r.needConfirm,l=r.confirmMessage,a=r.popconfirmProps,p=i(r,w);var c=r.type||"link";if(s&&!p.disabled){var f=!!r.color?false:true;return P(x,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:j(d,e({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},a,{title:l,onConfirm:z.bind(null,r),key:n,okButtonProps:{loading:B},onOpenChange:function r(e){if(!e){I(false)}}}),P(y,e({danger:f},p,{onClick:undefined,type:c,children:g(o)?P("span",{children:o}):o})))},n)}return P(x,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:P(y,e({loadingPosition:"center"},p,{type:c,onClick:function r(e){e.stopPropagation();return t==null?void 0:t(e)},children:g(o)?P("span",{children:o}):o}))},n)})),N.length>0?P(k,{menuList:N,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-f09bce7f.js.map
2
+ import r from"@ant-design/icons/es/icons/MoreOutlined";import{a as e,_ as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isUndefined as n}from"@dimjs/lang/cjs/is-undefined";import{classNames as o}from"@dimjs/utils/cjs/class-names";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{isString as s}from"@dimjs/lang/cjs/is-string";import{isPromise as l}from"@dimjs/lang/cjs/is-promise";import{hooks as a}from"@wove/react/cjs/hooks";import{Popover as p,Tooltip as c,Space as f,Divider as u,Popconfirm as d,Button as m}from"antd";import{Fragment as h,useState as v,isValidElement as g,useMemo as T,createElement as j}from"react";import{B as y}from"./button-wrapper-698da5b1.js";import{D as k}from"./dropdown-menu-wrapper-3d2b8cda.js";import{f as C}from"./fba-utils-a4c7d94d.js";import{jsx as P,jsxs as b}from"react/jsx-runtime";var w=["text","onClick","needConfirm","confirmMessage","popconfirmProps"];var x=function r(e){if(e.hoverTips){if(e.tipsType==="popover"){return P(p,{content:e.hoverTips,zIndex:1e3,children:P(h,{children:e.children})})}return P(c,{title:e.hoverTips,zIndex:1e3,children:P(h,{children:e.children})})}return P(h,{children:e.children})};var B=function p(c){var h=v(false),B=h[0],I=h[1];var z=a.useCallbackRef((function(r,e){var i=r.onClick==null?void 0:r.onClick(e);if(i&&l(i)){I(true);return i.finally((function(){I(false)}))}return}));var F=c.operateList.filter((function(r){if(!r)return false;if(g(r)){var e,i;if(((e=r.props)==null?void 0:e["hidden"])===true)return false;var n=(i=r.props)==null?void 0:i["v-permission"];if(s(n)){return C.hasPermission(n)}return true}if(t(r)){if(!C.hasPermission(r["permission"])){return false}return!r["hidden"]}return false}));var M=T((function(){return F.filter((function(r){if(g(r)){return true}return!r["isFold"]}))}),[F]);var N=T((function(){var r=F.filter((function(r){if(g(r)){return false}return r["isFold"]}));var i=[];r.forEach((function(r){var n=e({},r);delete n.isFold;i.push(n)}));return i}),[F]);var O=c.gap===undefined?10:c.gap;var H=!c.split?O:0;return P("div",{className:o("table-operate",c.className),style:c.style,children:b(f,e({split:c.split?P(u,{type:"vertical"}):null,size:H,wrap:n(c.wrap)?true:c.wrap},c.spaceProps,{children:[M.map((function(r,n){if(r&&g(r)){return P(x,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:r},n)}var o=r.text,t=r.onClick,s=r.needConfirm,l=r.confirmMessage,a=r.popconfirmProps,p=i(r,w);var c=r.type||"link";if(s&&!p.disabled){var f=!!r.color?false:true;return P(x,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:j(d,e({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},a,{title:l,onConfirm:z.bind(null,r),key:n,okButtonProps:{loading:B},onOpenChange:function r(e){if(!e){I(false)}}}),P(y,e({danger:f},p,{onClick:undefined,type:c,children:g(o)?P("span",{children:o}):o})))},n)}return P(x,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:P(y,e({loadingPosition:"center"},p,{type:c,onClick:function r(e){e.stopPropagation();return t==null?void 0:t(e)},children:g(o)?P("span",{children:o}):o}))},n)})),N.length>0?P(k,{menuList:N,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-2f27502d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button-operate-f09bce7f.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 } from '../dropdown-menu-wrapper';\nimport { fbaUtils } from '../fba-utils';\n\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n /** hover 提示文字 */\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 needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n // 是否折叠合拢\n isFold?: boolean;\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\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & { children?: ReactNode },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Tooltip>\n );\n }\n return <Fragment>{props.children}</Fragment>;\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 hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n {item}\n </ButtonOperateItemContent>\n );\n }\n const { text, onClick, needConfirm, confirmMessage, popconfirmProps, ...otherProps } = item;\n const type = item.type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = !!item.color ? false : true;\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\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 >\n <ButtonWrapper danger={danger} {...otherProps} onClick={undefined} type={type}>\n {isValidElement(text) ? <span>{text}</span> : text}\n </ButtonWrapper>\n </Popconfirm>\n </ButtonOperateItemContent>\n );\n }\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={type}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n >\n {isValidElement(text) ? <span>{text}</span> : text}\n </ButtonWrapper>\n </ButtonOperateItemContent>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList}>\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","Fragment","Tooltip","title","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","isValidElement","_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","ButtonWrapper","loadingPosition","stopPropagation","length","DropdownMenuWrapper","menuList","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"button-operate-2f27502d.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 } from '../dropdown-menu-wrapper';\nimport { fbaUtils } from '../fba-utils';\n\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n /** hover 提示文字 */\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 needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n // 是否折叠合拢\n isFold?: boolean;\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\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & { children?: ReactNode },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Tooltip>\n );\n }\n return <Fragment>{props.children}</Fragment>;\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 hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n {item}\n </ButtonOperateItemContent>\n );\n }\n const { text, onClick, needConfirm, confirmMessage, popconfirmProps, ...otherProps } = item;\n const type = item.type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = !!item.color ? false : true;\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\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 >\n <ButtonWrapper danger={danger} {...otherProps} onClick={undefined} type={type}>\n {isValidElement(text) ? <span>{text}</span> : text}\n </ButtonWrapper>\n </Popconfirm>\n </ButtonOperateItemContent>\n );\n }\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={type}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n >\n {isValidElement(text) ? <span>{text}</span> : text}\n </ButtonWrapper>\n </ButtonOperateItemContent>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList}>\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","Fragment","Tooltip","title","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","isValidElement","_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","ButtonWrapper","loadingPosition","stopPropagation","length","DropdownMenuWrapper","menuList","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":";i6BAyDaA,EAA2B,SAA3BA,EACXC,GAEA,GAAIA,EAAMC,UAAW,CACnB,GAAID,EAAME,WAAa,UAAW,CAChC,OACEC,EAACC,EAAO,CAACC,QAASL,EAAMC,UAAWK,OAAQ,IAAKC,SAC9CJ,EAACK,EAAQ,CAAAD,SAAEP,EAAMO,YAGvB,CACA,OACEJ,EAACM,EAAO,CAACC,MAAOV,EAAMC,UAAWK,OAAQ,IAAKC,SAC5CJ,EAACK,EAAQ,CAAAD,SAAEP,EAAMO,YAGvB,CACA,OAAOJ,EAACK,EAAQ,CAAAD,SAAEP,EAAMO,UAC1B,MAEaI,EAAwC,SAAxCA,EAAyCX,GACpD,IAAAY,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAE1B,IAAMI,EAAYC,EAAMC,gBAAe,SAACC,EAAyBC,GAC/D,IAAMC,EAASF,EAAKG,SAALH,UAAAA,EAAAA,EAAKG,QAAUF,GAC9B,GAAIC,GAAUE,EAAUF,GAAS,CAC/BN,EAAW,MACX,OAAOM,EAAOG,SAAQ,WACpBT,EAAW,MACb,GACF,CACA,MACF,IAEA,IAAMU,EAAczB,EAAMyB,YAAYC,QAAO,SAACP,GAC5C,IAAKA,EAAM,OAAO,MAClB,GAAIQ,EAAeR,GAAO,CAAA,IAAAS,EAAAC,EACxB,KAAID,EAAAT,EAAKnB,QAAK,UAAA,EAAV4B,EAAa,aAAc,KAAM,OAAO,MAC5C,IAAME,GAAUD,EAAGV,EAAKnB,QAAL6B,UAAAA,EAAAA,EAAa,gBAChC,GAAIE,EAASD,GAAa,CACxB,OAAOE,EAASC,cAAcH,EAChC,CACA,OAAO,IACT,CACA,GAAII,EAAcf,GAAO,CACvB,IAAKa,EAASC,cAAcd,EAAK,eAAgB,CAC/C,OAAO,KACT,CACA,OAAQA,EAAK,SACf,CACA,OAAO,KACT,IAEA,IAAMgB,EAAWC,GAAQ,WACvB,OAAOX,EAAYC,QAAO,SAACP,GACzB,GAAIQ,EAAeR,GAAO,CACxB,OAAO,IACT,CACA,OAAQA,EAAK,SACf,GACF,GAAG,CAACM,IAEJ,IAAMY,EAAWD,GAAQ,WACvB,IAAME,EAAab,EAAYC,QAAO,SAACP,GACrC,GAAIQ,EAAeR,GAAO,CACxB,OAAO,KACT,CACA,OAAOA,EAAK,SACd,IACA,IAAME,EAAS,GACfiB,EAAWC,SAAQ,SAACpB,GAClB,IAAMqB,EAAMC,EAAA,CAAA,EAAQtB,UAEbqB,EAAOE,OACdrB,EAAOsB,KAAKH,EACd,IACA,OAAOnB,CACT,GAAG,CAACI,IAEJ,IAAMmB,EAAM5C,EAAM4C,MAAQC,UAAY,GAAK7C,EAAM4C,IACjD,IAAME,GAAQ9C,EAAM+C,MAAQH,EAAM,EAElC,OACEzC,EAAA,MAAA,CAAK6C,UAAWC,EAAW,gBAAiBjD,EAAMgD,WAAYE,MAAOlD,EAAMkD,MAAM3C,SAC/E4C,EAACC,EAAKX,EAAA,CACJM,MAAO/C,EAAM+C,MAAQ5C,EAACkD,EAAO,CAACC,KAAK,aAAgB,KACnDR,KAAMA,EACNS,KAAMC,EAAYxD,EAAMuD,MAAQ,KAAOvD,EAAMuD,MACzCvD,EAAMyD,WAAU,CAAAlD,SAAA,CAEnB4B,EAASuB,KAAI,SAACvC,EAAMwC,GACnB,GAAIxC,GAAQQ,EAAeR,GAAO,CAChC,OACEhB,EAACJ,EAAwB,CAACE,UAAWkB,EAAKlB,UAAWC,SAAUiB,EAAKjB,SAASK,SAC1EY,GADgFwC,EAIvF,CACA,IAAQC,EAA+EzC,EAA/EyC,KAAMtC,EAAyEH,EAAzEG,QAASuC,EAAgE1C,EAAhE0C,YAAaC,EAAmD3C,EAAnD2C,eAAgBC,EAAmC5C,EAAnC4C,gBAAoBC,EAAUC,EAAK9C,EAAI+C,GAC3F,IAAMZ,EAAOnC,EAAKmC,MAAQ,OAC1B,GAAIO,IAAgBG,EAAWG,SAAU,CACvC,IAAMC,IAAWjD,EAAKkD,MAAQ,MAAQ,KACtC,OACElE,EAACJ,EAAwB,CAACE,UAAWkB,EAAKlB,UAAWC,SAAUiB,EAAKjB,SAASK,SAC3E+D,EAACC,EAAU9B,EAAA,CACT+B,OAAO,KACPC,WAAW,KACXC,QAAS,CAAC,SACVC,UAAU,WACVC,MAAO,KACPC,qBAAsB,MAClBd,EAAe,CACnBrD,MAAOoD,EACP9C,UAAWA,EAAU8D,KAAK,KAAM3D,GAChC4D,IAAKpB,EACLqB,cAAe,CACblE,QAAAA,GAEFmE,aAAc,SAAAA,EAACC,GACb,IAAKA,EAAO,CACVnE,EAAW,MACb,CACF,IAEAZ,EAACgF,EAAa1C,EAAA,CAAC2B,OAAQA,GAAYJ,EAAU,CAAE1C,QAASuB,UAAWS,KAAMA,EAAK/C,SAC3EoB,EAAeiC,GAAQzD,EAAA,OAAA,CAAAI,SAAOqD,IAAeA,OAtB+BD,EA2BvF,CACA,OACExD,EAACJ,EAAwB,CAACE,UAAWkB,EAAKlB,UAAWC,SAAUiB,EAAKjB,SAASK,SAC3EJ,EAACgF,EAAa1C,EAAA,CACZ2C,gBAAgB,UACZpB,EAAU,CACdV,KAAMA,EACNhC,QAAS,SAAAA,EAACF,GACRA,EAAMiE,kBACN,OAAO/D,GAAO,UAAA,EAAPA,EAAUF,EACjB,EAAAb,SAEDoB,EAAeiC,GAAQzD,EAAA,OAAA,CAAAI,SAAOqD,IAAeA,MAViCD,EActF,IACAtB,EAASiD,OAAS,EACjBnF,EAACoF,EAAmB,CAACC,SAAUnD,EAAS9B,SACtCJ,EAACsF,EAAM,CACLnC,KAAK,OACLN,UAAU,mBACV1B,QAAS,SAAAA,EAACF,GACRA,EAAMiE,iBACN,EAAA9E,SAEDP,EAAM0F,SAAW1F,EAAM0F,SAAWvF,EAAAwF,EAAA,QAGrC,UAIZ,EAEAhF,EAAciF,aAAe,CAC3B7C,MAAO"}
@@ -5,5 +5,5 @@ import './../fba-hooks/index.css';
5
5
  import './../fba-utils/index.css';
6
6
  import './index.css';
7
7
  /*! @flatjs/forge MIT @flatbiz/antd */
8
- export{D as DropdownMenuWrapper}from"../dropdown-menu-wrapper-24932100.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"antd";import"react";import"../button-wrapper-698da5b1.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-a4c7d94d.js";
8
+ export{D as DropdownMenuWrapper}from"../dropdown-menu-wrapper-3d2b8cda.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"antd";import"react";import"../button-wrapper-698da5b1.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-a4c7d94d.js";
9
9
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
1
  /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{_ as e,a as o}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isPromise as r}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{Popconfirm as i,Dropdown as t}from"antd";import{useState as a,createElement as l,useMemo as s}from"react";import{B as f}from"./button-wrapper-698da5b1.js";import{fbaHooks as u}from"./fba-hooks/index.js";import{f as p}from"./fba-utils-a4c7d94d.js";import{jsx as d}from"react/jsx-runtime";function c(e){var o=true;var r=false;while(o){if(e.tagName==="HTML"||e.tagName==="BODY"){o=false;r=false}else{var n=window.getComputedStyle(e),i=n.position;if(i==="sticky"){r=true;o=false}else{if(!e||!e.parentNode){o=false}else{e=e.parentNode}}}}return r}var m=["menuList"],v=["text","color","permission","needConfirm","confirmMessage","hidden","type","style","popconfirmProps"];var g=function g(y){var k=y.menuList,C=e(y,m);var h=a([]),b=h[0],P=h[1];var w=n.useId(undefined,"DropdownMenuWrapper");var x=a({}),j=x[0],N=x[1];var B=n.useCallbackRef((function(e,o){var r;o.stopPropagation();N((r={},r[e]={open:true},r))}));var S=n.useCallbackRef((function(e,n,i){i.stopPropagation();var t=e.onClick==null?void 0:e.onClick(i);if(t&&r(t)){j[n]={loading:true,open:true};N(o({},j));t.finally((function(){j[n]={loading:false,open:false};N(o({},j))}));return}j[n]={loading:false,open:false};N(o({},j))}));var z=n.useCallbackRef((function(e,o){o.stopPropagation();return e.onClick==null?void 0:e.onClick(o)}));u.useEffectCustom((function(){var r=[];k.filter(Boolean).forEach((function(n,t){var a,s;if(!n)return;var u=n.text,c=n.color,m=n.permission,g=n.needConfirm,y=n.confirmMessage,k=n.hidden,C=n.type,h=n.style,b=n.popconfirmProps,P=e(n,v);if(k)return;if(m&&!p.hasPermission(m))return;var w=c?o({color:c},h):h;var x=C||"link";var M={key:t,label:l(f,o({loadingPosition:"center",size:"small"},P,{type:x,style:w,key:t,onClick:z.bind(null,n)}),u)};var T={key:t,label:l(i,o({okText:"确定",cancelText:"取消",trigger:["click"],destroyTooltipOnHide:true},b,{title:y,onConfirm:S.bind(null,n,t),onCancel:function e(o){o==null?void 0:o.stopPropagation();N({})},overlayClassName:"dmw-popconfirm",arrow:true,key:t,overlayStyle:{zIndex:10},open:((a=j[t])==null?void 0:a.open)||false,okButtonProps:{loading:(s=j[t])==null?void 0:s.loading}}),d(f,o({loadingPosition:"center",size:"small",danger:c?false:P.danger},P,{onClick:B.bind(null,t),type:x,style:w,children:u})))};if(g&&!P.disabled){r.push(T)}else{r.push(M)}}));P(r)}),[k,j]);var M=document.querySelector("."+w);var T=s((function(){if(M&&c(M)){return undefined}return M}),[M]);return d("div",{className:w,style:{position:"relative"},children:d(t,o({trigger:(C==null?void 0:C.trigger)||["hover"],getPopupContainer:T?function(){return M}:undefined,arrow:{pointAtCenter:true}},C,{overlayStyle:o({zIndex:9},C.overlayStyle),menu:{items:b},onOpenChange:function e(o){if(!o){N({})}},children:y.children}))})};export{g as D};
3
- //# sourceMappingURL=dropdown-menu-wrapper-24932100.js.map
2
+ import{_ as e,a as o}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isPromise as r}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{Popconfirm as i,Dropdown as t}from"antd";import{useState as a,createElement as l,useMemo as s}from"react";import{B as f}from"./button-wrapper-698da5b1.js";import{fbaHooks as u}from"./fba-hooks/index.js";import{f as p}from"./fba-utils-a4c7d94d.js";import{jsx as d}from"react/jsx-runtime";function c(e){var o=true;var r=false;while(o){if(e.tagName==="HTML"||e.tagName==="BODY"){o=false;r=false}else{var n=window.getComputedStyle(e),i=n.position;if(i==="sticky"){r=true;o=false}else{if(!e||!e.parentNode){o=false}else{e=e.parentNode}}}}return r}var m=["menuList"],v=["text","color","permission","needConfirm","confirmMessage","hidden","type","style","popconfirmProps"];var g=function g(y){var k=y.menuList,C=e(y,m);var h=a([]),b=h[0],P=h[1];var x=n.useId(undefined,"DropdownMenuWrapper");var w=a({}),j=w[0],N=w[1];var B=n.useCallbackRef((function(e,o){var r;o.stopPropagation();N((r={},r[e]={open:true},r))}));var S=n.useCallbackRef((function(e,n,i){i.stopPropagation();var t=e.onClick==null?void 0:e.onClick(i);if(t&&r(t)){j[n]={loading:true,open:true};N(o({},j));t.finally((function(){j[n]={loading:false,open:false};N(o({},j))}));return}j[n]={loading:false,open:false};N(o({},j))}));var z=n.useCallbackRef((function(e,o){o.stopPropagation();return e.onClick==null?void 0:e.onClick(o)}));u.useEffectCustom((function(){var r=[];k.filter(Boolean).forEach((function(n,t){var a,s;if(!n)return;var u=n.text,c=n.color,m=n.permission,g=n.needConfirm,y=n.confirmMessage,k=n.hidden,C=n.type,h=n.style,b=n.popconfirmProps,P=e(n,v);if(k)return;if(m&&!p.hasPermission(m))return;var x=c?o({color:c},h):h;var w=C||"link";var M={key:t,label:l(f,o({loadingPosition:"center",size:"small"},P,{type:w,style:x,key:t,onClick:z.bind(null,n)}),u)};var T={key:t,label:l(i,o({okText:"确定",cancelText:"取消",trigger:["click"],destroyTooltipOnHide:true},b,{title:y,onConfirm:S.bind(null,n,t),onCancel:function e(o){o==null?void 0:o.stopPropagation();N({})},overlayClassName:"dmw-popconfirm",arrow:true,key:t,overlayStyle:{zIndex:10},open:((a=j[t])==null?void 0:a.open)||false,okButtonProps:{loading:(s=j[t])==null?void 0:s.loading}}),d(f,o({loadingPosition:"center",size:"small",danger:c?false:P.danger},P,{onClick:B.bind(null,t),type:w,style:x,children:u})))};if(g&&!P.disabled){r.push(T)}else{r.push(M)}}));P(r)}),[k,j]);var M=document.querySelector("."+x);var T=s((function(){if(y.isFixed||M&&c(M)){return undefined}return M}),[y.isFixed,M]);return d("div",{className:x,style:{position:"relative"},children:d(t,o({trigger:(C==null?void 0:C.trigger)||["hover"],getPopupContainer:T?function(){return M}:undefined,arrow:{pointAtCenter:true}},C,{overlayStyle:o({zIndex:9},C.overlayStyle),menu:{items:b},onOpenChange:function e(o){if(!o){N({})}},children:y.children}))})};export{g as D};
3
+ //# sourceMappingURL=dropdown-menu-wrapper-3d2b8cda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu-wrapper-3d2b8cda.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 { isPromise } from '@dimjs/lang';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Dropdown, DropdownProps, Popconfirm, PopconfirmProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { fbaUtils } from '../fba-utils';\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 popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n isFixed?: boolean;\n}\n\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const [menuItems, setMenuItems] = useState<ItemType[]>([]);\n const clsName = hooks.useId(undefined, 'DropdownMenuWrapper');\n\n const [statusMap, setStatusMap] = useState<Record<string, { open?: boolean; loading?: boolean }>>({});\n const onConfirmtTriggerClick = hooks.useCallbackRef((index, event) => {\n event.stopPropagation();\n setStatusMap({ [index]: { open: true } });\n });\n\n const onConfirm = hooks.useCallbackRef((item: DropdownMenuItem, index: number, event) => {\n event.stopPropagation();\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n statusMap[index] = { loading: true, open: true };\n setStatusMap({ ...statusMap });\n result.finally(() => {\n statusMap[index] = { loading: false, open: false };\n setStatusMap({ ...statusMap });\n });\n return;\n }\n statusMap[index] = { loading: false, open: false };\n setStatusMap({ ...statusMap });\n });\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n event.stopPropagation();\n return item.onClick?.(event);\n });\n\n fbaHooks.useEffectCustom(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n color,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n style,\n popconfirmProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const newStyle = color ? { color, ...style } : style;\n const buttonType = type || 'link';\n const nromal = {\n key: index,\n label: (\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n {...otherProps}\n type={buttonType}\n style={newStyle}\n key={index}\n onClick={onClick.bind(null, item)}\n >\n {text}\n </ButtonWrapper>\n ),\n };\n const confirm = {\n key: index,\n label: (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item, index)}\n onCancel={(event) => {\n event?.stopPropagation();\n setStatusMap({});\n }}\n overlayClassName=\"dmw-popconfirm\"\n arrow={true}\n key={index}\n overlayStyle={{ zIndex: 10 }}\n open={statusMap[index]?.open || false}\n okButtonProps={{\n loading: statusMap[index]?.loading,\n }}\n >\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n danger={color ? false : otherProps.danger}\n {...otherProps}\n onClick={onConfirmtTriggerClick.bind(null, index)}\n type={buttonType}\n style={newStyle}\n >\n {text}\n </ButtonWrapper>\n </Popconfirm>\n ),\n };\n if (needConfirm && !otherProps.disabled) {\n menuItemsNew.push(confirm);\n } else {\n menuItemsNew.push(nromal);\n }\n });\n setMenuItems(menuItemsNew);\n }, [menuList, statusMap]);\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 return (\n <div className={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 onOpenChange={(_open) => {\n if (!_open) {\n setStatusMap({});\n }\n }}\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","_useState","useState","menuItems","setMenuItems","clsName","_hooks","useId","undefined","_useState2","statusMap","setStatusMap","onConfirmtTriggerClick","useCallbackRef","index","event","_setStatusMap","stopPropagation","open","onConfirm","item","onClick","_isPromise","loading","_extends","finally","fbaHooks","useEffectCustom","menuItemsNew","filter","Boolean","forEach","_statusMap$index","_statusMap$index2","text","color","permission","needConfirm","confirmMessage","hidden","type","style","popconfirmProps","otherProps","_excluded2","fbaUtils","hasPermission","newStyle","buttonType","nromal","key","label","_createElement","ButtonWrapper","loadingPosition","size","bind","confirm","Popconfirm","okText","cancelText","trigger","destroyTooltipOnHide","title","onCancel","overlayClassName","arrow","overlayStyle","zIndex","okButtonProps","_jsx","danger","children","disabled","push","target","document","querySelector","container","useMemo","isFixed","className","Dropdown","getPopupContainer","pointAtCenter","menu","items","onOpenChange","_open"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- export{d as dynamicNode}from"../dynamic-node-577ef8fd.js";import"@dimjs/utils/cjs/class-names";import"react-dom";import"../dom-4d04aa64.js";import"react/jsx-runtime";
4
+ export{d as dynamicNode}from"../dynamic-node-c7864af4.js";import"@dimjs/utils/cjs/class-names";import"react-dom/client";import"../dom-4d04aa64.js";import"react/jsx-runtime";
5
5
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ /*! @flatjs/forge MIT @flatbiz/antd */
2
+ import{classNames as e}from"@dimjs/utils/cjs/class-names";import{createRoot as n}from"react-dom/client";import{b as t}from"./dom-4d04aa64.js";import{jsx as r}from"react/jsx-runtime";var i={append:function i(o){if(o===void 0){o={}}var d=function(){var e;if(typeof o.getContainer==="string"){e=document.querySelector(o.getContainer)}else if(typeof o.getContainer==="function"){e=o.getContainer()}else{e=t().divElement}return e}();var a=e("v-dynamic-node",{"v-dynamic-node-fixed":o.fixed},o.className);var m="id_"+Date.now();var c=n(d);c.render(r("div",{className:a,id:m,children:o.content}));window["_dynamic_node_element_id"]=m;return{elementId:m}},remove:function e(n){var t=n||window["_dynamic_node_element_id"];if(t){try{var r;(r=document.querySelector("#"+t))==null?void 0:r.remove()}catch(e){}}}};export{i as d};
3
+ //# sourceMappingURL=dynamic-node-c7864af4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-node-c7864af4.js","sources":["@flatbiz/antd/src/dynamic-node/dynamic-node.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { CSSProperties, ReactElement } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { bodyAppendDivElement } from '../_utils/dom';\nimport './style.less';\n\nexport type TDynamicNodeProps = {\n className?: string;\n getContainer?: HTMLElement | (() => HTMLElement) | string;\n content?: ReactElement;\n fixed?: boolean;\n style?: CSSProperties;\n};\n\n/**\n * 动态添加 element 元素\n * ```\n * 1. 默认添加到 body 下\n * 2. 可通过 getContainer 参数设置添加位置\n * ```\n */\nexport const dynamicNode = {\n append: (props: TDynamicNodeProps = {}) => {\n const container = (() => {\n let tempElement;\n if (typeof props.getContainer === 'string') {\n tempElement = document.querySelector(props.getContainer) as Element;\n } else if (typeof props.getContainer === 'function') {\n tempElement = props.getContainer();\n } else {\n tempElement = bodyAppendDivElement().divElement;\n }\n return tempElement as Element;\n })();\n\n const className = classNames('v-dynamic-node', { 'v-dynamic-node-fixed': props.fixed }, props.className);\n const nodeElementId = `id_${Date.now()}`;\n const root = createRoot(container);\n root.render(\n <div className={className} id={nodeElementId}>\n {props.content}\n </div>,\n );\n window['_dynamic_node_element_id'] = nodeElementId;\n return { elementId: nodeElementId };\n },\n remove: (elementId?: string) => {\n const dynamicElementId = elementId || window['_dynamic_node_element_id'];\n if (dynamicElementId) {\n try {\n document.querySelector(`#${dynamicElementId}`)?.remove();\n } catch (error) {\n //\n }\n }\n },\n};\n"],"names":["dynamicNode","append","props","container","tempElement","getContainer","document","querySelector","bodyAppendDivElement","divElement","className","_classNames","fixed","nodeElementId","Date","now","root","createRoot","render","_jsx","id","children","content","window","elementId","remove","dynamicElementId","_document$querySelect","error"],"mappings":";sLAqBO,IAAMA,EAAc,CACzBC,OAAQ,SAAAA,EAACC,GAAkC,GAAlCA,SAAwB,EAAA,CAAxBA,EAA2B,CAAA,CAAE,CACpC,IAAMC,EAAa,WACjB,IAAIC,EACJ,UAAWF,EAAMG,eAAiB,SAAU,CAC1CD,EAAcE,SAASC,cAAcL,EAAMG,aAC5C,MAAM,UAAWH,EAAMG,eAAiB,WAAY,CACnDD,EAAcF,EAAMG,cACtB,KAAO,CACLD,EAAcI,IAAuBC,UACvC,CACA,OAAOL,CACT,CAVmB,GAYnB,IAAMM,EAAYC,EAAW,iBAAkB,CAAE,uBAAwBT,EAAMU,OAASV,EAAMQ,WAC9F,IAAMG,EAAa,MAASC,KAAKC,MACjC,IAAMC,EAAOC,EAAWd,GACxBa,EAAKE,OACHC,EAAA,MAAA,CAAKT,UAAWA,EAAWU,GAAIP,EAAcQ,SAC1CnB,EAAMoB,WAGXC,OAAO,4BAA8BV,EACrC,MAAO,CAAEW,UAAWX,EACrB,EACDY,OAAQ,SAAAA,EAACD,GACP,IAAME,EAAmBF,GAAaD,OAAO,4BAC7C,GAAIG,EAAkB,CACpB,IAAI,IAAAC,GACFA,EAAArB,SAASC,cAAa,IAAKmB,KAA3BC,UAAAA,EAAAA,EAAgDF,QACjD,CAAC,MAAOG,GACP,CAEJ,CACF"}
@@ -8,5 +8,5 @@ import './../simple-layout/index.css';
8
8
  import './../table-scrollbar/index.css';
9
9
  import './index.css';
10
10
  /*! @flatjs/forge MIT @flatbiz/antd */
11
- import{a as e}from"../attach-properties-to-component-9d9644cf.js";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{isUndefined as t}from"@dimjs/lang/cjs/is-undefined";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{hooks as r}from"@wove/react/cjs/hooks";import{a,_ as o}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as l}from"@dimjs/model";import{Select as s,Form as u,Pagination as d,message as c,Table as p}from"antd";import{forwardRef as f,useState as m,useImperativeHandle as g,useMemo as v,Children as y,useRef as h}from"react";import{createCtx as C}from"@wove/react/cjs/create-ctx";import{Model as b}from"@dimjs/model-react";import{jsx as S,jsxs as j}from"react/jsx-runtime";import F from"@ant-design/icons/es/icons/DownOutlined";import z from"@ant-design/icons/es/icons/UpOutlined";import{B as q}from"../button-wrapper-698da5b1.js";import{FormGrid as N}from"../form-grid/index.js";import{S as R}from"../simple-layout-1676e586.js";import{isUndefinedOrNull as w,getUuid as x,isMacEnv as P}from"@flatbiz/utils";import{fbaHooks as k}from"../fba-hooks/index.js";import{T}from"../table-scrollbar-66c1682c.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"../fba-utils-a4c7d94d.js";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"ahooks";var K=C(),L=K[0],V=K[1];var O={queryCondition:{},isInit:true};var E={actions:{updateFilterCondition:function e(i){return function(e){e.queryCondition=a({},e.queryCondition,i)}},resetFilterCondition:function e(){return function(e){e.queryCondition=O.queryCondition}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var B={};var I=function e(i){if(!B[i]){B[i]=b(E)}return B[i]};var A=function e(i){return S(s,a({},i,{size:"small",placement:"topLeft"}))};A.Option=s.Option;var D=f((function(e,o){var s;var p=m([]),f=p[0],y=p[1];var h=m(0),C=h[0],b=h[1];var F=m(false),z=F[0],q=F[1];var N=I(e.modelKey).useStore(),R=N[0],w=N[1];var x=e.pageSize||((s=e.initialPaginationParams)==null?void 0:s.pageSize)||10;var P=e.initRequest===undefined?true:e.initRequest;var k=m(false),T=k[0],K=k[1];var L=a({list:"list",total:"tatal",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var O=u.useForm(),E=O[0];var B=r.useCallbackRef((function(i){return new Promise((function(t,r){var a,o,s,u,d,p,f,m,g,v;var h=function(){try{return t()}catch(e){return r(e)}};var C=function(e){try{q(false);void c.error(e.message);return h()}catch(e){return r(e)}};try{q(true);return Promise.resolve(w.updateFilterCondition(i)).then((function(i){try{a=i;o=l(a.queryCondition||{});s=e.serviceConfig,u=s.requestParamsAdapter,d=s.onRequest,p=s.requestResultAdapter;f=u?u(o):o;return Promise.resolve(d(f)).then((function(i){try{m=i||{};e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=p?p(m):m;v=g[L.list];y(n(v)?v:[]);b(g[L.total]);q(false);return h()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var D=r.useCallbackRef((function(e){return new Promise((function(i,t){return Promise.resolve(w.resetFilterCondition()).then((function(n){try{E.resetFields();if(e){void w.updateFilterCondition(e);E.setFieldsValue(e)}return i()}catch(e){return t(e)}}),t)}))}));var _=function e(i,t){if(T){var n;return n={},n[L.pageNo]=i,n[L.pageSize]=t||x,n}else{return{}}};var U=r.useCallbackRef((function(i){return new Promise((function(t,n){return Promise.resolve(w.resetFilterCondition()).then((function(r){try{E.resetFields();void B(a({},_(1,x),e.initialValues,i));return t()}catch(e){return n(e)}}),n)}))}));var W=r.useCallbackRef((function(){return a({},R.queryCondition,E.getFieldsValue())}));var Y=function e(){return{onRequest:B,clearQueryCondition:D,getRequestParams:W,onResetRequest:U,form:E}};g(o,(function(){return Y()}));var H=function e(i){K(i)};var Q=function i(){var t=E.getFieldsValue();if(e.onFormFinish){e.onFormFinish(a({},t,_(1,R.queryCondition.pageSize)))}else{void B(a({},t,_(1,R.queryCondition.pageSize)))}};var $=t(e.isFull)?true:e.isFull;var G=i("fba-easy-table",{"fba-easy-table-full":$,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed});var J=v((function(){return a({showSizeChanger:true,current:R.queryCondition[L.pageNo]||1,pageSize:R.queryCondition[L.pageSize]||x,total:C,showTotal:function e(i){return"共 "+i+" 条记录"}},e.pagination)}),[L.pageNo,L.pageSize,x,e.pagination,R.queryCondition,C]);var M=r.useCallbackRef((function(i,t){var n,r;void B((n={},n[L.pageSize]=t,n[L.pageNo]=i,n));(r=e.pagination)==null?void 0:r.onChange==null?void 0:r.onChange(i,t)}));return S(V,{value:{getEasyTableRef:Y,modelKey:e.modelKey,onRequest:B,tableList:f,tableTotal:C,loading:z,fieldNames:L,pageSize:x,initRequest:P,initialValues:e.initialValues||{},onSetPaginationStatus:H,paginationStatus:T,onFormFinish:Q,form:E,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?j("div",{className:"fba-easy-table-wrapper",children:[S("div",{className:G,children:e.children}),C>0&&S("div",{className:"fba-easy-table-pagination",children:S(d,a({size:"small"},J,{onChange:M,selectComponentClass:A}))})]}):S("div",{className:G,children:e.children})})}));var _=function e(i){var t=i.queryButtonProps,n=i.resetButtonProps,o=i.filterOperate;var l=L(),s=l.modelKey,d=l.foldKeys,c=l.fieldNames,p=l.onRequest,f=l.pageSize,g=l.paginationStatus,h=l.initialValues,C=l.form,b=l.onFormFinish;var w=typeof i.children==="function"?i.children(C):i.children;var x=y.toArray(w);var P=m(false),k=P[0],T=P[1];var K=I(s).useStore(),V=K[0],O=K[1];var E=r.useCallbackRef((function(){return new Promise((function(e,i){var t;return Promise.resolve(O.resetFilterCondition()).then((function(n){try{C.resetFields();if(g){p(a((t={},t[c.pageNo]=1,t[c.pageSize]=f,t),h))}else{p(h)}return e()}catch(e){return i(e)}}),i)}))}));var B=v((function(){var e=a({rightList:[!(t!=null&&t.hidden)?S(q,a({type:"primary",htmlType:"submit"},t,{children:(t==null?void 0:t.text)||"查询"}),"1"):null,!(n!=null&&n.hidden)?S(q,a({onClick:E},n,{children:(n==null?void 0:n.text)||"重置"}),"2"):null],leftList:[]},o==null?void 0:o(C));if(d.length>0){var i=S(q,{type:"link",style:{padding:"0"},onClick:function e(){T(!k)},children:k?j("span",{children:["收起",S(z,{style:{marginLeft:3,fontSize:12}})]}):j("span",{children:["展开",S(F,{style:{marginLeft:3,fontSize:12}})]})});var r=e.rightList,l=e.leftList;if(r.length>0||l.length===0){r.push(i)}else if((l==null?void 0:l.length)>0){l.push(i)}}return x.map((function(e,i){if(!k&&d.find((function(i){return".$"+i===e.key})))return null;if(e.type["domTypeName"]==="FormCol"){return e}return S(N.Col,{children:e},i)})).filter(Boolean).concat(S(N.OperateCol,a({},e),999))}),[x,o,d,C,E,k,t,n]);return S(R,{className:"easy-table-filter",children:S(u,{form:C,onFinish:b,initialValues:a({},h,V.queryCondition),children:i.isPure?w:S(N.Row,{gutter:[15,0],children:B})})})};var U=function e(){var i=L();var t=h(i.getEasyTableRef());return t.current};var W=function e(){var i=L(),t=i.getEasyTableRef;var n=h(t());return n};var Y=["children","rowKey","pagination"];var H=function e(t){var n=t.children,r=t.rowKey,l=t.pagination,s=o(t,Y);var u=L(),d=u.modelKey,c=u.fieldNames,f=u.onRequest,m=u.tableList,g=u.initRequest,y=u.pageSize,h=u.tableTotal,C=u.loading,b=u.initialValues,F=u.paginationFixed,z=u.onSetPaginationStatus;var q=I(d).useStore(),N=q[0],K=q[1];var V=v((function(){if(F||l===false)return false;return a({showSizeChanger:true,current:N.queryCondition[c.pageNo]||1,pageSize:N.queryCondition[c.pageSize]||y,total:h,showTotal:function e(i){return"共 "+i+" 条记录"}},t.pagination,{selectComponentClass:A})}),[c.pageNo,c.pageSize,y,l,F,t.pagination,N.queryCondition,h]);var O=function e(i){if(V){var n;f((n={},n[c.pageSize]=i.pageSize,n[c.pageNo]=i.current,n))}for(var r=arguments.length,a=new Array(r>1?r-1:0),o=1;o<r;o++){a[o-1]=arguments[o]}t.onChange==null?void 0:t.onChange.apply(t,[i].concat(a))};var E=v((function(){if(m.length===0){return[]}if(w(m[0][r])){return m.map((function(e){e[r]=x();return e}))}return m}),[m,r]);k.useEffectCustom((function(){var e=F||V!==false;z(e);if(g!==false||!N.isInit){if(e){var i;void f(a((i={},i[c.pageNo]=1,i[c.pageSize]=y,i),b))}else{void f(b)}}else{void K.updateFilterCondition(b)}void K.updateInitStatus()}),[]);return j(R,{className:i("easy-table-table",t.tableWrapperClassName),style:t.tableWrapperStyle,children:[n,P()?S(p,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{pagination:V,rowKey:r,onChange:O,loading:C,dataSource:E})):S(T,{children:S(p,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{pagination:V,rowKey:r,onChange:O,loading:C,dataSource:E}))})]})};var Q=e(D,{Filter:_,Table:H,useEasyTablRef:W,useEasyTable:U});export{Q as EasyTable};
11
+ import{a as e}from"../attach-properties-to-component-9d9644cf.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{hooks as r}from"@wove/react/cjs/hooks";import{a,_ as o}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as l}from"@dimjs/model";import{Select as s,Form as u,Pagination as d,message as c,Table as f}from"antd";import{forwardRef as p,useState as m,useRef as g,useImperativeHandle as v,useMemo as y,Children as h}from"react";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 z from"@ant-design/icons/es/icons/UpOutlined";import{B as q}from"../button-wrapper-698da5b1.js";import{FormGrid as N}from"../form-grid/index.js";import{S as R}from"../simple-layout-1676e586.js";import{isUndefinedOrNull as w,getUuid as x,isMacEnv as P}from"@flatbiz/utils";import{fbaHooks as k}from"../fba-hooks/index.js";import{T}from"../table-scrollbar-66c1682c.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"../fba-utils-a4c7d94d.js";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"ahooks";var K=C(),L=K[0],V=K[1];var O={queryCondition:{},isInit:true};var E={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=a({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=a({},O.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var B={};var D=function e(t){if(!B[t]){B[t]=S(E)}return B[t]};var I=function e(t){return b(s,a({},t,{size:"small",placement:"topLeft"}))};I.Option=s.Option;var A=p((function(e,o){var s;var f=m([]),p=f[0],h=f[1];var C=m(0),S=C[0],F=C[1];var z=m(false),q=z[0],N=z[1];var R=D(e.modelKey).useStore(),w=R[0],x=R[1];var P=e.pageSize||((s=e.initialPaginationParams)==null?void 0:s.pageSize)||10;var k=e.initRequest===undefined?true:e.initRequest;var T=m(false),K=T[0],L=T[1];var O=g();var E=a({list:"list",total:"tatal",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var B=u.useForm(),A=B[0];var _=r.useCallbackRef((function(t){return new Promise((function(i,r){var a,o,s,u,d,f,p,m,g,v;var y=function(){try{return i()}catch(e){return r(e)}};var C=function(e){try{N(false);void c.error(e.message);return y()}catch(e){return r(e)}};try{N(true);return Promise.resolve(x.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,u=s.requestParamsAdapter,d=s.onRequest,f=s.requestResultAdapter;p=u?u(o):o;return Promise.resolve(d(p)).then((function(t){try{m=t||{};O.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=f?f(m):m;v=g[E.list];h(n(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 U=r.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(x.resetFilterCondition()).then((function(n){try{A.resetFields();if(e){void x.updateFilterCondition(e);A.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var W=function e(t,i){if(K){var n;return n={},n[E.pageNo]=t,n[E.pageSize]=i||P,n}else{return{}}};var Y=r.useCallbackRef((function(t){return new Promise((function(i,n){var r;r=a({},W(1,P),e.initialValues,t);return Promise.resolve(x.resetFilterCondition(r)).then((function(e){try{A.resetFields();void _(r);return i()}catch(e){return n(e)}}),n)}))}));var G=r.useCallbackRef((function(){return a({},w.queryCondition,A.getFieldsValue())}));var H=function e(){return{onRequest:_,clearQueryCondition:U,getRequestParams:G,onResetRequest:Y,form:A,getDataSource:function e(){return O.current}}};v(o,(function(){return H()}));var Q=function e(t){L(t)};var $=function t(){var i=A.getFieldsValue();if(e.onFormFinish){e.onFormFinish(a({},i,W(1,w.queryCondition.pageSize)))}else{void _(a({},i,W(1,w.queryCondition.pageSize)))}};var J=i(e.isFull)?true:e.isFull;var M=t("fba-easy-table",{"fba-easy-table-full":J,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed});var X=y((function(){return a({showSizeChanger:true,current:w.queryCondition[E.pageNo]||1,pageSize:w.queryCondition[E.pageSize]||P,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[E.pageNo,E.pageSize,P,e.pagination,w.queryCondition,S]);var Z=r.useCallbackRef((function(t,i){var n,r;void _((n={},n[E.pageSize]=i,n[E.pageNo]=t,n));(r=e.pagination)==null?void 0:r.onChange==null?void 0:r.onChange(t,i)}));return b(V,{value:{getEasyTableRef:H,modelKey:e.modelKey,onRequest:_,tableList:p,tableTotal:S,loading:q,fieldNames:E,pageSize:P,initRequest:k,initialValues:e.initialValues||{},onSetPaginationStatus:Q,paginationStatus:K,onFormFinish:$,form:A,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?j("div",{className:"fba-easy-table-wrapper",children:[b("div",{className:M,children:e.children}),S>0&&b("div",{className:"fba-easy-table-pagination",children:b(d,a({size:"small"},X,{onChange:Z,selectComponentClass:I}))})]}):b("div",{className:M,children:e.children})})}));var _=function e(t){var i=t.queryButtonProps,n=t.resetButtonProps,o=t.filterOperate;var l=L(),s=l.modelKey,d=l.foldKeys,c=l.fieldNames,f=l.onRequest,p=l.pageSize,g=l.paginationStatus,v=l.initialValues,C=l.form,S=l.onFormFinish;var w=typeof t.children==="function"?t.children(C):t.children;var x=h.toArray(w);var P=m(false),k=P[0],T=P[1];var K=D(s).useStore(),V=K[0],O=K[1];var E=r.useCallbackRef((function(){return new Promise((function(e,t){var i;return Promise.resolve(O.resetFilterCondition()).then((function(n){try{C.resetFields();if(g){f(a((i={},i[c.pageNo]=1,i[c.pageSize]=p,i),v))}else{f(v)}return e()}catch(e){return t(e)}}),t)}))}));var B=y((function(){var e=a({rightList:[!(i!=null&&i.hidden)?b(q,a({type:"primary",htmlType:"submit"},i,{children:(i==null?void 0:i.text)||"查询"}),"1"):null,!(n!=null&&n.hidden)?b(q,a({onClick:E},n,{children:(n==null?void 0:n.text)||"重置"}),"2"):null],leftList:[]},o==null?void 0:o(C));if(d.length>0){var t=b(q,{type:"link",style:{padding:"0"},onClick:function e(){T(!k)},children:k?j("span",{children:["收起",b(z,{style:{marginLeft:3,fontSize:12}})]}):j("span",{children:["展开",b(F,{style:{marginLeft:3,fontSize:12}})]})});var r=e.rightList,l=e.leftList;if(r.length>0||l.length===0){r.push(t)}else if((l==null?void 0:l.length)>0){l.push(t)}}return x.map((function(e,t){if(!k&&d.find((function(t){return".$"+t===e.key})))return null;if(e.type["domTypeName"]==="FormCol"){return e}return b(N.Col,{children:e},t)})).filter(Boolean).concat(b(N.OperateCol,a({},e),999))}),[x,o,d,C,E,k,i,n]);return b(R,{className:"easy-table-filter",children:b(u,{form:C,onFinish:S,initialValues:a({},v,V.queryCondition),children:t.isPure?w:b(N.Row,{gutter:[15,0],gridSize:t.formGridSize,children:B})})})};var U=function e(){var t=L();var i=g(t.getEasyTableRef());return i.current};var W=function e(){var t=L(),i=t.getEasyTableRef;var n=g(i());return n};var Y=["children","rowKey","pagination"];var G=function e(i){var n=i.children,r=i.rowKey,l=i.pagination,s=o(i,Y);var u=L(),d=u.modelKey,c=u.fieldNames,p=u.onRequest,m=u.tableList,g=u.initRequest,v=u.pageSize,h=u.tableTotal,C=u.loading,S=u.initialValues,F=u.paginationFixed,z=u.onSetPaginationStatus;var q=D(d).useStore(),N=q[0],K=q[1];var V=y((function(){if(F||l===false)return false;return a({showSizeChanger:true,current:N.queryCondition[c.pageNo]||1,pageSize:N.queryCondition[c.pageSize]||v,total:h,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:I})}),[c.pageNo,c.pageSize,v,l,F,i.pagination,N.queryCondition,h]);var O=function e(t){if(V){var n;p((n={},n[c.pageSize]=t.pageSize,n[c.pageNo]=t.current,n))}for(var r=arguments.length,a=new Array(r>1?r-1:0),o=1;o<r;o++){a[o-1]=arguments[o]}i.onChange==null?void 0:i.onChange.apply(i,[t].concat(a))};var E=y((function(){if(m.length===0){return[]}if(w(m[0][r])){return m.map((function(e){e[r]=x();return e}))}return m}),[m,r]);k.useEffectCustom((function(){var e=F||V!==false;z(e);if(g!==false||!N.isInit){if(e){var t;void p(a((t={},t[c.pageNo]=1,t[c.pageSize]=v,t),S))}else{void p(S)}}else{void K.updateFilterCondition(S)}void K.updateInitStatus()}),[]);return j(R,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[n,P()?b(f,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{pagination:V,rowKey:r,onChange:O,loading:C,dataSource:E})):b(T,{children:b(f,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{pagination:V,rowKey:r,onChange:O,loading:C,dataSource:E}))})]})};var H=e(A,{Filter:_,Table:G,useEasyTablRef:W,useEasyTable:U});export{H as EasyTable};
12
12
  //# 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/select.tsx","@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: void;\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: () => {\n return (state) => {\n state.queryCondition = defaultState.queryCondition;\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 { Select, SelectProps } from 'antd';\nimport * as React from 'react';\n\ntype CompoundedComponent = React.FC<SelectProps> & {\n Option: typeof Select.Option;\n};\n\n/**\n * 由于 antd 5.3.x 分页Pagination组件,存在点击分页选择框框时,一直朝下\n * issues:https://github.com/ant-design/ant-design/issues/36866\n * 为了兼容,在 Pagination 中添加了 selectComponentClass 属性,后期antd 官方优化了bug,可取消 配置selectComponentClass\n * @param props\n * @returns\n */\nexport const MiniSelect: CompoundedComponent = (props) => (\n <Select {...props} size=\"small\" placement=\"topLeft\" />\n);\n\nMiniSelect.Option = Select.Option;\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, Pagination, PaginationProps } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useMemo, useState } from 'react';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport { MiniSelect } from './select';\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[];\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 使用 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\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\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 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 void message.error(error.message);\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 await actions.resetFilterCondition();\n form.resetFields();\n void onInnerRequest({\n ...getPaginationData(1, pageSize),\n ...props.initialValues,\n ...values,\n });\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 };\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 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=\"fba-easy-table-wrapper\">\n <div className={className}>{props.children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <Pagination\n size=\"small\"\n {...paginationData}\n onChange={onChange}\n selectComponentClass={MiniSelect}\n />\n </div>\n )}\n </div>\n ) : (\n <div className={className}>{props.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 { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\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/**\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 *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate } = 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 = Children.toArray(children) as ReactElement[];\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 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.type['domTypeName'] === 'FormCol') {\n return item;\n }\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 >\n {props.isPure ? children : <FormGrid.Row gutter={[15, 0]}>{formRowChildren}</FormGrid.Row>}\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 已过去,请使用 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 } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\nimport { MiniSelect } from './select';\n\nexport type EasyTableTableProps = Omit<TableProps<TAny>, 'dataSource' | 'loading' | 'rowKey'> & {\n children?: ReactElement | ReactElement[];\n /** 表格行 key 的取值 */\n rowKey: string;\n tableWrapperStyle?: CSSProperties;\n tableWrapperClassName?: string;\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\nexport const EasyTableTable = (props: EasyTableTableProps) => {\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: MiniSelect,\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'] = (data, ...otherProps) => {\n if (tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: data.pageSize, [fieldNames.pageNo]: data.current });\n }\n props.onChange?.(data, ...otherProps);\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (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 });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\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 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 pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { attachPropertiesToComponent } from '../_utils/attach-properties-to-component';\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 = 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 *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过去,请使用 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","MiniSelect","props","_jsx","Select","size","placement","Option","EasyTable","forwardRef","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","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","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","$await_5","initialValues","getRequestParams","getFieldsValue","getEasyTableRef","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","useMemo","showSizeChanger","current","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","value","tableList","tableTotal","foldKeys","children","_jsxs","Pagination","selectComponentClass","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","_useEasyTableCtx","childrens","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","useEasyTable","ctx","resp","useRef","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","onChangePage","data","_onRequest","_len","arguments","Array","_key","apply","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","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/select.tsx","@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 { Select, SelectProps } from 'antd';\nimport * as React from 'react';\n\ntype CompoundedComponent = React.FC<SelectProps> & {\n Option: typeof Select.Option;\n};\n\n/**\n * 由于 antd 5.3.x 分页Pagination组件,存在点击分页选择框框时,一直朝下\n * issues:https://github.com/ant-design/ant-design/issues/36866\n * 为了兼容,在 Pagination 中添加了 selectComponentClass 属性,后期antd 官方优化了bug,可取消 配置selectComponentClass\n * @param props\n * @returns\n */\nexport const MiniSelect: CompoundedComponent = (props) => (\n <Select {...props} size=\"small\" placement=\"topLeft\" />\n);\n\nMiniSelect.Option = Select.Option;\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, Pagination, PaginationProps } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport { MiniSelect } from './select';\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[];\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 使用 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\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 void message.error(error.message);\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 };\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 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=\"fba-easy-table-wrapper\">\n <div className={className}>{props.children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <Pagination\n size=\"small\"\n {...paginationData}\n onChange={onChange}\n selectComponentClass={MiniSelect}\n />\n </div>\n )}\n </div>\n ) : (\n <div className={className}>{props.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 { 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 formGridSize?: FormRowProps['gridSize'];\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 *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate } = 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 = Children.toArray(children) as ReactElement[];\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 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.type['domTypeName'] === 'FormCol') {\n return item;\n }\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 >\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 已过去,请使用 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 } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\nimport { MiniSelect } from './select';\n\nexport type EasyTableTableProps = Omit<TableProps<TAny>, 'dataSource' | 'loading' | 'rowKey'> & {\n children?: ReactElement | ReactElement[];\n /** 表格行 key 的取值 */\n rowKey: string;\n tableWrapperStyle?: CSSProperties;\n tableWrapperClassName?: string;\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\nexport const EasyTableTable = (props: EasyTableTableProps) => {\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: MiniSelect,\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'] = (data, ...otherProps) => {\n if (tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: data.pageSize, [fieldNames.pageNo]: data.current });\n }\n props.onChange?.(data, ...otherProps);\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (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 });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\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 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 pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { attachPropertiesToComponent } from '../_utils/attach-properties-to-component';\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 = 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 *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过去,请使用 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","MiniSelect","props","_jsx","Select","size","placement","Option","EasyTable","forwardRef","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","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","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","useMemo","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","value","tableList","tableTotal","foldKeys","children","_jsxs","Pagination","selectComponentClass","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","_useEasyTableCtx","childrens","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","onChangePage","data","_onRequest","_len","arguments","Array","_key","apply","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{_ as r,a as e}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{Col as t,Form as n,Row as i,Space as o}from"antd";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{classNames as u}from"@dimjs/utils/cjs/class-names";import{useMemo as f,isValidElement as s,cloneElement as p}from"react";import{toArray as d,valueIsEqual as v}from"@flatbiz/utils";import{u as c}from"../use-responsive-point-21b8c601.js";var m=["forceAloneRow","hidden"];var h={xs:24,sm:24,md:24,lg:24,xl:24,xxl:24};var g=function n(i){var o=i.forceAloneRow,l=i.hidden,u=r(i,m);var f=o?h:u;if(l)return null;return a(t,e({},f,{children:i.children}))};g["domTypeName"]="FormCol";var x=["leftList","rightList","rowColTotal","justify","forceAloneRow","hidden","leftSpaceProps","rightSpaceProps"];var L={xs:24,sm:24,md:24,lg:24,xl:24,xxl:24};var y=function s(p){var d=p,v=d.leftList,c=d.rightList,m=d.rowColTotal,h=d.justify,g=d.forceAloneRow,y=d.hidden,C=d.leftSpaceProps,w=d.rightSpaceProps,j=r(d,x);var T=(v||[]).filter(Boolean);var N=(c||[]).filter(Boolean);var F=T.length>0&&N.length>0;var G=g||F?L:{};var O=f((function(){if(h)return h;if(F)return"space-between";if(g)return"end";if(m===1)return"start";return"end"}),[g,F,h,m]);var P=u(p.className,"v-form-col-operate");if(y)return null;return a(t,e({},j,G,{className:P,children:a(n.Item,{children:l(i,{justify:O,children:[a(o,e({},C,{children:T.map((function(r){return r}))})),a(o,e({},w,{children:N==null?void 0:N.map((function(r){return r}))}))]})})}))};y["domTypeName"]="FormOperateCol";var C=function r(e,t){try{var n=[];var i=function r(t){var n=e[t];return{index:t,value:n>24?24:n}};var o=true;var a=[];var l=0;var u=0;while(o){var f=e[l];a.push(i(l));if(f>=24){n.push(a);a=[];u=0}else if(l===e.length-1){n.push(a)}else{u+=f;if(u>=24){n.push(a);a=[];u=0}}l=l+1;if(l>=e.length){o=false}}var s=n.find((function(r){return!!r.find((function(r){return r.index===t}))}))||[];var p=0;var d=0;s.forEach((function(r,e){if(r.index===t)d=e;if(r.index<t){p=p+r.value}}));if(p===24||p===0){s[d].value=24}else{s[d].value=24-p}return{gridList:n.reduce((function(r,e){return r.concat(e)})).map((function(r){return r.value})),gridGroupList:n}}catch(r){return{gridList:e,gridGroupList:[]}}};var w={xs:24,sm:12,md:12,lg:8,xl:8,xxl:6};var j=function r(t){var n=c()||"md";var o=d(t.children).filter((function(r){if(!r||!s(r))return false;return v(r.type["domTypeName"],["FormOperateCol","FormCol"])}));var l=f((function(){var r=o.findIndex((function(r){return r.type["domTypeName"]==="FormOperateCol"}));if(n===undefined){return{gridList:[],gridGroupList:[]}}var e=o.map((function(e,t){var i,o;if(t===r)return 0;var a=(i=e.props)==null?void 0:i.span;return((o=e.props)==null?void 0:o[n])||a||w[n]}));if(r<0){return{gridList:e,gridGroupList:[]}}return C(e,r)}),[o,n]),u=l.gridList,m=l.gridGroupList;return a(i,e({},t,{children:o.map((function(r,t){var i;var o=e({},w,r.props);var a=e({key:t},o,(i={},i[n]=u[t]||o[n],i));if(r.type["domTypeName"]==="FormOperateCol"){a["rowColTotal"]=m.length}return p(r,a)}))}))};var T={Row:j,Col:g,OperateCol:y};export{T as FormGrid};
4
+ import{_ as r,a as e}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{Col as t,Form as n,Row as i,Space as o}from"antd";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{classNames as u}from"@dimjs/utils/cjs/class-names";import{useMemo as f,isValidElement as s,cloneElement as d}from"react";import{toArray as p,valueIsEqual as m}from"@flatbiz/utils";import{u as v}from"../use-responsive-point-21b8c601.js";var c=["forceAloneRow","hidden"];var h={xs:24,sm:24,md:24,lg:24,xl:24,xxl:24};var g=function n(i){var o=i.forceAloneRow,l=i.hidden,u=r(i,c);var f=o?h:u;if(l)return null;return a(t,e({},f,{children:i.children}))};g["domTypeName"]="FormCol";var x=["leftList","rightList","rowColTotal","justify","forceAloneRow","hidden","leftSpaceProps","rightSpaceProps"];var L={xs:24,sm:24,md:24,lg:24,xl:24,xxl:24};var y=function s(d){var p=d,m=p.leftList,v=p.rightList,c=p.rowColTotal,h=p.justify,g=p.forceAloneRow,y=p.hidden,C=p.leftSpaceProps,w=p.rightSpaceProps,j=r(p,x);var T=(m||[]).filter(Boolean);var N=(v||[]).filter(Boolean);var F=T.length>0&&N.length>0;var G=g||F?L:{};var O=f((function(){if(h)return h;if(F)return"space-between";if(g)return"end";if(c===1)return"start";return"end"}),[g,F,h,c]);var P=u(d.className,"v-form-col-operate");if(y)return null;return a(t,e({},j,G,{className:P,children:a(n.Item,{children:l(i,{justify:O,children:[a(o,e({},C,{children:T.map((function(r){return r}))})),a(o,e({},w,{children:N==null?void 0:N.map((function(r){return r}))}))]})})}))};y["domTypeName"]="FormOperateCol";var C=function r(e,t){try{var n=[];var i=function r(t){var n=e[t];return{index:t,value:n>24?24:n}};var o=true;var a=[];var l=0;var u=0;while(o){var f=e[l];a.push(i(l));if(f>=24){n.push(a);a=[];u=0}else if(l===e.length-1){n.push(a)}else{u+=f;if(u>=24){n.push(a);a=[];u=0}}l=l+1;if(l>=e.length){o=false}}var s=n.find((function(r){return!!r.find((function(r){return r.index===t}))}))||[];var d=0;var p=0;s.forEach((function(r,e){if(r.index===t)p=e;if(r.index<t){d=d+r.value}}));if(d===24||d===0){s[p].value=24}else{s[p].value=24-d}return{gridList:n.reduce((function(r,e){return r.concat(e)})).map((function(r){return r.value})),gridGroupList:n}}catch(r){return{gridList:e,gridGroupList:[]}}};var w={xs:24,sm:12,md:12,lg:8,xl:8,xxl:6};var j={xs:24,sm:12,md:12,lg:6,xl:6,xxl:6};var T=function r(t){var n=v()||"md";var o=p(t.children).filter((function(r){if(!r||!s(r))return false;return m(r.type["domTypeName"],["FormOperateCol","FormCol"])}));var l=t.gridSize==="small"?j:w;var u=f((function(){var r=o.findIndex((function(r){return r.type["domTypeName"]==="FormOperateCol"}));if(n===undefined){return{gridList:[],gridGroupList:[]}}var e=o.map((function(e,t){var i,o;if(t===r)return 0;var a=(i=e.props)==null?void 0:i.span;return((o=e.props)==null?void 0:o[n])||a||l[n]}));if(r<0){return{gridList:e,gridGroupList:[]}}return C(e,r)}),[o,l,n]),c=u.gridList,h=u.gridGroupList;return a(i,e({},t,{children:o.map((function(r,t){var i;var o=e({},l,r.props);var a=e({key:t},o,(i={},i[n]=c[t]||o[n],i));if(r.type["domTypeName"]==="FormOperateCol"){a["rowColTotal"]=h.length}return d(r,a)}))}))};var N={Row:T,Col:g,OperateCol:y};export{N as FormGrid};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-grid/form-col.tsx","@flatbiz/antd/src/form-grid/form-operate-col.tsx","@flatbiz/antd/src/form-grid/utils.ts","@flatbiz/antd/src/form-grid/form-row.tsx","@flatbiz/antd/src/form-grid/index.ts"],"sourcesContent":["import { Col } from 'antd';\nimport { ReactNode } from 'react';\nconst forceAloneRowGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormColProps = {\n // 栅格占位格数,不考虑响应式\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n children?: ReactNode | ReactNode[];\n hidden?: boolean;\n};\n\n/**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,不考虑响应式\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\nexport const FormCol = (props: FormColProps) => {\n const { forceAloneRow, hidden, ...otherProps } = props;\n const forceGrid = forceAloneRow ? forceAloneRowGrid : otherProps;\n if (hidden) return null;\n return <Col {...forceGrid}>{props.children}</Col>;\n};\n\nFormCol['domTypeName'] = 'FormCol';\n","import { classNames } from '@dimjs/utils';\nimport { Col, Form, Row, RowProps, Space, SpaceProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\n\nconst fullGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormOperateColProps = {\n className?: string;\n leftList?: Array<ReactElement | null>;\n rightList?: Array<ReactElement | null>;\n // left、right 对齐方式,优先级最高\n justify?: RowProps['justify'];\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n hidden?: boolean;\n leftSpaceProps?: SpaceProps;\n rightSpaceProps?: SpaceProps;\n};\n\n/**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\nexport const FormOperateCol = (props: FormOperateColProps) => {\n const {\n leftList,\n rightList,\n rowColTotal,\n justify,\n forceAloneRow,\n hidden,\n leftSpaceProps,\n rightSpaceProps,\n ...otherProps\n } = props as FormOperateColProps & {\n rowColTotal: number;\n };\n const _leftList = (leftList || []).filter(Boolean);\n const _rightList = (rightList || []).filter(Boolean);\n const hasAll = _leftList.length > 0 && _rightList.length > 0;\n const forceGrid = forceAloneRow || hasAll ? fullGrid : {};\n\n const colJustify = useMemo(() => {\n if (justify) return justify;\n if (hasAll) return 'space-between';\n if (forceAloneRow) return 'end';\n if (rowColTotal === 1) return 'start';\n return 'end';\n }, [forceAloneRow, hasAll, justify, rowColTotal]);\n\n const className = classNames(props.className, 'v-form-col-operate');\n\n if (hidden) return null;\n\n return (\n <Col {...otherProps} {...forceGrid} className={className}>\n <Form.Item>\n <Row justify={colJustify}>\n <Space {...leftSpaceProps}>{_leftList.map((item) => item)}</Space>\n <Space {...rightSpaceProps}>{_rightList?.map((item) => item)}</Space>\n </Row>\n </Form.Item>\n </Col>\n );\n};\n\nFormOperateCol['domTypeName'] = 'FormOperateCol';\n","/**\n * 用于计算 operateCol 所占用网格数\n * ```\n * col网格数据 [8,8,8,12,24,0,8] => [[8,8,8],[12],[24],[0,8]],分组后计算operateCol所在行中剩余网格数\n * ```\n * @returns\n */\nexport const calculateOperateGrid = (gridList: number[], operateColIndex: number) => {\n try {\n const groupList = [] as { index: number; value: number }[][];\n const getGroupItem = function (index) {\n const value = gridList[index];\n return { index, value: value > 24 ? 24 : value };\n };\n let condition = true;\n let groupItemList = [] as { index: number; value: number }[];\n let currentIndex = 0;\n let total = 0;\n while (condition) {\n const currentValue = gridList[currentIndex];\n groupItemList.push(getGroupItem(currentIndex));\n if (currentValue >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n } else if (currentIndex === gridList.length - 1) {\n groupList.push(groupItemList);\n } else {\n total += currentValue;\n if (total >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n }\n }\n currentIndex = currentIndex + 1;\n if (currentIndex >= gridList.length) {\n condition = false;\n }\n }\n const hasOperateList =\n groupList.find((item) => !!item.find((temp) => temp.index === operateColIndex)) || [];\n let hasOperateTotal = 0;\n let hasOperateIndex = 0;\n hasOperateList.forEach((item, index) => {\n if (item.index === operateColIndex) hasOperateIndex = index;\n if (item.index < operateColIndex) {\n hasOperateTotal = hasOperateTotal + item.value;\n }\n });\n if (hasOperateTotal === 24 || hasOperateTotal === 0) {\n hasOperateList[hasOperateIndex].value = 24;\n } else {\n hasOperateList[hasOperateIndex].value = 24 - hasOperateTotal;\n }\n\n return {\n gridList: groupList.reduce((a, b) => a.concat(b)).map((temp) => temp.value),\n gridGroupList: groupList,\n };\n } catch (error) {\n return {\n gridList,\n gridGroupList: [],\n };\n }\n};\n","import { toArray, valueIsEqual } from '@flatbiz/utils';\nimport { Row, RowProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { useResponsivePoint } from '../fba-hooks/use-responsive-point';\nimport { calculateOperateGrid } from './utils';\n\nexport type FormRowProps = RowProps & {\n children?: ReactNode | ReactNode[];\n};\nconst defaultGrid = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n\n/**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormGrid.Col、FormGrid.OperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormGrid.OperateCol\n */\nexport const FormRow = (props: FormRowProps) => {\n const screenType = useResponsivePoint() || 'md';\n const childrenList = toArray<ReactElement>(props.children).filter((item) => {\n if (!item || !isValidElement(item)) return false;\n return valueIsEqual(item.type['domTypeName'], ['FormOperateCol', 'FormCol']);\n });\n const { gridList, gridGroupList } = useMemo(() => {\n const operateColIndex = childrenList.findIndex((item) => {\n return item.type['domTypeName'] === 'FormOperateCol';\n });\n if (screenType === undefined) {\n return { gridList: [] as number[], gridGroupList: [] };\n }\n const _currentGridList = childrenList.map((temp, index) => {\n if (index === operateColIndex) return 0;\n const span = temp.props?.span as number;\n return temp.props?.[screenType] || span || defaultGrid[screenType];\n });\n if (operateColIndex < 0) {\n return { gridList: _currentGridList, gridGroupList: [] };\n }\n return calculateOperateGrid(_currentGridList, operateColIndex);\n }, [childrenList, screenType]);\n\n // if (!screenType) return <Fragment>{props.children}</Fragment>;\n return (\n <Row {...props}>\n {childrenList.map((item, index) => {\n const itemProps = { ...defaultGrid, ...item.props };\n const newProps = {\n key: index,\n ...itemProps,\n [screenType]: gridList[index] || itemProps[screenType],\n };\n if (item.type['domTypeName'] === 'FormOperateCol') {\n newProps['rowColTotal'] = gridGroupList.length;\n }\n return cloneElement(item, newProps);\n })}\n </Row>\n );\n};\n","import { FormCol } from './form-col';\nimport { FormOperateCol } from './form-operate-col';\nimport { FormRow } from './form-row';\n\nexport const FormGrid = {\n /**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormCol、FormOperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormOperateCol\n */\n Row: FormRow,\n /**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,不考虑响应式\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\n Col: FormCol,\n /**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\n OperateCol: FormOperateCol,\n};\n"],"names":["forceAloneRowGrid","xs","sm","md","lg","xl","xxl","FormCol","props","forceAloneRow","hidden","otherProps","_objectWithoutPropertiesLoose","_excluded","forceGrid","_jsx","Col","_extends","children","fullGrid","FormOperateCol","_ref","leftList","rightList","rowColTotal","justify","leftSpaceProps","rightSpaceProps","_leftList","filter","Boolean","_rightList","hasAll","length","colJustify","useMemo","className","_classNames","Form","Item","_jsxs","Row","Space","map","item","calculateOperateGrid","gridList","operateColIndex","groupList","getGroupItem","index","value","condition","groupItemList","currentIndex","total","currentValue","push","hasOperateList","find","temp","hasOperateTotal","hasOperateIndex","forEach","reduce","a","b","concat","gridGroupList","error","defaultGrid","FormRow","screenType","useResponsivePoint","childrenList","toArray","isValidElement","valueIsEqual","type","_useMemo","findIndex","undefined","_currentGridList","_temp$props","_temp$props2","span","_extends2","itemProps","newProps","key","cloneElement","FormGrid","OperateCol"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-grid/form-col.tsx","@flatbiz/antd/src/form-grid/form-operate-col.tsx","@flatbiz/antd/src/form-grid/utils.ts","@flatbiz/antd/src/form-grid/form-row.tsx","@flatbiz/antd/src/form-grid/index.ts"],"sourcesContent":["import { Col } from 'antd';\nimport { ReactNode } from 'react';\nconst forceAloneRowGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormColProps = {\n // 栅格占位格数,不考虑响应式\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n children?: ReactNode | ReactNode[];\n hidden?: boolean;\n};\n\n/**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,不考虑响应式\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\nexport const FormCol = (props: FormColProps) => {\n const { forceAloneRow, hidden, ...otherProps } = props;\n const forceGrid = forceAloneRow ? forceAloneRowGrid : otherProps;\n if (hidden) return null;\n return <Col {...forceGrid}>{props.children}</Col>;\n};\n\nFormCol['domTypeName'] = 'FormCol';\n","import { classNames } from '@dimjs/utils';\nimport { Col, Form, Row, RowProps, Space, SpaceProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\n\nconst fullGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormOperateColProps = {\n className?: string;\n leftList?: Array<ReactElement | null>;\n rightList?: Array<ReactElement | null>;\n // left、right 对齐方式,优先级最高\n justify?: RowProps['justify'];\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n hidden?: boolean;\n leftSpaceProps?: SpaceProps;\n rightSpaceProps?: SpaceProps;\n};\n\n/**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\nexport const FormOperateCol = (props: FormOperateColProps) => {\n const {\n leftList,\n rightList,\n rowColTotal,\n justify,\n forceAloneRow,\n hidden,\n leftSpaceProps,\n rightSpaceProps,\n ...otherProps\n } = props as FormOperateColProps & {\n rowColTotal: number;\n };\n const _leftList = (leftList || []).filter(Boolean);\n const _rightList = (rightList || []).filter(Boolean);\n const hasAll = _leftList.length > 0 && _rightList.length > 0;\n const forceGrid = forceAloneRow || hasAll ? fullGrid : {};\n\n const colJustify = useMemo(() => {\n if (justify) return justify;\n if (hasAll) return 'space-between';\n if (forceAloneRow) return 'end';\n if (rowColTotal === 1) return 'start';\n return 'end';\n }, [forceAloneRow, hasAll, justify, rowColTotal]);\n\n const className = classNames(props.className, 'v-form-col-operate');\n\n if (hidden) return null;\n\n return (\n <Col {...otherProps} {...forceGrid} className={className}>\n <Form.Item>\n <Row justify={colJustify}>\n <Space {...leftSpaceProps}>{_leftList.map((item) => item)}</Space>\n <Space {...rightSpaceProps}>{_rightList?.map((item) => item)}</Space>\n </Row>\n </Form.Item>\n </Col>\n );\n};\n\nFormOperateCol['domTypeName'] = 'FormOperateCol';\n","/**\n * 用于计算 operateCol 所占用网格数\n * ```\n * col网格数据 [8,8,8,12,24,0,8] => [[8,8,8],[12],[24],[0,8]],分组后计算operateCol所在行中剩余网格数\n * ```\n * @returns\n */\nexport const calculateOperateGrid = (gridList: number[], operateColIndex: number) => {\n try {\n const groupList = [] as { index: number; value: number }[][];\n const getGroupItem = function (index) {\n const value = gridList[index];\n return { index, value: value > 24 ? 24 : value };\n };\n let condition = true;\n let groupItemList = [] as { index: number; value: number }[];\n let currentIndex = 0;\n let total = 0;\n while (condition) {\n const currentValue = gridList[currentIndex];\n groupItemList.push(getGroupItem(currentIndex));\n if (currentValue >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n } else if (currentIndex === gridList.length - 1) {\n groupList.push(groupItemList);\n } else {\n total += currentValue;\n if (total >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n }\n }\n currentIndex = currentIndex + 1;\n if (currentIndex >= gridList.length) {\n condition = false;\n }\n }\n const hasOperateList =\n groupList.find((item) => !!item.find((temp) => temp.index === operateColIndex)) || [];\n let hasOperateTotal = 0;\n let hasOperateIndex = 0;\n hasOperateList.forEach((item, index) => {\n if (item.index === operateColIndex) hasOperateIndex = index;\n if (item.index < operateColIndex) {\n hasOperateTotal = hasOperateTotal + item.value;\n }\n });\n if (hasOperateTotal === 24 || hasOperateTotal === 0) {\n hasOperateList[hasOperateIndex].value = 24;\n } else {\n hasOperateList[hasOperateIndex].value = 24 - hasOperateTotal;\n }\n\n return {\n gridList: groupList.reduce((a, b) => a.concat(b)).map((temp) => temp.value),\n gridGroupList: groupList,\n };\n } catch (error) {\n return {\n gridList,\n gridGroupList: [],\n };\n }\n};\n","import { toArray, valueIsEqual } from '@flatbiz/utils';\nimport { Row, RowProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { useResponsivePoint } from '../fba-hooks/use-responsive-point';\nimport { calculateOperateGrid } from './utils';\n\nexport type FormRowProps = RowProps & {\n children?: ReactNode | ReactNode[];\n /**\n * defaultGrid = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * defaultSmallGrid = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n gridSize?: 'default' | 'small';\n};\nconst defaultGrid = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\nconst defaultSmallGrid = { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 };\n\n/**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormGrid.Col、FormGrid.OperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormGrid.OperateCol\n */\nexport const FormRow = (props: FormRowProps) => {\n const screenType = useResponsivePoint() || 'md';\n const childrenList = toArray<ReactElement>(props.children).filter((item) => {\n if (!item || !isValidElement(item)) return false;\n return valueIsEqual(item.type['domTypeName'], ['FormOperateCol', 'FormCol']);\n });\n const defaultGridSize = props.gridSize === 'small' ? defaultSmallGrid : defaultGrid;\n const { gridList, gridGroupList } = useMemo(() => {\n const operateColIndex = childrenList.findIndex((item) => {\n return item.type['domTypeName'] === 'FormOperateCol';\n });\n if (screenType === undefined) {\n return { gridList: [] as number[], gridGroupList: [] };\n }\n const _currentGridList = childrenList.map((temp, index) => {\n if (index === operateColIndex) return 0;\n const span = temp.props?.span as number;\n return temp.props?.[screenType] || span || defaultGridSize[screenType];\n });\n if (operateColIndex < 0) {\n return { gridList: _currentGridList, gridGroupList: [] };\n }\n return calculateOperateGrid(_currentGridList, operateColIndex);\n }, [childrenList, defaultGridSize, screenType]);\n\n // if (!screenType) return <Fragment>{props.children}</Fragment>;\n return (\n <Row {...props}>\n {childrenList.map((item, index) => {\n const itemProps = { ...defaultGridSize, ...item.props };\n const newProps = {\n key: index,\n ...itemProps,\n [screenType]: gridList[index] || itemProps[screenType],\n };\n if (item.type['domTypeName'] === 'FormOperateCol') {\n newProps['rowColTotal'] = gridGroupList.length;\n }\n return cloneElement(item, newProps);\n })}\n </Row>\n );\n};\n","import { FormCol } from './form-col';\nimport { FormOperateCol } from './form-operate-col';\nimport { FormRow } from './form-row';\n\nexport const FormGrid = {\n /**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormCol、FormOperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormOperateCol\n */\n Row: FormRow,\n /**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,不考虑响应式\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\n Col: FormCol,\n /**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\n OperateCol: FormOperateCol,\n};\n"],"names":["forceAloneRowGrid","xs","sm","md","lg","xl","xxl","FormCol","props","forceAloneRow","hidden","otherProps","_objectWithoutPropertiesLoose","_excluded","forceGrid","_jsx","Col","_extends","children","fullGrid","FormOperateCol","_ref","leftList","rightList","rowColTotal","justify","leftSpaceProps","rightSpaceProps","_leftList","filter","Boolean","_rightList","hasAll","length","colJustify","useMemo","className","_classNames","Form","Item","_jsxs","Row","Space","map","item","calculateOperateGrid","gridList","operateColIndex","groupList","getGroupItem","index","value","condition","groupItemList","currentIndex","total","currentValue","push","hasOperateList","find","temp","hasOperateTotal","hasOperateIndex","forEach","reduce","a","b","concat","gridGroupList","error","defaultGrid","defaultSmallGrid","FormRow","screenType","useResponsivePoint","childrenList","toArray","isValidElement","valueIsEqual","type","defaultGridSize","gridSize","_useMemo","findIndex","undefined","_currentGridList","_temp$props","_temp$props2","span","_extends2","itemProps","newProps","key","cloneElement","FormGrid","OperateCol"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-layout/label-value-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Descriptions } from 'antd';\nimport { CSSProperties, ReactElement } from 'react';\nimport './style.less';\n\nexport type LabelValueLayoutProps = {\n options: { label: string | ReactElement; value: string | number | ReactElement }[];\n labelWidth?: number;\n // 一行占几组,默认1\n column?: number;\n bordered?: boolean;\n};\n\nexport const LabelValueLayout = (props: LabelValueLayoutProps) => {\n const style = { '--v-label-value-layout-lWidth': `${props.labelWidth || 120}px` } as CSSProperties;\n const className = classNames('v-label-value-layout');\n return (\n <Descriptions\n column={props.column || 1}\n bordered={props.bordered}\n size=\"small\"\n className={className}\n style={style}\n >\n {props.options.map((item, index) => {\n return (\n <Descriptions.Item key={index} label={item.label}>\n {item.value}\n </Descriptions.Item>\n );\n })}\n </Descriptions>\n );\n};\n"],"names":["LabelValueLayout","props","style","labelWidth","className","_classNames","_jsx","Descriptions","column","bordered","size","children","options","map","item","index","Item","label","value"],"mappings":";0IAaaA,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAMC,EAAQ,CAAE,iCAAoCD,EAAME,YAAc,KAAG,MAC3E,IAAMC,EAAYC,EAAW,wBAC7B,OACEC,EAACC,EAAY,CACXC,OAAQP,EAAMO,QAAU,EACxBC,SAAUR,EAAMQ,SAChBC,KAAK,QACLN,UAAWA,EACXF,MAAOA,EAAMS,SAEZV,EAAMW,QAAQC,KAAI,SAACC,EAAMC,GACxB,OACET,EAACC,EAAaS,KAAI,CAAaC,MAAOH,EAAKG,MAAMN,SAC9CG,EAAKI,OADgBH,OAOlC"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-layout/label-value-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Descriptions } from 'antd';\nimport { CSSProperties, ReactElement } from 'react';\nimport './style.less';\n\nexport type LabelValueLayoutProps = {\n options: { label: string | ReactElement; value?: string | number | ReactElement }[];\n labelWidth?: number;\n // 一行占几组,默认1\n column?: number;\n bordered?: boolean;\n};\n\nexport const LabelValueLayout = (props: LabelValueLayoutProps) => {\n const style = { '--v-label-value-layout-lWidth': `${props.labelWidth || 120}px` } as CSSProperties;\n const className = classNames('v-label-value-layout');\n return (\n <Descriptions\n column={props.column || 1}\n bordered={props.bordered}\n size=\"small\"\n className={className}\n style={style}\n >\n {props.options.map((item, index) => {\n return (\n <Descriptions.Item key={index} label={item.label}>\n {item.value}\n </Descriptions.Item>\n );\n })}\n </Descriptions>\n );\n};\n"],"names":["LabelValueLayout","props","style","labelWidth","className","_classNames","_jsx","Descriptions","column","bordered","size","children","options","map","item","index","Item","label","value"],"mappings":";0IAaaA,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAMC,EAAQ,CAAE,iCAAoCD,EAAME,YAAc,KAAG,MAC3E,IAAMC,EAAYC,EAAW,wBAC7B,OACEC,EAACC,EAAY,CACXC,OAAQP,EAAMO,QAAU,EACxBC,SAAUR,EAAMQ,SAChBC,KAAK,QACLN,UAAWA,EACXF,MAAOA,EAAMS,SAEZV,EAAMW,QAAQC,KAAI,SAACC,EAAMC,GACxB,OACET,EAACC,EAAaS,KAAI,CAAaC,MAAOH,EAAKG,MAAMN,SAC9CG,EAAKI,OADgBH,OAOlC"}
@@ -1 +1 @@
1
- .local-loading-error{padding:24px 16px!important}.local-loading-error .ant-result-icon{margin-bottom:15px!important}.local-loading-error .ant-result-icon .anticon{font-size:40px!important}.local-loading-error .ant-result-title{font-size:16px!important}.local-loading-error .ant-result-extra{margin-top:15px!important}
1
+ .local-loading-error{padding:24px 16px!important}.local-loading-error .ant-result-icon{margin-bottom:15px!important}.local-loading-error .ant-result-icon .anticon{font-size:40px!important}.local-loading-error .ant-result-title{font-size:16px!important}.local-loading-error .ant-result-extra{margin-top:15px!important}.local-loading-area{left:50%;position:absolute;top:50%}.fba-local-loading{overflow:hidden;position:relative}.local-loading-content{height:100%;overflow-y:auto}
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable */
2
- import './../fba-hooks/index.css';
2
+ import './../dynamic-node/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import{isDeepEqual as r}from"@dimjs/lang/cjs/is-deep-equal";import{a as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{toArray as e}from"@flatbiz/utils";import{Result as t,Button as i,Spin as a}from"antd";import{forwardRef as o,useState as u,useMemo as s,useImperativeHandle as c,Fragment as f}from"react";import{fbaHooks as l}from"../fba-hooks/index.js";import{jsx as m}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var v=o((function(o,v){var d=o.serviceConfig,h=o.isAsync,p=o.children,y=o.errorRender;var g=u("loading"),j=g[0],P=g[1];var b=u(),x=b[0],C=b[1];var H=u(false),R=H[0],k=H[1];var q=o.loadingHeight===undefined?100:o.loadingHeight;var w=l.usePrevious(d.params);var E=s((function(){var r;if(!d.params||e(d.invalidParamKey).length===0){return d.params}var t=n({},d.params);(r=d.invalidParamKey)==null?void 0:r.forEach((function(r){t[r]=undefined}));return t}),[d]);var A=function r(){return new Promise((function(r,n){var e;var t=function(){try{return r()}catch(r){return n(r)}};var i=function(r){try{P("error");return t()}catch(r){return n(r)}};try{P("loading");return Promise.resolve(d.onRequest(E)).then((function(r){try{e=r;P("success");C(e);return t()}catch(r){return i(r)}}),i)}catch(r){i()}}))};l.useEffectCustomAsync(A,[]);l.useEffectCustom((function(){if(w){if(!r(d.params,w)){void K()}}}),[w,d.params]);var K=function r(){return new Promise((function(r,n){var e=function(r){return function(e){try{k(false);return r&&r.call(this,e)}catch(r){return n(r)}}.bind(this)}.bind(this);var t;var i=function(){try{return r()}catch(r){return n(r)}};var a=function(r){try{P("error");return e(i)()}catch(r){return e(n)(r)}};try{k(true);return Promise.resolve(d.onRequest(E)).then((function(r){try{t=r;C(t);return e(i)()}catch(r){return a(r)}}),a)}catch(r){a()}}))};c(v,(function(){return{onRefresh:K}}));if(j==="error"){if(y){return y(x)}return m(t,{status:"error",className:"local-loading-error",subTitle:(x==null?void 0:x.message)||"数据处理异常",style:{minHeight:q},extra:[m(i,{type:"primary",onClick:A,children:"重新获取"},"console")]})}var z=j==="loading";if(z&&!h){return m("div",{style:{height:q,display:"flex",justifyContent:"center"},children:m(a,{spinning:true,children:m(f,{})})})}return m(a,{spinning:R||z,children:p(x)})}));export{v as LocalLoading};
5
+ import{classNames as r}from"@dimjs/utils/cjs/class-names";import{isDeepEqual as n}from"@dimjs/lang/cjs/is-deep-equal";import{a as t}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{fbaHooks as e}from"@flatbiz/antd";import{toArray as i}from"@flatbiz/utils";import{Result as a,Button as o,Spin as c}from"antd";import{forwardRef as s,useState as u,useRef as l,useMemo as f,useImperativeHandle as m}from"react";import{d}from"../dynamic-node-c7864af4.js";import{jsx as v,jsxs as h}from"react/jsx-runtime";import"react-dom/client";import"../dom-4d04aa64.js";var p=s((function(s,p){var y=s.serviceConfig,g=s.isAsync,b=s.children,j=s.errorRender;var P=u("init"),C=P[0],N=P[1];var x=u(),H=x[0],R=x[1];var q=s.loadingHeight===undefined?100:s.loadingHeight;var E=l(null);var w=l();var z=e.usePrevious(y.params);var A=f((function(){var r;if(!y.params||i(y.invalidParamKey).length===0){return y.params}var n=t({},y.params);(r=y.invalidParamKey)==null?void 0:r.forEach((function(r){n[r]=undefined}));return n}),[y]);var K=function r(){w.current=d.append({content:v(c,{spinning:true}),getContainer:function r(){return E.current}}).elementId};var k=function r(){d.remove(w.current)};var B=function r(){return new Promise((function(r,n){var t=function(r){return function(t){try{k();return r&&r.call(this,t)}catch(r){return n(r)}}.bind(this)}.bind(this);var e;var i=function(){try{return r()}catch(r){return n(r)}};var a=function(r){try{N("error");return t(i)()}catch(r){return t(n)(r)}};try{K();return Promise.resolve(y.onRequest(A)).then((function(r){try{e=r;N("success");R(e);return t(i)()}catch(r){return a(r)}}),a)}catch(r){a()}}))};e.useEffectCustomAsync(B,[]);e.useEffectCustom((function(){if(z){if(!n(y.params,z)){void I()}}}),[z,y.params]);var I=function r(){return new Promise((function(r,n){var t=function(r){return function(t){try{k();return r&&r.call(this,t)}catch(r){return n(r)}}.bind(this)}.bind(this);var e;var i=function(){try{return r()}catch(r){return n(r)}};var a=function(r){try{N("error");return t(i)()}catch(r){return t(n)(r)}};try{K();return Promise.resolve(y.onRequest(A)).then((function(r){try{e=r;R(e);N("success");return t(i)()}catch(r){return a(r)}}),a)}catch(r){a()}}))};m(p,(function(){return{onRefresh:I}}));if(C==="error"){if(j){return j(H)}return v(a,{status:"error",className:"local-loading-error",subTitle:(H==null?void 0:H.message)||"数据处理异常",style:{minHeight:q},extra:[v(o,{type:"primary",onClick:B,children:"重新获取"},"console")]})}if(C!=="success"&&!g){return v("div",{style:{height:q,display:"flex",justifyContent:"center"},children:v("div",{className:"local-loading-area",ref:E})})}return h("div",{className:r("fba-local-loading",s.className),style:s.style,children:[v("div",{className:"local-loading-area",ref:E}),v("div",{className:"local-loading-content",children:b(H)})]})}));export{p as LocalLoading};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/local-loading.tsx"],"sourcesContent":["import { isDeepEqual } from '@dimjs/lang';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport { forwardRef, Fragment, ReactElement, useImperativeHandle, useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TPlainObject>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: () => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n * @param props\n * @returns\n */\nexport const LocalLoading = forwardRef<LocalLoadingRefApi, LocalLoadingProps>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'loading'>('loading');\n const [respData, setRespData] = useState<TAny>();\n const [refreshLoading, setRefreshLoading] = useState(false);\n const loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig.params || toArray(serviceConfig.invalidParamKey).length === 0) {\n return serviceConfig.params;\n }\n const newParams = { ...serviceConfig.params };\n serviceConfig.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig]);\n\n const onInitRequest = async () => {\n try {\n setStatus('loading');\n const respData = await serviceConfig.onRequest(serviceParams);\n setStatus('success');\n setRespData(respData);\n } catch (error) {\n setStatus('error');\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onRefresh();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n const onRefresh = async () => {\n try {\n setRefreshLoading(true);\n const respData = await serviceConfig.onRequest(serviceParams);\n setRespData(respData);\n } catch (error) {\n setStatus('error');\n } finally {\n setRefreshLoading(false);\n }\n };\n\n useImperativeHandle(ref, () => {\n return { onRefresh };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender(respData);\n }\n return (\n <Result\n status=\"error\"\n className=\"local-loading-error\"\n subTitle={(respData?.message as string) || '数据处理异常'}\n style={{ minHeight: loadingHeight }}\n extra={[\n <Button type=\"primary\" key=\"console\" onClick={onInitRequest}>\n 重新获取\n </Button>,\n ]}\n />\n );\n }\n const isLoading = status === 'loading';\n\n if (isLoading && !isAsync) {\n return (\n <div style={{ height: loadingHeight, display: 'flex', justifyContent: 'center' }}>\n <Spin spinning={true}>\n <Fragment />\n </Spin>\n </div>\n );\n }\n\n return <Spin spinning={refreshLoading || isLoading}>{children(respData)}</Spin>;\n});\n"],"names":["LocalLoading","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","_useState3","refreshLoading","setRefreshLoading","loadingHeight","undefined","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","onInitRequest","Promise","$return","$error","_respData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","onRequest","then","$await_3","useEffectCustomAsync","useEffectCustom","_isDeepEqual","onRefresh","$Try_2_Finally","$Try_2_Exit","$Try_2_Value","call","this","bind","_respData2","$Try_2_Post","$Try_2_Catch","$await_4","useImperativeHandle","_jsx","Result","className","subTitle","message","style","minHeight","extra","Button","type","onClick","isLoading","height","display","justifyContent","Spin","spinning","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/local-loading.tsx"],"sourcesContent":["import { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { fbaHooks } from '@flatbiz/antd';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { dynamicNode } from '../dynamic-node';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TPlainObject>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number;\n className?: string;\n style?: CSSProperties;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: () => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n * @param props\n * @returns\n */\nexport const LocalLoading = forwardRef<LocalLoadingRefApi, LocalLoadingProps>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const rootRef = useRef<HTMLDivElement>(null);\n const loadingKeyRef = useRef<string>();\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig.params || toArray(serviceConfig.invalidParamKey).length === 0) {\n return serviceConfig.params;\n }\n const newParams = { ...serviceConfig.params };\n serviceConfig.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig]);\n\n const openLoading = () => {\n loadingKeyRef.current = dynamicNode.append({\n content: <Spin spinning={true}></Spin>,\n getContainer: () => {\n return rootRef.current as HTMLElement;\n },\n }).elementId;\n };\n\n const closeLoading = () => {\n dynamicNode.remove(loadingKeyRef.current);\n };\n\n const onInitRequest = async () => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest(serviceParams);\n setStatus('success');\n setRespData(respData);\n } catch (error) {\n setStatus('error');\n } finally {\n closeLoading();\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onRefresh();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n const onRefresh = async () => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest(serviceParams);\n setRespData(respData);\n setStatus('success');\n } catch (error) {\n setStatus('error');\n } finally {\n closeLoading();\n }\n };\n\n useImperativeHandle(ref, () => {\n return { onRefresh };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender(respData);\n }\n return (\n <Result\n status=\"error\"\n className=\"local-loading-error\"\n subTitle={(respData?.message as string) || '数据处理异常'}\n style={{ minHeight: loadingHeight }}\n extra={[\n <Button type=\"primary\" key=\"console\" onClick={onInitRequest}>\n 重新获取\n </Button>,\n ]}\n />\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div style={{ height: loadingHeight, display: 'flex', justifyContent: 'center' }}>\n <div className=\"local-loading-area\" ref={rootRef}></div>\n </div>\n );\n }\n\n return (\n <div className={classNames('fba-local-loading', props.className)} style={props.style}>\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <div className=\"local-loading-content\">{children(respData)}</div>\n </div>\n );\n});\n"],"names":["LocalLoading","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","loadingHeight","undefined","rootRef","useRef","loadingKeyRef","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","openLoading","current","dynamicNode","append","content","_jsx","Spin","spinning","getContainer","elementId","closeLoading","remove","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_respData","$Try_1_Post","$Try_1_Catch","error","resolve","onRequest","then","$await_3","useEffectCustomAsync","useEffectCustom","_isDeepEqual","onRefresh","$Try_2_Finally","$Try_2_Exit","$Try_2_Value","_respData2","$Try_2_Post","$Try_2_Catch","$await_4","useImperativeHandle","Result","className","subTitle","message","style","minHeight","extra","Button","type","onClick","height","display","justifyContent","_jsxs","_classNames"],"mappings":"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"}
@@ -3,5 +3,5 @@ import './../dynamic-node/index.css';
3
3
  import './../fba-hooks/index.css';
4
4
  import './index.css';
5
5
  /*! @flatjs/forge MIT @flatbiz/antd */
6
- export{R as RichTextEditor}from"../rich-text-editor-e2ff6a3d.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@tinymce/tinymce-react";import"ahooks";import"react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"antd";import"../dynamic-node-577ef8fd.js";import"react-dom";import"../dom-4d04aa64.js";import"react/jsx-runtime";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";
6
+ export{R as RichTextEditor}from"../rich-text-editor-c8bac6d2.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@tinymce/tinymce-react";import"ahooks";import"react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"antd";import"../dynamic-node-c7864af4.js";import"react-dom/client";import"../dom-4d04aa64.js";import"react/jsx-runtime";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";
7
7
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
1
  /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{_ as e,a as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{Editor as i}from"@tinymce/tinymce-react";import{useKeyPress as o}from"ahooks";import{Fragment as a,useRef as l,useState as s}from"react";import c from"@ant-design/icons/es/icons/PlusCircleOutlined";import{Image as u}from"antd";import{d as m}from"./dynamic-node-577ef8fd.js";import{fbaHooks as d}from"./fba-hooks/index.js";import{jsx as f,Fragment as v,jsxs as p}from"react/jsx-runtime";var g=function e(n){var t=n.visible,r=n.url;d.useEffectCustom((function(){if(t){m.append({content:f(c,{onClick:n.close,className:"preview-image-popup-close",twoToneColor:"#1890ff"})})}else{m.remove()}}),[t]);if(!r)return f(v,{});return f(a,{children:f(u,{style:{left:"100px"},preview:{className:"preview-image-popup",maskStyle:{backgroundColor:"rgba(0,0,0,0.85)"},visible:t,src:r,onVisibleChange:function e(){n.close()}}},r)})};var h=["onUploadImage","onChange","className"];var y=function a(c){var u,m,d,v;var y=c.onUploadImage,b=c.onChange,C=c.className,k=e(c,h);var x=l(null);var w=s(""),_=w[0],j=w[1];var E=((u=c.init)==null?void 0:u.img_ratio)||[{min:0,max:1e3,ratio:.5},{min:1e3,ratio:.3}];o((function(){return true}),(function(e){try{if(e.type==="keyup"&&e.key==="Escape"){var n;var t=(n=x.current)==null?void 0:n.editorContainer.classList.contains("tox-fullscreen");if(t){var r;(r=x.current)==null?void 0:r.editorCommands.execCommand("mceFullScreen")}}}catch(e){}}),{events:["keydown","keyup"]});var I=r.useCallbackRef((function(e,n){try{if(e.keyCode==27){var t;var r=(t=x.current)==null?void 0:t.editorContainer.classList.contains("tox-fullscreen");if(r){var i;(i=x.current)==null?void 0:i.editorCommands.execCommand("mceFullScreen")}}}catch(e){}c.onKeyDown==null?void 0:c.onKeyDown(e,n)}));var N=r.useCallbackRef((function(e,n){x.current=n;try{var t,r;(t=n.iframeElement)==null?void 0:(r=t.contentDocument)==null?void 0:r.addEventListener("click",(function(e){var n;if(c.imgPreview&&((n=e.target)==null?void 0:n["tagName"])==="IMG"){j(e.target["src"])}}),true)}catch(e){}k.onInit==null?void 0:k.onInit(e,n)}));var P=r.useCallbackRef((function(e,n){x.current=n;k.onEditorChange==null?void 0:k.onEditorChange(e,n);b==null?void 0:b(e)}));var R="https://file.40017.cn/tcsk/tinymce@6.4.1";var S=function e(n){if(E.length===0)return 1;for(var t=0;t<E.length;t++){var r=E[t];if(r.max){if(n>=r.min&&n<=r.max)return r.ratio}else{if(n>=r.min)return r.ratio}}return 1};var z=r.useCallbackRef((function(e,n){try{var t=n.node.children||[];if(t.length===1&&t[0].nodeName==="IMG"){t[0].setAttribute("style","display:none");var r=document.createElement("img");r.src=t[0].getAttribute("src");console.log("img.src",r.src);r.onload=function(){var n=S(r.width);e.execCommand("mceInsertContent",true,'<img src="'+r.src+'" width="'+r.width*n+'" height="'+r.height*n+'" />')}}}catch(e){}}));return p("div",{className:t("v-editor-wrapper",C),children:[f(i,n({tinymceScriptSrc:R+"/tinymce.min.js"},k,{onInit:N,onKeyDown:I,onEditorChange:P,init:n({promotion:false,language:"zh-Hans",height:500,paste_data_images:y?true:false,paste_postprocess:z,autosave_ask_before_unload:false,base_url:R,autoresize_bottom_margin:0,images_upload_handler:function e(n){return new Promise((function(e,t){var r,i,o;var a=function(n){try{return e(Promise.reject((n==null?void 0:n.message)||"图片上传异常"))}catch(e){return t(e)}};try{r=n.blob();i=new File([r],r.name,{type:r.type});return Promise.resolve(y==null?void 0:y(i)).then((function(n){try{o=n;return e(Promise.resolve(o))}catch(e){return a(e)}}),a)}catch(e){a(e)}}))},plugins:"lists link image advlist charmap preview fullscreen code table help codesample "+(((m=c.init)==null?void 0:m.plugins_append)||""),toolbar:"undo redo fullscreen preview | bold italic underline strikethrough |"+"fontsize blocks |"+"forecolor backcolor removeformat |"+"numlist bullist advlist |"+"alignleft aligncenter alignright alignjustify |"+"outdent indent |"+"hr image link code codesample |"+(((d=c.init)==null?void 0:d.toolbar_append)||""),font_size_formats:"8px 10px 12px 14px 16px 18px 24px 36px 48px"},c.init,{content_style:"img {max-width:100%;} table{width:100%} "+((v=c.init)==null?void 0:v.content_style)})})),f(g,{visible:!!_,url:_,close:function e(){j("")}})]})};export{y as R};
3
- //# sourceMappingURL=rich-text-editor-e2ff6a3d.js.map
2
+ import{_ as e,a as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{Editor as i}from"@tinymce/tinymce-react";import{useKeyPress as o}from"ahooks";import{Fragment as a,useRef as l,useState as s}from"react";import c from"@ant-design/icons/es/icons/PlusCircleOutlined";import{Image as u}from"antd";import{d as m}from"./dynamic-node-c7864af4.js";import{fbaHooks as d}from"./fba-hooks/index.js";import{jsx as f,Fragment as v,jsxs as p}from"react/jsx-runtime";var g=function e(n){var t=n.visible,r=n.url;d.useEffectCustom((function(){if(t){m.append({content:f(c,{onClick:n.close,className:"preview-image-popup-close",twoToneColor:"#1890ff"})})}else{m.remove()}}),[t]);if(!r)return f(v,{});return f(a,{children:f(u,{style:{left:"100px"},preview:{className:"preview-image-popup",maskStyle:{backgroundColor:"rgba(0,0,0,0.85)"},visible:t,src:r,onVisibleChange:function e(){n.close()}}},r)})};var h=["onUploadImage","onChange","className"];var y=function a(c){var u,m,d,v;var y=c.onUploadImage,b=c.onChange,C=c.className,k=e(c,h);var x=l(null);var w=s(""),_=w[0],j=w[1];var E=((u=c.init)==null?void 0:u.img_ratio)||[{min:0,max:1e3,ratio:.5},{min:1e3,ratio:.3}];o((function(){return true}),(function(e){try{if(e.type==="keyup"&&e.key==="Escape"){var n;var t=(n=x.current)==null?void 0:n.editorContainer.classList.contains("tox-fullscreen");if(t){var r;(r=x.current)==null?void 0:r.editorCommands.execCommand("mceFullScreen")}}}catch(e){}}),{events:["keydown","keyup"]});var I=r.useCallbackRef((function(e,n){try{if(e.keyCode==27){var t;var r=(t=x.current)==null?void 0:t.editorContainer.classList.contains("tox-fullscreen");if(r){var i;(i=x.current)==null?void 0:i.editorCommands.execCommand("mceFullScreen")}}}catch(e){}c.onKeyDown==null?void 0:c.onKeyDown(e,n)}));var N=r.useCallbackRef((function(e,n){x.current=n;try{var t,r;(t=n.iframeElement)==null?void 0:(r=t.contentDocument)==null?void 0:r.addEventListener("click",(function(e){var n;if(c.imgPreview&&((n=e.target)==null?void 0:n["tagName"])==="IMG"){j(e.target["src"])}}),true)}catch(e){}k.onInit==null?void 0:k.onInit(e,n)}));var P=r.useCallbackRef((function(e,n){x.current=n;k.onEditorChange==null?void 0:k.onEditorChange(e,n);b==null?void 0:b(e)}));var R="https://file.40017.cn/tcsk/tinymce@6.4.1";var S=function e(n){if(E.length===0)return 1;for(var t=0;t<E.length;t++){var r=E[t];if(r.max){if(n>=r.min&&n<=r.max)return r.ratio}else{if(n>=r.min)return r.ratio}}return 1};var z=r.useCallbackRef((function(e,n){try{var t=n.node.children||[];if(t.length===1&&t[0].nodeName==="IMG"){t[0].setAttribute("style","display:none");var r=document.createElement("img");r.src=t[0].getAttribute("src");console.log("img.src",r.src);r.onload=function(){var n=S(r.width);e.execCommand("mceInsertContent",true,'<img src="'+r.src+'" width="'+r.width*n+'" height="'+r.height*n+'" />')}}}catch(e){}}));return p("div",{className:t("v-editor-wrapper",C),children:[f(i,n({tinymceScriptSrc:R+"/tinymce.min.js"},k,{onInit:N,onKeyDown:I,onEditorChange:P,init:n({promotion:false,language:"zh-Hans",height:500,paste_data_images:y?true:false,paste_postprocess:z,autosave_ask_before_unload:false,base_url:R,autoresize_bottom_margin:0,images_upload_handler:function e(n){return new Promise((function(e,t){var r,i,o;var a=function(n){try{return e(Promise.reject((n==null?void 0:n.message)||"图片上传异常"))}catch(e){return t(e)}};try{r=n.blob();i=new File([r],r.name,{type:r.type});return Promise.resolve(y==null?void 0:y(i)).then((function(n){try{o=n;return e(Promise.resolve(o))}catch(e){return a(e)}}),a)}catch(e){a(e)}}))},plugins:"lists link image advlist charmap preview fullscreen code table help codesample "+(((m=c.init)==null?void 0:m.plugins_append)||""),toolbar:"undo redo fullscreen preview | bold italic underline strikethrough |"+"fontsize blocks |"+"forecolor backcolor removeformat |"+"numlist bullist advlist |"+"alignleft aligncenter alignright alignjustify |"+"outdent indent |"+"hr image link code codesample |"+(((d=c.init)==null?void 0:d.toolbar_append)||""),font_size_formats:"8px 10px 12px 14px 16px 18px 24px 36px 48px"},c.init,{content_style:"img {max-width:100%;} table{width:100%} "+((v=c.init)==null?void 0:v.content_style)})})),f(g,{visible:!!_,url:_,close:function e(){j("")}})]})};export{y as R};
3
+ //# sourceMappingURL=rich-text-editor-c8bac6d2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rich-text-editor-e2ff6a3d.js","sources":["@flatbiz/antd/src/rich-text-editor/preview/preview.tsx","@flatbiz/antd/src/rich-text-editor/rich-text-editor.tsx"],"sourcesContent":["import { PlusCircleOutlined } from '@ant-design/icons';\nimport { Image } from 'antd';\nimport { Fragment } from 'react';\nimport { dynamicNode } from '../../dynamic-node';\nimport { fbaHooks } from '../../fba-hooks';\nimport './preview.less';\n\nexport const Preview = (props) => {\n const { visible, url } = props;\n\n fbaHooks.useEffectCustom(() => {\n if (visible) {\n dynamicNode.append({\n content: (\n <PlusCircleOutlined\n onClick={props.close}\n className=\"preview-image-popup-close\"\n twoToneColor=\"#1890ff\"\n />\n ),\n });\n } else {\n dynamicNode.remove();\n }\n }, [visible]);\n\n if (!url) return <></>;\n\n return (\n <Fragment>\n <Image\n key={url}\n style={{ left: '100px' }}\n preview={{\n className: 'preview-image-popup',\n maskStyle: { backgroundColor: 'rgba(0,0,0,0.85)' },\n visible,\n src: url,\n onVisibleChange: () => {\n props.close();\n },\n }}\n />\n </Fragment>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { Editor, IAllProps } from '@tinymce/tinymce-react';\nimport { hooks } from '@wove/react';\nimport { useKeyPress } from 'ahooks';\nimport { useRef, useState } from 'react';\nimport { Editor as TinyMCEEditor } from 'tinymce';\nimport { Preview } from './preview';\nimport './style.less';\n\nexport interface RichTextEditorProps extends Omit<IAllProps, 'onChange' | 'init'> {\n onChange?: (data?: string) => void;\n // value?: string;\n /** 上传图片服务 */\n onUploadImage?: (file: File) => Promise<string>;\n className?: string;\n /** 图片点击预览 */\n imgPreview?: boolean;\n init?: IAllProps['init'] & {\n /**\n * 通过粘贴图片创建的img标签,显示压缩比例,此处min、max是和指图片宽度\n * 1. 默认值值:[{ min: 0, max: 1000, ratio: 0.5 }, { min: 1000, ratio: 0.3 }]\n */\n img_ratio?: { min: number; max?: number; ratio: number }[];\n /** 插件添加;自定义plugins后失效 */\n plugins_append?: string;\n /** 工具栏添加;自定义toolbar后失效 */\n toolbar_append?: string;\n };\n}\n\n/**\n * 富文本编辑器,配置参考tinymce https://www.tiny.cloud/docs/tinymce/6\n * @param props\n * @returns\n * ```\n * 1. 如果需要粘贴上传图片服务,需要提供 onUploadImage 上传图片接口\n * 2. 获取富文本实例,通过onInit(_, editor)函数获取\n * 3. 预览富文本数据,使用 RichTextViewer 组件\n * 4. 添加其他插件使用方式,配置 init.plugins_append、init.toolbar_append\n * <RichTextEditor init={{ plugins_append: 'codesample', toolbar_append: 'codesample' }} />\n * 5. 可通过设置 init.plugins、init.toolbar 完全自定义插件、工具栏\n * 6. 其他插件\n * emoticons 表情插件\n * 7. 可通过设置 init.img_ratio 设置通过粘贴上传的图片压缩显示比例\n * 默认比例:[{ min: 0, max: 1000, ratio: 0.5 }, { min: 1000, ratio: 0.3 }]\n * ```\n */\nexport const RichTextEditor = (props: RichTextEditorProps) => {\n const { onUploadImage, onChange, className, ...otherProps } = props;\n\n const editorRef = useRef<TAny>(null);\n const [previewUrl, setPreviewUrl] = useState('');\n const imgRatio = props.init?.img_ratio || [\n { min: 0, max: 1000, ratio: 0.5 },\n { min: 1000, ratio: 0.3 },\n ];\n\n // const varStyleString = useMemo(() => {\n // const merge = { ...defaultVarStyle, ...props.varStyle };\n // let varStyleString = '';\n // Object.keys(merge).map((key) => {\n // varStyleString += `${key}:${merge[key]};`;\n // });\n // return varStyleString;\n // }, [props.varStyle]);\n\n // const images_upload_handler = hooks.useCallbackRef(async (blobInfo: BlobInfo, progress: ProgressFn) => {\n // try {\n // const respData = await props.onUploadImage?.(blobInfo.blob());\n // success(respData);\n // } catch (error) {\n // failure(error.message);\n // }\n // });\n\n useKeyPress(\n () => true,\n (event) => {\n try {\n if (event.type === 'keyup' && event.key === 'Escape') {\n const isFull = editorRef.current?.editorContainer.classList.contains('tox-fullscreen');\n if (isFull) {\n editorRef.current?.editorCommands.execCommand('mceFullScreen');\n }\n }\n } catch (error) {\n // 异常不处理\n }\n },\n {\n events: ['keydown', 'keyup'],\n },\n );\n\n const onKeyDown = hooks.useCallbackRef((event, editor: TinyMCEEditor) => {\n try {\n if (event.keyCode == 27) {\n const isFull = editorRef.current?.editorContainer.classList.contains('tox-fullscreen');\n if (isFull) {\n editorRef.current?.editorCommands.execCommand('mceFullScreen');\n }\n }\n } catch (error) {\n // 异常不处理\n }\n props.onKeyDown?.(event, editor);\n });\n\n const onInit = hooks.useCallbackRef((_, editor: TinyMCEEditor) => {\n editorRef.current = editor;\n try {\n editor.iframeElement?.contentDocument?.addEventListener(\n 'click',\n (event) => {\n if (props.imgPreview && event.target?.['tagName'] === 'IMG') {\n setPreviewUrl(event.target['src']);\n }\n },\n true,\n );\n } catch (error) {\n //\n }\n otherProps.onInit?.(_, editor);\n });\n\n const onEditorChange = hooks.useCallbackRef((a: string, editor: TinyMCEEditor) => {\n editorRef.current = editor;\n otherProps.onEditorChange?.(a, editor);\n onChange?.(a);\n });\n\n const tinymceBaseUrl = 'https://file.40017.cn/tcsk/tinymce@6.4.1';\n\n const getImgRatio = (width: number) => {\n if (imgRatio.length === 0) return 1;\n for (let index = 0; index < imgRatio.length; index++) {\n const element = imgRatio[index];\n if (element.max) {\n if (width >= element.min && width <= element.max) return element.ratio;\n } else {\n if (width >= element.min) return element.ratio;\n }\n }\n return 1;\n };\n\n const paste_postprocess = hooks.useCallbackRef((editor, args) => {\n try {\n const nodes = (args.node.children || []) as unknown as HTMLElement[];\n if (nodes.length === 1 && nodes[0].nodeName === 'IMG') {\n nodes[0].setAttribute('style', `display:none`);\n const img = document.createElement('img');\n img.src = nodes[0].getAttribute('src') as string;\n console.log('img.src', img.src);\n img.onload = () => {\n const ratio = getImgRatio(img.width);\n editor.execCommand(\n 'mceInsertContent',\n true,\n `<img src=\"${img.src}\" width=\"${img.width * ratio}\" height=\"${img.height * ratio}\" />`,\n );\n };\n }\n } catch (error) {}\n });\n\n return (\n <div className={classNames('v-editor-wrapper', className)}>\n <Editor\n // apiKey=\"ds6j8so4g3d2cycidbhgkds36q0phy1uqd9jd8bot91sfe5l\"\n tinymceScriptSrc={`${tinymceBaseUrl}/tinymce.min.js`}\n {...otherProps}\n onInit={onInit}\n onKeyDown={onKeyDown}\n onEditorChange={onEditorChange}\n init={{\n promotion: false,\n language: 'zh-Hans',\n height: 500,\n paste_data_images: onUploadImage ? true : false,\n paste_postprocess,\n autosave_ask_before_unload: false,\n base_url: tinymceBaseUrl,\n autoresize_bottom_margin: 0,\n images_upload_handler: async (blobInfo) => {\n try {\n const blob = blobInfo.blob();\n const file = new File([blob], blob.name, { type: blob.type });\n const respData = await onUploadImage?.(file);\n return Promise.resolve(respData as string);\n } catch (error) {\n return Promise.reject(error?.message || '图片上传异常');\n }\n },\n\n plugins:\n 'lists link image advlist charmap preview fullscreen code table help codesample ' +\n (props.init?.plugins_append || ''),\n toolbar:\n 'undo redo fullscreen preview | bold italic underline strikethrough |' +\n 'fontsize blocks |' +\n 'forecolor backcolor removeformat |' +\n 'numlist bullist advlist |' +\n 'alignleft aligncenter alignright alignjustify |' +\n 'outdent indent |' +\n 'hr image link code codesample |' +\n (props.init?.toolbar_append || ''),\n font_size_formats: '8px 10px 12px 14px 16px 18px 24px 36px 48px',\n ...props.init,\n content_style: `img {max-width:100%;} table{width:100%} ${props.init?.content_style}`,\n }}\n />\n <Preview\n visible={!!previewUrl}\n url={previewUrl}\n close={() => {\n setPreviewUrl('');\n }}\n />\n </div>\n );\n};\n\n/**\n * undo redo\n * codesample\n * fontselect fontsizeselect formatselect\n * image media link anchor\n * preview save print\n * emoticons(表情)\n */\n"],"names":["Preview","props","visible","url","fbaHooks","useEffectCustom","dynamicNode","append","content","_jsx","_PlusCircleOutlined","onClick","close","className","twoToneColor","remove","_Fragment","Fragment","children","Image","style","left","preview","maskStyle","backgroundColor","src","onVisibleChange","RichTextEditor","_props$init","_props$init2","_props$init3","_props$init4","onUploadImage","onChange","otherProps","_objectWithoutPropertiesLoose","_excluded","editorRef","useRef","_useState","useState","previewUrl","setPreviewUrl","imgRatio","init","img_ratio","min","max","ratio","useKeyPress","event","type","key","_editorRef$current","isFull","current","editorContainer","classList","contains","_editorRef$current2","editorCommands","execCommand","error","events","onKeyDown","_hooks","useCallbackRef","editor","keyCode","_editorRef$current3","_editorRef$current4","onInit","_","_editor$iframeElement","_editor$iframeElement2","iframeElement","contentDocument","addEventListener","_event$target","imgPreview","target","onEditorChange","a","tinymceBaseUrl","getImgRatio","width","length","index","element","paste_postprocess","args","nodes","node","nodeName","setAttribute","img","document","createElement","getAttribute","console","log","onload","height","_jsxs","_classNames","Editor","_extends","tinymceScriptSrc","promotion","language","paste_data_images","autosave_ask_before_unload","base_url","autoresize_bottom_margin","images_upload_handler","blobInfo","Promise","$return","$error","blob","_file","respData","$Try_5_Catch","reject","message","$boundEx","file","File","name","resolve","then","$await_6","plugins","plugins_append","toolbar","toolbar_append","font_size_formats","content_style"],"mappings":"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"}
1
+ {"version":3,"file":"rich-text-editor-c8bac6d2.js","sources":["@flatbiz/antd/src/rich-text-editor/preview/preview.tsx","@flatbiz/antd/src/rich-text-editor/rich-text-editor.tsx"],"sourcesContent":["import { PlusCircleOutlined } from '@ant-design/icons';\nimport { Image } from 'antd';\nimport { Fragment } from 'react';\nimport { dynamicNode } from '../../dynamic-node';\nimport { fbaHooks } from '../../fba-hooks';\nimport './preview.less';\n\nexport const Preview = (props) => {\n const { visible, url } = props;\n\n fbaHooks.useEffectCustom(() => {\n if (visible) {\n dynamicNode.append({\n content: (\n <PlusCircleOutlined\n onClick={props.close}\n className=\"preview-image-popup-close\"\n twoToneColor=\"#1890ff\"\n />\n ),\n });\n } else {\n dynamicNode.remove();\n }\n }, [visible]);\n\n if (!url) return <></>;\n\n return (\n <Fragment>\n <Image\n key={url}\n style={{ left: '100px' }}\n preview={{\n className: 'preview-image-popup',\n maskStyle: { backgroundColor: 'rgba(0,0,0,0.85)' },\n visible,\n src: url,\n onVisibleChange: () => {\n props.close();\n },\n }}\n />\n </Fragment>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { Editor, IAllProps } from '@tinymce/tinymce-react';\nimport { hooks } from '@wove/react';\nimport { useKeyPress } from 'ahooks';\nimport { useRef, useState } from 'react';\nimport { Editor as TinyMCEEditor } from 'tinymce';\nimport { Preview } from './preview';\nimport './style.less';\n\nexport interface RichTextEditorProps extends Omit<IAllProps, 'onChange' | 'init'> {\n onChange?: (data?: string) => void;\n // value?: string;\n /** 上传图片服务 */\n onUploadImage?: (file: File) => Promise<string>;\n className?: string;\n /** 图片点击预览 */\n imgPreview?: boolean;\n init?: IAllProps['init'] & {\n /**\n * 通过粘贴图片创建的img标签,显示压缩比例,此处min、max是和指图片宽度\n * 1. 默认值值:[{ min: 0, max: 1000, ratio: 0.5 }, { min: 1000, ratio: 0.3 }]\n */\n img_ratio?: { min: number; max?: number; ratio: number }[];\n /** 插件添加;自定义plugins后失效 */\n plugins_append?: string;\n /** 工具栏添加;自定义toolbar后失效 */\n toolbar_append?: string;\n };\n}\n\n/**\n * 富文本编辑器,配置参考tinymce https://www.tiny.cloud/docs/tinymce/6\n * @param props\n * @returns\n * ```\n * 1. 如果需要粘贴上传图片服务,需要提供 onUploadImage 上传图片接口\n * 2. 获取富文本实例,通过onInit(_, editor)函数获取\n * 3. 预览富文本数据,使用 RichTextViewer 组件\n * 4. 添加其他插件使用方式,配置 init.plugins_append、init.toolbar_append\n * <RichTextEditor init={{ plugins_append: 'codesample', toolbar_append: 'codesample' }} />\n * 5. 可通过设置 init.plugins、init.toolbar 完全自定义插件、工具栏\n * 6. 其他插件\n * emoticons 表情插件\n * 7. 可通过设置 init.img_ratio 设置通过粘贴上传的图片压缩显示比例\n * 默认比例:[{ min: 0, max: 1000, ratio: 0.5 }, { min: 1000, ratio: 0.3 }]\n * ```\n */\nexport const RichTextEditor = (props: RichTextEditorProps) => {\n const { onUploadImage, onChange, className, ...otherProps } = props;\n\n const editorRef = useRef<TAny>(null);\n const [previewUrl, setPreviewUrl] = useState('');\n const imgRatio = props.init?.img_ratio || [\n { min: 0, max: 1000, ratio: 0.5 },\n { min: 1000, ratio: 0.3 },\n ];\n\n // const varStyleString = useMemo(() => {\n // const merge = { ...defaultVarStyle, ...props.varStyle };\n // let varStyleString = '';\n // Object.keys(merge).map((key) => {\n // varStyleString += `${key}:${merge[key]};`;\n // });\n // return varStyleString;\n // }, [props.varStyle]);\n\n // const images_upload_handler = hooks.useCallbackRef(async (blobInfo: BlobInfo, progress: ProgressFn) => {\n // try {\n // const respData = await props.onUploadImage?.(blobInfo.blob());\n // success(respData);\n // } catch (error) {\n // failure(error.message);\n // }\n // });\n\n useKeyPress(\n () => true,\n (event) => {\n try {\n if (event.type === 'keyup' && event.key === 'Escape') {\n const isFull = editorRef.current?.editorContainer.classList.contains('tox-fullscreen');\n if (isFull) {\n editorRef.current?.editorCommands.execCommand('mceFullScreen');\n }\n }\n } catch (error) {\n // 异常不处理\n }\n },\n {\n events: ['keydown', 'keyup'],\n },\n );\n\n const onKeyDown = hooks.useCallbackRef((event, editor: TinyMCEEditor) => {\n try {\n if (event.keyCode == 27) {\n const isFull = editorRef.current?.editorContainer.classList.contains('tox-fullscreen');\n if (isFull) {\n editorRef.current?.editorCommands.execCommand('mceFullScreen');\n }\n }\n } catch (error) {\n // 异常不处理\n }\n props.onKeyDown?.(event, editor);\n });\n\n const onInit = hooks.useCallbackRef((_, editor: TinyMCEEditor) => {\n editorRef.current = editor;\n try {\n editor.iframeElement?.contentDocument?.addEventListener(\n 'click',\n (event) => {\n if (props.imgPreview && event.target?.['tagName'] === 'IMG') {\n setPreviewUrl(event.target['src']);\n }\n },\n true,\n );\n } catch (error) {\n //\n }\n otherProps.onInit?.(_, editor);\n });\n\n const onEditorChange = hooks.useCallbackRef((a: string, editor: TinyMCEEditor) => {\n editorRef.current = editor;\n otherProps.onEditorChange?.(a, editor);\n onChange?.(a);\n });\n\n const tinymceBaseUrl = 'https://file.40017.cn/tcsk/tinymce@6.4.1';\n\n const getImgRatio = (width: number) => {\n if (imgRatio.length === 0) return 1;\n for (let index = 0; index < imgRatio.length; index++) {\n const element = imgRatio[index];\n if (element.max) {\n if (width >= element.min && width <= element.max) return element.ratio;\n } else {\n if (width >= element.min) return element.ratio;\n }\n }\n return 1;\n };\n\n const paste_postprocess = hooks.useCallbackRef((editor, args) => {\n try {\n const nodes = (args.node.children || []) as unknown as HTMLElement[];\n if (nodes.length === 1 && nodes[0].nodeName === 'IMG') {\n nodes[0].setAttribute('style', `display:none`);\n const img = document.createElement('img');\n img.src = nodes[0].getAttribute('src') as string;\n console.log('img.src', img.src);\n img.onload = () => {\n const ratio = getImgRatio(img.width);\n editor.execCommand(\n 'mceInsertContent',\n true,\n `<img src=\"${img.src}\" width=\"${img.width * ratio}\" height=\"${img.height * ratio}\" />`,\n );\n };\n }\n } catch (error) {}\n });\n\n return (\n <div className={classNames('v-editor-wrapper', className)}>\n <Editor\n // apiKey=\"ds6j8so4g3d2cycidbhgkds36q0phy1uqd9jd8bot91sfe5l\"\n tinymceScriptSrc={`${tinymceBaseUrl}/tinymce.min.js`}\n {...otherProps}\n onInit={onInit}\n onKeyDown={onKeyDown}\n onEditorChange={onEditorChange}\n init={{\n promotion: false,\n language: 'zh-Hans',\n height: 500,\n paste_data_images: onUploadImage ? true : false,\n paste_postprocess,\n autosave_ask_before_unload: false,\n base_url: tinymceBaseUrl,\n autoresize_bottom_margin: 0,\n images_upload_handler: async (blobInfo) => {\n try {\n const blob = blobInfo.blob();\n const file = new File([blob], blob.name, { type: blob.type });\n const respData = await onUploadImage?.(file);\n return Promise.resolve(respData as string);\n } catch (error) {\n return Promise.reject(error?.message || '图片上传异常');\n }\n },\n\n plugins:\n 'lists link image advlist charmap preview fullscreen code table help codesample ' +\n (props.init?.plugins_append || ''),\n toolbar:\n 'undo redo fullscreen preview | bold italic underline strikethrough |' +\n 'fontsize blocks |' +\n 'forecolor backcolor removeformat |' +\n 'numlist bullist advlist |' +\n 'alignleft aligncenter alignright alignjustify |' +\n 'outdent indent |' +\n 'hr image link code codesample |' +\n (props.init?.toolbar_append || ''),\n font_size_formats: '8px 10px 12px 14px 16px 18px 24px 36px 48px',\n ...props.init,\n content_style: `img {max-width:100%;} table{width:100%} ${props.init?.content_style}`,\n }}\n />\n <Preview\n visible={!!previewUrl}\n url={previewUrl}\n close={() => {\n setPreviewUrl('');\n }}\n />\n </div>\n );\n};\n\n/**\n * undo redo\n * codesample\n * fontselect fontsizeselect formatselect\n * image media link anchor\n * preview save print\n * emoticons(表情)\n */\n"],"names":["Preview","props","visible","url","fbaHooks","useEffectCustom","dynamicNode","append","content","_jsx","_PlusCircleOutlined","onClick","close","className","twoToneColor","remove","_Fragment","Fragment","children","Image","style","left","preview","maskStyle","backgroundColor","src","onVisibleChange","RichTextEditor","_props$init","_props$init2","_props$init3","_props$init4","onUploadImage","onChange","otherProps","_objectWithoutPropertiesLoose","_excluded","editorRef","useRef","_useState","useState","previewUrl","setPreviewUrl","imgRatio","init","img_ratio","min","max","ratio","useKeyPress","event","type","key","_editorRef$current","isFull","current","editorContainer","classList","contains","_editorRef$current2","editorCommands","execCommand","error","events","onKeyDown","_hooks","useCallbackRef","editor","keyCode","_editorRef$current3","_editorRef$current4","onInit","_","_editor$iframeElement","_editor$iframeElement2","iframeElement","contentDocument","addEventListener","_event$target","imgPreview","target","onEditorChange","a","tinymceBaseUrl","getImgRatio","width","length","index","element","paste_postprocess","args","nodes","node","nodeName","setAttribute","img","document","createElement","getAttribute","console","log","onload","height","_jsxs","_classNames","Editor","_extends","tinymceScriptSrc","promotion","language","paste_data_images","autosave_ask_before_unload","base_url","autoresize_bottom_margin","images_upload_handler","blobInfo","Promise","$return","$error","blob","_file","respData","$Try_5_Catch","reject","message","$boundEx","file","File","name","resolve","then","$await_6","plugins","plugins_append","toolbar","toolbar_append","font_size_formats","content_style"],"mappings":"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"}
@@ -5,5 +5,5 @@ import './../rich-text-editor/index.css';
5
5
  import './../dynamic-node/index.css';
6
6
  import './index.css';
7
7
  /*! @flatjs/forge MIT @flatbiz/antd */
8
- import e from"@ant-design/icons/es/icons/FullscreenOutlined";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{useKeyPress as o}from"ahooks";import{useState as t,useRef as s}from"react";import{fbaHooks as n}from"../fba-hooks/index.js";import{I as a}from"../icon-wrapper-ed5fcacc.js";import{R as l}from"../rich-text-editor-e2ff6a3d.js";import{jsxs as m,jsx as c}from"react/jsx-runtime";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"antd";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"../dynamic-node-577ef8fd.js";import"react-dom";import"../dom-4d04aa64.js";var u=function u(d){var f=t(false),p=f[0],v=f[1];var j=s();o((function(){return true}),(function(e){if(e.type==="keyup"&&e.key==="Escape"&&p){v(false)}}),{events:["keydown","keyup"]});var y=r.useCallbackRef((function(){v(!p)}));var b=r.useCallbackRef((function(e,i){j.current=i;d.onInit==null?void 0:d.onInit(i)}));n.useEffectCustom((function(){var e;(e=j.current)==null?void 0:e.editorCommands.execCommand("mceAutoResize")}),[d.value]);return m("div",{className:i("fba-editor-viewer",{"fba-editor-viewer-fixed":p},d.className),style:d.style,children:[d.children,d.fullscreen&&d.value&&c("div",{className:"fba-editor-viewer-icon",children:c(a,{hoverTips:d.fullscreenIconTips,icon:c(e,{}),onClick:y})}),c(l,{value:'<div style="overflow: hidden">'+d.value+"</div>",onInit:b,imgPreview:true,disabled:true,init:{plugins:"autoresize",menubar:false,toolbar:"",statusbar:false}})]})};export{u as RichTextViewer};
8
+ import e from"@ant-design/icons/es/icons/FullscreenOutlined";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{useKeyPress as o}from"ahooks";import{useState as t,useRef as s}from"react";import{fbaHooks as n}from"../fba-hooks/index.js";import{I as a}from"../icon-wrapper-ed5fcacc.js";import{R as l}from"../rich-text-editor-c8bac6d2.js";import{jsxs as c,jsx as m}from"react/jsx-runtime";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"antd";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"../dynamic-node-c7864af4.js";import"react-dom/client";import"../dom-4d04aa64.js";var u=function u(d){var f=t(false),p=f[0],v=f[1];var j=s();o((function(){return true}),(function(e){if(e.type==="keyup"&&e.key==="Escape"&&p){v(false)}}),{events:["keydown","keyup"]});var y=r.useCallbackRef((function(){v(!p)}));var b=r.useCallbackRef((function(e,i){j.current=i;d.onInit==null?void 0:d.onInit(i)}));n.useEffectCustom((function(){var e;(e=j.current)==null?void 0:e.editorCommands.execCommand("mceAutoResize")}),[d.value]);return c("div",{className:i("fba-editor-viewer",{"fba-editor-viewer-fixed":p},d.className),style:d.style,children:[d.children,d.fullscreen&&d.value&&m("div",{className:"fba-editor-viewer-icon",children:m(a,{hoverTips:d.fullscreenIconTips,icon:m(e,{}),onClick:y})}),m(l,{value:'<div style="overflow: hidden">'+d.value+"</div>",onInit:b,imgPreview:true,disabled:true,init:{plugins:"autoresize",menubar:false,toolbar:"",statusbar:false}})]})};export{u as RichTextViewer};
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/rich-text-viewer/rich-text-viewer.tsx"],"sourcesContent":["import { FullscreenOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { useKeyPress } from 'ahooks';\nimport { CSSProperties, ReactElement, useRef, useState } from 'react';\nimport { Editor as TinyMCEEditor } from 'tinymce';\n\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\nimport { RichTextEditor } from '../rich-text-editor';\nimport './style.less';\n\ntype RichTextViewerProps = {\n value: string;\n className?: string;\n style?: CSSProperties;\n fullscreen?: boolean;\n onInit?: (editor: TinyMCEEditor) => void;\n children?: ReactElement;\n fullscreenIconTips?: string;\n};\n\n/**\n * 预览 RichTextEditor 生成的富文本数据\n * ```\n * 1. 通过 onInit 属性可获取实例:editor\n * 2. 如果高度发生变更,可执行 editor.execCommand('mceAutoResize');\n *\n * ```\n * @param props\n * @returns\n */\nexport const RichTextViewer = (props: RichTextViewerProps) => {\n const [isFixed, setIsFixed] = useState(false);\n const editorRef = useRef<TinyMCEEditor>();\n\n useKeyPress(\n () => true,\n (event) => {\n if (event.type === 'keyup' && event.key === 'Escape' && isFixed) {\n setIsFixed(false);\n }\n },\n { events: ['keydown', 'keyup'] },\n );\n\n const onChangeFixed = hooks.useCallbackRef(() => {\n setIsFixed(!isFixed);\n });\n const onInit = hooks.useCallbackRef((_, editor: TinyMCEEditor) => {\n editorRef.current = editor;\n props.onInit?.(editor);\n });\n\n fbaHooks.useEffectCustom(() => {\n editorRef.current?.editorCommands.execCommand('mceAutoResize');\n }, [props.value]);\n\n return (\n <div\n className={classNames('fba-editor-viewer', { 'fba-editor-viewer-fixed': isFixed }, props.className)}\n style={props.style}\n >\n {props.children}\n {props.fullscreen && props.value && (\n <div className=\"fba-editor-viewer-icon\">\n <IconWrapper\n hoverTips={props.fullscreenIconTips}\n icon={<FullscreenOutlined />}\n onClick={onChangeFixed}\n />\n </div>\n )}\n <RichTextEditor\n value={`<div style=\"overflow: hidden\">${props.value}</div>`}\n onInit={onInit}\n imgPreview\n disabled\n init={{\n plugins: 'autoresize',\n menubar: false,\n toolbar: '',\n statusbar: false,\n }}\n />\n </div>\n );\n};\n"],"names":["RichTextViewer","props","_useState","useState","isFixed","setIsFixed","editorRef","useRef","useKeyPress","event","type","key","events","onChangeFixed","_hooks","useCallbackRef","onInit","_","editor","current","fbaHooks","useEffectCustom","_editorRef$current","editorCommands","execCommand","value","_jsxs","className","_classNames","style","children","fullscreen","_jsx","IconWrapper","hoverTips","fullscreenIconTips","icon","_FullscreenOutlined","onClick","RichTextEditor","imgPreview","disabled","init","plugins","menubar","toolbar","statusbar"],"mappings":";mvBAgCaA,EAAiB,SAAjBA,EAAkBC,GAC7B,IAAAC,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAC1B,IAAMI,EAAYC,IAElBC,GACE,WAAA,OAAM,IACN,IAAA,SAACC,GACC,GAAIA,EAAMC,OAAS,SAAWD,EAAME,MAAQ,UAAYP,EAAS,CAC/DC,EAAW,MACb,CACF,GACA,CAAEO,OAAQ,CAAC,UAAW,WAGxB,IAAMC,EAAgBC,EAAMC,gBAAe,WACzCV,GAAYD,EACd,IACA,IAAMY,EAASF,EAAMC,gBAAe,SAACE,EAAGC,GACtCZ,EAAUa,QAAUD,EACpBjB,EAAMe,QAANf,UAAAA,EAAAA,EAAMe,OAASE,EACjB,IAEAE,EAASC,iBAAgB,WAAM,IAAAC,GAC7BA,EAAAhB,EAAUa,UAAO,UAAA,EAAjBG,EAAmBC,eAAeC,YAAY,gBAChD,GAAG,CAACvB,EAAMwB,QAEV,OACEC,EAAA,MAAA,CACEC,UAAWC,EAAW,oBAAqB,CAAE,0BAA2BxB,GAAWH,EAAM0B,WACzFE,MAAO5B,EAAM4B,MAAMC,SAElB7B,CAAAA,EAAM6B,SACN7B,EAAM8B,YAAc9B,EAAMwB,OACzBO,EAAA,MAAA,CAAKL,UAAU,yBAAwBG,SACrCE,EAACC,EAAW,CACVC,UAAWjC,EAAMkC,mBACjBC,KAAMJ,EAAAK,EAAuB,IAC7BC,QAASzB,MAIfmB,EAACO,EAAc,CACbd,MAAwCxB,iCAAAA,EAAMwB,MAAc,SAC5DT,OAAQA,EACRwB,WAAU,KACVC,SAAQ,KACRC,KAAM,CACJC,QAAS,aACTC,QAAS,MACTC,QAAS,GACTC,UAAW,WAKrB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/rich-text-viewer/rich-text-viewer.tsx"],"sourcesContent":["import { FullscreenOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { useKeyPress } from 'ahooks';\nimport { CSSProperties, ReactElement, useRef, useState } from 'react';\nimport { Editor as TinyMCEEditor } from 'tinymce';\n\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\nimport { RichTextEditor } from '../rich-text-editor';\nimport './style.less';\n\ntype RichTextViewerProps = {\n value: string;\n className?: string;\n style?: CSSProperties;\n fullscreen?: boolean;\n onInit?: (editor: TinyMCEEditor) => void;\n children?: ReactElement;\n fullscreenIconTips?: string;\n};\n\n/**\n * 预览 RichTextEditor 生成的富文本数据\n * ```\n * 1. 通过 onInit 属性可获取实例:editor\n * 2. 如果高度发生变更,可执行 editor.execCommand('mceAutoResize');\n *\n * ```\n * @param props\n * @returns\n */\nexport const RichTextViewer = (props: RichTextViewerProps) => {\n const [isFixed, setIsFixed] = useState(false);\n const editorRef = useRef<TinyMCEEditor>();\n\n useKeyPress(\n () => true,\n (event) => {\n if (event.type === 'keyup' && event.key === 'Escape' && isFixed) {\n setIsFixed(false);\n }\n },\n { events: ['keydown', 'keyup'] },\n );\n\n const onChangeFixed = hooks.useCallbackRef(() => {\n setIsFixed(!isFixed);\n });\n const onInit = hooks.useCallbackRef((_, editor: TinyMCEEditor) => {\n editorRef.current = editor;\n props.onInit?.(editor);\n });\n\n fbaHooks.useEffectCustom(() => {\n editorRef.current?.editorCommands.execCommand('mceAutoResize');\n }, [props.value]);\n\n return (\n <div\n className={classNames('fba-editor-viewer', { 'fba-editor-viewer-fixed': isFixed }, props.className)}\n style={props.style}\n >\n {props.children}\n {props.fullscreen && props.value && (\n <div className=\"fba-editor-viewer-icon\">\n <IconWrapper\n hoverTips={props.fullscreenIconTips}\n icon={<FullscreenOutlined />}\n onClick={onChangeFixed}\n />\n </div>\n )}\n <RichTextEditor\n value={`<div style=\"overflow: hidden\">${props.value}</div>`}\n onInit={onInit}\n imgPreview\n disabled\n init={{\n plugins: 'autoresize',\n menubar: false,\n toolbar: '',\n statusbar: false,\n }}\n />\n </div>\n );\n};\n"],"names":["RichTextViewer","props","_useState","useState","isFixed","setIsFixed","editorRef","useRef","useKeyPress","event","type","key","events","onChangeFixed","_hooks","useCallbackRef","onInit","_","editor","current","fbaHooks","useEffectCustom","_editorRef$current","editorCommands","execCommand","value","_jsxs","className","_classNames","style","children","fullscreen","_jsx","IconWrapper","hoverTips","fullscreenIconTips","icon","_FullscreenOutlined","onClick","RichTextEditor","imgPreview","disabled","init","plugins","menubar","toolbar","statusbar"],"mappings":";0vBAgCaA,EAAiB,SAAjBA,EAAkBC,GAC7B,IAAAC,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAC1B,IAAMI,EAAYC,IAElBC,GACE,WAAA,OAAM,IACN,IAAA,SAACC,GACC,GAAIA,EAAMC,OAAS,SAAWD,EAAME,MAAQ,UAAYP,EAAS,CAC/DC,EAAW,MACb,CACF,GACA,CAAEO,OAAQ,CAAC,UAAW,WAGxB,IAAMC,EAAgBC,EAAMC,gBAAe,WACzCV,GAAYD,EACd,IACA,IAAMY,EAASF,EAAMC,gBAAe,SAACE,EAAGC,GACtCZ,EAAUa,QAAUD,EACpBjB,EAAMe,QAANf,UAAAA,EAAAA,EAAMe,OAASE,EACjB,IAEAE,EAASC,iBAAgB,WAAM,IAAAC,GAC7BA,EAAAhB,EAAUa,UAAO,UAAA,EAAjBG,EAAmBC,eAAeC,YAAY,gBAChD,GAAG,CAACvB,EAAMwB,QAEV,OACEC,EAAA,MAAA,CACEC,UAAWC,EAAW,oBAAqB,CAAE,0BAA2BxB,GAAWH,EAAM0B,WACzFE,MAAO5B,EAAM4B,MAAMC,SAElB7B,CAAAA,EAAM6B,SACN7B,EAAM8B,YAAc9B,EAAMwB,OACzBO,EAAA,MAAA,CAAKL,UAAU,yBAAwBG,SACrCE,EAACC,EAAW,CACVC,UAAWjC,EAAMkC,mBACjBC,KAAMJ,EAAAK,EAAuB,IAC7BC,QAASzB,MAIfmB,EAACO,EAAc,CACbd,MAAwCxB,iCAAAA,EAAMwB,MAAc,SAC5DT,OAAQA,EACRwB,WAAU,KACVC,SAAQ,KACRC,KAAM,CACJC,QAAS,aACTC,QAAS,MACTC,QAAS,GACTC,UAAW,WAKrB"}
@@ -8,5 +8,5 @@ import './../dropdown-menu-wrapper/index.css';
8
8
  import './../tag-list-select/index.css';
9
9
  import './index.css';
10
10
  /*! @flatjs/forge MIT @flatbiz/antd */
11
- 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 i}from"@dimjs/lang/cjs/is-plain-object";import{a as n}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 s,getStrByteLen as l,cutString as u,flatbizDate as m}from"@flatbiz/utils";import{Tooltip as p,Space as c}from"antd";import{Fragment as f}from"react";import{a as d}from"../button-operate-f09bce7f.js";import{T as j}from"../tag-list-select-066f682f.js";import{jsx as v}from"react/jsx-runtime";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../button-wrapper-698da5b1.js";import"@ant-design/icons/es/icons/LoadingOutlined";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"../fba-utils-a4c7d94d.js";import"../dropdown-menu-wrapper-24932100.js";var g=function r(t,e){return function(r){if(a(r)||r==="")return e;if(o(r))return r;var i=r.toString();var n=s(t)?10:t;var m=l(i);if(m<=n*2){return i}return v(p,{placement:"topLeft",title:i,children:u(i,n*2)})}};var h=function r(t){return function(r,e,i){var o=t(e,i);return v(d,n({},o))}};var w=function r(t,e){return function(r){if(a(r)||r==="")return e;try{return m.format(new Date(r),t)}catch(t){return r||e}}};var y=function r(t,e){return function(r,i,n){if(e&&t){return(t-1)*e+n+1}return n+1}};var b=function r(t){return function(r,e,i){var n=(t==null?void 0:t())||{},o=n.pageNo,a=n.pageSize;if(a&&o){return(o-1)*a+i+1}return i+1}};var x=function r(t,e){return function(r){return v(j,{dataList:t,colorMap:e,value:r,forceMatch:false})}};var C=function r(n,o){return function(r){if(i(r)){var a=e(r,n,o);if(!a)return"";if(t(a))return JSON.stringify(a);return a}return r||o}};var k=function t(e){return function(t,i){var n=e==null?void 0:e(i);if(!n)return v(f,{children:t});var o=s(n.showData)?true:n.showData;var a=s(n.notOverflowShowExtra)?true:n.notOverflowShowExtra;var l=s(n.showMaxNumber)?10:n.showMaxNumber;var m=n.extraPosition?n.extraPosition:"after";var p=r(t)?u(t,l*2):t;if(n.extra&&o){if(p===t&&!a){return t}var d=[v("span",{children:p},"1"),v(f,{children:n.extra},"2")];var j=m==="before"?d.reverse():d;return v(c,{onClick:n.onClick,style:{cursor:n.onClick?"pointer":undefined},size:5,children:j.map((function(r,t){return v(f,{children:r},t)}))})}return v("span",{onClick:n.onClick,children:n.extra})}};var N={extraContentRender:k,indexCell:y,serialNumberCell:b,dateCell:w,operateCell:h,tooltipCell:g,selectorCell:x,objectCell:C};export{N as tableCellRender};
11
+ 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 i}from"@dimjs/lang/cjs/is-plain-object";import{a as n}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 s,getStrByteLen as l,cutString as u,flatbizDate as m}from"@flatbiz/utils";import{Tooltip as p,Space as c}from"antd";import{Fragment as f}from"react";import{a as d}from"../button-operate-2f27502d.js";import{T as j}from"../tag-list-select-066f682f.js";import{jsx as v}from"react/jsx-runtime";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../button-wrapper-698da5b1.js";import"@ant-design/icons/es/icons/LoadingOutlined";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"../fba-utils-a4c7d94d.js";import"../dropdown-menu-wrapper-3d2b8cda.js";var g=function r(t,e){return function(r){if(a(r)||r==="")return e;if(o(r))return r;var i=r.toString();var n=s(t)?10:t;var m=l(i);if(m<=n*2){return i}return v(p,{placement:"topLeft",title:i,children:u(i,n*2)})}};var h=function r(t){return function(r,e,i){var o=t(e,i);return v(d,n({},o))}};var w=function r(t,e){return function(r){if(a(r)||r==="")return e;try{return m.format(new Date(r),t)}catch(t){return r||e}}};var y=function r(t,e){return function(r,i,n){if(e&&t){return(t-1)*e+n+1}return n+1}};var b=function r(t){return function(r,e,i){var n=(t==null?void 0:t())||{},o=n.pageNo,a=n.pageSize;if(a&&o){return(o-1)*a+i+1}return i+1}};var x=function r(t,e){return function(r){return v(j,{dataList:t,colorMap:e,value:r,forceMatch:false})}};var C=function r(n,o){return function(r){if(i(r)){var a=e(r,n,o);if(!a)return"";if(t(a))return JSON.stringify(a);return a}return r||o}};var k=function t(e){return function(t,i){var n=e==null?void 0:e(i);if(!n)return v(f,{children:t});var o=s(n.showData)?true:n.showData;var a=s(n.notOverflowShowExtra)?true:n.notOverflowShowExtra;var l=s(n.showMaxNumber)?10:n.showMaxNumber;var m=n.extraPosition?n.extraPosition:"after";var p=r(t)?u(t,l*2):t;if(n.extra&&o){if(p===t&&!a){return t}var d=[v("span",{children:p},"1"),v(f,{children:n.extra},"2")];var j=m==="before"?d.reverse():d;return v(c,{onClick:n.onClick,style:{cursor:n.onClick?"pointer":undefined},size:5,children:j.map((function(r,t){return v(f,{children:r},t)}))})}return v("span",{onClick:n.onClick,children:n.extra})}};var N={extraContentRender:k,indexCell:y,serialNumberCell:b,dateCell:w,operateCell:h,tooltipCell:g,selectorCell:x,objectCell:C};export{N as tableCellRender};
12
12
  //# sourceMappingURL=index.js.map
@@ -9,5 +9,5 @@ import './../input-search-wrapper/index.css';
9
9
  import './../request-status/index.css';
10
10
  import './index.css';
11
11
  /*! @flatjs/forge MIT @flatbiz/antd */
12
- import e from"@ant-design/icons/es/icons/CaretDownFilled";import r from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{extend as n}from"@dimjs/utils/cjs/extend";import{hooks as i}from"@wove/react/cjs/hooks";import{_ as l,a as u}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as s}from"@dimjs/model";import{treeToArray as o,treeToTiledArray as c,treeLeafParentsArray as d,isUndefinedOrNull as f,treeFilter as v}from"@flatbiz/utils";import{Tree as m,Button as p,message as h}from"antd";import{forwardRef as g,useState as b,useMemo as y,useRef as L,useImperativeHandle as C,Fragment as w,isValidElement as j}from"react";import{a as q}from"../button-operate-f09bce7f.js";import{D as R}from"../dropdown-menu-wrapper-24932100.js";import{fbaHooks as k}from"../fba-hooks/index.js";import{I as N}from"../input-search-wrapper-10d4a9b9.js";import{R as S}from"../request-status-03fc60e2.js";import{Model as T}from"@dimjs/model-react";import{isObject as P}from"@dimjs/lang/cjs/is-object";import{dequal as A}from"dequal";import{jsxs as D,jsx as E}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper-698da5b1.js";import"@ant-design/icons/es/icons/LoadingOutlined";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-utils-a4c7d94d.js";import"../use-responsive-point-21b8c601.js";var I={treeList:[],treeTiledArray:[],queryIsEmpty:false};var x={actions:{setTreeList:function e(r){return function(e){e.treeList=r.treeList||[];e.treeTiledArray=o(e.treeList,r.childrenName);e.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},treeListAppendChildren:function e(r){return function(e){var t=o(e.treeList,r.childrenName);var n=t.find((function(e){return e[r.valueName]===r.value}));if(n){if(a(r.appendList)&&r.appendList.length>0){n[r.childrenName]=r.appendList}else{n.isLeaf=true}}e.treeTiledArray=o(e.treeList,r.childrenName)}}},state:I};var O={};var V=function e(r){if(!O[r]){O[r]=T(x)}return O[r]};var K=function e(r,t,a){var n=c(t,a);return d(r,n,true,{value:"value",parentValue:"parentValue"})};var F=function e(r,t){var n=f(r)?[]:r;n=a(n)?n:[n];n=n.map((function(e){if(P(e))return e[t.value];return e}));return n};var _=function e(r,t){var a=F(r,t);var n={};a.forEach((function(e){n[e]=true}));return n};var M=function e(r,t,a){if(f(r)&&f(t))return true;var n=_(r,a);var i=_(t,a);var l=A(n,i);return l};var U=["serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType"];var z=g((function(o,d){var g=o.serviceConfig,T=o.effectDependencyList,P=o.selectorTreeList,A=o.value,I=o.onChange,x=o.modelKey,O=o.checkableResponseParentNode,_=O===void 0?true:O,z=o.checkable,B=o.onSelectorTreeListChange,W=o.treeItemDataAdapter,Y=o.searchValue,H=o.showSearch,G=o.searchPlaceholder,J=o.requestMessageConfig,Q=o.labelInValueFieldNames,X=o.labelInValue,Z=o.disabledCanUse,$=o.menuLayoutType,ee=o.menuTriggerType,re=l(o,U);var te=o.hasOwnProperty("selectorTreeList");var ae=g||{};var ne=T||[];var ie=b(),le=ie[0],ue=ie[1];var se=V(x).useStore(),oe=se[0],ce=se[1];var de=k.useSafeState(false),fe=de[0],ve=de[1];var me="request-progress-"+o.modelKey;var pe=y((function(){return u({label:"label",value:"value",children:"children"},o.fieldNames)}),[o.fieldNames]);var he=L();var ge=$===undefined?"fold":$;var be=ee===undefined?"click":ee;var ye=z===true;var Le=y((function(){return u({label:"label",value:"value"},Q)}),[Q]);var Ce=b(),we=Ce[0],je=Ce[1];var qe=L(true);var Re=b(0),ke=Re[0],Ne=Re[1];var Se=L();var Te=y((function(){var e=F(A,Le);return e}),[Le,A]);k.useEffectCustom((function(){if(f(A)&&qe.current||oe.treeList.length==0)return;qe.current=false;if(!M(A,Se.current,Le)){console.log("modelKey:"+x+" TreeWrapper key refresh",A,Se.current);Se.current=ye?Te:Te[0];var e=Ie(Te,true);ue(Array.from(new Set(e)));he.current=Te;Ne(Date.now())}}),[A,oe.treeList]);var Pe=function e(r){return r===""||f(r)};var Ae=function e(r){var t=ae.onRequestResultAdapter?ae.onRequestResultAdapter(r):r;return t};k.useEffectCustom((function(){je(Y)}),[Y]);var De=i.useCallbackRef((function(){return new Promise((function(e,r){var t,a,i,l,u;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{ve(false);void h.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!ae.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=ae.requiredParamsKeys;a=n({},ae.params);if(t){i=t.find((function(e){return Pe(a[e])}));if(i){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return s()}catch(e){return o(e)}};var d=function(e){try{window[me]=false;ve(false);void ce.changeRequestStatus("request-error");return c()}catch(e){return o(e)}};try{ve(true);return Promise.resolve(ce.changeRequestStatus("request-progress")).then((function(e){try{window[me]=true;return Promise.resolve(ae.onRequest==null?void 0:ae.onRequest(a)).then((function(e){try{l=e;u=Ae(l);Ee(u||[]);ve(false);window[me]=false;return c()}catch(e){return d(e)}}),d)}catch(e){return d(e)}}),d)}catch(e){d(e)}}catch(e){o(e)}}))}));k.useEffectCustom((function(){if(te)return;if(Boolean(ne.length)){void De();return}var e=V(x).getState();if(e.requestStatus==="request-success"){return}if(!window[me]){void De();return}}),ne);k.useEffectCustom((function(){if(te){Ee(P||[])}}),[P]);var Ee=i.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&oe.treeList.length===0){void ce.changeRequestStatus("request-success");return}void ce.setTreeList({treeList:e||[],childrenName:pe.children});B==null?void 0:B(e)}));var Ie=i.useCallbackRef((function(e,r){var t=[];e.forEach((function(e){if(!r&&le!=null&&le.includes(e))return;var a=K(e,oe.treeList,pe);t=t.concat(a.map((function(e){return e.value})))}));return t}));i.useUpdateEffect((function(){if(we){var e=c(oe.treeList||[],pe);var r=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(we||"")}));ue((function(e){var t=Ie(r.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(t))}))}else{ue([])}}),[we]);C(d,(function(){return{onClearSelectorList:function e(){void ce.resetTreeList()},getTreeDataList:function e(){return oe.treeList}}}));var xe=i.useCallbackRef((function(e){ue(e)}));var Oe=i.useCallbackRef((function(e,r,t){Se.current=e;var n=f(r)?[]:a(r)?r:[r];if(f(e)){I==null?void 0:I(e,r,t);return}if(X){var i=Le.label;var l=Le.value;var u=n.map((function(e){var r;return r={},r[i]=e[pe.label],r[l]=e[pe.value],r}));if(a(e)){I==null?void 0:I(u,n,t)}else{I==null?void 0:I(u[0],n[0],t)}}else{if(a(e)){I==null?void 0:I(e,n,t)}else{I==null?void 0:I(e,n[0],t)}}}));var Ve=i.useCallbackRef((function(e,r){var t=o.checkStrictly?e.checked:e;t=f(e)?[]:e;t=a(t)?t:[t];var n=[];var i=[];var l=[];var u=[];t.forEach((function(e){var r=oe.treeTiledArray.find((function(r){return r[pe.value]===e}));if(!r)return;var t=r==null?void 0:r[pe.children];if(!a(t)||t.length===0){n.push(r);i.push(r[pe.value])}l.push(r);u.push(r[pe.value])}));if(z){ue((function(e){var r=Ie(i).concat(e||[]);return Array.from(new Set(r))}));if(!_&&!o.checkStrictly){Oe(i,n,l)}else{Oe(u,l,l)}}else{if(t[0]){var s=l.find((function(e){return e[pe.value]===t[0]}));Oe(t[0],s,[s])}else{var c=r.node[pe.value];var d=oe.treeTiledArray.find((function(e){return e[pe.value]===c}));Oe(undefined,d,[d])}}}));var Ke=i.useCallbackRef((function(e){return W==null?void 0:W(e)}));var Fe=y((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var n;var i=(Ke==null?void 0:Ke(r))||r;var l=Z?undefined:i.disabled;var s=i[pe.label];var o;if(we){var c=s.indexOf(we);var d=s.substring(0,c);var f=s.slice(c+we.length);o=c>-1?D("span",{className:t({"v-tree-item-disabled":i.disabled}),children:[d,E("span",{className:"site-tree-search-value",children:we}),f]}):null}if(!o){o=E("span",{className:t({"v-tree-item-disabled":i.disabled}),children:s})}var v=i[pe.children];return u({},i,(n={disabled:l},n[pe.label]=o,n._treeItemName=s,n._disabled=i.disabled,n[pe.children]=a(v)&&v.length>0?e(v):undefined,n))}))};var r=s(oe.treeList||[]);if(we){return e(v(s(oe.treeList||[]),(function(e){var r;var t=(r=e[pe.label])==null?void 0:r.toLowerCase();return t.indexOf(we.toLowerCase())>=0})))}return e(r)}),[oe.treeList,Ke,Z,pe.label,pe.children,we]);var _e=i.useCallbackRef((function(e){return new Promise((function(r,t){return new Promise((function(a,n){var i,l,u,s;if(e[pe.children]){r();return a()}var c=function(){try{return a()}catch(e){return n(e)}};var d=function(e){try{void h.error(e.message||"数据加载异常...");t();return c()}catch(e){return n(e)}};try{return Promise.resolve((i=o.loadDataServiceConfig)==null?void 0:i.onRequest==null?void 0:i.onRequest((l=o.loadDataServiceConfig)==null?void 0:l.getParams==null?void 0:l.getParams(e))).then((function(t){try{u=t;s=ae.onRequestResultAdapter?ae.onRequestResultAdapter(u):u;void ce.treeListAppendChildren({value:e[pe.value],appendList:s,childrenName:pe.children,valueName:pe.value}).then((function(e){Ee(e.treeList);r()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Me=i.useCallbackRef((function(e){var r=e==null?void 0:e[pe.children];var t=o.loadDataFlag;var a=t?!e.isLeaf:false;var n=r&&r.length>0||a;return!n}));var Ue=i.useCallbackRef((function(e){var a,n;var i=e._treeItemName||e[pe.label];if(ge==="fold"){var l;var s=[];if((l=o.menuOptions)!=null&&l.fold){var c,d,f;s=((c=o.menuOptions)==null?void 0:(d=c[ge])==null?void 0:d.call(c,u({},e,(f={},f[pe.label]=i,f))))||[]}else{var v;s=(o.getMenuOptions==null?void 0:o.getMenuOptions(u({},e,(v={},v[pe.label]=i,v))))||[]}return D(w,{children:[E("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),s.length>0&&E(R,{menuList:s,children:E(r,{})})]})}var m=(a=o.menuOptions)==null?void 0:a.tile==null?void 0:a.tile(u({},e,(n={},n[pe.label]=i,n)));return D(w,{children:[E("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),m?E(q,u({},m,{gap:5,className:t("tree-item-title-operate",m.className)})):null]})}));var ze=i.useDebounceCallback((function(e){je(e);o.onSearchValueChange==null?void 0:o.onSearchValueChange(e)}),300);var Be=i.useCallbackRef((function(e){ze(e.target.value)}));var We=i.useCallbackRef((function(e){if(!o.icon)return null;if(j(o.icon))return o.icon;var r=Me(e.data);return o.icon(u({},e,{isParent:!r,isLeaf:r}))}));var Ye=y((function(){return{title:pe.label,key:pe.value,children:pe.children}}),[pe]);var He=Fe.length>0&&oe.requestStatus!=="request-error";var Ge=u({showLine:{showLeafIcon:false},titleRender:Ue,blockNode:true,switcherIcon:E(e,{})},re,{fieldNames:Ye,expandedKeys:le,treeData:Fe,onExpand:xe,loadData:o.loadDataFlag?_e:undefined,style:u({width:"100%"},re.style),icon:We});var Je={onCheck:Ve,checkable:z,defaultCheckedKeys:he.current};var Qe={onSelect:Ve,multiple:false,defaultSelectedKeys:he.current};var Xe=z?Je:Qe;var Ze=t("v-tree-wrapper","v-tree-wrapper-menu-"+be);var $e=oe.treeList.length>0&&!He&&we;return D("div",{className:Ze,children:[!!H&&D("div",{className:"v-tree-wrapper-search-area",children:[E(N,{className:"v-tree-wrapper-search",placeholder:G,onChange:Be,value:Y,allowClear:true}),!!o.searchExtraElement&&E("span",{className:"v-tree-wrapper-search-extra",children:o.searchExtraElement})]}),He?E(m,u({},Xe,Ge,{className:"v-tree-wrapper-tree"}),ke):E(S,{status:oe.requestStatus,loading:fe,messageConfig:u({"request-success":$e?"搜索结果为空":"暂无数据"},J),errorButton:E(p,{type:"primary",onClick:De,children:"重新获取数据"})})]})}));z.defaultProps={disabledCanUse:true};export{z as TreeWrapper};
12
+ import e from"@ant-design/icons/es/icons/CaretDownFilled";import r from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{extend as n}from"@dimjs/utils/cjs/extend";import{hooks as i}from"@wove/react/cjs/hooks";import{_ as l,a as u}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as s}from"@dimjs/model";import{treeToArray as o,treeToTiledArray as c,treeLeafParentsArray as d,isUndefinedOrNull as f,treeFilter as v}from"@flatbiz/utils";import{Tree as m,Button as p,message as h}from"antd";import{forwardRef as g,useState as b,useMemo as y,useRef as L,useImperativeHandle as C,Fragment as w,isValidElement as j}from"react";import{a as q}from"../button-operate-2f27502d.js";import{D as R}from"../dropdown-menu-wrapper-3d2b8cda.js";import{fbaHooks as k}from"../fba-hooks/index.js";import{I as N}from"../input-search-wrapper-10d4a9b9.js";import{R as S}from"../request-status-03fc60e2.js";import{Model as T}from"@dimjs/model-react";import{isObject as P}from"@dimjs/lang/cjs/is-object";import{dequal as A}from"dequal";import{jsxs as D,jsx as E}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper-698da5b1.js";import"@ant-design/icons/es/icons/LoadingOutlined";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-utils-a4c7d94d.js";import"../use-responsive-point-21b8c601.js";var I={treeList:[],treeTiledArray:[],queryIsEmpty:false};var x={actions:{setTreeList:function e(r){return function(e){e.treeList=r.treeList||[];e.treeTiledArray=o(e.treeList,r.childrenName);e.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},treeListAppendChildren:function e(r){return function(e){var t=o(e.treeList,r.childrenName);var n=t.find((function(e){return e[r.valueName]===r.value}));if(n){if(a(r.appendList)&&r.appendList.length>0){n[r.childrenName]=r.appendList}else{n.isLeaf=true}}e.treeTiledArray=o(e.treeList,r.childrenName)}}},state:I};var O={};var V=function e(r){if(!O[r]){O[r]=T(x)}return O[r]};var K=function e(r,t,a){var n=c(t,a);return d(r,n,true,{value:"value",parentValue:"parentValue"})};var F=function e(r,t){var n=f(r)?[]:r;n=a(n)?n:[n];n=n.map((function(e){if(P(e))return e[t.value];return e}));return n};var _=function e(r,t){var a=F(r,t);var n={};a.forEach((function(e){n[e]=true}));return n};var M=function e(r,t,a){if(f(r)&&f(t))return true;var n=_(r,a);var i=_(t,a);var l=A(n,i);return l};var U=["serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType"];var z=g((function(o,d){var g=o.serviceConfig,T=o.effectDependencyList,P=o.selectorTreeList,A=o.value,I=o.onChange,x=o.modelKey,O=o.checkableResponseParentNode,_=O===void 0?true:O,z=o.checkable,B=o.onSelectorTreeListChange,W=o.treeItemDataAdapter,Y=o.searchValue,H=o.showSearch,G=o.searchPlaceholder,J=o.requestMessageConfig,Q=o.labelInValueFieldNames,X=o.labelInValue,Z=o.disabledCanUse,$=o.menuLayoutType,ee=o.menuTriggerType,re=l(o,U);var te=o.hasOwnProperty("selectorTreeList");var ae=g||{};var ne=T||[];var ie=b(),le=ie[0],ue=ie[1];var se=V(x).useStore(),oe=se[0],ce=se[1];var de=k.useSafeState(false),fe=de[0],ve=de[1];var me="request-progress-"+o.modelKey;var pe=y((function(){return u({label:"label",value:"value",children:"children"},o.fieldNames)}),[o.fieldNames]);var he=L();var ge=$===undefined?"fold":$;var be=ee===undefined?"click":ee;var ye=z===true;var Le=y((function(){return u({label:"label",value:"value"},Q)}),[Q]);var Ce=b(),we=Ce[0],je=Ce[1];var qe=L(true);var Re=b(0),ke=Re[0],Ne=Re[1];var Se=L();var Te=y((function(){var e=F(A,Le);return e}),[Le,A]);k.useEffectCustom((function(){if(f(A)&&qe.current||oe.treeList.length==0)return;qe.current=false;if(!M(A,Se.current,Le)){console.log("modelKey:"+x+" TreeWrapper key refresh",A,Se.current);Se.current=ye?Te:Te[0];var e=Ie(Te,true);ue(Array.from(new Set(e)));he.current=Te;Ne(Date.now())}}),[A,oe.treeList]);var Pe=function e(r){return r===""||f(r)};var Ae=function e(r){var t=ae.onRequestResultAdapter?ae.onRequestResultAdapter(r):r;return t};k.useEffectCustom((function(){je(Y)}),[Y]);var De=i.useCallbackRef((function(){return new Promise((function(e,r){var t,a,i,l,u;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{ve(false);void h.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!ae.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=ae.requiredParamsKeys;a=n({},ae.params);if(t){i=t.find((function(e){return Pe(a[e])}));if(i){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return s()}catch(e){return o(e)}};var d=function(e){try{window[me]=false;ve(false);void ce.changeRequestStatus("request-error");return c()}catch(e){return o(e)}};try{ve(true);return Promise.resolve(ce.changeRequestStatus("request-progress")).then((function(e){try{window[me]=true;return Promise.resolve(ae.onRequest==null?void 0:ae.onRequest(a)).then((function(e){try{l=e;u=Ae(l);Ee(u||[]);ve(false);window[me]=false;return c()}catch(e){return d(e)}}),d)}catch(e){return d(e)}}),d)}catch(e){d(e)}}catch(e){o(e)}}))}));k.useEffectCustom((function(){if(te)return;if(Boolean(ne.length)){void De();return}var e=V(x).getState();if(e.requestStatus==="request-success"){return}if(!window[me]){void De();return}}),ne);k.useEffectCustom((function(){if(te){Ee(P||[])}}),[P]);var Ee=i.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&oe.treeList.length===0){void ce.changeRequestStatus("request-success");return}void ce.setTreeList({treeList:e||[],childrenName:pe.children});B==null?void 0:B(e)}));var Ie=i.useCallbackRef((function(e,r){var t=[];e.forEach((function(e){if(!r&&le!=null&&le.includes(e))return;var a=K(e,oe.treeList,pe);t=t.concat(a.map((function(e){return e.value})))}));return t}));i.useUpdateEffect((function(){if(we){var e=c(oe.treeList||[],pe);var r=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(we||"")}));ue((function(e){var t=Ie(r.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(t))}))}else{ue([])}}),[we]);C(d,(function(){return{onClearSelectorList:function e(){void ce.resetTreeList()},getTreeDataList:function e(){return oe.treeList}}}));var xe=i.useCallbackRef((function(e){ue(e)}));var Oe=i.useCallbackRef((function(e,r,t){Se.current=e;var n=f(r)?[]:a(r)?r:[r];if(f(e)){I==null?void 0:I(e,r,t);return}if(X){var i=Le.label;var l=Le.value;var u=n.map((function(e){var r;return r={},r[i]=e[pe.label],r[l]=e[pe.value],r}));if(a(e)){I==null?void 0:I(u,n,t)}else{I==null?void 0:I(u[0],n[0],t)}}else{if(a(e)){I==null?void 0:I(e,n,t)}else{I==null?void 0:I(e,n[0],t)}}}));var Ve=i.useCallbackRef((function(e,r){var t=o.checkStrictly?e.checked:e;t=f(e)?[]:e;t=a(t)?t:[t];var n=[];var i=[];var l=[];var u=[];t.forEach((function(e){var r=oe.treeTiledArray.find((function(r){return r[pe.value]===e}));if(!r)return;var t=r==null?void 0:r[pe.children];if(!a(t)||t.length===0){n.push(r);i.push(r[pe.value])}l.push(r);u.push(r[pe.value])}));if(z){ue((function(e){var r=Ie(i).concat(e||[]);return Array.from(new Set(r))}));if(!_&&!o.checkStrictly){Oe(i,n,l)}else{Oe(u,l,l)}}else{if(t[0]){var s=l.find((function(e){return e[pe.value]===t[0]}));Oe(t[0],s,[s])}else{var c=r.node[pe.value];var d=oe.treeTiledArray.find((function(e){return e[pe.value]===c}));Oe(undefined,d,[d])}}}));var Ke=i.useCallbackRef((function(e){return W==null?void 0:W(e)}));var Fe=y((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var n;var i=(Ke==null?void 0:Ke(r))||r;var l=Z?undefined:i.disabled;var s=i[pe.label];var o;if(we){var c=s.indexOf(we);var d=s.substring(0,c);var f=s.slice(c+we.length);o=c>-1?D("span",{className:t({"v-tree-item-disabled":i.disabled}),children:[d,E("span",{className:"site-tree-search-value",children:we}),f]}):null}if(!o){o=E("span",{className:t({"v-tree-item-disabled":i.disabled}),children:s})}var v=i[pe.children];return u({},i,(n={disabled:l},n[pe.label]=o,n._treeItemName=s,n._disabled=i.disabled,n[pe.children]=a(v)&&v.length>0?e(v):undefined,n))}))};var r=s(oe.treeList||[]);if(we){return e(v(s(oe.treeList||[]),(function(e){var r;var t=(r=e[pe.label])==null?void 0:r.toLowerCase();return t.indexOf(we.toLowerCase())>=0})))}return e(r)}),[oe.treeList,Ke,Z,pe.label,pe.children,we]);var _e=i.useCallbackRef((function(e){return new Promise((function(r,t){return new Promise((function(a,n){var i,l,u,s;if(e[pe.children]){r();return a()}var c=function(){try{return a()}catch(e){return n(e)}};var d=function(e){try{void h.error(e.message||"数据加载异常...");t();return c()}catch(e){return n(e)}};try{return Promise.resolve((i=o.loadDataServiceConfig)==null?void 0:i.onRequest==null?void 0:i.onRequest((l=o.loadDataServiceConfig)==null?void 0:l.getParams==null?void 0:l.getParams(e))).then((function(t){try{u=t;s=ae.onRequestResultAdapter?ae.onRequestResultAdapter(u):u;void ce.treeListAppendChildren({value:e[pe.value],appendList:s,childrenName:pe.children,valueName:pe.value}).then((function(e){Ee(e.treeList);r()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Me=i.useCallbackRef((function(e){var r=e==null?void 0:e[pe.children];var t=o.loadDataFlag;var a=t?!e.isLeaf:false;var n=r&&r.length>0||a;return!n}));var Ue=i.useCallbackRef((function(e){var a,n;var i=e._treeItemName||e[pe.label];if(ge==="fold"){var l;var s=[];if((l=o.menuOptions)!=null&&l.fold){var c,d,f;s=((c=o.menuOptions)==null?void 0:(d=c[ge])==null?void 0:d.call(c,u({},e,(f={},f[pe.label]=i,f))))||[]}else{var v;s=(o.getMenuOptions==null?void 0:o.getMenuOptions(u({},e,(v={},v[pe.label]=i,v))))||[]}return D(w,{children:[E("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),s.length>0&&E(R,{menuList:s,children:E(r,{})})]})}var m=(a=o.menuOptions)==null?void 0:a.tile==null?void 0:a.tile(u({},e,(n={},n[pe.label]=i,n)));return D(w,{children:[E("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),m?E(q,u({},m,{gap:5,className:t("tree-item-title-operate",m.className)})):null]})}));var ze=i.useDebounceCallback((function(e){je(e);o.onSearchValueChange==null?void 0:o.onSearchValueChange(e)}),300);var Be=i.useCallbackRef((function(e){ze(e.target.value)}));var We=i.useCallbackRef((function(e){if(!o.icon)return null;if(j(o.icon))return o.icon;var r=Me(e.data);return o.icon(u({},e,{isParent:!r,isLeaf:r}))}));var Ye=y((function(){return{title:pe.label,key:pe.value,children:pe.children}}),[pe]);var He=Fe.length>0&&oe.requestStatus!=="request-error";var Ge=u({showLine:{showLeafIcon:false},titleRender:Ue,blockNode:true,switcherIcon:E(e,{})},re,{fieldNames:Ye,expandedKeys:le,treeData:Fe,onExpand:xe,loadData:o.loadDataFlag?_e:undefined,style:u({width:"100%"},re.style),icon:We});var Je={onCheck:Ve,checkable:z,defaultCheckedKeys:he.current};var Qe={onSelect:Ve,multiple:false,defaultSelectedKeys:he.current};var Xe=z?Je:Qe;var Ze=t("v-tree-wrapper","v-tree-wrapper-menu-"+be);var $e=oe.treeList.length>0&&!He&&we;return D("div",{className:Ze,children:[!!H&&D("div",{className:"v-tree-wrapper-search-area",children:[E(N,{className:"v-tree-wrapper-search",placeholder:G,onChange:Be,value:Y,allowClear:true}),!!o.searchExtraElement&&E("span",{className:"v-tree-wrapper-search-extra",children:o.searchExtraElement})]}),He?E(m,u({},Xe,Ge,{className:"v-tree-wrapper-tree"}),ke):E(S,{status:oe.requestStatus,loading:fe,messageConfig:u({"request-success":$e?"搜索结果为空":"暂无数据"},J),errorButton:E(p,{type:"primary",onClick:De,children:"重新获取数据"})})]})}));z.defaultProps={disabledCanUse:true};export{z as TreeWrapper};
13
13
  //# sourceMappingURL=index.js.map
package/index.d.ts CHANGED
@@ -560,6 +560,7 @@ export interface DropdownMenuItem extends ButtonProps {
560
560
  }
561
561
  export interface DropdownMenuWrapperProps extends Omit<DropdownProps, "menu"> {
562
562
  menuList: Array<DropdownMenuItem | null>;
563
+ isFixed?: boolean;
563
564
  }
564
565
  export declare const DropdownMenuWrapper: (props: DropdownMenuWrapperProps) => JSX.Element;
565
566
  export type TDynamicNodeProps = {
@@ -592,6 +593,8 @@ export type EasyTableRefApi = {
592
593
  form: FormInstance;
593
594
  /** 重置请求 */
594
595
  onResetRequest: (params?: TPlainObject) => void;
596
+ /** 接口数据源 */
597
+ getDataSource: (data?: TAny) => void;
595
598
  };
596
599
  export type EasyTableServiceConfig = {
597
600
  /** 接口配置 */
@@ -670,6 +673,14 @@ export type FormOperateColProps = {
670
673
  leftSpaceProps?: SpaceProps;
671
674
  rightSpaceProps?: SpaceProps;
672
675
  };
676
+ export type FormRowProps = RowProps & {
677
+ children?: ReactNode | ReactNode[];
678
+ /**
679
+ * defaultGrid = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };
680
+ * defaultSmallGrid = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };
681
+ */
682
+ gridSize?: "default" | "small";
683
+ };
673
684
  export type EasyTableFilterProps = {
674
685
  children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);
675
686
  /** isPure = true时无效 */
@@ -682,6 +693,7 @@ export type EasyTableFilterProps = {
682
693
  resetButtonProps?: Omit<ButtonProps, "onClick"> & {
683
694
  text?: string;
684
695
  };
696
+ formGridSize?: FormRowProps["gridSize"];
685
697
  };
686
698
  export type EasyTableTableProps = Omit<TableProps<TAny>, "dataSource" | "loading" | "rowKey"> & {
687
699
  children?: ReactElement | ReactElement[];
@@ -1195,9 +1207,6 @@ export type FlexLayoutProps = {
1195
1207
  * @returns
1196
1208
  */
1197
1209
  export declare const FlexLayout: (props: FlexLayoutProps) => JSX.Element;
1198
- export type FormRowProps = RowProps & {
1199
- children?: ReactNode | ReactNode[];
1200
- };
1201
1210
  export type FormColProps = {
1202
1211
  span?: number;
1203
1212
  /** 屏幕 < 576px */
@@ -1369,7 +1378,7 @@ export declare const InputWrapper: (props: InputWrapperProps) => JSX.Element;
1369
1378
  export type LabelValueLayoutProps = {
1370
1379
  options: {
1371
1380
  label: string | ReactElement;
1372
- value: string | number | ReactElement;
1381
+ value?: string | number | ReactElement;
1373
1382
  }[];
1374
1383
  labelWidth?: number;
1375
1384
  column?: number;
@@ -1399,6 +1408,8 @@ export interface LocalLoadingProps {
1399
1408
  errorRender?: (error?: TAny) => ReactElement;
1400
1409
  /** loading高度,默认值:100;isAsync = true 无效 */
1401
1410
  loadingHeight?: number;
1411
+ className?: string;
1412
+ style?: CSSProperties;
1402
1413
  }
1403
1414
  export type LocalLoadingRefApi = {
1404
1415
  onRefresh: () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "4.2.26",
3
+ "version": "4.2.27",
4
4
  "description": "flat-biz ui components",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"dropdown-menu-wrapper-24932100.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 { isPromise } from '@dimjs/lang';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Dropdown, DropdownProps, Popconfirm, PopconfirmProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { fbaUtils } from '../fba-utils';\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 popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n}\n\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const [menuItems, setMenuItems] = useState<ItemType[]>([]);\n const clsName = hooks.useId(undefined, 'DropdownMenuWrapper');\n\n const [statusMap, setStatusMap] = useState<Record<string, { open?: boolean; loading?: boolean }>>({});\n const onConfirmtTriggerClick = hooks.useCallbackRef((index, event) => {\n event.stopPropagation();\n setStatusMap({ [index]: { open: true } });\n });\n\n const onConfirm = hooks.useCallbackRef((item: DropdownMenuItem, index: number, event) => {\n event.stopPropagation();\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n statusMap[index] = { loading: true, open: true };\n setStatusMap({ ...statusMap });\n result.finally(() => {\n statusMap[index] = { loading: false, open: false };\n setStatusMap({ ...statusMap });\n });\n return;\n }\n statusMap[index] = { loading: false, open: false };\n setStatusMap({ ...statusMap });\n });\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n event.stopPropagation();\n return item.onClick?.(event);\n });\n\n fbaHooks.useEffectCustom(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n color,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n style,\n popconfirmProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const newStyle = color ? { color, ...style } : style;\n const buttonType = type || 'link';\n const nromal = {\n key: index,\n label: (\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n {...otherProps}\n type={buttonType}\n style={newStyle}\n key={index}\n onClick={onClick.bind(null, item)}\n >\n {text}\n </ButtonWrapper>\n ),\n };\n const confirm = {\n key: index,\n label: (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item, index)}\n onCancel={(event) => {\n event?.stopPropagation();\n setStatusMap({});\n }}\n overlayClassName=\"dmw-popconfirm\"\n arrow={true}\n key={index}\n overlayStyle={{ zIndex: 10 }}\n open={statusMap[index]?.open || false}\n okButtonProps={{\n loading: statusMap[index]?.loading,\n }}\n >\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n danger={color ? false : otherProps.danger}\n {...otherProps}\n onClick={onConfirmtTriggerClick.bind(null, index)}\n type={buttonType}\n style={newStyle}\n >\n {text}\n </ButtonWrapper>\n </Popconfirm>\n ),\n };\n if (needConfirm && !otherProps.disabled) {\n menuItemsNew.push(confirm);\n } else {\n menuItemsNew.push(nromal);\n }\n });\n setMenuItems(menuItemsNew);\n }, [menuList, statusMap]);\n\n const target = document.querySelector(`.${clsName}`);\n const container = useMemo(() => {\n if (target && parentsHasSticky(target)) {\n return undefined;\n }\n return target;\n }, [target]);\n\n return (\n <div className={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 onOpenChange={(_open) => {\n if (!_open) {\n setStatusMap({});\n }\n }}\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","_useState","useState","menuItems","setMenuItems","clsName","_hooks","useId","undefined","_useState2","statusMap","setStatusMap","onConfirmtTriggerClick","useCallbackRef","index","event","_setStatusMap","stopPropagation","open","onConfirm","item","onClick","_isPromise","loading","_extends","finally","fbaHooks","useEffectCustom","menuItemsNew","filter","Boolean","forEach","_statusMap$index","_statusMap$index2","text","color","permission","needConfirm","confirmMessage","hidden","type","style","popconfirmProps","otherProps","_excluded2","fbaUtils","hasPermission","newStyle","buttonType","nromal","key","label","_createElement","ButtonWrapper","loadingPosition","size","bind","confirm","Popconfirm","okText","cancelText","trigger","destroyTooltipOnHide","title","onCancel","overlayClassName","arrow","overlayStyle","zIndex","okButtonProps","_jsx","danger","children","disabled","push","target","document","querySelector","container","useMemo","className","Dropdown","getPopupContainer","pointAtCenter","menu","items","onOpenChange","_open"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{classNames as e}from"@dimjs/utils/cjs/class-names";import n from"react-dom";import{b as t}from"./dom-4d04aa64.js";import{jsx as o}from"react/jsx-runtime";var r={append:function r(i){if(i===void 0){i={}}var d=function(){var e;if(typeof i.getContainer==="string"){e=document.querySelector(i.getContainer)}else if(typeof i.getContainer==="function"){e=i.getContainer()}return e}();var a=e("v-dynamic-node",{"v-dynamic-node-fixed":i.fixed},i.className);var m="id_"+Date.now();if(d){n.render(o("div",{className:a,id:m,children:i.content}),d)}else{var c=t(),l=c.divElement,s=c.elementId;m=s;n.render(o("div",{className:a,children:i.content}),l)}window["_dynamic_node_element_id"]=m;console.log("nodeElementId",m);return{elementId:m}},remove:function e(n){var t=n||window["_dynamic_node_element_id"];if(t){try{var o;(o=document.querySelector("#"+t))==null?void 0:o.remove()}catch(e){}}}};export{r as d};
3
- //# sourceMappingURL=dynamic-node-577ef8fd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamic-node-577ef8fd.js","sources":["@flatbiz/antd/src/dynamic-node/dynamic-node.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { CSSProperties, ReactElement } from 'react';\nimport ReactDOM from 'react-dom';\nimport { bodyAppendDivElement } from '../_utils/dom';\nimport './style.less';\n\nexport type TDynamicNodeProps = {\n className?: string;\n getContainer?: HTMLElement | (() => HTMLElement) | string;\n content?: ReactElement;\n fixed?: boolean;\n style?: CSSProperties;\n};\n\n/**\n * 动态添加 element 元素\n * ```\n * 1. 默认添加到 body 下\n * 2. 可通过 getContainer 参数设置添加位置\n * ```\n */\nexport const dynamicNode = {\n append: (props: TDynamicNodeProps = {}) => {\n const container = (() => {\n let tempElement;\n if (typeof props.getContainer === 'string') {\n tempElement = document.querySelector(props.getContainer);\n } else if (typeof props.getContainer === 'function') {\n tempElement = props.getContainer();\n }\n return tempElement as Element | undefined;\n })();\n\n const className = classNames('v-dynamic-node', { 'v-dynamic-node-fixed': props.fixed }, props.className);\n let nodeElementId = `id_${Date.now()}`;\n if (container) {\n ReactDOM.render(\n <div className={className} id={nodeElementId}>\n {props.content}\n </div>,\n container,\n );\n } else {\n const { divElement, elementId } = bodyAppendDivElement();\n nodeElementId = elementId;\n ReactDOM.render(<div className={className}>{props.content}</div>, divElement);\n }\n window['_dynamic_node_element_id'] = nodeElementId;\n console.log('nodeElementId', nodeElementId);\n return {\n elementId: nodeElementId,\n };\n },\n remove: (elementId?: string) => {\n const dynamicElementId = elementId || window['_dynamic_node_element_id'];\n if (dynamicElementId) {\n try {\n document.querySelector(`#${dynamicElementId}`)?.remove();\n } catch (error) {\n //\n }\n }\n },\n};\n"],"names":["dynamicNode","append","props","container","tempElement","getContainer","document","querySelector","className","_classNames","fixed","nodeElementId","Date","now","ReactDOM","render","_jsx","id","children","content","_bodyAppendDivElement","bodyAppendDivElement","divElement","elementId","window","console","log","remove","dynamicElementId","_document$querySelect","error"],"mappings":";iKAqBO,IAAMA,EAAc,CACzBC,OAAQ,SAAAA,EAACC,GAAkC,GAAlCA,SAAwB,EAAA,CAAxBA,EAA2B,CAAA,CAAE,CACpC,IAAMC,EAAa,WACjB,IAAIC,EACJ,UAAWF,EAAMG,eAAiB,SAAU,CAC1CD,EAAcE,SAASC,cAAcL,EAAMG,aAC5C,MAAM,UAAWH,EAAMG,eAAiB,WAAY,CACnDD,EAAcF,EAAMG,cACtB,CACA,OAAOD,CACT,CARmB,GAUnB,IAAMI,EAAYC,EAAW,iBAAkB,CAAE,uBAAwBP,EAAMQ,OAASR,EAAMM,WAC9F,IAAIG,EAAa,MAASC,KAAKC,MAC/B,GAAIV,EAAW,CACbW,EAASC,OACPC,EAAA,MAAA,CAAKR,UAAWA,EAAWS,GAAIN,EAAcO,SAC1ChB,EAAMiB,UAEThB,EAEJ,KAAO,CACL,IAAAiB,EAAkCC,IAA1BC,EAAUF,EAAVE,WAAYC,EAASH,EAATG,UACpBZ,EAAgBY,EAChBT,EAASC,OAAOC,EAAA,MAAA,CAAKR,UAAWA,EAAUU,SAAEhB,EAAMiB,UAAgBG,EACpE,CACAE,OAAO,4BAA8Bb,EACrCc,QAAQC,IAAI,gBAAiBf,GAC7B,MAAO,CACLY,UAAWZ,EAEd,EACDgB,OAAQ,SAAAA,EAACJ,GACP,IAAMK,EAAmBL,GAAaC,OAAO,4BAC7C,GAAII,EAAkB,CACpB,IAAI,IAAAC,GACFA,EAAAvB,SAASC,cAAa,IAAKqB,KAA3BC,UAAAA,EAAAA,EAAgDF,QACjD,CAAC,MAAOG,GACP,CAEJ,CACF"}