@flatbiz/antd 4.2.36 → 4.2.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/button-operate/index.js +1 -1
- package/esm/button-operate-6add2cbf.js +3 -0
- package/esm/button-operate-6add2cbf.js.map +1 -0
- package/esm/{cell-render-8d9d3ee9.js → cell-render-03055c65.js} +2 -2
- package/esm/{cell-render-8d9d3ee9.js.map → cell-render-03055c65.js.map} +1 -1
- package/esm/easy-table/index.js +1 -1
- package/esm/index.js +1 -1
- package/esm/simple-layout/index.css +1 -1
- package/esm/simple-layout/index.js +1 -1
- package/esm/simple-layout-08f90dab.js +3 -0
- package/esm/simple-layout-08f90dab.js.map +1 -0
- package/esm/table-cell-render/index.js +1 -1
- package/esm/tabs-wrapper/index.css +1 -1
- package/esm/tabs-wrapper/index.js +1 -1
- package/esm/{tabs-wrapper-e26ba7fb.js → tabs-wrapper-0a2da713.js} +2 -2
- package/esm/{tabs-wrapper-e26ba7fb.js.map → tabs-wrapper-0a2da713.js.map} +1 -1
- package/esm/tree-wrapper/index.js +1 -1
- package/esm/tree-wrapper-85aa72d7.js +3 -0
- package/esm/tree-wrapper-85aa72d7.js.map +1 -0
- package/index.d.ts +30 -0
- package/package.json +8 -8
- package/esm/button-operate-04d9185b.js +0 -3
- package/esm/button-operate-04d9185b.js.map +0 -1
- package/esm/simple-layout-1676e586.js +0 -3
- package/esm/simple-layout-1676e586.js.map +0 -1
- package/esm/tree-wrapper-ea6a5bdd.js +0 -3
- package/esm/tree-wrapper-ea6a5bdd.js.map +0 -1
|
@@ -6,5 +6,5 @@ import './../fba-utils/index.css';
|
|
|
6
6
|
import './../dropdown-menu-wrapper/index.css';
|
|
7
7
|
import './index.css';
|
|
8
8
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
9
|
-
export{a as ButtonOperate,B as ButtonOperateItemContent}from"../button-operate-
|
|
9
|
+
export{a as ButtonOperate,B as ButtonOperateItemContent}from"../button-operate-6add2cbf.js";import"@ant-design/icons/es/icons/MoreOutlined";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"antd";import"react";import"../button-wrapper-c63ea6fc.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@flatbiz/utils";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";import"../fba-utils-1e895394.js";import"../dropdown-menu-wrapper-2c4b6cad.js";
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
+
import r from"@ant-design/icons/es/icons/MoreOutlined";import{a as e,_ as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isUndefined as n}from"@dimjs/lang/cjs/is-undefined";import{classNames as o}from"@dimjs/utils/cjs/class-names";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{isString as s}from"@dimjs/lang/cjs/is-string";import{isPromise as l}from"@dimjs/lang/cjs/is-promise";import{hooks as a}from"@wove/react/cjs/hooks";import{Popover as p,Tooltip as c,Space as f,Divider as u,Popconfirm as d,Button as m}from"antd";import{Fragment as h,useState as v,isValidElement as g,useMemo as T,createElement as j}from"react";import{B as y}from"./button-wrapper-c63ea6fc.js";import{D as k}from"./dropdown-menu-wrapper-2c4b6cad.js";import{f as C}from"./fba-utils-1e895394.js";import{jsx as P,jsxs as b}from"react/jsx-runtime";var w=["text","onClick","needConfirm","confirmMessage","popconfirmProps","hoverTips"];var x=function r(e){if(e.hoverTips){if(e.tipsType==="popover"){return P(p,{content:e.hoverTips,zIndex:1e3,children:P(h,{children:e.children})})}return P(c,{title:e.hoverTips,zIndex:1e3,children:P(h,{children:e.children})})}return P(h,{children:e.children})};var B=function p(c){var h=v(false),B=h[0],I=h[1];var z=a.useCallbackRef((function(r,e){var i=r.onClick==null?void 0:r.onClick(e);if(i&&l(i)){I(true);return i.finally((function(){I(false)}))}return}));var F=c.operateList.filter((function(r){if(!r)return false;if(g(r)){var e,i;if(((e=r.props)==null?void 0:e["hidden"])===true)return false;var n=(i=r.props)==null?void 0:i["v-permission"];if(s(n)){return C.hasPermission(n)}return true}if(t(r)){if(!C.hasPermission(r["permission"])){return false}return!r["hidden"]}return false}));var M=T((function(){return F.filter((function(r){if(g(r)){return true}return!r["isFold"]}))}),[F]);var N=T((function(){var r=F.filter((function(r){if(g(r)){return false}return r["isFold"]}));var i=[];r.forEach((function(r){var n=e({},r);delete n.isFold;i.push(n)}));return i}),[F]);var O=c.gap===undefined?10:c.gap;var H=!c.split?O:0;return P("div",{className:o("table-operate",c.className),style:c.style,children:b(f,e({split:c.split?P(u,{type:"vertical"}):null,size:H,wrap:n(c.wrap)?true:c.wrap},c.spaceProps,{children:[M.map((function(r,n){if(r&&g(r)){return P(x,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:r},n)}var o=r.text,t=r.onClick,s=r.needConfirm,l=r.confirmMessage,a=r.popconfirmProps,p=r.hoverTips,c=i(r,w);var f=r.type||"link";if(s&&!c.disabled){var u=!!r.color?false:true;return P(x,{hoverTips:p,tipsType:r.tipsType,children:j(d,e({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},a,{title:l,onConfirm:z.bind(null,r),key:n,okButtonProps:{loading:B},onOpenChange:function r(e){if(!e){I(false)}}}),P(y,e({danger:u},c,{onClick:undefined,type:f,children:g(o)?P("span",{children:o}):o})))},n)}return P(x,{hoverTips:p,tipsType:r.tipsType,children:P(y,e({loadingPosition:"center"},c,{type:f,onClick:function r(e){e.stopPropagation();return t==null?void 0:t(e)},children:g(o)?P("span",{children:o}):o}))},n)})),N.length>0?P(k,{menuList:N,children:P(m,{type:"link",className:"fold-more-button",onClick:function r(e){e.stopPropagation()},children:c.foldIcon?c.foldIcon:P(r,{})})}):null]}))})};B.defaultProps={split:true};export{x as B,B as a};
|
|
3
|
+
//# sourceMappingURL=button-operate-6add2cbf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-operate-6add2cbf.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Divider, Popconfirm, PopconfirmProps, Popover, Space, SpaceProps, Tooltip } from 'antd';\nimport {\n CSSProperties,\n FC,\n Fragment,\n isValidElement,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaUtils } from '../fba-utils';\n\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n /** hover 提示文字 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n // 是否折叠合拢\n isFold?: boolean;\n}\n\nexport interface ButtonOperateProps {\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n wrap?: boolean;\n foldIcon?: ReactElement;\n className?: string;\n split?: boolean;\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n style?: CSSProperties;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & { children?: ReactNode },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Tooltip>\n );\n }\n return <Fragment>{props.children}</Fragment>;\n};\n\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item['permission'])) {\n return false;\n }\n return !item['hidden'];\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item['isFold'];\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item['isFold'];\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const gap = props.gap === undefined ? 10 : props.gap;\n const size = !props.split ? gap : 0;\n\n return (\n <div className={classNames('table-operate', props.className)} style={props.style}>\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n {item}\n </ButtonOperateItemContent>\n );\n }\n const { text, onClick, needConfirm, confirmMessage, popconfirmProps, hoverTips, ...otherProps } =\n item;\n const type = item.type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = !!item.color ? false : true;\n return (\n <ButtonOperateItemContent hoverTips={hoverTips} tipsType={item.tipsType} key={index}>\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n >\n <ButtonWrapper danger={danger} {...otherProps} onClick={undefined} type={type}>\n {isValidElement(text) ? <span>{text}</span> : text}\n </ButtonWrapper>\n </Popconfirm>\n </ButtonOperateItemContent>\n );\n }\n return (\n <ButtonOperateItemContent hoverTips={hoverTips} tipsType={item.tipsType} key={index}>\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={type}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n >\n {isValidElement(text) ? <span>{text}</span> : text}\n </ButtonWrapper>\n </ButtonOperateItemContent>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Fragment","Tooltip","title","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","isValidElement","_item$props","_item$props2","permission","_isString","fbaUtils","hasPermission","_isPlainObject","viewList","useMemo","foldList","filterList","forEach","target","_extends","isFold","push","gap","undefined","size","split","className","_classNames","style","_jsxs","Space","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","otherProps","_objectWithoutPropertiesLoose","_excluded","disabled","danger","color","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","ButtonWrapper","loadingPosition","stopPropagation","length","DropdownMenuWrapper","menuList","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":";66BAyDaA,EAA2B,SAA3BA,EACXC,GAEA,GAAIA,EAAMC,UAAW,CACnB,GAAID,EAAME,WAAa,UAAW,CAChC,OACEC,EAACC,EAAO,CAACC,QAASL,EAAMC,UAAWK,OAAQ,IAAKC,SAC9CJ,EAACK,EAAQ,CAAAD,SAAEP,EAAMO,YAGvB,CACA,OACEJ,EAACM,EAAO,CAACC,MAAOV,EAAMC,UAAWK,OAAQ,IAAKC,SAC5CJ,EAACK,EAAQ,CAAAD,SAAEP,EAAMO,YAGvB,CACA,OAAOJ,EAACK,EAAQ,CAAAD,SAAEP,EAAMO,UAC1B,MAEaI,EAAwC,SAAxCA,EAAyCX,GACpD,IAAAY,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAE1B,IAAMI,EAAYC,EAAMC,gBAAe,SAACC,EAAyBC,GAC/D,IAAMC,EAASF,EAAKG,SAALH,UAAAA,EAAAA,EAAKG,QAAUF,GAC9B,GAAIC,GAAUE,EAAUF,GAAS,CAC/BN,EAAW,MACX,OAAOM,EAAOG,SAAQ,WACpBT,EAAW,MACb,GACF,CACA,MACF,IAEA,IAAMU,EAAczB,EAAMyB,YAAYC,QAAO,SAACP,GAC5C,IAAKA,EAAM,OAAO,MAClB,GAAIQ,EAAeR,GAAO,CAAA,IAAAS,EAAAC,EACxB,KAAID,EAAAT,EAAKnB,QAAK,UAAA,EAAV4B,EAAa,aAAc,KAAM,OAAO,MAC5C,IAAME,GAAUD,EAAGV,EAAKnB,QAAL6B,UAAAA,EAAAA,EAAa,gBAChC,GAAIE,EAASD,GAAa,CACxB,OAAOE,EAASC,cAAcH,EAChC,CACA,OAAO,IACT,CACA,GAAII,EAAcf,GAAO,CACvB,IAAKa,EAASC,cAAcd,EAAK,eAAgB,CAC/C,OAAO,KACT,CACA,OAAQA,EAAK,SACf,CACA,OAAO,KACT,IAEA,IAAMgB,EAAWC,GAAQ,WACvB,OAAOX,EAAYC,QAAO,SAACP,GACzB,GAAIQ,EAAeR,GAAO,CACxB,OAAO,IACT,CACA,OAAQA,EAAK,SACf,GACF,GAAG,CAACM,IAEJ,IAAMY,EAAWD,GAAQ,WACvB,IAAME,EAAab,EAAYC,QAAO,SAACP,GACrC,GAAIQ,EAAeR,GAAO,CACxB,OAAO,KACT,CACA,OAAOA,EAAK,SACd,IACA,IAAME,EAAS,GACfiB,EAAWC,SAAQ,SAACpB,GAClB,IAAMqB,EAAMC,EAAA,CAAA,EAAQtB,UAEbqB,EAAOE,OACdrB,EAAOsB,KAAKH,EACd,IACA,OAAOnB,CACT,GAAG,CAACI,IAEJ,IAAMmB,EAAM5C,EAAM4C,MAAQC,UAAY,GAAK7C,EAAM4C,IACjD,IAAME,GAAQ9C,EAAM+C,MAAQH,EAAM,EAElC,OACEzC,EAAA,MAAA,CAAK6C,UAAWC,EAAW,gBAAiBjD,EAAMgD,WAAYE,MAAOlD,EAAMkD,MAAM3C,SAC/E4C,EAACC,EAAKX,EAAA,CACJM,MAAO/C,EAAM+C,MAAQ5C,EAACkD,EAAO,CAACC,KAAK,aAAgB,KACnDR,KAAMA,EACNS,KAAMC,EAAYxD,EAAMuD,MAAQ,KAAOvD,EAAMuD,MACzCvD,EAAMyD,WAAU,CAAAlD,SAAA,CAEnB4B,EAASuB,KAAI,SAACvC,EAAMwC,GACnB,GAAIxC,GAAQQ,EAAeR,GAAO,CAChC,OACEhB,EAACJ,EAAwB,CAACE,UAAWkB,EAAKlB,UAAWC,SAAUiB,EAAKjB,SAASK,SAC1EY,GADgFwC,EAIvF,CACA,IAAQC,EACNzC,EADMyC,KAAMtC,EACZH,EADYG,QAASuC,EACrB1C,EADqB0C,YAAaC,EAClC3C,EADkC2C,eAAgBC,EAClD5C,EADkD4C,gBAAiB9D,EACnEkB,EADmElB,UAAc+D,EAAUC,EAC3F9C,EAAI+C,GACN,IAAMZ,EAAOnC,EAAKmC,MAAQ,OAC1B,GAAIO,IAAgBG,EAAWG,SAAU,CACvC,IAAMC,IAAWjD,EAAKkD,MAAQ,MAAQ,KACtC,OACElE,EAACJ,EAAwB,CAACE,UAAWA,EAAWC,SAAUiB,EAAKjB,SAASK,SACtE+D,EAACC,EAAU9B,EAAA,CACT+B,OAAO,KACPC,WAAW,KACXC,QAAS,CAAC,SACVC,UAAU,WACVC,MAAO,KACPC,qBAAsB,MAClBd,EAAe,CACnBrD,MAAOoD,EACP9C,UAAWA,EAAU8D,KAAK,KAAM3D,GAChC4D,IAAKpB,EACLqB,cAAe,CACblE,QAAAA,GAEFmE,aAAc,SAAAA,EAACC,GACb,IAAKA,EAAO,CACVnE,EAAW,MACb,CACF,IAEAZ,EAACgF,EAAa1C,EAAA,CAAC2B,OAAQA,GAAYJ,EAAU,CAAE1C,QAASuB,UAAWS,KAAMA,EAAK/C,SAC3EoB,EAAeiC,GAAQzD,EAAA,OAAA,CAAAI,SAAOqD,IAAeA,OAtB0BD,EA2BlF,CACA,OACExD,EAACJ,EAAwB,CAACE,UAAWA,EAAWC,SAAUiB,EAAKjB,SAASK,SACtEJ,EAACgF,EAAa1C,EAAA,CACZ2C,gBAAgB,UACZpB,EAAU,CACdV,KAAMA,EACNhC,QAAS,SAAAA,EAACF,GACRA,EAAMiE,kBACN,OAAO/D,GAAO,UAAA,EAAPA,EAAUF,EACjB,EAAAb,SAEDoB,EAAeiC,GAAQzD,EAAA,OAAA,CAAAI,SAAOqD,IAAeA,MAV4BD,EAcjF,IACAtB,EAASiD,OAAS,EACjBnF,EAACoF,EAAmB,CAACC,SAAUnD,EAAS9B,SACtCJ,EAACsF,EAAM,CACLnC,KAAK,OACLN,UAAU,mBACV1B,QAAS,SAAAA,EAACF,GACRA,EAAMiE,iBACN,EAAA9E,SAEDP,EAAM0F,SAAW1F,EAAM0F,SAAWvF,EAAAwF,EAAA,QAGrC,UAIZ,EAEAhF,EAAciF,aAAe,CAC3B7C,MAAO"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as t}from"@dimjs/lang/cjs/is-object";import{get as e}from"@dimjs/utils/cjs/get";import{isPlainObject as n}from"@dimjs/lang/cjs/is-plain-object";import{a as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isNumber as o}from"@dimjs/lang/cjs/is-number";import{isEmpty as a}from"@dimjs/lang/cjs/is-empty";import{isUndefinedOrNull as u,getStrByteLen as l,cutString as f,flatbizDate as c}from"@flatbiz/utils";import{Tooltip as s,Space as m}from"antd";import{Fragment as p}from"react";import{a as v}from"./button-operate-
|
|
3
|
-
//# sourceMappingURL=cell-render-
|
|
2
|
+
import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as t}from"@dimjs/lang/cjs/is-object";import{get as e}from"@dimjs/utils/cjs/get";import{isPlainObject as n}from"@dimjs/lang/cjs/is-plain-object";import{a as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isNumber as o}from"@dimjs/lang/cjs/is-number";import{isEmpty as a}from"@dimjs/lang/cjs/is-empty";import{isUndefinedOrNull as u,getStrByteLen as l,cutString as f,flatbizDate as c}from"@flatbiz/utils";import{Tooltip as s,Space as m}from"antd";import{Fragment as p}from"react";import{a as v}from"./button-operate-6add2cbf.js";import{T as d}from"./tag-list-select-066f682f.js";import{jsx as j}from"react/jsx-runtime";var h=function r(t,e){return function(r){if(a(r)||r==="")return e;if(o(r))return r;var n=r.toString();var i=u(t)?10:t;var c=l(n);if(c<=i*2){return n}return j(s,{placement:"topLeft",title:n,children:f(n,i*2)})}};var g=function r(t){return function(r,e,n){var o=t(e,n);return j(v,i({},o))}};var x=function r(t,e){return function(r){if(a(r)||r==="")return e;try{return c.format(new Date(r),t)}catch(t){return r||e}}};var C=function r(t,e){return function(r,n,i){if(e&&t){return(t-1)*e+i+1}return i+1}};var b=function r(t){return function(r,e,n){var i=(t==null?void 0:t())||{},o=i.pageNo,a=i.pageSize;if(a&&o){return(o-1)*a+n+1}return n+1}};var w=function r(t,e){return function(r){return j(d,{dataList:t,colorMap:e,value:r,forceMatch:false})}};var k=function r(i,o){return function(r){if(n(r)){var a=e(r,i,o);if(!a)return"";if(t(a))return JSON.stringify(a);return a}return r||o}};var N=function t(e){return function(t,n){var i=e==null?void 0:e(n);if(!i)return j(p,{children:t});var o=u(i.showData)?true:i.showData;var a=u(i.notOverflowShowExtra)?true:i.notOverflowShowExtra;var l=u(i.showMaxNumber)?10:i.showMaxNumber;var c=i.extraPosition?i.extraPosition:"after";var s=r(t)?f(t,l*2):t;if(i.extra&&o){if(s===t&&!a){return t}var v=[j("span",{children:s},"1"),j(p,{children:i.extra},"2")];var d=c==="before"?v.reverse():v;return j(m,{onClick:i.onClick,style:{cursor:i.onClick?"pointer":undefined},size:5,children:d.map((function(r,t){return j(p,{children:r},t)}))})}return j("span",{onClick:i.onClick,children:i.extra})}};var S={extraContentRender:N,indexCell:C,serialNumberCell:b,dateCell:x,operateCell:g,tooltipCell:h,selectorCell:w,objectCell:k};export{S as t};
|
|
3
|
+
//# sourceMappingURL=cell-render-03055c65.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell-render-8d9d3ee9.js","sources":["@flatbiz/antd/src/table-cell-render/cell-render.tsx"],"sourcesContent":["import { isEmpty, isNumber, isObject, isPlainObject, isString } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport {\n cutString,\n DateFormatType,\n flatbizDate,\n getStrByteLen,\n isUndefinedOrNull,\n TAny,\n TPlainObject,\n} from '@flatbiz/utils';\nimport { Space, Tooltip } from 'antd';\nimport { Fragment, ReactElement } from 'react';\nimport { ButtonOperate, ButtonOperateProps } from '../button-operate';\nimport { TagListSelect, TagListSelectProps } from '../tag-list-select';\n\nconst tableColumnTooltipRender = (showMaxNumber?: number, defaultValue?: string) => {\n return (value: string | number) => {\n if (isEmpty(value) || value === '') return defaultValue;\n if (isNumber(value)) return value;\n const colunmText = value.toString();\n const maxNumber = (isUndefinedOrNull(showMaxNumber) ? 10 : showMaxNumber) as number;\n const strByteLen = getStrByteLen(colunmText);\n if (strByteLen <= maxNumber * 2) {\n return colunmText;\n }\n return (\n <Tooltip placement=\"topLeft\" title={colunmText}>\n {cutString(colunmText, maxNumber * 2)}\n </Tooltip>\n );\n };\n};\n\nconst tableColumnOperateRender = (options: (item: TAny, index: number) => ButtonOperateProps) => {\n return (_value: string | number, record, index: number) => {\n const operateProps = options(record, index);\n return <ButtonOperate {...operateProps} />;\n };\n};\n\nconst tableColumnDateRender = (dateFormatType?: DateFormatType, defaultValue?: string) => {\n return (value: string | number) => {\n if (isEmpty(value) || value === '') return defaultValue;\n try {\n return flatbizDate.format(new Date(value), dateFormatType);\n } catch (error) {\n return value || defaultValue;\n }\n };\n};\n\n/**\n * table 索引展示,如果存在pageSize、pageNo参数可分页展示索引,否则每页都从1开始\n * @param pageSize\n * @param pageNo\n * @returns\n */\nconst tableColumnIndexRender = (pageNo?: number, pageSize?: number) => {\n return (_value, _record, index: number) => {\n if (pageSize && pageNo) {\n return (pageNo - 1) * pageSize + index + 1;\n }\n return index + 1;\n };\n};\nconst tableColumnIndexRender2 = (method?: () => { pageNo?: number; pageSize?: number }) => {\n return (_value, _record, index: number) => {\n const { pageNo, pageSize } = method?.() || {};\n if (pageSize && pageNo) {\n return (pageNo - 1) * pageSize + index + 1;\n }\n return index + 1;\n };\n};\n\nconst tableColumnSelectorRender = (\n selectorList: TagListSelectProps['dataList'],\n colorMap?: TagListSelectProps['colorMap'],\n) => {\n return (value: string | number) => {\n return <TagListSelect dataList={selectorList} colorMap={colorMap} value={value} forceMatch={false} />;\n };\n};\n\nconst tableColumnObjectRender = (key: string, defaultValue?: string) => {\n return (value?: TPlainObject) => {\n if (isPlainObject(value)) {\n const target = get(value, key, defaultValue);\n if (!target) return '';\n if (isObject(target)) return JSON.stringify(target);\n return target;\n }\n return value || defaultValue;\n };\n};\n\ntype TableColumnIconRenderProps = {\n /** 额外内容,一般为Icon */\n extra: ReactElement;\n extraPosition?: 'before' | 'after';\n onClick?: (e) => void;\n /** 是否显示原单元格数据,默认值:true */\n showData?: boolean;\n /** 溢出显示【...】, 最大长度(默认:20个字节) */\n showMaxNumber?: number;\n /** 未溢出显示【extra】配置,默认值:true */\n notOverflowShowExtra?: boolean;\n};\n\nconst tableColumnExtraContentRender = (handle: (item: TPlainObject) => TableColumnIconRenderProps) => {\n return (value: TAny, item: TPlainObject) => {\n const options = handle?.(item);\n if (!options) return <Fragment>{value}</Fragment>;\n const showData = isUndefinedOrNull(options.showData) ? true : options.showData;\n const notOverflowShowExtra = isUndefinedOrNull(options.notOverflowShowExtra)\n ? true\n : options.notOverflowShowExtra;\n const showMaxNumber = isUndefinedOrNull(options.showMaxNumber) ? 10 : (options.showMaxNumber as number);\n const extraPosition = options.extraPosition ? options.extraPosition : 'after';\n const renderValue = isString(value) ? cutString(value, showMaxNumber * 2) : value;\n\n if (options.extra && showData) {\n if (renderValue === value && !notOverflowShowExtra) {\n return value;\n }\n const spaceContent = [<span key=\"1\">{renderValue}</span>, <Fragment key=\"2\">{options.extra}</Fragment>];\n const spaceContentRender = extraPosition === 'before' ? spaceContent.reverse() : spaceContent;\n return (\n <Space onClick={options.onClick} style={{ cursor: options.onClick ? 'pointer' : undefined }} size={5}>\n {spaceContentRender.map((item, index) => {\n return <Fragment key={index}>{item}</Fragment>;\n })}\n </Space>\n );\n }\n return <span onClick={options.onClick}>{options.extra}</span>;\n };\n};\n\nexport const tableCellRender = {\n /**\n * 表格单元格 拼接额外内容渲染\n * ```\n * 1. extra 额外内容\n * 2. showData 是否显示原单元格数据,默认值:true\n * 3. showMaxNumber 显示最大长度,作用于原单元格字符串数据\n * ```\n */\n extraContentRender: tableColumnExtraContentRender,\n /**\n * table 索引展示,如果存在pageSize、pageNo参数可分页展示索引,否则每页都从1开始\n * @deprecated 已过时,请使用 serialNumberCell\n */\n indexCell: tableColumnIndexRender,\n /**\n * table 序号展示,如果存在pageSize、pageNo参数可分页展示累加序号,否则每页都从1开始\n * ```\n * render: tableCellRender.serialNumberCell(() => {\n * return { pageNo,pageSize };\n * }),\n * ```\n */\n serialNumberCell: tableColumnIndexRender2,\n /**\n * 表格日期格式数据渲染,默认格式:YYYY-MM-DD\n * ```\n * dateFormatType: 日期格式\n * ```\n */\n dateCell: tableColumnDateRender,\n /**\n * table操作栏目渲染\n * ```\n * 使用方式\n * tableCellRender.operateCell((item) => ({\n * operateList: [\n * {\n * text: '编辑',\n * onClick: onItemOperate.bind(null, 'update', item),\n * permission: SystemAdminPermissionEnum.system_admin_edit,\n * },\n * {\n * text: '删除',\n * needConfirm: true,\n * confirmMessage: '确定要删除吗?',\n * onClick: onItemOperate.bind(null, 'delete', item),\n * permission: SystemAdminPermissionEnum.system_admin_delete,\n * },\n * ],\n * }))\n * ```\n */\n operateCell: tableColumnOperateRender,\n /**\n * 实现字段超出隐藏,默认长度10个字符\n * ```\n * 1. showMaxNumber: 显示最大长度\n * 2. 会讲字符转出字节进行计算显示\n * ```\n */\n tooltipCell: tableColumnTooltipRender,\n /**\n * ```\n * 使用方式1\n * tableCellRender.selectorCell([{ label: '已开启', value: 1, color: '#108ee9' }])\n *\n * 使用方式2\n * tableCellRender.selectorCell([{ label: '已开启', value: 1 }], { 1: '#108ee9' })\n * ```\n */\n selectorCell: tableColumnSelectorRender,\n /**\n * 单元格对象数据处理,支持多级处理\n * ```\n * tableCellRender.objectCell('a.b.c')\n * ```\n */\n objectCell: tableColumnObjectRender,\n};\n"],"names":["tableColumnTooltipRender","showMaxNumber","defaultValue","value","_isEmpty","_isNumber","colunmText","toString","maxNumber","isUndefinedOrNull","strByteLen","getStrByteLen","_jsx","Tooltip","placement","title","children","cutString","tableColumnOperateRender","options","_value","record","index","operateProps","ButtonOperate","_extends","tableColumnDateRender","dateFormatType","flatbizDate","format","Date","error","tableColumnIndexRender","pageNo","pageSize","_record","tableColumnIndexRender2","method","_ref","tableColumnSelectorRender","selectorList","colorMap","TagListSelect","dataList","forceMatch","tableColumnObjectRender","key","_isPlainObject","target","_get","_isObject","JSON","stringify","tableColumnExtraContentRender","handle","item","Fragment","showData","notOverflowShowExtra","extraPosition","renderValue","_isString","extra","spaceContent","spaceContentRender","reverse","Space","onClick","style","cursor","undefined","size","map","tableCellRender","extraContentRender","indexCell","serialNumberCell","dateCell","operateCell","tooltipCell","selectorCell","objectCell"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cell-render-03055c65.js","sources":["@flatbiz/antd/src/table-cell-render/cell-render.tsx"],"sourcesContent":["import { isEmpty, isNumber, isObject, isPlainObject, isString } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport {\n cutString,\n DateFormatType,\n flatbizDate,\n getStrByteLen,\n isUndefinedOrNull,\n TAny,\n TPlainObject,\n} from '@flatbiz/utils';\nimport { Space, Tooltip } from 'antd';\nimport { Fragment, ReactElement } from 'react';\nimport { ButtonOperate, ButtonOperateProps } from '../button-operate';\nimport { TagListSelect, TagListSelectProps } from '../tag-list-select';\n\nconst tableColumnTooltipRender = (showMaxNumber?: number, defaultValue?: string) => {\n return (value: string | number) => {\n if (isEmpty(value) || value === '') return defaultValue;\n if (isNumber(value)) return value;\n const colunmText = value.toString();\n const maxNumber = (isUndefinedOrNull(showMaxNumber) ? 10 : showMaxNumber) as number;\n const strByteLen = getStrByteLen(colunmText);\n if (strByteLen <= maxNumber * 2) {\n return colunmText;\n }\n return (\n <Tooltip placement=\"topLeft\" title={colunmText}>\n {cutString(colunmText, maxNumber * 2)}\n </Tooltip>\n );\n };\n};\n\nconst tableColumnOperateRender = (options: (item: TAny, index: number) => ButtonOperateProps) => {\n return (_value: string | number, record, index: number) => {\n const operateProps = options(record, index);\n return <ButtonOperate {...operateProps} />;\n };\n};\n\nconst tableColumnDateRender = (dateFormatType?: DateFormatType, defaultValue?: string) => {\n return (value: string | number) => {\n if (isEmpty(value) || value === '') return defaultValue;\n try {\n return flatbizDate.format(new Date(value), dateFormatType);\n } catch (error) {\n return value || defaultValue;\n }\n };\n};\n\n/**\n * table 索引展示,如果存在pageSize、pageNo参数可分页展示索引,否则每页都从1开始\n * @param pageSize\n * @param pageNo\n * @returns\n */\nconst tableColumnIndexRender = (pageNo?: number, pageSize?: number) => {\n return (_value, _record, index: number) => {\n if (pageSize && pageNo) {\n return (pageNo - 1) * pageSize + index + 1;\n }\n return index + 1;\n };\n};\nconst tableColumnIndexRender2 = (method?: () => { pageNo?: number; pageSize?: number }) => {\n return (_value, _record, index: number) => {\n const { pageNo, pageSize } = method?.() || {};\n if (pageSize && pageNo) {\n return (pageNo - 1) * pageSize + index + 1;\n }\n return index + 1;\n };\n};\n\nconst tableColumnSelectorRender = (\n selectorList: TagListSelectProps['dataList'],\n colorMap?: TagListSelectProps['colorMap'],\n) => {\n return (value: string | number) => {\n return <TagListSelect dataList={selectorList} colorMap={colorMap} value={value} forceMatch={false} />;\n };\n};\n\nconst tableColumnObjectRender = (key: string, defaultValue?: string) => {\n return (value?: TPlainObject) => {\n if (isPlainObject(value)) {\n const target = get(value, key, defaultValue);\n if (!target) return '';\n if (isObject(target)) return JSON.stringify(target);\n return target;\n }\n return value || defaultValue;\n };\n};\n\ntype TableColumnIconRenderProps = {\n /** 额外内容,一般为Icon */\n extra: ReactElement;\n extraPosition?: 'before' | 'after';\n onClick?: (e) => void;\n /** 是否显示原单元格数据,默认值:true */\n showData?: boolean;\n /** 溢出显示【...】, 最大长度(默认:20个字节) */\n showMaxNumber?: number;\n /** 未溢出显示【extra】配置,默认值:true */\n notOverflowShowExtra?: boolean;\n};\n\nconst tableColumnExtraContentRender = (handle: (item: TPlainObject) => TableColumnIconRenderProps) => {\n return (value: TAny, item: TPlainObject) => {\n const options = handle?.(item);\n if (!options) return <Fragment>{value}</Fragment>;\n const showData = isUndefinedOrNull(options.showData) ? true : options.showData;\n const notOverflowShowExtra = isUndefinedOrNull(options.notOverflowShowExtra)\n ? true\n : options.notOverflowShowExtra;\n const showMaxNumber = isUndefinedOrNull(options.showMaxNumber) ? 10 : (options.showMaxNumber as number);\n const extraPosition = options.extraPosition ? options.extraPosition : 'after';\n const renderValue = isString(value) ? cutString(value, showMaxNumber * 2) : value;\n\n if (options.extra && showData) {\n if (renderValue === value && !notOverflowShowExtra) {\n return value;\n }\n const spaceContent = [<span key=\"1\">{renderValue}</span>, <Fragment key=\"2\">{options.extra}</Fragment>];\n const spaceContentRender = extraPosition === 'before' ? spaceContent.reverse() : spaceContent;\n return (\n <Space onClick={options.onClick} style={{ cursor: options.onClick ? 'pointer' : undefined }} size={5}>\n {spaceContentRender.map((item, index) => {\n return <Fragment key={index}>{item}</Fragment>;\n })}\n </Space>\n );\n }\n return <span onClick={options.onClick}>{options.extra}</span>;\n };\n};\n\nexport const tableCellRender = {\n /**\n * 表格单元格 拼接额外内容渲染\n * ```\n * 1. extra 额外内容\n * 2. showData 是否显示原单元格数据,默认值:true\n * 3. showMaxNumber 显示最大长度,作用于原单元格字符串数据\n * ```\n */\n extraContentRender: tableColumnExtraContentRender,\n /**\n * table 索引展示,如果存在pageSize、pageNo参数可分页展示索引,否则每页都从1开始\n * @deprecated 已过时,请使用 serialNumberCell\n */\n indexCell: tableColumnIndexRender,\n /**\n * table 序号展示,如果存在pageSize、pageNo参数可分页展示累加序号,否则每页都从1开始\n * ```\n * render: tableCellRender.serialNumberCell(() => {\n * return { pageNo,pageSize };\n * }),\n * ```\n */\n serialNumberCell: tableColumnIndexRender2,\n /**\n * 表格日期格式数据渲染,默认格式:YYYY-MM-DD\n * ```\n * dateFormatType: 日期格式\n * ```\n */\n dateCell: tableColumnDateRender,\n /**\n * table操作栏目渲染\n * ```\n * 使用方式\n * tableCellRender.operateCell((item) => ({\n * operateList: [\n * {\n * text: '编辑',\n * onClick: onItemOperate.bind(null, 'update', item),\n * permission: SystemAdminPermissionEnum.system_admin_edit,\n * },\n * {\n * text: '删除',\n * needConfirm: true,\n * confirmMessage: '确定要删除吗?',\n * onClick: onItemOperate.bind(null, 'delete', item),\n * permission: SystemAdminPermissionEnum.system_admin_delete,\n * },\n * ],\n * }))\n * ```\n */\n operateCell: tableColumnOperateRender,\n /**\n * 实现字段超出隐藏,默认长度10个字符\n * ```\n * 1. showMaxNumber: 显示最大长度\n * 2. 会讲字符转出字节进行计算显示\n * ```\n */\n tooltipCell: tableColumnTooltipRender,\n /**\n * ```\n * 使用方式1\n * tableCellRender.selectorCell([{ label: '已开启', value: 1, color: '#108ee9' }])\n *\n * 使用方式2\n * tableCellRender.selectorCell([{ label: '已开启', value: 1 }], { 1: '#108ee9' })\n * ```\n */\n selectorCell: tableColumnSelectorRender,\n /**\n * 单元格对象数据处理,支持多级处理\n * ```\n * tableCellRender.objectCell('a.b.c')\n * ```\n */\n objectCell: tableColumnObjectRender,\n};\n"],"names":["tableColumnTooltipRender","showMaxNumber","defaultValue","value","_isEmpty","_isNumber","colunmText","toString","maxNumber","isUndefinedOrNull","strByteLen","getStrByteLen","_jsx","Tooltip","placement","title","children","cutString","tableColumnOperateRender","options","_value","record","index","operateProps","ButtonOperate","_extends","tableColumnDateRender","dateFormatType","flatbizDate","format","Date","error","tableColumnIndexRender","pageNo","pageSize","_record","tableColumnIndexRender2","method","_ref","tableColumnSelectorRender","selectorList","colorMap","TagListSelect","dataList","forceMatch","tableColumnObjectRender","key","_isPlainObject","target","_get","_isObject","JSON","stringify","tableColumnExtraContentRender","handle","item","Fragment","showData","notOverflowShowExtra","extraPosition","renderValue","_isString","extra","spaceContent","spaceContentRender","reverse","Space","onClick","style","cursor","undefined","size","map","tableCellRender","extraContentRender","indexCell","serialNumberCell","dateCell","operateCell","tooltipCell","selectorCell","objectCell"],"mappings":"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"}
|
package/esm/easy-table/index.js
CHANGED
|
@@ -8,5 +8,5 @@ import './../simple-layout/index.css';
|
|
|
8
8
|
import './../table-scrollbar/index.css';
|
|
9
9
|
import './index.css';
|
|
10
10
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
11
|
-
import{f as e}from"../fba-utils-1e895394.js";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{isUndefined as t}from"@dimjs/lang/cjs/is-undefined";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{hooks as r}from"@wove/react/cjs/hooks";import{a,_ as o}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as l}from"@dimjs/model";import{Select as s,Form as u,Pagination as d,message as c,Table as f}from"antd";import{forwardRef as p,useState as m,useRef as g,useImperativeHandle as v,useMemo as y,Children as h}from"react";import{createCtx as C}from"@wove/react/cjs/create-ctx";import{Model as S}from"@dimjs/model-react";import{jsx as b,jsxs as j}from"react/jsx-runtime";import F from"@ant-design/icons/es/icons/DownOutlined";import z from"@ant-design/icons/es/icons/UpOutlined";import{B as q}from"../button-wrapper-c63ea6fc.js";import{FormGrid as N}from"../form-grid/index.js";import{S as R}from"../simple-layout-
|
|
11
|
+
import{f as e}from"../fba-utils-1e895394.js";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{isUndefined as t}from"@dimjs/lang/cjs/is-undefined";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{hooks as r}from"@wove/react/cjs/hooks";import{a,_ as o}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as l}from"@dimjs/model";import{Select as s,Form as u,Pagination as d,message as c,Table as f}from"antd";import{forwardRef as p,useState as m,useRef as g,useImperativeHandle as v,useMemo as y,Children as h}from"react";import{createCtx as C}from"@wove/react/cjs/create-ctx";import{Model as S}from"@dimjs/model-react";import{jsx as b,jsxs as j}from"react/jsx-runtime";import F from"@ant-design/icons/es/icons/DownOutlined";import z from"@ant-design/icons/es/icons/UpOutlined";import{B as q}from"../button-wrapper-c63ea6fc.js";import{FormGrid as N}from"../form-grid/index.js";import{S as R}from"../simple-layout-08f90dab.js";import{isUndefinedOrNull as w,getUuid as P,isMacEnv as x}from"@flatbiz/utils";import{fbaHooks as k}from"../fba-hooks/index.js";import{T}from"../table-scrollbar-66c1682c.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"ahooks";var K=C(),L=K[0],V=K[1];var O={queryCondition:{},isInit:true};var E={actions:{updateFilterCondition:function e(i){return function(e){e.queryCondition=a({},e.queryCondition,i)}},resetFilterCondition:function e(i){return function(e){e.queryCondition=a({},O.queryCondition,i)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var B={};var D=function e(i){if(!B[i]){B[i]=S(E)}return B[i]};var I=function e(i){return b(s,a({},i,{size:"small",placement:"topLeft"}))};I.Option=s.Option;var A=p((function(e,o){var s;var f=m([]),p=f[0],h=f[1];var C=m(0),S=C[0],F=C[1];var z=m(false),q=z[0],N=z[1];var R=D(e.modelKey).useStore(),w=R[0],P=R[1];var x=e.pageSize||((s=e.initialPaginationParams)==null?void 0:s.pageSize)||10;var k=e.initRequest===undefined?true:e.initRequest;var T=m(false),K=T[0],L=T[1];var O=g();var E=a({list:"list",total:"tatal",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var B=u.useForm(),A=B[0];var _=r.useCallbackRef((function(i){return new Promise((function(t,r){var a,o,s,u,d,f,p,m,g,v;var y=function(){try{return t()}catch(e){return r(e)}};var C=function(e){try{N(false);void c.error(e.message);return y()}catch(e){return r(e)}};try{N(true);return Promise.resolve(P.updateFilterCondition(i)).then((function(i){try{a=i;o=l(a.queryCondition||{});s=e.serviceConfig,u=s.requestParamsAdapter,d=s.onRequest,f=s.requestResultAdapter;p=u?u(o):o;return Promise.resolve(d(p)).then((function(i){try{m=i||{};O.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=f?f(m):m;v=g[E.list];h(n(v)?v:[]);F(g[E.total]);N(false);return y()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var U=r.useCallbackRef((function(e){return new Promise((function(i,t){return Promise.resolve(P.resetFilterCondition()).then((function(n){try{A.resetFields();if(e){void P.updateFilterCondition(e);A.setFieldsValue(e)}return i()}catch(e){return t(e)}}),t)}))}));var W=function e(i,t){if(K){var n;return n={},n[E.pageNo]=i,n[E.pageSize]=t||x,n}else{return{}}};var Y=r.useCallbackRef((function(i){return new Promise((function(t,n){var r;r=a({},W(1,x),e.initialValues,i);return Promise.resolve(P.resetFilterCondition(r)).then((function(e){try{A.resetFields();void _(r);return t()}catch(e){return n(e)}}),n)}))}));var G=r.useCallbackRef((function(){return a({},w.queryCondition,A.getFieldsValue())}));var H=function e(){return{onRequest:_,clearQueryCondition:U,getRequestParams:G,onResetRequest:Y,form:A,getDataSource:function e(){return O.current}}};v(o,(function(){return H()}));var Q=function e(i){L(i)};var $=function i(){var t=A.getFieldsValue();if(e.onFormFinish){e.onFormFinish(a({},t,W(1,w.queryCondition.pageSize)))}else{void _(a({},t,W(1,w.queryCondition.pageSize)))}};var J=t(e.isFull)?true:e.isFull;var M=i("fba-easy-table",{"fba-easy-table-full":J,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed});var X=y((function(){return a({showSizeChanger:true,current:w.queryCondition[E.pageNo]||1,pageSize:w.queryCondition[E.pageSize]||x,total:S,showTotal:function e(i){return"共 "+i+" 条记录"}},e.pagination)}),[E.pageNo,E.pageSize,x,e.pagination,w.queryCondition,S]);var Z=r.useCallbackRef((function(i,t){var n,r;void _((n={},n[E.pageSize]=t,n[E.pageNo]=i,n));(r=e.pagination)==null?void 0:r.onChange==null?void 0:r.onChange(i,t)}));return b(V,{value:{getEasyTableRef:H,modelKey:e.modelKey,onRequest:_,tableList:p,tableTotal:S,loading:q,fieldNames:E,pageSize:x,initRequest:k,initialValues:e.initialValues||{},onSetPaginationStatus:Q,paginationStatus:K,onFormFinish:$,form:A,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?j("div",{className:"fba-easy-table-wrapper",children:[b("div",{className:M,children:e.children}),S>0&&b("div",{className:"fba-easy-table-pagination",children:b(d,a({size:"small"},X,{onChange:Z,selectComponentClass:I}))})]}):b("div",{className:M,children:e.children})})}));var _=function e(i){var t=i.queryButtonProps,n=i.resetButtonProps,o=i.filterOperate;var l=L(),s=l.modelKey,d=l.foldKeys,c=l.fieldNames,f=l.onRequest,p=l.pageSize,g=l.paginationStatus,v=l.initialValues,C=l.form,S=l.onFormFinish;var w=typeof i.children==="function"?i.children(C):i.children;var P=h.toArray(w);var x=m(false),k=x[0],T=x[1];var K=D(s).useStore(),V=K[0],O=K[1];var E=r.useCallbackRef((function(){return new Promise((function(e,i){var t;return Promise.resolve(O.resetFilterCondition()).then((function(n){try{C.resetFields();if(g){f(a((t={},t[c.pageNo]=1,t[c.pageSize]=p,t),v))}else{f(v)}return e()}catch(e){return i(e)}}),i)}))}));var B=y((function(){var e=a({rightList:[!(t!=null&&t.hidden)?b(q,a({type:"primary",htmlType:"submit"},t,{children:(t==null?void 0:t.text)||"查询"}),"1"):null,!(n!=null&&n.hidden)?b(q,a({onClick:E},n,{children:(n==null?void 0:n.text)||"重置"}),"2"):null],leftList:[]},o==null?void 0:o(C));if(d.length>0){var i=b(q,{type:"link",style:{padding:"0"},onClick:function e(){T(!k)},children:k?j("span",{children:["收起",b(z,{style:{marginLeft:3,fontSize:12}})]}):j("span",{children:["展开",b(F,{style:{marginLeft:3,fontSize:12}})]})});var r=e.rightList,l=e.leftList;if(r.length>0||l.length===0){r.push(i)}else if((l==null?void 0:l.length)>0){l.push(i)}}return P.map((function(e,i){if(!k&&d.find((function(i){return".$"+i===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return b(N.Col,{children:e},i)})).filter(Boolean).concat(b(N.OperateCol,a({},e),999))}),[P,o,d,C,E,k,t,n]);return b(R,{className:"easy-table-filter",children:b(u,{form:C,onFinish:S,initialValues:a({},v,V.queryCondition),children:i.isPure?w:b(N.Row,{gutter:[15,0],gridSize:i.formGridSize,children:B})})})};var U=function e(){var i=L();var t=g(i.getEasyTableRef());return t.current};var W=function e(){var i=L(),t=i.getEasyTableRef;var n=g(t());return n};var Y=["children","rowKey","pagination"];var G=function e(t){var n=t.children,r=t.rowKey,l=t.pagination,s=o(t,Y);var u=L(),d=u.modelKey,c=u.fieldNames,p=u.onRequest,m=u.tableList,g=u.initRequest,v=u.pageSize,h=u.tableTotal,C=u.loading,S=u.initialValues,F=u.paginationFixed,z=u.onSetPaginationStatus;var q=D(d).useStore(),N=q[0],K=q[1];var V=y((function(){if(F||l===false)return false;return a({showSizeChanger:true,current:N.queryCondition[c.pageNo]||1,pageSize:N.queryCondition[c.pageSize]||v,total:h,showTotal:function e(i){return"共 "+i+" 条记录"}},t.pagination,{selectComponentClass:I})}),[c.pageNo,c.pageSize,v,l,F,t.pagination,N.queryCondition,h]);var O=function e(i){if(V){var n;p((n={},n[c.pageSize]=i.pageSize,n[c.pageNo]=i.current,n))}for(var r=arguments.length,a=new Array(r>1?r-1:0),o=1;o<r;o++){a[o-1]=arguments[o]}t.onChange==null?void 0:t.onChange.apply(t,[i].concat(a))};var E=y((function(){if(m.length===0){return[]}if(w(m[0][r])){return m.map((function(e){e[r]=P();return e}))}return m}),[m,r]);k.useEffectCustom((function(){var e=F||V!==false;z(e);if(g!==false||!N.isInit){if(e){var i;void p(a((i={},i[c.pageNo]=1,i[c.pageSize]=v,i),S,N.queryCondition))}else{void p(S)}}else{void K.updateFilterCondition(S)}void K.updateInitStatus()}),[]);return j(R,{className:i("easy-table-table",t.tableWrapperClassName),style:t.tableWrapperStyle,children:[n,x()?b(f,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{pagination:V,rowKey:r,onChange:O,loading:C,dataSource:E})):b(T,{children:b(f,a({size:"small",scroll:{x:"max-content"},bordered:true},s,{pagination:V,rowKey:r,onChange:O,loading:C,dataSource:E}))})]})};var H=e.attachPropertiesToComponent(A,{Filter:_,Table:G,useEasyTablRef:W,useEasyTable:U});export{H as EasyTable};
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js
CHANGED
|
@@ -76,5 +76,5 @@ import './tree-selector-wrapper/index.css';
|
|
|
76
76
|
import './tree-wrapper/index.css';
|
|
77
77
|
import './index.css';
|
|
78
78
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
79
|
-
export{a as ButtonOperate,B as ButtonOperateItemContent}from"./button-operate-
|
|
79
|
+
export{a as ButtonOperate,B as ButtonOperateItemContent}from"./button-operate-6add2cbf.js";export{B as ButtonWrapper}from"./button-wrapper-c63ea6fc.js";export{C as CascaderWrapper}from"./cascader-wrapper-7f1eed71.js";export{CheckList}from"./check-list/index.js";export{C as CheckboxWrapper}from"./checkbox-wrapper-018a5c59.js";export{C as ConfigProviderWrapper}from"./config-provider-wrapper-dfe8f592.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{C as CssNodeHover}from"./css-node-hover-ed7b9860.js";export{D as DatePickerWrapper}from"./date-picker-wrapper-ba650858.js";export{D as DateRangePickerWrapper}from"./date-range-picker-wrapper-fb15c592.js";export{D as DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item-688cf465.js";export{d as dialogAlert}from"./dialog-alert-0ca83448.js";export{d as dialogConfirm}from"./dialog-confirm-b289f5ed.js";export{d as dialogDrawer}from"./dialog-drawer-525a0bc3.js";export{d as dialogLoading}from"./dialog-loading-16bd1baa.js";export{d as dialogModal}from"./dialog-modal-225b0fe0.js";export{D as DrawerWrapper}from"./drawer-wrapper-9af2f178.js";export{D as DropdownMenuWrapper}from"./dropdown-menu-wrapper-2c4b6cad.js";export{d as dynamicNode}from"./dynamic-node-c7864af4.js";export{EasyTable}from"./easy-table/index.js";export{E as EditableField}from"./editable-field-7f30db8e.js";export{E as EditableFieldProvider}from"./editable-field-provider-20963c3e.js";export{E as EditableTable}from"./editable-table-6bd8df15.js";export{E as EditorWrapper}from"./editor-wrapper-ff6e75b7.js";export{fbaHooks}from"./fba-hooks/index.js";export{f as fbaUtils}from"./fba-utils-1e895394.js";export{F as FileImport}from"./file-import-890a1df9.js";export{F as FlexLayout}from"./flex-layout-8d2b668b.js";export{FormGrid}from"./form-grid/index.js";export{FormItemGroup}from"./form-item-group/index.js";export{F as FormItemHidden}from"./form-item-hidden-45541774.js";export{F as FormItemWrapper}from"./form-item-wrapper-dfe2ebd9.js";export{G as Gap}from"./gap-284e1f59.js";export{I as IconWrapper}from"./icon-wrapper-ed5fcacc.js";export{I as InputSearchWrapper}from"./input-search-wrapper-10d4a9b9.js";export{I as InputTextAreaWrapper}from"./input-text-area-wrapper-c958fba0.js";export{I as InputWrapper}from"./input-wrapper-b378eb5a.js";export{L as LabelValueLayout}from"./label-value-layout-beb35b0d.js";export{LocalLoading}from"./local-loading/index.js";export{M as ModalAction}from"./modal-action-5c5ca8a7.js";export{M as ModalWrapper}from"./modal-wrapper-ff8df98b.js";export{P as PageFixedFooter}from"./page-fixed-footer-5fa10112.js";export{P as Page404}from"./page404-f087129a.js";export{P as Permission}from"./permission-a1c99455.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{R as RadioGroupWrapper}from"./radio-group-wrapper-b34746d1.js";export{R as RelationTree}from"./relation-tree-7bec12bd.js";export{R as RequestStatus}from"./request-status-03fc60e2.js";export{R as RichTextEditor}from"./rich-text-editor-c8bac6d2.js";export{R as RichTextViewer}from"./rich-text-viewer-5cbe01e9.js";export{R as RollLocationCenter}from"./center-a4dfda6f.js";export{R as RollLocationInView}from"./in-view-448ba714.js";export{R as RuleDescribe}from"./rule-describe-b4a8e831.js";export{S as SelectorWrapper}from"./selector-wrapper-ece722f5.js";export{S as SelectorWrapperSearch}from"./selector-wrapper-search-aad145b5.js";export{S as SelectorWrapperSimple}from"./selector-wrapper-simple-49384d37.js";export{S as SimpleLayout}from"./simple-layout-08f90dab.js";export{S as SmsCountDown}from"./sms-count-down-c2609386.js";export{styles}from"./styles/index.js";export{S as SwitchWrapper}from"./switch-wrapper-f20b9a58.js";export{t as tableCellRender}from"./cell-render-03055c65.js";export{T as TableScrollbar}from"./table-scrollbar-66c1682c.js";export{T as TableTitleTooltip}from"./title-render-2874a932.js";export{T as TabsWrapper}from"./tabs-wrapper-0a2da713.js";export{T as TagGroup}from"./tag-group-4fbcaa14.js";export{T as TagListSelect}from"./tag-list-select-066f682f.js";export{T as TagWrapper}from"./tag-wrapper-6d8b505e.js";export{T as TimePickerWrapper}from"./time-picker-wrapper-f1d26d96.js";export{T as TimeRangePickerWrapper}from"./time-range-picker-wrapper-be9850b5.js";export{T as TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item-9df6c0f4.js";export{T as TreeSelectorWrapper}from"./tree-selector-wrapper-9cd9da23.js";export{T as TreeWrapper}from"./tree-wrapper-85aa72d7.js";export{U as UploadWrapper}from"./upload-wrapper-f20208d6.js";import"@ant-design/icons/es/icons/MoreOutlined";import"./_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"antd";import"react";import"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@flatbiz/utils";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";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"./time-53b3f55f.js";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"./dom-4d04aa64.js";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@dimjs/lang/cjs/is-number";import"@ant-design/icons/es/icons/EditOutlined";import"./context-25d0b686.js";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/lang/cjs/is-boolean";import"@ant-design/icons/es/icons/DeleteOutlined";import"@wove/react/cjs/editor";import"ahooks";import"./use-responsive-point-21b8c601.js";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";
|
|
80
80
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.simple-layout{background-color:#fff;padding:15px}.simple-layout .ant-form{margin-bottom:-15px}.simple-layout .ant-form-item{margin:0 0 15px}.simple-layout .ant-form-item-label{width:82px}.simple-layout .ant-form-item-label.ant-col-auto{width:auto}.simple-layout .ant-table-thead>tr>th{background:#f6f6f6}.simple-layout .ant-descriptions-item{padding-bottom:10px}.simple-layout .ant-descriptions-item-label{color:#999}.simple-layout .ant-table-pagination.ant-pagination{margin:16px 0 0}.simple-layout .simple-layout-content>.ant-row:last-child{margin-bottom:0}.simple-layout .simple-layout-content>.ant-row:last-child .ant-upload-list{padding-bottom:15px}.simple-layout .simple-layout-content>.ant-descriptions:not(.ant-descriptions-bordered):last-child{margin-bottom:-10px}.simple-layout .v-tree-wrapper-tree{padding:5px 0 0}.simple-layout-title-sign{padding-left:10px;position:relative}.simple-layout-title-sign:before{background:var(--simple-layout-colorPrimary);border-radius:3px;content:"";height:14px;left:0;margin-top:-7px;position:absolute;top:50%;width:3px}.simple-layout-title{color:rgba(0,0,0,.85);font-size:16px;font-weight:500;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.simple-layout-title+.simple-layout-content{margin-top:10px}.simple-layout-desc{color:rgba(0,0,0,.55);font-size:12px}.simple-layout+.simple-layout,.simple-layout-desc+.simple-layout-content{margin-top:10px}.simple-layout .simple-layout:first-child{padding:0 0 15px}.simple-layout+.ant-divider{margin:0 0 15px}.simple-layout-formlabel-left .ant-form-item-label{text-align:left}.simple-layout-tight.simple-layout{margin-top:0;padding:0 0 15px}.simple-layout-title-extra-space{justify-content:space-between;width:100%}
|
|
1
|
+
.simple-layout{background-color:#fff;border-radius:6px;padding:15px}.simple-layout .ant-form{margin-bottom:-15px}.simple-layout .ant-form-item{margin:0 0 15px}.simple-layout .ant-form-item-label{width:82px}.simple-layout .ant-form-item-label.ant-col-auto{width:auto}.simple-layout .ant-table-thead>tr>th{background:#f6f6f6}.simple-layout .ant-descriptions-item{padding-bottom:10px}.simple-layout .ant-descriptions-item-label{color:#999}.simple-layout .ant-table-pagination.ant-pagination{margin:16px 0 0}.simple-layout .simple-layout-content>.ant-row:last-child{margin-bottom:0}.simple-layout .simple-layout-content>.ant-row:last-child .ant-upload-list{padding-bottom:15px}.simple-layout .simple-layout-content>.ant-descriptions:not(.ant-descriptions-bordered):last-child{margin-bottom:-10px}.simple-layout .v-tree-wrapper-tree{padding:5px 0 0}.simple-layout-title-sign{padding-left:10px;position:relative}.simple-layout-title-sign:before{background:var(--simple-layout-colorPrimary);border-radius:3px;content:"";height:14px;left:0;margin-top:-7px;position:absolute;top:50%;width:3px}.simple-layout-title{color:rgba(0,0,0,.85);font-size:16px;font-weight:500;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.simple-layout-title+.simple-layout-content{margin-top:10px}.simple-layout-desc{color:rgba(0,0,0,.55);font-size:12px}.simple-layout+.simple-layout,.simple-layout-desc+.simple-layout-content{margin-top:10px}.simple-layout .simple-layout:first-child{padding:0 0 15px}.simple-layout+.ant-divider{margin:0 0 15px}.simple-layout-formlabel-left .ant-form-item-label{text-align:left}.simple-layout-tight.simple-layout{margin-top:0;padding:0 0 15px}.simple-layout-title-extra-space{justify-content:space-between;width:100%}.simple-layout-title-fixed{display:flex;flex-direction:column;height:100%;overflow:hidden}.simple-layout-title-fixed .simple-layout-content{flex:1;overflow-y:auto}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../fba-hooks/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
export{S as SimpleLayout}from"../simple-layout-
|
|
5
|
+
export{S as SimpleLayout}from"../simple-layout-08f90dab.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/class-names";import"antd";import"react";import"../fba-hooks/index.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
+
import{isArray as e}from"@dimjs/lang/cjs/is-array";import{extend as t}from"@dimjs/utils/cjs/extend";import{classNames as l}from"@dimjs/utils/cjs/class-names";import{Space as i}from"antd";import{Fragment as a}from"react";import{fbaHooks as s}from"./fba-hooks/index.js";import{jsx as r,jsxs as m}from"react/jsx-runtime";var d=function d(o){var c=o.formLabelAlign||"right";var n=l("simple-layout",{"simple-layout-tight":o.layoutType==="tight","simple-layout-formlabel-left":c==="left","simple-layout-title-fixed":o.titleFixed},o.className);var u=s.useThemeToken();var p=t({"--simple-layout-colorPrimary":u.colorPrimary},o.style,{padding:o.padding,width:o.width});if(o.hidden)return r(a,{});return m("div",{className:n,style:p,children:[o.title&&o.titleExtra?r("div",{className:l({"simple-layout-title-sign":o.titleLeftLine}),children:m(i,{className:"simple-layout-title-extra-space",children:[r("div",{className:"simple-layout-title",children:o.title}),r("div",{className:"simple-layout-title-extra",children:o.titleExtra})]})}):null,o.title&&!o.titleExtra?r("div",{className:l("simple-layout-title",{"simple-layout-title-sign":o.titleLeftLine}),children:o.title}):null,o.desc&&!e(o.desc)?r("div",{className:"simple-layout-desc",children:o.desc}):null,o.desc&&e(o.desc)?r("div",{className:"simple-layout-desc",children:r(i,{direction:"vertical",size:5,children:o.desc.map((function(e){return e}))})}):null,o.children?r("div",{className:"simple-layout-content",style:o.contentStyle,children:o.children}):null]})};d.defaultProps={titleLeftLine:true,layoutType:"layer"};export{d as S};
|
|
3
|
+
//# sourceMappingURL=simple-layout-08f90dab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-layout-08f90dab.js","sources":["@flatbiz/antd/src/simple-layout/simple-layout.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport { Space } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, ReactNode } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type SimpleLayoutProps = {\n className?: string;\n style?: CSSProperties;\n title?: string | ReactElement;\n desc?: string | ReactElement | string[] | ReactElement[];\n formLabelAlign?: 'left' | 'right';\n layoutType?: 'layer' | 'tight';\n titleLeftLine?: boolean;\n contentStyle?: CSSProperties;\n /** 优先级大于 style padding */\n padding?: CSSProperties['padding'];\n /** 优先级大于 style width */\n width?: CSSProperties['width'];\n children?: ReactNode | ReactNode[];\n titleExtra?: string | ReactElement;\n hidden?: boolean;\n titleFixed?: boolean;\n};\n\n/**\n * 简单布局\n * @param props\n * @returns\n * ```\n * 1. layoutType 布局类型\n * layer:分层布局\n * tight:紧凑布局\n * ```\n */\nexport const SimpleLayout = (props: SimpleLayoutProps) => {\n const labelAlign = props.formLabelAlign || 'right';\n const className = classNames(\n 'simple-layout',\n {\n 'simple-layout-tight': props.layoutType === 'tight',\n 'simple-layout-formlabel-left': labelAlign === 'left',\n 'simple-layout-title-fixed': props.titleFixed,\n },\n props.className,\n );\n\n const theme = fbaHooks.useThemeToken();\n const style = extend({ '--simple-layout-colorPrimary': theme.colorPrimary }, props.style, {\n padding: props.padding,\n width: props.width,\n });\n\n if (props.hidden) return <Fragment />;\n\n return (\n <div className={className} style={style}>\n {props.title && props.titleExtra ? (\n <div className={classNames({ 'simple-layout-title-sign': props.titleLeftLine })}>\n <Space className=\"simple-layout-title-extra-space\">\n <div className=\"simple-layout-title\">{props.title}</div>\n <div className=\"simple-layout-title-extra\">{props.titleExtra}</div>\n </Space>\n </div>\n ) : null}\n {props.title && !props.titleExtra ? (\n <div\n className={classNames('simple-layout-title', {\n 'simple-layout-title-sign': props.titleLeftLine,\n })}\n >\n {props.title}\n </div>\n ) : null}\n {props.desc && !isArray(props.desc) ? <div className=\"simple-layout-desc\">{props.desc}</div> : null}\n {props.desc && isArray(props.desc) ? (\n <div className=\"simple-layout-desc\">\n <Space direction=\"vertical\" size={5}>\n {(props.desc as string[]).map((item) => {\n return item;\n })}\n </Space>\n </div>\n ) : null}\n {props.children ? (\n <div className=\"simple-layout-content\" style={props.contentStyle}>\n {props.children}\n </div>\n ) : null}\n </div>\n );\n};\n\nSimpleLayout.defaultProps = {\n titleLeftLine: true,\n layoutType: 'layer',\n};\n"],"names":["SimpleLayout","props","labelAlign","formLabelAlign","className","_classNames","layoutType","titleFixed","theme","fbaHooks","useThemeToken","style","_extend","colorPrimary","padding","width","hidden","_jsx","Fragment","_jsxs","children","title","titleExtra","titleLeftLine","Space","desc","_isArray","direction","size","map","item","contentStyle","defaultProps"],"mappings":";kUAoCaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAMC,EAAaD,EAAME,gBAAkB,QAC3C,IAAMC,EAAYC,EAChB,gBACA,CACE,sBAAuBJ,EAAMK,aAAe,QAC5C,+BAAgCJ,IAAe,OAC/C,4BAA6BD,EAAMM,YAErCN,EAAMG,WAGR,IAAMI,EAAQC,EAASC,gBACvB,IAAMC,EAAQC,EAAO,CAAE,+BAAgCJ,EAAMK,cAAgBZ,EAAMU,MAAO,CACxFG,QAASb,EAAMa,QACfC,MAAOd,EAAMc,QAGf,GAAId,EAAMe,OAAQ,OAAOC,EAACC,EAAW,CAAA,GAErC,OACEC,EAAA,MAAA,CAAKf,UAAWA,EAAWO,MAAOA,EAAMS,SAAA,CACrCnB,EAAMoB,OAASpB,EAAMqB,WACpBL,EAAA,MAAA,CAAKb,UAAWC,EAAW,CAAE,2BAA4BJ,EAAMsB,gBAAiBH,SAC9ED,EAACK,EAAK,CAACpB,UAAU,kCAAiCgB,UAChDH,EAAA,MAAA,CAAKb,UAAU,sBAAqBgB,SAAEnB,EAAMoB,QAC5CJ,EAAA,MAAA,CAAKb,UAAU,4BAA2BgB,SAAEnB,EAAMqB,kBAGpD,KACHrB,EAAMoB,QAAUpB,EAAMqB,WACrBL,EAAA,MAAA,CACEb,UAAWC,EAAW,sBAAuB,CAC3C,2BAA4BJ,EAAMsB,gBACjCH,SAEFnB,EAAMoB,QAEP,KACHpB,EAAMwB,OAASC,EAAQzB,EAAMwB,MAAQR,EAAA,MAAA,CAAKb,UAAU,qBAAoBgB,SAAEnB,EAAMwB,OAAc,KAC9FxB,EAAMwB,MAAQC,EAAQzB,EAAMwB,MAC3BR,EAAA,MAAA,CAAKb,UAAU,qBAAoBgB,SACjCH,EAACO,EAAK,CAACG,UAAU,WAAWC,KAAM,EAAER,SAChCnB,EAAMwB,KAAkBI,KAAI,SAACC,GAC7B,OAAOA,SAIX,KACH7B,EAAMmB,SACLH,EAAA,MAAA,CAAKb,UAAU,wBAAwBO,MAAOV,EAAM8B,aAAaX,SAC9DnB,EAAMmB,WAEP,OAGV,EAEApB,EAAagC,aAAe,CAC1BT,cAAe,KACfjB,WAAY"}
|
|
@@ -8,5 +8,5 @@ import './../dropdown-menu-wrapper/index.css';
|
|
|
8
8
|
import './../tag-list-select/index.css';
|
|
9
9
|
import './index.css';
|
|
10
10
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
11
|
-
export{t as tableCellRender}from"../cell-render-
|
|
11
|
+
export{t as tableCellRender}from"../cell-render-03055c65.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"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-number";import"@dimjs/lang/cjs/is-empty";import"@flatbiz/utils";import"antd";import"react";import"../button-operate-6add2cbf.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../button-wrapper-c63ea6fc.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";import"../fba-utils-1e895394.js";import"../dropdown-menu-wrapper-2c4b6cad.js";import"../tag-list-select-066f682f.js";
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.fba-tabs-wrapper-fixed{height:100%;overflow:hidden}.fba-tabs-wrapper-fixed>.ant-tabs-content-holder{flex:1;overflow-y:auto}.fba-tabs-wrapper-fixed>.ant-tabs-content-holder>.ant-tabs-content,.fba-tabs-wrapper-fixed>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{height:100%}.fba-tabs-wrapper-hidden-header .ant-tabs-nav{display:none}
|
|
1
|
+
.fba-tabs-wrapper .ant-tabs-nav{margin:0}.fba-tabs-wrapper-fixed{height:100%;overflow:hidden}.fba-tabs-wrapper-fixed>.ant-tabs-content-holder{flex:1;overflow-y:auto}.fba-tabs-wrapper-fixed>.ant-tabs-content-holder>.ant-tabs-content,.fba-tabs-wrapper-fixed>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{height:100%}.fba-tabs-wrapper-hidden-header .ant-tabs-nav{display:none}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
export{T as TabsWrapper}from"../tabs-wrapper-
|
|
4
|
+
export{T as TabsWrapper}from"../tabs-wrapper-0a2da713.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@dimjs/lang/cjs/is-undefined";import"@flatbiz/utils";import"antd";import"react";import"react/jsx-runtime";
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{_ as e,a}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as t}from"@wove/react/cjs/hooks";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{sessionStorageCache as c}from"@flatbiz/utils";import{Tabs as o}from"antd";import{useMemo as s}from"react";import{jsx as n}from"react/jsx-runtime";var v=["isSticky","isFixed","activeCacheKey","cancelActiveCache","hiddenTabHeader"];var l=function l(d){var f=d.isSticky,u=f===void 0?true:f,m=d.isFixed,p=m===void 0?true:m,y=d.activeCacheKey,
|
|
3
|
-
//# sourceMappingURL=tabs-wrapper-
|
|
2
|
+
import{_ as e,a}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as t}from"@wove/react/cjs/hooks";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{sessionStorageCache as c}from"@flatbiz/utils";import{Tabs as o}from"antd";import{useMemo as s}from"react";import{jsx as n}from"react/jsx-runtime";var v=["isSticky","isFixed","activeCacheKey","cancelActiveCache","hiddenTabHeader"];var l=function l(d){var f=d.isSticky,u=f===void 0?true:f,m=d.isFixed,p=m===void 0?true:m,y=d.activeCacheKey,b=d.cancelActiveCache,h=d.hiddenTabHeader,K=e(d,v);var j=Object.prototype.hasOwnProperty.call(d,"activeKey");var C=y||"tabs-wrapper-activeKey";var A=i(p)?u:p;var g=t.useCallbackRef((function(e){if(b!==true&&!j){c.set(C,{activeKey:e})}K.onChange==null?void 0:K.onChange(e)}));var w=s((function(){var e;if(b===true||j){return d.defaultActiveKey}var a=(e=c.get(C))==null?void 0:e.activeKey;return a||K.defaultActiveKey}),[C,b,j,K.defaultActiveKey,d.defaultActiveKey]);var x=r("fba-tabs-wrapper",{"fba-tabs-wrapper-fixed":A,"fba-tabs-wrapper-hidden-header":h},K.className);return n(o,a({},K,{className:x,defaultActiveKey:w,onChange:g}))};export{l as T};
|
|
3
|
+
//# sourceMappingURL=tabs-wrapper-0a2da713.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-wrapper-
|
|
1
|
+
{"version":3,"file":"tabs-wrapper-0a2da713.js","sources":["@flatbiz/antd/src/tabs-wrapper/tabs-wrapper.tsx"],"sourcesContent":["import { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { sessionStorageCache } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Tabs, TabsProps } from 'antd';\nimport { useMemo } from 'react';\nimport './style.less';\n\nexport type TabsWrapperProps = TabsProps & {\n /**\n * Tabs Header 提供 Sticky 效果,默认值:true\n * @deprecated 已废弃,请使用 isFixed 属性\n */\n isSticky?: boolean;\n /**\n * Tabs Header 提供 Fixed 效果,默认值:true\n */\n isFixed?: boolean;\n /** 是否取消 active 缓存 */\n cancelActiveCache?: boolean;\n activeCacheKey?: string;\n /** 隐藏头部 */\n hiddenTabHeader?: boolean;\n};\n\n/**\n * Tabs 包装组件\n * ```\n * 1. Tabs Header 提供 Sticky 效果,默认值:true\n * 2. 使用时,父级必须要有高度,可置于Flex布局中\n * 3. 默认缓存激活的tab item(activeKey受控操作下缓存无效)\n * 当未设置activeKey,非受控操作时,组件内部会会话缓存activeKey,在刷新时,会显示上次的激活的tab item\n * 缓存Key:如果未设置 activeCacheKey,则使用默认的 cache key(tabs-wrapper-activeKey)\n * 缓存模式:会话缓存,在浏览器关闭后,会清除\n * ```\n */\nexport const TabsWrapper = (props: TabsWrapperProps) => {\n const {\n isSticky = true,\n isFixed = true,\n activeCacheKey,\n cancelActiveCache,\n hiddenTabHeader,\n ...otherProps\n } = props;\n // 是否受控操作\n const isControl = Object.prototype.hasOwnProperty.call(props, 'activeKey');\n const cacheKey = activeCacheKey || 'tabs-wrapper-activeKey';\n const isFixedNew = isUndefined(isFixed) ? isSticky : isFixed;\n\n const onChange = hooks.useCallbackRef((activeKey: string) => {\n if (cancelActiveCache !== true && !isControl) {\n sessionStorageCache.set(cacheKey, { activeKey });\n }\n otherProps.onChange?.(activeKey);\n });\n\n const defaultActiveKey = useMemo(() => {\n if (cancelActiveCache === true || isControl) {\n return props.defaultActiveKey;\n }\n const chcheActiveKey = sessionStorageCache.get(cacheKey)?.activeKey as string | undefined;\n return chcheActiveKey || otherProps.defaultActiveKey;\n }, [cacheKey, cancelActiveCache, isControl, otherProps.defaultActiveKey, props.defaultActiveKey]);\n\n const className = classNames(\n 'fba-tabs-wrapper',\n { 'fba-tabs-wrapper-fixed': isFixedNew, 'fba-tabs-wrapper-hidden-header': hiddenTabHeader },\n otherProps.className,\n );\n\n return (\n <Tabs {...otherProps} className={className} defaultActiveKey={defaultActiveKey} onChange={onChange} />\n );\n};\n"],"names":["TabsWrapper","props","_props$isSticky","isSticky","_props$isFixed","isFixed","activeCacheKey","cancelActiveCache","hiddenTabHeader","otherProps","_objectWithoutPropertiesLoose","_excluded","isControl","Object","prototype","hasOwnProperty","call","cacheKey","isFixedNew","_isUndefined","onChange","_hooks","useCallbackRef","activeKey","sessionStorageCache","set","defaultActiveKey","useMemo","_sessionStorageCache$","chcheActiveKey","get","className","_classNames","_jsx","Tabs","_extends"],"mappings":";kdAoCaA,EAAc,SAAdA,EAAeC,GAC1B,IAAAC,EAOID,EANFE,SAAAA,EAAQD,SAAG,EAAA,KAAIA,EAAAE,EAMbH,EALFI,QAAAA,EAAOD,SAAG,EAAA,KAAIA,EACdE,EAIEL,EAJFK,eACAC,EAGEN,EAHFM,kBACAC,EAEEP,EAFFO,gBACGC,EAAUC,EACXT,EAAKU,GAET,IAAMC,EAAYC,OAAOC,UAAUC,eAAeC,KAAKf,EAAO,aAC9D,IAAMgB,EAAWX,GAAkB,yBACnC,IAAMY,EAAaC,EAAYd,GAAWF,EAAWE,EAErD,IAAMe,EAAWC,EAAMC,gBAAe,SAACC,GACrC,GAAIhB,IAAsB,OAASK,EAAW,CAC5CY,EAAoBC,IAAIR,EAAU,CAAEM,UAAAA,GACtC,CACAd,EAAWW,UAAXX,UAAAA,EAAAA,EAAWW,SAAWG,EACxB,IAEA,IAAMG,EAAmBC,GAAQ,WAAM,IAAAC,EACrC,GAAIrB,IAAsB,MAAQK,EAAW,CAC3C,OAAOX,EAAMyB,gBACf,CACA,IAAMG,GAAcD,EAAGJ,EAAoBM,IAAIb,KAAxBW,UAAAA,EAAAA,EAAmCL,UAC1D,OAAOM,GAAkBpB,EAAWiB,gBACtC,GAAG,CAACT,EAAUV,EAAmBK,EAAWH,EAAWiB,iBAAkBzB,EAAMyB,mBAE/E,IAAMK,EAAYC,EAChB,mBACA,CAAE,yBAA0Bd,EAAY,iCAAkCV,GAC1EC,EAAWsB,WAGb,OACEE,EAACC,EAAIC,KAAK1B,EAAU,CAAEsB,UAAWA,EAAWL,iBAAkBA,EAAkBN,SAAUA,IAE9F"}
|
|
@@ -9,5 +9,5 @@ import './../input-search-wrapper/index.css';
|
|
|
9
9
|
import './../request-status/index.css';
|
|
10
10
|
import './index.css';
|
|
11
11
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
12
|
-
export{T as TreeWrapper}from"../tree-wrapper-
|
|
12
|
+
export{T as TreeWrapper}from"../tree-wrapper-85aa72d7.js";import"@ant-design/icons/es/icons/CaretDownFilled";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-array";import"@dimjs/utils/cjs/extend";import"@wove/react/cjs/hooks";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/model";import"antd";import"react";import"@flatbiz/utils";import"../button-operate-6add2cbf.js";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper-c63ea6fc.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";import"../fba-utils-1e895394.js";import"../dropdown-menu-wrapper-2c4b6cad.js";import"../input-search-wrapper-10d4a9b9.js";import"../request-status-03fc60e2.js";import"@dimjs/model-react";import"@dimjs/utils/cjs/tree";import"@dimjs/lang/cjs/is-object";import"dequal";
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
+
import e from"@ant-design/icons/es/icons/CaretDownFilled";import r from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{extend as a}from"@dimjs/utils/cjs/extend";import{hooks as i}from"@wove/react/cjs/hooks";import{_ as l,a as u}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as s}from"@dimjs/model";import{Spin as o,Tree as c,Button as d,message as v}from"antd";import{forwardRef as f,useState as p,useMemo as h,useRef as m,useImperativeHandle as g,Fragment as b,isValidElement as y}from"react";import{treeToArray as L,treeToTiledArray as C,treeLeafParentsArray as w,isUndefinedOrNull as R,toArray as q,treeFilter as N}from"@flatbiz/utils";import{a as k}from"./button-operate-6add2cbf.js";import{D as S}from"./dropdown-menu-wrapper-2c4b6cad.js";import{fbaHooks as T}from"./fba-hooks/index.js";import{I as j}from"./input-search-wrapper-10d4a9b9.js";import{R as D}from"./request-status-03fc60e2.js";import{Model as E}from"@dimjs/model-react";import{tree as P}from"@dimjs/utils/cjs/tree";import{isObject as x}from"@dimjs/lang/cjs/is-object";import{dequal as A}from"dequal";import{jsxs as I,jsx as _}from"react/jsx-runtime";var V={treeList:[],treeTiledArray:[],queryIsEmpty:false};var O={actions:{setTreeList:function e(r){return function(e){e.treeList=r.treeList||[];e.treeTiledArray=L(e.treeList,r.childrenName);e.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},treeListAppendChildren:function e(r){return function(e){var t=L(e.treeList,r.childrenName);var a=t.find((function(e){return e[r.valueName]===r.value}));if(a){if(n(r.appendList)&&r.appendList.length>0){a[r.childrenName]=r.appendList}else{a.isLeaf=true}}e.treeTiledArray=L(e.treeList,r.childrenName)}}},state:V};var K={};var F=function e(r){if(!K[r]){K[r]=E(O)}return K[r]};var M=function e(r,t,n){var a=C(t,n);return w(r,a,true,{value:"value",parentValue:"parentValue"})};var U=function e(r,t){var a=R(r)?[]:r;a=n(a)?a:[a];a=a.map((function(e){if(x(e))return e[t.value];return e}));return a};var B=function e(r,t){var n=U(r,t);var a={};n.forEach((function(e){a[e]=true}));return a};var H=function e(r,t,n){if(R(r)&&R(t))return true;var a=B(r,n);var i=B(t,n);var l=A(a,i);return l};var W=function e(r,t,n){var a=n.node.key;var i=n.dragNode.key;var l=n.node.pos.split("-");var u=n.dropPosition-Number(l[l.length-1]);var o=t.value;var c=t.children;var d=function e(r,t,n){for(var a=0;a<r.length;a++){if(r[a][o]===t){return n(r[a],a,r)}if(r[a][c]){e(r[a][c],t,n)}}};var v=s(r);var f;d(v,i,(function(e,r,t){t.splice(r,1);f=e}));if(!n.dropToGap){d(v,a,(function(e){e[c]=e[c]||[];e[c].unshift(f)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&u===1){d(v,a,(function(e){e[c]=e[c]||[];e[c].unshift(f)}))}else{var p=[];var h;d(v,a,(function(e,r,t){p=t;h=r}));if(u===-1){p.splice(h,0,f)}else{p.splice(h+1,0,f)}}return{dataList:v,dragNodeData:z(i,v,t)}};var z=function e(r,t,n){var a;var i=n.value;var l=n.children;P.walkThroughTree((a={},a[i]=undefined,a[l]=t,a),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[i]}),l);var u=L(t,l);var s=u.find((function(e){return e[i]===r}));return{parentId:s==null?void 0:s["__parentId"],id:s==null?void 0:s[i],index:s==null?void 0:s["__index"]}};var G=["style","serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle"];var J=f((function(f,L){var w=f.style,E=f.serviceConfig,P=f.effectDependencyList,x=f.selectorTreeList,A=f.value,V=f.onChange,O=f.modelKey,K=f.checkableResponseParentNode,B=K===void 0?true:K,z=f.checkable,J=f.onSelectorTreeListChange,Q=f.onRequestResponseChange,X=f.treeItemDataAdapter,Y=f.searchValue,Z=f.showSearch,$=f.searchPlaceholder,ee=f.requestMessageConfig,re=f.labelInValueFieldNames,te=f.labelInValue,ne=f.disabledCanUse,ae=f.menuLayoutType,ie=f.menuTriggerType,le=f.initRootExpand,ue=f.searchResultType,se=f.onDropNodeHandle,oe=l(f,G);var ce=f.hasOwnProperty("selectorTreeList");var de=E||{};var ve=P||[];var fe=p(),pe=fe[0],he=fe[1];var me=F(O).useStore(),ge=me[0],be=me[1];var ye=T.useSafeState(false),Le=ye[0],Ce=ye[1];var we="request-progress-"+f.modelKey;var Re=h((function(){return u({label:"label",value:"value",children:"children"},f.fieldNames)}),[f.fieldNames]);var qe=m();var Ne=ae===undefined?"fold":ae;var ke=ie===undefined?"click":ie;var Se=z===true;var Te=h((function(){return u({label:"label",value:"value"},re)}),[re]);var je=p(),De=je[0],Ee=je[1];var Pe=m(true);var xe=p(0),Ae=xe[0],Ie=xe[1];var _e=m();var Ve=h((function(){var e=U(A,Te);return e}),[Te,A]);T.useEffectCustom((function(){if(R(A)&&Pe.current||ge.treeList.length==0)return;Pe.current=false;if(!H(A,_e.current,Te)){console.log("modelKey:"+O+" TreeWrapper key refresh",A,_e.current);_e.current=Se?Ve:Ve[0];var e=Ue(Ve,true);he(Array.from(new Set(e)));qe.current=Ve;Ie(Date.now())}}),[A,ge.treeList]);var Oe=function e(r){return r===""||R(r)};var Ke=function e(r){var t=de.onRequestResultAdapter?de.onRequestResultAdapter(r):r;return t};T.useEffectCustom((function(){Ee(Y)}),[Y]);var Fe=i.useCallbackRef((function(){return new Promise((function(e,r){var t,n,i,l,u;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{Ce(false);void v.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!de.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=de.requiredParamsKeys;n=a({},de.params);if(t){i=t.find((function(e){return Oe(n[e])}));if(i){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return s()}catch(e){return o(e)}};var d=function(e){try{window[we]=false;Ce(false);void be.changeRequestStatus("request-error");return c()}catch(e){return o(e)}};try{Ce(true);return Promise.resolve(be.changeRequestStatus("request-progress")).then((function(e){try{window[we]=true;return Promise.resolve(de.onRequest==null?void 0:de.onRequest(n)).then((function(e){try{l=e;Q==null?void 0:Q(l);u=Ke(l);Me(u||[]);Ce(false);if(le&&q(u).length){he([u==null?void 0:u[0][Re.value]])}window[we]=false;return c()}catch(e){return d(e)}}),d)}catch(e){return d(e)}}),d)}catch(e){d(e)}}catch(e){o(e)}}))}));T.useEffectCustom((function(){if(ce)return;if(Boolean(ve.length)){void Fe();return}var e=F(O).getState();if(e.requestStatus==="request-success"){return}if(!window[we]){void Fe();return}}),ve);T.useEffectCustom((function(){if(ce){Me(x||[])}}),[x]);var Me=i.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&ge.treeList.length===0){void be.changeRequestStatus("request-success");return}void be.setTreeList({treeList:e||[],childrenName:Re.children});J==null?void 0:J(e)}));var Ue=i.useCallbackRef((function(e,r){var t=[];e.forEach((function(e){if(!r&&pe!=null&&pe.includes(e))return;var n=M(e,ge.treeList,Re);t=t.concat(n.map((function(e){return e.value})))}));return t}));i.useUpdateEffect((function(){if(De){var e=C(ge.treeList||[],Re);var r=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(De||"")}));he((function(e){var t=Ue(r.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(t))}))}else{he([])}}),[De]);g(L,(function(){return{onClearSelectorList:function e(){void be.resetTreeList()},getTreeDataList:function e(){return ge.treeList}}}));var Be=i.useCallbackRef((function(e){he(e)}));var He=i.useCallbackRef((function(e,r,t){_e.current=e;var a=R(r)?[]:n(r)?r:[r];if(R(e)){V==null?void 0:V(e,r,t);return}if(te){var i=Te.label;var l=Te.value;var u=a.map((function(e){var r;return r={},r[i]=e[Re.label],r[l]=e[Re.value],r}));if(n(e)){V==null?void 0:V(u,a,t)}else{V==null?void 0:V(u[0],a[0],t)}}else{if(n(e)){V==null?void 0:V(e,a,t)}else{V==null?void 0:V(e,a[0],t)}}}));var We=i.useCallbackRef((function(e,r){var t=f.checkStrictly?e.checked:e;t=R(e)?[]:e;t=n(t)?t:[t];var a=[];var i=[];var l=[];var u=[];t.forEach((function(e){var r=ge.treeTiledArray.find((function(r){return r[Re.value]===e}));if(!r)return;var t=r==null?void 0:r[Re.children];if(!n(t)||t.length===0){a.push(r);i.push(r[Re.value])}l.push(r);u.push(r[Re.value])}));if(z){he((function(e){var r=Ue(i).concat(e||[]);return Array.from(new Set(r))}));if(!B&&!f.checkStrictly){He(i,a,l)}else{He(u,l,l)}}else{if(t[0]){var s=l.find((function(e){return e[Re.value]===t[0]}));He(t[0],s,[s])}else{var o=r.node[Re.value];var c=ge.treeTiledArray.find((function(e){return e[Re.value]===o}));He(undefined,c,[c])}}}));var ze=i.useCallbackRef((function(e){return X==null?void 0:X(e)}));var Ge=h((function(){var e=s(ge.treeList||[]);if(De&&ue!=="highlight"){return N(s(ge.treeList||[]),(function(e){var r;var t=(r=e[Re.label])==null?void 0:r.toLowerCase();return t.indexOf(De.toLowerCase())>=0}))}return e}),[Re.label,ue,ge.treeList,De]);var Je=h((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var a;var i=(ze==null?void 0:ze(r))||r;var l=ne?undefined:i.disabled;var s=i[Re.label];var o;if(De){var c=s.indexOf(De);var d=s.substring(0,c);var v=s.slice(c+De.length);o=c>-1?I("span",{className:t({"v-tree-item-disabled":i.disabled}),children:[d,_("span",{className:"site-tree-search-value",children:De}),v]}):null}if(!o){o=_("span",{className:t({"v-tree-item-disabled":i.disabled}),children:s})}var f=i[Re.children];return u({},i,(a={disabled:l},a[Re.label]=o,a._treeItemName=s,a._disabled=i.disabled,a[Re.children]=n(f)&&f.length>0?e(f):undefined,a))}))};return e(Ge)}),[Ge,ze,ne,Re.label,Re.children,De]);var Qe=i.useCallbackRef((function(e){return new Promise((function(r,t){return new Promise((function(n,a){var i,l,u,s;if(e[Re.children]){r();return n()}var o=function(){try{return n()}catch(e){return a(e)}};var c=function(e){try{void v.error(e.message||"数据加载异常...");t();return o()}catch(e){return a(e)}};try{return Promise.resolve((i=f.loadDataServiceConfig)==null?void 0:i.onRequest==null?void 0:i.onRequest((l=f.loadDataServiceConfig)==null?void 0:l.getParams==null?void 0:l.getParams(e))).then((function(t){try{u=t;s=de.onRequestResultAdapter?de.onRequestResultAdapter(u):u;void be.treeListAppendChildren({value:e[Re.value],appendList:s,childrenName:Re.children,valueName:Re.value}).then((function(e){Me(e.treeList);r()}));return o()}catch(e){return c(e)}}),c)}catch(e){c(e)}}))}))}));var Xe=i.useCallbackRef((function(e){var r=e==null?void 0:e[Re.children];var t=f.loadDataFlag;var n=t?!e.isLeaf:false;var a=r&&r.length>0||n;return!a}));var Ye=i.useCallbackRef((function(e){var n,a;var i=e._treeItemName||e[Re.label];if(Ne==="fold"){var l;var s=[];if((l=f.menuOptions)!=null&&l.fold){var o,c,d;s=((o=f.menuOptions)==null?void 0:(c=o[Ne])==null?void 0:c.call(o,u({},e,(d={},d[Re.label]=i,d))))||[]}else{var v;s=(f.getMenuOptions==null?void 0:f.getMenuOptions(u({},e,(v={},v[Re.label]=i,v))))||[]}return I(b,{children:[_("span",{className:"tree-item-title",children:e==null?void 0:e[Re.label]}),s.length>0&&_(S,{menuList:s,children:_(r,{})})]})}var p=(n=f.menuOptions)==null?void 0:n.tile==null?void 0:n.tile(u({},e,(a={},a[Re.label]=i,a)));return I(b,{children:[_("span",{className:"tree-item-title",children:e==null?void 0:e[Re.label]}),p?_(k,u({},p,{gap:5,className:t("tree-item-title-operate",p.className)})):null]})}));var Ze=i.useDebounceCallback((function(e){Ee(e);f.onSearchValueChange==null?void 0:f.onSearchValueChange(e)}),300);var $e=i.useCallbackRef((function(e){Ze(e.target.value)}));var er=i.useCallbackRef((function(e){if(!f.icon)return null;if(y(f.icon))return f.icon;var r=Xe(e.data);return f.icon(u({},e,{isParent:!r,isLeaf:r}))}));var rr=h((function(){return{title:Re.label,key:Re.value,children:Re.children}}),[Re]);var tr=Je.length>0&&ge.requestStatus!=="request-error";var nr=u({showLine:{showLeafIcon:false},titleRender:Ye,blockNode:true,switcherIcon:_(e,{}),onDrop:function e(r){var t=W(Ge,Re,r),n=t.dataList,a=t.dragNodeData;se==null?void 0:se(a);Me(n)}},oe,{fieldNames:rr,expandedKeys:pe,treeData:Je,onExpand:Be,loadData:f.loadDataFlag?Qe:undefined,style:{width:"100%"},icon:er});var ar={onCheck:We,checkable:z,defaultCheckedKeys:qe.current};var ir={onSelect:We,multiple:false,defaultSelectedKeys:qe.current};var lr=z?ar:ir;var ur=t("v-tree-wrapper","v-tree-wrapper-menu-"+ke);var sr=ge.treeList.length>0&&!tr&&De;return I("div",{className:ur,style:w,children:[!!Z&&I("div",{className:"v-tree-wrapper-search-area",children:[_(j,{className:"v-tree-wrapper-search",placeholder:$,onChange:$e,value:Y,allowClear:true}),!!f.searchExtraElement&&_("span",{className:"v-tree-wrapper-search-extra",children:f.searchExtraElement})]}),tr?I("div",{className:"v-tree-wrapper-tree-wrapper",children:[_(o,{spinning:ge.requestStatus==="request-progress"}),_(c,u({},lr,nr,{className:"v-tree-wrapper-tree"}),Ae)]}):_(D,{status:ge.requestStatus,loading:Le,messageConfig:u({"request-success":sr?"搜索结果为空":"暂无数据"},ee),errorButton:_(d,{type:"primary",onClick:Fe,children:"重新获取数据"})})]})}));J.defaultProps={disabledCanUse:true};export{J as T};
|
|
3
|
+
//# sourceMappingURL=tree-wrapper-85aa72d7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-wrapper-85aa72d7.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TPlainObject, treeToArray, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n };\n resetTreeList: void;\n changeRequestStatus: TRequestStatus;\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const array = treeToArray(state.treeList, params.childrenName);\n const target = array.find((item) => item[params.valueName] === params.value);\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, any>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { TAny, TPlainObject, treeLeafParentsArray, treeToTiledArray } from '@flatbiz/utils';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: { label?: string; value?: string; children?: string },\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nimport { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { tree } from '@dimjs/utils';\nimport { isUndefinedOrNull, LabelValueItem, treeToArray } from '@flatbiz/utils';\nimport { DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\n\nexport const getVauleList = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: TAny,\n value2: TAny,\n labelInValueFieldNames: LabelValueItem<string | number>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n\ntype OnTreeDropMethod = (\n dataList: TPlainObject[],\n fieldNames: { value: string; children: string },\n info: TAny,\n) => {\n dataList: TPlainObject[];\n dragNodeData: {\n parentId?: string | number;\n id: string | number;\n index: number;\n };\n};\n\nexport const onTreeDrop: OnTreeDropMethod = (dataList, fieldNames, info) => {\n const dropKey = info.node.key;\n const dragKey = info.dragNode.key;\n const dropPos = info.node.pos.split('-');\n const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);\n const treeKeyName = fieldNames.value;\n const treeChildrenName = fieldNames.children;\n\n const loop = (\n data: DataNode[],\n key: React.Key,\n callback: (node: DataNode, i: number, data: DataNode[]) => void,\n ) => {\n for (let i = 0; i < data.length; i++) {\n if (data[i][treeKeyName] === key) {\n return callback(data[i], i, data);\n }\n if (data[i][treeChildrenName]) {\n loop(data[i][treeChildrenName]!, key, callback);\n }\n }\n };\n const data = cloneState(dataList) as DataNode[];\n\n // Find dragObject\n let dragObj: DataNode;\n loop(data, dragKey, (item, index, arr) => {\n arr.splice(index, 1);\n dragObj = item;\n });\n\n if (!info.dropToGap) {\n // Drop on the content\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n });\n } else if (\n (info.node.props.children || []).length > 0 && // Has children\n info.node.props.expanded && // Is expanded\n dropPosition === 1 // On the bottom gap\n ) {\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n // in previous version, we use item.children.push(dragObj) to insert the\n // item to the tail of the children\n });\n } else {\n let ar: DataNode[] = [];\n let i: number;\n loop(data, dropKey, (_item, index, arr) => {\n ar = arr;\n i = index;\n });\n if (dropPosition === -1) {\n ar.splice(i!, 0, dragObj!);\n } else {\n ar.splice(i! + 1, 0, dragObj!);\n }\n }\n return {\n dataList: data,\n dragNodeData: dragNodeData(dragKey, data, fieldNames),\n };\n};\n\nexport const dragNodeData = (\n dorpNodeId: TAny,\n dataList: TAny[],\n fieldNames: { value: string; children: string },\n) => {\n const id = fieldNames.value;\n const children = fieldNames.children;\n tree.walkThroughTree<TPlainObject, TAny>(\n { [id]: undefined, [children]: dataList } as TAny,\n (node, index, _parent) => {\n node['__index'] = index;\n node['__parentId'] = _parent?.[id];\n },\n children,\n );\n const tileList = treeToArray(dataList, children);\n const target = tileList.find((item) => item[id] === dorpNodeId);\n return {\n parentId: target?.['__parentId'],\n id: target?.[id],\n index: target?.['__index'],\n };\n};\n","import { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend } from '@dimjs/utils';\n\nimport { hooks } from '@wove/react';\nimport { Button, message, Spin, Tree, TreeProps } from 'antd';\nimport {\n DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { isUndefinedOrNull, TAny, toArray, TPlainObject, treeFilter, treeToTiledArray } from '@flatbiz/utils';\n\nimport { ButtonOperate, ButtonOperateItem, ButtonOperateProps } from '../button-operate';\nimport { DropdownMenuItem, DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\nimport { treeWrapperModel } from './model';\nimport './style.less';\nimport { getExpandedKeys, getVauleList, onTreeDrop, treeWrapperValueDeepEqual } from './utils';\n\ntype TreeWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\ntype TreeLoadDataServiceConfig = {\n getParams: (dataItem: TPlainObject) => TPlainObject;\n onRequest: (params: TPlainObject) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeWrapperMenuItem = {\n title: string;\n onClick: (dataItem: TPlainObject, event) => void;\n icon?: ReactElement;\n};\n\nexport type TreeWrapperProps = Omit<\n TreeProps,\n | 'expandedKeys'\n | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'defaultCheckedKeys'\n | 'defaultSelectedKeys'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n> & {\n modelKey: string;\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n ) => void;\n fieldNames?: { label?: string; value?: string; children?: string };\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n loadDataFlag?: boolean;\n /** 菜单结构类型 tile/平铺 fold/折叠;默认:fold */\n menuLayoutType?: 'tile' | 'fold';\n /** 菜单触发类型,默认:click */\n menuTriggerType?: 'click' | 'hover';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期,请使用 menuOptions\n * @returns\n * ```\n * menuLayoutType = tile 无效\n * ```\n */\n getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];\n\n /**\n * 根据 menuLayoutType 类型赋值\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n icon?: (data: { isParent: boolean; isLeaf: boolean }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n /** 搜素过滤方式,高亮 | 过滤;默认:filter */\n searchResultType?: 'highlight' | 'filter';\n /**\n * 拖拽节点处理,自定义onDrop事件后,失效\n * ```\n * 参数\n * 1. parentId 当前拖拽节点的父节点ID\n * 2. id 当前拖拽节点ID\n * 3. index 当前拖拽节点所在数组下标\n * ```\n */\n onDropNodeHandle?: (result: { parentId?: string | number; id: string | number; index: number }) => void;\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n};\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>((props, ref) => {\n const {\n style,\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n onRequestResponseChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\n initRootExpand,\n searchResultType,\n onDropNodeHandle,\n ...otherProps\n } = props;\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>();\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNames = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', ...props.fieldNames };\n }, [props.fieldNames]);\n // 必须是数组格式\n const defaultValueRef = useRef<Array<string | number>>();\n const menuLayoutTypeNew = menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew = menuTriggerType === undefined ? 'click' : menuTriggerType;\n\n const isMultiple = checkable === true;\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n // tree 搜索值\n const [treeSearchValue, setTreeSearchValue] = useState<string>();\n\n const isFirstUseValueRef = useRef(true);\n const [refreshKey, setRefreshKey] = useState(0);\n const innerOperateValueRef = useRef<Array<string | number> | string | number>();\n\n const valueList = useMemo(() => {\n const tempList = getVauleList(value, labelInValueFieldNamesMerge);\n return tempList;\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if ((isUndefinedOrNull(value) && isFirstUseValueRef.current) || state.treeList.length == 0) return;\n isFirstUseValueRef.current = false;\n if (!treeWrapperValueDeepEqual(value, innerOperateValueRef.current, labelInValueFieldNamesMerge)) {\n console.log(`modelKey:${modelKey} TreeWrapper key refresh`, value, innerOperateValueRef.current);\n innerOperateValueRef.current = isMultiple ? valueList : valueList[0];\n // 重新计算 expandedKeys\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(expandedKeys)));\n defaultValueRef.current = valueList;\n setRefreshKey(Date.now());\n }\n }, [value, state.treeList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n return respDataList;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n console.warn(`TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n onRequestResponseChange?.(_respData);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n onChangeSelectorList(respData || []);\n setLoading(false);\n if (initRootExpand && toArray(respData).length) {\n setTreeExpandedKeys([respData?.[0][fieldNames.value]]);\n }\n window[requestPreKey] = false;\n } catch (error) {\n window[requestPreKey] = false;\n setLoading(false);\n void actions.changeRequestStatus('request-error');\n }\n } catch (error) {\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\n }\n }, newEffectDependencyList);\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) {\n onChangeSelectorList(selectorTreeList || []);\n }\n }, [selectorTreeList]);\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeList.length === 0) {\n void actions.changeRequestStatus('request-success');\n return;\n }\n void actions.setTreeList({\n treeList: dataList || [],\n childrenName: fieldNames.children,\n });\n onSelectorTreeListChange?.(dataList);\n });\n\n const getTreeExpandedKeys = hooks.useCallbackRef((valueList: Array<string | number>, refresh?: boolean) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetList = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n });\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const tiledArray = treeToTiledArray(state.treeList || [], fieldNames);\n const targetList = tiledArray.filter((item) => item.label?.includes(treeSearchValue || ''));\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(targetList.map((item) => item.value)).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n };\n });\n\n const onExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onRespChange = hooks.useCallbackRef((selectedKey, selectInfo?, selectAllList?) => {\n innerOperateValueRef.current = selectedKey;\n const selectList = isUndefinedOrNull(selectInfo) ? [] : isArray(selectInfo) ? selectInfo : [selectInfo];\n if (isUndefinedOrNull(selectedKey)) {\n onChange?.(selectedKey, selectInfo, selectAllList);\n return;\n }\n if (labelInValue) {\n const lvLabel = labelInValueFieldNamesMerge.label;\n const lvValue = labelInValueFieldNamesMerge.value;\n const labelInValueList = selectList.map((item) => {\n return {\n [lvLabel]: item[fieldNames.label],\n [lvValue]: item[fieldNames.value],\n };\n });\n if (isArray(selectedKey)) {\n onChange?.(labelInValueList, selectList, selectAllList);\n } else {\n onChange?.(labelInValueList[0], selectList[0], selectAllList);\n }\n } else {\n if (isArray(selectedKey)) {\n onChange?.(selectedKey, selectList, selectAllList);\n } else {\n onChange?.(selectedKey, selectList[0], selectAllList);\n }\n }\n });\n\n const onTreeChangeHandle = hooks.useCallbackRef((checkedData, operateInfo) => {\n let checkedValueList = props.checkStrictly ? checkedData.checked : checkedData;\n checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = isArray(checkedValueList) ? checkedValueList : [checkedValueList];\n\n const selectedLeafList = [] as TPlainObject[];\n const selectedLeafValueList = [] as Array<string | number>;\n const selectedAllList = [] as TPlainObject[];\n const selectedAllValueList = [] as Array<string | number>;\n checkedValueList.forEach((item) => {\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === item);\n if (!target) return;\n const children = target?.[fieldNames.children];\n if (!isArray(children) || children.length === 0) {\n selectedLeafList.push(target);\n selectedLeafValueList.push(target[fieldNames.value]);\n }\n selectedAllList.push(target);\n selectedAllValueList.push(target[fieldNames.value]);\n });\n\n if (checkable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(selectedLeafValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n if (!checkableResponseParentNode && !props.checkStrictly) {\n onRespChange(selectedLeafValueList, selectedLeafList, selectedAllList);\n } else {\n onRespChange(selectedAllValueList, selectedAllList, selectedAllList);\n }\n } else {\n if (checkedValueList[0]) {\n const currentNode = selectedAllList.find((item) => item[fieldNames.value] === checkedValueList[0]);\n onRespChange(checkedValueList[0], currentNode, [currentNode]);\n } else {\n const nodeValue = operateInfo.node[fieldNames.value];\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === nodeValue);\n onRespChange(undefined, target, [target]);\n }\n }\n });\n\n const treeItemDataAdapterHandle = hooks.useCallbackRef((dataItem) => {\n return treeItemDataAdapter?.(dataItem);\n });\n\n const originalDataList = useMemo(() => {\n const list = cloneState(state.treeList || []);\n if (treeSearchValue && searchResultType !== 'highlight') {\n return treeFilter(cloneState(state.treeList || []), (node) => {\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n });\n }\n return list;\n }, [fieldNames.label, searchResultType, state.treeList, treeSearchValue]);\n\n const treeData = useMemo(() => {\n const loop = (data: TAny[]): TAny[] =>\n data?.map((item) => {\n const adapterItem = treeItemDataAdapterHandle?.(item) || item;\n const disabled = disabledCanUse ? undefined : adapterItem.disabled;\n const strTitle = adapterItem[fieldNames.label] as string;\n let titleDom;\n if (treeSearchValue) {\n const index = strTitle.indexOf(treeSearchValue);\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n titleDom =\n index > -1 ? (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>\n {beforeStr}\n <span className=\"site-tree-search-value\">{treeSearchValue}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom) {\n titleDom = (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>{strTitle}</span>\n );\n }\n const children = adapterItem[fieldNames.children];\n return {\n ...adapterItem,\n disabled,\n [fieldNames.label]: titleDom,\n _treeItemName: strTitle,\n _disabled: adapterItem.disabled,\n [fieldNames.children]: isArray(children) && children.length > 0 ? loop(children) : undefined,\n };\n });\n return loop(originalDataList);\n }, [\n originalDataList,\n treeItemDataAdapterHandle,\n disabledCanUse,\n fieldNames.label,\n fieldNames.children,\n treeSearchValue,\n ]);\n\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem),\n );\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error) {\n void message.error(error.message || '数据加载异常...');\n // 此处失败后,会重试“loadData”请求多次\n reject();\n }\n });\n });\n\n const isLeafNode = hooks.useCallbackRef((nodeData) => {\n const children = nodeData?.[fieldNames.children];\n // 当loadDataFlag=true,考虑叶子节点显示问题\n const loadDataFlag = props.loadDataFlag;\n const loadHasChildren = loadDataFlag ? !nodeData.isLeaf : false;\n const hasChildren = (children && children.length > 0) || loadHasChildren;\n return !hasChildren;\n });\n\n const titleRender = hooks.useCallbackRef((nodeData) => {\n const stringLabel = nodeData._treeItemName || nodeData[fieldNames.label];\n\n if (menuLayoutTypeNew === 'fold') {\n let menuOptions: TAny[] = [];\n if (props.menuOptions?.fold) {\n menuOptions =\n props.menuOptions?.[menuLayoutTypeNew]?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n } else {\n menuOptions =\n props.getMenuOptions?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n }\n return (\n <Fragment>\n <span className=\"tree-item-title\">{nodeData?.[fieldNames.label]}</span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper menuList={menuOptions}>\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n return (\n <Fragment>\n <span className=\"tree-item-title\">{nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n {...menuOptions}\n gap={5}\n className={classNames('tree-item-title-operate', menuOptions.className)}\n />\n ) : null}\n </Fragment>\n );\n });\n\n const onChangeDebounce = hooks.useDebounceCallback((value: string) => {\n setTreeSearchValue(value);\n props.onSearchValueChange?.(value);\n }, 300);\n\n const onSearchChange = hooks.useCallbackRef((e: React.ChangeEvent<HTMLInputElement>) => {\n onChangeDebounce(e.target.value);\n });\n\n const iconHandle = hooks.useCallbackRef((treeData) => {\n if (!props.icon) return null;\n if (isValidElement(props.icon)) return props.icon;\n const isLeafFlag = isLeafNode(treeData.data);\n return props.icon({\n ...treeData,\n isParent: !isLeafFlag,\n isLeaf: isLeafFlag,\n });\n });\n\n const treeFieldNames = useMemo(() => {\n return { title: fieldNames.label, key: fieldNames.value, children: fieldNames.children };\n }, [fieldNames]);\n const showTree = treeData.length > 0 && state.requestStatus !== 'request-error';\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n\n onDrop: (info) => {\n const { dataList, dragNodeData } = onTreeDrop(originalDataList as TPlainObject[], fieldNames, info);\n onDropNodeHandle?.(dragNodeData);\n onChangeSelectorList(dataList);\n },\n ...otherProps,\n fieldNames: treeFieldNames,\n expandedKeys: treeExpandedKeys,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%' },\n icon: iconHandle,\n };\n\n const checkedProps = {\n onCheck: onTreeChangeHandle,\n checkable,\n // 必须是数组格式\n defaultCheckedKeys: defaultValueRef.current,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n // 必须是数组格式\n defaultSelectedKeys: defaultValueRef.current,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames('v-tree-wrapper', `v-tree-wrapper-menu-${menuTriggerTypeNew}`);\n const isSearchEmpty = state.treeList.length > 0 && !showTree && treeSearchValue;\n return (\n <div className={cName} style={style}>\n {!!showSearch && (\n <div className=\"v-tree-wrapper-search-area\">\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={searchPlaceholder}\n onChange={onSearchChange}\n value={searchValue}\n allowClear\n />\n {!!props.searchExtraElement && (\n <span className=\"v-tree-wrapper-search-extra\">{props.searchExtraElement}</span>\n )}\n </div>\n )}\n\n {showTree ? (\n <div className=\"v-tree-wrapper-tree-wrapper\">\n <Spin spinning={state.requestStatus === 'request-progress'} />\n <Tree key={refreshKey} {...sceneProps} {...commonProps} className=\"v-tree-wrapper-tree\"></Tree>\n </div>\n ) : (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={{\n 'request-success': isSearchEmpty ? '搜索结果为空' : '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n )}\n </div>\n );\n});\n\nTreeWrapper.defaultProps = {\n disabledCanUse: true,\n};\n"],"names":["defaultState","treeList","treeTiledArray","queryIsEmpty","TreeWrapperModel","actions","setTreeList","params","state","treeToArray","childrenName","requestStatus","resetTreeList","changeRequestStatus","treeListAppendChildren","array","target","find","item","valueName","value","_isArray","appendList","length","isLeaf","treeWrapperModels","treeWrapperModel","key","Model","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","array2map","list","forEach","treeWrapperValueDeepEqual","value1","value2","object1","object2","diff","dequal","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","children","loop","callback","i","cloneState","dragObj","index","arr","splice","dropToGap","unshift","props","expanded","ar","_item","dragNodeData","dorpNodeId","_tree$walkThroughTree","id","_tree","walkThroughTree","undefined","_parent","tileList","parentId","TreeWrapper","forwardRef","ref","style","serviceConfig","effectDependencyList","selectorTreeList","onChange","modelKey","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","defaultValueRef","useRef","menuLayoutTypeNew","menuTriggerTypeNew","isMultiple","labelInValueFieldNamesMerge","_useState2","treeSearchValue","setTreeSearchValue","isFirstUseValueRef","_useState3","refreshKey","setRefreshKey","innerOperateValueRef","valueList","useEffectCustom","current","console","log","expandedKeys","getTreeExpandedKeys","Array","from","Set","Date","now","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","warn","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","toArray","Boolean","allState","getState","refresh","newTreeExpandedKeys","includes","targetList","concat","useUpdateEffect","filter","_item$label","prev","mergeList","useImperativeHandle","onClearSelectorList","getTreeDataList","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","operateInfo","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","treeItemDataAdapterHandle","dataItem","originalDataList","treeFilter","_node$fieldNames$labe","toLowerCase","indexOf","treeData","_extends2","adapterItem","disabled","strTitle","titleDom","beforeStr","substring","afterStr","slice","_jsxs","className","_classNames","_jsx","_treeItemName","_disabled","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_props$menuOptions3","_extends5","stringLabel","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_extends3","call","_extends4","getMenuOptions","Fragment","DropdownMenuWrapper","menuList","_MoreOutlined","tile","ButtonOperate","gap","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","onDrop","_onTreeDrop","width","checkedProps","onCheck","defaultCheckedKeys","selectedProps","onSelect","multiple","defaultSelectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Spin","spinning","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1857,6 +1857,7 @@ export type SimpleLayoutProps = {
|
|
|
1857
1857
|
children?: ReactNode | ReactNode[];
|
|
1858
1858
|
titleExtra?: string | ReactElement;
|
|
1859
1859
|
hidden?: boolean;
|
|
1860
|
+
titleFixed?: boolean;
|
|
1860
1861
|
};
|
|
1861
1862
|
/**
|
|
1862
1863
|
* 简单布局
|
|
@@ -2456,6 +2457,20 @@ export type TreeWrapperProps = Omit<TreeProps, "expandedKeys" | "treeData" | "on
|
|
|
2456
2457
|
initRootExpand?: boolean;
|
|
2457
2458
|
/** 搜素过滤方式,高亮 | 过滤;默认:filter */
|
|
2458
2459
|
searchResultType?: "highlight" | "filter";
|
|
2460
|
+
/**
|
|
2461
|
+
* 拖拽节点处理,自定义onDrop事件后,失效
|
|
2462
|
+
* ```
|
|
2463
|
+
* 参数
|
|
2464
|
+
* 1. parentId 当前拖拽节点的父节点ID
|
|
2465
|
+
* 2. id 当前拖拽节点ID
|
|
2466
|
+
* 3. index 当前拖拽节点所在数组下标
|
|
2467
|
+
* ```
|
|
2468
|
+
*/
|
|
2469
|
+
onDropNodeHandle?: (result: {
|
|
2470
|
+
parentId?: string | number;
|
|
2471
|
+
id: string | number;
|
|
2472
|
+
index: number;
|
|
2473
|
+
}) => void;
|
|
2459
2474
|
};
|
|
2460
2475
|
export type TreeWrapperRefApi = {
|
|
2461
2476
|
onClearSelectorList: () => void;
|
|
@@ -2474,6 +2489,7 @@ export type TreeWrapperRefApi = {
|
|
|
2474
2489
|
* 3. checkable=true,为多选模式
|
|
2475
2490
|
* 4. 设置value后,组件显示受控
|
|
2476
2491
|
* 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了
|
|
2492
|
+
* 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效
|
|
2477
2493
|
* ```
|
|
2478
2494
|
*/
|
|
2479
2495
|
export declare const TreeWrapper: import("react").ForwardRefExoticComponent<Omit<TreeProps<import("antd").TreeDataNode>, "multiple" | "icon" | "onSelect" | "onExpand" | "checkedKeys" | "fieldNames" | "defaultSelectedKeys" | "selectedKeys" | "loadData" | "expandedKeys" | "treeData" | "defaultCheckedKeys" | "onCheck"> & {
|
|
@@ -2580,6 +2596,20 @@ export declare const TreeWrapper: import("react").ForwardRefExoticComponent<Omit
|
|
|
2580
2596
|
initRootExpand?: boolean | undefined;
|
|
2581
2597
|
/** 搜素过滤方式,高亮 | 过滤;默认:filter */
|
|
2582
2598
|
searchResultType?: "filter" | "highlight" | undefined;
|
|
2599
|
+
/**
|
|
2600
|
+
* 拖拽节点处理,自定义onDrop事件后,失效
|
|
2601
|
+
* ```
|
|
2602
|
+
* 参数
|
|
2603
|
+
* 1. parentId 当前拖拽节点的父节点ID
|
|
2604
|
+
* 2. id 当前拖拽节点ID
|
|
2605
|
+
* 3. index 当前拖拽节点所在数组下标
|
|
2606
|
+
* ```
|
|
2607
|
+
*/
|
|
2608
|
+
onDropNodeHandle?: ((result: {
|
|
2609
|
+
parentId?: string | number;
|
|
2610
|
+
id: string | number;
|
|
2611
|
+
index: number;
|
|
2612
|
+
}) => void) | undefined;
|
|
2583
2613
|
} & import("react").RefAttributes<TreeWrapperRefApi>>;
|
|
2584
2614
|
|
|
2585
2615
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flatbiz/antd",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.37",
|
|
4
4
|
"description": "flat-biz ui components",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@ant-design/icons": ">=5.0.1",
|
|
30
|
-
"@dimjs/lang": ">=1.2.
|
|
30
|
+
"@dimjs/lang": ">=1.2.44",
|
|
31
31
|
"@dimjs/model": ">=1.1.8",
|
|
32
32
|
"@dimjs/model-react": ">=1.1.8",
|
|
33
|
-
"@dimjs/utils": ">=1.2
|
|
34
|
-
"@flatbiz/utils": ">=4.0.
|
|
33
|
+
"@dimjs/utils": ">=1.3.2",
|
|
34
|
+
"@flatbiz/utils": ">=4.0.10",
|
|
35
35
|
"@wove/react": ">=1.2.23",
|
|
36
36
|
"antd": ">=5.2.1",
|
|
37
37
|
"dayjs": ">=1.11.7",
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
"ahooks": "^3.7.5"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@
|
|
44
|
-
"@dimjs/
|
|
43
|
+
"@dimjs/lang": "^1.2.44",
|
|
44
|
+
"@dimjs/utils": "^1.3.2",
|
|
45
45
|
"@dimjs/model": "^1.1.8",
|
|
46
46
|
"@dimjs/model-react": "^1.1.8",
|
|
47
|
-
"@
|
|
48
|
-
"@flatbiz/utils": "^4.0.
|
|
47
|
+
"@ant-design/icons": "^4.8.0",
|
|
48
|
+
"@flatbiz/utils": "^4.0.10",
|
|
49
49
|
"@wove/react": "^1.2.22",
|
|
50
50
|
"antd": "^5.1.3",
|
|
51
51
|
"dayjs": "1.11.7",
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import r from"@ant-design/icons/es/icons/MoreOutlined";import{a as e,_ as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isUndefined as n}from"@dimjs/lang/cjs/is-undefined";import{classNames as o}from"@dimjs/utils/cjs/class-names";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{isString as s}from"@dimjs/lang/cjs/is-string";import{isPromise as l}from"@dimjs/lang/cjs/is-promise";import{hooks as a}from"@wove/react/cjs/hooks";import{Popover as p,Tooltip as c,Space as f,Divider as u,Popconfirm as d,Button as m}from"antd";import{Fragment as h,useState as v,isValidElement as g,useMemo as T,createElement as j}from"react";import{B as y}from"./button-wrapper-c63ea6fc.js";import{D as k}from"./dropdown-menu-wrapper-2c4b6cad.js";import{f as C}from"./fba-utils-1e895394.js";import{jsx as P,jsxs as b}from"react/jsx-runtime";var w=["text","onClick","needConfirm","confirmMessage","popconfirmProps"];var x=function r(e){if(e.hoverTips){if(e.tipsType==="popover"){return P(p,{content:e.hoverTips,zIndex:1e3,children:P(h,{children:e.children})})}return P(c,{title:e.hoverTips,zIndex:1e3,children:P(h,{children:e.children})})}return P(h,{children:e.children})};var B=function p(c){var h=v(false),B=h[0],I=h[1];var z=a.useCallbackRef((function(r,e){var i=r.onClick==null?void 0:r.onClick(e);if(i&&l(i)){I(true);return i.finally((function(){I(false)}))}return}));var F=c.operateList.filter((function(r){if(!r)return false;if(g(r)){var e,i;if(((e=r.props)==null?void 0:e["hidden"])===true)return false;var n=(i=r.props)==null?void 0:i["v-permission"];if(s(n)){return C.hasPermission(n)}return true}if(t(r)){if(!C.hasPermission(r["permission"])){return false}return!r["hidden"]}return false}));var M=T((function(){return F.filter((function(r){if(g(r)){return true}return!r["isFold"]}))}),[F]);var N=T((function(){var r=F.filter((function(r){if(g(r)){return false}return r["isFold"]}));var i=[];r.forEach((function(r){var n=e({},r);delete n.isFold;i.push(n)}));return i}),[F]);var O=c.gap===undefined?10:c.gap;var H=!c.split?O:0;return P("div",{className:o("table-operate",c.className),style:c.style,children:b(f,e({split:c.split?P(u,{type:"vertical"}):null,size:H,wrap:n(c.wrap)?true:c.wrap},c.spaceProps,{children:[M.map((function(r,n){if(r&&g(r)){return P(x,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:r},n)}var o=r.text,t=r.onClick,s=r.needConfirm,l=r.confirmMessage,a=r.popconfirmProps,p=i(r,w);var c=r.type||"link";if(s&&!p.disabled){var f=!!r.color?false:true;return P(x,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:j(d,e({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},a,{title:l,onConfirm:z.bind(null,r),key:n,okButtonProps:{loading:B},onOpenChange:function r(e){if(!e){I(false)}}}),P(y,e({danger:f},p,{onClick:undefined,type:c,children:g(o)?P("span",{children:o}):o})))},n)}return P(x,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:P(y,e({loadingPosition:"center"},p,{type:c,onClick:function r(e){e.stopPropagation();return t==null?void 0:t(e)},children:g(o)?P("span",{children:o}):o}))},n)})),N.length>0?P(k,{menuList:N,children:P(m,{type:"link",className:"fold-more-button",onClick:function r(e){e.stopPropagation()},children:c.foldIcon?c.foldIcon:P(r,{})})}):null]}))})};B.defaultProps={split:true};export{x as B,B as a};
|
|
3
|
-
//# sourceMappingURL=button-operate-04d9185b.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button-operate-04d9185b.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Divider, Popconfirm, PopconfirmProps, Popover, Space, SpaceProps, Tooltip } from 'antd';\nimport {\n CSSProperties,\n FC,\n Fragment,\n isValidElement,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaUtils } from '../fba-utils';\n\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n /** hover 提示文字 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n // 是否折叠合拢\n isFold?: boolean;\n}\n\nexport interface ButtonOperateProps {\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n wrap?: boolean;\n foldIcon?: ReactElement;\n className?: string;\n split?: boolean;\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n style?: CSSProperties;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & { children?: ReactNode },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Tooltip>\n );\n }\n return <Fragment>{props.children}</Fragment>;\n};\n\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item['permission'])) {\n return false;\n }\n return !item['hidden'];\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item['isFold'];\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item['isFold'];\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const gap = props.gap === undefined ? 10 : props.gap;\n const size = !props.split ? gap : 0;\n\n return (\n <div className={classNames('table-operate', props.className)} style={props.style}>\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n {item}\n </ButtonOperateItemContent>\n );\n }\n const { text, onClick, needConfirm, confirmMessage, popconfirmProps, ...otherProps } = item;\n const type = item.type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = !!item.color ? false : true;\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n >\n <ButtonWrapper danger={danger} {...otherProps} onClick={undefined} type={type}>\n {isValidElement(text) ? <span>{text}</span> : text}\n </ButtonWrapper>\n </Popconfirm>\n </ButtonOperateItemContent>\n );\n }\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={type}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n >\n {isValidElement(text) ? <span>{text}</span> : text}\n </ButtonWrapper>\n </ButtonOperateItemContent>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Fragment","Tooltip","title","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","isValidElement","_item$props","_item$props2","permission","_isString","fbaUtils","hasPermission","_isPlainObject","viewList","useMemo","foldList","filterList","forEach","target","_extends","isFold","push","gap","undefined","size","split","className","_classNames","style","_jsxs","Space","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","otherProps","_objectWithoutPropertiesLoose","_excluded","disabled","danger","color","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","ButtonWrapper","loadingPosition","stopPropagation","length","DropdownMenuWrapper","menuList","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{isArray as e}from"@dimjs/lang/cjs/is-array";import{extend as t}from"@dimjs/utils/cjs/extend";import{classNames as l}from"@dimjs/utils/cjs/class-names";import{Space as i}from"antd";import{Fragment as a}from"react";import{fbaHooks as s}from"./fba-hooks/index.js";import{jsx as r,jsxs as m}from"react/jsx-runtime";var c=function c(n){var o=n.formLabelAlign||"right";var d=l("simple-layout",{"simple-layout-tight":n.layoutType==="tight","simple-layout-formlabel-left":o==="left"},n.className);var u=s.useThemeToken();var p=t({"--simple-layout-colorPrimary":u.colorPrimary},n.style,{padding:n.padding,width:n.width});if(n.hidden)return r(a,{});return m("div",{className:d,style:p,children:[n.title&&n.titleExtra?r("div",{className:l({"simple-layout-title-sign":n.titleLeftLine}),children:m(i,{className:"simple-layout-title-extra-space",children:[r("div",{className:"simple-layout-title",children:n.title}),r("div",{className:"simple-layout-title-extra",children:n.titleExtra})]})}):null,n.title&&!n.titleExtra?r("div",{className:l("simple-layout-title",{"simple-layout-title-sign":n.titleLeftLine}),children:n.title}):null,n.desc&&!e(n.desc)?r("div",{className:"simple-layout-desc",children:n.desc}):null,n.desc&&e(n.desc)?r("div",{className:"simple-layout-desc",children:r(i,{direction:"vertical",size:5,children:n.desc.map((function(e){return e}))})}):null,n.children?r("div",{className:"simple-layout-content",style:n.contentStyle,children:n.children}):null]})};c.defaultProps={titleLeftLine:true,layoutType:"layer"};export{c as S};
|
|
3
|
-
//# sourceMappingURL=simple-layout-1676e586.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple-layout-1676e586.js","sources":["@flatbiz/antd/src/simple-layout/simple-layout.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport { Space } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, ReactNode } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type SimpleLayoutProps = {\n className?: string;\n style?: CSSProperties;\n title?: string | ReactElement;\n desc?: string | ReactElement | string[] | ReactElement[];\n formLabelAlign?: 'left' | 'right';\n layoutType?: 'layer' | 'tight';\n titleLeftLine?: boolean;\n contentStyle?: CSSProperties;\n /** 优先级大于 style padding */\n padding?: CSSProperties['padding'];\n /** 优先级大于 style width */\n width?: CSSProperties['width'];\n children?: ReactNode | ReactNode[];\n titleExtra?: string | ReactElement;\n hidden?: boolean;\n};\n\n/**\n * 简单布局\n * @param props\n * @returns\n * ```\n * 1. layoutType 布局类型\n * layer:分层布局\n * tight:紧凑布局\n * ```\n */\nexport const SimpleLayout = (props: SimpleLayoutProps) => {\n const labelAlign = props.formLabelAlign || 'right';\n const className = classNames(\n 'simple-layout',\n {\n 'simple-layout-tight': props.layoutType === 'tight',\n 'simple-layout-formlabel-left': labelAlign === 'left',\n },\n props.className,\n );\n\n const theme = fbaHooks.useThemeToken();\n const style = extend({ '--simple-layout-colorPrimary': theme.colorPrimary }, props.style, {\n padding: props.padding,\n width: props.width,\n });\n\n if (props.hidden) return <Fragment />;\n\n return (\n <div className={className} style={style}>\n {props.title && props.titleExtra ? (\n <div className={classNames({ 'simple-layout-title-sign': props.titleLeftLine })}>\n <Space className=\"simple-layout-title-extra-space\">\n <div className=\"simple-layout-title\">{props.title}</div>\n <div className=\"simple-layout-title-extra\">{props.titleExtra}</div>\n </Space>\n </div>\n ) : null}\n {props.title && !props.titleExtra ? (\n <div\n className={classNames('simple-layout-title', {\n 'simple-layout-title-sign': props.titleLeftLine,\n })}\n >\n {props.title}\n </div>\n ) : null}\n {props.desc && !isArray(props.desc) ? <div className=\"simple-layout-desc\">{props.desc}</div> : null}\n {props.desc && isArray(props.desc) ? (\n <div className=\"simple-layout-desc\">\n <Space direction=\"vertical\" size={5}>\n {(props.desc as string[]).map((item) => {\n return item;\n })}\n </Space>\n </div>\n ) : null}\n {props.children ? (\n <div className=\"simple-layout-content\" style={props.contentStyle}>\n {props.children}\n </div>\n ) : null}\n </div>\n );\n};\n\nSimpleLayout.defaultProps = {\n titleLeftLine: true,\n layoutType: 'layer',\n};\n"],"names":["SimpleLayout","props","labelAlign","formLabelAlign","className","_classNames","layoutType","theme","fbaHooks","useThemeToken","style","_extend","colorPrimary","padding","width","hidden","_jsx","Fragment","_jsxs","children","title","titleExtra","titleLeftLine","Space","desc","_isArray","direction","size","map","item","contentStyle","defaultProps"],"mappings":";kUAmCaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAMC,EAAaD,EAAME,gBAAkB,QAC3C,IAAMC,EAAYC,EAChB,gBACA,CACE,sBAAuBJ,EAAMK,aAAe,QAC5C,+BAAgCJ,IAAe,QAEjDD,EAAMG,WAGR,IAAMG,EAAQC,EAASC,gBACvB,IAAMC,EAAQC,EAAO,CAAE,+BAAgCJ,EAAMK,cAAgBX,EAAMS,MAAO,CACxFG,QAASZ,EAAMY,QACfC,MAAOb,EAAMa,QAGf,GAAIb,EAAMc,OAAQ,OAAOC,EAACC,EAAW,CAAA,GAErC,OACEC,EAAA,MAAA,CAAKd,UAAWA,EAAWM,MAAOA,EAAMS,SAAA,CACrClB,EAAMmB,OAASnB,EAAMoB,WACpBL,EAAA,MAAA,CAAKZ,UAAWC,EAAW,CAAE,2BAA4BJ,EAAMqB,gBAAiBH,SAC9ED,EAACK,EAAK,CAACnB,UAAU,kCAAiCe,UAChDH,EAAA,MAAA,CAAKZ,UAAU,sBAAqBe,SAAElB,EAAMmB,QAC5CJ,EAAA,MAAA,CAAKZ,UAAU,4BAA2Be,SAAElB,EAAMoB,kBAGpD,KACHpB,EAAMmB,QAAUnB,EAAMoB,WACrBL,EAAA,MAAA,CACEZ,UAAWC,EAAW,sBAAuB,CAC3C,2BAA4BJ,EAAMqB,gBACjCH,SAEFlB,EAAMmB,QAEP,KACHnB,EAAMuB,OAASC,EAAQxB,EAAMuB,MAAQR,EAAA,MAAA,CAAKZ,UAAU,qBAAoBe,SAAElB,EAAMuB,OAAc,KAC9FvB,EAAMuB,MAAQC,EAAQxB,EAAMuB,MAC3BR,EAAA,MAAA,CAAKZ,UAAU,qBAAoBe,SACjCH,EAACO,EAAK,CAACG,UAAU,WAAWC,KAAM,EAAER,SAChClB,EAAMuB,KAAkBI,KAAI,SAACC,GAC7B,OAAOA,SAIX,KACH5B,EAAMkB,SACLH,EAAA,MAAA,CAAKZ,UAAU,wBAAwBM,MAAOT,EAAM6B,aAAaX,SAC9DlB,EAAMkB,WAEP,OAGV,EAEAnB,EAAa+B,aAAe,CAC1BT,cAAe,KACfhB,WAAY"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import e from"@ant-design/icons/es/icons/CaretDownFilled";import r from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{extend as a}from"@dimjs/utils/cjs/extend";import{hooks as i}from"@wove/react/cjs/hooks";import{_ as l,a as u}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as s}from"@dimjs/model";import{treeToArray as o,treeToTiledArray as c,treeLeafParentsArray as f,isUndefinedOrNull as v,toArray as d,treeFilter as m}from"@flatbiz/utils";import{Spin as h,Tree as p,Button as g,message as b}from"antd";import{forwardRef as y,useState as L,useMemo as C,useRef as R,useImperativeHandle as w,Fragment as q,isValidElement as N}from"react";import{a as k}from"./button-operate-04d9185b.js";import{D as S}from"./dropdown-menu-wrapper-2c4b6cad.js";import{fbaHooks as T}from"./fba-hooks/index.js";import{I as j}from"./input-search-wrapper-10d4a9b9.js";import{R as E}from"./request-status-03fc60e2.js";import{Model as P}from"@dimjs/model-react";import{isObject as A}from"@dimjs/lang/cjs/is-object";import{dequal as D}from"dequal";import{jsxs as x,jsx as I}from"react/jsx-runtime";var V={treeList:[],treeTiledArray:[],queryIsEmpty:false};var O={actions:{setTreeList:function e(r){return function(e){e.treeList=r.treeList||[];e.treeTiledArray=o(e.treeList,r.childrenName);e.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},treeListAppendChildren:function e(r){return function(e){var t=o(e.treeList,r.childrenName);var a=t.find((function(e){return e[r.valueName]===r.value}));if(a){if(n(r.appendList)&&r.appendList.length>0){a[r.childrenName]=r.appendList}else{a.isLeaf=true}}e.treeTiledArray=o(e.treeList,r.childrenName)}}},state:V};var K={};var F=function e(r){if(!K[r]){K[r]=P(O)}return K[r]};var M=function e(r,t,n){var a=c(t,n);return f(r,a,true,{value:"value",parentValue:"parentValue"})};var _=function e(r,t){var a=v(r)?[]:r;a=n(a)?a:[a];a=a.map((function(e){if(A(e))return e[t.value];return e}));return a};var U=function e(r,t){var n=_(r,t);var a={};n.forEach((function(e){a[e]=true}));return a};var B=function e(r,t,n){if(v(r)&&v(t))return true;var a=U(r,n);var i=U(t,n);var l=D(a,i);return l};var W=["serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType"];var z=y((function(o,f){var y=o.serviceConfig,P=o.effectDependencyList,A=o.selectorTreeList,D=o.value,V=o.onChange,O=o.modelKey,K=o.checkableResponseParentNode,U=K===void 0?true:K,z=o.checkable,H=o.onSelectorTreeListChange,G=o.onRequestResponseChange,J=o.treeItemDataAdapter,Q=o.searchValue,X=o.showSearch,Y=o.searchPlaceholder,Z=o.requestMessageConfig,$=o.labelInValueFieldNames,ee=o.labelInValue,re=o.disabledCanUse,te=o.menuLayoutType,ne=o.menuTriggerType,ae=o.initRootExpand,ie=o.searchResultType,le=l(o,W);var ue=o.hasOwnProperty("selectorTreeList");var se=y||{};var oe=P||[];var ce=L(),fe=ce[0],ve=ce[1];var de=F(O).useStore(),me=de[0],he=de[1];var pe=T.useSafeState(false),ge=pe[0],be=pe[1];var ye="request-progress-"+o.modelKey;var Le=C((function(){return u({label:"label",value:"value",children:"children"},o.fieldNames)}),[o.fieldNames]);var Ce=R();var Re=te===undefined?"fold":te;var we=ne===undefined?"click":ne;var qe=z===true;var Ne=C((function(){return u({label:"label",value:"value"},$)}),[$]);var ke=L(),Se=ke[0],Te=ke[1];var je=R(true);var Ee=L(0),Pe=Ee[0],Ae=Ee[1];var De=R();var xe=C((function(){var e=_(D,Ne);return e}),[Ne,D]);T.useEffectCustom((function(){if(v(D)&&je.current||me.treeList.length==0)return;je.current=false;if(!B(D,De.current,Ne)){console.log("modelKey:"+O+" TreeWrapper key refresh",D,De.current);De.current=qe?xe:xe[0];var e=Fe(xe,true);ve(Array.from(new Set(e)));Ce.current=xe;Ae(Date.now())}}),[D,me.treeList]);var Ie=function e(r){return r===""||v(r)};var Ve=function e(r){var t=se.onRequestResultAdapter?se.onRequestResultAdapter(r):r;return t};T.useEffectCustom((function(){Te(Q)}),[Q]);var Oe=i.useCallbackRef((function(){return new Promise((function(e,r){var t,n,i,l,u;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{be(false);void b.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!se.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=se.requiredParamsKeys;n=a({},se.params);if(t){i=t.find((function(e){return Ie(n[e])}));if(i){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return s()}catch(e){return o(e)}};var f=function(e){try{window[ye]=false;be(false);void he.changeRequestStatus("request-error");return c()}catch(e){return o(e)}};try{be(true);return Promise.resolve(he.changeRequestStatus("request-progress")).then((function(e){try{window[ye]=true;return Promise.resolve(se.onRequest==null?void 0:se.onRequest(n)).then((function(e){try{l=e;G==null?void 0:G(l);u=Ve(l);Ke(u||[]);be(false);if(ae&&d(u).length){ve([u==null?void 0:u[0][Le.value]])}window[ye]=false;return c()}catch(e){return f(e)}}),f)}catch(e){return f(e)}}),f)}catch(e){f(e)}}catch(e){o(e)}}))}));T.useEffectCustom((function(){if(ue)return;if(Boolean(oe.length)){void Oe();return}var e=F(O).getState();if(e.requestStatus==="request-success"){return}if(!window[ye]){void Oe();return}}),oe);T.useEffectCustom((function(){if(ue){Ke(A||[])}}),[A]);var Ke=i.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&me.treeList.length===0){void he.changeRequestStatus("request-success");return}void he.setTreeList({treeList:e||[],childrenName:Le.children});H==null?void 0:H(e)}));var Fe=i.useCallbackRef((function(e,r){var t=[];e.forEach((function(e){if(!r&&fe!=null&&fe.includes(e))return;var n=M(e,me.treeList,Le);t=t.concat(n.map((function(e){return e.value})))}));return t}));i.useUpdateEffect((function(){if(Se){var e=c(me.treeList||[],Le);var r=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(Se||"")}));ve((function(e){var t=Fe(r.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(t))}))}else{ve([])}}),[Se]);w(f,(function(){return{onClearSelectorList:function e(){void he.resetTreeList()},getTreeDataList:function e(){return me.treeList}}}));var Me=i.useCallbackRef((function(e){ve(e)}));var _e=i.useCallbackRef((function(e,r,t){De.current=e;var a=v(r)?[]:n(r)?r:[r];if(v(e)){V==null?void 0:V(e,r,t);return}if(ee){var i=Ne.label;var l=Ne.value;var u=a.map((function(e){var r;return r={},r[i]=e[Le.label],r[l]=e[Le.value],r}));if(n(e)){V==null?void 0:V(u,a,t)}else{V==null?void 0:V(u[0],a[0],t)}}else{if(n(e)){V==null?void 0:V(e,a,t)}else{V==null?void 0:V(e,a[0],t)}}}));var Ue=i.useCallbackRef((function(e,r){var t=o.checkStrictly?e.checked:e;t=v(e)?[]:e;t=n(t)?t:[t];var a=[];var i=[];var l=[];var u=[];t.forEach((function(e){var r=me.treeTiledArray.find((function(r){return r[Le.value]===e}));if(!r)return;var t=r==null?void 0:r[Le.children];if(!n(t)||t.length===0){a.push(r);i.push(r[Le.value])}l.push(r);u.push(r[Le.value])}));if(z){ve((function(e){var r=Fe(i).concat(e||[]);return Array.from(new Set(r))}));if(!U&&!o.checkStrictly){_e(i,a,l)}else{_e(u,l,l)}}else{if(t[0]){var s=l.find((function(e){return e[Le.value]===t[0]}));_e(t[0],s,[s])}else{var c=r.node[Le.value];var f=me.treeTiledArray.find((function(e){return e[Le.value]===c}));_e(undefined,f,[f])}}}));var Be=i.useCallbackRef((function(e){return J==null?void 0:J(e)}));var We=C((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var a;var i=(Be==null?void 0:Be(r))||r;var l=re?undefined:i.disabled;var s=i[Le.label];var o;if(Se){var c=s.indexOf(Se);var f=s.substring(0,c);var v=s.slice(c+Se.length);o=c>-1?x("span",{className:t({"v-tree-item-disabled":i.disabled}),children:[f,I("span",{className:"site-tree-search-value",children:Se}),v]}):null}if(!o){o=I("span",{className:t({"v-tree-item-disabled":i.disabled}),children:s})}var d=i[Le.children];return u({},i,(a={disabled:l},a[Le.label]=o,a._treeItemName=s,a._disabled=i.disabled,a[Le.children]=n(d)&&d.length>0?e(d):undefined,a))}))};var r=s(me.treeList||[]);if(Se&&ie!=="highlight"){return e(m(s(me.treeList||[]),(function(e){var r;var t=(r=e[Le.label])==null?void 0:r.toLowerCase();return t.indexOf(Se.toLowerCase())>=0})))}return e(r)}),[me.treeList,Se,ie,Be,re,Le.label,Le.children]);var ze=i.useCallbackRef((function(e){return new Promise((function(r,t){return new Promise((function(n,a){var i,l,u,s;if(e[Le.children]){r();return n()}var c=function(){try{return n()}catch(e){return a(e)}};var f=function(e){try{void b.error(e.message||"数据加载异常...");t();return c()}catch(e){return a(e)}};try{return Promise.resolve((i=o.loadDataServiceConfig)==null?void 0:i.onRequest==null?void 0:i.onRequest((l=o.loadDataServiceConfig)==null?void 0:l.getParams==null?void 0:l.getParams(e))).then((function(t){try{u=t;s=se.onRequestResultAdapter?se.onRequestResultAdapter(u):u;void he.treeListAppendChildren({value:e[Le.value],appendList:s,childrenName:Le.children,valueName:Le.value}).then((function(e){Ke(e.treeList);r()}));return c()}catch(e){return f(e)}}),f)}catch(e){f(e)}}))}))}));var He=i.useCallbackRef((function(e){var r=e==null?void 0:e[Le.children];var t=o.loadDataFlag;var n=t?!e.isLeaf:false;var a=r&&r.length>0||n;return!a}));var Ge=i.useCallbackRef((function(e){var n,a;var i=e._treeItemName||e[Le.label];if(Re==="fold"){var l;var s=[];if((l=o.menuOptions)!=null&&l.fold){var c,f,v;s=((c=o.menuOptions)==null?void 0:(f=c[Re])==null?void 0:f.call(c,u({},e,(v={},v[Le.label]=i,v))))||[]}else{var d;s=(o.getMenuOptions==null?void 0:o.getMenuOptions(u({},e,(d={},d[Le.label]=i,d))))||[]}return x(q,{children:[I("span",{className:"tree-item-title",children:e==null?void 0:e[Le.label]}),s.length>0&&I(S,{menuList:s,children:I(r,{})})]})}var m=(n=o.menuOptions)==null?void 0:n.tile==null?void 0:n.tile(u({},e,(a={},a[Le.label]=i,a)));return x(q,{children:[I("span",{className:"tree-item-title",children:e==null?void 0:e[Le.label]}),m?I(k,u({},m,{gap:5,className:t("tree-item-title-operate",m.className)})):null]})}));var Je=i.useDebounceCallback((function(e){Te(e);o.onSearchValueChange==null?void 0:o.onSearchValueChange(e)}),300);var Qe=i.useCallbackRef((function(e){Je(e.target.value)}));var Xe=i.useCallbackRef((function(e){if(!o.icon)return null;if(N(o.icon))return o.icon;var r=He(e.data);return o.icon(u({},e,{isParent:!r,isLeaf:r}))}));var Ye=C((function(){return{title:Le.label,key:Le.value,children:Le.children}}),[Le]);var Ze=We.length>0&&me.requestStatus!=="request-error";var $e=u({showLine:{showLeafIcon:false},titleRender:Ge,blockNode:true,switcherIcon:I(e,{})},le,{fieldNames:Ye,expandedKeys:fe,treeData:We,onExpand:Me,loadData:o.loadDataFlag?ze:undefined,style:u({width:"100%"},le.style),icon:Xe});var er={onCheck:Ue,checkable:z,defaultCheckedKeys:Ce.current};var rr={onSelect:Ue,multiple:false,defaultSelectedKeys:Ce.current};var tr=z?er:rr;var nr=t("v-tree-wrapper","v-tree-wrapper-menu-"+we);var ar=me.treeList.length>0&&!Ze&&Se;return x("div",{className:nr,children:[!!X&&x("div",{className:"v-tree-wrapper-search-area",children:[I(j,{className:"v-tree-wrapper-search",placeholder:Y,onChange:Qe,value:Q,allowClear:true}),!!o.searchExtraElement&&I("span",{className:"v-tree-wrapper-search-extra",children:o.searchExtraElement})]}),Ze?x("div",{className:"v-tree-wrapper-tree-wrapper",children:[I(h,{spinning:me.requestStatus==="request-progress"}),I(p,u({},tr,$e,{className:"v-tree-wrapper-tree"}),Pe)]}):I(E,{status:me.requestStatus,loading:ge,messageConfig:u({"request-success":ar?"搜索结果为空":"暂无数据"},Z),errorButton:I(g,{type:"primary",onClick:Oe,children:"重新获取数据"})})]})}));z.defaultProps={disabledCanUse:true};export{z as T};
|
|
3
|
-
//# sourceMappingURL=tree-wrapper-ea6a5bdd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree-wrapper-ea6a5bdd.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TPlainObject, treeToArray, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n };\n resetTreeList: void;\n changeRequestStatus: TRequestStatus;\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const array = treeToArray(state.treeList, params.childrenName);\n const target = array.find((item) => item[params.valueName] === params.value);\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, any>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { TAny, TPlainObject, treeLeafParentsArray, treeToTiledArray } from '@flatbiz/utils';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: { label?: string; value?: string; children?: string },\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nimport { isArray, isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, LabelValueItem } from '@flatbiz/utils';\nimport { dequal } from 'dequal';\n\nexport const getVauleList = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: TAny,\n value2: TAny,\n labelInValueFieldNames: LabelValueItem<string | number>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n","import { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend } from '@dimjs/utils';\n\nimport { isUndefinedOrNull, TAny, toArray, TPlainObject, treeToTiledArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, message, Spin, Tree, TreeProps } from 'antd';\nimport {\n DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { treeFilter } from '@flatbiz/utils';\n\nimport { ButtonOperate, ButtonOperateItem, ButtonOperateProps } from '../button-operate';\nimport { DropdownMenuItem, DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\nimport { treeWrapperModel } from './model';\nimport './style.less';\nimport { getExpandedKeys, getVauleList, treeWrapperValueDeepEqual } from './utils';\n\ntype TreeWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\ntype TreeLoadDataServiceConfig = {\n getParams: (dataItem: TPlainObject) => TPlainObject;\n onRequest: (params: TPlainObject) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeWrapperMenuItem = {\n title: string;\n onClick: (dataItem: TPlainObject, event) => void;\n icon?: ReactElement;\n};\n\nexport type TreeWrapperProps = Omit<\n TreeProps,\n | 'expandedKeys'\n | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'defaultCheckedKeys'\n | 'defaultSelectedKeys'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n> & {\n modelKey: string;\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n ) => void;\n fieldNames?: { label?: string; value?: string; children?: string };\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n loadDataFlag?: boolean;\n /** 菜单结构类型 tile/平铺 fold/折叠;默认:fold */\n menuLayoutType?: 'tile' | 'fold';\n /** 菜单触发类型,默认:click */\n menuTriggerType?: 'click' | 'hover';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期,请使用 menuOptions\n * @returns\n * ```\n * menuLayoutType = tile 无效\n * ```\n */\n getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];\n\n /**\n * 根据 menuLayoutType 类型赋值\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n icon?: (data: { isParent: boolean; isLeaf: boolean }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n /** 搜素过滤方式,高亮 | 过滤;默认:filter */\n searchResultType?: 'highlight' | 'filter';\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n};\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>((props, ref) => {\n const {\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n onRequestResponseChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\n initRootExpand,\n searchResultType,\n ...otherProps\n } = props;\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>();\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNames = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', ...props.fieldNames };\n }, [props.fieldNames]);\n // 必须是数组格式\n const defaultValueRef = useRef<Array<string | number>>();\n const menuLayoutTypeNew = menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew = menuTriggerType === undefined ? 'click' : menuTriggerType;\n\n const isMultiple = checkable === true;\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n // tree 搜索值\n const [treeSearchValue, setTreeSearchValue] = useState<string>();\n\n const isFirstUseValueRef = useRef(true);\n const [refreshKey, setRefreshKey] = useState(0);\n const innerOperateValueRef = useRef<Array<string | number> | string | number>();\n\n const valueList = useMemo(() => {\n const tempList = getVauleList(value, labelInValueFieldNamesMerge);\n return tempList;\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if ((isUndefinedOrNull(value) && isFirstUseValueRef.current) || state.treeList.length == 0) return;\n isFirstUseValueRef.current = false;\n if (!treeWrapperValueDeepEqual(value, innerOperateValueRef.current, labelInValueFieldNamesMerge)) {\n console.log(`modelKey:${modelKey} TreeWrapper key refresh`, value, innerOperateValueRef.current);\n innerOperateValueRef.current = isMultiple ? valueList : valueList[0];\n // 重新计算 expandedKeys\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(expandedKeys)));\n defaultValueRef.current = valueList;\n setRefreshKey(Date.now());\n }\n }, [value, state.treeList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n return respDataList;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n console.warn(`TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n onRequestResponseChange?.(_respData);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n onChangeSelectorList(respData || []);\n setLoading(false);\n if (initRootExpand && toArray(respData).length) {\n setTreeExpandedKeys([respData?.[0][fieldNames.value]]);\n }\n window[requestPreKey] = false;\n } catch (error) {\n window[requestPreKey] = false;\n setLoading(false);\n void actions.changeRequestStatus('request-error');\n }\n } catch (error) {\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\n }\n }, newEffectDependencyList);\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) {\n onChangeSelectorList(selectorTreeList || []);\n }\n }, [selectorTreeList]);\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeList.length === 0) {\n void actions.changeRequestStatus('request-success');\n return;\n }\n void actions.setTreeList({\n treeList: dataList || [],\n childrenName: fieldNames.children,\n });\n onSelectorTreeListChange?.(dataList);\n });\n\n const getTreeExpandedKeys = hooks.useCallbackRef((valueList: Array<string | number>, refresh?: boolean) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetList = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n });\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const tiledArray = treeToTiledArray(state.treeList || [], fieldNames);\n const targetList = tiledArray.filter((item) => item.label?.includes(treeSearchValue || ''));\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(targetList.map((item) => item.value)).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n };\n });\n\n const onExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onRespChange = hooks.useCallbackRef((selectedKey, selectInfo?, selectAllList?) => {\n innerOperateValueRef.current = selectedKey;\n const selectList = isUndefinedOrNull(selectInfo) ? [] : isArray(selectInfo) ? selectInfo : [selectInfo];\n if (isUndefinedOrNull(selectedKey)) {\n onChange?.(selectedKey, selectInfo, selectAllList);\n return;\n }\n if (labelInValue) {\n const lvLabel = labelInValueFieldNamesMerge.label;\n const lvValue = labelInValueFieldNamesMerge.value;\n const labelInValueList = selectList.map((item) => {\n return {\n [lvLabel]: item[fieldNames.label],\n [lvValue]: item[fieldNames.value],\n };\n });\n if (isArray(selectedKey)) {\n onChange?.(labelInValueList, selectList, selectAllList);\n } else {\n onChange?.(labelInValueList[0], selectList[0], selectAllList);\n }\n } else {\n if (isArray(selectedKey)) {\n onChange?.(selectedKey, selectList, selectAllList);\n } else {\n onChange?.(selectedKey, selectList[0], selectAllList);\n }\n }\n });\n\n const onTreeChangeHandle = hooks.useCallbackRef((checkedData, operateInfo) => {\n let checkedValueList = props.checkStrictly ? checkedData.checked : checkedData;\n checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = isArray(checkedValueList) ? checkedValueList : [checkedValueList];\n\n const selectedLeafList = [] as TPlainObject[];\n const selectedLeafValueList = [] as Array<string | number>;\n const selectedAllList = [] as TPlainObject[];\n const selectedAllValueList = [] as Array<string | number>;\n checkedValueList.forEach((item) => {\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === item);\n if (!target) return;\n const children = target?.[fieldNames.children];\n if (!isArray(children) || children.length === 0) {\n selectedLeafList.push(target);\n selectedLeafValueList.push(target[fieldNames.value]);\n }\n selectedAllList.push(target);\n selectedAllValueList.push(target[fieldNames.value]);\n });\n\n if (checkable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(selectedLeafValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n if (!checkableResponseParentNode && !props.checkStrictly) {\n onRespChange(selectedLeafValueList, selectedLeafList, selectedAllList);\n } else {\n onRespChange(selectedAllValueList, selectedAllList, selectedAllList);\n }\n } else {\n if (checkedValueList[0]) {\n const currentNode = selectedAllList.find((item) => item[fieldNames.value] === checkedValueList[0]);\n onRespChange(checkedValueList[0], currentNode, [currentNode]);\n } else {\n const nodeValue = operateInfo.node[fieldNames.value];\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === nodeValue);\n onRespChange(undefined, target, [target]);\n }\n }\n });\n\n const treeItemDataAdapterHandle = hooks.useCallbackRef((dataItem) => {\n return treeItemDataAdapter?.(dataItem);\n });\n\n const treeData = useMemo(() => {\n const loop = (data: TAny[]): TAny[] =>\n data?.map((item) => {\n const adapterItem = treeItemDataAdapterHandle?.(item) || item;\n const disabled = disabledCanUse ? undefined : adapterItem.disabled;\n const strTitle = adapterItem[fieldNames.label] as string;\n let titleDom;\n if (treeSearchValue) {\n const index = strTitle.indexOf(treeSearchValue);\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n titleDom =\n index > -1 ? (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>\n {beforeStr}\n <span className=\"site-tree-search-value\">{treeSearchValue}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom) {\n titleDom = (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>{strTitle}</span>\n );\n }\n const children = adapterItem[fieldNames.children];\n return {\n ...adapterItem,\n disabled,\n [fieldNames.label]: titleDom,\n _treeItemName: strTitle,\n _disabled: adapterItem.disabled,\n [fieldNames.children]: isArray(children) && children.length > 0 ? loop(children) : undefined,\n };\n });\n const list = cloneState(state.treeList || []);\n if (treeSearchValue && searchResultType !== 'highlight') {\n return loop(\n treeFilter(cloneState(state.treeList || []), (node) => {\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n }),\n );\n }\n return loop(list);\n }, [\n state.treeList,\n treeSearchValue,\n searchResultType,\n treeItemDataAdapterHandle,\n disabledCanUse,\n fieldNames.label,\n fieldNames.children,\n ]);\n\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem),\n );\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error) {\n void message.error(error.message || '数据加载异常...');\n // 此处失败后,会重试“loadData”请求多次\n reject();\n }\n });\n });\n\n const isLeafNode = hooks.useCallbackRef((nodeData) => {\n const children = nodeData?.[fieldNames.children];\n // 当loadDataFlag=true,考虑叶子节点显示问题\n const loadDataFlag = props.loadDataFlag;\n const loadHasChildren = loadDataFlag ? !nodeData.isLeaf : false;\n const hasChildren = (children && children.length > 0) || loadHasChildren;\n return !hasChildren;\n });\n\n const titleRender = hooks.useCallbackRef((nodeData) => {\n const stringLabel = nodeData._treeItemName || nodeData[fieldNames.label];\n\n if (menuLayoutTypeNew === 'fold') {\n let menuOptions: TAny[] = [];\n if (props.menuOptions?.fold) {\n menuOptions =\n props.menuOptions?.[menuLayoutTypeNew]?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n } else {\n menuOptions =\n props.getMenuOptions?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n }\n return (\n <Fragment>\n <span className=\"tree-item-title\">{nodeData?.[fieldNames.label]}</span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper menuList={menuOptions}>\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n return (\n <Fragment>\n <span className=\"tree-item-title\">{nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n {...menuOptions}\n gap={5}\n className={classNames('tree-item-title-operate', menuOptions.className)}\n />\n ) : null}\n </Fragment>\n );\n });\n\n const onChangeDebounce = hooks.useDebounceCallback((value: string) => {\n setTreeSearchValue(value);\n props.onSearchValueChange?.(value);\n }, 300);\n\n const onSearchChange = hooks.useCallbackRef((e: React.ChangeEvent<HTMLInputElement>) => {\n onChangeDebounce(e.target.value);\n });\n\n const iconHandle = hooks.useCallbackRef((treeData) => {\n if (!props.icon) return null;\n if (isValidElement(props.icon)) return props.icon;\n const isLeafFlag = isLeafNode(treeData.data);\n return props.icon({\n ...treeData,\n isParent: !isLeafFlag,\n isLeaf: isLeafFlag,\n });\n });\n\n const treeFieldNames = useMemo(() => {\n return { title: fieldNames.label, key: fieldNames.value, children: fieldNames.children };\n }, [fieldNames]);\n const showTree = treeData.length > 0 && state.requestStatus !== 'request-error';\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n ...otherProps,\n fieldNames: treeFieldNames,\n expandedKeys: treeExpandedKeys,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%', ...otherProps.style },\n icon: iconHandle,\n };\n\n const checkedProps = {\n onCheck: onTreeChangeHandle,\n checkable,\n // 必须是数组格式\n defaultCheckedKeys: defaultValueRef.current,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n // 必须是数组格式\n defaultSelectedKeys: defaultValueRef.current,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames('v-tree-wrapper', `v-tree-wrapper-menu-${menuTriggerTypeNew}`);\n const isSearchEmpty = state.treeList.length > 0 && !showTree && treeSearchValue;\n return (\n <div className={cName}>\n {/* {showTree && <Spin spinning={loading} className=\"v-tree-wrapper-loading\"></Spin>} */}\n {!!showSearch && (\n <div className=\"v-tree-wrapper-search-area\">\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={searchPlaceholder}\n onChange={onSearchChange}\n value={searchValue}\n allowClear\n />\n {!!props.searchExtraElement && (\n <span className=\"v-tree-wrapper-search-extra\">{props.searchExtraElement}</span>\n )}\n </div>\n )}\n\n {showTree ? (\n <div className=\"v-tree-wrapper-tree-wrapper\">\n <Spin spinning={state.requestStatus === 'request-progress'} />\n <Tree key={refreshKey} {...sceneProps} {...commonProps} className=\"v-tree-wrapper-tree\"></Tree>\n </div>\n ) : (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={{\n 'request-success': isSearchEmpty ? '搜索结果为空' : '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n )}\n </div>\n );\n});\n\nTreeWrapper.defaultProps = {\n disabledCanUse: true,\n};\n"],"names":["defaultState","treeList","treeTiledArray","queryIsEmpty","TreeWrapperModel","actions","setTreeList","params","state","treeToArray","childrenName","requestStatus","resetTreeList","changeRequestStatus","treeListAppendChildren","array","target","find","item","valueName","value","_isArray","appendList","length","isLeaf","treeWrapperModels","treeWrapperModel","key","Model","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","array2map","list","forEach","treeWrapperValueDeepEqual","value1","value2","object1","object2","diff","dequal","TreeWrapper","forwardRef","props","ref","serviceConfig","effectDependencyList","selectorTreeList","onChange","modelKey","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","children","defaultValueRef","useRef","menuLayoutTypeNew","undefined","menuTriggerTypeNew","isMultiple","labelInValueFieldNamesMerge","_useState2","treeSearchValue","setTreeSearchValue","isFirstUseValueRef","_useState3","refreshKey","setRefreshKey","innerOperateValueRef","valueList","useEffectCustom","current","console","log","expandedKeys","getTreeExpandedKeys","Array","from","Set","Date","now","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","warn","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","toArray","Boolean","allState","getState","dataList","refresh","newTreeExpandedKeys","includes","targetList","concat","useUpdateEffect","filter","_item$label","prev","mergeList","useImperativeHandle","onClearSelectorList","getTreeDataList","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","operateInfo","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","node","treeItemDataAdapterHandle","dataItem","treeData","loop","_extends2","adapterItem","disabled","strTitle","titleDom","index","indexOf","beforeStr","substring","afterStr","slice","_jsxs","className","_classNames","_jsx","_treeItemName","_disabled","cloneState","treeFilter","_node$fieldNames$labe","toLowerCase","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_props$menuOptions3","_extends5","stringLabel","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_extends3","call","_extends4","getMenuOptions","Fragment","DropdownMenuWrapper","menuList","_MoreOutlined","tile","ButtonOperate","gap","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","style","width","checkedProps","onCheck","defaultCheckedKeys","selectedProps","onSelect","multiple","defaultSelectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Spin","spinning","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps"],"mappings":";krCA6BA,IAAMA,EAA2B,CAC/BC,SAAU,GACVC,eAAgB,GAChBC,aAAc,OAGhB,IAAMC,EAA6D,CACjEC,QAAS,CACPC,YAAa,SAAAA,EAACC,GACZ,OAAO,SAACC,GACNA,EAAMP,SAAWM,EAAON,UAAY,GACpCO,EAAMN,eAAiBO,EAAYD,EAAMP,SAAUM,EAAOG,cAC1DF,EAAMG,cAAgB,kBAEzB,EACDC,cAAe,SAAAA,IACb,OAAO,SAACJ,GACNA,EAAMP,SAAW,GAEpB,EACDY,oBAAqB,SAAAA,EAACN,GACpB,OAAO,SAACC,GACNA,EAAMG,cAAgBJ,EACtB,GAAIA,IAAW,gBAAiB,CAC9BC,EAAMP,SAAW,EACnB,EAEH,EACDa,uBAAwB,SAAAA,EAACP,GACvB,OAAO,SAACC,GACN,IAAMO,EAAQN,EAAYD,EAAMP,SAAUM,EAAOG,cACjD,IAAMM,EAASD,EAAME,MAAK,SAACC,GAAI,OAAKA,EAAKX,EAAOY,aAAeZ,EAAOa,SACtE,GAAIJ,EAAQ,CACV,GAAIK,EAAQd,EAAOe,aAAef,EAAOe,WAAWC,OAAS,EAAG,CAC9DP,EAAOT,EAAOG,cAAgBH,EAAOe,UACvC,KAAO,CACLN,EAAOQ,OAAS,IAClB,CACF,CACAhB,EAAMN,eAAiBO,EAAYD,EAAMP,SAAUM,EAAOG,cAE9D,GAEFF,MAAOR,GAGT,IAAMyB,EAAwF,CAAA,EAQvF,IAAMC,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAKF,EAAkBE,GAAM,CAC3BF,EAAkBE,GAAOC,EAAMxB,EACjC,CACA,OAAOqB,EAAkBE,EAC3B,ECtFO,IAAME,EAAkB,SAAlBA,EACXT,EACAnB,EACA6B,GAEA,IAAMC,EAAaC,EAAiB/B,EAAU6B,GAC9C,OAAOG,EAAqBb,EAAOW,EAAY,KAAM,CAAEX,MAAO,QAASc,YAAa,eACtF,EAMO,IAAMC,EAAe,SAAfA,EAAgBC,EAAMC,GACjC,IAAIC,EAAWC,EAAkBH,GAAQ,GAAKA,EAC9CE,EAAWjB,EAAQiB,GAAYA,EAAW,CAACA,GAC3CA,EAAWA,EAASE,KAAI,SAACtB,GACvB,GAAIuB,EAASvB,GAAO,OAAOA,EAAKmB,EAAuBjB,OACvD,OAAOF,CACT,IACA,OAAOoB,CACT,EAEO,IAAMI,EAAY,SAAZA,EAAaN,EAAMC,GAC9B,IAAMM,EAAOR,EAAaC,EAAMC,GAChC,IAAMG,EAAM,CAAA,EACZG,EAAKC,SAAQ,SAAC1B,GACZsB,EAAItB,GAAQ,IACd,IACA,OAAOsB,CACT,EAYO,IAAMK,EAA4B,SAA5BA,EACXC,EACAC,EACAV,GAEA,GAAIE,EAAkBO,IAAWP,EAAkBQ,GAAS,OAAO,KACnE,IAAMC,EAAUN,EAAUI,EAAQT,GAClC,IAAMY,EAAUP,EAAUK,EAAQV,GAClC,IAAMa,EAAOC,EAAOH,EAASC,GAC7B,OAAOC,CACT,6ZCkJO,IAAME,EAAcC,GAAgD,SAACC,EAAOC,GACjF,IACEC,EAuBEF,EAvBFE,cACAC,EAsBEH,EAtBFG,qBACAC,EAqBEJ,EArBFI,iBACAtC,EAoBEkC,EApBFlC,MACAuC,EAmBEL,EAnBFK,SACAC,EAkBEN,EAlBFM,SAAQC,EAkBNP,EAjBFQ,4BAAAA,EAA2BD,SAAG,EAAA,KAAIA,EAClCE,EAgBET,EAhBFS,UACAC,EAeEV,EAfFU,yBACAC,EAcEX,EAdFW,wBACAC,EAaEZ,EAbFY,oBACAC,EAYEb,EAZFa,YACAC,EAWEd,EAXFc,WACAC,EAUEf,EAVFe,kBACAC,EASEhB,EATFgB,qBACAjC,EAQEiB,EARFjB,uBACAkC,GAOEjB,EAPFiB,aACAC,GAMElB,EANFkB,eACAC,GAKEnB,EALFmB,eACAC,GAIEpB,EAJFoB,gBACAC,GAGErB,EAHFqB,eACAC,GAEEtB,EAFFsB,iBACGC,GAAUC,EACXxB,EAAKyB,GACT,IAAMC,GAAsB1B,EAAM2B,eAAe,oBACjD,IAAMC,GAAmB1B,GAAiB,GAC1C,IAAM2B,GAA0B1B,GAAwB,GACxD,IAAA2B,GAAgDC,IAAzCC,GAAgBF,GAAA,GAAEG,GAAmBH,GAAA,GAC5C,IAAAI,GAAyB9D,EAAiBkC,GAAU6B,WAA7CjF,GAAKgF,GAAA,GAAEnF,GAAOmF,GAAA,GACrB,IAAAE,GAA8BC,EAASC,aAAa,OAA7CC,GAAOH,GAAA,GAAEI,GAAUJ,GAAA,GAC1B,IAAMK,GAAa,oBAAuBzC,EAAMM,SAChD,IAAM9B,GAAakE,GAAQ,WACzB,OAAAC,EAAA,CAASC,MAAO,QAAS9E,MAAO,QAAS+E,SAAU,YAAe7C,EAAMxB,WAC1E,GAAG,CAACwB,EAAMxB,aAEV,IAAMsE,GAAkBC,IACxB,IAAMC,GAAoB7B,KAAmB8B,UAAY,OAAS9B,GAClE,IAAM+B,GAAqB9B,KAAoB6B,UAAY,QAAU7B,GAErE,IAAM+B,GAAa1C,IAAc,KAEjC,IAAM2C,GAA8BV,GAAQ,WAC1C,OAAAC,EAAA,CAASC,MAAO,QAAS9E,MAAO,SAAYiB,EAC9C,GAAG,CAACA,IAEJ,IAAAsE,GAA8CtB,IAAvCuB,GAAeD,GAAA,GAAEE,GAAkBF,GAAA,GAE1C,IAAMG,GAAqBT,EAAO,MAClC,IAAAU,GAAoC1B,EAAS,GAAtC2B,GAAUD,GAAA,GAAEE,GAAaF,GAAA,GAChC,IAAMG,GAAuBb,IAE7B,IAAMc,GAAYnB,GAAQ,WACxB,IAAM1D,EAAWH,EAAaf,EAAOsF,IACrC,OAAOpE,CACT,GAAG,CAACoE,GAA6BtF,IAEjCuE,EAASyB,iBAAgB,WACvB,GAAK7E,EAAkBnB,IAAU0F,GAAmBO,SAAY7G,GAAMP,SAASsB,QAAU,EAAG,OAC5FuF,GAAmBO,QAAU,MAC7B,IAAKxE,EAA0BzB,EAAO8F,GAAqBG,QAASX,IAA8B,CAChGY,QAAQC,IAAG,YAAa3D,EAAQ,2BAA4BxC,EAAO8F,GAAqBG,SACxFH,GAAqBG,QAAUZ,GAAaU,GAAYA,GAAU,GAElE,IAAMK,EAAeC,GAAoBN,GAAW,MACpD5B,GAAoBmC,MAAMC,KAAK,IAAIC,IAAIJ,KACvCpB,GAAgBiB,QAAUF,GAC1BF,GAAcY,KAAKC,MACrB,CACD,GAAE,CAAC1G,EAAOZ,GAAMP,WAEjB,IAAM8H,GAAe,SAAfA,EAAgB3F,GACpB,OAAOA,IAAS,IAAMG,EAAkBH,IAG1C,IAAM4F,GAAwB,SAAxBA,EAAyBC,GAC7B,IAAMC,EACJhD,GAAiBiD,uBACbjD,GAAiBiD,uBAAuBF,GACxCA,EAEN,OAAOC,GAGTvC,EAASyB,iBAAgB,WACvBP,GAAmB1C,EACrB,GAAG,CAACA,IAEJ,IAAMiE,GAAyBC,EAAMC,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAK1CC,EACAC,EAEEC,EAYAC,EAEAC,EAvTd,IAAIC,aAAJ,IAAI,OAAAP,GAAK,CAAC,MAAAQ,GAAW,OAAOP,EAAAO,EAAM,GAAlC,IAAIC,EAAA,SAmUSC,GAnUb,IAoUMpD,GAAW,YACNqD,EAAQD,MAAOA,EAAMC,SAAsB,aArUtD,OAAOJ,GAAE,CAAC,MAAAC,GAAW,OAAOP,EAAAO,EAAM,GAkS9B,IACE,IAAK9D,GAAiBkE,UAAW,CAC/B,MAAM,IAAIC,MAAM,uBAClB,CACMX,EAAqBxD,GAAiBwD,mBACtCnI,EAAS+I,EAAO,CAAA,EAAIpE,GAAiB3E,QAC3C,GAAImI,EAAoB,CAChBE,EAAUF,EAAmBzH,MAAK,SAACU,GACvC,OAAOoG,GAAaxH,EAAOoB,GAC7B,IACA,GAAIiH,EAAS,CACXtB,QAAQiC,KAAyBb,oBAAAA,EAAmBc,KAAK,KAAW,QACpE,OAAAhB,GACF,CACF,CAhTN,IAAIiB,aAAJ,IAAA,OAAOV,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,GAAlC,IAAIU,EAAA,SA8TWR,GA9Tf,IA+TQS,OAAO5D,IAAiB,MACxBD,GAAW,YACNzF,GAAQQ,oBAAoB,iBAjUzC,OAAO4I,GAAE,CAAC,MAAAT,GAAW,OAAOC,EAAAD,EAAM,GAiT5B,IACElD,GAAW,MACX,OAAAyC,QAAAqB,QAAMvJ,GAAQQ,oBAAoB,qBAAlCgJ,eAAqDC,GAnT7D,IAoTQH,OAAO5D,IAAiB,KACN,OAAAwC,QAAAqB,QAAM1E,GAAiBkE,WAAS,UAAA,EAA1BlE,GAAiBkE,UAAY7I,IAAnCsJ,eAA0CE,GArTpE,IAqTclB,EAAYkB,EAClB9F,GAAAA,UAAAA,EAAAA,EAA0B4E,GACpBZ,EAAWD,GAAsBa,GACvCmB,GAAqB/B,GAAY,IACjCnC,GAAW,OACX,GAAInB,IAAkBsF,EAAQhC,GAAU1G,OAAQ,CAC9CgE,GAAoB,CAAC0C,GAAQ,UAAA,EAARA,EAAW,GAAGnG,GAAWV,QAChD,CACAuI,OAAO5D,IAAiB,MA7ThC,OAAO0D,GAAE,CAAC,MAAAT,GAAW,OAAOU,EAAAV,EAAM,CAAC,GAAAU,EAA1B,CAAC,MAAAV,GAAW,OAAOU,EAAAV,EAAM,CAAC,GAAAU,EA8T5B,CAAC,MAAOR,GAAOQ,EAAPR,EAIT,CACD,CAAC,MAAOA,GAAOD,EAAPC,EAGT,CAAC,OAGHvD,EAASyB,iBAAgB,WACvB,GAAIpC,GAAqB,OAEzB,GAAIkF,QAAQ/E,GAAwB5D,QAAS,MACtC6G,KACL,MACF,CACA,IAAM+B,EAAWzI,EAAiBkC,GAAUwG,WAC5C,GAAID,EAASxJ,gBAAkB,kBAAmB,CAChD,MACF,CAEA,IAAKgJ,OAAO5D,IAAgB,MACrBqC,KACL,MACF,CACD,GAAEjD,IAEHQ,EAASyB,iBAAgB,WACvB,GAAIpC,GAAqB,CACvBgF,GAAqBtG,GAAoB,GAC3C,CACF,GAAG,CAACA,IAEJ,IAAMsG,GAAuB3B,EAAMC,gBAAe,SAAC+B,GACjD,IAAIA,GAAQ,UAAA,EAARA,EAAU9I,UAAW,GAAKf,GAAMP,SAASsB,SAAW,EAAG,MACpDlB,GAAQQ,oBAAoB,mBACjC,MACF,MACKR,GAAQC,YAAY,CACvBL,SAAUoK,GAAY,GACtB3J,aAAcoB,GAAWqE,WAE3BnC,GAAAA,UAAAA,EAAAA,EAA2BqG,EAC7B,IAEA,IAAM5C,GAAsBY,EAAMC,gBAAe,SAACnB,EAAmCmD,GACnF,IAAIC,EAAsB,GAC1BpD,EAAUvE,SAAQ,SAACxB,GACjB,IAAKkJ,GAAWhF,IAAgB,MAAhBA,GAAkBkF,SAASpJ,GAAQ,OACnD,IAAMqJ,EAAa5I,EAAgBT,EAAOZ,GAAMP,SAAU6B,IAC1DyI,EAAsBA,EAAoBG,OAAOD,EAAWjI,KAAI,SAACtB,GAAI,OAAKA,EAAKE,KAAK,IACtF,IACA,OAAOmJ,CACT,IAEAlC,EAAMsC,iBAAgB,WACpB,GAAI/D,GAAiB,CACnB,IAAM7E,EAAaC,EAAiBxB,GAAMP,UAAY,GAAI6B,IAC1D,IAAM2I,EAAa1I,EAAW6I,QAAO,SAAC1J,GAAI,IAAA2J,EAAA,OAAAA,EAAK3J,EAAKgF,QAAK,UAAA,EAAV2E,EAAYL,SAAS5D,IAAmB,OACvFrB,IAAoB,SAACuF,GACnB,IAAMC,EAAYtD,GAAoBgD,EAAWjI,KAAI,SAACtB,GAAI,OAAKA,EAAKE,KAAK,KAAGsJ,OAAOI,GAAQ,IAC3F,OAAOpD,MAAMC,KAAK,IAAIC,IAAImD,GAC5B,GACF,KAAO,CACLxF,GAAoB,GACtB,CACF,GAAG,CAACqB,KAEJoE,EAAoBzH,GAAK,WACvB,MAAO,CACL0H,oBAAqB,SAAAA,SACd5K,GAAQO,eACd,EACDsK,gBAAiB,SAAAA,IACf,OAAO1K,GAAMP,QACf,EAEJ,IAEA,IAAMkL,GAAW9C,EAAMC,gBAAe,SAACd,GACrCjC,GAAoBiC,EACtB,IAEA,IAAM4D,GAAe/C,EAAMC,gBAAe,SAAC+C,EAAaC,EAAaC,GACnErE,GAAqBG,QAAUgE,EAC/B,IAAMG,EAAajJ,EAAkB+I,GAAc,GAAKjK,EAAQiK,GAAcA,EAAa,CAACA,GAC5F,GAAI/I,EAAkB8I,GAAc,CAClC1H,GAAQ,UAAA,EAARA,EAAW0H,EAAaC,EAAYC,GACpC,MACF,CACA,GAAIhH,GAAc,CAChB,IAAMkH,EAAU/E,GAA4BR,MAC5C,IAAMwF,EAAUhF,GAA4BtF,MAC5C,IAAMuK,EAAmBH,EAAWhJ,KAAI,SAACtB,GAAS,IAAA0K,EAChD,OAAAA,EAAAA,CAAAA,EAAAA,EACGH,GAAUvK,EAAKY,GAAWoE,OAAM0F,EAChCF,GAAUxK,EAAKY,GAAWV,OAAMwK,CAErC,IACA,GAAIvK,EAAQgK,GAAc,CACxB1H,GAAQ,UAAA,EAARA,EAAWgI,EAAkBH,EAAYD,EAC3C,KAAO,CACL5H,GAAAA,UAAAA,EAAAA,EAAWgI,EAAiB,GAAIH,EAAW,GAAID,EACjD,CACF,KAAO,CACL,GAAIlK,EAAQgK,GAAc,CACxB1H,GAAQ,UAAA,EAARA,EAAW0H,EAAaG,EAAYD,EACtC,KAAO,CACL5H,GAAQ,UAAA,EAARA,EAAW0H,EAAaG,EAAW,GAAID,EACzC,CACF,CACF,IAEA,IAAMM,GAAqBxD,EAAMC,gBAAe,SAACwD,EAAaC,GAC5D,IAAIC,EAAmB1I,EAAM2I,cAAgBH,EAAYI,QAAUJ,EACnEE,EAAmBzJ,EAAkBuJ,GAAe,GAAKA,EACzDE,EAAmB3K,EAAQ2K,GAAoBA,EAAmB,CAACA,GAEnE,IAAMG,EAAmB,GACzB,IAAMC,EAAwB,GAC9B,IAAMC,EAAkB,GACxB,IAAMC,EAAuB,GAC7BN,EAAiBpJ,SAAQ,SAAC1B,GACxB,IAAMF,EAASR,GAAMN,eAAee,MAAK,SAACsL,GAAI,OAAKA,EAAKzK,GAAWV,SAAWF,KAC9E,IAAKF,EAAQ,OACb,IAAMmF,EAAWnF,GAAM,UAAA,EAANA,EAASc,GAAWqE,UACrC,IAAK9E,EAAQ8E,IAAaA,EAAS5E,SAAW,EAAG,CAC/C4K,EAAiBK,KAAKxL,GACtBoL,EAAsBI,KAAKxL,EAAOc,GAAWV,OAC/C,CACAiL,EAAgBG,KAAKxL,GACrBsL,EAAqBE,KAAKxL,EAAOc,GAAWV,OAC9C,IAEA,GAAI2C,EAAW,CACbwB,IAAoB,SAACuF,GACnB,IAAMC,EAAYtD,GAAoB2E,GAAuB1B,OAAOI,GAAQ,IAC5E,OAAOpD,MAAMC,KAAK,IAAIC,IAAImD,GAC5B,IACA,IAAKjH,IAAgCR,EAAM2I,cAAe,CACxDb,GAAagB,EAAuBD,EAAkBE,EACxD,KAAO,CACLjB,GAAakB,EAAsBD,EAAiBA,EACtD,CACF,KAAO,CACL,GAAIL,EAAiB,GAAI,CACvB,IAAMS,EAAcJ,EAAgBpL,MAAK,SAACC,GAAI,OAAKA,EAAKY,GAAWV,SAAW4K,EAAiB,MAC/FZ,GAAaY,EAAiB,GAAIS,EAAa,CAACA,GAClD,KAAO,CACL,IAAMC,EAAYX,EAAYY,KAAK7K,GAAWV,OAC9C,IAAMJ,EAASR,GAAMN,eAAee,MAAK,SAACsL,GAAI,OAAKA,EAAKzK,GAAWV,SAAWsL,KAC9EtB,GAAa7E,UAAWvF,EAAQ,CAACA,GACnC,CACF,CACF,IAEA,IAAM4L,GAA4BvE,EAAMC,gBAAe,SAACuE,GACtD,OAAO3I,GAAmB,UAAA,EAAnBA,EAAsB2I,EAC/B,IAEA,IAAMC,GAAW9G,GAAQ,WACvB,IAAM+G,EAAO,SAAPA,EAAQ3K,GAAY,OACxBA,eAAAA,EAAMI,KAAI,SAACtB,GAAS,IAAA8L,EAClB,IAAMC,GAAcL,IAAyB,UAAA,EAAzBA,GAA4B1L,KAASA,EACzD,IAAMgM,EAAW1I,GAAiB+B,UAAY0G,EAAYC,SAC1D,IAAMC,EAAWF,EAAYnL,GAAWoE,OACxC,IAAIkH,EACJ,GAAIxG,GAAiB,CACnB,IAAMyG,EAAQF,EAASG,QAAQ1G,IAC/B,IAAM2G,EAAYJ,EAASK,UAAU,EAAGH,GACxC,IAAMI,EAAWN,EAASO,MAAML,EAAQzG,GAAgBrF,QACxD6L,EACEC,GAAS,EACPM,EAAA,OAAA,CAAMC,UAAWC,EAAW,CAAE,uBAAwBZ,EAAYC,WAAY/G,SAAA,CAC3EoH,EACDO,EAAA,OAAA,CAAMF,UAAU,yBAAwBzH,SAAES,KACzC6G,KAED,IACR,CACA,IAAKL,EAAU,CACbA,EACEU,EAAA,OAAA,CAAMF,UAAWC,EAAW,CAAE,uBAAwBZ,EAAYC,WAAY/G,SAAEgH,GAEpF,CACA,IAAMhH,EAAW8G,EAAYnL,GAAWqE,UACxC,OAAAF,EAAA,CAAA,EACKgH,GAAWD,EAAA,CACdE,SAAAA,GAAQF,EACPlL,GAAWoE,OAAQkH,EAAQJ,EAC5Be,cAAeZ,EAAQH,EACvBgB,UAAWf,EAAYC,SAAQF,EAC9BlL,GAAWqE,UAAW9E,EAAQ8E,IAAaA,EAAS5E,OAAS,EAAIwL,EAAK5G,GAAYI,UAASyG,GAEhG,GAAE,EACJ,IAAMrK,EAAOsL,EAAWzN,GAAMP,UAAY,IAC1C,GAAI2G,IAAmBhC,KAAqB,YAAa,CACvD,OAAOmI,EACLmB,EAAWD,EAAWzN,GAAMP,UAAY,KAAK,SAAC0M,GAAS,IAAAwB,EACrD,IAAM/M,GAAK+M,EAAGxB,EAAK7K,GAAWoE,SAAM,UAAA,EAAtBiI,EAAwBC,cACtC,OAAOhN,EAAMkM,QAAQ1G,GAAgBwH,gBAAkB,CACxD,IAEL,CACA,OAAOrB,EAAKpK,EACb,GAAE,CACDnC,GAAMP,SACN2G,GACAhC,GACAgI,GACApI,GACA1C,GAAWoE,MACXpE,GAAWqE,WAGb,IAAMkI,GAAWhG,EAAMC,gBAAe,SAACuE,GACrC,OAAO,IAAItE,SAAc,SAAOqB,EAAS0E,GAAhB,OAAA,IAAA/F,SAAA,SAAAC,EAAAC,GAAA,IAAA8F,EAAAC,EAMfC,EAGAvG,EARR,GAAI2E,EAAS/K,GAAWqE,UAAW,CACjCyD,IACA,OAAApB,GACF,CA5hBN,IAAIkG,aAAJ,IAAI,OAAAlG,GAAK,CAAC,MAAAQ,GAAW,OAAOP,EAAAO,EAAM,GAAlC,IAAI2F,EAAA,SAijBWzF,GAjjBf,SAkjBaC,EAAQD,MAAMA,EAAMC,SAAW,aAEpCmF,IApjBR,OAAOI,GAAE,CAAC,MAAA1F,GAAW,OAAOP,EAAAO,EAAM,GA6hB5B,IACmB,OAAAT,QAAAqB,SAAA2E,EAAMjL,EAAMsL,wBAAqB,UAAA,EAA3BL,EAA6BnF,uBAA7BmF,EAA6BnF,WAASoF,EAC3DlL,EAAMsL,wBAAqB,UAAA,EAA3BJ,EAA6BK,WAA7BL,UAAAA,EAAAA,EAA6BK,UAAYhC,KAD1BhD,eAEhBiF,GAhiBT,IA8hBc7G,EAAW6G,EAGX5G,EACJhD,GAAiBiD,uBACbjD,GAAiBiD,uBAAuBF,GACxCA,OAED5H,GACFS,uBAAuB,CACtBM,MAAOyL,EAAS/K,GAAWV,OAC3BE,WAAY4G,EACZxH,aAAcoB,GAAWqE,SACzBhF,UAAWW,GAAWV,QAEvByI,MAAK,SAACM,GACLH,GAAqBG,EAASlK,UAC9B2J,GACF,IAhjBV,OAAO8E,GAAE,CAAC,MAAA1F,GAAW,OAAO2F,EAAA3F,EAAM,CAAC,GAAA2F,EAijB5B,CAAC,MAAOzF,GAAOyF,EAAPzF,EAIT,CAAC,MAEL,IAEA,IAAM6F,GAAa1G,EAAMC,gBAAe,SAAC0G,GACvC,IAAM7I,EAAW6I,GAAQ,UAAA,EAARA,EAAWlN,GAAWqE,UAEvC,IAAM8I,EAAe3L,EAAM2L,aAC3B,IAAMC,EAAkBD,GAAgBD,EAASxN,OAAS,MAC1D,IAAM2N,EAAehJ,GAAYA,EAAS5E,OAAS,GAAM2N,EACzD,OAAQC,CACV,IAEA,IAAMC,GAAc/G,EAAMC,gBAAe,SAAC0G,GAAa,IAAAK,EAAAC,EACrD,IAAMC,EAAcP,EAASjB,eAAiBiB,EAASlN,GAAWoE,OAElE,GAAII,KAAsB,OAAQ,CAAA,IAAAkJ,EAChC,IAAIC,EAAsB,GAC1B,IAAAD,EAAIlM,EAAMmM,cAAND,MAAAA,EAAmBE,KAAM,CAAA,IAAAC,EAAAC,EAAAC,EAC3BJ,IACEE,EAAArM,EAAMmM,cAAW,UAAA,GAAAG,EAAjBD,EAAoBrJ,MAApBsJ,UAAAA,EAAAA,EAAAE,KAAAH,EAAA1J,EACK+I,CAAAA,EAAAA,GAAQa,KAAAA,EACV/N,GAAWoE,OAAQqJ,EAAWM,OAC3B,EACV,KAAO,CAAA,IAAAE,EACLN,GACEnM,EAAM0M,gBAAN1M,UAAAA,EAAAA,EAAM0M,eAAc/J,EACf+I,CAAAA,EAAAA,GAAQe,EAAAA,CAAAA,EAAAA,EACVjO,GAAWoE,OAAQqJ,EAAWQ,OAC3B,EACV,CACA,OACEpC,EAACsC,EAAQ,CAAA9J,UACP2H,EAAA,OAAA,CAAMF,UAAU,kBAAiBzH,SAAE6I,GAAQ,UAAA,EAARA,EAAWlN,GAAWoE,SACxDuJ,EAAYlO,OAAS,GACpBuM,EAACoC,EAAmB,CAACC,SAAUV,EAAYtJ,SACzC2H,EAAAsC,EAAA,QAKV,CACA,IAAMX,GAAWJ,EAAG/L,EAAMmM,cAAW,UAAA,EAAjBJ,EAAmBgB,MAAI,UAAA,EAAvBhB,EAAmBgB,KAAIpK,EACtC+I,CAAAA,EAAAA,GAAQM,KAAAA,EACVxN,GAAWoE,OAAQqJ,EAAWD,KAEjC,OACE3B,EAACsC,EAAQ,CAAA9J,UACP2H,EAAA,OAAA,CAAMF,UAAU,kBAAiBzH,SAAE6I,GAAQ,UAAA,EAARA,EAAWlN,GAAWoE,SACxDuJ,EACC3B,EAACwC,EAAarK,EAAA,CAAA,EACRwJ,EAAW,CACfc,IAAK,EACL3C,UAAWC,EAAW,0BAA2B4B,EAAY7B,cAE7D,OAGV,IAEA,IAAM4C,GAAmBnI,EAAMoI,qBAAoB,SAACrP,GAClDyF,GAAmBzF,GACnBkC,EAAMoN,qBAANpN,UAAAA,EAAAA,EAAMoN,oBAAsBtP,EAC7B,GAAE,KAEH,IAAMuP,GAAiBtI,EAAMC,gBAAe,SAACsI,GAC3CJ,GAAiBI,EAAE5P,OAAOI,MAC5B,IAEA,IAAMyP,GAAaxI,EAAMC,gBAAe,SAACwE,GACvC,IAAKxJ,EAAMwN,KAAM,OAAO,KACxB,GAAIC,EAAezN,EAAMwN,MAAO,OAAOxN,EAAMwN,KAC7C,IAAME,EAAajC,GAAWjC,EAAS1K,MACvC,OAAOkB,EAAMwN,KAAI7K,KACZ6G,EAAQ,CACXmE,UAAWD,EACXxP,OAAQwP,IAEZ,IAEA,IAAME,GAAiBlL,GAAQ,WAC7B,MAAO,CAAEmL,MAAOrP,GAAWoE,MAAOvE,IAAKG,GAAWV,MAAO+E,SAAUrE,GAAWqE,SAChF,GAAG,CAACrE,KACJ,IAAMsP,GAAWtE,GAASvL,OAAS,GAAKf,GAAMG,gBAAkB,gBAChE,IAAM0Q,GAAWpL,EAAA,CACfqL,SAAU,CAAEC,aAAc,OAC1BnC,YAAAA,GACAoC,UAAW,KACXC,aAAc3D,EAAA4D,EAAA,KACX7M,GAAU,CACb/C,WAAYoP,GACZ1J,aAAclC,GACdwH,SAAAA,GACA3B,SAAAA,GACAkD,SAAU/K,EAAM2L,aAAeZ,GAAW9H,UAC1CoL,MAAK1L,EAAA,CAAI2L,MAAO,QAAW/M,GAAW8M,OACtCb,KAAMD,KAGR,IAAMgB,GAAe,CACnBC,QAASjG,GACT9H,UAAAA,EAEAgO,mBAAoB3L,GAAgBiB,SAGtC,IAAM2K,GAAgB,CACpBC,SAAUpG,GACVqG,SAAU,MAEVC,oBAAqB/L,GAAgBiB,SAEvC,IAAM+K,GAAarO,EAAY8N,GAAeG,GAC9C,IAAMK,GAAQxE,EAAW,iBAAgB,uBAAyBrH,IAClE,IAAM8L,GAAgB9R,GAAMP,SAASsB,OAAS,IAAM6P,IAAYxK,GAChE,OACE+G,EAAA,MAAA,CAAKC,UAAWyE,GAAMlM,SAEnB,GAAE/B,GACDuJ,EAAA,MAAA,CAAKC,UAAU,6BAA4BzH,SAAA,CACzC2H,EAACyE,EAAkB,CACjB3E,UAAU,wBACV4E,YAAanO,EACbV,SAAUgN,GACVvP,MAAO+C,EACPsO,WAAU,SAETnP,EAAMoP,oBACP5E,EAAA,OAAA,CAAMF,UAAU,8BAA6BzH,SAAE7C,EAAMoP,wBAK1DtB,GACCzD,EAAA,MAAA,CAAKC,UAAU,8BAA6BzH,SAAA,CAC1C2H,EAAC6E,EAAI,CAACC,SAAUpS,GAAMG,gBAAkB,qBACxCmN,EAAC+E,EAAI5M,EAAA,CAAA,EAAsBmM,GAAgBf,GAAW,CAAEzD,UAAU,wBAAvD5G,OAGb8G,EAACgF,EAAa,CACZC,OAAQvS,GAAMG,cACdkF,QAASA,GACTmN,cAAa/M,EAAA,CACX,kBAAmBqM,GAAgB,SAAW,QAC3ChO,GAEL2O,YACEnF,EAACoF,EAAM,CAACC,KAAK,UAAUC,QAAShL,GAAuBjC,SAAC,eAQpE,IAEA/C,EAAYiQ,aAAe,CACzB7O,eAAgB"}
|