@flatbiz/antd 4.2.88 → 4.2.90

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.
@@ -1 +1 @@
1
- .fba-dialog-modal .ant-modal-body{overflow-x:hidden;overflow-y:auto;padding:10px 24px 20px!important}.fba-dialog-modal .ant-modal-content{padding:20px 0!important}.fba-dialog-modal .ant-modal-footer,.fba-dialog-modal .ant-modal-header{padding:0 24px!important}.fba-dialog-modal .ant-modal-footer{margin:0!important}.fba-dialog-modal-title-extra .ant-modal-close{right:5px;top:5px}.fba-dialog-confirm .ant-modal-header{margin:0!important}.fba-dialog-confirm .ant-modal-body{color:rgba(0,0,0,.78)!important;font-size:16px;font-weight:400}.fba-dialog-confirm .ant-modal-footer>button:nth-child(2){margin-left:15px!important}.fba-dialog-loading .ant-modal-content{background-color:transparent!important;box-shadow:none!important;padding:0!important}.fba-dialog-loading .ant-modal-body{text-align:center!important}.fba-dialog-loading-content{background-color:#fff;border-radius:8px;display:inline-block;padding:20px 30px;text-align:center}.fba-dialog-loading-content .loader-inner{animation:dialog-spinner .6s linear infinite;border:2px solid rgba(0,128,227,.08);border-left:2px solid var(--fba-loading-color);border-radius:50%;height:30px;margin:0 auto;text-indent:-12345px;width:30px;z-index:100001}.fba-dialog-loading-content .loader-text{color:#606060;font-size:12px;font-size:16px;font-weight:500;letter-spacing:2px;margin-top:15px;text-align:left}@keyframes dialog-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
1
+ .fba-dialog-modal .ant-modal-body{overflow-x:hidden;overflow-y:auto;padding:10px 24px 20px!important}.fba-dialog-modal .ant-modal-content{padding:20px 0!important}.fba-dialog-modal .ant-modal-footer,.fba-dialog-modal .ant-modal-header{padding:0 24px!important}.fba-dialog-modal .ant-modal-footer{margin:0!important}.fba-dialog-modal-title-extra .ant-modal-close{right:5px;top:5px}.fba-dialog-confirm .ant-modal-header{margin:0!important}.fba-dialog-confirm .ant-modal-body{color:rgba(0,0,0,.78)!important;font-size:14px;font-weight:400}.fba-dialog-confirm .ant-modal-footer>button:nth-child(2){margin-left:15px!important}.fba-dialog-loading .ant-modal-content{background-color:transparent!important;box-shadow:none!important;padding:0!important}.fba-dialog-loading .ant-modal-body{text-align:center!important}.fba-dialog-loading-content{background-color:#fff;border-radius:8px;display:inline-block;padding:20px 30px;text-align:center}.fba-dialog-loading-content .loader-inner{animation:dialog-spinner .6s linear infinite;border:2px solid rgba(0,128,227,.08);border-left:2px solid var(--fba-loading-color);border-radius:50%;height:30px;margin:0 auto;text-indent:-12345px;width:30px;z-index:100001}.fba-dialog-loading-content .loader-text{color:#606060;font-size:12px;font-size:16px;font-weight:500;letter-spacing:2px;margin-top:15px;text-align:left}@keyframes dialog-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
@@ -1 +1 @@
1
- .form-item-label-70.ant-form-item .ant-form-item-label{width:70px}.form-item-label-80.ant-form-item .ant-form-item-label{width:80px}.form-item-label-90.ant-form-item .ant-form-item-label{width:90px}.form-item-label-100.ant-form-item .ant-form-item-label{width:100px}.form-item-label-110.ant-form-item .ant-form-item-label{width:110px}.form-item-label-120.ant-form-item .ant-form-item-label{width:120px}.form-item-label-130.ant-form-item .ant-form-item-label{width:130px}.form-item-label-140.ant-form-item .ant-form-item-label{width:140px}.form-item-label-150.ant-form-item .ant-form-item-label{width:150px}.form-item-label-160.ant-form-item .ant-form-item-label{width:160px}.form-item-label-170.ant-form-item .ant-form-item-label{width:170px}.form-item-label-180.ant-form-item .ant-form-item-label{width:180px}.form-item-label-190.ant-form-item .ant-form-item-label{width:190px}.form-item-label-200.ant-form-item .ant-form-item-label{width:200px}.form-item-label-auto.ant-form-item .ant-form-item-label{width:auto}.form-item-label-align-left .ant-form-item-label{text-align:left}.form-item-label-align-right .ant-form-item-label{text-align:right}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row{flex-direction:column}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-label{text-align:left;width:100%!important}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-control{flex:initial}.form-label-70 .ant-form-item-label{width:70px}.form-label-80 .ant-form-item-label{width:80px}.form-label-90 .ant-form-item-label{width:90px}.form-label-100 .ant-form-item-label{width:100px}.form-label-110 .ant-form-item-label{width:110px}.form-label-120 .ant-form-item-label{width:120px}.form-label-130 .ant-form-item-label{width:130px}.form-label-140 .ant-form-item-label{width:140px}.form-label-150 .ant-form-item-label{width:150px}.form-label-160 .ant-form-item-label{width:160px}.form-label-170 .ant-form-item-label{width:170px}.form-label-180 .ant-form-item-label{width:180px}.form-label-190 .ant-form-item-label{width:190px}.form-label-200 .ant-form-item-label{width:200px}.form-label-auto .ant-form-item-label{width:auto}.form-label-align-left .ant-form-item-label{text-align:left}.form-label-align-right .ant-form-item-label{text-align:right}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-row{flex-direction:column}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-label{text-align:left;width:100%}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-control{flex:initial}.form-formitem-gap-15{margin-bottom:-15px}.form-formitem-gap-15 .ant-form-item{margin-bottom:15px}.form-formitem-gap-8{margin-bottom:-8px}.form-formitem-gap-8 .ant-form-item{margin-bottom:8px}.form-formitem-gap-5{margin-bottom:-5px}.form-formitem-gap-5 .ant-form-item{margin-bottom:5px}.form-formitem-gap-0,.form-formitem-gap-0 .ant-form-item{margin-bottom:0}
1
+ .form-item-label-70.ant-form-item .ant-form-item-label{width:70px}.form-item-label-80.ant-form-item .ant-form-item-label{width:80px}.form-item-label-90.ant-form-item .ant-form-item-label{width:90px}.form-item-label-100.ant-form-item .ant-form-item-label{width:100px}.form-item-label-110.ant-form-item .ant-form-item-label{width:110px}.form-item-label-120.ant-form-item .ant-form-item-label{width:120px}.form-item-label-130.ant-form-item .ant-form-item-label{width:130px}.form-item-label-140.ant-form-item .ant-form-item-label{width:140px}.form-item-label-150.ant-form-item .ant-form-item-label{width:150px}.form-item-label-160.ant-form-item .ant-form-item-label{width:160px}.form-item-label-170.ant-form-item .ant-form-item-label{width:170px}.form-item-label-180.ant-form-item .ant-form-item-label{width:180px}.form-item-label-190.ant-form-item .ant-form-item-label{width:190px}.form-item-label-200.ant-form-item .ant-form-item-label{width:200px}.form-item-label-auto:not(.form-item-label-value-vertical).ant-form-item .ant-form-item-label{width:auto}.form-item-label-align-left .ant-form-item-label{text-align:left}.form-item-label-align-right .ant-form-item-label{text-align:right}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row{flex-direction:column}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-label{text-align:left;width:100%}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-control{flex:initial}.form-label-70 .ant-form-item-label{width:70px}.form-label-80 .ant-form-item-label{width:80px}.form-label-90 .ant-form-item-label{width:90px}.form-label-100 .ant-form-item-label{width:100px}.form-label-110 .ant-form-item-label{width:110px}.form-label-120 .ant-form-item-label{width:120px}.form-label-130 .ant-form-item-label{width:130px}.form-label-140 .ant-form-item-label{width:140px}.form-label-150 .ant-form-item-label{width:150px}.form-label-160 .ant-form-item-label{width:160px}.form-label-170 .ant-form-item-label{width:170px}.form-label-180 .ant-form-item-label{width:180px}.form-label-190 .ant-form-item-label{width:190px}.form-label-200 .ant-form-item-label{width:200px}.form-label-auto:not(.form-label-value-vertical) .ant-form-item-label{width:auto}.form-label-align-left .ant-form-item-label{text-align:left}.form-label-align-right .ant-form-item-label{text-align:right}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-row{flex-direction:column}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-label{text-align:left;width:100%}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-control{flex:initial}.form-formitem-gap-15{margin-bottom:-15px}.form-formitem-gap-15 .ant-form-item{margin-bottom:15px}.form-formitem-gap-8{margin-bottom:-8px}.form-formitem-gap-8 .ant-form-item{margin-bottom:8px}.form-formitem-gap-5{margin-bottom:-5px}.form-formitem-gap-5 .ant-form-item{margin-bottom:5px}.form-formitem-gap-0,.form-formitem-gap-0 .ant-form-item{margin-bottom:0}
@@ -1 +1 @@
1
- .simple-layout{background-color:#fff;border-radius:6px;padding:15px}.simple-layout>.simple-layout-content>.ant-form:not([class^="form-formitem-gap-*"]){margin-bottom:-15px}.simple-layout>.simple-layout-content>.ant-form:not([class^="form-formitem-gap-*"]) .ant-form-item{margin:0 0 15px}.simple-layout>.simple-layout-content>.ant-form .ant-form-item-label{width:82px}.simple-layout>.simple-layout-content>.ant-form .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{position:relative}.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,.simple-layout-title-sign+.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+.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}.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}.simple-layout-small.simple-layout{padding:8px 15px}.simple-layout-small.simple-layout>.simple-layout-content>.ant-form[class^="form-formitem-gap-*"]{margin-bottom:-8px}.simple-layout-small.simple-layout>.simple-layout-content>.ant-form[class^="form-formitem-gap-*"] .ant-form-item{margin:0 0 8px}
1
+ .simple-layout:not([class~=form-label-auto]):not([class~=form-label-value-vertical])>.simple-layout-content>.ant-form:not([class~=form-label-auto]):not([class~=form-label-value-vertical]) .ant-form-item:not([class~=form-item-label-auto]):not([class~=form-item-label-value-vertical]) .ant-form-item-label{width:82px}.simple-layout:not([class~=form-label-auto]):not([class~=form-label-value-vertical])>.simple-layout-content>.ant-form:not([class~=form-label-auto]):not([class~=form-label-value-vertical]) .ant-form-item:not([class~=form-item-label-auto]):not([class~=form-item-label-value-vertical]) .ant-form-item-label.ant-col-auto{width:auto}.simple-layout{background-color:#fff;border-radius:6px;padding:15px}.simple-layout>.simple-layout-content>.ant-form:not([class*=form-formitem-gap]){margin-bottom:-15px}.simple-layout>.simple-layout-content>.ant-form:not([class*=form-formitem-gap]) .ant-form-item{margin:0 0 15px}.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{position:relative}.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,.simple-layout-title-sign+.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+.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}.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}.simple-layout-small.simple-layout{padding:8px 15px}.simple-layout-small.simple-layout>.simple-layout-content>.ant-form:not([class*=form-formitem-gap]){margin-bottom:-8px}.simple-layout-small.simple-layout>.simple-layout-content>.ant-form:not([class*=form-formitem-gap]) .ant-form-item{margin:0 0 8px}
@@ -13,5 +13,5 @@ import './../flex-layout/index.css';
13
13
  import './../input-search-wrapper/index.css';
14
14
  import './index.css';
15
15
  /*! @flatjs/forge MIT @flatbiz/antd */
16
- import{treeToArray as e,treeToTiledArray as r,treeLeafParentsArray as t,isUndefinedOrNull as n,treeFilter as a,attachPropertiesToComponent as i}from"@flatbiz/utils";import{isArray as l}from"@dimjs/lang/cjs/is-array";import{Model as s}from"@dimjs/model-react";import o from"@ant-design/icons/es/icons/CaretDownFilled";import u from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as c}from"@dimjs/utils/cjs/class-names";import{extend as d}from"@dimjs/utils/cjs/extend";import{hooks as f}from"@wove/react/cjs/hooks";import{get as v}from"@dimjs/utils/cjs/get";import{a as p,_ as m}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{cloneState as h}from"@dimjs/model";import{Spin as g,Tree as y,Button as b,message as L}from"antd";import{forwardRef as w,useState as C,useMemo as j,useRef as N,useImperativeHandle as R,Fragment as q,isValidElement as S}from"react";import{ButtonOperate as k}from"../button-operate/index.js";import{DropdownMenuWrapper as x}from"../dropdown-menu-wrapper/index.js";import{fbaHooks as T}from"../fba-hooks/index.js";import{InputSearchWrapper as D}from"../input-search-wrapper/index.js";import{RequestStatus as P}from"../request-status/index.js";import{tree as A}from"@dimjs/utils/cjs/tree";import{isObject as E}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as _,jsx as I}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper/index.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"../index-ac189a77.js";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../use-responsive-point-21b8c601.js";var O={treeList:[],treeTiledArray:[],queryIsEmpty:false};var V={actions:{setTreeList:function r(t){return function(r){r.treeList=t.treeList||[];r.treeTiledArray=e(r.treeList,t.childrenName);r.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[];e.treeTiledArray=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[];e.treeTiledArray=[]}}},treeListAppendChildren:function r(t){return function(r){var n=e(r.treeList,t.childrenName);var a=n.find((function(e){return e[t.valueName]===t.value}));if(a){if(l(t.appendList)&&t.appendList.length>0){a[t.childrenName]=t.appendList}else{a.isLeaf=true}}r.treeTiledArray=e(r.treeList,t.childrenName)}}},state:O};var F={};var K=function e(r){if(!F[r]){F[r]=s(V)}return F[r]};var M=function e(r){var t=K(r).getState();return t.treeList};var U=function r(t,n){var a=e(t,n.children).filter((function(e){var r=e[n.children];return r&&r.length>0})).map((function(e){return e[n.value]}));return a};var z=function e(n,a,i){var l=r(a,i);return t(n,l,true,{value:"value",parentValue:"parentValue"}).filter((function(e){var r=e[i.children];return r&&r.length>0})).map((function(e){return e.value}))};var H=function e(r,t){var a=n(r)?[]:r;a=l(a)?a:[a];a=a.map((function(e){if(E(e))return e[t.value];return e}));return a};var B=function e(r,t,n){var a=n.node.key;var i=n.dragNode.key;var l=n.node.pos.split("-");var s=n.dropPosition-Number(l[l.length-1]);var o=t.value;var u=t.children;var c=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][u]){e(r[a][u],t,n)}}};var d=h(r);var f;c(d,i,(function(e,r,t){t.splice(r,1);f=e}));if(!n.dropToGap){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(f)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&s===1){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(f)}))}else{var v=[];var p;c(d,a,(function(e,r,t){v=t;p=r}));if(s===-1){v.splice(p,0,f)}else{v.splice(p+1,0,f)}}return{dataList:d,dragNodeData:Y(i,d,t)}};var Y=function r(t,n,a){var i;var l=a.value;var s=a.children;A.walkThroughTree((i={},i[l]=undefined,i[s]=n,i),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[l]}),s);var o=e(n,s);var u=o.find((function(e){return e[l]===t}));return{parentId:u==null?void 0:u["__parentId"],id:u==null?void 0:u[l],index:u==null?void 0:u["__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","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus"];var W=w((function(e,r){var t=e.style,i=e.serviceConfig,s=e.effectDependencyList,w=e.selectorTreeList,A=e.value,E=e.onChange,O=e.modelKey,V=e.checkableResponseParentNode,F=V===void 0?true:V,M=e.checkable,Y=e.onSelectorTreeListChange,W=e.onRequestResponseChange,J=e.treeItemDataAdapter,Q=e.searchValue,X=e.showSearch,Z=e.searchPlaceholder,$=e.requestMessageConfig,ee=e.labelInValueFieldNames,re=e.labelInValue,te=e.disabledCanUse,ne=e.menuLayoutType,ae=e.menuTriggerType,ie=e.initRootExpand,le=e.searchResultType,se=e.onDropNodeHandle,oe=e.onDropPrev,ue=e.labelRender,ce=e.searchStyle,de=e.className,fe=e.defaultExpandAll,ve=e.menus,pe=p(e,G);var me=e.hasOwnProperty("selectorTreeList");var he=i||{};var ge=s||[];var ye=C([]),be=ye[0],Le=ye[1];var we=K(O).useStore(),Ce=we[0],je=we[1];var Ne=T.useSafeState(false),Re=Ne[0],qe=Ne[1];var Se="request-progress-"+e.modelKey;var ke=j((function(){return m({label:"label",value:"value",children:"children"},e.fieldNames)}),[e.fieldNames]);var xe=ne===undefined?"fold":ne;var Te=ae===undefined?"click":ae;var De=N(true);var Pe=j((function(){return m({label:"label",value:"value"},ee)}),[ee]);var Ae=C(),Ee=Ae[0],_e=Ae[1];var Ie=N();var Oe=j((function(){return H(A,Pe)}),[Pe,A]);T.useEffectCustom((function(){if(Ce.treeList.length>0){if(De.current){De.current=false;if(fe){Le(U(Ce.treeList,ke));return}else if(ie&&Ce.treeList.length){Le([Ce.treeList[0][ke.value]]);return}}if(!n(A)){var e=Ue(Oe,true);Le(Array.from(new Set(be==null?void 0:be.concat(e))))}}}),[A,Ce.treeList,Oe]);var Ve=function e(r){return r===""||n(r)};var Fe=function e(r){if(he.onRequestResultAdapter){return he.onRequestResultAdapter(r)}if(ke.list){return v(r,ke.list,[])||[]}if(!l(r)){console.warn("接口返回数据为非数组结构,确认是否需要配置fieldNames.list进行解析");return[]}return r};T.useEffectCustom((function(){_e(Q)}),[Q]);var Ke=f.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,l,s;var o=function(){try{return e()}catch(e){return r(e)}};var u=function(e){try{De.current=false;qe(false);void L.error(e.message||"数据查询异常...");return o()}catch(e){return r(e)}};try{if(!he.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=he.requiredParamsKeys;n=d({},he.params);if(t){a=t.find((function(e){return Ve(n[e])}));if(a){void je.changeRequestStatus("no-dependencies-params");console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return o()}catch(e){return u(e)}};var f=function(e){try{window[Se]=false;qe(false);void je.changeRequestStatus("request-error");return c()}catch(e){return u(e)}};try{qe(true);return Promise.resolve(je.changeRequestStatus("request-progress")).then((function(e){try{window[Se]=true;return Promise.resolve(he.onRequest==null?void 0:he.onRequest(n)).then((function(e){try{i=e;W==null?void 0:W(i);l=Fe(i);s=l||[];if(s.length===0){De.current=false}Me(s);qe(false);window[Se]=false;return c()}catch(e){return f(e)}}),f)}catch(e){return f(e)}}),f)}catch(e){f(e)}}catch(e){u(e)}}))}));T.useEffectCustom((function(){if(me)return;if(ge.length){void Ke();return}var e=K(O).getState();if(e.requestStatus==="request-success"){Y==null?void 0:Y(e.treeList);return}if(!window[Se]){void Ke()}else{Y==null?void 0:Y(e.treeList)}}),ge);T.useEffectCustom((function(){if(me){Me(w||[])}}),[w]);var Me=f.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&Ce.treeList.length===0){void je.changeRequestStatus("request-success");return}void je.setTreeList({treeList:e||[],childrenName:ke.children});Y==null?void 0:Y(e)}));var Ue=function e(r,t){var n=[];r.forEach((function(e){if(!t&&be!=null&&be.includes(e))return;var r=z(e,Ce.treeList,ke);n=n.concat(r)}));return n};f.useUpdateEffect((function(){if(Ee){var e=Ce.treeTiledArray.filter((function(e){var r=e[ke.label]||"";return String(r).toLowerCase().includes(Ee.toLowerCase())}));Le((function(r){var t=e.map((function(e){return e[ke.value]})).concat(r||[]);var n=Ue(t);return Array.from(new Set(n))}))}else{Le([])}}),[Ee]);R(r,(function(){return{onClearSelectorList:function e(){void je.resetTreeList()},getTreeDataList:function e(){return Ce.treeList},onChangeExpandedKeys:function e(r){Le(r)}}}));var ze=f.useCallbackRef((function(e){Le(e)}));var He=f.useCallbackRef((function(e,r,t,a){Ie.current=e;var i=n(r)?[]:l(r)?r:[r];if(n(e)){E==null?void 0:E(e,r,t);return}if(re){var s=Pe.label;var o=Pe.value;var u=i.map((function(e){var r;return r={},r[s]=e[ke.label],r[o]=e[ke.value],r}));if(l(e)){E==null?void 0:E(u,i,t,a)}else{E==null?void 0:E(u[0],i[0],t,a)}}else{if(l(e)){E==null?void 0:E(e,i,t,a)}else{E==null?void 0:E(e,i[0],t,a)}}}));var Be=f.useCallbackRef((function(r,t){var a=n(r)?[]:r;a=e.checkStrictly?r.checked:r;a=l(a)?a:[a];var i=[];var s=[];var o=[];var u=[];a.forEach((function(e){var r=Ce.treeTiledArray.find((function(r){return r[ke.value]===e}));if(!r)return;var t=r==null?void 0:r[ke.children];if(!l(t)||t.length===0){i.push(r);s.push(r[ke.value])}o.push(r);u.push(r[ke.value])}));if(M){Le((function(e){var r=Ue(s).concat(e||[]);return Array.from(new Set(r))}));if(!F&&!e.checkStrictly){He(s,i,o,t)}else{He(u,o,o,t)}}else{if(a[0]){var c=o.find((function(e){return e[ke.value]===a[0]}));He(a[0],c,[c],t)}else{var d=t.node[ke.value];var f=Ce.treeTiledArray.find((function(e){return e[ke.value]===d}));He(undefined,f,[f],t)}}}));var Ye=f.useCallbackRef((function(e){return J==null?void 0:J(e)}));var Ge=j((function(){var e=h(Ce.treeList||[]);if(Ee&&le!=="highlight"){return a(h(Ce.treeList||[]),(function(e){var r;var t=(r=e[ke.label])==null?void 0:r.toLowerCase();return t.indexOf(Ee.toLowerCase())>=0}),{childrenName:ke.children})}return e}),[ke.children,ke.label,le,Ce.treeList,Ee]);var We=j((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var t,n;var a=(Ye==null?void 0:Ye(r))||r;var i=te?undefined:a.disabled;var s=(t=a[ke.label])==null?void 0:t.toLowerCase();var o;if(Ee){var u=s.indexOf(Ee.toLowerCase());var d=s.substring(0,u);var f=s.slice(u+Ee.length);var v=s.slice(u,u+Ee.length);o=u>-1?_("span",{className:c({"v-tree-item-disabled":a.disabled}),children:[d,I("span",{className:"site-tree-search-value",children:v}),f]}):null}if(!o&&a.disabled){o=I("span",{className:c({"v-tree-item-disabled":a.disabled}),children:s})}var p=a[ke.children];return m({},a,(n={disabled:i},n[ke.label]=o||s,n._treeItemName=s,n._disabled=a.disabled,n[ke.children]=l(p)&&p.length>0?e(p):undefined,n))}))};return e(Ge)}),[Ge,Ye,te,ke.label,ke.children,Ee]);var Je=f.useCallbackRef((function(r){return new Promise((function(t,n){return new Promise((function(a,i){var l,s,o,u,c;if(r[ke.children]){t();return a()}var d=function(){try{return a()}catch(e){return i(e)}};var f=function(e){try{void L.error(e.message||"数据加载异常...");n();return d()}catch(e){return i(e)}};try{return Promise.resolve((l=e.loadDataServiceConfig)==null||l.onRequest==null?void 0:l.onRequest(((s=e.loadDataServiceConfig)==null||s.getParams==null?void 0:s.getParams(r))||{})).then((function(n){try{u=n;c=(o=e.loadDataServiceConfig)!=null&&o.onRequestResultAdapter?e.loadDataServiceConfig.onRequestResultAdapter(u):u;void je.treeListAppendChildren({value:r[ke.value],appendList:c,childrenName:ke.children,valueName:ke.value}).then((function(e){Me(e.treeList);t()}));return d()}catch(e){return f(e)}}),f)}catch(e){f(e)}}))}))}));var Qe=f.useCallbackRef((function(r){var t=r==null?void 0:r[ke.children];var n=e.loadDataFlag;var a=n?!r.isLeaf:false;var i=t&&t.length>0||a;return!i}));var Xe=f.useCallbackRef((function(r){var t,n,a;var i=r._treeItemName||r[ke.label];var l=ve==null?void 0:ve(m({},r,(t={},t[ke.label]=i,t)));if(l!=null&&l.operateList.length){return _(q,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[ke.label])}),I(k,m({gap:5},l,{dropdownMenuProps:m({placement:"bottomRight",isFixed:true},l==null?void 0:l.dropdownMenuProps),className:c("tree-item-title-operate",l.className)}))]})}if(xe==="fold"){var s;var o=[];if((s=e.menuOptions)!=null&&s.fold){var d,f,v;o=((d=e.menuOptions)==null||(f=d[xe])==null?void 0:f.call(d,m({},r,(v={},v[ke.label]=i,v))))||[]}else{var p;o=(e.getMenuOptions==null?void 0:e.getMenuOptions(m({},r,(p={},p[ke.label]=i,p))))||[]}return _(q,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[ke.label])}),o.length>0&&I(x,{menuList:o,placement:"bottomRight",children:I(u,{})})]})}var h=(n=e.menuOptions)==null||n.tile==null?void 0:n.tile(m({},r,(a={},a[ke.label]=i,a)));return _(q,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[ke.label])}),h?I(k,m({gap:5},h,{className:c("tree-item-title-operate",h.className)})):null]})}));var Ze=f.useDebounceCallback((function(r){_e(r);e.onSearchValueChange==null?void 0:e.onSearchValueChange(r)}),300);var $e=f.useCallbackRef((function(e){Ze(e.target.value)}));var er=f.useCallbackRef((function(r){if(!e.icon)return null;if(S(e.icon))return e.icon;var t=Qe(r.data);return e.icon(m({},r,{isParent:!t,isLeaf:t}))}));var rr=j((function(){return{title:ke.label,key:ke.value,children:ke.children}}),[ke]);var tr=We.length>0&&Ce.requestStatus!=="request-error";var nr=m({showLine:{showLeafIcon:false},titleRender:Xe,blockNode:true,switcherIcon:I(o,{}),onDrop:function e(r){if(oe){var t=oe(r);if(!t)return}var n=B(Ge,ke,r),a=n.dataList,i=n.dragNodeData;se==null?void 0:se(i);Me(a)},expandedKeys:be},pe,{fieldNames:rr,treeData:We,onExpand:ze,loadData:e.loadDataFlag?Je:undefined,style:{width:"100%"},icon:er});var ar={onCheck:Be,checkable:M,checkedKeys:Oe};var ir={onSelect:Be,multiple:false,selectedKeys:Oe};var lr=M?ar:ir;var sr=c("v-tree-wrapper","v-tree-wrapper-menu-"+Te,de);var or=Ce.treeList.length>0&&!tr&&Ee;return _("div",{className:sr,style:t,children:[!!X&&_("div",{className:"v-tree-wrapper-search-area",style:ce,children:[I(D,{className:"v-tree-wrapper-search",placeholder:n(Z)?"搜索":Z,onChange:$e,value:Q,allowClear:true}),!!e.searchExtraElement&&I("span",{className:"v-tree-wrapper-search-extra",children:e.searchExtraElement})]}),tr?_("div",{className:"v-tree-wrapper-tree-wrapper",children:[I(g,{spinning:Ce.requestStatus==="request-progress"}),I(y,m({},lr,nr,{className:"v-tree-wrapper-tree"}))]}):I(P,{status:Ce.requestStatus,loading:Re,messageConfig:m({"request-success":or?"搜索结果为空":"暂无数据"},$),errorButton:I(b,{type:"primary",onClick:Ke,children:"重新获取数据"})})]})}));W.defaultProps={disabledCanUse:true};var J=i(W,{getTreeDataList:M});export{J as TreeWrapper};
16
+ import{treeToArray as e,treeToTiledArray as r,treeLeafParentsArray as t,isUndefinedOrNull as n,treeFilter as a,attachPropertiesToComponent as i}from"@flatbiz/utils";import{isArray as l}from"@dimjs/lang/cjs/is-array";import{Model as s}from"@dimjs/model-react";import o from"@ant-design/icons/es/icons/CaretDownFilled";import u from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as c}from"@dimjs/utils/cjs/class-names";import{extend as d}from"@dimjs/utils/cjs/extend";import{hooks as f}from"@wove/react/cjs/hooks";import{get as v}from"@dimjs/utils/cjs/get";import{a as p,_ as m}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{cloneState as h}from"@dimjs/model";import{Spin as g,Tree as y,Button as b,message as L}from"antd";import{forwardRef as w,useState as C,useMemo as j,useRef as N,useImperativeHandle as R,Fragment as q,isValidElement as S}from"react";import{ButtonOperate as k}from"../button-operate/index.js";import{DropdownMenuWrapper as x}from"../dropdown-menu-wrapper/index.js";import{fbaHooks as T}from"../fba-hooks/index.js";import{InputSearchWrapper as D}from"../input-search-wrapper/index.js";import{RequestStatus as P}from"../request-status/index.js";import{tree as A}from"@dimjs/utils/cjs/tree";import{isObject as E}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as _,jsx as I}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper/index.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"../index-ac189a77.js";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../use-responsive-point-21b8c601.js";var O={treeList:[],treeTiledArray:[],queryIsEmpty:false};var V={actions:{setTreeList:function r(t){return function(r){r.treeList=t.treeList||[];r.treeTiledArray=e(r.treeList,t.childrenName);r.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[];e.treeTiledArray=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[];e.treeTiledArray=[]}}},treeListAppendChildren:function r(t){return function(r){var n=e(r.treeList,t.childrenName);var a=n.find((function(e){return e[t.valueName]===t.value}));if(a){if(l(t.appendList)&&t.appendList.length>0){a[t.childrenName]=t.appendList}else{a.isLeaf=true}}r.treeTiledArray=e(r.treeList,t.childrenName)}}},state:O};var F={};var K=function e(r){if(!F[r]){F[r]=s(V)}return F[r]};var M=function e(r){var t=K(r).getState();return t.treeList};var U=function r(t,n){var a=e(t,n.children).filter((function(e){var r=e[n.children];return r&&r.length>0})).map((function(e){return e[n.value]}));return a};var z=function e(n,a,i){var l=r(a,i);return t(n,l,true,{value:"value",parentValue:"parentValue"}).filter((function(e){var r=e[i.children];return r&&r.length>0})).map((function(e){return e.value}))};var H=function e(r,t){var a=n(r)?[]:r;a=l(a)?a:[a];a=a.map((function(e){if(E(e))return e[t.value];return e}));return a};var B=function e(r,t,n){var a=n.node.key;var i=n.dragNode.key;var l=n.node.pos.split("-");var s=n.dropPosition-Number(l[l.length-1]);var o=t.value;var u=t.children;var c=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][u]){e(r[a][u],t,n)}}};var d=h(r);var f;c(d,i,(function(e,r,t){t.splice(r,1);f=e}));if(!n.dropToGap){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(f)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&s===1){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(f)}))}else{var v=[];var p;c(d,a,(function(e,r,t){v=t;p=r}));if(s===-1){v.splice(p,0,f)}else{v.splice(p+1,0,f)}}return{dataList:d,dragNodeData:Y(i,d,t)}};var Y=function r(t,n,a){var i;var l=a.value;var s=a.children;A.walkThroughTree((i={},i[l]=undefined,i[s]=n,i),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[l]}),s);var o=e(n,s);var u=o.find((function(e){return e[l]===t}));return{parentId:u==null?void 0:u["__parentId"],id:u==null?void 0:u[l],index:u==null?void 0:u["__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","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus"];var W=w((function(e,r){var t=e.style,i=e.serviceConfig,s=e.effectDependencyList,w=e.selectorTreeList,A=e.value,E=e.onChange,O=e.modelKey,V=e.checkableResponseParentNode,F=V===void 0?true:V,M=e.checkable,Y=e.onSelectorTreeListChange,W=e.onRequestResponseChange,J=e.treeItemDataAdapter,Q=e.searchValue,X=e.showSearch,Z=e.searchPlaceholder,$=e.requestMessageConfig,ee=e.labelInValueFieldNames,re=e.labelInValue,te=e.disabledCanUse,ne=e.menuLayoutType,ae=e.menuTriggerType,ie=e.initRootExpand,le=e.searchResultType,se=e.onDropNodeHandle,oe=e.onDropPrev,ue=e.labelRender,ce=e.searchStyle,de=e.className,fe=e.defaultExpandAll,ve=e.menus,pe=p(e,G);var me=e.hasOwnProperty("selectorTreeList");var he=i||{};var ge=s||[];var ye=C([]),be=ye[0],Le=ye[1];var we=K(O).useStore(),Ce=we[0],je=we[1];var Ne=T.useSafeState(false),Re=Ne[0],qe=Ne[1];var Se="request-progress-"+e.modelKey;var ke=j((function(){return m({label:"label",value:"value",children:"children"},e.fieldNames)}),[e.fieldNames]);var xe=ne===undefined?"fold":ne;var Te=ae===undefined?"click":ae;var De=N(true);var Pe=j((function(){return m({label:"label",value:"value"},ee)}),[ee]);var Ae=C(),Ee=Ae[0],_e=Ae[1];var Ie=N();var Oe=j((function(){return H(A,Pe)}),[Pe,A]);T.useEffectCustom((function(){if(Ce.treeList.length>0){if(De.current){De.current=false;if(fe){Le(U(Ce.treeList,ke));return}else if(ie&&Ce.treeList.length){Le([Ce.treeList[0][ke.value]]);return}}if(!n(A)){var e=Ue(Oe,true);Le(Array.from(new Set(be==null?void 0:be.concat(e))))}}}),[A,Ce.treeList,Oe]);var Ve=function e(r){return r===""||n(r)};var Fe=function e(r){if(he.onRequestResultAdapter){return he.onRequestResultAdapter(r)}if(ke.list){return v(r,ke.list,[])||[]}if(!l(r)){console.warn("接口返回数据为非数组结构,确认是否需要配置fieldNames.list进行解析");return[]}return r};T.useEffectCustom((function(){_e(Q)}),[Q]);var Ke=f.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,l,s;var o=function(){try{return e()}catch(e){return r(e)}};var u=function(e){try{De.current=false;qe(false);void L.error(e.message||"数据查询异常...");return o()}catch(e){return r(e)}};try{if(!he.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=he.requiredParamsKeys;n=d({},he.params);if(t){a=t.find((function(e){return Ve(n[e])}));if(a){void je.changeRequestStatus("no-dependencies-params");console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return o()}catch(e){return u(e)}};var f=function(e){try{window[Se]=false;qe(false);void je.changeRequestStatus("request-error");return c()}catch(e){return u(e)}};try{qe(true);return Promise.resolve(je.changeRequestStatus("request-progress")).then((function(e){try{window[Se]=true;return Promise.resolve(he.onRequest==null?void 0:he.onRequest(n)).then((function(e){try{i=e;W==null?void 0:W(i);l=Fe(i);s=l||[];if(s.length===0){De.current=false}Me(s);qe(false);window[Se]=false;return c()}catch(e){return f(e)}}),f)}catch(e){return f(e)}}),f)}catch(e){f(e)}}catch(e){u(e)}}))}));T.useEffectCustom((function(){if(me)return;if(ge.length){void Ke();return}var e=K(O).getState();if(e.requestStatus==="request-success"){Y==null?void 0:Y(e.treeList);return}if(!window[Se]){void Ke()}else{Y==null?void 0:Y(e.treeList)}}),ge);T.useEffectCustom((function(){if(me){Me(w||[])}}),[w]);var Me=f.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&Ce.treeList.length===0){void je.changeRequestStatus("request-success");return}void je.setTreeList({treeList:e||[],childrenName:ke.children});Y==null?void 0:Y(e)}));var Ue=function e(r,t){var n=[];r.forEach((function(e){if(!t&&be!=null&&be.includes(e))return;var r=z(e,Ce.treeList,ke);n=n.concat(r)}));return n};f.useUpdateEffect((function(){if(Ee){var e=Ce.treeTiledArray.filter((function(e){var r=e[ke.label]||"";return String(r).toLowerCase().includes(Ee.toLowerCase())}));Le((function(r){var t=e.map((function(e){return e[ke.value]})).concat(r||[]);var n=Ue(t);return Array.from(new Set(n))}))}else{Le([])}}),[Ee]);R(r,(function(){return{onClearSelectorList:function e(){void je.resetTreeList()},getTreeDataList:function e(){return Ce.treeList},onChangeExpandedKeys:function e(r){Le(r)}}}));var ze=f.useCallbackRef((function(e){Le(e)}));var He=f.useCallbackRef((function(e,r,t,a){Ie.current=e;var i=n(r)?[]:l(r)?r:[r];if(n(e)){E==null?void 0:E(e,r,t);return}if(re){var s=Pe.label;var o=Pe.value;var u=i.map((function(e){var r;return r={},r[s]=e[ke.label],r[o]=e[ke.value],r}));if(l(e)){E==null?void 0:E(u,i,t,a)}else{E==null?void 0:E(u[0],i[0],t,a)}}else{if(l(e)){E==null?void 0:E(e,i,t,a)}else{E==null?void 0:E(e,i[0],t,a)}}}));var Be=f.useCallbackRef((function(r,t){var a=n(r)?[]:r;a=e.checkStrictly?r.checked:r;a=l(a)?a:[a];var i=[];var s=[];var o=[];var u=[];a.forEach((function(e){var r=Ce.treeTiledArray.find((function(r){return r[ke.value]===e}));if(!r)return;var t=r==null?void 0:r[ke.children];if(!l(t)||t.length===0){i.push(r);s.push(r[ke.value])}o.push(r);u.push(r[ke.value])}));if(M){Le((function(e){var r=Ue(s).concat(e||[]);return Array.from(new Set(r))}));if(!F&&!e.checkStrictly){He(s,i,o,t)}else{He(u,o,o,t)}}else{if(a[0]){var c=o.find((function(e){return e[ke.value]===a[0]}));He(a[0],c,[c],t)}else{var d=t.node[ke.value];var f=Ce.treeTiledArray.find((function(e){return e[ke.value]===d}));He(undefined,f,[f],t)}}}));var Ye=f.useCallbackRef((function(e){return J==null?void 0:J(e)}));var Ge=j((function(){var e=h(Ce.treeList||[]);if(Ee&&le!=="highlight"){return a(h(Ce.treeList||[]),(function(e){var r;var t=(r=e[ke.label])==null?void 0:r.toLowerCase();return t.indexOf(Ee.toLowerCase())>=0}),{childrenName:ke.children})}return e}),[ke.children,ke.label,le,Ce.treeList,Ee]);var We=j((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var t;var n=(Ye==null?void 0:Ye(r))||r;var a=te?undefined:n.disabled;var i=n[ke.label];var s;if(Ee){var o=i==null?void 0:i.toLowerCase();var u=o.indexOf(Ee.toLowerCase());var d=o.substring(0,u);var f=o.slice(u+Ee.length);var v=o.slice(u,u+Ee.length);s=u>-1?_("span",{className:c({"v-tree-item-disabled":n.disabled}),children:[d,I("span",{className:"site-tree-search-value",children:v}),f]}):null}if(!s&&n.disabled){s=I("span",{className:c({"v-tree-item-disabled":n.disabled}),children:i})}var p=n[ke.children];return m({},n,(t={disabled:a},t[ke.label]=s||i,t._treeItemName=i,t._disabled=n.disabled,t[ke.children]=l(p)&&p.length>0?e(p):undefined,t))}))};return e(Ge)}),[Ge,Ye,te,ke.label,ke.children,Ee]);var Je=f.useCallbackRef((function(r){return new Promise((function(t,n){return new Promise((function(a,i){var l,s,o,u,c;if(r[ke.children]){t();return a()}var d=function(){try{return a()}catch(e){return i(e)}};var f=function(e){try{void L.error(e.message||"数据加载异常...");n();return d()}catch(e){return i(e)}};try{return Promise.resolve((l=e.loadDataServiceConfig)==null||l.onRequest==null?void 0:l.onRequest(((s=e.loadDataServiceConfig)==null||s.getParams==null?void 0:s.getParams(r))||{})).then((function(n){try{u=n;c=(o=e.loadDataServiceConfig)!=null&&o.onRequestResultAdapter?e.loadDataServiceConfig.onRequestResultAdapter(u):u;void je.treeListAppendChildren({value:r[ke.value],appendList:c,childrenName:ke.children,valueName:ke.value}).then((function(e){Me(e.treeList);t()}));return d()}catch(e){return f(e)}}),f)}catch(e){f(e)}}))}))}));var Qe=f.useCallbackRef((function(r){var t=r==null?void 0:r[ke.children];var n=e.loadDataFlag;var a=n?!r.isLeaf:false;var i=t&&t.length>0||a;return!i}));var Xe=f.useCallbackRef((function(r){var t,n,a;var i=r._treeItemName||r[ke.label];var l=ve==null?void 0:ve(m({},r,(t={},t[ke.label]=i,t)));if(l!=null&&l.operateList.length){return _(q,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[ke.label])}),I(k,m({gap:5},l,{dropdownMenuProps:m({placement:"bottomRight",isFixed:true},l==null?void 0:l.dropdownMenuProps),className:c("tree-item-title-operate",l.className)}))]})}if(xe==="fold"){var s;var o=[];if((s=e.menuOptions)!=null&&s.fold){var d,f,v;o=((d=e.menuOptions)==null||(f=d[xe])==null?void 0:f.call(d,m({},r,(v={},v[ke.label]=i,v))))||[]}else{var p;o=(e.getMenuOptions==null?void 0:e.getMenuOptions(m({},r,(p={},p[ke.label]=i,p))))||[]}return _(q,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[ke.label])}),o.length>0&&I(x,{menuList:o,placement:"bottomRight",children:I(u,{})})]})}var h=(n=e.menuOptions)==null||n.tile==null?void 0:n.tile(m({},r,(a={},a[ke.label]=i,a)));return _(q,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[ke.label])}),h?I(k,m({gap:5},h,{className:c("tree-item-title-operate",h.className)})):null]})}));var Ze=f.useDebounceCallback((function(r){_e(r);e.onSearchValueChange==null?void 0:e.onSearchValueChange(r)}),300);var $e=f.useCallbackRef((function(e){Ze(e.target.value)}));var er=f.useCallbackRef((function(r){if(!e.icon)return null;if(S(e.icon))return e.icon;var t=Qe(r.data);return e.icon(m({},r,{isParent:!t,isLeaf:t}))}));var rr=j((function(){return{title:ke.label,key:ke.value,children:ke.children}}),[ke]);var tr=We.length>0&&Ce.requestStatus!=="request-error";var nr=m({showLine:{showLeafIcon:false},titleRender:Xe,blockNode:true,switcherIcon:I(o,{}),onDrop:function e(r){if(oe){var t=oe(r);if(!t)return}var n=B(Ge,ke,r),a=n.dataList,i=n.dragNodeData;se==null?void 0:se(i);Me(a)},expandedKeys:be},pe,{fieldNames:rr,treeData:We,onExpand:ze,loadData:e.loadDataFlag?Je:undefined,style:{width:"100%"},icon:er});var ar={onCheck:Be,checkable:M,checkedKeys:Oe};var ir={onSelect:Be,multiple:false,selectedKeys:Oe};var lr=M?ar:ir;var sr=c("v-tree-wrapper","v-tree-wrapper-menu-"+Te,de);var or=Ce.treeList.length>0&&!tr&&Ee;return _("div",{className:sr,style:t,children:[!!X&&_("div",{className:"v-tree-wrapper-search-area",style:ce,children:[I(D,{className:"v-tree-wrapper-search",placeholder:n(Z)?"搜索":Z,onChange:$e,value:Q,allowClear:true}),!!e.searchExtraElement&&I("span",{className:"v-tree-wrapper-search-extra",children:e.searchExtraElement})]}),tr?_("div",{className:"v-tree-wrapper-tree-wrapper",children:[I(g,{spinning:Ce.requestStatus==="request-progress"}),I(y,m({},lr,nr,{className:"v-tree-wrapper-tree"}))]}):I(P,{status:Ce.requestStatus,loading:Re,messageConfig:m({"request-success":or?"搜索结果为空":"暂无数据"},$),errorButton:I(b,{type:"primary",onClick:Ke,children:"重新获取数据"})})]})}));W.defaultProps={disabledCanUse:true};var J=i(W,{getTreeDataList:M});export{J as TreeWrapper};
17
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/hooks.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx","@flatbiz/antd/src/tree-wrapper/index.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { type API, type ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, treeToArray, type TPlainObject, type TSetDefaultDefined } from '@flatbiz/utils';\nimport { type 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 state.treeTiledArray = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n state.treeTiledArray = [];\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, TAny>>> = {};\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 { type TPlainObject } from '@flatbiz/utils';\nimport { treeWrapperModel } from './model';\n\nexport const getTreeDataList = (modelKey: string) => {\n const state = treeWrapperModel(modelKey).getState();\n return state.treeList as TPlainObject[];\n};\n","import { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { tree } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n treeLeafParentsArray,\n treeToArray,\n treeToTiledArray,\n type LabelValueItem,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { type DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\n\nexport const getDefaultExpandAllKeys = (\n treeList: TPlainObject[],\n fieldNames: { label: string; value: string; children: string },\n) => {\n const allValues = treeToArray(treeList, fieldNames.children)\n .filter((item) => {\n const childrenValue = item[fieldNames.children] as TAny[] | undefined;\n return childrenValue && childrenValue.length > 0;\n })\n .map((item) => {\n return item[fieldNames.value];\n });\n return allValues as Array<string | number>;\n};\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 .filter((item) => {\n const childrenValue = item[fieldNames.children] as TAny[] | undefined;\n return childrenValue && childrenValue.length > 0;\n })\n .map((item) => item.value);\n};\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 return dequal(object1, object2);\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, get } from '@dimjs/utils';\n\nimport { isUndefinedOrNull, treeFilter, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, message, Spin, Tree, type TreeProps } from 'antd';\nimport {\n forwardRef,\n Fragment,\n isValidElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type DependencyList,\n type ReactElement,\n} from 'react';\n\nimport { treeWrapperModel } from './model';\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 './style.less';\nimport { getDefaultExpandAllKeys, getExpandedKeys, getVauleList, onTreeDrop } 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 | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n | 'defaultCheckedKeys'\n | 'defaultExpandParent'\n | 'defaultSelectedKeys'\n> & {\n /** 唯一值,用于缓存数据 */\n modelKey: string;\n /**\n * 字段映射\n * ```\n * 默认值:\n * label = 'label'\n * value = 'value'\n * children = 'children'\n *\n * 如果未设置list,则说明接口返回数据为数组\n * 如果返回数据存在多级,可通过设置 list='a.b.list'\n * ```\n */\n fieldNames?: { label?: string; value?: string; children?: string; list?: string };\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n /**\n * 是否开启异步加载\n */\n loadDataFlag?: boolean;\n /**\n * 异步加载数据配置\n * ```\n * 1. 会通过fieldNames配置label、value、children进行转义\n * 2. fieldNames.list 配置在此处无效\n * ```\n */\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n * ```\n * 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调\n * ```\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n /** 接口响应数据变更 */\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n extraData?: TPlainObject,\n ) => void;\n\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n\n /**\n * 菜单结构类型 tile/平铺 fold/折叠;默认:fold\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuLayoutType?: 'tile' | 'fold';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * @returns\n * ```\n * 1. menuLayoutType = tile 无效\n * 2. 自定义设置 titleRender 后失效\n * ```\n */\n getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];\n /**\n * 根据 menuLayoutType 类型赋值\n * @deprecated 已过期 4.3.0版本移除,请使用 menuOptions\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n /**\n * 菜单触发类型,默认:click\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuTriggerType?: 'click' | 'hover';\n menus?: (dataItem) => ButtonOperateProps;\n\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n searchStyle?: CSSProperties;\n icon?: (data: { isParent: boolean; isLeaf: boolean; [key: string]: TAny }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n /**\n * 状态文案配置\n */\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 /**\n * 选择的节点数据,是否包含label信息\n * ```\n * 默认选择的节点只有value数据\n * ```\n */\n labelInValue?: boolean;\n /**\n * ```\n * @deprecated 废弃\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 * 拖拽排序前判断,如果返回 true,可排序,其他不可排序\n * ```\n * 可用于需要权限控制判断\n * ```\n */\n onDropPrev?: (info) => boolean;\n /**\n * 标签渲染\n * ```\n * 1. 自定义设置 titleRender 后失效\n * 2. 与titleRender的区别\n * a. 设置 labelRender 后,menuLayout有效\n * b. 设置 titleRender 后,menuLayout失效\n * ```\n */\n labelRender?: (nodeData: TPlainObject) => ReactElement;\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n onChangeExpandedKeys: (expandedKeys: Array<string | number>) => void;\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 onDropPrev,\n labelRender,\n searchStyle,\n className,\n defaultExpandAll,\n menus,\n ...otherProps\n } = props;\n // eslint-disable-next-line no-prototype-builtins\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<Array<string | number>>([]);\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 const menuLayoutTypeNew = menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew = menuTriggerType === undefined ? 'click' : menuTriggerType;\n const responseFirstRef = useRef(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 innerOperateValueRef = useRef<Array<string | number> | string | number>();\n\n const valueList = useMemo(() => {\n return getVauleList(value, labelInValueFieldNamesMerge);\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeList.length > 0) {\n if (responseFirstRef.current) {\n responseFirstRef.current = false;\n if (defaultExpandAll) {\n setTreeExpandedKeys(getDefaultExpandAllKeys(state.treeList, fieldNames));\n return;\n } else if (initRootExpand && state.treeList.length) {\n setTreeExpandedKeys([state.treeList[0][fieldNames.value]]);\n return;\n }\n }\n if (!isUndefinedOrNull(value)) {\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(treeExpandedKeys?.concat(expandedKeys))));\n }\n }\n }, [value, state.treeList, valueList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n if (newServiceConfig.onRequestResultAdapter) {\n return newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames.list) {\n return get(respData, fieldNames.list, []) || [];\n }\n if (!isArray(respData)) {\n console.warn('接口返回数据为非数组结构,确认是否需要配置fieldNames.list进行解析');\n return [];\n }\n return respData;\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 void actions.changeRequestStatus('no-dependencies-params');\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 const respDataListNew = respData || [];\n if (respDataListNew.length === 0) {\n responseFirstRef.current = false;\n }\n onChangeSelectorList(respDataListNew);\n setLoading(false);\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: TAny) {\n responseFirstRef.current = false;\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (newEffectDependencyList.length) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n onSelectorTreeListChange?.(allState.treeList);\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n } else {\n onSelectorTreeListChange?.(allState.treeList);\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 = (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 targetKeys = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetKeys);\n });\n return newTreeExpandedKeys;\n };\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const targetList = state.treeTiledArray.filter((item) => {\n const labelValue = (item[fieldNames.label] || '') as string;\n return String(labelValue).toLowerCase().includes(treeSearchValue.toLowerCase());\n });\n setTreeExpandedKeys((prev) => {\n const mergeValueList = targetList.map((item) => item[fieldNames.value]).concat(prev || []);\n const mergeList = getTreeExpandedKeys(mergeValueList);\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 onChangeExpandedKeys: (dataList) => {\n setTreeExpandedKeys(dataList);\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?, operateInfo?) => {\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, operateInfo);\n } else {\n onChange?.(labelInValueList[0], selectList[0], selectAllList, operateInfo);\n }\n } else {\n if (isArray(selectedKey)) {\n onChange?.(selectedKey, selectList, selectAllList, operateInfo);\n } else {\n onChange?.(selectedKey, selectList[0], selectAllList, operateInfo);\n }\n }\n });\n\n const onTreeChangeHandle = hooks.useCallbackRef((checkedData, operateInfo) => {\n let checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = props.checkStrictly ? checkedData.checked : checkedData;\n\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, operateInfo);\n } else {\n onRespChange(selectedAllValueList, selectedAllList, selectedAllList, operateInfo);\n }\n } else {\n if (checkedValueList[0]) {\n const currentNode = selectedAllList.find((item) => item[fieldNames.value] === checkedValueList[0]);\n onRespChange(checkedValueList[0], currentNode, [currentNode], operateInfo);\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], operateInfo);\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(\n cloneState(state.treeList || []),\n (node) => {\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n },\n { childrenName: fieldNames.children },\n );\n }\n return list;\n }, [fieldNames.children, 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)?.toLowerCase();\n let titleDom;\n if (treeSearchValue) {\n const index = strTitle.indexOf(treeSearchValue.toLowerCase());\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n const centerStr = strTitle.slice(index, 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\">{centerStr}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom && adapterItem.disabled) {\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 || strTitle,\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 const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n // eslint-disable-next-line no-async-promise-executor\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 props.loadDataServiceConfig?.onRequestResultAdapter\n ? props.loadDataServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n\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: TAny) {\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 const buttonOperateConfig = menus?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n if (buttonOperateConfig?.operateList.length) {\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n <ButtonOperate\n gap={5}\n {...buttonOperateConfig}\n dropdownMenuProps={{\n placement: 'bottomRight',\n isFixed: true,\n ...buttonOperateConfig?.dropdownMenuProps,\n }}\n className={classNames('tree-item-title-operate', buttonOperateConfig.className)}\n />\n </Fragment>\n );\n }\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\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper menuList={menuOptions} placement=\"bottomRight\">\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n gap={5}\n {...menuOptions}\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 onDrop: (info) => {\n if (onDropPrev) {\n const boo = onDropPrev(info);\n if (!boo) return;\n }\n const { dataList, dragNodeData } = onTreeDrop(originalDataList as TPlainObject[], fieldNames, info);\n onDropNodeHandle?.(dragNodeData);\n onChangeSelectorList(dataList);\n },\n expandedKeys: treeExpandedKeys,\n ...otherProps,\n fieldNames: treeFieldNames,\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 checkedKeys: valueList,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n selectedKeys: valueList,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames('v-tree-wrapper', `v-tree-wrapper-menu-${menuTriggerTypeNew}`, className);\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\" style={searchStyle}>\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={isUndefinedOrNull(searchPlaceholder) ? '搜索' : 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 {...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","import { attachPropertiesToComponent } from '@flatbiz/utils';\nimport { getTreeDataList } from './hooks';\nimport { TreeWrapper as TreeWrapperInner } from './tree-wrapper';\nexport type * from './tree-wrapper';\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 = attachPropertiesToComponent(TreeWrapperInner, {\n /**\n * 获取树形原数据\n * ```\n * 参数 modelKey 与 TreeWrapper属性 modelKey相同,才能获取数据\n * ```\n */\n getTreeDataList: getTreeDataList,\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","getTreeDataList","modelKey","getState","getDefaultExpandAllKeys","fieldNames","allValues","children","filter","childrenValue","map","getExpandedKeys","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","_isObject","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","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","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","menuLayoutTypeNew","menuTriggerTypeNew","responseFirstRef","useRef","labelInValueFieldNamesMerge","_useState2","treeSearchValue","setTreeSearchValue","innerOperateValueRef","valueList","useEffectCustom","current","expandedKeys","getTreeExpandedKeys","Array","from","Set","concat","valueIsEmpty","serviceResponseHandle","respData","onRequestResultAdapter","list","_get","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","respDataListNew","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","allState","refresh","newTreeExpandedKeys","forEach","includes","targetKeys","useUpdateEffect","targetList","labelValue","String","toLowerCase","prev","mergeValueList","mergeList","useImperativeHandle","onClearSelectorList","onChangeExpandedKeys","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","operateInfo","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","treeItemDataAdapterHandle","dataItem","originalDataList","treeFilter","_node$fieldNames$labe","indexOf","treeData","_adapterItem$fieldNam","_extends2","adapterItem","disabled","strTitle","titleDom","beforeStr","substring","afterStr","slice","centerStr","_jsxs","_classNames","_jsx","_treeItemName","_disabled","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_props$loadDataServic3","_respData3","respDataList","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_extends3","_props$menuOptions3","_extends6","stringLabel","buttonOperateConfig","operateList","Fragment","ButtonOperate","gap","dropdownMenuProps","placement","isFixed","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_extends4","call","_extends5","getMenuOptions","DropdownMenuWrapper","menuList","_MoreOutlined","tile","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","onDrop","boo","_onTreeDrop","width","checkedProps","onCheck","checkedKeys","selectedProps","onSelect","multiple","selectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Spin","spinning","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps","attachPropertiesToComponent","TreeWrapperInner"],"mappings":";8tEA6BA,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,GACjBO,EAAMN,eAAiB,GAE1B,EACDW,oBAAqB,SAAAA,EAACN,GACpB,OAAO,SAACC,GACNA,EAAMG,cAAgBJ,EACtB,GAAIA,IAAW,gBAAiB,CAC9BC,EAAMP,SAAW,GACjBO,EAAMN,eAAiB,EACzB,EAEH,EACDY,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,EAAyF,CAAA,EAQxF,IAAMC,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAKF,EAAkBE,GAAM,CAC3BF,EAAkBE,GAAOC,EAAMxB,EACjC,CACA,OAAOqB,EAAkBE,EAC3B,ECvFO,IAAME,EAAkB,SAAlBA,EAAmBC,GAC9B,IAAMtB,EAAQkB,EAAiBI,GAAUC,WACzC,OAAOvB,EAAMP,QACf,ECSO,IAAM+B,EAA0B,SAA1BA,EACX/B,EACAgC,GAEA,IAAMC,EAAYzB,EAAYR,EAAUgC,EAAWE,UAChDC,QAAO,SAAClB,GACP,IAAMmB,EAAgBnB,EAAKe,EAAWE,UACtC,OAAOE,GAAiBA,EAAcd,OAAS,CACjD,IACCe,KAAI,SAACpB,GACJ,OAAOA,EAAKe,EAAWb,MACzB,IACF,OAAOc,CACT,EAEO,IAAMK,EAAkB,SAAlBA,EACXnB,EACAnB,EACAgC,GAEA,IAAMO,EAAaC,EAAiBxC,EAAUgC,GAC9C,OAAOS,EAAqBtB,EAAOoB,EAAY,KAAM,CAAEpB,MAAO,QAASuB,YAAa,gBACjFP,QAAO,SAAClB,GACP,IAAMmB,EAAgBnB,EAAKe,EAAWE,UACtC,OAAOE,GAAiBA,EAAcd,OAAS,CACjD,IACCe,KAAI,SAACpB,GAAI,OAAKA,EAAKE,QACxB,EAEO,IAAMwB,EAAe,SAAfA,EAAgBC,EAAMC,GACjC,IAAIC,EAAWC,EAAkBH,GAAQ,GAAKA,EAC9CE,EAAW1B,EAAQ0B,GAAYA,EAAW,CAACA,GAC3CA,EAAWA,EAAST,KAAI,SAACpB,GACvB,GAAI+B,EAAS/B,GAAO,OAAOA,EAAK4B,EAAuB1B,OACvD,OAAOF,CACT,IACA,OAAO6B,CACT,EA6CO,IAAMG,EAA+B,SAA/BA,EAAgCC,EAAUlB,EAAYmB,GACjE,IAAMC,EAAUD,EAAKE,KAAK3B,IAC1B,IAAM4B,EAAUH,EAAKI,SAAS7B,IAC9B,IAAM8B,EAAUL,EAAKE,KAAKI,IAAIC,MAAM,KACpC,IAAMC,EAAeR,EAAKQ,aAAeC,OAAOJ,EAAQA,EAAQlC,OAAS,IACzE,IAAMuC,EAAc7B,EAAWb,MAC/B,IAAM2C,EAAmB9B,EAAWE,SAEpC,IAAM6B,EAAO,SAAPA,EACJnB,EACAlB,EACAsC,GAEA,IAAK,IAAIC,EAAI,EAAGA,EAAIrB,EAAKtB,OAAQ2C,IAAK,CACpC,GAAIrB,EAAKqB,GAAGJ,KAAiBnC,EAAK,CAChC,OAAOsC,EAASpB,EAAKqB,GAAIA,EAAGrB,EAC9B,CACA,GAAIA,EAAKqB,GAAGH,GAAmB,CAC7BC,EAAKnB,EAAKqB,GAAGH,GAAoBpC,EAAKsC,EACxC,CACF,GAEF,IAAMpB,EAAOsB,EAAWhB,GAGxB,IAAIiB,EACJJ,EAAKnB,EAAMU,GAAS,SAACrC,EAAMmD,EAAOC,GAChCA,EAAIC,OAAOF,EAAO,GAClBD,EAAUlD,CACZ,IAEA,IAAKkC,EAAKoB,UAAW,CAEnBR,EAAKnB,EAAMQ,GAAS,SAACnC,GACnBA,EAAK6C,GAAoB7C,EAAK6C,IAAqB,GAEnD7C,EAAK6C,GAAkBU,QAAQL,EACjC,GACF,MAAO,IACJhB,EAAKE,KAAKoB,MAAMvC,UAAY,IAAIZ,OAAS,GAC1C6B,EAAKE,KAAKoB,MAAMC,UAChBf,IAAiB,EACjB,CACAI,EAAKnB,EAAMQ,GAAS,SAACnC,GACnBA,EAAK6C,GAAoB7C,EAAK6C,IAAqB,GAEnD7C,EAAK6C,GAAkBU,QAAQL,EAGjC,GACF,KAAO,CACL,IAAIQ,EAAiB,GACrB,IAAIV,EACJF,EAAKnB,EAAMQ,GAAS,SAACwB,EAAOR,EAAOC,GACjCM,EAAKN,EACLJ,EAAIG,CACN,IACA,GAAIT,KAAkB,EAAG,CACvBgB,EAAGL,OAAOL,EAAI,EAAGE,EACnB,KAAO,CACLQ,EAAGL,OAAOL,EAAK,EAAG,EAAGE,EACvB,CACF,CACA,MAAO,CACLjB,SAAUN,EACViC,aAAcA,EAAavB,EAASV,EAAMZ,GAE9C,EAEO,IAAM6C,EAAe,SAAfA,EACXC,EACA5B,EACAlB,GACG,IAAA+C,EACH,IAAMC,EAAKhD,EAAWb,MACtB,IAAMe,EAAWF,EAAWE,SAC5B+C,EAAKC,iBAAeH,EAAA,CAAA,EAAAA,EACfC,GAAKG,UAASJ,EAAG7C,GAAWgB,EAAQ6B,IACvC,SAAC1B,EAAMe,EAAOgB,GACZ/B,EAAK,WAAae,EAClBf,EAAK,cAAgB+B,GAAAA,UAAAA,EAAAA,EAAUJ,EAChC,GACD9C,GAEF,IAAMmD,EAAW7E,EAAY0C,EAAUhB,GACvC,IAAMnB,EAASsE,EAASrE,MAAK,SAACC,GAAI,OAAKA,EAAK+D,KAAQF,KACpD,MAAO,CACLQ,SAAUvE,GAAM,UAAA,EAANA,EAAS,cACnBiE,GAAIjE,GAAM,UAAA,EAANA,EAASiE,GACbZ,MAAOrD,GAAAA,UAAAA,EAAAA,EAAS,WAEpB,wgBCgGO,IAAMwE,EAAcC,GAAgD,SAACf,EAAOgB,GACjF,IACEC,EA+BEjB,EA/BFiB,MACAC,EA8BElB,EA9BFkB,cACAC,EA6BEnB,EA7BFmB,qBACAC,EA4BEpB,EA5BFoB,iBACA1E,EA2BEsD,EA3BFtD,MACA2E,EA0BErB,EA1BFqB,SACAjE,EAyBE4C,EAzBF5C,SAAQkE,EAyBNtB,EAxBFuB,4BAAAA,EAA2BD,SAAG,EAAA,KAAIA,EAClCE,EAuBExB,EAvBFwB,UACAC,EAsBEzB,EAtBFyB,yBACAC,EAqBE1B,EArBF0B,wBACAC,EAoBE3B,EApBF2B,oBACAC,EAmBE5B,EAnBF4B,YACAC,EAkBE7B,EAlBF6B,WACAC,EAiBE9B,EAjBF8B,kBACAC,EAgBE/B,EAhBF+B,qBACA3D,GAeE4B,EAfF5B,uBACA4D,GAcEhC,EAdFgC,aACAC,GAaEjC,EAbFiC,eACAC,GAYElC,EAZFkC,eACAC,GAWEnC,EAXFmC,gBACAC,GAUEpC,EAVFoC,eACAC,GASErC,EATFqC,iBACAC,GAQEtC,EARFsC,iBACAC,GAOEvC,EAPFuC,WACAC,GAMExC,EANFwC,YACAC,GAKEzC,EALFyC,YACAC,GAIE1C,EAJF0C,UACAC,GAGE3C,EAHF2C,iBACAC,GAEE5C,EAFF4C,MACGC,GAAUC,EACX9C,EAAK+C,GAET,IAAMC,GAAsBhD,EAAMiD,eAAe,oBACjD,IAAMC,GAAmBhC,GAAiB,GAC1C,IAAMiC,GAA0BhC,GAAwB,GACxD,IAAAiC,GAAgDC,EAAiC,IAA1EC,GAAgBF,GAAA,GAAEG,GAAmBH,GAAA,GAC5C,IAAAI,GAAyBxG,EAAiBI,GAAUqG,WAA7C3H,GAAK0H,GAAA,GAAE7H,GAAO6H,GAAA,GACrB,IAAAE,GAA8BC,EAASC,aAAa,OAA7CC,GAAOH,GAAA,GAAEI,GAAUJ,GAAA,GAC1B,IAAMK,GAAa,oBAAuB/D,EAAM5C,SAChD,IAAMG,GAAayG,GAAQ,WACzB,OAAAC,EAAA,CAASC,MAAO,QAASxH,MAAO,QAASe,SAAU,YAAeuC,EAAMzC,WAC1E,GAAG,CAACyC,EAAMzC,aACV,IAAM4G,GAAoBjC,KAAmBxB,UAAY,OAASwB,GAClE,IAAMkC,GAAqBjC,KAAoBzB,UAAY,QAAUyB,GACrE,IAAMkC,GAAmBC,EAAO,MAEhC,IAAMC,GAA8BP,GAAQ,WAC1C,OAAAC,EAAA,CAASC,MAAO,QAASxH,MAAO,SAAY0B,GAC9C,GAAG,CAACA,KAEJ,IAAAoG,GAA8CnB,IAAvCoB,GAAeD,GAAA,GAAEE,GAAkBF,GAAA,GAE1C,IAAMG,GAAuBL,IAE7B,IAAMM,GAAYZ,GAAQ,WACxB,OAAO9F,EAAaxB,EAAO6H,GAC7B,GAAG,CAACA,GAA6B7H,IAEjCiH,EAASkB,iBAAgB,WACvB,GAAI/I,GAAMP,SAASsB,OAAS,EAAG,CAC7B,GAAIwH,GAAiBS,QAAS,CAC5BT,GAAiBS,QAAU,MAC3B,GAAInC,GAAkB,CACpBY,GAAoBjG,EAAwBxB,GAAMP,SAAUgC,KAC5D,MACD,MAAM,GAAI6E,IAAkBtG,GAAMP,SAASsB,OAAQ,CAClD0G,GAAoB,CAACzH,GAAMP,SAAS,GAAGgC,GAAWb,SAClD,MACF,CACF,CACA,IAAK4B,EAAkB5B,GAAQ,CAC7B,IAAMqI,EAAeC,GAAoBJ,GAAW,MACpDrB,GAAoB0B,MAAMC,KAAK,IAAIC,IAAI7B,IAAAA,UAAAA,EAAAA,GAAkB8B,OAAOL,KAClE,CACF,CACD,GAAE,CAACrI,EAAOZ,GAAMP,SAAUqJ,KAE3B,IAAMS,GAAe,SAAfA,EAAgBlH,GACpB,OAAOA,IAAS,IAAMG,EAAkBH,IAG1C,IAAMmH,GAAwB,SAAxBA,EAAyBC,GAC7B,GAAIrC,GAAiBsC,uBAAwB,CAC3C,OAAOtC,GAAiBsC,uBAAuBD,EACjD,CACA,GAAIhI,GAAWkI,KAAM,CACnB,OAAOC,EAAIH,EAAUhI,GAAWkI,KAAM,KAAO,EAC/C,CACA,IAAK9I,EAAQ4I,GAAW,CACtBI,QAAQC,KAAK,4CACb,MAAO,EACT,CACA,OAAOL,GAGT5B,EAASkB,iBAAgB,WACvBH,GAAmB9C,EACrB,GAAG,CAACA,IAEJ,IAAMiE,GAAyBC,EAAMC,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAK1CC,EACAC,EAEEC,EAaAC,EAEAC,EACAC,EA1Zd,IAAIC,aAAJ,IAAI,OAAAR,GAAK,CAAC,MAAAS,GAAW,OAAOR,EAAAQ,EAAM,GAAlC,IAAIC,EAAA,SAuaSC,GAvab,IAwaMvC,GAAiBS,QAAU,MAC3BhB,GAAW,YACN+C,EAAQD,MAAOA,EAAMC,SAAsB,aA1atD,OAAOJ,GAAE,CAAC,MAAAC,GAAW,OAAOR,EAAAQ,EAAM,GAmY9B,IACE,IAAKxD,GAAiB4D,UAAW,CAC/B,MAAM,IAAIC,MAAM,uBAClB,CACMZ,EAAqBjD,GAAiBiD,mBACtCtK,EAASmL,EAAO,CAAA,EAAI9D,GAAiBrH,QAC3C,GAAIsK,EAAoB,CAChBE,EAAUF,EAAmB5J,MAAK,SAACU,GACvC,OAAOoI,GAAaxJ,EAAOoB,GAC7B,IACA,GAAIoJ,EAAS,MACN1K,GAAQQ,oBAAoB,0BACjCwJ,QAAQC,KAAI,oBAAqBO,EAAmBc,KAAK,KAAI,QAC7D,OAAAhB,GACF,CACF,CAlZN,IAAIiB,aAAJ,IAAA,OAAOT,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,GAAlC,IAAIS,EAAA,SAkaWP,GAlaf,IAmaQQ,OAAOrD,IAAiB,MACxBD,GAAW,YACNnI,GAAQQ,oBAAoB,iBArazC,OAAO+K,GAAE,CAAC,MAAAR,GAAW,OAAOC,EAAAD,EAAM,GAmZ5B,IACE5C,GAAW,MACX,OAAAkC,QAAAqB,QAAM1L,GAAQQ,oBAAoB,qBAAlCmL,eAAqDC,GArZ7D,IAsZQH,OAAOrD,IAAiB,KACN,OAAAiC,QAAAqB,QAAMnE,GAAiB4D,WAAS,UAAA,EAA1B5D,GAAiB4D,UAAYjL,IAAnCyL,eAA0CE,GAvZpE,IAuZclB,EAAYkB,EAClB9F,GAAAA,UAAAA,EAAAA,EAA0B4E,GACpBf,EAAWD,GAAsBgB,GACjCE,EAAkBjB,GAAY,GACpC,GAAIiB,EAAgB3J,SAAW,EAAG,CAChCwH,GAAiBS,QAAU,KAC7B,CACA2C,GAAqBjB,GACrB1C,GAAW,OAEXsD,OAAOrD,IAAiB,MAjahC,OAAOmD,GAAE,CAAC,MAAAR,GAAW,OAAOS,EAAAT,EAAM,CAAC,GAAAS,EAA1B,CAAC,MAAAT,GAAW,OAAOS,EAAAT,EAAM,CAAC,GAAAS,EAka5B,CAAC,MAAOP,GAAOO,EAAPP,EAIT,CACD,CAAC,MAAOA,GAAaD,EAAbC,EAIT,CAAC,OAGHjD,EAASkB,iBAAgB,WACvB,GAAI7B,GAAqB,OAEzB,GAAIG,GAAwBtG,OAAQ,MAC7BgJ,KACL,MACF,CACA,IAAM6B,EAAW1K,EAAiBI,GAAUC,WAC5C,GAAIqK,EAASzL,gBAAkB,kBAAmB,CAChDwF,eAAAA,EAA2BiG,EAASnM,UACpC,MACF,CAEA,IAAK6L,OAAOrD,IAAgB,MACrB8B,IACP,KAAO,CACLpE,eAAAA,EAA2BiG,EAASnM,SACtC,CACD,GAAE4H,IAEHQ,EAASkB,iBAAgB,WACvB,GAAI7B,GAAqB,CACvByE,GAAqBrG,GAAoB,GAC3C,CACF,GAAG,CAACA,IAEJ,IAAMqG,GAAuB3B,EAAMC,gBAAe,SAACtH,GACjD,IAAIA,GAAQ,UAAA,EAARA,EAAU5B,UAAW,GAAKf,GAAMP,SAASsB,SAAW,EAAG,MACpDlB,GAAQQ,oBAAoB,mBACjC,MACF,MACKR,GAAQC,YAAY,CACvBL,SAAUkD,GAAY,GACtBzC,aAAcuB,GAAWE,WAE3BgE,GAAAA,UAAAA,EAAAA,EAA2BhD,EAC7B,IAEA,IAAMuG,GAAsB,SAAtBA,EAAuBJ,EAAmC+C,GAC9D,IAAIC,EAAsB,GAC1BhD,EAAUiD,SAAQ,SAACnL,GACjB,IAAKiL,GAAWrE,IAAgB,MAAhBA,GAAkBwE,SAASpL,GAAQ,OACnD,IAAMqL,EAAalK,EAAgBnB,EAAOZ,GAAMP,SAAUgC,IAC1DqK,EAAsBA,EAAoBxC,OAAO2C,EACnD,IACA,OAAOH,GAGT9B,EAAMkC,iBAAgB,WACpB,GAAIvD,GAAiB,CACnB,IAAMwD,EAAanM,GAAMN,eAAekC,QAAO,SAAClB,GAC9C,IAAM0L,EAAc1L,EAAKe,GAAW2G,QAAU,GAC9C,OAAOiE,OAAOD,GAAYE,cAAcN,SAASrD,GAAgB2D,cACnE,IACA7E,IAAoB,SAAC8E,GACnB,IAAMC,EAAiBL,EAAWrK,KAAI,SAACpB,GAAI,OAAKA,EAAKe,GAAWb,MAAM,IAAE0I,OAAOiD,GAAQ,IACvF,IAAME,EAAYvD,GAAoBsD,GACtC,OAAOrD,MAAMC,KAAK,IAAIC,IAAIoD,GAC5B,GACF,KAAO,CACLhF,GAAoB,GACtB,CACF,GAAG,CAACkB,KAEJ+D,EAAoBxH,GAAK,WACvB,MAAO,CACLyH,oBAAqB,SAAAA,SACd9M,GAAQO,eACd,EACDiB,gBAAiB,SAAAA,IACf,OAAOrB,GAAMP,QACd,EACDmN,qBAAsB,SAAAA,EAACjK,GACrB8E,GAAoB9E,EACtB,EAEJ,IAEA,IAAMkK,GAAW7C,EAAMC,gBAAe,SAAChB,GACrCxB,GAAoBwB,EACtB,IAEA,IAAM6D,GAAe9C,EAAMC,gBAAe,SAAC8C,EAAaC,EAAaC,EAAgBC,GACnFrE,GAAqBG,QAAU+D,EAC/B,IAAMI,EAAa3K,EAAkBwK,GAAc,GAAKnM,EAAQmM,GAAcA,EAAa,CAACA,GAC5F,GAAIxK,EAAkBuK,GAAc,CAClCxH,GAAQ,UAAA,EAARA,EAAWwH,EAAaC,EAAYC,GACpC,MACF,CACA,GAAI/G,GAAc,CAChB,IAAMkH,EAAU3E,GAA4BL,MAC5C,IAAMiF,EAAU5E,GAA4B7H,MAC5C,IAAM0M,EAAmBH,EAAWrL,KAAI,SAACpB,GAAS,IAAA6M,EAChD,OAAAA,EAAAA,CAAAA,EAAAA,EACGH,GAAU1M,EAAKe,GAAW2G,OAAMmF,EAChCF,GAAU3M,EAAKe,GAAWb,OAAM2M,CAErC,IACA,GAAI1M,EAAQkM,GAAc,CACxBxH,GAAQ,UAAA,EAARA,EAAW+H,EAAkBH,EAAYF,EAAeC,EAC1D,KAAO,CACL3H,eAAAA,EAAW+H,EAAiB,GAAIH,EAAW,GAAIF,EAAeC,EAChE,CACF,KAAO,CACL,GAAIrM,EAAQkM,GAAc,CACxBxH,GAAQ,UAAA,EAARA,EAAWwH,EAAaI,EAAYF,EAAeC,EACrD,KAAO,CACL3H,GAAAA,UAAAA,EAAAA,EAAWwH,EAAaI,EAAW,GAAIF,EAAeC,EACxD,CACF,CACF,IAEA,IAAMM,GAAqBxD,EAAMC,gBAAe,SAACwD,EAAaP,GAC5D,IAAIQ,EAAmBlL,EAAkBiL,GAAe,GAAKA,EAC7DC,EAAmBxJ,EAAMyJ,cAAgBF,EAAYG,QAAUH,EAE/DC,EAAmB7M,EAAQ6M,GAAoBA,EAAmB,CAACA,GAEnE,IAAMG,EAAmB,GACzB,IAAMC,EAAwB,GAC9B,IAAMC,EAAkB,GACxB,IAAMC,EAAuB,GAC7BN,EAAiB3B,SAAQ,SAACrL,GACxB,IAAMF,EAASR,GAAMN,eAAee,MAAK,SAACwN,GAAI,OAAKA,EAAKxM,GAAWb,SAAWF,KAC9E,IAAKF,EAAQ,OACb,IAAMmB,EAAWnB,GAAM,UAAA,EAANA,EAASiB,GAAWE,UACrC,IAAKd,EAAQc,IAAaA,EAASZ,SAAW,EAAG,CAC/C8M,EAAiBK,KAAK1N,GACtBsN,EAAsBI,KAAK1N,EAAOiB,GAAWb,OAC/C,CACAmN,EAAgBG,KAAK1N,GACrBwN,EAAqBE,KAAK1N,EAAOiB,GAAWb,OAC9C,IAEA,GAAI8E,EAAW,CACb+B,IAAoB,SAAC8E,GACnB,IAAME,EAAYvD,GAAoB4E,GAAuBxE,OAAOiD,GAAQ,IAC5E,OAAOpD,MAAMC,KAAK,IAAIC,IAAIoD,GAC5B,IACA,IAAKhH,IAAgCvB,EAAMyJ,cAAe,CACxDb,GAAagB,EAAuBD,EAAkBE,EAAiBb,EACzE,KAAO,CACLJ,GAAakB,EAAsBD,EAAiBA,EAAiBb,EACvE,CACF,KAAO,CACL,GAAIQ,EAAiB,GAAI,CACvB,IAAMS,EAAcJ,EAAgBtN,MAAK,SAACC,GAAI,OAAKA,EAAKe,GAAWb,SAAW8M,EAAiB,MAC/FZ,GAAaY,EAAiB,GAAIS,EAAa,CAACA,GAAcjB,EAChE,KAAO,CACL,IAAMkB,EAAYlB,EAAYpK,KAAKrB,GAAWb,OAC9C,IAAMJ,EAASR,GAAMN,eAAee,MAAK,SAACwN,GAAI,OAAKA,EAAKxM,GAAWb,SAAWwN,KAC9EtB,GAAalI,UAAWpE,EAAQ,CAACA,GAAS0M,EAC5C,CACF,CACF,IAEA,IAAMmB,GAA4BrE,EAAMC,gBAAe,SAACqE,GACtD,OAAOzI,GAAmB,UAAA,EAAnBA,EAAsByI,EAC/B,IAEA,IAAMC,GAAmBrG,GAAQ,WAC/B,IAAMyB,EAAOhG,EAAW3D,GAAMP,UAAY,IAC1C,GAAIkJ,IAAmBpC,KAAqB,YAAa,CACvD,OAAOiI,EACL7K,EAAW3D,GAAMP,UAAY,KAC7B,SAACqD,GAAS,IAAA2L,EACR,IAAM7N,GAAK6N,EAAG3L,EAAKrB,GAAW2G,SAAhBqG,UAAAA,EAAAA,EAAwBnC,cACtC,OAAO1L,EAAM8N,QAAQ/F,GAAgB2D,gBAAkB,CACzD,GACA,CAAEpM,aAAcuB,GAAWE,UAE/B,CACA,OAAOgI,CACT,GAAG,CAAClI,GAAWE,SAAUF,GAAW2G,MAAO7B,GAAkBvG,GAAMP,SAAUkJ,KAE7E,IAAMgG,GAAWzG,GAAQ,WACvB,IAAM1E,EAAO,SAAPA,EAAQnB,GAAY,OACxBA,eAAAA,EAAMP,KAAI,SAACpB,GAAS,IAAAkO,EAAAC,EAClB,IAAMC,GAAcT,IAAyB,UAAA,EAAzBA,GAA4B3N,KAASA,EACzD,IAAMqO,EAAW5I,GAAiBvB,UAAYkK,EAAYC,SAC1D,IAAMC,GAAQJ,EAAIE,EAAYrN,GAAW2G,SAAxBwG,UAAAA,EAAAA,EAA2CtC,cAC5D,IAAI2C,EACJ,GAAItG,GAAiB,CACnB,IAAM9E,EAAQmL,EAASN,QAAQ/F,GAAgB2D,eAC/C,IAAM4C,EAAYF,EAASG,UAAU,EAAGtL,GACxC,IAAMuL,EAAWJ,EAASK,MAAMxL,EAAQ8E,GAAgB5H,QACxD,IAAMuO,EAAYN,EAASK,MAAMxL,EAAOA,EAAQ8E,GAAgB5H,QAChEkO,EACEpL,GAAS,EACP0L,EAAA,OAAA,CAAM3I,UAAW4I,EAAW,CAAE,uBAAwBV,EAAYC,WAAYpN,SAAA,CAC3EuN,EACDO,EAAA,OAAA,CAAM7I,UAAU,yBAAwBjF,SAAE2N,IACzCF,KAED,IACR,CACA,IAAKH,GAAYH,EAAYC,SAAU,CACrCE,EACEQ,EAAA,OAAA,CAAM7I,UAAW4I,EAAW,CAAE,uBAAwBV,EAAYC,WAAYpN,SAAEqN,GAEpF,CACA,IAAMrN,EAAWmN,EAAYrN,GAAWE,UACxC,OAAAwG,EAAA,CAAA,EACK2G,GAAWD,EAAA,CACdE,SAAAA,GAAQF,EACPpN,GAAW2G,OAAQ6G,GAAYD,EAAQH,EACxCa,cAAeV,EAAQH,EACvBc,UAAWb,EAAYC,SAAQF,EAC9BpN,GAAWE,UAAWd,EAAQc,IAAaA,EAASZ,OAAS,EAAIyC,EAAK7B,GAAYiD,UAASiK,GAEhG,GAAE,EACJ,OAAOrL,EAAK+K,GACd,GAAG,CACDA,GACAF,GACAlI,GACA1E,GAAW2G,MACX3G,GAAWE,SACXgH,KAEF,IAAMiH,GAAW5F,EAAMC,gBAAe,SAACqE,GAErC,OAAO,IAAIpE,SAAc,SAAOqB,EAASsE,GAAhB,OAAA,IAAA3F,SAAA,SAAAC,EAAAC,GAAA,IAAA0F,EAAAC,EAAAC,EAMfC,EAGAC,EARR,GAAI5B,EAAS7M,GAAWE,UAAW,CACjC4J,IACA,OAAApB,GACF,CAhpBN,IAAIgG,aAAJ,IAAI,OAAAhG,GAAK,CAAC,MAAAS,GAAW,OAAOR,EAAAQ,EAAM,GAAlC,IAAIwF,EAAA,SAsqBWtF,GAtqBf,SAuqBaC,EAAQD,MAAMA,EAAMC,SAAW,aAEpC8E,IAzqBR,OAAOM,GAAE,CAAC,MAAAvF,GAAW,OAAOR,EAAAQ,EAAM,GAipB5B,IACmB,OAAAV,QAAAqB,SAAAuE,EAAM5L,EAAMmM,8BAANP,EAA6B9E,WAA7B8E,UAAAA,EAAAA,EAA6B9E,YAClD+E,EAAA7L,EAAMmM,wBAANN,MAAAA,EAA6BO,WAAS,UAAA,EAAtCP,EAA6BO,UAAYhC,KAAa,CAAA,IADvC9C,eAEhB+E,GAppBT,IAkpBc9G,EAAW8G,EAGXL,GACJF,EAAA9L,EAAMmM,8BAANL,EAA6BtG,uBACzBxF,EAAMmM,sBAAsB3G,uBAAuBD,GACnDA,OAGD5J,GACFS,uBAAuB,CACtBM,MAAO0N,EAAS7M,GAAWb,OAC3BE,WAAYoP,EACZhQ,aAAcuB,GAAWE,SACzBhB,UAAWc,GAAWb,QAEvB4K,MAAK,SAACI,GACLD,GAAqBC,EAASnM,UAC9B8L,GACF,IArqBV,OAAO4E,GAAE,CAAC,MAAAvF,GAAW,OAAOwF,EAAAxF,EAAM,CAAC,GAAAwF,EAsqB5B,CAAC,MAAOtF,GAAasF,EAAbtF,EAIT,CAAC,MAEL,IAEA,IAAM0F,GAAaxG,EAAMC,gBAAe,SAACwG,GACvC,IAAM9O,EAAW8O,GAAQ,UAAA,EAARA,EAAWhP,GAAWE,UAEvC,IAAM+O,EAAexM,EAAMwM,aAC3B,IAAMC,EAAkBD,GAAgBD,EAASzP,OAAS,MAC1D,IAAM4P,EAAejP,GAAYA,EAASZ,OAAS,GAAM4P,EACzD,OAAQC,CACV,IAEA,IAAMC,GAAc7G,EAAMC,gBAAe,SAACwG,GAAa,IAAAK,EAAAC,EAAAC,EACrD,IAAMC,EAAcR,EAASf,eAAiBe,EAAShP,GAAW2G,OAClE,IAAM8I,EAAsBpK,IAAK,UAAA,EAALA,GAAKqB,EAC5BsI,GAAAA,GAAQK,KAAAA,EACVrP,GAAW2G,OAAQ6I,EAAWH,KAEjC,GAAII,GAAAA,MAAAA,EAAqBC,YAAYpQ,OAAQ,CAC3C,OACEwO,EAAC6B,EAAQ,CAAAzP,UACP8N,EAAA,OAAA,CAAM7I,UAAU,kBAAiBjF,UAAE+E,IAAAA,UAAAA,EAAAA,GAAc+J,MAAaA,eAAAA,EAAWhP,GAAW2G,UACpFqH,EAAC4B,EAAalJ,EAAA,CACZmJ,IAAK,GACDJ,EAAmB,CACvBK,kBAAiBpJ,EAAA,CACfqJ,UAAW,cACXC,QAAS,MACNP,GAAmB,UAAA,EAAnBA,EAAqBK,mBAE1B3K,UAAW4I,EAAW,0BAA2B0B,EAAoBtK,gBAI7E,CAEA,GAAIyB,KAAsB,OAAQ,CAAA,IAAAqJ,EAChC,IAAIC,EAAsB,GAC1B,IAAAD,EAAIxN,EAAMyN,cAAND,MAAAA,EAAmBE,KAAM,CAAA,IAAAC,EAAAC,EAAAC,EAC3BJ,IACEE,EAAA3N,EAAMyN,cAAW,OAAAG,EAAjBD,EAAoBxJ,MAApByJ,UAAAA,EAAAA,EAAAE,KAAAH,EAAA1J,EACKsI,CAAAA,EAAAA,GAAQsB,EAAA,CAAA,EAAAA,EACVtQ,GAAW2G,OAAQ6I,EAAWc,OAC3B,EACV,KAAO,CAAA,IAAAE,EACLN,GACEzN,EAAMgO,gBAAc,UAAA,EAApBhO,EAAMgO,eAAc/J,EAAA,CAAA,EACfsI,GAAQwB,EAAA,CAAA,EAAAA,EACVxQ,GAAW2G,OAAQ6I,EAAWgB,OAC3B,EACV,CACA,OACE1C,EAAC6B,EAAQ,CAAAzP,UACP8N,EAAA,OAAA,CAAM7I,UAAU,kBAAiBjF,UAAE+E,IAAAA,UAAAA,EAAAA,GAAc+J,MAAaA,eAAAA,EAAWhP,GAAW2G,UACnFuJ,EAAY5Q,OAAS,GACpB0O,EAAC0C,EAAmB,CAACC,SAAUT,EAAaH,UAAU,cAAa7P,SACjE8N,EAAA4C,EAAe,QAKzB,CACA,IAAMV,GAAWZ,EAAG7M,EAAMyN,cAANZ,MAAAA,EAAmBuB,MAAnBvB,UAAAA,EAAAA,EAAmBuB,KAAInK,EAAA,CAAA,EACtCsI,GAAQO,EAAA,CAAA,EAAAA,EACVvP,GAAW2G,OAAQ6I,EAAWD,KAGjC,OACEzB,EAAC6B,EAAQ,CAAAzP,UACP8N,EAAA,OAAA,CAAM7I,UAAU,kBAAiBjF,UAAE+E,IAAAA,UAAAA,EAAAA,GAAc+J,MAAaA,eAAAA,EAAWhP,GAAW2G,UACnFuJ,EACClC,EAAC4B,EAAalJ,EAAA,CACZmJ,IAAK,GACDK,EAAW,CACf/K,UAAW4I,EAAW,0BAA2BmC,EAAY/K,cAE7D,OAGV,IAEA,IAAM2L,GAAmBvI,EAAMwI,qBAAoB,SAAC5R,GAClDgI,GAAmBhI,GACnBsD,EAAMuO,qBAANvO,UAAAA,EAAAA,EAAMuO,oBAAsB7R,EAC7B,GAAE,KAEH,IAAM8R,GAAiB1I,EAAMC,gBAAe,SAAC0I,GAC3CJ,GAAiBI,EAAEnS,OAAOI,MAC5B,IAEA,IAAMgS,GAAa5I,EAAMC,gBAAe,SAAC0E,GACvC,IAAKzK,EAAM2O,KAAM,OAAO,KACxB,GAAIC,EAAe5O,EAAM2O,MAAO,OAAO3O,EAAM2O,KAC7C,IAAME,EAAavC,GAAW7B,EAAStM,MACvC,OAAO6B,EAAM2O,KAAI1K,KACZwG,EAAQ,CACXqE,UAAWD,EACX/R,OAAQ+R,IAEZ,IAEA,IAAME,GAAiB/K,GAAQ,WAC7B,MAAO,CAAEgL,MAAOzR,GAAW2G,MAAOjH,IAAKM,GAAWb,MAAOe,SAAUF,GAAWE,SAChF,GAAG,CAACF,KACJ,IAAM0R,GAAWxE,GAAS5N,OAAS,GAAKf,GAAMG,gBAAkB,gBAChE,IAAMiT,GAAWjL,EAAA,CACfkL,SAAU,CAAEC,aAAc,OAC1BzC,YAAAA,GACA0C,UAAW,KACXC,aAAc/D,EAAAgE,MACdC,OAAQ,SAAAA,EAAC9Q,GACP,GAAI6D,GAAY,CACd,IAAMkN,EAAMlN,GAAW7D,GACvB,IAAK+Q,EAAK,MACZ,CACA,IAAAC,EAAmClR,EAAW6L,GAAoC9M,GAAYmB,GAAtFD,EAAQiR,EAARjR,SAAU2B,EAAYsP,EAAZtP,aAClBkC,IAAAA,UAAAA,EAAAA,GAAmBlC,GACnBqH,GAAqBhJ,EACtB,EACDsG,aAAczB,IACXT,GAAU,CACbtF,WAAYwR,GACZtE,SAAAA,GACA9B,SAAAA,GACA+C,SAAU1L,EAAMwM,aAAed,GAAWhL,UAC1CO,MAAO,CAAE0O,MAAO,QAChBhB,KAAMD,KAGR,IAAMkB,GAAe,CACnBC,QAASvG,GACT9H,UAAAA,EACAsO,YAAalL,IAGf,IAAMmL,GAAgB,CACpBC,SAAU1G,GACV2G,SAAU,MACVC,aAActL,IAEhB,IAAMuL,GAAa3O,EAAYoO,GAAeG,GAC9C,IAAMK,GAAQ9E,EAAW,iBAAyClH,uBAAAA,GAAsB1B,IACxF,IAAM2N,GAAgBvU,GAAMP,SAASsB,OAAS,IAAMoS,IAAYxK,GAChE,OACE4G,EAAA,MAAA,CAAK3I,UAAW0N,GAAOnP,MAAOA,EAAMxD,SACjC,GAAEoE,GACDwJ,EAAA,MAAA,CAAK3I,UAAU,6BAA6BzB,MAAOwB,GAAYhF,SAAA,CAC7D8N,EAAC+E,EAAkB,CACjB5N,UAAU,wBACV6N,YAAajS,EAAkBwD,GAAqB,KAAOA,EAC3DT,SAAUmN,GACV9R,MAAOkF,EACP4O,WAAU,SAETxQ,EAAMyQ,oBACPlF,EAAA,OAAA,CAAM7I,UAAU,8BAA6BjF,SAAEuC,EAAMyQ,wBAK1DxB,GACC5D,EAAA,MAAA,CAAK3I,UAAU,8BAA6BjF,SAAA,CAC1C8N,EAACmF,EAAI,CAACC,SAAU7U,GAAMG,gBAAkB,qBACxCsP,EAACqF,EAAI3M,EAAA,CAAA,EAAKkM,GAAgBjB,GAAW,CAAExM,UAAU,4BAGnD6I,EAACsF,EAAa,CACZC,OAAQhV,GAAMG,cACd4H,QAASA,GACTkN,cAAa9M,EAAA,CACX,kBAAmBoM,GAAgB,SAAW,QAC3CtO,GAELiP,YACEzF,EAAC0F,EAAM,CAACC,KAAK,UAAUC,QAAStL,GAAuBpI,SAAC,eAQpE,IAEAqD,EAAYsQ,aAAe,CACzBnP,eAAgB,UCh1BLnB,EAAcuQ,EAA4BC,EAAkB,CAOvEnU,gBAAiBA"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/hooks.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx","@flatbiz/antd/src/tree-wrapper/index.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { type API, type ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, treeToArray, type TPlainObject, type TSetDefaultDefined } from '@flatbiz/utils';\nimport { type 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 state.treeTiledArray = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n state.treeTiledArray = [];\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, TAny>>> = {};\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 { type TPlainObject } from '@flatbiz/utils';\nimport { treeWrapperModel } from './model';\n\nexport const getTreeDataList = (modelKey: string) => {\n const state = treeWrapperModel(modelKey).getState();\n return state.treeList as TPlainObject[];\n};\n","import { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { tree } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n treeLeafParentsArray,\n treeToArray,\n treeToTiledArray,\n type LabelValueItem,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { type DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\n\nexport const getDefaultExpandAllKeys = (\n treeList: TPlainObject[],\n fieldNames: { label: string; value: string; children: string },\n) => {\n const allValues = treeToArray(treeList, fieldNames.children)\n .filter((item) => {\n const childrenValue = item[fieldNames.children] as TAny[] | undefined;\n return childrenValue && childrenValue.length > 0;\n })\n .map((item) => {\n return item[fieldNames.value];\n });\n return allValues as Array<string | number>;\n};\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 .filter((item) => {\n const childrenValue = item[fieldNames.children] as TAny[] | undefined;\n return childrenValue && childrenValue.length > 0;\n })\n .map((item) => item.value);\n};\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 return dequal(object1, object2);\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, get } from '@dimjs/utils';\n\nimport { isUndefinedOrNull, treeFilter, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, message, Spin, Tree, type TreeProps } from 'antd';\nimport {\n forwardRef,\n Fragment,\n isValidElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type DependencyList,\n type ReactElement,\n} from 'react';\n\nimport { treeWrapperModel } from './model';\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 './style.less';\nimport { getDefaultExpandAllKeys, getExpandedKeys, getVauleList, onTreeDrop } 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 | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n | 'defaultCheckedKeys'\n | 'defaultExpandParent'\n | 'defaultSelectedKeys'\n> & {\n /** 唯一值,用于缓存数据 */\n modelKey: string;\n /**\n * 字段映射\n * ```\n * 默认值:\n * label = 'label'\n * value = 'value'\n * children = 'children'\n *\n * 如果未设置list,则说明接口返回数据为数组\n * 如果返回数据存在多级,可通过设置 list='a.b.list'\n * ```\n */\n fieldNames?: { label?: string; value?: string; children?: string; list?: string };\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n /**\n * 是否开启异步加载\n */\n loadDataFlag?: boolean;\n /**\n * 异步加载数据配置\n * ```\n * 1. 会通过fieldNames配置label、value、children进行转义\n * 2. fieldNames.list 配置在此处无效\n * ```\n */\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n * ```\n * 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调\n * ```\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n /** 接口响应数据变更 */\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n extraData?: TPlainObject,\n ) => void;\n\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n\n /**\n * 菜单结构类型 tile/平铺 fold/折叠;默认:fold\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuLayoutType?: 'tile' | 'fold';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * @returns\n * ```\n * 1. menuLayoutType = tile 无效\n * 2. 自定义设置 titleRender 后失效\n * ```\n */\n getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];\n /**\n * 根据 menuLayoutType 类型赋值\n * @deprecated 已过期 4.3.0版本移除,请使用 menuOptions\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n /**\n * 菜单触发类型,默认:click\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuTriggerType?: 'click' | 'hover';\n menus?: (dataItem) => ButtonOperateProps;\n\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n searchStyle?: CSSProperties;\n icon?: (data: { isParent: boolean; isLeaf: boolean; [key: string]: TAny }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n /**\n * 状态文案配置\n */\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 /**\n * 选择的节点数据,是否包含label信息\n * ```\n * 默认选择的节点只有value数据\n * ```\n */\n labelInValue?: boolean;\n /**\n * ```\n * @deprecated 废弃\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 * 拖拽排序前判断,如果返回 true,可排序,其他不可排序\n * ```\n * 可用于需要权限控制判断\n * ```\n */\n onDropPrev?: (info) => boolean;\n /**\n * 标签渲染\n * ```\n * 1. 自定义设置 titleRender 后失效\n * 2. 与titleRender的区别\n * a. 设置 labelRender 后,menuLayout有效\n * b. 设置 titleRender 后,menuLayout失效\n * ```\n */\n labelRender?: (nodeData: TPlainObject) => ReactElement;\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n onChangeExpandedKeys: (expandedKeys: Array<string | number>) => void;\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 onDropPrev,\n labelRender,\n searchStyle,\n className,\n defaultExpandAll,\n menus,\n ...otherProps\n } = props;\n // eslint-disable-next-line no-prototype-builtins\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<Array<string | number>>([]);\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 const menuLayoutTypeNew = menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew = menuTriggerType === undefined ? 'click' : menuTriggerType;\n const responseFirstRef = useRef(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 innerOperateValueRef = useRef<Array<string | number> | string | number>();\n\n const valueList = useMemo(() => {\n return getVauleList(value, labelInValueFieldNamesMerge);\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeList.length > 0) {\n if (responseFirstRef.current) {\n responseFirstRef.current = false;\n if (defaultExpandAll) {\n setTreeExpandedKeys(getDefaultExpandAllKeys(state.treeList, fieldNames));\n return;\n } else if (initRootExpand && state.treeList.length) {\n setTreeExpandedKeys([state.treeList[0][fieldNames.value]]);\n return;\n }\n }\n if (!isUndefinedOrNull(value)) {\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(treeExpandedKeys?.concat(expandedKeys))));\n }\n }\n }, [value, state.treeList, valueList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n if (newServiceConfig.onRequestResultAdapter) {\n return newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames.list) {\n return get(respData, fieldNames.list, []) || [];\n }\n if (!isArray(respData)) {\n console.warn('接口返回数据为非数组结构,确认是否需要配置fieldNames.list进行解析');\n return [];\n }\n return respData;\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 void actions.changeRequestStatus('no-dependencies-params');\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 const respDataListNew = respData || [];\n if (respDataListNew.length === 0) {\n responseFirstRef.current = false;\n }\n onChangeSelectorList(respDataListNew);\n setLoading(false);\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: TAny) {\n responseFirstRef.current = false;\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (newEffectDependencyList.length) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n onSelectorTreeListChange?.(allState.treeList);\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n } else {\n onSelectorTreeListChange?.(allState.treeList);\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 = (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 targetKeys = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetKeys);\n });\n return newTreeExpandedKeys;\n };\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const targetList = state.treeTiledArray.filter((item) => {\n const labelValue = (item[fieldNames.label] || '') as string;\n return String(labelValue).toLowerCase().includes(treeSearchValue.toLowerCase());\n });\n setTreeExpandedKeys((prev) => {\n const mergeValueList = targetList.map((item) => item[fieldNames.value]).concat(prev || []);\n const mergeList = getTreeExpandedKeys(mergeValueList);\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 onChangeExpandedKeys: (dataList) => {\n setTreeExpandedKeys(dataList);\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?, operateInfo?) => {\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, operateInfo);\n } else {\n onChange?.(labelInValueList[0], selectList[0], selectAllList, operateInfo);\n }\n } else {\n if (isArray(selectedKey)) {\n onChange?.(selectedKey, selectList, selectAllList, operateInfo);\n } else {\n onChange?.(selectedKey, selectList[0], selectAllList, operateInfo);\n }\n }\n });\n\n const onTreeChangeHandle = hooks.useCallbackRef((checkedData, operateInfo) => {\n let checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = props.checkStrictly ? checkedData.checked : checkedData;\n\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, operateInfo);\n } else {\n onRespChange(selectedAllValueList, selectedAllList, selectedAllList, operateInfo);\n }\n } else {\n if (checkedValueList[0]) {\n const currentNode = selectedAllList.find((item) => item[fieldNames.value] === checkedValueList[0]);\n onRespChange(checkedValueList[0], currentNode, [currentNode], operateInfo);\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], operateInfo);\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(\n cloneState(state.treeList || []),\n (node) => {\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n },\n { childrenName: fieldNames.children },\n );\n }\n return list;\n }, [fieldNames.children, 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 strTitleNew = strTitle?.toLowerCase();\n const index = strTitleNew.indexOf(treeSearchValue.toLowerCase());\n const beforeStr = strTitleNew.substring(0, index);\n const afterStr = strTitleNew.slice(index + treeSearchValue.length);\n const centerStr = strTitleNew.slice(index, 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\">{centerStr}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom && adapterItem.disabled) {\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 || strTitle,\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 const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n // eslint-disable-next-line no-async-promise-executor\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 props.loadDataServiceConfig?.onRequestResultAdapter\n ? props.loadDataServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n\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: TAny) {\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 const buttonOperateConfig = menus?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n if (buttonOperateConfig?.operateList.length) {\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n <ButtonOperate\n gap={5}\n {...buttonOperateConfig}\n dropdownMenuProps={{\n placement: 'bottomRight',\n isFixed: true,\n ...buttonOperateConfig?.dropdownMenuProps,\n }}\n className={classNames('tree-item-title-operate', buttonOperateConfig.className)}\n />\n </Fragment>\n );\n }\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\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper menuList={menuOptions} placement=\"bottomRight\">\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n gap={5}\n {...menuOptions}\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 onDrop: (info) => {\n if (onDropPrev) {\n const boo = onDropPrev(info);\n if (!boo) return;\n }\n const { dataList, dragNodeData } = onTreeDrop(originalDataList as TPlainObject[], fieldNames, info);\n onDropNodeHandle?.(dragNodeData);\n onChangeSelectorList(dataList);\n },\n expandedKeys: treeExpandedKeys,\n ...otherProps,\n fieldNames: treeFieldNames,\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 checkedKeys: valueList,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n selectedKeys: valueList,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames('v-tree-wrapper', `v-tree-wrapper-menu-${menuTriggerTypeNew}`, className);\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\" style={searchStyle}>\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={isUndefinedOrNull(searchPlaceholder) ? '搜索' : 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 {...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","import { attachPropertiesToComponent } from '@flatbiz/utils';\nimport { getTreeDataList } from './hooks';\nimport { TreeWrapper as TreeWrapperInner } from './tree-wrapper';\nexport type * from './tree-wrapper';\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 = attachPropertiesToComponent(TreeWrapperInner, {\n /**\n * 获取树形原数据\n * ```\n * 参数 modelKey 与 TreeWrapper属性 modelKey相同,才能获取数据\n * ```\n */\n getTreeDataList: getTreeDataList,\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","getTreeDataList","modelKey","getState","getDefaultExpandAllKeys","fieldNames","allValues","children","filter","childrenValue","map","getExpandedKeys","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","_isObject","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","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","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","menuLayoutTypeNew","menuTriggerTypeNew","responseFirstRef","useRef","labelInValueFieldNamesMerge","_useState2","treeSearchValue","setTreeSearchValue","innerOperateValueRef","valueList","useEffectCustom","current","expandedKeys","getTreeExpandedKeys","Array","from","Set","concat","valueIsEmpty","serviceResponseHandle","respData","onRequestResultAdapter","list","_get","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","respDataListNew","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","allState","refresh","newTreeExpandedKeys","forEach","includes","targetKeys","useUpdateEffect","targetList","labelValue","String","toLowerCase","prev","mergeValueList","mergeList","useImperativeHandle","onClearSelectorList","onChangeExpandedKeys","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","operateInfo","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","treeItemDataAdapterHandle","dataItem","originalDataList","treeFilter","_node$fieldNames$labe","indexOf","treeData","_extends2","adapterItem","disabled","strTitle","titleDom","strTitleNew","beforeStr","substring","afterStr","slice","centerStr","_jsxs","_classNames","_jsx","_treeItemName","_disabled","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_props$loadDataServic3","_respData3","respDataList","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_extends3","_props$menuOptions3","_extends6","stringLabel","buttonOperateConfig","operateList","Fragment","ButtonOperate","gap","dropdownMenuProps","placement","isFixed","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_extends4","call","_extends5","getMenuOptions","DropdownMenuWrapper","menuList","_MoreOutlined","tile","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","onDrop","boo","_onTreeDrop","width","checkedProps","onCheck","checkedKeys","selectedProps","onSelect","multiple","selectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Spin","spinning","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps","attachPropertiesToComponent","TreeWrapperInner"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "4.2.88",
3
+ "version": "4.2.90",
4
4
  "description": "flat-biz ui components",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",