@flatbiz/antd 4.5.53 → 4.5.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/esm/button-operate/index.js +1 -1
  2. package/esm/button-operate/index.js.map +1 -1
  3. package/esm/cascader-wrapper/index.css +1 -1
  4. package/esm/cascader-wrapper/index.js +1 -1
  5. package/esm/cascader-wrapper/index.js.map +1 -1
  6. package/esm/copy-wrapper/index.js +1 -1
  7. package/esm/copy-wrapper/index.js.map +1 -1
  8. package/esm/drag-editable-table/index.js +1 -1
  9. package/esm/drag-editable-table/index.js.map +1 -1
  10. package/esm/editable-table/index.js +1 -1
  11. package/esm/editable-table/index.js.map +1 -1
  12. package/esm/index-636a568e.js +8 -0
  13. package/esm/index-636a568e.js.map +1 -0
  14. package/esm/index.js +1 -2
  15. package/esm/request-status/index.css +1 -1
  16. package/esm/request-status/index.js +2 -1
  17. package/esm/request-status/index.js.map +1 -1
  18. package/esm/resizable-drawer/index.js +1 -6
  19. package/esm/resizable-drawer/index.js.map +1 -1
  20. package/esm/selector-wrapper/index.css +1 -1
  21. package/esm/selector-wrapper/index.js +1 -1
  22. package/esm/selector-wrapper/index.js.map +1 -1
  23. package/esm/selector-wrapper-search/index.js +1 -1
  24. package/esm/selector-wrapper-search/index.js.map +1 -1
  25. package/esm/selector-wrapper-simple/index.js +1 -1
  26. package/esm/selector-wrapper-simple/index.js.map +1 -1
  27. package/esm/styles/index.css +1 -1
  28. package/esm/tree-modal/index.js +1 -1
  29. package/esm/tree-modal/index.js.map +1 -1
  30. package/esm/tree-modal-selector/index.js +1 -1
  31. package/esm/tree-modal-selector/index.js.map +1 -1
  32. package/esm/tree-selector-wrapper/index.js +1 -1
  33. package/esm/tree-selector-wrapper/index.js.map +1 -1
  34. package/esm/tree-wrapper/index.js +2 -2
  35. package/esm/tree-wrapper/index.js.map +1 -1
  36. package/index.d.ts +12 -25
  37. package/package.json +1 -1
  38. package/esm/ai-search/index.css +0 -0
  39. package/esm/ai-search/index.js +0 -11
  40. package/esm/ai-search/index.js.map +0 -1
@@ -9,5 +9,5 @@ import './../dialog-confirm/index.css';
9
9
  import './../dialog-modal/index.css';
10
10
  import './index.css';
11
11
  /*! @flatjs/forge MIT @flatbiz/antd */
12
- import r from"@ant-design/icons/es/icons/MoreOutlined";import{_ as e,a as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isUndefined as t}from"@dimjs/lang/cjs/is-undefined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{isPlainObject as o}from"@dimjs/lang/cjs/is-plain-object";import{isString as s}from"@dimjs/lang/cjs/is-string";import{isPromise as l}from"@dimjs/lang/cjs/is-promise";import{hooks as p}from"@wove/react/cjs/hooks";import{Popover as a,Tooltip as c,Divider as u,Space as d,Popconfirm as m,Button as f}from"antd";import{isValidElement as v,Fragment as j,useState as h,useMemo as g,createElement as y}from"react";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{DropdownMenuWrapper as x}from"../dropdown-menu-wrapper/index.js";import{fbaUtils as T}from"../fba-utils/index.js";import{jsx as w,jsxs as P}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@flatbiz/utils";import"../index-83bede1b.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"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/extend";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"@dimjs/model";var C=["text","onClick","needConfirm","confirmMessage","popconfirmProps","hoverTips","color","tipsType","type","isFold"];var b=function r(e){if(e.hoverTips){if(e.tipsType==="popover"){return w(a,{content:e.hoverTips,zIndex:1e3,children:w("span",{children:e.content})})}return w(c,{title:e.hoverTips,zIndex:1e3,children:w("span",{children:e.content})})}if(v(e.content)){return w(j,{children:e.content})}return w("span",{children:e.content})};var z=function a(c){var j=h(false),z=j[0],O=j[1];var F=p.useCallbackRef((function(r,e){var i=r.onClick==null?void 0:r.onClick(e);if(i&&l(i)){O(true);return i.finally((function(){O(false)}))}return}));var I=c.operateList.filter((function(r){if(!r)return false;if(v(r)){var e,i,t;if(((e=r.props)==null?void 0:e["hidden"])===true)return false;if(((i=r.props)==null?void 0:i["v-hidden"])===true)return false;var n=(t=r.props)==null?void 0:t["v-permission"];if(s(n)){return T.hasPermission(n)}return true}if(o(r)){if(!T.hasPermission(r["permission"])){return false}if(Object.prototype.hasOwnProperty.call(r,"show")){return r["show"]}else if(Object.prototype.hasOwnProperty.call(r,"hidden")){return!r["hidden"]}return true}return false}));var M=g((function(){return I.filter((function(r){if(v(r)){return true}return!r["isFold"]}))}),[I]);var N=g((function(){var r=I.filter((function(r){if(v(r)){return false}return r["isFold"]}));var i=[];r.forEach((function(r){var t=e({},r);delete t.isFold;i.push(t)}));return i}),[I]);var _=g((function(){if(c.size==="small")return 0;return c.gap===undefined?10:c.gap}),[c.gap,c.size]);var L=g((function(){if(c.size==="small")return 0;return!c.split?_:0}),[_,c.size,c.split]);var B=g((function(){if(c.size==="small")return null;return c.split?w(u,{type:"vertical"}):null}),[c.size,c.split]);return w("div",{className:n("table-operate",c.className),style:c.style,children:P(d,e({split:B,size:L,wrap:t(c.wrap)?true:c.wrap},c.spaceProps,{children:[M.map((function(r,t){if(r&&v(r)){return w(b,{content:r,hoverTips:r.hoverTips,tipsType:r.tipsType},t)}var n=r.text,o=r.onClick,s=r.needConfirm,l=r.confirmMessage,p=r.popconfirmProps,a=r.hoverTips,c=r.color,u=r.tipsType,d=r.type;r.isFold;var f=i(r,C);var j=d||"link";if(s&&!f.disabled){var h=c?false:true;return y(m,e({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},p,{title:l,onConfirm:F.bind(null,r),key:t,okButtonProps:{loading:z},onOpenChange:function r(e){if(!e){O(false)}},onCancel:function r(e){e==null||e.stopPropagation()}}),w(k,e({danger:h},f,{onClick:function r(e){e.stopPropagation()},type:j,children:w(b,{content:n,hoverTips:a,tipsType:u},t)})))}return y(k,e({loadingPosition:"center"},f,{color:c,type:j,onClick:function r(e){e.stopPropagation();return o==null?void 0:o(e)},key:t}),w(b,{content:n,hoverTips:a,tipsType:r.tipsType}))})),N.length>0?w(x,e({menuList:N,placement:"bottom"},c.dropdownMenuProps,{children:w(f,{type:"link",className:"fold-more-button",onClick:function r(e){e.stopPropagation()},children:c.foldIcon?c.foldIcon:w(r,{})})})):null]}))})};z.defaultProps={split:true};export{z as ButtonOperate,b as ButtonOperateItemContent};
12
+ import r from"@ant-design/icons/es/icons/MoreOutlined";import{_ as e,a as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isUndefined as t}from"@dimjs/lang/cjs/is-undefined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{isPlainObject as o}from"@dimjs/lang/cjs/is-plain-object";import{isString as s}from"@dimjs/lang/cjs/is-string";import{isPromise as l}from"@dimjs/lang/cjs/is-promise";import{hooks as p}from"@wove/react/cjs/hooks";import{Popover as a,Tooltip as c,Divider as u,Space as d,Popconfirm as m,Button as f}from"antd";import{isValidElement as v,Fragment as j,useState as h,useMemo as g,createElement as y}from"react";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{DropdownMenuWrapper as x}from"../dropdown-menu-wrapper/index.js";import{fbaUtils as T}from"../fba-utils/index.js";import{jsx as w,jsxs as P}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@flatbiz/utils";import"../index-83bede1b.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"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/extend";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"@dimjs/model";var C=["text","onClick","needConfirm","confirmMessage","popconfirmProps","hoverTips","color","tipsType","type","isFold","show"];var b=function r(e){if(e.hoverTips){if(e.tipsType==="popover"){return w(a,{content:e.hoverTips,zIndex:1e3,children:w("span",{children:e.content})})}return w(c,{title:e.hoverTips,zIndex:1e3,children:w("span",{children:e.content})})}if(v(e.content)){return w(j,{children:e.content})}return w("span",{children:e.content})};var z=function a(c){var j=h(false),z=j[0],O=j[1];var F=p.useCallbackRef((function(r,e){var i=r.onClick==null?void 0:r.onClick(e);if(i&&l(i)){O(true);return i.finally((function(){O(false)}))}return}));var I=c.operateList.filter((function(r){if(!r)return false;if(v(r)){var e,i,t;if(((e=r.props)==null?void 0:e["hidden"])===true)return false;if(((i=r.props)==null?void 0:i["v-hidden"])===true)return false;var n=(t=r.props)==null?void 0:t["v-permission"];if(s(n)){return T.hasPermission(n)}return true}if(o(r)){if(!T.hasPermission(r["permission"])){return false}if(Object.prototype.hasOwnProperty.call(r,"show")){return r["show"]}else if(Object.prototype.hasOwnProperty.call(r,"hidden")){return!r["hidden"]}return true}return false}));var M=g((function(){return I.filter((function(r){if(v(r)){return true}return!r["isFold"]}))}),[I]);var N=g((function(){var r=I.filter((function(r){if(v(r)){return false}return r["isFold"]}));var i=[];r.forEach((function(r){var t=e({},r);delete t.isFold;i.push(t)}));return i}),[I]);var _=g((function(){if(c.size==="small")return 0;return c.gap===undefined?10:c.gap}),[c.gap,c.size]);var L=g((function(){if(c.size==="small")return 0;return!c.split?_:0}),[_,c.size,c.split]);var B=g((function(){if(c.size==="small")return null;return c.split?w(u,{type:"vertical"}):null}),[c.size,c.split]);return w("div",{className:n("table-operate",c.className),style:c.style,children:P(d,e({split:B,size:L,wrap:t(c.wrap)?true:c.wrap},c.spaceProps,{children:[M.map((function(r,t){if(r&&v(r)){return w(b,{content:r,hoverTips:r.hoverTips,tipsType:r.tipsType},t)}var n=r.text,o=r.onClick,s=r.needConfirm,l=r.confirmMessage,p=r.popconfirmProps,a=r.hoverTips,c=r.color,u=r.tipsType,d=r.type;r.isFold;r.show;var f=i(r,C);var j=d||"link";if(s&&!f.disabled){var h=c?false:true;return y(m,e({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},p,{title:l,onConfirm:F.bind(null,r),key:t,okButtonProps:{loading:z},onOpenChange:function r(e){if(!e){O(false)}},onCancel:function r(e){e==null||e.stopPropagation()}}),w(k,e({danger:h},f,{onClick:function r(e){e.stopPropagation()},type:j,children:w(b,{content:n,hoverTips:a,tipsType:u},t)})))}return y(k,e({loadingPosition:"center"},f,{color:c,type:j,onClick:function r(e){e.stopPropagation();return o==null?void 0:o(e)},key:t}),w(b,{content:n,hoverTips:a,tipsType:r.tipsType}))})),N.length>0?w(x,e({menuList:N,placement:"bottom"},c.dropdownMenuProps,{children:w(f,{type:"link",className:"fold-more-button",onClick:function r(e){e.stopPropagation()},children:c.foldIcon?c.foldIcon:w(r,{})})})):null]}))})};z.defaultProps={split:true};export{z as ButtonOperate,b as ButtonOperateItemContent};
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.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 type { PopconfirmProps, SpaceProps } from 'antd';\nimport { Button, Divider, Popconfirm, Popover, Space, Tooltip } from 'antd';\nimport type { CSSProperties, FC, ReactElement, ReactNode } from 'react';\nimport { Fragment, isValidElement, useMemo, useState } from 'react';\nimport type { ButtonWrapperProps } from '../button-wrapper/button-wrapper.jsx';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport type { DialogModalProps } from '../dialog-modal/dialog-modal.jsx';\nimport type { DropdownMenuWrapperProps } from '../dropdown-menu-wrapper/dropdown-menu-wrapper.jsx';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper/dropdown-menu-wrapper.jsx';\nimport { fbaUtils } from '../fba-utils/index.js';\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n /** hover 提示文字,isFold=true无效 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n /** 按钮文案 */\n text?: string | ReactElement;\n /** 自定义按钮颜色 */\n color?: string;\n /** 是否需要二次弹框确认 */\n needConfirm?: boolean;\n /** 二次弹框确认文案 */\n confirmMessage?: ReactNode;\n /* isFold=false & needConfirm=true 有效 */\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n /** 是否折叠合拢 */\n isFold?: boolean;\n /* isFold=true & needConfirm=true 有效 */\n confirmModalProps?: DialogModalProps;\n /** 是否显示按钮,优先级高于 hidden */\n show?: boolean;\n}\n\nexport interface ButtonOperateProps {\n className?: string;\n style?: CSSProperties;\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true、v-hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n /** 是否换行,默认true */\n wrap?: boolean;\n /** 隐藏图标Icon */\n foldIcon?: ReactElement;\n /** 按钮之间是否添加分隔符 */\n split?: boolean;\n /** 多个按钮的包装组件Space属性 */\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n /** 折叠合拢属性 */\n dropdownMenuProps?: Omit<DropdownMenuWrapperProps, 'menuList'>;\n\n /**\n * 按钮布局尺寸\n * ```\n * 1. 设置为small后,gap、split 配置失效\n * ```\n */\n size?: 'small' | 'default';\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & {\n content: ReactNode;\n },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Tooltip>\n );\n }\n if (isValidElement(props.content)) {\n return <Fragment>{props.content}</Fragment>;\n }\n // ButtonOperate item 内部 span 包文案会有动态效果\n return <span>{props.content}</span>;\n};\n\n/**\n * 按钮组合处理组件\n * ```\n * 1. operateList中存在ReactElement类型的元素,可通过配置 v-permission 属性来设置权限,例如 v-permission=\"add\"\n * 2. operateList中存在ReactElement类型的元素,如果有hidden、v-hidden属性,值为true会隐藏\n *\n *\n * flatbiz/antd@4.2.49\n * 1. 替换 Fold 中 needConfirm交互,有 Popconfirm 改为 dialogConfirm组件实现二次弹框确认功能\n * 2. 修改原因:升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框组合使用存在问题\n * ```\n */\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n if (item.props?.['v-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 if (Object.prototype.hasOwnProperty.call(item, 'show')) {\n return item['show'];\n } else if (Object.prototype.hasOwnProperty.call(item, 'hidden')) {\n return !item['hidden'];\n }\n return true;\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 spaceGap = useMemo(() => {\n if (props.size === 'small') return 0;\n return props.gap === undefined ? 10 : props.gap;\n }, [props.gap, props.size]);\n\n const spaceSize = useMemo(() => {\n if (props.size === 'small') return 0;\n return !props.split ? spaceGap : 0;\n }, [spaceGap, props.size, props.split]);\n\n const spaceSplit = useMemo(() => {\n if (props.size === 'small') return null;\n return props.split ? <Divider type=\"vertical\" /> : null;\n }, [props.size, props.split]);\n\n return (\n <div className={classNames('table-operate', props.className)} style={props.style}>\n <Space\n split={spaceSplit}\n size={spaceSize}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent\n content={item}\n hoverTips={item.hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n );\n }\n const {\n text,\n onClick,\n needConfirm,\n confirmMessage,\n popconfirmProps,\n hoverTips,\n color,\n tipsType,\n type,\n // 多余字段渲染到react dom上,出现警告\n isFold: _isFold,\n ...otherProps\n } = item;\n const typeFt = type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = color ? false : true;\n return (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n onCancel={(event) => {\n event?.stopPropagation();\n }}\n >\n <ButtonWrapper\n danger={danger}\n {...otherProps}\n onClick={(event) => {\n event.stopPropagation();\n }}\n type={typeFt}\n >\n <ButtonOperateItemContent\n content={text}\n hoverTips={hoverTips}\n tipsType={tipsType}\n key={index}\n />\n </ButtonWrapper>\n </Popconfirm>\n );\n }\n return (\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n color={color}\n type={typeFt}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n key={index}\n >\n <ButtonOperateItemContent content={text} hoverTips={hoverTips} tipsType={item.tipsType} />\n </ButtonWrapper>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList} placement=\"bottom\" {...props.dropdownMenuProps}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Tooltip","title","isValidElement","Fragment","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","_item$props","_item$props2","_item$props3","permission","_isString","fbaUtils","hasPermission","_isPlainObject","Object","prototype","hasOwnProperty","call","viewList","useMemo","foldList","filterList","forEach","target","_extends","isFold","push","spaceGap","size","gap","undefined","spaceSize","split","spaceSplit","Divider","type","className","_classNames","style","_jsxs","Space","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","color","otherProps","_objectWithoutPropertiesLoose","_excluded","typeFt","disabled","danger","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","onCancel","stopPropagation","ButtonWrapper","loadingPosition","length","DropdownMenuWrapper","menuList","dropdownMenuProps","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"index.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 type { PopconfirmProps, SpaceProps } from 'antd';\nimport { Button, Divider, Popconfirm, Popover, Space, Tooltip } from 'antd';\nimport type { CSSProperties, FC, ReactElement, ReactNode } from 'react';\nimport { Fragment, isValidElement, useMemo, useState } from 'react';\nimport type { ButtonWrapperProps } from '../button-wrapper/button-wrapper.jsx';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport type { DialogModalProps } from '../dialog-modal/dialog-modal.jsx';\nimport type { DropdownMenuWrapperProps } from '../dropdown-menu-wrapper/dropdown-menu-wrapper.jsx';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper/dropdown-menu-wrapper.jsx';\nimport { fbaUtils } from '../fba-utils/index.js';\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n /** hover 提示文字,isFold=true无效 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n /** 按钮文案 */\n text?: string | ReactElement;\n /** 自定义按钮颜色 */\n color?: string;\n /** 是否需要二次弹框确认 */\n needConfirm?: boolean;\n /** 二次弹框确认文案 */\n confirmMessage?: ReactNode;\n /* isFold=false & needConfirm=true 有效 */\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n /** 是否折叠合拢 */\n isFold?: boolean;\n /* isFold=true & needConfirm=true 有效 */\n confirmModalProps?: DialogModalProps;\n /** 是否显示按钮,优先级高于 hidden */\n show?: boolean;\n}\n\nexport interface ButtonOperateProps {\n className?: string;\n style?: CSSProperties;\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true、v-hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n /** 是否换行,默认true */\n wrap?: boolean;\n /** 隐藏图标Icon */\n foldIcon?: ReactElement;\n /** 按钮之间是否添加分隔符 */\n split?: boolean;\n /** 多个按钮的包装组件Space属性 */\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n /** 折叠合拢属性 */\n dropdownMenuProps?: Omit<DropdownMenuWrapperProps, 'menuList'>;\n\n /**\n * 按钮布局尺寸\n * ```\n * 1. 设置为small后,gap、split 配置失效\n * ```\n */\n size?: 'small' | 'default';\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & {\n content: ReactNode;\n },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Tooltip>\n );\n }\n if (isValidElement(props.content)) {\n return <Fragment>{props.content}</Fragment>;\n }\n // ButtonOperate item 内部 span 包文案会有动态效果\n return <span>{props.content}</span>;\n};\n\n/**\n * 按钮组合处理组件\n * ```\n * 1. operateList中存在ReactElement类型的元素,可通过配置 v-permission 属性来设置权限,例如 v-permission=\"add\"\n * 2. operateList中存在ReactElement类型的元素,如果有hidden、v-hidden属性,值为true会隐藏\n *\n *\n * flatbiz/antd@4.2.49\n * 1. 替换 Fold 中 needConfirm交互,有 Popconfirm 改为 dialogConfirm组件实现二次弹框确认功能\n * 2. 修改原因:升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框组合使用存在问题\n * ```\n */\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n if (item.props?.['v-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 if (Object.prototype.hasOwnProperty.call(item, 'show')) {\n return item['show'];\n } else if (Object.prototype.hasOwnProperty.call(item, 'hidden')) {\n return !item['hidden'];\n }\n return true;\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 spaceGap = useMemo(() => {\n if (props.size === 'small') return 0;\n return props.gap === undefined ? 10 : props.gap;\n }, [props.gap, props.size]);\n\n const spaceSize = useMemo(() => {\n if (props.size === 'small') return 0;\n return !props.split ? spaceGap : 0;\n }, [spaceGap, props.size, props.split]);\n\n const spaceSplit = useMemo(() => {\n if (props.size === 'small') return null;\n return props.split ? <Divider type=\"vertical\" /> : null;\n }, [props.size, props.split]);\n\n return (\n <div className={classNames('table-operate', props.className)} style={props.style}>\n <Space\n split={spaceSplit}\n size={spaceSize}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent\n content={item}\n hoverTips={item.hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n );\n }\n const {\n text,\n onClick,\n needConfirm,\n confirmMessage,\n popconfirmProps,\n hoverTips,\n color,\n tipsType,\n type,\n // 多余字段渲染到react dom上,出现警告\n isFold: _isFold,\n show: _show,\n ...otherProps\n } = item;\n const typeFt = type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = color ? false : true;\n return (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n onCancel={(event) => {\n event?.stopPropagation();\n }}\n >\n <ButtonWrapper\n danger={danger}\n {...otherProps}\n onClick={(event) => {\n event.stopPropagation();\n }}\n type={typeFt}\n >\n <ButtonOperateItemContent\n content={text}\n hoverTips={hoverTips}\n tipsType={tipsType}\n key={index}\n />\n </ButtonWrapper>\n </Popconfirm>\n );\n }\n return (\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n color={color}\n type={typeFt}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n key={index}\n >\n <ButtonOperateItemContent content={text} hoverTips={hoverTips} tipsType={item.tipsType} />\n </ButtonWrapper>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList} placement=\"bottom\" {...props.dropdownMenuProps}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Tooltip","title","isValidElement","Fragment","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","_item$props","_item$props2","_item$props3","permission","_isString","fbaUtils","hasPermission","_isPlainObject","Object","prototype","hasOwnProperty","call","viewList","useMemo","foldList","filterList","forEach","target","_extends","isFold","push","spaceGap","size","gap","undefined","spaceSize","split","spaceSplit","Divider","type","className","_classNames","style","_jsxs","Space","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","color","show","otherProps","_objectWithoutPropertiesLoose","_excluded","typeFt","disabled","danger","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","onCancel","stopPropagation","ButtonWrapper","loadingPosition","length","DropdownMenuWrapper","menuList","dropdownMenuProps","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- .v-request-status{margin:16px 0;position:relative}.v-request-status .ant-empty{margin:8px 0}.v-request-status .ant-spin{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.cascader-wrapper-popup .ant-cascader-menu-empty .ant-cascader-menu-item{pointer-events:auto!important}
1
+ .text-overflow{display:flex}.text-overflow,.tow-content{overflow:hidden;position:relative;width:100%}.tow-content{display:inline-block;text-align:inherit;text-overflow:ellipsis;white-space:nowrap}.tow-hidden{display:inline-block;height:0;left:0;overflow:hidden;position:absolute;top:0;width:0}.tow-hidden span{white-space:nowrap}.tow-hidden span,.tow-inner-text{display:inline-block}.tow-trigger .tow-content,.tow-trigger .tow-cut-content{color:#1677ff;transition:color .3s}.tow-trigger .tow-show-text{cursor:pointer}.tow-trigger .tow-show-text:hover{color:#69b1ff}.v-request-status{margin:16px 0;position:relative}.v-request-status .ant-empty{margin:8px 0}.v-request-status .ant-spin{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.cascader-wrapper-popup .ant-cascader-menu-empty .ant-cascader-menu-item{pointer-events:auto!important}
@@ -2,5 +2,5 @@
2
2
  import './../fba-hooks/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import e from"@ant-design/icons/es/icons/CloseCircleFilled";import n from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as t,_ as a}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as i}from"@wove/react/cjs/hooks";import{isArray as o}from"@dimjs/lang/cjs/is-array";import{get as l}from"@dimjs/utils/cjs/get";import{extend as s}from"@dimjs/utils/cjs/extend";import{toArray as u,isUndefinedOrNull as f,treeNodeParentsList as c}from"@flatbiz/utils";import{Cascader as m,Button as d,Flex as v}from"antd";import{forwardRef as p,useState as g,useRef as h,useMemo as C,useEffect as j,useImperativeHandle as q}from"react";import{fbaHooks as y}from"../fba-hooks/index.js";import{RequestStatus as R}from"../request-status/index.js";import{isPlainObject as b}from"@dimjs/lang/cjs/is-plain-object";import{jsx as L,jsxs as k}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";var w=function e(n){var r=u(n);return r.map((function(e){return b(e)?e==null?void 0:e["value"]:e}))};var P=["serviceConfig","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue"];var x=p((function(u,p){var b=u.serviceConfig,x=u.fieldNames,N=u.isDynamicLoad,S=u.requestMessageConfig,E=u.onSelectorListChange,D=u.responseType,I=u.labelInValue,O=t(u,P);var A=g([]),B=A[0],F=A[1];var J=g("request-init"),K=J[0],M=J[1];var T=h(S);var V=y.useSafeState(false),_=V[0],z=V[1];var H=s(true,{label:"label",value:"value",children:"children"},x);var G=g(),Q=G[0],U=G[1];var W=y.usePrevious(JSON.stringify((b==null?void 0:b.params)||{}));var X=C((function(){return JSON.stringify((b==null?void 0:b.params)||{})}),[b==null?void 0:b.params]);j((function(){T.current=S}),[S]);var Y=function e(n){if(b!=null&&b.onRequestResultAdapter){return b.onRequestResultAdapter(n)}if(x!=null&&x.list){n=l(n,x==null?void 0:x.list)}if(!o(n)){console.warn("接口返回数据不是数组类型,已被忽略",n);return[]}return n};var Z=i.useCallbackRef((function(){return new Promise((function(e,n){var r,t,i,o;if(!(b!=null&&b.onRequest)){return n(new Error("onRequest 调用接口服务不能为空"))}var l=function(){try{return e()}catch(e){return n(e)}};var s=function(e){try{z(false);T.current=a({},T.current,{"request-error":e.message||"获取数据异常"});M("request-error");return l()}catch(e){return n(e)}};try{r=b.params||{};if(b!=null&&b.requiredParamsKeys){t=b==null?void 0:b.requiredParamsKeys.find((function(e){return f(r[e])}));if(t){F([]);M("no-dependencies-params");if(u.value){u.onChange==null||u.onChange(undefined)}return e()}}z(true);M("request-progress");return Promise.resolve(b.onRequest==null?void 0:b.onRequest(r)).then((function(e){try{i=e;o=Y(i);if(N){o.map((function(e){e.isLeaf=e.isLeaf||false}))}z(false);F(o||[]);E==null||E(o||[]);M("request-success");return l()}catch(e){return s(e)}}),s)}catch(e){s(e)}}))}));y.useEffectCustom((function(){var e=w(u.value);if(e.length>0){if(D==="all"){U(e)}else{var n=c(e[0],B,true,H).reverse();if(n.length===0){U([u.value])}else{U(n)}}}else{U(undefined)}}),[B,u.value]);q(p,(function(){return{getCascaderList:function e(){return B}}}));y.useEffectCustom((function(){if(W){if(X!==W){void Z()}}}),[W,X]);var $=i.useCallbackRef((function(){void Z()}));y.useEffectCustom((function(){void Z()}),[]);var ee=function e(n){return new Promise((function(e,r){var t,i,o,l;i=n[n.length-1];i.loading=true;return Promise.resolve(b==null||b.onRequest==null?void 0:b.onRequest(a({},b.params,(t={},t[H.value]=i[H.value],t)))).then((function(n){try{o=n;l=Y(o);if(!l||l.length===0){i.isLeaf=true}else{l.map((function(e){e.isLeaf=e.isLeaf||false}));i.children=l}i.loading=false;E==null||E(B||[]);F([].concat(B));return e()}catch(e){return r(e)}}),r)}))};var ne=i.useCallbackRef((function(e,n){if(I!==true){if(D==="all"){u.onChange==null||u.onChange(e,n)}else{u.onChange==null||u.onChange(e==null?void 0:e[e.length-1],n)}}else{var r=n==null?void 0:n.map((function(e){return{label:e[H.label],value:e[H.value]}}));if(D==="all"){u.onChange==null||u.onChange(r,n)}else{u.onChange==null||u.onChange(r==null?void 0:r[r.length-1],n)}}}));var re=i.useCallbackRef((function(){void(u.onChange==null?void 0:u.onChange(undefined))}));return L(m,a({showSearch:true,allowClear:true},O,{popupClassName:r("cascader-wrapper-popup",O.popupClassName),notFoundContent:L(R,{status:K,loading:_,messageConfig:T.current,errorButton:L(d,{type:"primary",onClick:$,ghost:true,children:"重新获取数据"})}),loading:_,loadData:N?ee:undefined,fieldNames:H,suffixIcon:K==="request-error"?k(v,{style:{display:"inline-flex",gap:10},children:[L(n,{spin:_,onClick:$}),L(e,{style:{color:"#ff4d4f"}})]}):undefined,options:B,value:Q,multiple:false,onChange:ne,onClear:re}))}));export{x as CascaderWrapper};
5
+ import e from"@ant-design/icons/es/icons/CloseCircleFilled";import n from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as t,_ as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as o}from"@wove/react/cjs/hooks";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{get as s}from"@dimjs/utils/cjs/get";import{extend as l}from"@dimjs/utils/cjs/extend";import{toArray as u,isUndefinedOrNull as f,treeNodeParentsList as c}from"@flatbiz/utils";import{Cascader as m,Button as d,Flex as p}from"antd";import{forwardRef as v,useState as g,useRef as h,useMemo as C,useEffect as j,useImperativeHandle as q}from"react";import{fbaHooks as y}from"../fba-hooks/index.js";import{RequestStatus as R}from"../request-status/index.js";import{isPlainObject as b}from"@dimjs/lang/cjs/is-plain-object";import{jsx as x,jsxs as L}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";import"../index-636a568e.js";import"../text-overflow/index.js";import"@dimjs/lang/cjs/is-string";import"ahooks";var k=function e(n){var r=u(n);return r.map((function(e){return b(e)?e==null?void 0:e["value"]:e}))};var w=["serviceConfig","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue"];var P=v((function(u,v){var b=u.serviceConfig,P=u.fieldNames,N=u.isDynamicLoad,S=u.requestMessageConfig,E=u.onSelectorListChange,D=u.responseType,I=u.labelInValue,O=t(u,w);var A=g([]),B=A[0],F=A[1];var J=g("request-init"),K=J[0],M=J[1];var T=h(S);var V=y.useSafeState(false),_=V[0],z=V[1];var H=l(true,{label:"label",value:"value",children:"children"},P);var G=g(),Q=G[0],U=G[1];var W=y.usePrevious(JSON.stringify((b==null?void 0:b.params)||{}));var X=C((function(){return JSON.stringify((b==null?void 0:b.params)||{})}),[b==null?void 0:b.params]);j((function(){T.current=S}),[S]);var Y=function e(n){if(b!=null&&b.onRequestResultAdapter){return b.onRequestResultAdapter(n)}if(P!=null&&P.list){n=s(n,P==null?void 0:P.list)}if(!a(n)){console.warn("接口返回数据不是数组类型,已被忽略",n);return[]}return n};var Z=o.useCallbackRef((function(){return new Promise((function(e,n){var r,t,o,a;if(!(b!=null&&b.onRequest)){return n(new Error("onRequest 调用接口服务不能为空"))}var s=function(){try{return e()}catch(e){return n(e)}};var l=function(e){try{z(false);T.current=i({},T.current,{"request-error":e.message||"获取数据异常"});M("request-error");return s()}catch(e){return n(e)}};try{r=b.params||{};if(b!=null&&b.requiredParamsKeys){t=b==null?void 0:b.requiredParamsKeys.find((function(e){return f(r[e])}));if(t){F([]);M("no-dependencies-params");if(u.value){u.onChange==null||u.onChange(undefined)}return e()}}z(true);M("request-progress");return Promise.resolve(b.onRequest==null?void 0:b.onRequest(r)).then((function(e){try{o=e;a=Y(o);if(N){a.map((function(e){e.isLeaf=e.isLeaf||false}))}z(false);F(a||[]);E==null||E(a||[]);M("request-success");return s()}catch(e){return l(e)}}),l)}catch(e){l(e)}}))}));y.useEffectCustom((function(){var e=k(u.value);if(e.length>0){if(D==="all"){U(e)}else{var n=c(e[0],B,true,H).reverse();if(n.length===0){U([u.value])}else{U(n)}}}else{U(undefined)}}),[B,u.value]);q(v,(function(){return{getCascaderList:function e(){return B}}}));y.useEffectCustom((function(){if(W){if(X!==W){void Z()}}}),[W,X]);var $=o.useCallbackRef((function(){void Z()}));y.useEffectCustom((function(){void Z()}),[]);var ee=function e(n){return new Promise((function(e,r){var t,o,a,s;o=n[n.length-1];o.loading=true;return Promise.resolve(b==null||b.onRequest==null?void 0:b.onRequest(i({},b.params,(t={},t[H.value]=o[H.value],t)))).then((function(n){try{a=n;s=Y(a);if(!s||s.length===0){o.isLeaf=true}else{s.map((function(e){e.isLeaf=e.isLeaf||false}));o.children=s}o.loading=false;E==null||E(B||[]);F([].concat(B));return e()}catch(e){return r(e)}}),r)}))};var ne=o.useCallbackRef((function(e,n){if(I!==true){if(D==="all"){u.onChange==null||u.onChange(e,n)}else{u.onChange==null||u.onChange(e==null?void 0:e[e.length-1],n)}}else{var r=n==null?void 0:n.map((function(e){return{label:e[H.label],value:e[H.value]}}));if(D==="all"){u.onChange==null||u.onChange(r,n)}else{u.onChange==null||u.onChange(r==null?void 0:r[r.length-1],n)}}}));var re=o.useCallbackRef((function(){void(u.onChange==null?void 0:u.onChange(undefined))}));return x(m,i({showSearch:true,allowClear:true},O,{popupClassName:r("cascader-wrapper-popup",O.popupClassName),notFoundContent:x(R,{status:K,loading:_,messageConfig:T.current,errorButton:x(d,{type:"primary",onClick:$,ghost:true,children:"重新获取数据"})}),loading:_,loadData:N?ee:undefined,fieldNames:H,suffixIcon:K==="request-error"?L(p,{style:{display:"inline-flex",gap:10},children:[x(n,{spin:_,onClick:$}),x(e,{style:{color:"#ff4d4f"}})]}):undefined,options:B,value:Q,multiple:false,onChange:ne,onClear:re}))}));export{P as CascaderWrapper};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/cascader-wrapper/utils.ts","@flatbiz/antd/src/cascader-wrapper/cascader-wrapper.tsx"],"sourcesContent":["import { isPlainObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\nexport const getValues = (value: any) => {\n const values = toArray(value);\n return values.map((item) => {\n return isPlainObject(item) ? item?.['value'] : item;\n });\n};\n","import { CloseCircleFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { classNames, extend, get } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n LabelValueItem,\n TPlainObject,\n treeNodeParentsList,\n type TAny,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Cascader, CascaderProps, Flex } from 'antd';\nimport { forwardRef, ReactElement, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks/index';\nimport type { TRequestStatus, TRequestStatusProps } from '../request-status/request-status';\nimport { RequestStatus } from '../request-status/request-status';\nimport './style.less';\nimport { getValues } from './utils';\n\ntype CascaderWrapperServiceConfig = {\n params?: TPlainObject;\n onRequest?: (params?: TAny) => TAny;\n /** 响应数据适配器 */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n /** 必填字段设置 */\n requiredParamsKeys?: string[];\n};\n\nexport type CascaderWrapperProps = Omit<\n CascaderProps<TAny>,\n 'loading' | 'notFoundContent' | 'options' | 'value' | 'multiple' | 'onChange' | 'fieldNames'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. 默认值:value=value、label=label、children=children\n * 2. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 3. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * 4. 如果没有配置list,可说明接口返回为数组\n * ```\n */\n fieldNames?: {\n list?: string;\n label?: string;\n value?: string;\n children?: string;\n };\n /**\n * 请求服务需求的数据,当设置`selectorList`后无效果\n */\n serviceConfig?: CascaderWrapperServiceConfig;\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 是否动态加载选项\n */\n isDynamicLoad?: boolean;\n value?: string | number | Array<string | number> | LabelValueItem | LabelValueItem[];\n onChange?: (value?: string | number | Array<string | number>, selectedList?: TPlainObject[]) => void;\n /** 配置数据查询状态描述,比如有依赖字段描述 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * 选择数据响应类型(当用户选中后响应数据),默认值:last\n * ```\n * 1. last 响应选中的最后一级数据\n * 2. all 响应选中的多级数据\n * ```\n */\n responseType?: 'last' | 'all';\n /** 响应数据是否包含label、value */\n labelInValue?: boolean;\n};\n\nexport type CascaderWrapperRefApi = {\n getCascaderList: () => TPlainObject[];\n};\n/**\n * 级联选择器包装组件\n * ```\n * 1. 数据源中 value 不能重复\n * 2. 不支持多选\n * 3. modelKey的配置是为了缓存数据,只缓存初始化数据,如果isDynamicLoad=true,动态获取的数据不再缓存\n * 4. onChange操作第一个参数返回叶子节点value(可配置返回多级),第二个参数返回选中的多级数据\n * 5. isDynamicLoad=true 会在请求中添加当前选中option的fieldNames.value为key的数据\n * 6. @flatbiz/antd@5.0.25 删除 modelKey 字段\n * 7. serviceConfig.params 参数发生变化时,会重新请求数据\n * ```\n */\nexport const CascaderWrapper = forwardRef<CascaderWrapperRefApi, CascaderWrapperProps>((props, ref) => {\n const {\n serviceConfig,\n fieldNames,\n isDynamicLoad,\n requestMessageConfig,\n onSelectorListChange,\n responseType,\n labelInValue,\n ...otherProps\n } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n const [status, setStatus] = useState<TRequestStatus>('request-init');\n\n const requestMessageConfigRef = useRef(requestMessageConfig);\n\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const fieldNamesMerge = extend(true, { label: 'label', value: 'value', children: 'children' }, fieldNames);\n const [valueList, setValueList] = useState<string[]>();\n\n const prevParams = fbaHooks.usePrevious(JSON.stringify(serviceConfig?.params || {}));\n\n const paramsStr = useMemo(() => {\n return JSON.stringify(serviceConfig?.params || {});\n }, [serviceConfig?.params]);\n\n useEffect(() => {\n requestMessageConfigRef.current = requestMessageConfig;\n }, [requestMessageConfig]);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig?.onRequestResultAdapter) {\n return serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames?.list) {\n respData = get(respData, fieldNames?.list);\n }\n if (!isArray(respData)) {\n console.warn('接口返回数据不是数组类型,已被忽略', respData);\n return [];\n }\n return respData;\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!serviceConfig?.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n try {\n const params = serviceConfig.params || {};\n // 判断必填参数是否完整\n if (serviceConfig?.requiredParamsKeys) {\n const target = serviceConfig?.requiredParamsKeys.find((item) => {\n return isUndefinedOrNull(params[item]);\n });\n if (target) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setDataList([]);\n setStatus('no-dependencies-params');\n if (props.value) {\n props.onChange?.(undefined);\n }\n return;\n }\n }\n setLoading(true);\n setStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(params);\n const respAdapterData = serviceRespDataAdapter(respData);\n if (isDynamicLoad) {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n }\n setLoading(false);\n setDataList(respAdapterData || []);\n onSelectorListChange?.(respAdapterData || []);\n setStatus('request-success');\n } catch (error: TAny) {\n setLoading(false);\n requestMessageConfigRef.current = {\n ...requestMessageConfigRef.current,\n 'request-error': error.message || '获取数据异常',\n };\n setStatus('request-error');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const values = getValues(props.value) as Array<number | string>;\n if (values.length > 0) {\n if (responseType === 'all') {\n setValueList(values as string[]);\n } else {\n const filterList = treeNodeParentsList(values[0], dataList, true, fieldNamesMerge).reverse();\n if (filterList.length === 0) {\n setValueList([props.value as string]);\n } else {\n setValueList(filterList as string[]);\n }\n }\n } else {\n setValueList(undefined);\n }\n }, [dataList, props.value]);\n\n useImperativeHandle(ref, () => {\n return {\n getCascaderList: () => {\n return dataList;\n },\n };\n });\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (paramsStr !== prevParams) {\n void startDataSourceRequest();\n }\n }\n }, [prevParams, paramsStr]);\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\n });\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loadData = async (selectedOptions: TAny[]) => {\n const targetOption = selectedOptions[selectedOptions.length - 1];\n targetOption.loading = true;\n const respData = await serviceConfig?.onRequest?.({\n ...serviceConfig.params,\n [fieldNamesMerge.value]: targetOption[fieldNamesMerge.value],\n });\n const respAdapterData = serviceRespDataAdapter(respData);\n if (!respAdapterData || respAdapterData.length === 0) {\n targetOption.isLeaf = true;\n } else {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n targetOption.children = respAdapterData;\n }\n targetOption.loading = false;\n onSelectorListChange?.(dataList || []);\n setDataList([...dataList]);\n };\n\n const onChange = hooks.useCallbackRef((values: Array<string | number>, selectList) => {\n if (labelInValue !== true) {\n if (responseType === 'all') {\n props.onChange?.(values, selectList);\n } else {\n props.onChange?.(values?.[values.length - 1], selectList);\n }\n } else {\n const labelInValueList = selectList?.map((item) => {\n return {\n label: item[fieldNamesMerge.label],\n value: item[fieldNamesMerge.value],\n };\n });\n if (responseType === 'all') {\n props.onChange?.(labelInValueList, selectList);\n } else {\n props.onChange?.(labelInValueList?.[labelInValueList.length - 1], selectList);\n }\n }\n });\n\n const onClear = hooks.useCallbackRef(() => {\n void props.onChange?.(undefined);\n });\n\n return (\n <Cascader\n showSearch={true}\n allowClear={true}\n {...(otherProps as TAny)}\n popupClassName={classNames('cascader-wrapper-popup', otherProps.popupClassName)}\n notFoundContent={\n <RequestStatus\n status={status}\n loading={loading}\n messageConfig={requestMessageConfigRef.current}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest} ghost>\n 重新获取数据\n </Button>\n }\n />\n }\n loading={loading}\n loadData={isDynamicLoad ? loadData : undefined}\n fieldNames={fieldNamesMerge}\n suffixIcon={\n status === 'request-error' ? (\n <Flex style={{ display: 'inline-flex', gap: 10 }}>\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n <CloseCircleFilled style={{ color: '#ff4d4f' }} />\n </Flex>\n ) : undefined\n }\n options={dataList}\n value={valueList}\n multiple={false}\n onChange={onChange}\n onClear={onClear}\n />\n );\n});\n"],"names":["getValues","value","values","toArray","map","item","_isPlainObject","CascaderWrapper","forwardRef","props","ref","serviceConfig","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","dataList","setDataList","_useState2","status","setStatus","requestMessageConfigRef","useRef","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","fieldNamesMerge","_extend","label","children","_useState3","valueList","setValueList","prevParams","usePrevious","JSON","stringify","params","paramsStr","useMemo","useEffect","current","serviceRespDataAdapter","respData","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","target","respAdapterData","onRequest","Error","$Try_1_Post","$boundEx","$Try_1_Catch","error","_extends","message","requiredParamsKeys","find","isUndefinedOrNull","onChange","undefined","resolve","then","$await_2","isLeaf","useEffectCustom","length","filterList","treeNodeParentsList","reverse","useImperativeHandle","getCascaderList","onAgainRequest","loadData","selectedOptions","_extends2","targetOption","$await_3","concat","selectList","labelInValueList","onClear","_jsx","Cascader","showSearch","allowClear","popupClassName","_classNames","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","onClick","ghost","suffixIcon","_jsxs","Flex","style","display","gap","_RedoOutlined","spin","_CloseCircleFilled","color","options","multiple"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/cascader-wrapper/utils.ts","@flatbiz/antd/src/cascader-wrapper/cascader-wrapper.tsx"],"sourcesContent":["import { isPlainObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\nexport const getValues = (value: any) => {\n const values = toArray(value);\n return values.map((item) => {\n return isPlainObject(item) ? item?.['value'] : item;\n });\n};\n","import { CloseCircleFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { classNames, extend, get } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n LabelValueItem,\n TPlainObject,\n treeNodeParentsList,\n type TAny,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Cascader, CascaderProps, Flex } from 'antd';\nimport { forwardRef, ReactElement, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks/index';\nimport type { TRequestStatus, TRequestStatusProps } from '../request-status/request-status';\nimport { RequestStatus } from '../request-status/request-status';\nimport './style.less';\nimport { getValues } from './utils';\n\ntype CascaderWrapperServiceConfig = {\n params?: TPlainObject;\n onRequest?: (params?: TAny) => TAny;\n /** 响应数据适配器 */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n /** 必填字段设置 */\n requiredParamsKeys?: string[];\n};\n\nexport type CascaderWrapperProps = Omit<\n CascaderProps<TAny>,\n 'loading' | 'notFoundContent' | 'options' | 'value' | 'multiple' | 'onChange' | 'fieldNames'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. 默认值:value=value、label=label、children=children\n * 2. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 3. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * 4. 如果没有配置list,可说明接口返回为数组\n * ```\n */\n fieldNames?: {\n list?: string;\n label?: string;\n value?: string;\n children?: string;\n };\n /**\n * 请求服务需求的数据,当设置`selectorList`后无效果\n */\n serviceConfig?: CascaderWrapperServiceConfig;\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 是否动态加载选项\n */\n isDynamicLoad?: boolean;\n value?: string | number | Array<string | number> | LabelValueItem | LabelValueItem[];\n onChange?: (value?: string | number | Array<string | number>, selectedList?: TPlainObject[]) => void;\n /** 配置数据查询状态描述,比如有依赖字段描述 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * 选择数据响应类型(当用户选中后响应数据),默认值:last\n * ```\n * 1. last 响应选中的最后一级数据\n * 2. all 响应选中的多级数据\n * ```\n */\n responseType?: 'last' | 'all';\n /** 响应数据是否包含label、value */\n labelInValue?: boolean;\n};\n\nexport type CascaderWrapperRefApi = {\n getCascaderList: () => TPlainObject[];\n};\n/**\n * 级联选择器包装组件\n * ```\n * 1. 数据源中 value 不能重复\n * 2. 不支持多选\n * 3. modelKey的配置是为了缓存数据,只缓存初始化数据,如果isDynamicLoad=true,动态获取的数据不再缓存\n * 4. onChange操作第一个参数返回叶子节点value(可配置返回多级),第二个参数返回选中的多级数据\n * 5. isDynamicLoad=true 会在请求中添加当前选中option的fieldNames.value为key的数据\n * 6. @flatbiz/antd@5.0.25 删除 modelKey 字段\n * 7. serviceConfig.params 参数发生变化时,会重新请求数据\n * ```\n */\nexport const CascaderWrapper = forwardRef<CascaderWrapperRefApi, CascaderWrapperProps>((props, ref) => {\n const {\n serviceConfig,\n fieldNames,\n isDynamicLoad,\n requestMessageConfig,\n onSelectorListChange,\n responseType,\n labelInValue,\n ...otherProps\n } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n const [status, setStatus] = useState<TRequestStatus>('request-init');\n\n const requestMessageConfigRef = useRef(requestMessageConfig);\n\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const fieldNamesMerge = extend(true, { label: 'label', value: 'value', children: 'children' }, fieldNames);\n const [valueList, setValueList] = useState<string[]>();\n\n const prevParams = fbaHooks.usePrevious(JSON.stringify(serviceConfig?.params || {}));\n\n const paramsStr = useMemo(() => {\n return JSON.stringify(serviceConfig?.params || {});\n }, [serviceConfig?.params]);\n\n useEffect(() => {\n requestMessageConfigRef.current = requestMessageConfig;\n }, [requestMessageConfig]);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig?.onRequestResultAdapter) {\n return serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames?.list) {\n respData = get(respData, fieldNames?.list);\n }\n if (!isArray(respData)) {\n console.warn('接口返回数据不是数组类型,已被忽略', respData);\n return [];\n }\n return respData;\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!serviceConfig?.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n try {\n const params = serviceConfig.params || {};\n // 判断必填参数是否完整\n if (serviceConfig?.requiredParamsKeys) {\n const target = serviceConfig?.requiredParamsKeys.find((item) => {\n return isUndefinedOrNull(params[item]);\n });\n if (target) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setDataList([]);\n setStatus('no-dependencies-params');\n if (props.value) {\n props.onChange?.(undefined);\n }\n return;\n }\n }\n setLoading(true);\n setStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(params);\n const respAdapterData = serviceRespDataAdapter(respData);\n if (isDynamicLoad) {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n }\n setLoading(false);\n setDataList(respAdapterData || []);\n onSelectorListChange?.(respAdapterData || []);\n setStatus('request-success');\n } catch (error: TAny) {\n setLoading(false);\n requestMessageConfigRef.current = {\n ...requestMessageConfigRef.current,\n 'request-error': error.message || '获取数据异常',\n };\n setStatus('request-error');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const values = getValues(props.value) as Array<number | string>;\n if (values.length > 0) {\n if (responseType === 'all') {\n setValueList(values as string[]);\n } else {\n const filterList = treeNodeParentsList(values[0], dataList, true, fieldNamesMerge).reverse();\n if (filterList.length === 0) {\n setValueList([props.value as string]);\n } else {\n setValueList(filterList as string[]);\n }\n }\n } else {\n setValueList(undefined);\n }\n }, [dataList, props.value]);\n\n useImperativeHandle(ref, () => {\n return {\n getCascaderList: () => {\n return dataList;\n },\n };\n });\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (paramsStr !== prevParams) {\n void startDataSourceRequest();\n }\n }\n }, [prevParams, paramsStr]);\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\n });\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loadData = async (selectedOptions: TAny[]) => {\n const targetOption = selectedOptions[selectedOptions.length - 1];\n targetOption.loading = true;\n const respData = await serviceConfig?.onRequest?.({\n ...serviceConfig.params,\n [fieldNamesMerge.value]: targetOption[fieldNamesMerge.value],\n });\n const respAdapterData = serviceRespDataAdapter(respData);\n if (!respAdapterData || respAdapterData.length === 0) {\n targetOption.isLeaf = true;\n } else {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n targetOption.children = respAdapterData;\n }\n targetOption.loading = false;\n onSelectorListChange?.(dataList || []);\n setDataList([...dataList]);\n };\n\n const onChange = hooks.useCallbackRef((values: Array<string | number>, selectList) => {\n if (labelInValue !== true) {\n if (responseType === 'all') {\n props.onChange?.(values, selectList);\n } else {\n props.onChange?.(values?.[values.length - 1], selectList);\n }\n } else {\n const labelInValueList = selectList?.map((item) => {\n return {\n label: item[fieldNamesMerge.label],\n value: item[fieldNamesMerge.value],\n };\n });\n if (responseType === 'all') {\n props.onChange?.(labelInValueList, selectList);\n } else {\n props.onChange?.(labelInValueList?.[labelInValueList.length - 1], selectList);\n }\n }\n });\n\n const onClear = hooks.useCallbackRef(() => {\n void props.onChange?.(undefined);\n });\n\n return (\n <Cascader\n showSearch={true}\n allowClear={true}\n {...(otherProps as TAny)}\n popupClassName={classNames('cascader-wrapper-popup', otherProps.popupClassName)}\n notFoundContent={\n <RequestStatus\n status={status}\n loading={loading}\n messageConfig={requestMessageConfigRef.current}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest} ghost>\n 重新获取数据\n </Button>\n }\n />\n }\n loading={loading}\n loadData={isDynamicLoad ? loadData : undefined}\n fieldNames={fieldNamesMerge}\n suffixIcon={\n status === 'request-error' ? (\n <Flex style={{ display: 'inline-flex', gap: 10 }}>\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n <CloseCircleFilled style={{ color: '#ff4d4f' }} />\n </Flex>\n ) : undefined\n }\n options={dataList}\n value={valueList}\n multiple={false}\n onChange={onChange}\n onClear={onClear}\n />\n );\n});\n"],"names":["getValues","value","values","toArray","map","item","_isPlainObject","CascaderWrapper","forwardRef","props","ref","serviceConfig","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","dataList","setDataList","_useState2","status","setStatus","requestMessageConfigRef","useRef","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","fieldNamesMerge","_extend","label","children","_useState3","valueList","setValueList","prevParams","usePrevious","JSON","stringify","params","paramsStr","useMemo","useEffect","current","serviceRespDataAdapter","respData","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","target","respAdapterData","onRequest","Error","$Try_1_Post","$boundEx","$Try_1_Catch","error","_extends","message","requiredParamsKeys","find","isUndefinedOrNull","onChange","undefined","resolve","then","$await_2","isLeaf","useEffectCustom","length","filterList","treeNodeParentsList","reverse","useImperativeHandle","getCascaderList","onAgainRequest","loadData","selectedOptions","_extends2","targetOption","$await_3","concat","selectList","labelInValueList","onClear","_jsx","Cascader","showSearch","allowClear","popupClassName","_classNames","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","onClick","ghost","suffixIcon","_jsxs","Flex","style","display","gap","_RedoOutlined","spin","_CloseCircleFilled","color","options","multiple"],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  import './../icon-wrapper/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import i from"@ant-design/icons/es/icons/CopyOutlined";import r from"@ant-design/icons/es/icons/CheckOutlined";import{_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{Flex as o,message as t}from"antd";import n from"copy-to-clipboard";import{useState as l,useEffect as c,useMemo as s,Fragment as p}from"react";import{IconWrapper as a}from"../icon-wrapper/index.js";import{jsx as f,jsxs as m}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";var u=function u(y){var d=l(false),v=d[0],h=d[1];var x=function i(){if(v)return;h(true);var r=typeof y.copyText==="function"?y.copyText():y.copyText;n(r);if(y.copyAfterMsg){void t.success(y.copyAfterMsg)}};c((function(){if(v){setTimeout((function(){h(false)}),1e3)}}),[v]);var T=s((function(){if(y.hiddenTips)return undefined;if(typeof y.hoverTips==="function"){return y.hoverTips(v)}if(y.hoverTips)return y.hoverTips;return"复制"}),[y,v]);if(!y.text){return f(a,{hoverTips:T,wrapperStyle:{display:"inline-flex"},text:v?f(r,{style:e({color:"var(--color-primary)"},y.iconStyle)}):y.icon?f(p,{children:y.icon}):f(i,{style:e({color:"var(--color-primary)"},y.iconStyle)}),size:"small",onClick:x})}return m(o,{align:"center",gap:5,style:{alignItems:"center"},children:[y.iconPosition!=="left"?f("div",{children:y.text}):null,f(a,{hoverTips:T,wrapperStyle:{display:"inline-flex"},text:v?f(r,{style:e({color:"var(--color-primary)"},y.iconStyle)}):y.icon?f(p,{children:y.icon}):f(i,{style:e({color:"var(--color-primary)"},y.iconStyle)}),size:"small",onClick:x}),y.iconPosition==="left"?f("div",{children:y.text}):null]})};export{u as CopyWrapper};
5
+ import i from"@ant-design/icons/es/icons/CopyOutlined";import r from"@ant-design/icons/es/icons/CheckOutlined";import{_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{Flex as o,message as n}from"antd";import t from"copy-to-clipboard";import{useState as l,useEffect as c,useMemo as s,Fragment as p}from"react";import{IconWrapper as a}from"../icon-wrapper/index.js";import{jsx as f,jsxs as m}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";var u=function u(y){var d=l(false),v=d[0],h=d[1];var x=function i(){if(v)return;h(true);var r=typeof y.copyText==="function"?y.copyText():y.copyText;t(r);if(y.copyAfterMsg){void n.success(y.copyAfterMsg)}};c((function(){if(v){setTimeout((function(){h(false)}),1e3)}}),[v]);var T=s((function(){if(y.hiddenTips)return undefined;if(typeof y.hoverTips==="function"){return y.hoverTips(v)}if(y.hoverTips)return y.hoverTips;return"复制"}),[y,v]);if(!y.text){return f(a,{hoverTips:T,wrapperStyle:{display:"inline-flex"},text:v?f(r,{style:e({color:"var(--color-primary)"},y.iconStyle)}):y.icon?f(p,{children:y.icon}):f(i,{style:e({color:"var(--color-primary)"},y.iconStyle)}),size:"small",onClick:x})}return m(o,{align:"center",gap:5,style:{alignItems:"center"},children:[y.iconPosition!=="left"?f("div",{children:y.text}):null,f(a,{hoverTips:T,wrapperStyle:{display:"inline-flex"},text:v?f(r,{style:e({color:"var(--color-primary)"},y.iconStyle)}):y.icon?f(p,{children:y.icon}):f(i,{style:e({color:"var(--color-primary)"},y.iconStyle)}),size:"small",onClick:x}),y.iconPosition==="left"?f("div",{children:y.text}):null]})};u.copy=function(i){t(i)};export{u as CopyWrapper};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/copy-wrapper/copy.tsx"],"sourcesContent":["import { CheckOutlined, CopyOutlined } from '@ant-design/icons';\nimport { Flex, message } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport type { CSSProperties, ReactNode } from 'react';\nimport { Fragment, useEffect, useMemo, useState } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\n\nexport type CopyWrapperProps = {\n copyText: string | (() => string);\n /** 复制后提示消息 */\n copyAfterMsg?: string;\n /** 复制鼠标悬浮提示\n * ```\n * hoverTips={(trigger) => {\n * return trigger ? '复制成功' : '复制数据';\n * }}\n * ```\n */\n hoverTips?: string | ((trigger) => string);\n /** 设置icon后失效 */\n iconStyle?: CSSProperties;\n /** 自定义文本,显示在复制图标前或后 */\n text?: ReactNode;\n\n hiddenTips?: boolean;\n /** 自定义复制icon图标 */\n icon?: ReactNode;\n /** 复制图标位置,text 为空时,此配置无效 */\n iconPosition?: 'left' | 'right';\n};\n\nexport const CopyWrapper = (props: CopyWrapperProps) => {\n const [trigger, setTrigger] = useState(false);\n\n const onClick = () => {\n if (trigger) return;\n setTrigger(true);\n const copyText = typeof props.copyText === 'function' ? props.copyText() : props.copyText;\n copy(copyText);\n if (props.copyAfterMsg) {\n void message.success(props.copyAfterMsg);\n }\n };\n\n useEffect(() => {\n if (trigger) {\n setTimeout(() => {\n setTrigger(false);\n }, 1000);\n }\n }, [trigger]);\n\n const hoverTips = useMemo(() => {\n if (props.hiddenTips) return undefined;\n if (typeof props.hoverTips === 'function') {\n return props.hoverTips(trigger);\n }\n if (props.hoverTips) return props.hoverTips;\n return '复制';\n }, [props, trigger]);\n\n if (!props.text) {\n return (\n <IconWrapper\n hoverTips={hoverTips}\n wrapperStyle={{ display: 'inline-flex' }}\n text={\n trigger ? (\n <CheckOutlined style={{ color: 'var(--color-primary)', ...props.iconStyle }} />\n ) : props.icon ? (\n <Fragment>{props.icon}</Fragment>\n ) : (\n <CopyOutlined style={{ color: 'var(--color-primary)', ...props.iconStyle }} />\n )\n }\n size=\"small\"\n onClick={onClick}\n />\n );\n }\n\n return (\n <Flex align=\"center\" gap={5} style={{ alignItems: 'center' }}>\n {props.iconPosition !== 'left' ? <div>{props.text}</div> : null}\n <IconWrapper\n hoverTips={hoverTips}\n wrapperStyle={{ display: 'inline-flex' }}\n text={\n trigger ? (\n <CheckOutlined style={{ color: 'var(--color-primary)', ...props.iconStyle }} />\n ) : props.icon ? (\n <Fragment>{props.icon}</Fragment>\n ) : (\n <CopyOutlined style={{ color: 'var(--color-primary)', ...props.iconStyle }} />\n )\n }\n size=\"small\"\n onClick={onClick}\n />\n {props.iconPosition === 'left' ? <div>{props.text}</div> : null}\n </Flex>\n );\n};\n"],"names":["CopyWrapper","props","_useState","useState","trigger","setTrigger","onClick","copyText","copy","copyAfterMsg","message","success","useEffect","setTimeout","hoverTips","useMemo","hiddenTips","undefined","text","_jsx","IconWrapper","wrapperStyle","display","_CheckOutlined","style","_extends","color","iconStyle","icon","Fragment","children","_CopyOutlined","size","_jsxs","Flex","align","gap","alignItems","iconPosition"],"mappings":";wfA+BaA,EAAc,SAAdA,EAAeC,GAC1B,IAAAC,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAE1B,IAAMI,EAAU,SAAVA,IACJ,GAAIF,EAAS,OACbC,EAAW,MACX,IAAME,SAAkBN,EAAMM,WAAa,WAAaN,EAAMM,WAAaN,EAAMM,SACjFC,EAAKD,GACL,GAAIN,EAAMQ,aAAc,MACjBC,EAAQC,QAAQV,EAAMQ,aAC7B,GAGFG,GAAU,WACR,GAAIR,EAAS,CACXS,YAAW,WACTR,EAAW,MACZ,GAAE,IACL,CACF,GAAG,CAACD,IAEJ,IAAMU,EAAYC,GAAQ,WACxB,GAAId,EAAMe,WAAY,OAAOC,UAC7B,UAAWhB,EAAMa,YAAc,WAAY,CACzC,OAAOb,EAAMa,UAAUV,EACzB,CACA,GAAIH,EAAMa,UAAW,OAAOb,EAAMa,UAClC,MAAO,IACT,GAAG,CAACb,EAAOG,IAEX,IAAKH,EAAMiB,KAAM,CACf,OACEC,EAACC,EAAW,CACVN,UAAWA,EACXO,aAAc,CAAEC,QAAS,eACzBJ,KACEd,EACEe,EAAAI,EAAA,CAAeC,MAAKC,EAAA,CAAIC,MAAO,wBAA2BzB,EAAM0B,aAC9D1B,EAAM2B,KACRT,EAACU,EAAQ,CAAAC,SAAE7B,EAAM2B,OAEjBT,EAAAY,EAAA,CAAcP,MAAKC,EAAA,CAAIC,MAAO,wBAA2BzB,EAAM0B,aAGnEK,KAAK,QACL1B,QAASA,GAGf,CAEA,OACE2B,EAACC,EAAI,CAACC,MAAM,SAASC,IAAK,EAAGZ,MAAO,CAAEa,WAAY,UAAWP,UAC1D7B,EAAMqC,eAAiB,OAASnB,EAAA,MAAA,CAAAW,SAAM7B,EAAMiB,OAAc,KAC3DC,EAACC,EAAW,CACVN,UAAWA,EACXO,aAAc,CAAEC,QAAS,eACzBJ,KACEd,EACEe,EAAAI,EAAA,CAAeC,MAAKC,EAAA,CAAIC,MAAO,wBAA2BzB,EAAM0B,aAC9D1B,EAAM2B,KACRT,EAACU,EAAQ,CAAAC,SAAE7B,EAAM2B,OAEjBT,EAAAY,EAAA,CAAcP,MAAKC,EAAA,CAAIC,MAAO,wBAA2BzB,EAAM0B,aAGnEK,KAAK,QACL1B,QAASA,IAEVL,EAAMqC,eAAiB,OAASnB,EAAA,MAAA,CAAAW,SAAM7B,EAAMiB,OAAc,OAGjE"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/copy-wrapper/copy.tsx"],"sourcesContent":["import { CheckOutlined, CopyOutlined } from '@ant-design/icons';\nimport { Flex, message } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport type { CSSProperties, ReactNode } from 'react';\nimport { Fragment, useEffect, useMemo, useState } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\n\nexport type CopyWrapperProps = {\n copyText: string | (() => string);\n /** 复制后提示消息 */\n copyAfterMsg?: string;\n /** 复制鼠标悬浮提示\n * ```\n * hoverTips={(trigger) => {\n * return trigger ? '复制成功' : '复制数据';\n * }}\n * ```\n */\n hoverTips?: string | ((trigger) => string);\n /** 设置icon后失效 */\n iconStyle?: CSSProperties;\n /** 自定义文本,显示在复制图标前或后 */\n text?: ReactNode;\n\n hiddenTips?: boolean;\n /** 自定义复制icon图标 */\n icon?: ReactNode;\n /** 复制图标位置,text 为空时,此配置无效 */\n iconPosition?: 'left' | 'right';\n};\n\nexport const CopyWrapper = (props: CopyWrapperProps) => {\n const [trigger, setTrigger] = useState(false);\n\n const onClick = () => {\n if (trigger) return;\n setTrigger(true);\n const copyText = typeof props.copyText === 'function' ? props.copyText() : props.copyText;\n copy(copyText);\n if (props.copyAfterMsg) {\n void message.success(props.copyAfterMsg);\n }\n };\n\n useEffect(() => {\n if (trigger) {\n setTimeout(() => {\n setTrigger(false);\n }, 1000);\n }\n }, [trigger]);\n\n const hoverTips = useMemo(() => {\n if (props.hiddenTips) return undefined;\n if (typeof props.hoverTips === 'function') {\n return props.hoverTips(trigger);\n }\n if (props.hoverTips) return props.hoverTips;\n return '复制';\n }, [props, trigger]);\n\n if (!props.text) {\n return (\n <IconWrapper\n hoverTips={hoverTips}\n wrapperStyle={{ display: 'inline-flex' }}\n text={\n trigger ? (\n <CheckOutlined style={{ color: 'var(--color-primary)', ...props.iconStyle }} />\n ) : props.icon ? (\n <Fragment>{props.icon}</Fragment>\n ) : (\n <CopyOutlined style={{ color: 'var(--color-primary)', ...props.iconStyle }} />\n )\n }\n size=\"small\"\n onClick={onClick}\n />\n );\n }\n\n return (\n <Flex align=\"center\" gap={5} style={{ alignItems: 'center' }}>\n {props.iconPosition !== 'left' ? <div>{props.text}</div> : null}\n <IconWrapper\n hoverTips={hoverTips}\n wrapperStyle={{ display: 'inline-flex' }}\n text={\n trigger ? (\n <CheckOutlined style={{ color: 'var(--color-primary)', ...props.iconStyle }} />\n ) : props.icon ? (\n <Fragment>{props.icon}</Fragment>\n ) : (\n <CopyOutlined style={{ color: 'var(--color-primary)', ...props.iconStyle }} />\n )\n }\n size=\"small\"\n onClick={onClick}\n />\n {props.iconPosition === 'left' ? <div>{props.text}</div> : null}\n </Flex>\n );\n};\n\nCopyWrapper.copy = (text: string) => {\n copy(text);\n};\n"],"names":["CopyWrapper","props","_useState","useState","trigger","setTrigger","onClick","copyText","copy","copyAfterMsg","message","success","useEffect","setTimeout","hoverTips","useMemo","hiddenTips","undefined","text","_jsx","IconWrapper","wrapperStyle","display","_CheckOutlined","style","_extends","color","iconStyle","icon","Fragment","children","_CopyOutlined","size","_jsxs","Flex","align","gap","alignItems","iconPosition"],"mappings":";wfA+BaA,EAAc,SAAdA,EAAeC,GAC1B,IAAAC,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAE1B,IAAMI,EAAU,SAAVA,IACJ,GAAIF,EAAS,OACbC,EAAW,MACX,IAAME,SAAkBN,EAAMM,WAAa,WAAaN,EAAMM,WAAaN,EAAMM,SACjFC,EAAKD,GACL,GAAIN,EAAMQ,aAAc,MACjBC,EAAQC,QAAQV,EAAMQ,aAC7B,GAGFG,GAAU,WACR,GAAIR,EAAS,CACXS,YAAW,WACTR,EAAW,MACZ,GAAE,IACL,CACF,GAAG,CAACD,IAEJ,IAAMU,EAAYC,GAAQ,WACxB,GAAId,EAAMe,WAAY,OAAOC,UAC7B,UAAWhB,EAAMa,YAAc,WAAY,CACzC,OAAOb,EAAMa,UAAUV,EACzB,CACA,GAAIH,EAAMa,UAAW,OAAOb,EAAMa,UAClC,MAAO,IACT,GAAG,CAACb,EAAOG,IAEX,IAAKH,EAAMiB,KAAM,CACf,OACEC,EAACC,EAAW,CACVN,UAAWA,EACXO,aAAc,CAAEC,QAAS,eACzBJ,KACEd,EACEe,EAAAI,EAAA,CAAeC,MAAKC,EAAA,CAAIC,MAAO,wBAA2BzB,EAAM0B,aAC9D1B,EAAM2B,KACRT,EAACU,EAAQ,CAAAC,SAAE7B,EAAM2B,OAEjBT,EAAAY,EAAA,CAAcP,MAAKC,EAAA,CAAIC,MAAO,wBAA2BzB,EAAM0B,aAGnEK,KAAK,QACL1B,QAASA,GAGf,CAEA,OACE2B,EAACC,EAAI,CAACC,MAAM,SAASC,IAAK,EAAGZ,MAAO,CAAEa,WAAY,UAAWP,UAC1D7B,EAAMqC,eAAiB,OAASnB,EAAA,MAAA,CAAAW,SAAM7B,EAAMiB,OAAc,KAC3DC,EAACC,EAAW,CACVN,UAAWA,EACXO,aAAc,CAAEC,QAAS,eACzBJ,KACEd,EACEe,EAAAI,EAAA,CAAeC,MAAKC,EAAA,CAAIC,MAAO,wBAA2BzB,EAAM0B,aAC9D1B,EAAM2B,KACRT,EAACU,EAAQ,CAAAC,SAAE7B,EAAM2B,OAEjBT,EAAAY,EAAA,CAAcP,MAAKC,EAAA,CAAIC,MAAO,wBAA2BzB,EAAM0B,aAGnEK,KAAK,QACL1B,QAASA,IAEVL,EAAMqC,eAAiB,OAASnB,EAAA,MAAA,CAAAW,SAAM7B,EAAMiB,OAAc,OAGjE,EAEAlB,EAAYQ,KAAO,SAACU,GAClBV,EAAKU,EACP"}
@@ -25,5 +25,5 @@ import './../input-text-area-wrapper/index.css';
25
25
  import './../icon-wrapper/index.css';
26
26
  import './index.css';
27
27
  /*! @flatjs/forge MIT @flatbiz/antd */
28
- import{a as i,_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{useSensors as r,useSensor as o,PointerSensor as t,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as s}from"@dnd-kit/modifiers";import{useSortable as a,SortableContext as d,verticalListSortingStrategy as m,arrayMove as p}from"@dnd-kit/sortable";import{Form as l}from"antd";import{EditableTable as c}from"../editable-table/index.js";import{createCtx as u}from"@wove/react/cjs/create-ctx";import j from"@ant-design/icons/es/icons/DragOutlined";import{CSS as g}from"@dnd-kit/utilities";import{isUndefinedOrNull as v,noop as f}from"@flatbiz/utils";import{createElement as x,Children as y,cloneElement as b}from"react";import{IconWrapper as w}from"../icon-wrapper/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/utils/cjs/class-names";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../index-83bede1b.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"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"../text-symbol-wrapper/index.js";import"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../form-item-hidden/index.js";import"../table-cell-render/index.js";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../tag-list-render/index.js";import"../date-picker-wrapper/index.js";import"../time-53b3f55f.js";import"../date-range-picker-wrapper/index.js";import"../input-wrapper/index.js";import"../selector-wrapper/index.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"../switch-wrapper/index.js";import"@dimjs/lang/cjs/is-boolean";import"@dimjs/lang/cjs/is-number";import"../input-text-area-wrapper/index.js";import"../upload-wrapper/index.js";import"react-dom";import"@ant-design/icons/es/icons/DeleteOutlined";var k=u(),I=k[0],C=k[1];var _=["dragIcon"];var D=function r(o){var t=o.dragIcon,n=i(o,_);var s=n["data-row-key"];var d=a({id:s}),m=d.setActivatorNodeRef,p=d.listeners,l=d.setNodeRef,c=d.transform,u=d.transition,k=d.isDragging;if(v(s)){return h("tr",e({},n))}var I=e({},n.style,{transform:g.Transform.toString(c&&e({},c,{scaleY:1})),transition:u,cursor:"move"},k?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var C=t||h(j,{});return x("tr",e({},n,{ref:l,style:I,key:s}),y.map(o.children,(function(i){if(i.key==="__sort"){return b(i,{children:h("span",e({ref:m,style:{touchAction:"none",cursor:"move",display:"flex",alignItems:"center",justifyContent:"center"}},p,{children:h(w,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:C,onClick:f,size:"small"})}))})}return i})))};var F=function i(r){var o=I();return h(D,e({},r,{dragIcon:o.dragIcon}))};var O=["dragIcon","uidFieldKey","onDragChange","disabledDrag"];var N=function a(u){var j,g;var v=u.dragIcon,f=u.uidFieldKey,x=u.onDragChange,y=u.disabledDrag,b=i(u,O);var w=l.useFormInstance();var k=l.useWatch(u.completeName?u.completeName:u.name,w);var I=r(o(t,{activationConstraint:{delay:0,tolerance:0}}));var _=function i(e){var r=e.active,o=e.over;if(r.id!==(o==null?void 0:o.id)){var t=k.findIndex((function(i){return i[f]===r.id}));var n=k.findIndex((function(i){return i[f]===(o==null?void 0:o.id)}));var s=p(k,t,n);w.setFields([{name:u.completeName?u.completeName:u.name,value:s}]);x==null||x(s,{activeId:r.id,overId:o==null?void 0:o.id,activeIndex:t,overIndex:n})}};var D=y?b.columns:[{dataIndex:"__sort",width:40,key:"__sort",align:"center"}].concat(b.columns||[]);return h(C,{value:{dragIcon:v,uidFieldKey:f},children:h(n,{sensors:I,modifiers:[s],onDragEnd:_,children:h(d,{items:(k==null?void 0:k.map((function(i){return i[f]})))||[],strategy:m,children:h(c,e({},b,{uidFieldKey:f,columns:D,tableProps:e({},b.tableProps,{components:e({},(j=b.tableProps)==null?void 0:j.components,{body:e({},(g=b.tableProps)==null||(g=g.components)==null?void 0:g.body,{row:y?undefined:F})})})}))})})})};export{N as DragEditableTable};
28
+ import{a as i,_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{useSensors as r,useSensor as o,PointerSensor as t,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as s}from"@dnd-kit/modifiers";import{useSortable as a,SortableContext as d,verticalListSortingStrategy as m,arrayMove as p}from"@dnd-kit/sortable";import{Form as l}from"antd";import{EditableTable as c}from"../editable-table/index.js";import{createCtx as u}from"@wove/react/cjs/create-ctx";import j from"@ant-design/icons/es/icons/DragOutlined";import{CSS as g}from"@dnd-kit/utilities";import{isUndefinedOrNull as v,noop as x}from"@flatbiz/utils";import{createElement as f,Children as y,cloneElement as b}from"react";import{IconWrapper as w}from"../icon-wrapper/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/utils/cjs/class-names";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../index-83bede1b.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"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"../text-symbol-wrapper/index.js";import"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../form-item-hidden/index.js";import"../table-cell-render/index.js";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../tag-list-render/index.js";import"../date-picker-wrapper/index.js";import"../time-53b3f55f.js";import"../date-range-picker-wrapper/index.js";import"../input-wrapper/index.js";import"../selector-wrapper/index.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../index-636a568e.js";import"../request-status/index.js";import"../text-overflow/index.js";import"@ant-design/icons/es/icons/SyncOutlined";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"../switch-wrapper/index.js";import"@dimjs/lang/cjs/is-boolean";import"@dimjs/lang/cjs/is-number";import"../input-text-area-wrapper/index.js";import"../upload-wrapper/index.js";import"react-dom";import"@ant-design/icons/es/icons/DeleteOutlined";var k=u(),I=k[0],C=k[1];var _=["dragIcon"];var D=function r(o){var t=o.dragIcon,n=i(o,_);var s=n["data-row-key"];var d=a({id:s}),m=d.setActivatorNodeRef,p=d.listeners,l=d.setNodeRef,c=d.transform,u=d.transition,k=d.isDragging;if(v(s)){return h("tr",e({},n))}var I=e({},n.style,{transform:g.Transform.toString(c&&e({},c,{scaleY:1})),transition:u,cursor:"move"},k?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var C=t||h(j,{});return f("tr",e({},n,{ref:l,style:I,key:s}),y.map(o.children,(function(i){if(i.key==="__sort"){return b(i,{children:h("span",e({ref:m,style:{touchAction:"none",cursor:"move",display:"flex",alignItems:"center",justifyContent:"center"}},p,{children:h(w,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:C,onClick:x,size:"small"})}))})}return i})))};var F=function i(r){var o=I();return h(D,e({},r,{dragIcon:o.dragIcon}))};var O=["dragIcon","uidFieldKey","onDragChange","disabledDrag"];var N=function a(u){var j,g;var v=u.dragIcon,x=u.uidFieldKey,f=u.onDragChange,y=u.disabledDrag,b=i(u,O);var w=l.useFormInstance();var k=l.useWatch(u.completeName?u.completeName:u.name,w);var I=r(o(t,{activationConstraint:{delay:0,tolerance:0}}));var _=function i(e){var r=e.active,o=e.over;if(r.id!==(o==null?void 0:o.id)){var t=k.findIndex((function(i){return i[x]===r.id}));var n=k.findIndex((function(i){return i[x]===(o==null?void 0:o.id)}));var s=p(k,t,n);w.setFields([{name:u.completeName?u.completeName:u.name,value:s}]);f==null||f(s,{activeId:r.id,overId:o==null?void 0:o.id,activeIndex:t,overIndex:n})}};var D=y?b.columns:[{dataIndex:"__sort",width:40,key:"__sort",align:"center"}].concat(b.columns||[]);return h(C,{value:{dragIcon:v,uidFieldKey:x},children:h(n,{sensors:I,modifiers:[s],onDragEnd:_,children:h(d,{items:(k==null?void 0:k.map((function(i){return i[x]})))||[],strategy:m,children:h(c,e({},b,{uidFieldKey:x,columns:D,tableProps:e({},b.tableProps,{components:e({},(j=b.tableProps)==null?void 0:j.components,{body:e({},(g=b.tableProps)==null||(g=g.components)==null?void 0:g.body,{row:y?undefined:F})})})}))})})})};export{N as DragEditableTable};
29
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-editable-table/context.ts","@flatbiz/antd/src/drag-editable-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-editable-table/row.tsx","@flatbiz/antd/src/drag-editable-table/drag.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: ReactElement;\n uidFieldKey: string;\n}>();\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { isUndefinedOrNull, noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\n\ntype TableTrHandleProps = RowProps & {\n dragIcon?: ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'] as number;\n\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (isUndefinedOrNull(rowId)) {\n return <tr {...innerProps} />;\n }\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = dragIcon || <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style} key={rowId}>\n {Children.map(props.children, (child) => {\n if ((child as React.ReactElement).key === '__sort') {\n return cloneElement(child as React.ReactElement, {\n children: (\n <span\n ref={setActivatorNodeRef}\n style={{\n touchAction: 'none',\n cursor: 'move',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n {...listeners}\n >\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '1px 0px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n size=\"small\"\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return <TableTrHandle {...props} dragIcon={ctx.dragIcon} />;\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { type TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { type ReactElement } from 'react';\nimport { EditableTable, EditableTableColumn, EditableTableProps } from '../editable-table';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\nexport type DragEditableTableProps = EditableTableProps & {\n /**\n * 拖拽图标自定义,默认使用 DragOutlined 图标\n */\n dragIcon?: ReactElement;\n\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 表格数据唯一值字段Key\n * ```\n * ```\n */\n uidFieldKey: string;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n overId?: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽编辑表格\n * @deprecated 已过期,请使用 DragEditableTablePro组件\n * ```\n * 1. 表格数据必须要有唯一值字段,通过参数 uidFieldKey 告诉组件\n * 2. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragEditableTable = (props: DragEditableTableProps) => {\n const { dragIcon, uidFieldKey, onDragChange, disabledDrag, ...otherProps } = props;\n const form = Form.useFormInstance();\n const dataList = Form.useWatch(props.completeName ? props.completeName : props.name, form);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: 0,\n tolerance: 0,\n },\n }),\n );\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n form.setFields([\n {\n name: props.completeName ? props.completeName : props.name,\n value: dataListNew,\n },\n ]);\n onDragChange?.(dataListNew as TPlainObject[], {\n activeId: active.id,\n overId: over?.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columns: EditableTableColumn[] = disabledDrag\n ? otherProps.columns\n : [{ dataIndex: '__sort', width: 40, key: '__sort', align: 'center' } as EditableTableColumn].concat(\n otherProps.columns || [],\n );\n\n return (\n <CtxProvider\n value={{\n dragIcon,\n uidFieldKey,\n }}\n >\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataList?.map((i) => i[uidFieldKey]) || []}\n strategy={verticalListSortingStrategy}\n >\n <EditableTable\n {...otherProps}\n uidFieldKey={uidFieldKey}\n columns={columns}\n tableProps={{\n ...otherProps.tableProps,\n components: {\n ...otherProps.tableProps?.components,\n body: {\n ...otherProps.tableProps?.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n },\n }}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTrHandle","props","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","_useSortable","useSortable","id","setActivatorNodeRef","listeners","setNodeRef","transform","transition","isDragging","isUndefinedOrNull","_jsx","_extends","style","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","backgroundColor","iconElement","_DragOutlined","_createElement","ref","key","Children","map","children","child","cloneElement","touchAction","display","alignItems","justifyContent","IconWrapper","padding","margin","color","icon","onClick","noop","size","Row","ctx","DragEditableTable","_otherProps$tableProp","_otherProps$tableProp2","uidFieldKey","onDragChange","disabledDrag","otherProps","form","Form","useFormInstance","dataList","useWatch","completeName","name","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","setFields","value","activeId","overId","columns","dataIndex","width","align","concat","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","EditableTable","tableProps","components","body","row","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-editable-table/context.ts","@flatbiz/antd/src/drag-editable-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-editable-table/row.tsx","@flatbiz/antd/src/drag-editable-table/drag.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: ReactElement;\n uidFieldKey: string;\n}>();\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { isUndefinedOrNull, noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\n\ntype TableTrHandleProps = RowProps & {\n dragIcon?: ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'] as number;\n\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (isUndefinedOrNull(rowId)) {\n return <tr {...innerProps} />;\n }\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = dragIcon || <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style} key={rowId}>\n {Children.map(props.children, (child) => {\n if ((child as React.ReactElement).key === '__sort') {\n return cloneElement(child as React.ReactElement, {\n children: (\n <span\n ref={setActivatorNodeRef}\n style={{\n touchAction: 'none',\n cursor: 'move',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n {...listeners}\n >\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '1px 0px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n size=\"small\"\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return <TableTrHandle {...props} dragIcon={ctx.dragIcon} />;\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { type TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { type ReactElement } from 'react';\nimport { EditableTable, EditableTableColumn, EditableTableProps } from '../editable-table';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\nexport type DragEditableTableProps = EditableTableProps & {\n /**\n * 拖拽图标自定义,默认使用 DragOutlined 图标\n */\n dragIcon?: ReactElement;\n\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 表格数据唯一值字段Key\n * ```\n * ```\n */\n uidFieldKey: string;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n overId?: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽编辑表格\n * @deprecated 已过期,请使用 DragEditableTablePro组件\n * ```\n * 1. 表格数据必须要有唯一值字段,通过参数 uidFieldKey 告诉组件\n * 2. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragEditableTable = (props: DragEditableTableProps) => {\n const { dragIcon, uidFieldKey, onDragChange, disabledDrag, ...otherProps } = props;\n const form = Form.useFormInstance();\n const dataList = Form.useWatch(props.completeName ? props.completeName : props.name, form);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: 0,\n tolerance: 0,\n },\n }),\n );\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n form.setFields([\n {\n name: props.completeName ? props.completeName : props.name,\n value: dataListNew,\n },\n ]);\n onDragChange?.(dataListNew as TPlainObject[], {\n activeId: active.id,\n overId: over?.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columns: EditableTableColumn[] = disabledDrag\n ? otherProps.columns\n : [{ dataIndex: '__sort', width: 40, key: '__sort', align: 'center' } as EditableTableColumn].concat(\n otherProps.columns || [],\n );\n\n return (\n <CtxProvider\n value={{\n dragIcon,\n uidFieldKey,\n }}\n >\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataList?.map((i) => i[uidFieldKey]) || []}\n strategy={verticalListSortingStrategy}\n >\n <EditableTable\n {...otherProps}\n uidFieldKey={uidFieldKey}\n columns={columns}\n tableProps={{\n ...otherProps.tableProps,\n components: {\n ...otherProps.tableProps?.components,\n body: {\n ...otherProps.tableProps?.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n },\n }}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTrHandle","props","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","_useSortable","useSortable","id","setActivatorNodeRef","listeners","setNodeRef","transform","transition","isDragging","isUndefinedOrNull","_jsx","_extends","style","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","backgroundColor","iconElement","_DragOutlined","_createElement","ref","key","Children","map","children","child","cloneElement","touchAction","display","alignItems","justifyContent","IconWrapper","padding","margin","color","icon","onClick","noop","size","Row","ctx","DragEditableTable","_otherProps$tableProp","_otherProps$tableProp2","uidFieldKey","onDragChange","disabledDrag","otherProps","form","Form","useFormInstance","dataList","useWatch","completeName","name","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","setFields","value","activeId","overId","columns","dataIndex","width","align","concat","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","EditableTable","tableProps","components","body","row","undefined"],"mappings":"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"}
@@ -23,5 +23,5 @@ import './../input-wrapper/index.css';
23
23
  import './../input-text-area-wrapper/index.css';
24
24
  import './index.css';
25
25
  /*! @flatjs/forge MIT @flatbiz/antd */
26
- import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{arrayField2LabelValue as a,toArray as t,isUndefinedOrNull as l}from"@flatbiz/utils";import{Form as o,Checkbox as d,InputNumber as m,Radio as u,Tag as s,Space as c,Button as p,message as f,Table as v}from"antd";import{useMemo as g,useState as b,useEffect as h,Fragment as C,useRef as x,isValidElement as w}from"react";import{ButtonWrapper as j}from"../button-wrapper/index.js";import{TextSymbolWrapper as I}from"../text-symbol-wrapper/index.js";import{TipsWrapper as y}from"../tips-wrapper/index.js";import{isArray as N}from"@dimjs/lang/cjs/is-array";import{FormItemHidden as R}from"../form-item-hidden/index.js";import{extend as k}from"@dimjs/utils/cjs/extend";import{hooks as F}from"@wove/react/cjs/hooks";import{tableCellRender as P}from"../table-cell-render/index.js";import{jsx as L,jsxs as T,Fragment as V}from"react/jsx-runtime";import{DatePickerWrapper as _}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as O}from"../date-range-picker-wrapper/index.js";import{InputWrapper as A}from"../input-wrapper/index.js";import{SelectorWrapper as S}from"../selector-wrapper/index.js";import{SwitchWrapper as K}from"../switch-wrapper/index.js";import{isBoolean as W}from"@dimjs/lang/cjs/is-boolean";import{isNumber as B}from"@dimjs/lang/cjs/is-number";import{isString as D}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as E}from"../input-text-area-wrapper/index.js";import{UploadWrapper as q}from"../upload-wrapper/index.js";import z from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-83bede1b.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"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";import"../fba-utils/index.js";import"@dimjs/model";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../tag-list-render/index.js";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var G=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var M=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var m=g((function(){return o.options||[]}),[o.options]);var u=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e);o.onChange==null||o.onChange(e)}));if(t){return L(d.Group,r({},o,{value:n.value,onChange:u}))}return L("span",{className:"editable-checkbox-group-view",children:l?l(n.value,m):P.selectorCell(m)(n.value)})};var Y=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-checkbox-group-form-item",a==null?void 0:a.className),children:L(M,r({},i))}))};var H=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-date-picker-wraper-form-item",t==null?void 0:t.className),children:L(_,r({allowClear:true},l.editableComptProps))}))};var J=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e);o==null||o.onChange==null||o.onChange(e)}));var m=g((function(){var e=N(n.value)?n.value:[];if(t)return undefined;return e.join("~")}),[t,n.value]);if(t){return L(O,r({allowClear:true},o,{value:n.value,onChange:d}))}return L("span",{className:"editable-date-range-picker-view",children:l?l(n.value):m})};var Q=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:L(J,r({},i))}))};var U=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(A,r({allowClear:true},t.editableComptProps))}))};var $=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-input-number-form-item",t==null?void 0:t.className),children:L(m,r({},l.editableComptProps))}))};var X=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=g((function(){return o.options||[]}),[o.options]);var m=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e.target.value);o.onChange==null||o.onChange(e)}));if(t){return L(u.Group,r({},o,{value:n.value,onChange:m}))}return L("span",{className:"editable-radio-group-view",children:l?l(n.value,d):P.selectorCell(d)(n.value)})};var Z=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-radio-group-form-item",a==null?void 0:a.className),children:L(X,r({},i))}))};var ee=function e(n){var i=n.fieldConfig,t=i.editableConfig,l=i.editable,o=i.render;var d=t.editableComptProps;var m=b([]),u=m[0],c=m[1];var p=b([]),f=p[0],v=p[1];h((function(){if(!l){var e=N(n.value)?n.value:n.value===undefined?[]:[n.value];if(u.length===0){v(e.map((function(e){return{label:e,value:e}})))}var r=[];e.forEach((function(e){var n=u.find((function(n){return n.value===e}));r.push(n?n:{label:String(e),value:e})}));v(r)}}),[l,d.fieldNames,n.value,u]);var g=F.useCallbackRef((function(e){c(a(e||[],d.fieldNames))}));var x=F.useCallbackRef((function(e,r){n.onChange==null||n.onChange(e);d.onChange==null||d.onChange(e,r)}));if(l){return L(S,r({},d,{value:n.value,onChange:x,onSelectorListAllChange:g}))}return T(C,{children:[L("div",{style:{display:"none"},children:L(S,r({},d,{onSelectorListAllChange:g}))}),L("span",{className:"editable-selector-view",children:o?o(n.value,u):f.map((function(e,n){return L(s,{color:"geekblue",children:e.label},n)}))})]})};var ne=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:L(ee,r({},i))}))};var re=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e);o==null||o.onChange==null||o.onChange(e)}));var m=g((function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}}),[o.checkedChildren,o.unCheckedChildren]);if(t){return L(K,r({},o,{value:n.value,onChange:d}))}if(l){return L("span",{className:"editable-switch-wrapper-view",children:l(n.value)})}return L("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==n.value?L(s,{color:"geekblue",style:{marginRight:0},children:m.checkedText}):L(s,{style:{marginRight:0},children:m.unCheckedText})})};var ie=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-switch-wrapper-form-item",a==null?void 0:a.className),children:L(re,r({},i))}))};var ae=function e(n){var r,i;var a=g((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=D(n.value)||B(n.value)||W(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var t=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return L("span",{children:t})};var te=function e(n){return L(o.Item,{noStyle:true,name:n.name,children:L(ae,{name:n.name,fieldConfig:n.fieldConfig})})};var le=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(E,r({},t.editableComptProps))}))};var oe=["children"];var de=function e(n){var a=n.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=i(d,oe);if(o){return L(q,r({listType:"text"},u,{value:n.value,onChange:n.onChange,children:m}))}return L("div",{className:"upload-wrapper-selector-view",children:l?l(n.value):L(q,r({listType:"text"},u,{value:n.value,disabled:true}))})};var me=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:L(de,r({},i))}))};var ue=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable;var l=G(t,n.tableRowIndex);var o=k({},n.fieldConfig,{editable:l});var d={name:n.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return L(U,r({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return L($,r({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return L(le,r({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return L(H,r({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return L(Q,r({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return L(ne,r({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return L(Y,r({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return L(Z,r({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return L(me,r({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return L(ie,r({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:n.name,editable:l,completeName:n.completeName,tableRowIndex:n.tableRowIndex})}return L(te,r({},d))};var se=function e(r){var i=o.useFormInstance();var a=r.formListConfig,t=a.onFormListBeforeRender,l=a.editableConfigList,d=a.onFormListAfterRender,m=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,s=a.deleteOperateRender;return L(o.List,{name:r.name,children:function e(a,o){var p=o.add,f=o.remove;return T(V,{children:[t?t({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null,a.map((function(e,a){var t=l.find((function(e){return G(e.editable,r.tableRowIndex)}));var o=n("editable-inner-formlist-item","editable-inner-formlist-item-"+r.name[1],{"editable-inner-formlist-item_preview":!t});return T("div",{className:o,children:[m==null?void 0:m({add:p,remove:function e(){f(a)},formListItemIndex:a,tableRowIndex:r.tableRowIndex,get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}}),T(c,{children:[l.map((function(n,i){return L(ue,{name:[e.name,n.fieldName],fieldConfig:n,tableRowIndex:r.tableRowIndex,completeName:[].concat(r.completeName,[e.name])},i)})),t?L(ce,{deleteOperateRender:s,remove:function e(){f(a)},index:a}):undefined]}),u==null?void 0:u({add:p,formListItemIndex:a,tableRowIndex:r.tableRowIndex,remove:function e(){f(a)},get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}})]},a)})),d?d({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null]})}})};var ce=function e(n){return L(o.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):L(p,{type:"link",danger:true,icon:L(z,{}),onClick:n.remove,children:"删除"})})};var pe=function e(n){if(n.fieldConfig){if(N(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return L(se,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{var i;return T(C,{children:[L(ue,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),(i=n.hiddenFieldList)==null?void 0:i.map((function(e,r){return L(R,{name:[n.tableRowIndex].concat(t(e.dataIndex))},r)}))]})}}return L(te,{name:n.name})};var fe=["fieldConfig","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align"];var ve=function a(d){var m=o.useFormInstance();var u=x([]);var s=g((function(){var e=d.columns.find((function(e){return e["dataIndex"]===d.uidFieldKey}));return!!e}),[d.columns,d.uidFieldKey]);var c=g((function(){if(!d.columns)return[];return d.columns.map((function(e){var n=e.fieldConfig,a=e.renderMiddleware,l=e.tableChildrenColumnRender,o=e.title,u=e.tipsWrapperProps,c=e.required,p=e.align,f=i(e,fe);var v=w(o)||typeof o==="string";var g;if(u&&v){if(typeof u==="string"){g=L(y,{tipType:"popover",popoverProps:{content:u},children:o})}else{g=L(y,r({},u,{children:o}))}}else{g=o}return r({title:c?L(I,{style:{marginLeft:p==="center"?undefined:10},text:g,position:"before",symbolType:"required"}):g,onCell:function e(){var n;return{valign:((n=d.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},f,{render:function r(i,o,u){if(o["_isChildrenItem"]){if(l){return l(i,o,u)}return i}var c=[].concat(t(d.name),[o.name]);var p=e.dataIndex?[].concat(c,[e.dataIndex]):c;var f=a==null?void 0:a({name:p,tableRowIndex:o.name,operation:o.operation,tableRowName:c,index:u,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}});if(f){return f}var v=typeof n==="function"?n({name:p,tableRowIndex:o.name,tableRowName:c,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}}):n;var g=t(e.hiddenField);if(!s&&u===0){g=g.concat([{dataIndex:d.uidFieldKey}])}return L(pe,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:p,fieldConfig:v,tableRowIndex:o.name,hiddenFieldList:g})}})}))}),[d.columns,d.tableProps,d.name,d.completeName,d.uidFieldKey,s,m]);var p=o.useWatch(d.completeName?d.completeName:d.name,m);h((function(){var e=t(d.name);if(/^\d+$/.test(""+(e==null?void 0:e[0]))&&d.completeName===undefined){void f.error("当前Editable处在FormList内部,必须赋值completeName参数")}}),[d.completeName,d.name]);return L("div",{className:n("editable-table",{"et-empty-show-large":d.emptyShowSize==="large"},d.className),style:d.style,children:L(o.List,{name:d.name,rules:d.rules,children:function n(i,a,s){var f=s.errors;u.current=i;return T("div",{style:{borderRadius:"6px",border:f!=null&&f.length?"1px solid #ff4d4f":"1px solid transparent"},children:[d.onTableBeforeRender?d.onTableBeforeRender(a,i.length):null,L(v,r({scroll:{x:"max-content"},pagination:false,size:"small"},d.tableProps,{rowKey:function e(n){var r;var i=d.completeName||[];var a=t(d.name);var o=i.length?i:a;var u;if(n["_isChildrenItem"]){u=m.getFieldValue([].concat(o,[n["_parentIndex"],"children",n["_index"]]))}else{u=m.getFieldValue([].concat(o,[n["_index"]]))}var s=(r=u)==null?void 0:r[d.uidFieldKey];if(l(s)){console.warn("EditableTable 通过入参uidFieldKey:"+d.uidFieldKey+",未获取到表格行唯一值数据")}return s},dataSource:i.map((function(e,n){var i;var t=p==null||(i=p[e.name])==null?void 0:i.children;if(t){t.forEach((function(e,r){e["_isChildrenItem"]=true;e["_parentIndex"]=n;e["_index"]=r}))}return r({},e,{_index:n,operation:a,children:t})})),columns:c})),d.onTableAfterRender?d.onTableAfterRender(a,i.length):L(j,{type:"dashed",hidden:d.hiddenFooterBtn,onClick:function e(){return a.add(d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues())},block:true,icon:L(e,{}),style:{marginTop:15},children:"新增"}),L(o.ErrorList,{errors:f.length?[L("div",{style:{color:"#ff4d4f",padding:"5px"},children:f},"0")]:undefined})]})}})})};export{ve as EditableTable};
26
+ import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{arrayField2LabelValue as a,toArray as t,isUndefinedOrNull as l}from"@flatbiz/utils";import{Form as o,Checkbox as d,InputNumber as m,Radio as u,Tag as s,Space as c,Button as p,message as f,Table as v}from"antd";import{useMemo as g,useState as b,useEffect as h,Fragment as C,useRef as x,isValidElement as w}from"react";import{ButtonWrapper as j}from"../button-wrapper/index.js";import{TextSymbolWrapper as I}from"../text-symbol-wrapper/index.js";import{TipsWrapper as y}from"../tips-wrapper/index.js";import{isArray as N}from"@dimjs/lang/cjs/is-array";import{FormItemHidden as R}from"../form-item-hidden/index.js";import{extend as k}from"@dimjs/utils/cjs/extend";import{hooks as F}from"@wove/react/cjs/hooks";import{tableCellRender as P}from"../table-cell-render/index.js";import{jsx as L,jsxs as T,Fragment as V}from"react/jsx-runtime";import{DatePickerWrapper as _}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as O}from"../date-range-picker-wrapper/index.js";import{InputWrapper as A}from"../input-wrapper/index.js";import{SelectorWrapper as S}from"../selector-wrapper/index.js";import{SwitchWrapper as K}from"../switch-wrapper/index.js";import{isBoolean as W}from"@dimjs/lang/cjs/is-boolean";import{isNumber as B}from"@dimjs/lang/cjs/is-number";import{isString as D}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as E}from"../input-text-area-wrapper/index.js";import{UploadWrapper as q}from"../upload-wrapper/index.js";import z from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-83bede1b.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"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";import"../fba-utils/index.js";import"@dimjs/model";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../tag-list-render/index.js";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../index-636a568e.js";import"../request-status/index.js";import"../text-overflow/index.js";import"@ant-design/icons/es/icons/SyncOutlined";import"../icon-wrapper/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var G=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var M=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var m=g((function(){return o.options||[]}),[o.options]);var u=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e);o.onChange==null||o.onChange(e)}));if(t){return L(d.Group,r({},o,{value:n.value,onChange:u}))}return L("span",{className:"editable-checkbox-group-view",children:l?l(n.value,m):P.selectorCell(m)(n.value)})};var Y=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-checkbox-group-form-item",a==null?void 0:a.className),children:L(M,r({},i))}))};var H=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-date-picker-wraper-form-item",t==null?void 0:t.className),children:L(_,r({allowClear:true},l.editableComptProps))}))};var J=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e);o==null||o.onChange==null||o.onChange(e)}));var m=g((function(){var e=N(n.value)?n.value:[];if(t)return undefined;return e.join("~")}),[t,n.value]);if(t){return L(O,r({allowClear:true},o,{value:n.value,onChange:d}))}return L("span",{className:"editable-date-range-picker-view",children:l?l(n.value):m})};var Q=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:L(J,r({},i))}))};var U=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(A,r({allowClear:true},t.editableComptProps))}))};var $=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-input-number-form-item",t==null?void 0:t.className),children:L(m,r({},l.editableComptProps))}))};var X=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=g((function(){return o.options||[]}),[o.options]);var m=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e.target.value);o.onChange==null||o.onChange(e)}));if(t){return L(u.Group,r({},o,{value:n.value,onChange:m}))}return L("span",{className:"editable-radio-group-view",children:l?l(n.value,d):P.selectorCell(d)(n.value)})};var Z=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-radio-group-form-item",a==null?void 0:a.className),children:L(X,r({},i))}))};var ee=function e(n){var i=n.fieldConfig,t=i.editableConfig,l=i.editable,o=i.render;var d=t.editableComptProps;var m=b([]),u=m[0],c=m[1];var p=b([]),f=p[0],v=p[1];h((function(){if(!l){var e=N(n.value)?n.value:n.value===undefined?[]:[n.value];if(u.length===0){v(e.map((function(e){return{label:e,value:e}})))}var r=[];e.forEach((function(e){var n=u.find((function(n){return n.value===e}));r.push(n?n:{label:String(e),value:e})}));v(r)}}),[l,d.fieldNames,n.value,u]);var g=F.useCallbackRef((function(e){c(a(e||[],d.fieldNames))}));var x=F.useCallbackRef((function(e,r){n.onChange==null||n.onChange(e);d.onChange==null||d.onChange(e,r)}));if(l){return L(S,r({},d,{value:n.value,onChange:x,onSelectorListAllChange:g}))}return T(C,{children:[L("div",{style:{display:"none"},children:L(S,r({},d,{onSelectorListAllChange:g}))}),L("span",{className:"editable-selector-view",children:o?o(n.value,u):f.map((function(e,n){return L(s,{color:"geekblue",children:e.label},n)}))})]})};var ne=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:L(ee,r({},i))}))};var re=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null||n.onChange(e);o==null||o.onChange==null||o.onChange(e)}));var m=g((function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}}),[o.checkedChildren,o.unCheckedChildren]);if(t){return L(K,r({},o,{value:n.value,onChange:d}))}if(l){return L("span",{className:"editable-switch-wrapper-view",children:l(n.value)})}return L("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==n.value?L(s,{color:"geekblue",style:{marginRight:0},children:m.checkedText}):L(s,{style:{marginRight:0},children:m.unCheckedText})})};var ie=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-switch-wrapper-form-item",a==null?void 0:a.className),children:L(re,r({},i))}))};var ae=function e(n){var r,i;var a=g((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=D(n.value)||B(n.value)||W(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var t=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return L("span",{children:t})};var te=function e(n){return L(o.Item,{noStyle:true,name:n.name,children:L(ae,{name:n.name,fieldConfig:n.fieldConfig})})};var le=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(E,r({},t.editableComptProps))}))};var oe=["children"];var de=function e(n){var a=n.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=i(d,oe);if(o){return L(q,r({listType:"text"},u,{value:n.value,onChange:n.onChange,children:m}))}return L("div",{className:"upload-wrapper-selector-view",children:l?l(n.value):L(q,r({listType:"text"},u,{value:n.value,disabled:true}))})};var me=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:L(de,r({},i))}))};var ue=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable;var l=G(t,n.tableRowIndex);var o=k({},n.fieldConfig,{editable:l});var d={name:n.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return L(U,r({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return L($,r({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return L(le,r({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return L(H,r({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return L(Q,r({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return L(ne,r({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return L(Y,r({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return L(Z,r({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return L(me,r({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return L(ie,r({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:n.name,editable:l,completeName:n.completeName,tableRowIndex:n.tableRowIndex})}return L(te,r({},d))};var se=function e(r){var i=o.useFormInstance();var a=r.formListConfig,t=a.onFormListBeforeRender,l=a.editableConfigList,d=a.onFormListAfterRender,m=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,s=a.deleteOperateRender;return L(o.List,{name:r.name,children:function e(a,o){var p=o.add,f=o.remove;return T(V,{children:[t?t({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null,a.map((function(e,a){var t=l.find((function(e){return G(e.editable,r.tableRowIndex)}));var o=n("editable-inner-formlist-item","editable-inner-formlist-item-"+r.name[1],{"editable-inner-formlist-item_preview":!t});return T("div",{className:o,children:[m==null?void 0:m({add:p,remove:function e(){f(a)},formListItemIndex:a,tableRowIndex:r.tableRowIndex,get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}}),T(c,{children:[l.map((function(n,i){return L(ue,{name:[e.name,n.fieldName],fieldConfig:n,tableRowIndex:r.tableRowIndex,completeName:[].concat(r.completeName,[e.name])},i)})),t?L(ce,{deleteOperateRender:s,remove:function e(){f(a)},index:a}):undefined]}),u==null?void 0:u({add:p,formListItemIndex:a,tableRowIndex:r.tableRowIndex,remove:function e(){f(a)},get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}})]},a)})),d?d({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null]})}})};var ce=function e(n){return L(o.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):L(p,{type:"link",danger:true,icon:L(z,{}),onClick:n.remove,children:"删除"})})};var pe=function e(n){if(n.fieldConfig){if(N(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return L(se,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{var i;return T(C,{children:[L(ue,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),(i=n.hiddenFieldList)==null?void 0:i.map((function(e,r){return L(R,{name:[n.tableRowIndex].concat(t(e.dataIndex))},r)}))]})}}return L(te,{name:n.name})};var fe=["fieldConfig","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align"];var ve=function a(d){var m=o.useFormInstance();var u=x([]);var s=g((function(){var e=d.columns.find((function(e){return e["dataIndex"]===d.uidFieldKey}));return!!e}),[d.columns,d.uidFieldKey]);var c=g((function(){if(!d.columns)return[];return d.columns.map((function(e){var n=e.fieldConfig,a=e.renderMiddleware,l=e.tableChildrenColumnRender,o=e.title,u=e.tipsWrapperProps,c=e.required,p=e.align,f=i(e,fe);var v=w(o)||typeof o==="string";var g;if(u&&v){if(typeof u==="string"){g=L(y,{tipType:"popover",popoverProps:{content:u},children:o})}else{g=L(y,r({},u,{children:o}))}}else{g=o}return r({title:c?L(I,{style:{marginLeft:p==="center"?undefined:10},text:g,position:"before",symbolType:"required"}):g,onCell:function e(){var n;return{valign:((n=d.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},f,{render:function r(i,o,u){if(o["_isChildrenItem"]){if(l){return l(i,o,u)}return i}var c=[].concat(t(d.name),[o.name]);var p=e.dataIndex?[].concat(c,[e.dataIndex]):c;var f=a==null?void 0:a({name:p,tableRowIndex:o.name,operation:o.operation,tableRowName:c,index:u,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}});if(f){return f}var v=typeof n==="function"?n({name:p,tableRowIndex:o.name,tableRowName:c,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}}):n;var g=t(e.hiddenField);if(!s&&u===0){g=g.concat([{dataIndex:d.uidFieldKey}])}return L(pe,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:p,fieldConfig:v,tableRowIndex:o.name,hiddenFieldList:g})}})}))}),[d.columns,d.tableProps,d.name,d.completeName,d.uidFieldKey,s,m]);var p=o.useWatch(d.completeName?d.completeName:d.name,m);h((function(){var e=t(d.name);if(/^\d+$/.test(""+(e==null?void 0:e[0]))&&d.completeName===undefined){void f.error("当前Editable处在FormList内部,必须赋值completeName参数")}}),[d.completeName,d.name]);return L("div",{className:n("editable-table",{"et-empty-show-large":d.emptyShowSize==="large"},d.className),style:d.style,children:L(o.List,{name:d.name,rules:d.rules,children:function n(i,a,s){var f=s.errors;u.current=i;return T("div",{style:{borderRadius:"6px",border:f!=null&&f.length?"1px solid #ff4d4f":"1px solid transparent"},children:[d.onTableBeforeRender?d.onTableBeforeRender(a,i.length):null,L(v,r({scroll:{x:"max-content"},pagination:false,size:"small"},d.tableProps,{rowKey:function e(n){var r;var i=d.completeName||[];var a=t(d.name);var o=i.length?i:a;var u;if(n["_isChildrenItem"]){u=m.getFieldValue([].concat(o,[n["_parentIndex"],"children",n["_index"]]))}else{u=m.getFieldValue([].concat(o,[n["_index"]]))}var s=(r=u)==null?void 0:r[d.uidFieldKey];if(l(s)){console.warn("EditableTable 通过入参uidFieldKey:"+d.uidFieldKey+",未获取到表格行唯一值数据")}return s},dataSource:i.map((function(e,n){var i;var t=p==null||(i=p[e.name])==null?void 0:i.children;if(t){t.forEach((function(e,r){e["_isChildrenItem"]=true;e["_parentIndex"]=n;e["_index"]=r}))}return r({},e,{_index:n,operation:a,children:t})})),columns:c})),d.onTableAfterRender?d.onTableAfterRender(a,i.length):L(j,{type:"dashed",hidden:d.hiddenFooterBtn,onClick:function e(){return a.add(d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues())},block:true,icon:L(e,{}),style:{marginTop:15},children:"新增"}),L(o.ErrorList,{errors:f.length?[L("div",{style:{color:"#ff4d4f",padding:"5px"},children:f},"0")]:undefined})]})}})})};export{ve as EditableTable};
27
27
  //# sourceMappingURL=index.js.map