@flatbiz/antd 4.2.77 → 4.2.79

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
- .v-dialog-modal .ant-modal-body{overflow-x:hidden;overflow-y:auto;padding:10px 24px 20px!important}.v-dialog-modal .ant-modal-content{padding:20px 0!important}.v-dialog-modal .ant-modal-footer,.v-dialog-modal .ant-modal-header{padding:0 24px!important}.v-dialog-confirm .ant-modal-header,.v-dialog-modal .ant-modal-footer{margin:0!important}.v-dialog-confirm .ant-modal-body{color:rgba(0,0,0,.78)!important;font-size:16px;font-weight:400}.v-dialog-confirm .ant-modal-footer>button:nth-child(2){margin-left:15px!important}.v-dialog-loading .ant-modal-content{background-color:transparent!important;box-shadow:none!important;padding:0!important}.v-dialog-loading .ant-modal-body{text-align:center!important}.v-dialog-loading-content{background-color:#fff;border-radius:8px;display:inline-block;padding:20px 30px;text-align:center}.v-dialog-loading-content .loader-inner{animation:dialog-spinner .6s linear infinite;border:2px solid rgba(0,128,227,.08);border-left:2px solid var(--v-loading-color);border-radius:50%;height:30px;margin:0 auto;text-indent:-12345px;width:30px;z-index:100001}.v-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-confirm .ant-modal-header,.fba-dialog-modal .ant-modal-footer{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)}}
@@ -2,5 +2,5 @@
2
2
  import './../fba-utils/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import{fbaUtils as o}from"../fba-utils/index.js";import{a as e,_ as n}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{createContext as r,useMemo as l,useContext as a,useState as i}from"react";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isPromise as s}from"@dimjs/lang/cjs/is-promise";import{hooks as d}from"@wove/react/cjs/hooks";import{ButtonWrapper as u}from"@flatbiz/antd";import{useSize as c}from"ahooks";import{Form as f,Modal as v,Space as p,Drawer as m,theme as g}from"antd";import{jsx as C,jsxs as h}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@flatbiz/utils";var k=r({editable:false});var x=["onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","bodyHeightPercent"];var O=function o(r){var a=r.onOk,i=r.onCancel,p=r.okButtonProps,m=r.cancelButtonProps,g=r.content,h=r.className,k=r.okHidden,O=r.cancelHidden,b=r.footer,y=r.cancelText,P=r.okText,D=r.bodyHeightPercent,w=e(r,x);var H=f.useForm(),T=H[0];var N=c(document.querySelector("html"));var j=d.useCallbackRef((function(){r.onClose==null?void 0:r.onClose()}));var B=d.useCallbackRef((function(o){if(i){var e=i(T,o);if(e&&s(e)){return e.then(j)}}j();return Promise.resolve()}));var A=d.useCallbackRef((function(o){if(a){var e=a(T,o);if(e&&s(e)){return e.then(j)}}j();return Promise.resolve()}));var L=[C(u,n({},m,{onClick:B,hidden:O,children:y||"取消"}),"0"),C(u,n({type:"primary"},p,{onClick:A,hidden:k,children:P||"提交"}),"1")];var M=b||L;var R=l((function(){if(!(N!=null&&N.height)||!D){return"auto"}return(N==null?void 0:N.height)*(D/100)}),[D,N==null?void 0:N.height]);return C(v,n({maskClosable:true,centered:true,onCancel:j,destroyOnClose:true},w,{bodyStyle:n({height:R,maxHeight:N!=null&&N.height?(N==null?void 0:N.height)*.8:"calc(100vh - 200px)"},w.bodyStyle),className:t("v-dialog-modal",h),open:r.open,footer:M,children:typeof g==="function"?g(T,{onClose:j}):g}))};var b=function o(e){var r=t("v-dialog-confirm",e.className);return C(O,n({okText:"确定",width:350,cancelText:"取消",maskClosable:true},e,{className:r}))};var y=function o(e){return C(b,n({okText:"确定",cancelHidden:true,maskClosable:false},e,{onOk:function o(n,r){return e.onClick==null?void 0:e.onClick(r)}}))};var P=["onOk","onCancel","content","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var D=function o(r){var l=r.onOk,a=r.onCancel,i=r.content,t=r.okText,c=r.cancelText,v=r.okButtonExtraProps,g=r.cancelButtonExtraProps,k=r.operatePosition,x=k===void 0?"footer":k,O=r.operateRender,b=r.width,y=b===void 0?600:b,D=r.okHidden,w=r.cancelHidden,H=r.extra,T=e(r,P);var N=f.useForm(),j=N[0];var B=d.useCallbackRef((function(o){r.onClose==null?void 0:r.onClose(o)}));var A=d.useCallbackRef((function(o){if(a){var e=a(j,o);if(e&&s(e)){return e.then(B)}}B(o);return Promise.resolve()}));var L=d.useCallbackRef((function(o){if(l){var e=l(j,o);if(e&&s(e)){return e.then(B)}}B(o);return Promise.resolve()}));var M=h(p,{children:[w||g!=null&&g.hidden?null:C(u,n({},g,{onClick:A,children:c||"取消"})),D||v!=null&&v.hidden?null:C(u,n({type:"primary"},v,{onClick:L,children:t||"提交"}))]});var R=function o(){if(O){return O(j)}if(!D||!w){return M}return null};var E=typeof H==="function"?H(j):H;return C(m,n({maskClosable:true,destroyOnClose:true,onClose:B,width:"80%",contentWrapperStyle:{maxWidth:y},footer:x==="footer"?R():null},T,{extra:x==="header"?R():E,open:r.open,children:typeof i==="function"?i(j,{onClose:B}):i}))};var w=function o(e){var n=e.className,r=e.message,l=e.mask;var a=g.useToken(),i=a.token;var s=i.colorPrimary;return C(v,{maskClosable:false,centered:true,destroyOnClose:true,className:t("v-dialog-loading",n),open:e.open,footer:null,closable:false,style:{"--v-loading-color":s},mask:l,children:C("div",{className:t("v-dialog-loading-content"),children:h("div",{className:"loader-wrapper",children:[C("div",{className:"loader-inner"}),C("div",{className:"loader-text",children:r||"处理中"})]})})})};var H=function o(){var e=a(k);var r=function o(){e.dialogDrawerClose==null?void 0:e.dialogDrawerClose()};return{appDialogDrawer:{open:function o(l){e.dialogDrawerOpen==null?void 0:e.dialogDrawerOpen(n({},l,{open:true}));return{onClose:r}},close:r}}};var T=function o(){var e=a(k);var r=function o(){e.dialogModalClose==null?void 0:e.dialogModalClose()};return{appDialogModal:{open:function o(l){e.dialogModalOpen==null?void 0:e.dialogModalOpen(n({},l,{open:true}));return{onClose:r}},close:r}}};var N=function o(){var e=a(k);var r=function o(){e.dialogAlertClose==null?void 0:e.dialogAlertClose()};return{appDialogAlert:{open:function o(l){e.dialogAlertOpen==null?void 0:e.dialogAlertOpen(n({},l,{open:true}));return{onClose:r}},close:r}}};var j=function o(){var e=a(k);var r=function o(){e.dialogConfirmClose==null?void 0:e.dialogConfirmClose()};return{appDialogConfirm:{open:function o(l){e.dialogConfirmOpen==null?void 0:e.dialogConfirmOpen(n({},l,{open:true}));return{onClose:r}},close:r}}};var B=function o(){var e=a(k);var r=function o(){e.dialogLoadingClose==null?void 0:e.dialogLoadingClose()};return{appDialogLoading:{open:function o(l){e.dialogLoadingOpen==null?void 0:e.dialogLoadingOpen(n({},l,{open:true}));return{onClose:r}},close:r}}};var A=function o(e){var r=i({}),l=r[0],a=r[1];var t=i({}),s=t[0],d=t[1];var u=i({}),c=u[0],f=u[1];var v=i({}),p=v[0],m=v[1];var g=i(),x=g[0],P=g[1];var H=function o(e){a(e)};var T=function o(){a(n({},l,{open:false}))};var N=function o(e){d(e)};var j=function o(){d(n({},l,{open:false}))};var B=function o(e){f(e)};var A=function o(){f(n({},l,{open:false}))};var L=function o(e){m(e)};var M=function o(){m(n({},l,{open:false}))};var R=function o(e){P(e)};var E=function o(){P(n({},l,{open:false}))};return h(k.Provider,{value:{editable:true,dialogDrawerOpen:H,dialogDrawerClose:T,dialogModalOpen:N,dialogModalClose:j,dialogAlertOpen:B,dialogAlertClose:A,dialogConfirmOpen:L,dialogConfirmClose:M,dialogLoadingOpen:R,dialogLoadingClose:E},children:[C(D,n({},l,{onClose:T})),C(O,n({},s,{onClose:j})),C(y,n({},c,{onClose:A})),C(b,n({},p,{onClose:M})),C(w,n({},x)),e.children]})};var L=o.attachPropertiesToComponent(A,{useDialogDrawer:H,useDialogModal:T,useDialogConfirm:j,useDialogAlert:N,useDialogLoading:B});export{L as FbaApp};
5
+ import{fbaUtils as o}from"../fba-utils/index.js";import{a as e,_ as n}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{createContext as r,useMemo as a,useContext as l,useState as i}from"react";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isPromise as s}from"@dimjs/lang/cjs/is-promise";import{hooks as d}from"@wove/react/cjs/hooks";import{ButtonWrapper as u}from"@flatbiz/antd";import{useSize as c}from"ahooks";import{Form as f,Modal as v,Space as p,Drawer as m,theme as g}from"antd";import{jsx as C,jsxs as h}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@flatbiz/utils";var k=r({editable:false});var b=["onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","bodyHeightPercent"];var x=function o(r){var l=r.onOk,i=r.onCancel,p=r.okButtonProps,m=r.cancelButtonProps,g=r.content,h=r.className,k=r.okHidden,x=r.cancelHidden,O=r.footer,y=r.cancelText,P=r.okText,D=r.bodyHeightPercent,w=e(r,b);var H=f.useForm(),T=H[0];var N=c(document.querySelector("html"));var j=d.useCallbackRef((function(){r.onClose==null?void 0:r.onClose()}));var B=d.useCallbackRef((function(o){if(i){var e=i(T,o);if(e&&s(e)){return e.then(j)}}j();return Promise.resolve()}));var A=d.useCallbackRef((function(o){if(l){var e=l(T,o);if(e&&s(e)){return e.then(j)}}j();return Promise.resolve()}));var L=[C(u,n({},m,{onClick:B,hidden:x,children:y||"取消"}),"0"),C(u,n({type:"primary"},p,{onClick:A,hidden:k,children:P||"提交"}),"1")];var M=O||L;var R=a((function(){if(!(N!=null&&N.height)||!D){return"auto"}return(N==null?void 0:N.height)*(D/100)}),[D,N==null?void 0:N.height]);return C(v,n({maskClosable:true,centered:true,onCancel:j,destroyOnClose:true},w,{bodyStyle:n({height:R,maxHeight:N!=null&&N.height?(N==null?void 0:N.height)*.8:"calc(100vh - 200px)"},w.bodyStyle),className:t("fba-dialog-modal",h),open:r.open,footer:M,children:typeof g==="function"?g(T,{onClose:j}):g}))};var O=function o(e){var r=t("fba-dialog-confirm",e.className);return C(x,n({okText:"确定",width:350,cancelText:"取消",maskClosable:true},e,{className:r}))};var y=function o(e){return C(O,n({okText:"确定",cancelHidden:true,maskClosable:false},e,{onOk:function o(n,r){return e.onClick==null?void 0:e.onClick(r)}}))};var P=["onOk","onCancel","content","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var D=function o(r){var a=r.onOk,l=r.onCancel,i=r.content,t=r.okText,c=r.cancelText,v=r.okButtonExtraProps,g=r.cancelButtonExtraProps,k=r.operatePosition,b=k===void 0?"footer":k,x=r.operateRender,O=r.width,y=O===void 0?600:O,D=r.okHidden,w=r.cancelHidden,H=r.extra,T=e(r,P);var N=f.useForm(),j=N[0];var B=d.useCallbackRef((function(o){r.onClose==null?void 0:r.onClose(o)}));var A=d.useCallbackRef((function(o){if(l){var e=l(j,o);if(e&&s(e)){return e.then(B)}}B(o);return Promise.resolve()}));var L=d.useCallbackRef((function(o){if(a){var e=a(j,o);if(e&&s(e)){return e.then(B)}}B(o);return Promise.resolve()}));var M=h(p,{children:[w||g!=null&&g.hidden?null:C(u,n({},g,{onClick:A,children:c||"取消"})),D||v!=null&&v.hidden?null:C(u,n({type:"primary"},v,{onClick:L,children:t||"提交"}))]});var R=function o(){if(x){return x(j)}if(!D||!w){return M}return null};var E=typeof H==="function"?H(j):H;return C(m,n({maskClosable:true,destroyOnClose:true,onClose:B,width:"80%",contentWrapperStyle:{maxWidth:y},footer:b==="footer"?R():null},T,{extra:b==="header"?R():E,open:r.open,children:typeof i==="function"?i(j,{onClose:B}):i}))};var w=function o(e){var n=e.className,r=e.message,a=e.mask;var l=g.useToken(),i=l.token;var s=i.colorPrimary;return C(v,{maskClosable:false,centered:true,destroyOnClose:true,className:t("fba-dialog-loading",n),open:e.open,footer:null,closable:false,style:{"--fba-loading-color":s},mask:a,children:C("div",{className:t("fba-dialog-loading-content"),children:h("div",{className:"loader-wrapper",children:[C("div",{className:"loader-inner"}),C("div",{className:"loader-text",children:r||"处理中"})]})})})};var H=function o(){var e=l(k);var r=function o(){e.dialogDrawerClose==null?void 0:e.dialogDrawerClose()};return{appDialogDrawer:{open:function o(a){e.dialogDrawerOpen==null?void 0:e.dialogDrawerOpen(n({},a,{open:true}));return{onClose:r}},close:r}}};var T=function o(){var e=l(k);var r=function o(){e.dialogModalClose==null?void 0:e.dialogModalClose()};return{appDialogModal:{open:function o(a){e.dialogModalOpen==null?void 0:e.dialogModalOpen(n({},a,{open:true}));return{onClose:r}},close:r}}};var N=function o(){var e=l(k);var r=function o(){e.dialogAlertClose==null?void 0:e.dialogAlertClose()};return{appDialogAlert:{open:function o(a){e.dialogAlertOpen==null?void 0:e.dialogAlertOpen(n({},a,{open:true}));return{onClose:r}},close:r}}};var j=function o(){var e=l(k);var r=function o(){e.dialogConfirmClose==null?void 0:e.dialogConfirmClose()};return{appDialogConfirm:{open:function o(a){e.dialogConfirmOpen==null?void 0:e.dialogConfirmOpen(n({},a,{open:true}));return{onClose:r}},close:r}}};var B=function o(){var e=l(k);var r=function o(){e.dialogLoadingClose==null?void 0:e.dialogLoadingClose()};return{appDialogLoading:{open:function o(a){e.dialogLoadingOpen==null?void 0:e.dialogLoadingOpen(n({},a,{open:true}));return{onClose:r}},close:r}}};var A=function o(e){var r=i({}),a=r[0],l=r[1];var t=i({}),s=t[0],d=t[1];var u=i({}),c=u[0],f=u[1];var v=i({}),p=v[0],m=v[1];var g=i(),b=g[0],P=g[1];var H=function o(e){l(e)};var T=function o(){l(n({},a,{open:false}))};var N=function o(e){d(e)};var j=function o(){d(n({},a,{open:false}))};var B=function o(e){f(e)};var A=function o(){f(n({},a,{open:false}))};var L=function o(e){m(e)};var M=function o(){m(n({},a,{open:false}))};var R=function o(e){P(e)};var E=function o(){P(n({},a,{open:false}))};return h(k.Provider,{value:{editable:true,dialogDrawerOpen:H,dialogDrawerClose:T,dialogModalOpen:N,dialogModalClose:j,dialogAlertOpen:B,dialogAlertClose:A,dialogConfirmOpen:L,dialogConfirmClose:M,dialogLoadingOpen:R,dialogLoadingClose:E},children:[C(D,n({},a,{onClose:T})),C(x,n({},s,{onClose:j})),C(y,n({},c,{onClose:A})),C(O,n({},p,{onClose:M})),C(w,n({},b)),e.children]})};var L=o.attachPropertiesToComponent(A,{useDialogDrawer:H,useDialogModal:T,useDialogConfirm:j,useDialogAlert:N,useDialogLoading:B});export{L as FbaApp};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-app/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/index.tsx","@flatbiz/antd/src/fba-app/dialog-confirm/index.tsx","@flatbiz/antd/src/fba-app/dialog-alert/index.tsx","@flatbiz/antd/src/fba-app/dialog-drawer/index.tsx","@flatbiz/antd/src/fba-app/dialog-loading/index.tsx","@flatbiz/antd/src/fba-app/fba-app.tsx","@flatbiz/antd/src/fba-app/index.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModalProps } from './dialog-modal';\n\nexport type FbaAppContextApi = {\n editable: boolean;\n dialogDrawerOpen?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose?: () => void;\n dialogModalOpen?: (data: FbaAppModalProps) => void;\n dialogModalClose?: () => void;\n\n dialogAlertOpen?: (data: FbaAppAlertProps) => void;\n dialogAlertClose?: () => void;\n\n dialogConfirmOpen?: (data: FbaAppConfirmProps) => void;\n dialogConfirmClose?: () => void;\n\n dialogLoadingOpen?: (data?: FbaAppLoadingProps & { open?: boolean }) => void;\n dialogLoadingClose?: () => void;\n};\n\nexport const FbaAppContext = createContext<FbaAppContextApi>({\n editable: false,\n});\n","import { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { ButtonWrapper, ButtonWrapperProps } from '@flatbiz/antd';\nimport { TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport './style.less';\n\nexport type FbaAppModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'okButtonProps' | 'cancelButtonProps'\n> & {\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onClose?: () => void;\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n};\n\nexport const FbaAppModal = (props: FbaAppModalProps) => {\n const {\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n bodyHeightPercent,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n const size = useSize(document.querySelector('html'));\n\n const onClose = hooks.useCallbackRef(() => {\n props.onClose?.();\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const operateGroup = [\n <ButtonWrapper key=\"0\" {...cancelButtonProps} onClick={onCancelHandle} hidden={cancelHidden}>\n {cancelText || '取消'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"1\" type=\"primary\" {...okButtonProps} onClick={onOkHandle} hidden={okHidden}>\n {okText || '提交'}\n </ButtonWrapper>,\n ];\n\n const footerNew = footer || operateGroup;\n\n const height = useMemo(() => {\n if (!size?.height || !bodyHeightPercent) {\n return 'auto';\n }\n return size?.height * (bodyHeightPercent / 100);\n }, [bodyHeightPercent, size?.height]);\n\n return (\n <Modal\n maskClosable={true}\n centered={true}\n onCancel={onClose}\n destroyOnClose\n {...otherProps}\n bodyStyle={{\n height,\n maxHeight: size?.height ? size?.height * 0.8 : 'calc(100vh - 200px)',\n ...otherProps.bodyStyle,\n }}\n className={classNames('v-dialog-modal', className)}\n open={props.open}\n footer={footerNew}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { FbaAppModal, FbaAppModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport type FbaAppConfirmProps = FbaAppModalProps;\n\nexport const FbaAppConfirm = (props: FbaAppConfirmProps) => {\n const className = classNames('v-dialog-confirm', props.className);\n return (\n <FbaAppModal\n okText=\"确定\"\n width={350}\n cancelText=\"取消\"\n maskClosable={true}\n {...props}\n className={className}\n />\n );\n};\n","import { FbaAppConfirm } from '../dialog-confirm';\nimport { FbaAppModalProps } from '../dialog-modal';\n\n// export type DialogAlertProps = Omit<\n// DialogModalProps,\n// 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n// > & {\n// onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n// };\n\n// export const dialogAlert = {\n// open: (props: DialogAlertProps) => {\n// return dialogConfirm.open({\n// okText: '确定',\n// cancelHidden: true,\n// maskClosable: false,\n// ...props,\n// onOk: props.onClick,\n// } as DialogModalProps);\n// },\n// };\n\nexport type FbaAppAlertProps = Omit<\n FbaAppModalProps,\n 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n\nexport const FbaAppAlert = (props: FbaAppAlertProps) => {\n return (\n <FbaAppConfirm\n okText=\"确定\"\n cancelHidden={true}\n maskClosable={false}\n {...props}\n onOk={(_form, e) => {\n return props.onClick?.(e);\n }}\n />\n );\n};\n","import { isPromise } from '@dimjs/lang';\nimport { ButtonWrapper, ButtonWrapperProps } from '@flatbiz/antd';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { ReactElement, ReactNode } from 'react';\n\nexport type FbaAppDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'footer' | 'extra'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content:\n | string\n | ReactElement\n | ((form: FormInstance, operate: { onClose: DrawerProps['onClose'] }) => ReactElement);\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n operatePosition?: 'header' | 'footer';\n operateRender?: (form: FormInstance) => ReactElement;\n okHidden?: boolean;\n cancelHidden?: boolean;\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n};\n\nexport const FbaAppDrawer = (props: FbaAppDrawerProps) => {\n const {\n onOk,\n onCancel,\n content,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width = 600,\n okHidden,\n cancelHidden,\n extra,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n\n const onClose = hooks.useCallbackRef((e) => {\n props.onClose?.(e);\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const operateGroup = (\n <Space>\n {cancelHidden || cancelButtonExtraProps?.hidden ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHidden || okButtonExtraProps?.hidden ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n\n const operateRenderHandle = () => {\n if (operateRender) {\n return operateRender(form);\n }\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n };\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n return (\n <Drawer\n maskClosable={true}\n destroyOnClose\n onClose={onClose}\n width={'80%'}\n contentWrapperStyle={{ maxWidth: width }}\n footer={operatePosition === 'footer' ? operateRenderHandle() : null}\n {...otherProps}\n extra={operatePosition === 'header' ? operateRenderHandle() : extraRender}\n open={props.open}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties } from 'react';\nimport './style.less';\n\nexport type FbaAppLoadingProps = {\n className?: string;\n message?: string;\n mask?: boolean;\n};\n\nexport const FbaAppLoading = (props: FbaAppLoadingProps & { open?: boolean }) => {\n const { className, message, mask } = props;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('v-dialog-loading', className)}\n open={props.open}\n footer={null}\n closable={false}\n style={{ '--v-loading-color': colorPrimary } as CSSProperties}\n mask={mask}\n >\n <div className={classNames('v-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{message || '处理中'}</div>\n </div>\n </div>\n </Modal>\n );\n};\n","import { ReactNode, useContext, useState } from 'react';\nimport { FbaAppContext, FbaAppContextApi } from './context';\nimport { FbaAppAlert, FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirm, FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawer, FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoading, FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModal, FbaAppModalProps } from './dialog-modal';\n\nexport const useDialogDrawer = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose?.();\n };\n\n return {\n appDialogDrawer: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const useDialogModal = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose?.();\n };\n\n return {\n appDialogModal: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const useDialogAlert = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogAlertClose?.();\n };\n\n return {\n appDialogAlert: {\n open: (data: FbaAppAlertProps) => {\n ctx.dialogAlertOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\nexport const useDialogConfirm = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogConfirmClose?.();\n };\n\n return {\n appDialogConfirm: {\n open: (data: FbaAppConfirmProps) => {\n ctx.dialogConfirmOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\nexport const useDialogLoading = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogLoadingClose?.();\n };\n\n return {\n appDialogLoading: {\n open: (data?: FbaAppLoadingProps) => {\n ctx.dialogLoadingOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const FbaApp = (props: { children: ReactNode }) => {\n const [drawerProps, setDrawerProps] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [modalProps, setModalProps] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [alertProps, setAlertProps] = useState<FbaAppAlertProps>({} as FbaAppAlertProps);\n const [confirmProps, setConfirmProps] = useState<FbaAppConfirmProps>({} as FbaAppConfirmProps);\n const [loadingProps, setLoadingProps] = useState<FbaAppLoadingProps>();\n\n const dialogDrawerOpen: FbaAppContextApi['dialogDrawerOpen'] = (data) => {\n setDrawerProps(data);\n };\n\n const dialogDrawerClose = () => {\n setDrawerProps({ ...drawerProps, open: false } as FbaAppDrawerProps);\n };\n\n const dialogModalOpen: FbaAppContextApi['dialogModalOpen'] = (data) => {\n setModalProps(data);\n };\n\n const dialogModalClose = () => {\n setModalProps({ ...drawerProps, open: false } as FbaAppModalProps);\n };\n\n const dialogAlertOpen: FbaAppContextApi['dialogAlertOpen'] = (data) => {\n setAlertProps(data);\n };\n\n const dialogAlertClose = () => {\n setAlertProps({ ...drawerProps, open: false } as FbaAppAlertProps);\n };\n\n const dialogConfirmOpen: FbaAppContextApi['dialogConfirmOpen'] = (data) => {\n setConfirmProps(data);\n };\n\n const dialogConfirmClose = () => {\n setConfirmProps({ ...drawerProps, open: false } as FbaAppConfirmProps);\n };\n\n const dialogLoadingOpen: FbaAppContextApi['dialogLoadingOpen'] = (data) => {\n setLoadingProps(data);\n };\n\n const dialogLoadingClose = () => {\n setLoadingProps({ ...drawerProps, open: false } as FbaAppLoadingProps);\n };\n\n return (\n <FbaAppContext.Provider\n value={{\n editable: true,\n dialogDrawerOpen,\n dialogDrawerClose,\n dialogModalOpen,\n dialogModalClose,\n dialogAlertOpen,\n dialogAlertClose,\n dialogConfirmOpen,\n dialogConfirmClose,\n dialogLoadingOpen,\n dialogLoadingClose,\n }}\n >\n <FbaAppDrawer {...drawerProps} onClose={dialogDrawerClose}></FbaAppDrawer>\n <FbaAppModal {...modalProps} onClose={dialogModalClose}></FbaAppModal>\n <FbaAppAlert {...alertProps} onClose={dialogAlertClose}></FbaAppAlert>\n <FbaAppConfirm {...confirmProps} onClose={dialogConfirmClose}></FbaAppConfirm>\n <FbaAppLoading {...loadingProps}></FbaAppLoading>\n {props.children}\n </FbaAppContext.Provider>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport {\n FbaApp as FbaAppInner,\n useDialogAlert,\n useDialogConfirm,\n useDialogDrawer,\n useDialogLoading,\n useDialogModal,\n} from './fba-app';\n\nexport const FbaApp = fbaUtils.attachPropertiesToComponent(FbaAppInner, {\n useDialogDrawer,\n useDialogModal,\n useDialogConfirm,\n useDialogAlert,\n useDialogLoading,\n});\n"],"names":["FbaAppContext","createContext","editable","FbaAppModal","props","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","bodyHeightPercent","otherProps","_objectWithoutPropertiesLoose","_excluded","_Form$useForm","Form","useForm","form","size","useSize","document","querySelector","onClose","_hooks","useCallbackRef","onCancelHandle","e","response","_isPromise","then","Promise","resolve","onOkHandle","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","footerNew","height","useMemo","Modal","maskClosable","centered","destroyOnClose","bodyStyle","maxHeight","_classNames","open","FbaAppConfirm","width","FbaAppAlert","_form","FbaAppDrawer","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","_props$width","extra","_jsxs","Space","operateRenderHandle","extraRender","Drawer","contentWrapperStyle","maxWidth","FbaAppLoading","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","closable","style","useDialogDrawer","ctx","useContext","dialogDrawerClose","appDialogDrawer","data","dialogDrawerOpen","close","useDialogModal","dialogModalClose","appDialogModal","dialogModalOpen","useDialogAlert","dialogAlertClose","appDialogAlert","dialogAlertOpen","useDialogConfirm","dialogConfirmClose","appDialogConfirm","dialogConfirmOpen","useDialogLoading","dialogLoadingClose","appDialogLoading","dialogLoadingOpen","FbaApp","_useState","useState","drawerProps","setDrawerProps","_useState2","modalProps","setModalProps","_useState3","alertProps","setAlertProps","_useState4","confirmProps","setConfirmProps","_useState5","loadingProps","setLoadingProps","Provider","value","fbaUtils","attachPropertiesToComponent","FbaAppInner"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-app/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/index.tsx","@flatbiz/antd/src/fba-app/dialog-confirm/index.tsx","@flatbiz/antd/src/fba-app/dialog-alert/index.tsx","@flatbiz/antd/src/fba-app/dialog-drawer/index.tsx","@flatbiz/antd/src/fba-app/dialog-loading/index.tsx","@flatbiz/antd/src/fba-app/fba-app.tsx","@flatbiz/antd/src/fba-app/index.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModalProps } from './dialog-modal';\n\nexport type FbaAppContextApi = {\n editable: boolean;\n dialogDrawerOpen?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose?: () => void;\n dialogModalOpen?: (data: FbaAppModalProps) => void;\n dialogModalClose?: () => void;\n\n dialogAlertOpen?: (data: FbaAppAlertProps) => void;\n dialogAlertClose?: () => void;\n\n dialogConfirmOpen?: (data: FbaAppConfirmProps) => void;\n dialogConfirmClose?: () => void;\n\n dialogLoadingOpen?: (data?: FbaAppLoadingProps & { open?: boolean }) => void;\n dialogLoadingClose?: () => void;\n};\n\nexport const FbaAppContext = createContext<FbaAppContextApi>({\n editable: false,\n});\n","import { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { ButtonWrapper, ButtonWrapperProps } from '@flatbiz/antd';\nimport { TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport './style.less';\n\nexport type FbaAppModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'okButtonProps' | 'cancelButtonProps'\n> & {\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onClose?: () => void;\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n};\n\nexport const FbaAppModal = (props: FbaAppModalProps) => {\n const {\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n bodyHeightPercent,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n const size = useSize(document.querySelector('html'));\n\n const onClose = hooks.useCallbackRef(() => {\n props.onClose?.();\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const operateGroup = [\n <ButtonWrapper key=\"0\" {...cancelButtonProps} onClick={onCancelHandle} hidden={cancelHidden}>\n {cancelText || '取消'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"1\" type=\"primary\" {...okButtonProps} onClick={onOkHandle} hidden={okHidden}>\n {okText || '提交'}\n </ButtonWrapper>,\n ];\n\n const footerNew = footer || operateGroup;\n\n const height = useMemo(() => {\n if (!size?.height || !bodyHeightPercent) {\n return 'auto';\n }\n return size?.height * (bodyHeightPercent / 100);\n }, [bodyHeightPercent, size?.height]);\n\n return (\n <Modal\n maskClosable={true}\n centered={true}\n onCancel={onClose}\n destroyOnClose\n {...otherProps}\n bodyStyle={{\n height,\n maxHeight: size?.height ? size?.height * 0.8 : 'calc(100vh - 200px)',\n ...otherProps.bodyStyle,\n }}\n className={classNames('fba-dialog-modal', className)}\n open={props.open}\n footer={footerNew}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { FbaAppModal, FbaAppModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport type FbaAppConfirmProps = FbaAppModalProps;\n\nexport const FbaAppConfirm = (props: FbaAppConfirmProps) => {\n const className = classNames('fba-dialog-confirm', props.className);\n return (\n <FbaAppModal\n okText=\"确定\"\n width={350}\n cancelText=\"取消\"\n maskClosable={true}\n {...props}\n className={className}\n />\n );\n};\n","import { FbaAppConfirm } from '../dialog-confirm';\nimport { FbaAppModalProps } from '../dialog-modal';\n\n// export type DialogAlertProps = Omit<\n// DialogModalProps,\n// 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n// > & {\n// onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n// };\n\n// export const dialogAlert = {\n// open: (props: DialogAlertProps) => {\n// return dialogConfirm.open({\n// okText: '确定',\n// cancelHidden: true,\n// maskClosable: false,\n// ...props,\n// onOk: props.onClick,\n// } as DialogModalProps);\n// },\n// };\n\nexport type FbaAppAlertProps = Omit<\n FbaAppModalProps,\n 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n\nexport const FbaAppAlert = (props: FbaAppAlertProps) => {\n return (\n <FbaAppConfirm\n okText=\"确定\"\n cancelHidden={true}\n maskClosable={false}\n {...props}\n onOk={(_form, e) => {\n return props.onClick?.(e);\n }}\n />\n );\n};\n","import { isPromise } from '@dimjs/lang';\nimport { ButtonWrapper, ButtonWrapperProps } from '@flatbiz/antd';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { ReactElement, ReactNode } from 'react';\n\nexport type FbaAppDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'footer' | 'extra'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content:\n | string\n | ReactElement\n | ((form: FormInstance, operate: { onClose: DrawerProps['onClose'] }) => ReactElement);\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n operatePosition?: 'header' | 'footer';\n operateRender?: (form: FormInstance) => ReactElement;\n okHidden?: boolean;\n cancelHidden?: boolean;\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n};\n\nexport const FbaAppDrawer = (props: FbaAppDrawerProps) => {\n const {\n onOk,\n onCancel,\n content,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width = 600,\n okHidden,\n cancelHidden,\n extra,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n\n const onClose = hooks.useCallbackRef((e) => {\n props.onClose?.(e);\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const operateGroup = (\n <Space>\n {cancelHidden || cancelButtonExtraProps?.hidden ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHidden || okButtonExtraProps?.hidden ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n\n const operateRenderHandle = () => {\n if (operateRender) {\n return operateRender(form);\n }\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n };\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n return (\n <Drawer\n maskClosable={true}\n destroyOnClose\n onClose={onClose}\n width={'80%'}\n contentWrapperStyle={{ maxWidth: width }}\n footer={operatePosition === 'footer' ? operateRenderHandle() : null}\n {...otherProps}\n extra={operatePosition === 'header' ? operateRenderHandle() : extraRender}\n open={props.open}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties } from 'react';\nimport './style.less';\n\nexport type FbaAppLoadingProps = {\n className?: string;\n message?: string;\n mask?: boolean;\n};\n\nexport const FbaAppLoading = (props: FbaAppLoadingProps & { open?: boolean }) => {\n const { className, message, mask } = props;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('fba-dialog-loading', className)}\n open={props.open}\n footer={null}\n closable={false}\n style={{ '--fba-loading-color': colorPrimary } as CSSProperties}\n mask={mask}\n >\n <div className={classNames('fba-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{message || '处理中'}</div>\n </div>\n </div>\n </Modal>\n );\n};\n","import { ReactNode, useContext, useState } from 'react';\nimport { FbaAppContext, FbaAppContextApi } from './context';\nimport { FbaAppAlert, FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirm, FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawer, FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoading, FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModal, FbaAppModalProps } from './dialog-modal';\n\nexport const useDialogDrawer = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose?.();\n };\n\n return {\n appDialogDrawer: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const useDialogModal = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose?.();\n };\n\n return {\n appDialogModal: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const useDialogAlert = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogAlertClose?.();\n };\n\n return {\n appDialogAlert: {\n open: (data: FbaAppAlertProps) => {\n ctx.dialogAlertOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\nexport const useDialogConfirm = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogConfirmClose?.();\n };\n\n return {\n appDialogConfirm: {\n open: (data: FbaAppConfirmProps) => {\n ctx.dialogConfirmOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\nexport const useDialogLoading = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogLoadingClose?.();\n };\n\n return {\n appDialogLoading: {\n open: (data?: FbaAppLoadingProps) => {\n ctx.dialogLoadingOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const FbaApp = (props: { children: ReactNode }) => {\n const [drawerProps, setDrawerProps] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [modalProps, setModalProps] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [alertProps, setAlertProps] = useState<FbaAppAlertProps>({} as FbaAppAlertProps);\n const [confirmProps, setConfirmProps] = useState<FbaAppConfirmProps>({} as FbaAppConfirmProps);\n const [loadingProps, setLoadingProps] = useState<FbaAppLoadingProps>();\n\n const dialogDrawerOpen: FbaAppContextApi['dialogDrawerOpen'] = (data) => {\n setDrawerProps(data);\n };\n\n const dialogDrawerClose = () => {\n setDrawerProps({ ...drawerProps, open: false } as FbaAppDrawerProps);\n };\n\n const dialogModalOpen: FbaAppContextApi['dialogModalOpen'] = (data) => {\n setModalProps(data);\n };\n\n const dialogModalClose = () => {\n setModalProps({ ...drawerProps, open: false } as FbaAppModalProps);\n };\n\n const dialogAlertOpen: FbaAppContextApi['dialogAlertOpen'] = (data) => {\n setAlertProps(data);\n };\n\n const dialogAlertClose = () => {\n setAlertProps({ ...drawerProps, open: false } as FbaAppAlertProps);\n };\n\n const dialogConfirmOpen: FbaAppContextApi['dialogConfirmOpen'] = (data) => {\n setConfirmProps(data);\n };\n\n const dialogConfirmClose = () => {\n setConfirmProps({ ...drawerProps, open: false } as FbaAppConfirmProps);\n };\n\n const dialogLoadingOpen: FbaAppContextApi['dialogLoadingOpen'] = (data) => {\n setLoadingProps(data);\n };\n\n const dialogLoadingClose = () => {\n setLoadingProps({ ...drawerProps, open: false } as FbaAppLoadingProps);\n };\n\n return (\n <FbaAppContext.Provider\n value={{\n editable: true,\n dialogDrawerOpen,\n dialogDrawerClose,\n dialogModalOpen,\n dialogModalClose,\n dialogAlertOpen,\n dialogAlertClose,\n dialogConfirmOpen,\n dialogConfirmClose,\n dialogLoadingOpen,\n dialogLoadingClose,\n }}\n >\n <FbaAppDrawer {...drawerProps} onClose={dialogDrawerClose}></FbaAppDrawer>\n <FbaAppModal {...modalProps} onClose={dialogModalClose}></FbaAppModal>\n <FbaAppAlert {...alertProps} onClose={dialogAlertClose}></FbaAppAlert>\n <FbaAppConfirm {...confirmProps} onClose={dialogConfirmClose}></FbaAppConfirm>\n <FbaAppLoading {...loadingProps}></FbaAppLoading>\n {props.children}\n </FbaAppContext.Provider>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport {\n FbaApp as FbaAppInner,\n useDialogAlert,\n useDialogConfirm,\n useDialogDrawer,\n useDialogLoading,\n useDialogModal,\n} from './fba-app';\n\nexport const FbaApp = fbaUtils.attachPropertiesToComponent(FbaAppInner, {\n useDialogDrawer,\n useDialogModal,\n useDialogConfirm,\n useDialogAlert,\n useDialogLoading,\n});\n"],"names":["FbaAppContext","createContext","editable","FbaAppModal","props","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","bodyHeightPercent","otherProps","_objectWithoutPropertiesLoose","_excluded","_Form$useForm","Form","useForm","form","size","useSize","document","querySelector","onClose","_hooks","useCallbackRef","onCancelHandle","e","response","_isPromise","then","Promise","resolve","onOkHandle","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","type","footerNew","height","useMemo","Modal","maskClosable","centered","destroyOnClose","bodyStyle","maxHeight","_classNames","open","FbaAppConfirm","width","FbaAppAlert","_form","FbaAppDrawer","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","_props$width","extra","_jsxs","Space","operateRenderHandle","extraRender","Drawer","contentWrapperStyle","maxWidth","FbaAppLoading","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","closable","style","useDialogDrawer","ctx","useContext","dialogDrawerClose","appDialogDrawer","data","dialogDrawerOpen","close","useDialogModal","dialogModalClose","appDialogModal","dialogModalOpen","useDialogAlert","dialogAlertClose","appDialogAlert","dialogAlertOpen","useDialogConfirm","dialogConfirmClose","appDialogConfirm","dialogConfirmOpen","useDialogLoading","dialogLoadingClose","appDialogLoading","dialogLoadingOpen","FbaApp","_useState","useState","drawerProps","setDrawerProps","_useState2","modalProps","setModalProps","_useState3","alertProps","setAlertProps","_useState4","confirmProps","setConfirmProps","_useState5","loadingProps","setLoadingProps","Provider","value","fbaUtils","attachPropertiesToComponent","FbaAppInner"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{classNames as e}from"@dimjs/utils/cjs/class-names";import{Descriptions as r}from"antd";import{useMemo as a}from"react";import{jsx as l}from"react/jsx-runtime";var t=function t(o){var n=o.labelWidth==="auto"?"auto":(o.labelWidth||120)+"px";var i={"--v-label-value-layout-lWidth":n};var u=e("v-label-value-layout",o.className);var m=a((function(){return o.options.filter((function(e){return!e.hidden}))}),[o.options]);return l(r,{column:o.column||1,bordered:o.bordered,size:"small",className:u,style:i,children:m.map((function(e){return l(r.Item,{label:e.label,span:e.span,children:e.value},e.key)}))})};export{t as LabelValueLayout};
4
+ import{_ as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{classNames as e}from"@dimjs/utils/cjs/class-names";import{getUuid as l}from"@flatbiz/utils";import{Descriptions as t}from"antd";import{useMemo as a}from"react";import{jsx as o}from"react/jsx-runtime";var n=function n(i){var u=i.labelWidth==="auto"?"auto":(i.labelWidth||120)+"px";var m={"--v-label-value-layout-lWidth":u};var s=e("v-label-value-layout",i.className);var p=a((function(){return i.options.filter((function(r){return!r.hidden}))}),[i.options]);p=p.map((function(e){return r({key:l()},e)}));return o(t,{column:i.column||1,bordered:i.bordered,size:"small",className:s,style:m,children:p.map((function(r){return o(t.Item,{label:r.label,span:r.span,children:r.value},r.key)}))})};export{n as LabelValueLayout};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-layout/label-value-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Descriptions } from 'antd';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport './style.less';\n\nexport type LabelValueLayoutProps = {\n options: {\n key: string | number;\n label: string | ReactElement;\n value?: string | number | ReactElement;\n span?: number;\n hidden?: boolean;\n }[];\n labelWidth?: number | 'auto';\n // 一行占几组,默认1\n column?: number;\n bordered?: boolean;\n className?: string;\n};\n\n/**\n * options[].span 是 Description.Item 的数量。 span={2} 会占用两个 DescriptionItem 的宽度\n * options[].hidden 是否隐藏 Description.Item\n */\nexport const LabelValueLayout = (props: LabelValueLayoutProps) => {\n const labelWidth = props.labelWidth === 'auto' ? 'auto' : `${props.labelWidth || 120}px`;\n const style = { '--v-label-value-layout-lWidth': labelWidth } as CSSProperties;\n const className = classNames('v-label-value-layout', props.className);\n\n const options = useMemo(() => {\n return props.options.filter((item) => !item.hidden);\n }, [props.options]);\n return (\n <Descriptions\n column={props.column || 1}\n bordered={props.bordered}\n size=\"small\"\n className={className}\n style={style}\n >\n {options.map((item) => {\n return (\n <Descriptions.Item key={item.key} label={item.label} span={item.span}>\n {item.value}\n </Descriptions.Item>\n );\n })}\n </Descriptions>\n );\n};\n"],"names":["LabelValueLayout","props","labelWidth","style","className","_classNames","options","useMemo","filter","item","hidden","_jsx","Descriptions","column","bordered","size","children","map","Item","label","span","value","key"],"mappings":";0KAwBaA,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAMC,EAAaD,EAAMC,aAAe,OAAS,QAAYD,EAAMC,YAAc,KAAO,KACxF,IAAMC,EAAQ,CAAE,gCAAiCD,GACjD,IAAME,EAAYC,EAAW,uBAAwBJ,EAAMG,WAE3D,IAAME,EAAUC,GAAQ,WACtB,OAAON,EAAMK,QAAQE,QAAO,SAACC,GAAI,OAAMA,EAAKC,SAC9C,GAAG,CAACT,EAAMK,UACV,OACEK,EAACC,EAAY,CACXC,OAAQZ,EAAMY,QAAU,EACxBC,SAAUb,EAAMa,SAChBC,KAAK,QACLX,UAAWA,EACXD,MAAOA,EAAMa,SAEZV,EAAQW,KAAI,SAACR,GACZ,OACEE,EAACC,EAAaM,KAAI,CAAgBC,MAAOV,EAAKU,MAAOC,KAAMX,EAAKW,KAAKJ,SAClEP,EAAKY,OADgBZ,EAAKa,SAOvC"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-layout/label-value-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { getUuid } from '@flatbiz/utils';\nimport { Descriptions } from 'antd';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport './style.less';\n\nexport type LabelValueLayoutProps = {\n options: {\n key?: string | number;\n label: string | ReactElement;\n value?: string | number | ReactElement;\n span?: number;\n hidden?: boolean;\n }[];\n labelWidth?: number | 'auto';\n // 一行占几组,默认1\n column?: number;\n bordered?: boolean;\n className?: string;\n};\n\n/**\n * options[].span 是 Description.Item 的数量。 span={2} 会占用两个 DescriptionItem 的宽度\n * options[].hidden 是否隐藏 Description.Item\n */\nexport const LabelValueLayout = (props: LabelValueLayoutProps) => {\n const labelWidth = props.labelWidth === 'auto' ? 'auto' : `${props.labelWidth || 120}px`;\n const style = { '--v-label-value-layout-lWidth': labelWidth } as CSSProperties;\n const className = classNames('v-label-value-layout', props.className);\n\n let options = useMemo(() => {\n return props.options.filter((item) => !item.hidden);\n }, [props.options]);\n\n options = options.map((item) => {\n return { key: getUuid(), ...item };\n });\n\n return (\n <Descriptions\n column={props.column || 1}\n bordered={props.bordered}\n size=\"small\"\n className={className}\n style={style}\n >\n {options.map((item) => {\n return (\n <Descriptions.Item key={item.key} label={item.label} span={item.span}>\n {item.value}\n </Descriptions.Item>\n );\n })}\n </Descriptions>\n );\n};\n"],"names":["LabelValueLayout","props","labelWidth","style","className","_classNames","options","useMemo","filter","item","hidden","map","_extends","key","getUuid","_jsx","Descriptions","column","bordered","size","children","Item","label","span","value"],"mappings":";gRAyBaA,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAMC,EAAaD,EAAMC,aAAe,OAAS,QAAYD,EAAMC,YAAc,KAAO,KACxF,IAAMC,EAAQ,CAAE,gCAAiCD,GACjD,IAAME,EAAYC,EAAW,uBAAwBJ,EAAMG,WAE3D,IAAIE,EAAUC,GAAQ,WACpB,OAAON,EAAMK,QAAQE,QAAO,SAACC,GAAI,OAAMA,EAAKC,SAC9C,GAAG,CAACT,EAAMK,UAEVA,EAAUA,EAAQK,KAAI,SAACF,GACrB,OAAAG,EAAA,CAASC,IAAKC,KAAcL,EAC9B,IAEA,OACEM,EAACC,EAAY,CACXC,OAAQhB,EAAMgB,QAAU,EACxBC,SAAUjB,EAAMiB,SAChBC,KAAK,QACLf,UAAWA,EACXD,MAAOA,EAAMiB,SAEZd,EAAQK,KAAI,SAACF,GACZ,OACEM,EAACC,EAAaK,KAAI,CAAgBC,MAAOb,EAAKa,MAAOC,KAAMd,EAAKc,KAAKH,SAClEX,EAAKe,OADgBf,EAAKI,SAOvC"}
@@ -1 +1 @@
1
- .form-item-label-70.ant-form-item .ant-form-item-label{width:70px!important}.form-item-label-80.ant-form-item .ant-form-item-label{width:80px!important}.form-item-label-90.ant-form-item .ant-form-item-label{width:90px!important}.form-item-label-100.ant-form-item .ant-form-item-label{width:100px!important}.form-item-label-110.ant-form-item .ant-form-item-label{width:110px!important}.form-item-label-120.ant-form-item .ant-form-item-label{width:120px!important}.form-item-label-130.ant-form-item .ant-form-item-label{width:130px!important}.form-item-label-140.ant-form-item .ant-form-item-label{width:140px!important}.form-item-label-150.ant-form-item .ant-form-item-label{width:150px!important}.form-item-label-160.ant-form-item .ant-form-item-label{width:160px!important}.form-item-label-170.ant-form-item .ant-form-item-label{width:170px!important}.form-item-label-180.ant-form-item .ant-form-item-label{width:180px!important}.form-item-label-190.ant-form-item .ant-form-item-label{width:190px!important}.form-item-label-200.ant-form-item .ant-form-item-label{width:200px!important}.form-item-label-auto.ant-form-item .ant-form-item-label{width:auto!important}.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!important}.form-label-80 .ant-form-item-label{width:80px!important}.form-label-90 .ant-form-item-label{width:90px!important}.form-label-100 .ant-form-item-label{width:100px!important}.form-label-110 .ant-form-item-label{width:110px!important}.form-label-120 .ant-form-item-label{width:120px!important}.form-label-130 .ant-form-item-label{width:130px!important}.form-label-140 .ant-form-item-label{width:140px!important}.form-label-150 .ant-form-item-label{width:150px!important}.form-label-160 .ant-form-item-label{width:160px!important}.form-label-170 .ant-form-item-label{width:170px!important}.form-label-180 .ant-form-item-label{width:180px!important}.form-label-190 .ant-form-item-label{width:190px!important}.form-label-200 .ant-form-item-label{width:200px!important}.form-label-auto .ant-form-item-label{width:auto!important}.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 .ant-form-item-row{flex-direction:column}.form-label-value-vertical .ant-form-item .ant-form-item-label{text-align:left;width:100%}.form-label-value-vertical .ant-form-item .ant-form-item-control{flex:initial}
1
+ .form-item-label-70.ant-form-item .ant-form-item-label{width:70px!important}.form-item-label-80.ant-form-item .ant-form-item-label{width:80px!important}.form-item-label-90.ant-form-item .ant-form-item-label{width:90px!important}.form-item-label-100.ant-form-item .ant-form-item-label{width:100px!important}.form-item-label-110.ant-form-item .ant-form-item-label{width:110px!important}.form-item-label-120.ant-form-item .ant-form-item-label{width:120px!important}.form-item-label-130.ant-form-item .ant-form-item-label{width:130px!important}.form-item-label-140.ant-form-item .ant-form-item-label{width:140px!important}.form-item-label-150.ant-form-item .ant-form-item-label{width:150px!important}.form-item-label-160.ant-form-item .ant-form-item-label{width:160px!important}.form-item-label-170.ant-form-item .ant-form-item-label{width:170px!important}.form-item-label-180.ant-form-item .ant-form-item-label{width:180px!important}.form-item-label-190.ant-form-item .ant-form-item-label{width:190px!important}.form-item-label-200.ant-form-item .ant-form-item-label{width:200px!important}.form-item-label-auto.ant-form-item .ant-form-item-label{width:auto!important}.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!important}.form-label-80 .ant-form-item-label{width:80px!important}.form-label-90 .ant-form-item-label{width:90px!important}.form-label-100 .ant-form-item-label{width:100px!important}.form-label-110 .ant-form-item-label{width:110px!important}.form-label-120 .ant-form-item-label{width:120px!important}.form-label-130 .ant-form-item-label{width:130px!important}.form-label-140 .ant-form-item-label{width:140px!important}.form-label-150 .ant-form-item-label{width:150px!important}.form-label-160 .ant-form-item-label{width:160px!important}.form-label-170 .ant-form-item-label{width:170px!important}.form-label-180 .ant-form-item-label{width:180px!important}.form-label-190 .ant-form-item-label{width:190px!important}.form-label-200 .ant-form-item-label{width:200px!important}.form-label-auto .ant-form-item-label{width:auto!important}.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 .ant-form-item-row{flex-direction:column}.form-label-value-vertical .ant-form-item .ant-form-item-label{text-align:left;width:100%}.form-label-value-vertical .ant-form-item .ant-form-item-control{flex:initial}.form-formitem-gap-15{margin-bottom:-15px}.form-formitem-gap-15 .ant-form-item{margin:0 0 15px}.form-formitem-gap-8{margin-bottom:-8px}.form-formitem-gap-8 .ant-form-item{margin:0 0 8px}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- var l={label_width_70:"form-label-70",label_width_80:"form-label-80",label_width_90:"form-label-90",label_width_100:"form-label-100",label_width_110:"form-label-110",label_width_120:"form-label-120",label_width_130:"form-label-130",label_width_140:"form-label-140",label_width_150:"form-label-150",label_width_160:"form-label-160",label_width_170:"form-label-170",label_width_180:"form-label-180",label_width_190:"form-label-190",label_width_200:"form-label-200",label_width_auto:"form-label-auto",label_align_left:"form-label-align-left",label_align_right:"form-label-align-right",label_value_vertical:"form-label-value-vertical"};var e={label_width_70:"form-item-label-70",label_width_80:"form-item-label-80",label_width_90:"form-item-label-90",label_width_100:"form-item-label-100",label_width_110:"form-item-label-110",label_width_120:"form-item-label-120",label_width_130:"form-item-label-130",label_width_140:"form-item-label-140",label_width_150:"form-item-label-150",label_width_160:"form-item-label-160",label_width_170:"form-item-label-170",label_width_180:"form-item-label-180",label_width_190:"form-item-label-190",label_width_200:"form-item-label-200",label_width_auto:"form-item-label-auto",label_align_left:"form-item-label-align-left",label_align_right:"form-item-label-align-right",label_value_vertical:"form-item-label-value-vertical"};var a={form:l,formItem:e};export{a as preDefinedClassName};
4
+ var l={label_width_70:"form-label-70",label_width_80:"form-label-80",label_width_90:"form-label-90",label_width_100:"form-label-100",label_width_110:"form-label-110",label_width_120:"form-label-120",label_width_130:"form-label-130",label_width_140:"form-label-140",label_width_150:"form-label-150",label_width_160:"form-label-160",label_width_170:"form-label-170",label_width_180:"form-label-180",label_width_190:"form-label-190",label_width_200:"form-label-200",label_width_auto:"form-label-auto",label_align_left:"form-label-align-left",label_align_right:"form-label-align-right",label_value_vertical:"form-label-value-vertical",formItemGap15:"form-formitem-gap-15",formItemGap8:"form-formitem-gap-8"};var e={label_width_70:"form-item-label-70",label_width_80:"form-item-label-80",label_width_90:"form-item-label-90",label_width_100:"form-item-label-100",label_width_110:"form-item-label-110",label_width_120:"form-item-label-120",label_width_130:"form-item-label-130",label_width_140:"form-item-label-140",label_width_150:"form-item-label-150",label_width_160:"form-item-label-160",label_width_170:"form-item-label-170",label_width_180:"form-item-label-180",label_width_190:"form-item-label-190",label_width_200:"form-item-label-200",label_width_auto:"form-item-label-auto",label_align_left:"form-item-label-align-left",label_align_right:"form-item-label-align-right",label_value_vertical:"form-item-label-value-vertical"};var a={form:l,formItem:e};export{a as preDefinedClassName};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/pre-defined-class-name/form/index.tsx","@flatbiz/antd/src/pre-defined-class-name/index.ts"],"sourcesContent":["import './style.less';\n/**\n * 使用在Form组件上,预定义form-item label宽度\n */\nexport const formClassName = {\n label_width_70: 'form-label-70',\n label_width_80: 'form-label-80',\n label_width_90: 'form-label-90',\n label_width_100: 'form-label-100',\n label_width_110: 'form-label-110',\n label_width_120: 'form-label-120',\n label_width_130: 'form-label-130',\n label_width_140: 'form-label-140',\n label_width_150: 'form-label-150',\n label_width_160: 'form-label-160',\n label_width_170: 'form-label-170',\n label_width_180: 'form-label-180',\n label_width_190: 'form-label-190',\n label_width_200: 'form-label-200',\n label_width_auto: 'form-label-auto',\n label_align_left: 'form-label-align-left',\n label_align_right: 'form-label-align-right',\n label_value_vertical: 'form-label-value-vertical',\n};\n\n/**\n * 使用在Form.Item组件上,预定义form-item label宽度\n */\nexport const formItemClassName = {\n label_width_70: 'form-item-label-70',\n label_width_80: 'form-item-label-80',\n label_width_90: 'form-item-label-90',\n label_width_100: 'form-item-label-100',\n label_width_110: 'form-item-label-110',\n label_width_120: 'form-item-label-120',\n label_width_130: 'form-item-label-130',\n label_width_140: 'form-item-label-140',\n label_width_150: 'form-item-label-150',\n label_width_160: 'form-item-label-160',\n label_width_170: 'form-item-label-170',\n label_width_180: 'form-item-label-180',\n label_width_190: 'form-item-label-190',\n label_width_200: 'form-item-label-200',\n label_width_auto: 'form-item-label-auto',\n label_align_left: 'form-item-label-align-left',\n label_align_right: 'form-item-label-align-right',\n label_value_vertical: 'form-item-label-value-vertical',\n};\n","import { formClassName, formItemClassName } from './form';\n\n/**\n * 预定义className\n * ```\n * form: 使用在Form组件上,设置form-item label宽度\n * formItem: 使用在Form.Item组件上,设置form-item label宽度\n * ```\n */\nexport const preDefinedClassName = {\n form: formClassName,\n formItem: formItemClassName,\n};\n"],"names":["formClassName","label_width_70","label_width_80","label_width_90","label_width_100","label_width_110","label_width_120","label_width_130","label_width_140","label_width_150","label_width_160","label_width_170","label_width_180","label_width_190","label_width_200","label_width_auto","label_align_left","label_align_right","label_value_vertical","formItemClassName","preDefinedClassName","form","formItem"],"mappings":";AAIO,IAAMA,EAAgB,CAC3BC,eAAgB,gBAChBC,eAAgB,gBAChBC,eAAgB,gBAChBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,iBAAkB,kBAClBC,iBAAkB,wBAClBC,kBAAmB,yBACnBC,qBAAsB,6BAMjB,IAAMC,EAAoB,CAC/BlB,eAAgB,qBAChBC,eAAgB,qBAChBC,eAAgB,qBAChBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,iBAAkB,uBAClBC,iBAAkB,6BAClBC,kBAAmB,8BACnBC,qBAAsB,kCCrCjB,IAAME,EAAsB,CACjCC,KAAMrB,EACNsB,SAAUH"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/pre-defined-class-name/form/index.tsx","@flatbiz/antd/src/pre-defined-class-name/index.ts"],"sourcesContent":["import './style.less';\n/**\n * 使用在Form组件上,预定义form-item label宽度\n */\nexport const formClassName = {\n label_width_70: 'form-label-70',\n label_width_80: 'form-label-80',\n label_width_90: 'form-label-90',\n label_width_100: 'form-label-100',\n label_width_110: 'form-label-110',\n label_width_120: 'form-label-120',\n label_width_130: 'form-label-130',\n label_width_140: 'form-label-140',\n label_width_150: 'form-label-150',\n label_width_160: 'form-label-160',\n label_width_170: 'form-label-170',\n label_width_180: 'form-label-180',\n label_width_190: 'form-label-190',\n label_width_200: 'form-label-200',\n label_width_auto: 'form-label-auto',\n label_align_left: 'form-label-align-left',\n label_align_right: 'form-label-align-right',\n label_value_vertical: 'form-label-value-vertical',\n /** formItem之间的垂直间距为15 */\n formItemGap15: 'form-formitem-gap-15',\n /** formItem之间的垂直间距为8 */\n formItemGap8: 'form-formitem-gap-8',\n};\n/**\n * 使用在Form.Item组件上,预定义form-item label宽度\n */\nexport const formItemClassName = {\n label_width_70: 'form-item-label-70',\n label_width_80: 'form-item-label-80',\n label_width_90: 'form-item-label-90',\n label_width_100: 'form-item-label-100',\n label_width_110: 'form-item-label-110',\n label_width_120: 'form-item-label-120',\n label_width_130: 'form-item-label-130',\n label_width_140: 'form-item-label-140',\n label_width_150: 'form-item-label-150',\n label_width_160: 'form-item-label-160',\n label_width_170: 'form-item-label-170',\n label_width_180: 'form-item-label-180',\n label_width_190: 'form-item-label-190',\n label_width_200: 'form-item-label-200',\n label_width_auto: 'form-item-label-auto',\n label_align_left: 'form-item-label-align-left',\n label_align_right: 'form-item-label-align-right',\n label_value_vertical: 'form-item-label-value-vertical',\n};\n","import { formClassName, formItemClassName } from './form';\n\n/**\n * 预定义className\n * ```\n * form: 使用在Form组件上,设置form-item label宽度\n * formItem: 使用在Form.Item组件上,设置form-item label宽度\n * ```\n */\nexport const preDefinedClassName = {\n form: formClassName,\n formItem: formItemClassName,\n};\n"],"names":["formClassName","label_width_70","label_width_80","label_width_90","label_width_100","label_width_110","label_width_120","label_width_130","label_width_140","label_width_150","label_width_160","label_width_170","label_width_180","label_width_190","label_width_200","label_width_auto","label_align_left","label_align_right","label_value_vertical","formItemGap15","formItemGap8","formItemClassName","preDefinedClassName","form","formItem"],"mappings":";AAIO,IAAMA,EAAgB,CAC3BC,eAAgB,gBAChBC,eAAgB,gBAChBC,eAAgB,gBAChBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,iBAAkB,kBAClBC,iBAAkB,wBAClBC,kBAAmB,yBACnBC,qBAAsB,4BAEtBC,cAAe,uBAEfC,aAAc,uBAKT,IAAMC,EAAoB,CAC/BpB,eAAgB,qBAChBC,eAAgB,qBAChBC,eAAgB,qBAChBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,iBAAkB,uBAClBC,iBAAkB,6BAClBC,kBAAmB,8BACnBC,qBAAsB,kCCxCjB,IAAMI,EAAsB,CACjCC,KAAMvB,EACNwB,SAAUH"}
@@ -1 +1 @@
1
- .simple-layout{background-color:#fff;border-radius:6px;padding:15px}.simple-layout .ant-form{margin-bottom:-15px}.simple-layout .ant-form-item{margin:0 0 15px}.simple-layout .ant-form-item-label{width:82px}.simple-layout .ant-form-item-label.ant-col-auto{width:auto}.simple-layout .ant-table-thead>tr>th{background:#f6f6f6}.simple-layout .ant-descriptions-item{padding-bottom:10px}.simple-layout .ant-descriptions-item-label{color:#999}.simple-layout .ant-table-pagination.ant-pagination{margin:16px 0 0}.simple-layout .simple-layout-content{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 .ant-form{margin-bottom:-8px}.simple-layout-small.simple-layout .ant-form-item{margin:0 0 8px}
1
+ .simple-layout{background-color:#fff;border-radius:6px;padding:15px}.simple-layout .ant-form{margin-bottom:-15px}.simple-layout .ant-form-item{margin:0 0 15px}.simple-layout .ant-form-item-label{width:82px}.simple-layout .ant-form-item-label.ant-col-auto{width:auto}.simple-layout .ant-table-thead>tr>th{background:#f6f6f6}.simple-layout .ant-descriptions-item{padding-bottom:10px}.simple-layout .ant-descriptions-item-label{color:#999}.simple-layout .ant-table-pagination.ant-pagination{margin:16px 0 0}.simple-layout .simple-layout-content{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 .ant-form{margin-bottom:-8px}.simple-layout-small.simple-layout .ant-form-item{margin:0 0 8px}
@@ -3,5 +3,5 @@ import './../request-status/index.css';
3
3
  import './../fba-hooks/index.css';
4
4
  import './index.css';
5
5
  /*! @flatjs/forge MIT @flatbiz/antd */
6
- import e from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import t from"@ant-design/icons/es/icons/CaretDownFilled";import{isString as l}from"@dimjs/lang/cjs/is-string";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{extend as a}from"@dimjs/utils/cjs/extend";import{hooks as i}from"@wove/react/cjs/hooks";import{a as u,_ as o}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{treeToTiledArray as s,treeLeafParentsArray as c,toArray as f,isUndefinedOrNull as d,treeToArray as v,arrayFind as m,valueIsEqual as p,isNumber as h,getValueOrDefault as S}from"@flatbiz/utils";import{TreeSelect as b,Button as g}from"antd";import{useState as C,useRef as y,useMemo as L,createElement as w}from"react";import{Model as k}from"@dimjs/model-react";import{usePrevious as q}from"ahooks";import{dequal as R}from"dequal";import{fbaHooks as A}from"../fba-hooks/index.js";import{RequestStatus as T}from"../request-status/index.js";import{isObject as j}from"@dimjs/lang/cjs/is-object";import{jsx as x}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";var E={treeSelectorList:[],treeSelectorTiledArray:[],queryIsEmpty:false};var N={actions:{setSelectBoxList:function e(r){return function(e){e.treeSelectorList=r.treeSelectorList||[];e.treeSelectorTiledArray=r.treeSelectorTiledArray||[];e.requestStatus="request-success"}},resetSelectBoxList:function e(){return function(e){e.treeSelectorList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r}}},state:E};var I={};var D=function e(r){if(!I[r]){I[r]=k(N)}return I[r]};var P=function e(r,t,l){if(!n(t)||t.length===0)return[];var a=s(t,l);return c(r,a,true,{value:"value",parentValue:"parentValue"})};var V=function e(r,t){var l=f(r);l=l.map((function(e){if(j(e))return e[t.value];return e}));return l};var B=["serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","treeSelectorList","requestMessageConfig","modelKey","value","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","selectedParentCheckedAllChildrenList","fieldNames","onChange","onChangeHandle","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys"];var H=function s(c){var k=c.serviceConfig,j=c.effectDependencyList,E=c.onTreeSelectorListChange,N=c.onTreeSelectorRequestError,I=c.treeSelectorList,H=c.requestMessageConfig,K=c.modelKey,O=c.value,F=c.labelInValue,W=c.labelInValueFieldNames,_=c.onTreeItemDataAdapter,M=c.selectedParentCheckedAllChildrenList,z=M===void 0?true:M,G=c.fieldNames,J=c.onChange,Q=c.onChangeHandle,U=c.treeDefaultExpandAll,X=c.showAllOption,Y=c.initRootExpand,Z=c.treeDefaultExpandedKeys,$=u(c,B);var ee=c.hasOwnProperty("treeSelectorList");var re=k||{};var te=j||[];var le=A.useSafeState(false),ne=le[0],ae=le[1];var ie=C(),ue=ie[0],oe=ie[1];var se=D(K).useStore(),ce=se[0],fe=se[1];var de="request-progress-"+K;var ve=$.treeCheckable;var me=y(true);var pe=L((function(){if($.treeCheckStrictly)return true;return F}),[F,$.treeCheckStrictly]);var he=L((function(){return o({label:"label",value:"value",children:"children",disabled:"disabled"},G)}),[G]);var Se=L((function(){return o({label:"label",value:"value"},W)}),[W]);var be=L((function(){if(X){var e=X===true;return{label:e?"全部":X.label,value:e?"":X.value}}return null}),[X]);var ge=y(true);var Ce=q(O);A.useEffectCustom((function(){if(ce.treeSelectorList.length>0){if(me.current&&d(O)){me.current=false;if(Z){oe(Z)}else if(U){var e=v(ce.treeSelectorList,he.children).map((function(e){return e[he.value]}));oe(e);return}else if(Y&&ce.treeSelectorList.length){oe([ce.treeSelectorList[0][he.value]]);return}}if(d(O)&&ge.current)return;ge.current=false;if(O!==Ce){var r=V(O,Se);var t=Ae(r,true);oe(Array.from(new Set(t)))}}}),[O,ce.treeSelectorList]);var ye=function e(r){return r===""||d(r)};var Le=function e(r){var t=re.onRequestResultAdapter?re.onRequestResultAdapter(r):r;return t};var we=i.useCallbackRef((function(){return new Promise((function(e,r){var t,l,n,i,u;if(!re.onRequest){return r(new Error("onRequest 调用接口服务不能为空"))}t=re.requiredParamsKeys||[];l=a({},re.params);n=t.find((function(e){return ye(l[e])}));if(n){void fe.changeRequestStatus("no-dependencies-params");console.warn("TreeSelectorWrapper组件:参数:"+t.join("、")+"不能为空");return e()}var o=function(){try{return e()}catch(e){return r(e)}};var s=function(e){try{ae(false);window[de]=false;void fe.changeRequestStatus("request-error");N==null?void 0:N(e);return o()}catch(e){return r(e)}};try{ae(true);window[de]=true;void fe.changeRequestStatus("request-progress");return Promise.resolve(re.onRequest==null?void 0:re.onRequest(l)).then((function(e){try{i=e;u=Le(i);ae(false);window[de]=false;ke(u||[]);return o()}catch(e){return s(e)}}),s)}catch(e){s(e)}}))}));i.useCustomCompareEffect((function(){if(ee)return;if(Boolean(te.length)){ke([]);void we();return}var e=D(K).getState();if(e.requestStatus==="request-success"){return}if(!window[de]){void we();return}}),te,R);var ke=i.useCallbackRef((function(e){var r;if((e==null?void 0:e.length)===0&&ce.treeSelectorList.length===0){void fe.setSelectBoxList({treeSelectorList:[],treeSelectorTiledArray:[]});E==null?void 0:E([]);return}var t=be?(r={},r[he.label]=be.label,r[he.value]=be.value,r):undefined;var l=X?[t].concat(e):e;void fe.setSelectBoxList({treeSelectorList:l,treeSelectorTiledArray:v(l||[],he.children)});E==null?void 0:E(e)}));A.useEffectCustom((function(){if(ee){ke(I||[])}}),[I]);var qe=i.useCallbackRef((function(e){oe(e)}));var Re=i.useCallbackRef((function(){void we()}));var Ae=function e(r,t){var l=[];r.forEach((function(e){if(!t&&ue!=null&&ue.includes(e))return;var r=P(e,ce.treeSelectorList,he);l=l.concat(r.map((function(e){return e.value})))}));return l};var Te=i.useCallbackRef((function(e){if(!e)return undefined;return{label:e==null?void 0:e[he.label],value:e==null?void 0:e[he.value],children:e==null?void 0:e[he.children],disabled:e==null?void 0:e["disabled"]}}));var je=i.useCallbackRef((function(e){if(!e)return undefined;return{label:e==null?void 0:e[Se.label],value:e==null?void 0:e[Se.value],disabled:e==null?void 0:e["disabled"]}}));var xe=i.useCallbackRef((function(e,r){var t=V(e,{value:"value",label:"label"});var l=[];t.forEach((function(e){var r=m(ce.treeSelectorTiledArray,e,he.value);if(!r)return;l.push(r)}));if($.treeCheckStrictly&&z){var a=Te(r.checked?m(ce.treeSelectorTiledArray,r.triggerValue,he.value):null);if(a&&n(a.children)&&a.children.length>0){var i=v(a.children,he.children);var u=i.filter((function(e){var r=Te(e);if(r!=null&&r.disabled)return false;if(m(l,r==null?void 0:r.value,he.value))return false;return true}));l=l.concat(u)}}var o=[];if($.treeCheckable){if($.treeCheckStrictly===true||p($.showCheckedStrategy,["SHOW_ALL","SHOW_PARENT"])){o=l}else{o=l.filter((function(e){var r=e[he.children];return!(n(r)&&r.length>0)}))}}else{o=l}return{realTreeNodeList:o,realTreeNodeValueList:V(o,he)}}));var Ee=i.useCallbackRef((function(e,r,t){J==null?void 0:J(e,r,t);Q==null?void 0:Q(e,r,t)}));var Ne=i.useCallbackRef((function(e,r,t){var l=xe(e,t),n=l.realTreeNodeList,a=l.realTreeNodeValueList;if($.treeCheckable){oe((function(e){var r=Ae(a).concat(e||[]);return Array.from(new Set(r))}))}if(pe){var i=n.map((function(e){var r;var t=Te(e);return r={},r[Se.label]=t==null?void 0:t.label,r[Se.value]=t==null?void 0:t.value,r}));if(ve){Ee==null?void 0:Ee(i,n,t)}else{Ee==null?void 0:Ee(i[0],n[0],t)}}else{if(ve){Ee==null?void 0:Ee(a,n,t)}else{Ee==null?void 0:Ee(a[0],n[0],t)}}}));var Ie=i.useCallbackRef((function(e){if(!e)return null;return e.map((function(e){var r=(_==null?void 0:_(o({},e)))||e;var t=r[he.children];var l=r[he.value];var n=r[he.label];var a=r[he.disabled]?r[he.disabled]:r.disabled;return w(b.TreeNode,o({},r,{disabled:a,value:l,title:n,key:""+l}),t&&t.length>0&&Ie(t))}))}));var De=L((function(){var e=f(O);if(e.length==0)return[];if($.treeCheckStrictly){if(ce.treeSelectorTiledArray.length===0){return e.map((function(e){return{label:e,value:e}}))}return e.map((function(e){var r,t;var n;var a;if(l(e)||h(e)){var i=m(ce.treeSelectorTiledArray,e,he.value);n=Te(i);a=e}else{n=je(e)}return{label:S((r=n)==null?void 0:r.label,a),value:S((t=n)==null?void 0:t.value,a)}}))}return V(O,Se)}),[O,$.treeCheckStrictly,Se,ce.treeSelectorTiledArray,he.value,Te,je]);var Pe=L((function(){if(n(De)&&De.length===0){return undefined}return ve?De:De[0]}),[ve,De]);return x(b,o({dropdownStyle:{maxHeight:400,overflow:"auto"},showSearch:true,treeLine:{showLeafIcon:false},treeNodeFilterProp:"title",switcherIcon:x(t,{}),showArrow:true},$,{className:r("v-tree-select-wrapper",$.className),popupClassName:r("v-tree-select-wrapper-dropdown",$.popupClassName),onChange:Ne,treeExpandedKeys:ue,value:Pe,loading:ne,dropdownMatchSelectWidth:false,onTreeExpand:qe,style:o({width:"100%"},$.style),suffixIcon:ce.requestStatus==="request-error"?x(e,{spin:ne,onClick:Re}):undefined,notFoundContent:x(T,{status:ce.requestStatus,messageConfig:H,loading:ne,errorButton:x(g,{type:"primary",onClick:Re,children:"重新获取数据"})}),children:Ie(ce.treeSelectorList)}))};export{H as TreeSelectorWrapper};
6
+ import e from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import t from"@ant-design/icons/es/icons/CaretDownFilled";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{extend as l}from"@dimjs/utils/cjs/extend";import{hooks as a}from"@wove/react/cjs/hooks";import{a as i,_ as u}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{treeToTiledArray as o,treeLeafParentsArray as s,toArray as c,isUndefinedOrNull as f,treeToArray as d,arrayFind as v,valueIsEqual as m,getValueOrDefault as h}from"@flatbiz/utils";import{TreeSelect as p,Button as S}from"antd";import{useState as b,useRef as g,useMemo as C,createElement as y}from"react";import{Model as L}from"@dimjs/model-react";import{usePrevious as w}from"ahooks";import{dequal as q}from"dequal";import{fbaHooks as k}from"../fba-hooks/index.js";import{RequestStatus as R}from"../request-status/index.js";import{isObject as A}from"@dimjs/lang/cjs/is-object";import{jsx as T}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";var x={treeSelectorList:[],treeSelectorTiledArray:[],queryIsEmpty:false};var E={actions:{setSelectBoxList:function e(r){return function(e){e.treeSelectorList=r.treeSelectorList||[];e.treeSelectorTiledArray=r.treeSelectorTiledArray||[];e.requestStatus="request-success"}},resetSelectBoxList:function e(){return function(e){e.treeSelectorList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r}}},state:x};var j={};var N=function e(r){if(!j[r]){j[r]=L(E)}return j[r]};var D=function e(r,t,l){if(!n(t)||t.length===0)return[];var a=o(t,l);return s(r,a,true,{value:"value",parentValue:"parentValue"})};var I=function e(r,t){var n=c(r);n=n.map((function(e){if(A(e))return e[t.value];return e}));return n};var P=["serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","treeSelectorList","requestMessageConfig","modelKey","value","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","selectedParentCheckedAllChildrenList","fieldNames","onChange","onChangeHandle","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys"];var V=function o(s){var c=s.serviceConfig,L=s.effectDependencyList,A=s.onTreeSelectorListChange,x=s.onTreeSelectorRequestError,E=s.treeSelectorList,j=s.requestMessageConfig,V=s.modelKey,B=s.value,H=s.labelInValue,K=s.labelInValueFieldNames,O=s.onTreeItemDataAdapter,F=s.selectedParentCheckedAllChildrenList,W=F===void 0?true:F,_=s.fieldNames,M=s.onChange,z=s.onChangeHandle,G=s.treeDefaultExpandAll,J=s.showAllOption,Q=s.initRootExpand,U=s.treeDefaultExpandedKeys,X=i(s,P);var Y=s.hasOwnProperty("treeSelectorList");var Z=c||{};var $=L||[];var ee=k.useSafeState(false),re=ee[0],te=ee[1];var ne=b(),le=ne[0],ae=ne[1];var ie=N(V).useStore(),ue=ie[0],oe=ie[1];var se="request-progress-"+V;var ce=X.treeCheckable;var fe=g(true);var de=C((function(){if(X.treeCheckStrictly)return true;return H}),[H,X.treeCheckStrictly]);var ve=C((function(){return u({label:"label",value:"value",children:"children",disabled:"disabled"},_)}),[_]);var me=C((function(){return u({label:"label",value:"value"},K)}),[K]);var he=C((function(){if(J){var e=J===true;return{label:e?"全部":J.label,value:e?"":J.value}}return null}),[J]);var pe=g(true);var Se=w(B);k.useEffectCustom((function(){if(ue.treeSelectorList.length>0){if(fe.current&&f(B)){fe.current=false;if(U){ae(U)}else if(G){var e=d(ue.treeSelectorList,ve.children).map((function(e){return e[ve.value]}));ae(e);return}else if(Q&&ue.treeSelectorList.length){ae([ue.treeSelectorList[0][ve.value]]);return}}if(f(B)&&pe.current)return;pe.current=false;if(B!==Se){var r=I(B,me);var t=qe(r,true);ae(Array.from(new Set(t)))}}}),[B,ue.treeSelectorList]);var be=function e(r){return r===""||f(r)};var ge=function e(r){var t=Z.onRequestResultAdapter?Z.onRequestResultAdapter(r):r;return t};var Ce=a.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,u;if(!Z.onRequest){return r(new Error("onRequest 调用接口服务不能为空"))}t=Z.requiredParamsKeys||[];n=l({},Z.params);a=t.find((function(e){return be(n[e])}));if(a){void oe.changeRequestStatus("no-dependencies-params");console.warn("TreeSelectorWrapper组件:参数:"+t.join("、")+"不能为空");return e()}var o=function(){try{return e()}catch(e){return r(e)}};var s=function(e){try{te(false);window[se]=false;void oe.changeRequestStatus("request-error");x==null?void 0:x(e);return o()}catch(e){return r(e)}};try{te(true);window[se]=true;void oe.changeRequestStatus("request-progress");return Promise.resolve(Z.onRequest==null?void 0:Z.onRequest(n)).then((function(e){try{i=e;u=ge(i);te(false);window[se]=false;ye(u||[]);return o()}catch(e){return s(e)}}),s)}catch(e){s(e)}}))}));a.useCustomCompareEffect((function(){if(Y)return;if(Boolean($.length)){ye([]);void Ce();return}var e=N(V).getState();if(e.requestStatus==="request-success"){return}if(!window[se]){void Ce();return}}),$,q);var ye=a.useCallbackRef((function(e){var r;if((e==null?void 0:e.length)===0&&ue.treeSelectorList.length===0){void oe.setSelectBoxList({treeSelectorList:[],treeSelectorTiledArray:[]});A==null?void 0:A([]);return}var t=he?(r={},r[ve.label]=he.label,r[ve.value]=he.value,r):undefined;var n=J?[t].concat(e):e;void oe.setSelectBoxList({treeSelectorList:n,treeSelectorTiledArray:d(n||[],ve.children)});A==null?void 0:A(e)}));k.useEffectCustom((function(){if(Y){ye(E||[])}}),[E]);var Le=a.useCallbackRef((function(e){ae(e)}));var we=a.useCallbackRef((function(){void Ce()}));var qe=function e(r,t){var n=[];r.forEach((function(e){if(!t&&le!=null&&le.includes(e))return;var r=D(e,ue.treeSelectorList,ve);n=n.concat(r.map((function(e){return e.value})))}));return n};var ke=a.useCallbackRef((function(e){if(!e)return undefined;return{label:e==null?void 0:e[ve.label],value:e==null?void 0:e[ve.value],children:e==null?void 0:e[ve.children],disabled:e==null?void 0:e["disabled"]}}));var Re=a.useCallbackRef((function(e,r){var t=I(e,{value:"value",label:"label"});var l=[];t.forEach((function(e){var r=v(ue.treeSelectorTiledArray,e,ve.value);if(!r)return;l.push(r)}));if(X.treeCheckStrictly&&W){var a=ke(r.checked?v(ue.treeSelectorTiledArray,r.triggerValue,ve.value):null);if(a&&n(a.children)&&a.children.length>0){var i=d(a.children,ve.children);var u=i.filter((function(e){var r=ke(e);if(r!=null&&r.disabled)return false;if(v(l,r==null?void 0:r.value,ve.value))return false;return true}));l=l.concat(u)}}var o=[];if(X.treeCheckable){if(X.treeCheckStrictly===true||m(X.showCheckedStrategy,["SHOW_ALL","SHOW_PARENT"])){o=l}else{o=l.filter((function(e){var r=e[ve.children];return!(n(r)&&r.length>0)}))}}else{o=l}return{realTreeNodeList:o,realTreeNodeValueList:I(o,ve)}}));var Ae=a.useCallbackRef((function(e,r,t){M==null?void 0:M(e,r,t);z==null?void 0:z(e,r,t)}));var Te=a.useCallbackRef((function(e,r,t){var n=Re(e,t),l=n.realTreeNodeList,a=n.realTreeNodeValueList;if(X.treeCheckable){ae((function(e){var r=qe(a).concat(e||[]);return Array.from(new Set(r))}))}if(de){var i=l.map((function(e){var r;var t=ke(e);return r={},r[me.label]=t==null?void 0:t.label,r[me.value]=t==null?void 0:t.value,r.rawData=e,r}));if(ce){Ae==null?void 0:Ae(i,l,t)}else{Ae==null?void 0:Ae(i[0],l[0],t)}}else{if(ce){Ae==null?void 0:Ae(a,l,t)}else{Ae==null?void 0:Ae(a[0],l[0],t)}}}));var xe=a.useCallbackRef((function(e){if(!e)return null;return e.map((function(e){var r=(O==null?void 0:O(u({},e)))||e;var t=r[ve.children];var n=r[ve.value];var l=r[ve.label];var a=r[ve.disabled]?r[ve.disabled]:r.disabled;return y(p.TreeNode,u({},r,{disabled:a,value:n,title:l,key:""+n}),t&&t.length>0&&xe(t))}))}));var Ee=C((function(){var e=de?I(B,me):I(B,ve);if(e.length==0)return[];if(X.treeCheckStrictly){if(ue.treeSelectorTiledArray.length===0){return e.map((function(e){return{label:e,value:e}}))}return e.map((function(e){var r=v(ue.treeSelectorTiledArray,e,ve.value);var t=ke(r);return{label:h(t==null?void 0:t.label,e),value:h(t==null?void 0:t.value,e)}}))}return e}),[de,B,me,ve,X.treeCheckStrictly,ue.treeSelectorTiledArray,ke]);var je=C((function(){if(n(Ee)&&Ee.length===0){return undefined}return ce?Ee:Ee[0]}),[ce,Ee]);return T(p,u({dropdownStyle:{maxHeight:400,overflow:"auto"},showSearch:true,treeLine:{showLeafIcon:false},treeNodeFilterProp:"title",switcherIcon:T(t,{}),showArrow:true},X,{className:r("v-tree-select-wrapper",X.className),popupClassName:r("v-tree-select-wrapper-dropdown",X.popupClassName),onChange:Te,treeExpandedKeys:le,value:je,loading:re,dropdownMatchSelectWidth:false,onTreeExpand:Le,style:u({width:"100%"},X.style),suffixIcon:ue.requestStatus==="request-error"?T(e,{spin:re,onClick:we}):undefined,notFoundContent:T(R,{status:ue.requestStatus,messageConfig:j,loading:re,errorButton:T(S,{type:"primary",onClick:we,children:"重新获取数据"})}),children:xe(ue.treeSelectorList)}))};export{V as TreeSelectorWrapper};
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-selector-wrapper/model.ts","@flatbiz/antd/src/tree-selector-wrapper/utils.ts","@flatbiz/antd/src/tree-selector-wrapper/tree-selector-wrapper.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeSelectProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeSelectorList: TSetDefaultDefined<TreeSelectProps['treeData'], []>;\n treeSelectorTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setSelectBoxList: {\n treeSelectorList: ModelState['treeSelectorList'];\n treeSelectorTiledArray: ModelState['treeSelectorTiledArray'];\n };\n resetSelectBoxList: void;\n changeRequestStatus: TRequestStatus;\n};\n\nconst defaultState: ModelState = {\n treeSelectorList: [],\n treeSelectorTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeSelectorWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setSelectBoxList: (params) => {\n return (state) => {\n state.treeSelectorList = params.treeSelectorList || [];\n state.treeSelectorTiledArray = params.treeSelectorTiledArray || [];\n state.requestStatus = 'request-success';\n };\n },\n resetSelectBoxList: () => {\n return (state) => {\n state.treeSelectorList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n };\n },\n },\n state: defaultState,\n};\n\nconst treeSelectorWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeSelectorWrapperModel('key值').useStore();\n * ```\n */\nexport const treeSelectorWrapperModel = (key: string) => {\n if (!treeSelectorWrapperModels[key]) {\n treeSelectorWrapperModels[key] = Model(TreeSelectorWrapperModel);\n }\n return treeSelectorWrapperModels[key];\n};\n","import { isArray, isObject } from '@dimjs/lang';\nimport {\n isUndefinedOrNull,\n LabelValueItem,\n toArray,\n TPlainObject,\n treeLeafParentsArray,\n treeToTiledArray,\n} from '@flatbiz/utils';\nimport { TreeSelectProps } from 'antd';\nimport { dequal } from 'dequal';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: TreeSelectProps['fieldNames'],\n) => {\n if (!isArray(treeList) || treeList.length === 0) return [];\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nexport const getVauleList = (data, fieldNames: LabelValueItem<string>) => {\n let tempList = toArray<TPlainObject | string | number>(data);\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[fieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, fieldNames: LabelValueItem<string>) => {\n const list = getVauleList(data, fieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括 string、number、Array<string | number>、{ label: string, value: string | nuber }\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeSelectorWrapperValueDeepEqual = (\n value1: any,\n value2: any,\n fieldNames: LabelValueItem<string>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, fieldNames);\n const object2 = array2map(value2, fieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n","import { CaretDownFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray, isString } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport {\n isNumber,\n isUndefinedOrNull,\n TAny,\n toArray,\n TPlainObject,\n treeToArray,\n valueIsEqual,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, TreeSelect, TreeSelectProps } from 'antd';\nimport { DependencyList, useMemo, useRef, useState } from 'react';\nimport { treeSelectorWrapperModel } from './model';\nimport './style.less';\n\nimport { arrayFind, getValueOrDefault } from '@flatbiz/utils';\nimport { usePrevious } from 'ahooks';\nimport { dequal } from 'dequal';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\nimport { getExpandedKeys, getVauleList } from './utils';\n\ntype TreeSelectorWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeSelectorServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeSelectorWrapperProps = Omit<\n TreeSelectProps,\n | 'treeExpandedKeys'\n | 'treeData'\n | 'loading'\n | 'onTreeExpand'\n | 'onChange'\n | 'value'\n | 'fieldNames'\n | 'defaultValue'\n | 'treeDataSimpleMode'\n> & {\n modelKey: string;\n fieldNames?: { label?: string; value?: string; children?: string; disabled?: string };\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`treeSelectorList`后无效果\n */\n serviceConfig?: TreeSelectorServiceConfig;\n /**\n * 当设置treeSelectorList后,serviceConfig 将失效\n */\n treeSelectorList?: TreeSelectProps['treeData'];\n /**\n * treeSelectorList发生变更时触发\n */\n onTreeSelectorListChange?: (treeSelectorList?: TreeSelectProps['treeData']) => void;\n /**\n * 通过服务获取数据异常回调,当设置`treeSelectorList`后无效果\n */\n onTreeSelectorRequestError?: (error: Error) => void;\n /**\n * 添加全部选项\n * ```\n * 1. showAllOption = true,添加默认全部选项(value值为空字符串)\n * 2. 可自定义全部选项,例如:{ label: '全部', value: 'all' }\n * 3. 自定义字段会通过fieldNames转换后使用\n * 4. 多选操作时,最好不要设置全部选项\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /**\n * @deprecated 已过期,请使用onChange\n * 1. 当 treeCheckable = true && treeCheckStrictly = true,如果选择的数据中含有父节点,selectedValue、selectedList返回数据包含父节点\n * 2. 当 treeCheckable = true && treeCheckStrictly = false,selectedValue、selectedList返回的数据不包含父节点\n * 3. 当 treeCheckable = false,节点选择没有级联关系,selectedValue、selectedList返回的数据就是实际选择\n * 4. selectAllDataList 返回的数据都包含父节点\n * 5. 使用 onTreeItemAdapter 拼接label数据后,选中回填数据也是拼接后的\n * 6. triggerInfo 当前操作节点数据\n */\n onChangeHandle?: (\n selectedValue?: TreeSelectorWrapperValue,\n selectedData?: TPlainObject[] | TPlainObject,\n triggerInfo?: TPlainObject,\n ) => void;\n /**\n * 1. 当 treeCheckable = true && treeCheckStrictly = true,如果选择的数据中含有父节点,selectedValue、selectedList返回数据包含父节点\n * 2. 当 treeCheckable = true && treeCheckStrictly = false,selectedValue、selectedList返回的数据不包含父节点\n * 3. 当 treeCheckable = false,节点选择没有级联关系,selectedValue、selectedList返回的数据就是实际选择\n * 4. selectAllDataList 返回的数据都包含父节点\n * 5. 使用 onTreeItemAdapter 拼接label数据后,选中回填数据也是拼接后的\n * 6. triggerInfo 当前操作节点数据\n */\n onChange?: (\n selectedValue?: TreeSelectorWrapperValue,\n selectedData?: TPlainObject[] | TPlainObject,\n triggerInfo?: TPlainObject,\n ) => void;\n /**\n * tree item 数据适配器\n */\n onTreeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n // icon 无法实现、treeIcon不起作用4.20.0\n // showIcon?: boolean;\n // icon?: (data: TPlainObject) => ReactElement;\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?: TreeSelectorWrapperValue;\n\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * treeCheckStrictly = true模式下有效,点击父节点是否选中所有子节点,默认值:true\n */\n selectedParentCheckedAllChildrenList?: boolean;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n};\n\n// type TreeSelectorWrapperPropsInner = TreeSelectorWrapperProps & {\n// onChange?: (selectedValue?: TreeSelectorWrapperValue) => void;\n// };\n\n/**\n * 树选择器包装组件,由于过度封装,部分antd TreeSelect原始功能不支持,不满足情况的请使用antd TreeSelect实现\n * @param props\n * @returns\n * ```\n * 1. 当设置treeSelectorList属性后,serviceConfig、onTreeSelectorListChange将失效\n * 2. 父节点默认不返回,需要返回请设置showCheckedStrategy\n * ```\n */\nexport const TreeSelectorWrapper = (props: TreeSelectorWrapperProps) => {\n const {\n serviceConfig,\n effectDependencyList,\n onTreeSelectorListChange,\n onTreeSelectorRequestError,\n treeSelectorList,\n requestMessageConfig,\n modelKey,\n value,\n labelInValue: _labelInValue,\n labelInValueFieldNames,\n onTreeItemDataAdapter,\n selectedParentCheckedAllChildrenList = true,\n fieldNames,\n onChange,\n onChangeHandle,\n treeDefaultExpandAll,\n showAllOption,\n initRootExpand,\n treeDefaultExpandedKeys,\n ...otherProps\n } = props;\n /**\n * 不能使用key、defaultValue模式\n * 1. 勾选的和回填选中不相同情况,勾选后会渲染defaultValue模式后,弹框被关闭,操作体验存在问题\n */\n const hasTreeSelectorList = props.hasOwnProperty('treeSelectorList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>();\n const [state, actions] = treeSelectorWrapperModel(modelKey).useStore();\n const requestPreKey = `request-progress-${modelKey}`;\n const isMultiple = otherProps.treeCheckable;\n const responseFirstRef = useRef(true);\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n const labelInValue = useMemo(() => {\n if (otherProps.treeCheckStrictly) return true;\n return _labelInValue;\n }, [_labelInValue, otherProps.treeCheckStrictly]);\n\n const fieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', disabled: 'disabled', ...fieldNames };\n }, [fieldNames]);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n\n const allOptionConfig = useMemo(() => {\n if (showAllOption) {\n const isTrue = showAllOption === true;\n return {\n label: isTrue ? '全部' : showAllOption.label,\n value: isTrue ? '' : showAllOption.value,\n };\n }\n return null;\n }, [showAllOption]);\n\n const isFirstUseValueRef = useRef(true);\n\n const prevValue = usePrevious(value);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeSelectorList.length > 0) {\n if (responseFirstRef.current && isUndefinedOrNull(value)) {\n responseFirstRef.current = false;\n if (treeDefaultExpandedKeys) {\n setTreeExpandedKeys(treeDefaultExpandedKeys);\n } else if (treeDefaultExpandAll) {\n const allValues = treeToArray(state.treeSelectorList, fieldNamesMerge.children).map((item) => {\n return item[fieldNamesMerge.value];\n });\n setTreeExpandedKeys(allValues);\n return;\n } else if (initRootExpand && state.treeSelectorList.length) {\n setTreeExpandedKeys([state.treeSelectorList[0][fieldNamesMerge.value]]);\n return;\n }\n }\n if (isUndefinedOrNull(value) && isFirstUseValueRef.current) return;\n isFirstUseValueRef.current = false;\n if (value !== prevValue) {\n const valueList = getVauleList(value, labelInValueFieldNamesMerge);\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(expandedKeys)));\n }\n }\n }, [value, state.treeSelectorList]);\n\n const valueIsEmpty = (value: string | number) => {\n return value === '' || isUndefinedOrNull(value);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData;\n return respDataList as TPlainObject[];\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys || [];\n const params = extend({}, newServiceConfig.params);\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(`TreeSelectorWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n try {\n setLoading(true);\n window[requestPreKey] = true;\n void actions.changeRequestStatus('request-progress');\n const _respData = await newServiceConfig.onRequest?.(params);\n const respData = serviceResponseHandle(_respData) as TreeSelectProps['treeData'];\n setLoading(false);\n window[requestPreKey] = false;\n onChangeSelectorList(respData || []);\n } catch (error: any) {\n setLoading(false);\n window[requestPreKey] = false;\n void actions.changeRequestStatus('request-error');\n onTreeSelectorRequestError?.(error);\n }\n });\n\n hooks.useCustomCompareEffect(\n () => {\n if (hasTreeSelectorList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n // 内部主动清楚数据,被依赖的数据发生变更时,依赖组件数据清空\n onChangeSelectorList([]);\n void startDataSourceRequest();\n return;\n }\n const allState = treeSelectorWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\n }\n },\n newEffectDependencyList,\n dequal,\n );\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeSelectorList.length === 0) {\n void actions.setSelectBoxList({\n treeSelectorList: [],\n treeSelectorTiledArray: [],\n });\n onTreeSelectorListChange?.([]);\n return;\n }\n // 全部选项\n const tempItem = allOptionConfig\n ? {\n [fieldNamesMerge.label]: allOptionConfig.label,\n [fieldNamesMerge.value]: allOptionConfig.value,\n }\n : undefined;\n const newdataList = showAllOption ? [tempItem, ...dataList] : dataList;\n void actions.setSelectBoxList({\n treeSelectorList: newdataList,\n treeSelectorTiledArray: treeToArray(newdataList || [], fieldNamesMerge.children),\n });\n onTreeSelectorListChange?.(dataList);\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasTreeSelectorList) {\n onChangeSelectorList(treeSelectorList || []);\n }\n }, [treeSelectorList]);\n\n const onTreeExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\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 targetList = getExpandedKeys(value, state.treeSelectorList, fieldNamesMerge);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n };\n\n /**\n * 数据源Item解析\n */\n const parseDataSourceItem = hooks.useCallbackRef((item?: TPlainObject | null) => {\n if (!item) return undefined;\n return {\n label: item?.[fieldNamesMerge.label],\n value: item?.[fieldNamesMerge.value],\n children: item?.[fieldNamesMerge.children],\n disabled: item?.['disabled'],\n };\n });\n /**\n * labelInValue模式入参value item解析\n */\n const parseLabelInValueItem = hooks.useCallbackRef((item?: TPlainObject | null) => {\n if (!item) return undefined;\n return {\n label: item?.[labelInValueFieldNamesMerge.label],\n value: item?.[labelInValueFieldNamesMerge.value],\n disabled: item?.['disabled'],\n };\n });\n\n const getResponseTreeNodeList = hooks.useCallbackRef((changeValue: TAny, triggerInfo: TPlainObject) => {\n const valueList = getVauleList(changeValue, { value: 'value', label: 'label' });\n let selectedTreeNodeList = [] as TPlainObject[];\n valueList.forEach((item) => {\n const target = arrayFind(state.treeSelectorTiledArray, item, fieldNamesMerge.value) as TPlainObject;\n if (!target) return;\n selectedTreeNodeList.push(target);\n });\n if (otherProps.treeCheckStrictly && selectedParentCheckedAllChildrenList) {\n const triggerNode = parseDataSourceItem(\n triggerInfo.checked\n ? arrayFind(state.treeSelectorTiledArray, triggerInfo.triggerValue, fieldNamesMerge.value)\n : null,\n );\n if (triggerNode && isArray(triggerNode.children) && triggerNode.children.length > 0) {\n // 判断为父节点\n const allChildrenList = treeToArray(triggerNode.children, fieldNamesMerge.children);\n const selectedChildrenList = allChildrenList.filter((item) => {\n const parseItem = parseDataSourceItem(item);\n if (parseItem?.disabled) return false;\n // 去重\n if (arrayFind(selectedTreeNodeList, parseItem?.value, fieldNamesMerge.value)) return false;\n return true;\n });\n selectedTreeNodeList = selectedTreeNodeList.concat(selectedChildrenList);\n }\n }\n let realTreeNodeList = [] as TPlainObject[];\n if (otherProps.treeCheckable) {\n if (\n otherProps.treeCheckStrictly === true ||\n valueIsEqual(otherProps.showCheckedStrategy, ['SHOW_ALL', 'SHOW_PARENT'])\n ) {\n // 返回包含父节点\n realTreeNodeList = selectedTreeNodeList;\n } else {\n // 返回不包含父节点\n realTreeNodeList = selectedTreeNodeList.filter((item) => {\n const children = item[fieldNamesMerge.children];\n return !(isArray(children) && children.length > 0);\n });\n }\n } else {\n realTreeNodeList = selectedTreeNodeList;\n }\n return {\n realTreeNodeList,\n realTreeNodeValueList: getVauleList(realTreeNodeList, fieldNamesMerge),\n };\n });\n\n const onRespChange = hooks.useCallbackRef((values, selectedValues, triggerInfo) => {\n // setInnerOperateValue(values);\n onChange?.(values, selectedValues, triggerInfo);\n onChangeHandle?.(values, selectedValues, triggerInfo);\n });\n\n /**\n * 根据treeCheckable、treeCheckStrictly、showCheckedStrategy等设置情况,判断返回数据是否包含父节点\n * 1. 当 treeCheckable = true,changeValue 数据格式为 { label,value }[]\n */\n const onInnerChange = hooks.useCallbackRef((changeValue: TAny, _data, triggerInfo: TPlainObject) => {\n const { realTreeNodeList, realTreeNodeValueList } = getResponseTreeNodeList(changeValue, triggerInfo);\n if (otherProps.treeCheckable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(realTreeNodeValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n }\n\n if (labelInValue) {\n const labelInValueList = realTreeNodeList.map((item) => {\n const parseItem = parseDataSourceItem(item);\n return {\n [labelInValueFieldNamesMerge.label]: parseItem?.label,\n [labelInValueFieldNamesMerge.value]: parseItem?.value,\n };\n });\n\n if (isMultiple) {\n onRespChange?.(labelInValueList, realTreeNodeList, triggerInfo);\n } else {\n onRespChange?.(labelInValueList[0], realTreeNodeList[0], triggerInfo);\n }\n } else {\n if (isMultiple) {\n onRespChange?.(realTreeNodeValueList, realTreeNodeList, triggerInfo);\n } else {\n onRespChange?.(realTreeNodeValueList[0], realTreeNodeList[0], triggerInfo);\n }\n }\n });\n\n const mapTree = hooks.useCallbackRef((data) => {\n if (!data) return null;\n return data.map((item) => {\n const itemAdapterData = onTreeItemDataAdapter?.({ ...item }) || item;\n const children = itemAdapterData[fieldNamesMerge.children];\n const value = itemAdapterData[fieldNamesMerge.value];\n const label = itemAdapterData[fieldNamesMerge.label];\n const disabled = itemAdapterData[fieldNamesMerge.disabled]\n ? itemAdapterData[fieldNamesMerge.disabled]\n : itemAdapterData.disabled;\n return (\n <TreeSelect.TreeNode\n {...itemAdapterData}\n disabled={disabled}\n value={value}\n title={label}\n key={`${value}`}\n >\n {children && children.length > 0 && mapTree(children)}\n </TreeSelect.TreeNode>\n );\n });\n });\n\n /**\n * 1. 当 treeCheckable = true,value 数据格式为 labelInValueFieldNames[]\n * 2. 其他情况 value 数据格式为 value[]\n */\n const renderValueList = useMemo(() => {\n const innerOperateValueList = toArray(value);\n if (innerOperateValueList.length == 0) return [];\n if (otherProps.treeCheckStrictly) {\n if (state.treeSelectorTiledArray.length === 0) {\n return innerOperateValueList.map((item) => ({ label: item, value: item }));\n }\n return innerOperateValueList.map((item) => {\n let targetParseItem: TPlainObject;\n let defualtValue;\n if (isString(item) || isNumber(item as TAny)) {\n const target = arrayFind(state.treeSelectorTiledArray, item as string, fieldNamesMerge.value);\n targetParseItem = parseDataSourceItem(target) as TPlainObject;\n defualtValue = item;\n } else {\n targetParseItem = parseLabelInValueItem(item as TPlainObject) as TPlainObject;\n }\n return {\n label: getValueOrDefault(targetParseItem?.label, defualtValue),\n value: getValueOrDefault(targetParseItem?.value, defualtValue),\n };\n });\n }\n return getVauleList(value, labelInValueFieldNamesMerge);\n }, [\n value,\n otherProps.treeCheckStrictly,\n labelInValueFieldNamesMerge,\n state.treeSelectorTiledArray,\n fieldNamesMerge.value,\n parseDataSourceItem,\n parseLabelInValueItem,\n ]);\n\n const treeSelectValue = useMemo(() => {\n if (isArray(renderValueList) && renderValueList.length === 0) {\n return undefined;\n }\n return isMultiple ? renderValueList : renderValueList[0];\n }, [isMultiple, renderValueList]);\n\n /**\n * 1. 使用 TreeNode 渲染节点,不能重写 fieldNames 配置\n * 2. 使用 TreeNode 是为了实现 TreeNode ICON\n */\n return (\n <TreeSelect\n dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}\n showSearch={true}\n treeLine={{ showLeafIcon: false }}\n treeNodeFilterProp=\"title\"\n switcherIcon={<CaretDownFilled />}\n showArrow\n {...otherProps}\n className={classNames('v-tree-select-wrapper', otherProps.className)}\n popupClassName={classNames('v-tree-select-wrapper-dropdown', otherProps.popupClassName)}\n onChange={onInnerChange}\n treeExpandedKeys={treeExpandedKeys}\n value={treeSelectValue}\n loading={loading}\n dropdownMatchSelectWidth={false}\n onTreeExpand={onTreeExpand}\n style={{ width: '100%', ...otherProps.style }}\n suffixIcon={\n state.requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n ) : undefined\n }\n notFoundContent={\n <RequestStatus\n status={state.requestStatus}\n messageConfig={requestMessageConfig}\n loading={loading}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {mapTree(state.treeSelectorList)}\n </TreeSelect>\n );\n};\n"],"names":["defaultState","treeSelectorList","treeSelectorTiledArray","queryIsEmpty","TreeSelectorWrapperModel","actions","setSelectBoxList","params","state","requestStatus","resetSelectBoxList","changeRequestStatus","treeSelectorWrapperModels","treeSelectorWrapperModel","key","Model","getExpandedKeys","value","treeList","fieldNames","_isArray","length","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","tempList","toArray","map","item","_isObject","TreeSelectorWrapper","props","serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","requestMessageConfig","modelKey","_labelInValue","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","_props$selectedParent","selectedParentCheckedAllChildrenList","onChange","onChangeHandle","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys","otherProps","_objectWithoutPropertiesLoose","_excluded","hasTreeSelectorList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeSelectorWrapperM","useStore","requestPreKey","isMultiple","treeCheckable","responseFirstRef","useRef","useMemo","treeCheckStrictly","fieldNamesMerge","_extends","label","children","disabled","labelInValueFieldNamesMerge","allOptionConfig","isTrue","isFirstUseValueRef","prevValue","usePrevious","useEffectCustom","current","isUndefinedOrNull","allValues","treeToArray","valueList","expandedKeys","getTreeExpandedKeys","Array","from","Set","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","isEmpty","_respData","_respData2","onRequest","Error","_extend","find","console","warn","join","$Try_1_Post","$boundEx","$Try_1_Catch","error","window","resolve","then","$await_2","onChangeSelectorList","useCustomCompareEffect","Boolean","allState","getState","dequal","dataList","_ref","tempItem","undefined","newdataList","concat","onTreeExpand","onAgainRequest","refresh","newTreeExpandedKeys","forEach","includes","targetList","parseDataSourceItem","parseLabelInValueItem","getResponseTreeNodeList","changeValue","triggerInfo","selectedTreeNodeList","target","arrayFind","push","triggerNode","checked","triggerValue","allChildrenList","selectedChildrenList","filter","parseItem","realTreeNodeList","valueIsEqual","showCheckedStrategy","realTreeNodeValueList","onRespChange","values","selectedValues","onInnerChange","_data","_getResponseTreeNodeL","prev","mergeList","labelInValueList","_ref2","mapTree","itemAdapterData","_createElement","TreeSelect","TreeNode","title","renderValueList","innerOperateValueList","_targetParseItem","_targetParseItem2","targetParseItem","defualtValue","_isString","isNumber","getValueOrDefault","treeSelectValue","_jsx","dropdownStyle","maxHeight","overflow","showSearch","treeLine","showLeafIcon","treeNodeFilterProp","switcherIcon","_CaretDownFilled","showArrow","className","_classNames","popupClassName","dropdownMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-selector-wrapper/model.ts","@flatbiz/antd/src/tree-selector-wrapper/utils.ts","@flatbiz/antd/src/tree-selector-wrapper/tree-selector-wrapper.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeSelectProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeSelectorList: TSetDefaultDefined<TreeSelectProps['treeData'], []>;\n treeSelectorTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setSelectBoxList: {\n treeSelectorList: ModelState['treeSelectorList'];\n treeSelectorTiledArray: ModelState['treeSelectorTiledArray'];\n };\n resetSelectBoxList: void;\n changeRequestStatus: TRequestStatus;\n};\n\nconst defaultState: ModelState = {\n treeSelectorList: [],\n treeSelectorTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeSelectorWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setSelectBoxList: (params) => {\n return (state) => {\n state.treeSelectorList = params.treeSelectorList || [];\n state.treeSelectorTiledArray = params.treeSelectorTiledArray || [];\n state.requestStatus = 'request-success';\n };\n },\n resetSelectBoxList: () => {\n return (state) => {\n state.treeSelectorList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n };\n },\n },\n state: defaultState,\n};\n\nconst treeSelectorWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeSelectorWrapperModel('key值').useStore();\n * ```\n */\nexport const treeSelectorWrapperModel = (key: string) => {\n if (!treeSelectorWrapperModels[key]) {\n treeSelectorWrapperModels[key] = Model(TreeSelectorWrapperModel);\n }\n return treeSelectorWrapperModels[key];\n};\n","import { isArray, isObject } from '@dimjs/lang';\nimport {\n isUndefinedOrNull,\n LabelValueItem,\n toArray,\n TPlainObject,\n treeLeafParentsArray,\n treeToTiledArray,\n} from '@flatbiz/utils';\nimport { TreeSelectProps } from 'antd';\nimport { dequal } from 'dequal';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: TreeSelectProps['fieldNames'],\n) => {\n if (!isArray(treeList) || treeList.length === 0) return [];\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nexport const getVauleList = (data, fieldNames: LabelValueItem<string>) => {\n let tempList = toArray<TPlainObject | string | number>(data);\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[fieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, fieldNames: LabelValueItem<string>) => {\n const list = getVauleList(data, fieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括 string、number、Array<string | number>、{ label: string, value: string | nuber }\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeSelectorWrapperValueDeepEqual = (\n value1: any,\n value2: any,\n fieldNames: LabelValueItem<string>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, fieldNames);\n const object2 = array2map(value2, fieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n","import { CaretDownFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny, TPlainObject, treeToArray, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, TreeSelect, TreeSelectProps } from 'antd';\nimport { DependencyList, useMemo, useRef, useState } from 'react';\nimport { treeSelectorWrapperModel } from './model';\nimport './style.less';\n\nimport { arrayFind, getValueOrDefault } from '@flatbiz/utils';\nimport { usePrevious } from 'ahooks';\nimport { dequal } from 'dequal';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\nimport { getExpandedKeys, getVauleList } from './utils';\n\ntype TreeSelectorWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeSelectorServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeSelectorWrapperProps = Omit<\n TreeSelectProps,\n | 'treeExpandedKeys'\n | 'treeData'\n | 'loading'\n | 'onTreeExpand'\n | 'onChange'\n | 'value'\n | 'fieldNames'\n | 'defaultValue'\n | 'treeDataSimpleMode'\n> & {\n modelKey: string;\n fieldNames?: { label?: string; value?: string; children?: string; disabled?: string };\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`treeSelectorList`后无效果\n */\n serviceConfig?: TreeSelectorServiceConfig;\n /**\n * 当设置treeSelectorList后,serviceConfig 将失效\n */\n treeSelectorList?: TreeSelectProps['treeData'];\n /**\n * treeSelectorList发生变更时触发\n */\n onTreeSelectorListChange?: (treeSelectorList?: TreeSelectProps['treeData']) => void;\n /**\n * 通过服务获取数据异常回调,当设置`treeSelectorList`后无效果\n */\n onTreeSelectorRequestError?: (error: Error) => void;\n /**\n * 添加全部选项\n * ```\n * 1. showAllOption = true,添加默认全部选项(value值为空字符串)\n * 2. 可自定义全部选项,例如:{ label: '全部', value: 'all' }\n * 3. 自定义字段会通过fieldNames转换后使用\n * 4. 多选操作时,最好不要设置全部选项\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /**\n * @deprecated 已过期,请使用onChange\n * 1. 当 treeCheckable = true && treeCheckStrictly = true,如果选择的数据中含有父节点,selectedValue、selectedList返回数据包含父节点\n * 2. 当 treeCheckable = true && treeCheckStrictly = false,selectedValue、selectedList返回的数据不包含父节点\n * 3. 当 treeCheckable = false,节点选择没有级联关系,selectedValue、selectedList返回的数据就是实际选择\n * 4. selectAllDataList 返回的数据都包含父节点\n * 5. 使用 onTreeItemAdapter 拼接label数据后,选中回填数据也是拼接后的\n * 6. triggerInfo 当前操作节点数据\n */\n onChangeHandle?: (\n selectedValue?: TreeSelectorWrapperValue,\n selectedData?: TPlainObject[] | TPlainObject,\n triggerInfo?: TPlainObject,\n ) => void;\n /**\n * 1. 当 treeCheckable = true && treeCheckStrictly = true,如果选择的数据中含有父节点,selectedValue、selectedList返回数据包含父节点\n * 2. 当 treeCheckable = true && treeCheckStrictly = false,selectedValue、selectedList返回的数据不包含父节点\n * 3. 当 treeCheckable = false,节点选择没有级联关系,selectedValue、selectedList返回的数据就是实际选择\n * 4. selectAllDataList 返回的数据都包含父节点\n * 5. 使用 onTreeItemAdapter 拼接label数据后,选中回填数据也是拼接后的\n * 6. triggerInfo 当前操作节点数据\n */\n onChange?: (\n selectedValue?: TreeSelectorWrapperValue,\n selectedData?: TPlainObject[] | TPlainObject,\n triggerInfo?: TPlainObject,\n ) => void;\n /**\n * tree item 数据适配器\n */\n onTreeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n // icon 无法实现、treeIcon不起作用4.20.0\n // showIcon?: boolean;\n // icon?: (data: TPlainObject) => ReactElement;\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?: TreeSelectorWrapperValue;\n\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * treeCheckStrictly = true模式下有效,点击父节点是否选中所有子节点,默认值:true\n */\n selectedParentCheckedAllChildrenList?: boolean;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n};\n\n// type TreeSelectorWrapperPropsInner = TreeSelectorWrapperProps & {\n// onChange?: (selectedValue?: TreeSelectorWrapperValue) => void;\n// };\n\n/**\n * 树选择器包装组件,由于过度封装,部分antd TreeSelect原始功能不支持,不满足情况的请使用antd TreeSelect实现\n * @param props\n * @returns\n * ```\n * 1. 当设置treeSelectorList属性后,serviceConfig、onTreeSelectorListChange将失效\n * 2. 父节点默认不返回,需要返回请设置showCheckedStrategy\n * ```\n */\nexport const TreeSelectorWrapper = (props: TreeSelectorWrapperProps) => {\n const {\n serviceConfig,\n effectDependencyList,\n onTreeSelectorListChange,\n onTreeSelectorRequestError,\n treeSelectorList,\n requestMessageConfig,\n modelKey,\n value,\n labelInValue: _labelInValue,\n labelInValueFieldNames,\n onTreeItemDataAdapter,\n selectedParentCheckedAllChildrenList = true,\n fieldNames,\n onChange,\n onChangeHandle,\n treeDefaultExpandAll,\n showAllOption,\n initRootExpand,\n treeDefaultExpandedKeys,\n ...otherProps\n } = props;\n /**\n * 不能使用key、defaultValue模式\n * 1. 勾选的和回填选中不相同情况,勾选后会渲染defaultValue模式后,弹框被关闭,操作体验存在问题\n */\n const hasTreeSelectorList = props.hasOwnProperty('treeSelectorList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>();\n const [state, actions] = treeSelectorWrapperModel(modelKey).useStore();\n const requestPreKey = `request-progress-${modelKey}`;\n const isMultiple = otherProps.treeCheckable;\n const responseFirstRef = useRef(true);\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n const labelInValue = useMemo(() => {\n if (otherProps.treeCheckStrictly) return true;\n return _labelInValue;\n }, [_labelInValue, otherProps.treeCheckStrictly]);\n\n const fieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', disabled: 'disabled', ...fieldNames };\n }, [fieldNames]);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n\n const allOptionConfig = useMemo(() => {\n if (showAllOption) {\n const isTrue = showAllOption === true;\n return {\n label: isTrue ? '全部' : showAllOption.label,\n value: isTrue ? '' : showAllOption.value,\n };\n }\n return null;\n }, [showAllOption]);\n\n const isFirstUseValueRef = useRef(true);\n\n const prevValue = usePrevious(value);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeSelectorList.length > 0) {\n if (responseFirstRef.current && isUndefinedOrNull(value)) {\n responseFirstRef.current = false;\n if (treeDefaultExpandedKeys) {\n setTreeExpandedKeys(treeDefaultExpandedKeys);\n } else if (treeDefaultExpandAll) {\n const allValues = treeToArray(state.treeSelectorList, fieldNamesMerge.children).map((item) => {\n return item[fieldNamesMerge.value];\n });\n setTreeExpandedKeys(allValues);\n return;\n } else if (initRootExpand && state.treeSelectorList.length) {\n setTreeExpandedKeys([state.treeSelectorList[0][fieldNamesMerge.value]]);\n return;\n }\n }\n if (isUndefinedOrNull(value) && isFirstUseValueRef.current) return;\n isFirstUseValueRef.current = false;\n if (value !== prevValue) {\n const valueList = getVauleList(value, labelInValueFieldNamesMerge);\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(expandedKeys)));\n }\n }\n }, [value, state.treeSelectorList]);\n\n const valueIsEmpty = (value: string | number) => {\n return value === '' || isUndefinedOrNull(value);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData;\n return respDataList as TPlainObject[];\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys || [];\n const params = extend({}, newServiceConfig.params);\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(`TreeSelectorWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n try {\n setLoading(true);\n window[requestPreKey] = true;\n void actions.changeRequestStatus('request-progress');\n const _respData = await newServiceConfig.onRequest?.(params);\n const respData = serviceResponseHandle(_respData) as TreeSelectProps['treeData'];\n setLoading(false);\n window[requestPreKey] = false;\n onChangeSelectorList(respData || []);\n } catch (error: TAny) {\n setLoading(false);\n window[requestPreKey] = false;\n void actions.changeRequestStatus('request-error');\n onTreeSelectorRequestError?.(error);\n }\n });\n\n hooks.useCustomCompareEffect(\n () => {\n if (hasTreeSelectorList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n // 内部主动清楚数据,被依赖的数据发生变更时,依赖组件数据清空\n onChangeSelectorList([]);\n void startDataSourceRequest();\n return;\n }\n const allState = treeSelectorWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\n }\n },\n newEffectDependencyList,\n dequal,\n );\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeSelectorList.length === 0) {\n void actions.setSelectBoxList({\n treeSelectorList: [],\n treeSelectorTiledArray: [],\n });\n onTreeSelectorListChange?.([]);\n return;\n }\n // 全部选项\n const tempItem = allOptionConfig\n ? {\n [fieldNamesMerge.label]: allOptionConfig.label,\n [fieldNamesMerge.value]: allOptionConfig.value,\n }\n : undefined;\n const newdataList = showAllOption ? [tempItem, ...dataList] : dataList;\n void actions.setSelectBoxList({\n treeSelectorList: newdataList,\n treeSelectorTiledArray: treeToArray(newdataList || [], fieldNamesMerge.children),\n });\n onTreeSelectorListChange?.(dataList);\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasTreeSelectorList) {\n onChangeSelectorList(treeSelectorList || []);\n }\n }, [treeSelectorList]);\n\n const onTreeExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\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 targetList = getExpandedKeys(value, state.treeSelectorList, fieldNamesMerge);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n };\n\n /**\n * 数据源Item解析\n */\n const parseDataSourceItem = hooks.useCallbackRef((item?: TPlainObject | null) => {\n if (!item) return undefined;\n return {\n label: item?.[fieldNamesMerge.label],\n value: item?.[fieldNamesMerge.value],\n children: item?.[fieldNamesMerge.children],\n disabled: item?.['disabled'],\n };\n });\n /**\n * labelInValue模式入参value item解析\n */\n // const parseLabelInValueItem = hooks.useCallbackRef((item?: TPlainObject | null) => {\n // if (!item) return undefined;\n // return {\n // label: item?.[labelInValueFieldNamesMerge.label],\n // value: item?.[labelInValueFieldNamesMerge.value],\n // disabled: item?.['disabled'],\n // };\n // });\n\n const getResponseTreeNodeList = hooks.useCallbackRef((changeValue: TAny, triggerInfo: TPlainObject) => {\n const valueList = getVauleList(changeValue, { value: 'value', label: 'label' });\n let selectedTreeNodeList = [] as TPlainObject[];\n valueList.forEach((item) => {\n const target = arrayFind(state.treeSelectorTiledArray, item, fieldNamesMerge.value) as TPlainObject;\n if (!target) return;\n selectedTreeNodeList.push(target);\n });\n if (otherProps.treeCheckStrictly && selectedParentCheckedAllChildrenList) {\n const triggerNode = parseDataSourceItem(\n triggerInfo.checked\n ? arrayFind(state.treeSelectorTiledArray, triggerInfo.triggerValue, fieldNamesMerge.value)\n : null,\n );\n if (triggerNode && isArray(triggerNode.children) && triggerNode.children.length > 0) {\n // 判断为父节点\n const allChildrenList = treeToArray(triggerNode.children, fieldNamesMerge.children);\n const selectedChildrenList = allChildrenList.filter((item) => {\n const parseItem = parseDataSourceItem(item);\n if (parseItem?.disabled) return false;\n // 去重\n if (arrayFind(selectedTreeNodeList, parseItem?.value, fieldNamesMerge.value)) return false;\n return true;\n });\n selectedTreeNodeList = selectedTreeNodeList.concat(selectedChildrenList);\n }\n }\n let realTreeNodeList = [] as TPlainObject[];\n if (otherProps.treeCheckable) {\n if (\n otherProps.treeCheckStrictly === true ||\n valueIsEqual(otherProps.showCheckedStrategy, ['SHOW_ALL', 'SHOW_PARENT'])\n ) {\n // 返回包含父节点\n realTreeNodeList = selectedTreeNodeList;\n } else {\n // 返回不包含父节点\n realTreeNodeList = selectedTreeNodeList.filter((item) => {\n const children = item[fieldNamesMerge.children];\n return !(isArray(children) && children.length > 0);\n });\n }\n } else {\n realTreeNodeList = selectedTreeNodeList;\n }\n return {\n realTreeNodeList,\n realTreeNodeValueList: getVauleList(realTreeNodeList, fieldNamesMerge),\n };\n });\n\n const onRespChange = hooks.useCallbackRef((values, selectedValues, triggerInfo) => {\n // setInnerOperateValue(values);\n onChange?.(values, selectedValues, triggerInfo);\n onChangeHandle?.(values, selectedValues, triggerInfo);\n });\n\n /**\n * 根据treeCheckable、treeCheckStrictly、showCheckedStrategy等设置情况,判断返回数据是否包含父节点\n * 1. 当 treeCheckable = true,changeValue 数据格式为 { label,value }[]\n */\n const onInnerChange = hooks.useCallbackRef((changeValue: TAny, _data, triggerInfo: TPlainObject) => {\n const { realTreeNodeList, realTreeNodeValueList } = getResponseTreeNodeList(changeValue, triggerInfo);\n if (otherProps.treeCheckable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(realTreeNodeValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n }\n\n if (labelInValue) {\n const labelInValueList = realTreeNodeList.map((item) => {\n const parseItem = parseDataSourceItem(item);\n return {\n [labelInValueFieldNamesMerge.label]: parseItem?.label,\n [labelInValueFieldNamesMerge.value]: parseItem?.value,\n rawData: item,\n };\n });\n\n if (isMultiple) {\n onRespChange?.(labelInValueList, realTreeNodeList, triggerInfo);\n } else {\n onRespChange?.(labelInValueList[0], realTreeNodeList[0], triggerInfo);\n }\n } else {\n if (isMultiple) {\n onRespChange?.(realTreeNodeValueList, realTreeNodeList, triggerInfo);\n } else {\n onRespChange?.(realTreeNodeValueList[0], realTreeNodeList[0], triggerInfo);\n }\n }\n });\n\n const mapTree = hooks.useCallbackRef((data) => {\n if (!data) return null;\n return data.map((item) => {\n const itemAdapterData = onTreeItemDataAdapter?.({ ...item }) || item;\n const children = itemAdapterData[fieldNamesMerge.children];\n const value = itemAdapterData[fieldNamesMerge.value];\n const label = itemAdapterData[fieldNamesMerge.label];\n const disabled = itemAdapterData[fieldNamesMerge.disabled]\n ? itemAdapterData[fieldNamesMerge.disabled]\n : itemAdapterData.disabled;\n return (\n <TreeSelect.TreeNode\n {...itemAdapterData}\n disabled={disabled}\n value={value}\n title={label}\n key={`${value}`}\n >\n {children && children.length > 0 && mapTree(children)}\n </TreeSelect.TreeNode>\n );\n });\n });\n\n /**\n * 1. 当 treeCheckable = true,value 数据格式为 labelInValueFieldNames[]\n * 2. 其他情况 value 数据格式为 value[]\n */\n const renderValueList = useMemo(() => {\n const valueList = labelInValue\n ? getVauleList(value, labelInValueFieldNamesMerge)\n : getVauleList(value, fieldNamesMerge);\n if (valueList.length == 0) return [];\n if (otherProps.treeCheckStrictly) {\n if (state.treeSelectorTiledArray.length === 0) {\n return valueList.map((item) => ({ label: item, value: item }));\n }\n return valueList.map((value) => {\n const target = arrayFind(state.treeSelectorTiledArray, value as string, fieldNamesMerge.value);\n const targetParseItem = parseDataSourceItem(target) as TPlainObject;\n return {\n label: getValueOrDefault(targetParseItem?.label, value),\n value: getValueOrDefault(targetParseItem?.value, value),\n };\n });\n }\n return valueList;\n }, [\n labelInValue,\n value,\n labelInValueFieldNamesMerge,\n fieldNamesMerge,\n otherProps.treeCheckStrictly,\n state.treeSelectorTiledArray,\n parseDataSourceItem,\n ]);\n\n const treeSelectValue = useMemo(() => {\n if (isArray(renderValueList) && renderValueList.length === 0) {\n return undefined;\n }\n return isMultiple ? renderValueList : renderValueList[0];\n }, [isMultiple, renderValueList]);\n\n /**\n * 1. 使用 TreeNode 渲染节点,不能重写 fieldNames 配置\n * 2. 使用 TreeNode 是为了实现 TreeNode ICON\n */\n return (\n <TreeSelect\n dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}\n showSearch={true}\n treeLine={{ showLeafIcon: false }}\n treeNodeFilterProp=\"title\"\n switcherIcon={<CaretDownFilled />}\n showArrow\n {...otherProps}\n className={classNames('v-tree-select-wrapper', otherProps.className)}\n popupClassName={classNames('v-tree-select-wrapper-dropdown', otherProps.popupClassName)}\n onChange={onInnerChange}\n treeExpandedKeys={treeExpandedKeys}\n value={treeSelectValue}\n loading={loading}\n dropdownMatchSelectWidth={false}\n onTreeExpand={onTreeExpand}\n style={{ width: '100%', ...otherProps.style }}\n suffixIcon={\n state.requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n ) : undefined\n }\n notFoundContent={\n <RequestStatus\n status={state.requestStatus}\n messageConfig={requestMessageConfig}\n loading={loading}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {mapTree(state.treeSelectorList)}\n </TreeSelect>\n );\n};\n"],"names":["defaultState","treeSelectorList","treeSelectorTiledArray","queryIsEmpty","TreeSelectorWrapperModel","actions","setSelectBoxList","params","state","requestStatus","resetSelectBoxList","changeRequestStatus","treeSelectorWrapperModels","treeSelectorWrapperModel","key","Model","getExpandedKeys","value","treeList","fieldNames","_isArray","length","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","tempList","toArray","map","item","_isObject","TreeSelectorWrapper","props","serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","requestMessageConfig","modelKey","_labelInValue","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","_props$selectedParent","selectedParentCheckedAllChildrenList","onChange","onChangeHandle","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys","otherProps","_objectWithoutPropertiesLoose","_excluded","hasTreeSelectorList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeSelectorWrapperM","useStore","requestPreKey","isMultiple","treeCheckable","responseFirstRef","useRef","useMemo","treeCheckStrictly","fieldNamesMerge","_extends","label","children","disabled","labelInValueFieldNamesMerge","allOptionConfig","isTrue","isFirstUseValueRef","prevValue","usePrevious","useEffectCustom","current","isUndefinedOrNull","allValues","treeToArray","valueList","expandedKeys","getTreeExpandedKeys","Array","from","Set","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","isEmpty","_respData","_respData2","onRequest","Error","_extend","find","console","warn","join","$Try_1_Post","$boundEx","$Try_1_Catch","error","window","resolve","then","$await_2","onChangeSelectorList","useCustomCompareEffect","Boolean","allState","getState","dequal","dataList","_ref","tempItem","undefined","newdataList","concat","onTreeExpand","onAgainRequest","refresh","newTreeExpandedKeys","forEach","includes","targetList","parseDataSourceItem","getResponseTreeNodeList","changeValue","triggerInfo","selectedTreeNodeList","target","arrayFind","push","triggerNode","checked","triggerValue","allChildrenList","selectedChildrenList","filter","parseItem","realTreeNodeList","valueIsEqual","showCheckedStrategy","realTreeNodeValueList","onRespChange","values","selectedValues","onInnerChange","_data","_getResponseTreeNodeL","prev","mergeList","labelInValueList","_ref2","rawData","mapTree","itemAdapterData","_createElement","TreeSelect","TreeNode","title","renderValueList","targetParseItem","getValueOrDefault","treeSelectValue","_jsx","dropdownStyle","maxHeight","overflow","showSearch","treeLine","showLeafIcon","treeNodeFilterProp","switcherIcon","_CaretDownFilled","showArrow","className","_classNames","popupClassName","dropdownMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type"],"mappings":"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"}
@@ -12,5 +12,5 @@ import './../flex-layout/index.css';
12
12
  import './../input-search-wrapper/index.css';
13
13
  import './index.css';
14
14
  /*! @flatjs/forge MIT @flatbiz/antd */
15
- 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 v}from"@wove/react/cjs/hooks";import{a as f,_ as p}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{cloneState as m}from"@dimjs/model";import{Spin as h,Tree as g,Button as b,message as y}from"antd";import{forwardRef as L,useState as j,useMemo as w,useRef as C,useImperativeHandle as N,Fragment as R,isValidElement as q}from"react";import{ButtonOperate as k}from"../button-operate/index.js";import{DropdownMenuWrapper as x}from"../dropdown-menu-wrapper/index.js";import{fbaHooks as S}from"../fba-hooks/index.js";import{InputSearchWrapper as T}from"../input-search-wrapper/index.js";import{RequestStatus as P}from"../request-status/index.js";import{tree as D}from"@dimjs/utils/cjs/tree";import{isObject as E}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as A,jsx as _}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"../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 I={treeList:[],treeTiledArray:[],queryIsEmpty:false};var O={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=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},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:I};var V={};var F=function e(r){if(!V[r]){V[r]=s(O)}return V[r]};var K=function e(r){var t=F(r).getState();return t.treeList};var M=function e(n,a,i){var l=r(a,i);return t(n,l,true,{value:"value",parentValue:"parentValue"})};var U=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 z=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=m(r);var v;c(d,i,(function(e,r,t){t.splice(r,1);v=e}));if(!n.dropToGap){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(v)}))}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(v)}))}else{var f=[];var p;c(d,a,(function(e,r,t){f=t;p=r}));if(s===-1){f.splice(p,0,v)}else{f.splice(p+1,0,v)}}return{dataList:d,dragNodeData:B(i,d,t)}};var B=function r(t,n,a){var i;var l=a.value;var s=a.children;D.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 H=["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 Y=L((function(t,i){var s=t.style,L=t.serviceConfig,D=t.effectDependencyList,E=t.selectorTreeList,I=t.value,O=t.onChange,V=t.modelKey,K=t.checkableResponseParentNode,B=K===void 0?true:K,Y=t.checkable,G=t.onSelectorTreeListChange,W=t.onRequestResponseChange,J=t.treeItemDataAdapter,Q=t.searchValue,X=t.showSearch,Z=t.searchPlaceholder,$=t.requestMessageConfig,ee=t.labelInValueFieldNames,re=t.labelInValue,te=t.disabledCanUse,ne=t.menuLayoutType,ae=t.menuTriggerType,ie=t.initRootExpand,le=t.searchResultType,se=t.onDropNodeHandle,oe=t.onDropPrev,ue=t.labelRender,ce=t.searchStyle,de=t.className,ve=t.defaultExpandAll,fe=t.menus,pe=f(t,H);var me=t.hasOwnProperty("selectorTreeList");var he=L||{};var ge=D||[];var be=j([]),ye=be[0],Le=be[1];var je=F(V).useStore(),we=je[0],Ce=je[1];var Ne=S.useSafeState(false),Re=Ne[0],qe=Ne[1];var ke="request-progress-"+t.modelKey;var xe=w((function(){return p({label:"label",value:"value",children:"children"},t.fieldNames)}),[t.fieldNames]);var Se=ne===undefined?"fold":ne;var Te=ae===undefined?"click":ae;var Pe=C(true);var De=w((function(){return p({label:"label",value:"value"},ee)}),[ee]);var Ee=j(),Ae=Ee[0],_e=Ee[1];var Ie=C();var Oe=w((function(){var e=U(I,De);return e}),[De,I]);S.useEffectCustom((function(){if(we.treeList.length>0){if(Pe.current){Pe.current=false;if(ve){var r=e(we.treeList,xe.children).map((function(e){return e[xe.value]}));Le(r);return}else if(ie&&we.treeList.length){Le([we.treeList[0][xe.value]]);return}}if(!n(I)){var t=Ue(Oe,true);Le(Array.from(new Set(ye==null?void 0:ye.concat(t))))}}}),[I,we.treeList,Oe]);var Ve=function e(r){return r===""||n(r)};var Fe=function e(r){var t=he.onRequestResultAdapter?he.onRequestResultAdapter(r):r;return t};S.useEffectCustom((function(){_e(Q)}),[Q]);var Ke=v.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{Pe.current=false;qe(false);void y.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){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return o()}catch(e){return u(e)}};var v=function(e){try{window[ke]=false;qe(false);void Ce.changeRequestStatus("request-error");return c()}catch(e){return u(e)}};try{qe(true);return Promise.resolve(Ce.changeRequestStatus("request-progress")).then((function(e){try{window[ke]=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){Pe.current=false}Me(s);qe(false);window[ke]=false;return c()}catch(e){return v(e)}}),v)}catch(e){return v(e)}}),v)}catch(e){v(e)}}catch(e){u(e)}}))}));S.useEffectCustom((function(){if(me)return;if(Boolean(ge.length)){void Ke();return}var e=F(V).getState();if(e.requestStatus==="request-success"){G==null?void 0:G(e.treeList);return}if(!window[ke]){void Ke()}else{G==null?void 0:G(e.treeList)}}),ge);S.useEffectCustom((function(){if(me){Me(E||[])}}),[E]);var Me=v.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&we.treeList.length===0){void Ce.changeRequestStatus("request-success");return}void Ce.setTreeList({treeList:e||[],childrenName:xe.children});G==null?void 0:G(e)}));var Ue=function e(r,t){var n=[];r.forEach((function(e){if(!t&&ye!=null&&ye.includes(e))return;var r=M(e,we.treeList,xe);n=n.concat(r.map((function(e){return e.value})))}));return n};v.useUpdateEffect((function(){if(Ae){var e=r(we.treeList||[],xe);var t=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(Ae||"")}));Le((function(e){var r=Ue(t.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(r))}))}else{Le([])}}),[Ae]);N(i,(function(){return{onClearSelectorList:function e(){void Ce.resetTreeList()},getTreeDataList:function e(){return we.treeList},onChangeExpandedKeys:function e(r){Le(r)}}}));var ze=v.useCallbackRef((function(e){Le(e)}));var Be=v.useCallbackRef((function(e,r,t,a){Ie.current=e;var i=n(r)?[]:l(r)?r:[r];if(n(e)){O==null?void 0:O(e,r,t);return}if(re){var s=De.label;var o=De.value;var u=i.map((function(e){var r;return r={},r[s]=e[xe.label],r[o]=e[xe.value],r}));if(l(e)){O==null?void 0:O(u,i,t,a)}else{O==null?void 0:O(u[0],i[0],t,a)}}else{if(l(e)){O==null?void 0:O(e,i,t,a)}else{O==null?void 0:O(e,i[0],t,a)}}}));var He=v.useCallbackRef((function(e,r){var a=t.checkStrictly?e.checked:e;a=n(e)?[]:e;a=l(a)?a:[a];var i=[];var s=[];var o=[];var u=[];a.forEach((function(e){var r=we.treeTiledArray.find((function(r){return r[xe.value]===e}));if(!r)return;var t=r==null?void 0:r[xe.children];if(!l(t)||t.length===0){i.push(r);s.push(r[xe.value])}o.push(r);u.push(r[xe.value])}));if(Y){Le((function(e){var r=Ue(s).concat(e||[]);return Array.from(new Set(r))}));if(!B&&!t.checkStrictly){Be(s,i,o,r)}else{Be(u,o,o,r)}}else{if(a[0]){var c=o.find((function(e){return e[xe.value]===a[0]}));Be(a[0],c,[c],r)}else{var d=r.node[xe.value];var v=we.treeTiledArray.find((function(e){return e[xe.value]===d}));Be(undefined,v,[v],r)}}}));var Ye=v.useCallbackRef((function(e){return J==null?void 0:J(e)}));var Ge=w((function(){var e=m(we.treeList||[]);if(Ae&&le!=="highlight"){return a(m(we.treeList||[]),(function(e){var r;var t=(r=e[xe.label])==null?void 0:r.toLowerCase();return t.indexOf(Ae.toLowerCase())>=0}),{childrenName:xe.children})}return e}),[xe.children,xe.label,le,we.treeList,Ae]);var We=w((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[xe.label];var s;if(Ae){var o=i.indexOf(Ae);var u=i.substring(0,o);var d=i.slice(o+Ae.length);s=o>-1?A("span",{className:c({"v-tree-item-disabled":n.disabled}),children:[u,_("span",{className:"site-tree-search-value",children:Ae}),d]}):null}if(!s&&n.disabled){s=_("span",{className:c({"v-tree-item-disabled":n.disabled}),children:i})}var v=n[xe.children];return p({},n,(t={disabled:a},t[xe.label]=s||i,t._treeItemName=i,t._disabled=n.disabled,t[xe.children]=l(v)&&v.length>0?e(v):undefined,t))}))};return e(Ge)}),[Ge,Ye,te,xe.label,xe.children,Ae]);var Je=v.useCallbackRef((function(e){return new Promise((function(r,n){return new Promise((function(a,i){var l,s,o,u;if(e[xe.children]){r();return a()}var c=function(){try{return a()}catch(e){return i(e)}};var d=function(e){try{void y.error(e.message||"数据加载异常...");n();return c()}catch(e){return i(e)}};try{return Promise.resolve((l=t.loadDataServiceConfig)==null||l.onRequest==null?void 0:l.onRequest((s=t.loadDataServiceConfig)==null||s.getParams==null?void 0:s.getParams(e))).then((function(t){try{o=t;u=he.onRequestResultAdapter?he.onRequestResultAdapter(o):o;void Ce.treeListAppendChildren({value:e[xe.value],appendList:u,childrenName:xe.children,valueName:xe.value}).then((function(e){Me(e.treeList);r()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Qe=v.useCallbackRef((function(e){var r=e==null?void 0:e[xe.children];var n=t.loadDataFlag;var a=n?!e.isLeaf:false;var i=r&&r.length>0||a;return!i}));var Xe=v.useCallbackRef((function(e){var r,n,a;var i=e._treeItemName||e[xe.label];var l=fe==null?void 0:fe(p({},e,(r={},r[xe.label]=i,r)));if(l){return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),_(k,p({gap:5},l,{dropdownMenuProps:p({placement:"bottomRight",isFixed:true},l==null?void 0:l.dropdownMenuProps),className:c("tree-item-title-operate",l.className)}))]})}if(Se==="fold"){var s;var o=[];if((s=t.menuOptions)!=null&&s.fold){var d,v,f;o=((d=t.menuOptions)==null||(v=d[Se])==null?void 0:v.call(d,p({},e,(f={},f[xe.label]=i,f))))||[]}else{var m;o=(t.getMenuOptions==null?void 0:t.getMenuOptions(p({},e,(m={},m[xe.label]=i,m))))||[]}return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),o.length>0&&_(x,{menuList:o,placement:"bottomRight",children:_(u,{})})]})}var h=(n=t.menuOptions)==null||n.tile==null?void 0:n.tile(p({},e,(a={},a[xe.label]=i,a)));return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),h?_(k,p({gap:5},h,{className:c("tree-item-title-operate",h.className)})):null]})}));var Ze=v.useDebounceCallback((function(e){_e(e);t.onSearchValueChange==null?void 0:t.onSearchValueChange(e)}),300);var $e=v.useCallbackRef((function(e){Ze(e.target.value)}));var er=v.useCallbackRef((function(e){if(!t.icon)return null;if(q(t.icon))return t.icon;var r=Qe(e.data);return t.icon(p({},e,{isParent:!r,isLeaf:r}))}));var rr=w((function(){return{title:xe.label,key:xe.value,children:xe.children}}),[xe]);var tr=We.length>0&&we.requestStatus!=="request-error";var nr=p({showLine:{showLeafIcon:false},titleRender:Xe,blockNode:true,switcherIcon:_(o,{}),onDrop:function e(r){if(oe){var t=oe(r);if(!t)return}var n=z(Ge,xe,r),a=n.dataList,i=n.dragNodeData;se==null?void 0:se(i);Me(a)},expandedKeys:ye},pe,{fieldNames:rr,treeData:We,onExpand:ze,loadData:t.loadDataFlag?Je:undefined,style:{width:"100%"},icon:er});var ar={onCheck:He,checkable:Y,checkedKeys:Oe};var ir={onSelect:He,multiple:false,selectedKeys:Oe};var lr=Y?ar:ir;var sr=c("v-tree-wrapper","v-tree-wrapper-menu-"+Te,de);var or=we.treeList.length>0&&!tr&&Ae;return A("div",{className:sr,style:s,children:[!!X&&A("div",{className:"v-tree-wrapper-search-area",style:ce,children:[_(T,{className:"v-tree-wrapper-search",placeholder:Z,onChange:$e,value:Q,allowClear:true}),!!t.searchExtraElement&&_("span",{className:"v-tree-wrapper-search-extra",children:t.searchExtraElement})]}),tr?A("div",{className:"v-tree-wrapper-tree-wrapper",children:[_(h,{spinning:we.requestStatus==="request-progress"}),_(g,p({},lr,nr,{className:"v-tree-wrapper-tree"}))]}):_(P,{status:we.requestStatus,loading:Re,messageConfig:p({"request-success":or?"搜索结果为空":"暂无数据"},$),errorButton:_(b,{type:"primary",onClick:Ke,children:"重新获取数据"})})]})}));Y.defaultProps={disabledCanUse:true};var G=i(Y,{getTreeDataList:K});export{G as TreeWrapper};
15
+ 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 v}from"@wove/react/cjs/hooks";import{a as f,_ as p}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{cloneState as m}from"@dimjs/model";import{Spin as h,Tree as g,Button as b,message as y}from"antd";import{forwardRef as L,useState as j,useMemo as w,useRef as C,useImperativeHandle as N,Fragment as R,isValidElement as q}from"react";import{ButtonOperate as k}from"../button-operate/index.js";import{DropdownMenuWrapper as x}from"../dropdown-menu-wrapper/index.js";import{fbaHooks as S}from"../fba-hooks/index.js";import{InputSearchWrapper as T}from"../input-search-wrapper/index.js";import{RequestStatus as P}from"../request-status/index.js";import{tree as D}from"@dimjs/utils/cjs/tree";import{isObject as E}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as A,jsx as _}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"../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 I={treeList:[],treeTiledArray:[],queryIsEmpty:false};var O={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=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},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:I};var V={};var F=function e(r){if(!V[r]){V[r]=s(O)}return V[r]};var K=function e(r){var t=F(r).getState();return t.treeList};var M=function e(n,a,i){var l=r(a,i);return t(n,l,true,{value:"value",parentValue:"parentValue"})};var U=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 z=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=m(r);var v;c(d,i,(function(e,r,t){t.splice(r,1);v=e}));if(!n.dropToGap){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(v)}))}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(v)}))}else{var f=[];var p;c(d,a,(function(e,r,t){f=t;p=r}));if(s===-1){f.splice(p,0,v)}else{f.splice(p+1,0,v)}}return{dataList:d,dragNodeData:B(i,d,t)}};var B=function r(t,n,a){var i;var l=a.value;var s=a.children;D.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 H=["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 Y=L((function(t,i){var s=t.style,L=t.serviceConfig,D=t.effectDependencyList,E=t.selectorTreeList,I=t.value,O=t.onChange,V=t.modelKey,K=t.checkableResponseParentNode,B=K===void 0?true:K,Y=t.checkable,G=t.onSelectorTreeListChange,W=t.onRequestResponseChange,J=t.treeItemDataAdapter,Q=t.searchValue,X=t.showSearch,Z=t.searchPlaceholder,$=t.requestMessageConfig,ee=t.labelInValueFieldNames,re=t.labelInValue,te=t.disabledCanUse,ne=t.menuLayoutType,ae=t.menuTriggerType,ie=t.initRootExpand,le=t.searchResultType,se=t.onDropNodeHandle,oe=t.onDropPrev,ue=t.labelRender,ce=t.searchStyle,de=t.className,ve=t.defaultExpandAll,fe=t.menus,pe=f(t,H);var me=t.hasOwnProperty("selectorTreeList");var he=L||{};var ge=D||[];var be=j([]),ye=be[0],Le=be[1];var je=F(V).useStore(),we=je[0],Ce=je[1];var Ne=S.useSafeState(false),Re=Ne[0],qe=Ne[1];var ke="request-progress-"+t.modelKey;var xe=w((function(){return p({label:"label",value:"value",children:"children"},t.fieldNames)}),[t.fieldNames]);var Se=ne===undefined?"fold":ne;var Te=ae===undefined?"click":ae;var Pe=C(true);var De=w((function(){return p({label:"label",value:"value"},ee)}),[ee]);var Ee=j(),Ae=Ee[0],_e=Ee[1];var Ie=C();var Oe=w((function(){var e=U(I,De);return e}),[De,I]);S.useEffectCustom((function(){if(we.treeList.length>0){if(Pe.current){Pe.current=false;if(ve){var r=e(we.treeList,xe.children).map((function(e){return e[xe.value]}));Le(r);return}else if(ie&&we.treeList.length){Le([we.treeList[0][xe.value]]);return}}if(!n(I)){var t=Ue(Oe,true);Le(Array.from(new Set(ye==null?void 0:ye.concat(t))))}}}),[I,we.treeList,Oe]);var Ve=function e(r){return r===""||n(r)};var Fe=function e(r){var t=he.onRequestResultAdapter?he.onRequestResultAdapter(r):r;return t};S.useEffectCustom((function(){_e(Q)}),[Q]);var Ke=v.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{Pe.current=false;qe(false);void y.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){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return o()}catch(e){return u(e)}};var v=function(e){try{window[ke]=false;qe(false);void Ce.changeRequestStatus("request-error");return c()}catch(e){return u(e)}};try{qe(true);return Promise.resolve(Ce.changeRequestStatus("request-progress")).then((function(e){try{window[ke]=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){Pe.current=false}Me(s);qe(false);window[ke]=false;return c()}catch(e){return v(e)}}),v)}catch(e){return v(e)}}),v)}catch(e){v(e)}}catch(e){u(e)}}))}));S.useEffectCustom((function(){if(me)return;if(Boolean(ge.length)){void Ke();return}var e=F(V).getState();if(e.requestStatus==="request-success"){G==null?void 0:G(e.treeList);return}if(!window[ke]){void Ke()}else{G==null?void 0:G(e.treeList)}}),ge);S.useEffectCustom((function(){if(me){Me(E||[])}}),[E]);var Me=v.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&we.treeList.length===0){void Ce.changeRequestStatus("request-success");return}void Ce.setTreeList({treeList:e||[],childrenName:xe.children});G==null?void 0:G(e)}));var Ue=function e(r,t){var n=[];r.forEach((function(e){if(!t&&ye!=null&&ye.includes(e))return;var r=M(e,we.treeList,xe);n=n.concat(r.map((function(e){return e.value})))}));return n};v.useUpdateEffect((function(){if(Ae){var e=r(we.treeList||[],xe);var t=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(Ae||"")}));Le((function(e){var r=Ue(t.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(r))}))}else{Le([])}}),[Ae]);N(i,(function(){return{onClearSelectorList:function e(){void Ce.resetTreeList()},getTreeDataList:function e(){return we.treeList},onChangeExpandedKeys:function e(r){Le(r)}}}));var ze=v.useCallbackRef((function(e){Le(e)}));var Be=v.useCallbackRef((function(e,r,t,a){Ie.current=e;var i=n(r)?[]:l(r)?r:[r];if(n(e)){O==null?void 0:O(e,r,t);return}if(re){var s=De.label;var o=De.value;var u=i.map((function(e){var r;return r={},r[s]=e[xe.label],r[o]=e[xe.value],r}));if(l(e)){O==null?void 0:O(u,i,t,a)}else{O==null?void 0:O(u[0],i[0],t,a)}}else{if(l(e)){O==null?void 0:O(e,i,t,a)}else{O==null?void 0:O(e,i[0],t,a)}}}));var He=v.useCallbackRef((function(e,r){var a=n(e)?[]:e;a=t.checkStrictly?e.checked:e;a=l(a)?a:[a];var i=[];var s=[];var o=[];var u=[];a.forEach((function(e){var r=we.treeTiledArray.find((function(r){return r[xe.value]===e}));if(!r)return;var t=r==null?void 0:r[xe.children];if(!l(t)||t.length===0){i.push(r);s.push(r[xe.value])}o.push(r);u.push(r[xe.value])}));if(Y){Le((function(e){var r=Ue(s).concat(e||[]);return Array.from(new Set(r))}));if(!B&&!t.checkStrictly){Be(s,i,o,r)}else{Be(u,o,o,r)}}else{if(a[0]){var c=o.find((function(e){return e[xe.value]===a[0]}));Be(a[0],c,[c],r)}else{var d=r.node[xe.value];var v=we.treeTiledArray.find((function(e){return e[xe.value]===d}));Be(undefined,v,[v],r)}}}));var Ye=v.useCallbackRef((function(e){return J==null?void 0:J(e)}));var Ge=w((function(){var e=m(we.treeList||[]);if(Ae&&le!=="highlight"){return a(m(we.treeList||[]),(function(e){var r;var t=(r=e[xe.label])==null?void 0:r.toLowerCase();return t.indexOf(Ae.toLowerCase())>=0}),{childrenName:xe.children})}return e}),[xe.children,xe.label,le,we.treeList,Ae]);var We=w((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[xe.label];var s;if(Ae){var o=i.indexOf(Ae);var u=i.substring(0,o);var d=i.slice(o+Ae.length);s=o>-1?A("span",{className:c({"v-tree-item-disabled":n.disabled}),children:[u,_("span",{className:"site-tree-search-value",children:Ae}),d]}):null}if(!s&&n.disabled){s=_("span",{className:c({"v-tree-item-disabled":n.disabled}),children:i})}var v=n[xe.children];return p({},n,(t={disabled:a},t[xe.label]=s||i,t._treeItemName=i,t._disabled=n.disabled,t[xe.children]=l(v)&&v.length>0?e(v):undefined,t))}))};return e(Ge)}),[Ge,Ye,te,xe.label,xe.children,Ae]);var Je=v.useCallbackRef((function(e){return new Promise((function(r,n){return new Promise((function(a,i){var l,s,o,u;if(e[xe.children]){r();return a()}var c=function(){try{return a()}catch(e){return i(e)}};var d=function(e){try{void y.error(e.message||"数据加载异常...");n();return c()}catch(e){return i(e)}};try{return Promise.resolve((l=t.loadDataServiceConfig)==null||l.onRequest==null?void 0:l.onRequest((s=t.loadDataServiceConfig)==null||s.getParams==null?void 0:s.getParams(e))).then((function(t){try{o=t;u=he.onRequestResultAdapter?he.onRequestResultAdapter(o):o;void Ce.treeListAppendChildren({value:e[xe.value],appendList:u,childrenName:xe.children,valueName:xe.value}).then((function(e){Me(e.treeList);r()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Qe=v.useCallbackRef((function(e){var r=e==null?void 0:e[xe.children];var n=t.loadDataFlag;var a=n?!e.isLeaf:false;var i=r&&r.length>0||a;return!i}));var Xe=v.useCallbackRef((function(e){var r,n,a;var i=e._treeItemName||e[xe.label];var l=fe==null?void 0:fe(p({},e,(r={},r[xe.label]=i,r)));if(l){return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),_(k,p({gap:5},l,{dropdownMenuProps:p({placement:"bottomRight",isFixed:true},l==null?void 0:l.dropdownMenuProps),className:c("tree-item-title-operate",l.className)}))]})}if(Se==="fold"){var s;var o=[];if((s=t.menuOptions)!=null&&s.fold){var d,v,f;o=((d=t.menuOptions)==null||(v=d[Se])==null?void 0:v.call(d,p({},e,(f={},f[xe.label]=i,f))))||[]}else{var m;o=(t.getMenuOptions==null?void 0:t.getMenuOptions(p({},e,(m={},m[xe.label]=i,m))))||[]}return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),o.length>0&&_(x,{menuList:o,placement:"bottomRight",children:_(u,{})})]})}var h=(n=t.menuOptions)==null||n.tile==null?void 0:n.tile(p({},e,(a={},a[xe.label]=i,a)));return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),h?_(k,p({gap:5},h,{className:c("tree-item-title-operate",h.className)})):null]})}));var Ze=v.useDebounceCallback((function(e){_e(e);t.onSearchValueChange==null?void 0:t.onSearchValueChange(e)}),300);var $e=v.useCallbackRef((function(e){Ze(e.target.value)}));var er=v.useCallbackRef((function(e){if(!t.icon)return null;if(q(t.icon))return t.icon;var r=Qe(e.data);return t.icon(p({},e,{isParent:!r,isLeaf:r}))}));var rr=w((function(){return{title:xe.label,key:xe.value,children:xe.children}}),[xe]);var tr=We.length>0&&we.requestStatus!=="request-error";var nr=p({showLine:{showLeafIcon:false},titleRender:Xe,blockNode:true,switcherIcon:_(o,{}),onDrop:function e(r){if(oe){var t=oe(r);if(!t)return}var n=z(Ge,xe,r),a=n.dataList,i=n.dragNodeData;se==null?void 0:se(i);Me(a)},expandedKeys:ye},pe,{fieldNames:rr,treeData:We,onExpand:ze,loadData:t.loadDataFlag?Je:undefined,style:{width:"100%"},icon:er});var ar={onCheck:He,checkable:Y,checkedKeys:Oe};var ir={onSelect:He,multiple:false,selectedKeys:Oe};var lr=Y?ar:ir;var sr=c("v-tree-wrapper","v-tree-wrapper-menu-"+Te,de);var or=we.treeList.length>0&&!tr&&Ae;return A("div",{className:sr,style:s,children:[!!X&&A("div",{className:"v-tree-wrapper-search-area",style:ce,children:[_(T,{className:"v-tree-wrapper-search",placeholder:Z,onChange:$e,value:Q,allowClear:true}),!!t.searchExtraElement&&_("span",{className:"v-tree-wrapper-search-extra",children:t.searchExtraElement})]}),tr?A("div",{className:"v-tree-wrapper-tree-wrapper",children:[_(h,{spinning:we.requestStatus==="request-progress"}),_(g,p({},lr,nr,{className:"v-tree-wrapper-tree"}))]}):_(P,{status:we.requestStatus,loading:Re,messageConfig:p({"request-success":or?"搜索结果为空":"暂无数据"},$),errorButton:_(b,{type:"primary",onClick:Ke,children:"重新获取数据"})})]})}));Y.defaultProps={disabledCanUse:true};var G=i(Y,{getTreeDataList:K});export{G as TreeWrapper};
16
16
  //# 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 { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TPlainObject, treeToArray, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n };\n resetTreeList: void;\n changeRequestStatus: TRequestStatus;\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const array = treeToArray(state.treeList, params.childrenName);\n const target = array.find((item) => item[params.valueName] === params.value);\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, any>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { 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 { TAny, TPlainObject, treeLeafParentsArray, treeToTiledArray } from '@flatbiz/utils';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: { label?: string; value?: string; children?: string },\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nimport { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { tree } from '@dimjs/utils';\nimport { isUndefinedOrNull, LabelValueItem, treeToArray } from '@flatbiz/utils';\nimport { DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\n\nexport const getVauleList = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: TAny,\n value2: TAny,\n labelInValueFieldNames: LabelValueItem<string | number>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n\ntype OnTreeDropMethod = (\n dataList: TPlainObject[],\n fieldNames: { value: string; children: string },\n info: TAny,\n) => {\n dataList: TPlainObject[];\n dragNodeData: {\n parentId?: string | number;\n id: string | number;\n index: number;\n };\n};\n\nexport const onTreeDrop: OnTreeDropMethod = (dataList, fieldNames, info) => {\n const dropKey = info.node.key;\n const dragKey = info.dragNode.key;\n const dropPos = info.node.pos.split('-');\n const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);\n const treeKeyName = fieldNames.value;\n const treeChildrenName = fieldNames.children;\n\n const loop = (\n data: DataNode[],\n key: React.Key,\n callback: (node: DataNode, i: number, data: DataNode[]) => void,\n ) => {\n for (let i = 0; i < data.length; i++) {\n if (data[i][treeKeyName] === key) {\n return callback(data[i], i, data);\n }\n if (data[i][treeChildrenName]) {\n loop(data[i][treeChildrenName]!, key, callback);\n }\n }\n };\n const data = cloneState(dataList) as DataNode[];\n\n // Find dragObject\n let dragObj: DataNode;\n loop(data, dragKey, (item, index, arr) => {\n arr.splice(index, 1);\n dragObj = item;\n });\n\n if (!info.dropToGap) {\n // Drop on the content\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n });\n } else if (\n (info.node.props.children || []).length > 0 && // Has children\n info.node.props.expanded && // Is expanded\n dropPosition === 1 // On the bottom gap\n ) {\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n // in previous version, we use item.children.push(dragObj) to insert the\n // item to the tail of the children\n });\n } else {\n let ar: DataNode[] = [];\n let i: number;\n loop(data, dropKey, (_item, index, arr) => {\n ar = arr;\n i = index;\n });\n if (dropPosition === -1) {\n ar.splice(i!, 0, dragObj!);\n } else {\n ar.splice(i! + 1, 0, dragObj!);\n }\n }\n return {\n dataList: data,\n dragNodeData: dragNodeData(dragKey, data, fieldNames),\n };\n};\n\nexport const dragNodeData = (\n dorpNodeId: TAny,\n dataList: TAny[],\n fieldNames: { value: string; children: string },\n) => {\n const id = fieldNames.value;\n const children = fieldNames.children;\n tree.walkThroughTree<TPlainObject, TAny>(\n { [id]: undefined, [children]: dataList } as TAny,\n (node, index, _parent) => {\n node['__index'] = index;\n node['__parentId'] = _parent?.[id];\n },\n children,\n );\n const tileList = treeToArray(dataList, children);\n const target = tileList.find((item) => item[id] === dorpNodeId);\n return {\n parentId: target?.['__parentId'],\n id: target?.[id],\n index: target?.['__index'],\n };\n};\n","import { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend } from '@dimjs/utils';\n\nimport { hooks } from '@wove/react';\nimport { Button, message, Spin, Tree, TreeProps } from 'antd';\nimport {\n CSSProperties,\n DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n isUndefinedOrNull,\n TAny,\n TPlainObject,\n treeFilter,\n treeToArray,\n treeToTiledArray,\n} from '@flatbiz/utils';\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 { 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 modelKey: string;\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n * ```\n * 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调\n * ```\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n extraData?: TPlainObject,\n ) => void;\n fieldNames?: { label?: string; value?: string; children?: string };\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n loadDataFlag?: boolean;\n /**\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 }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n /** 搜素过滤方式,高亮 | 过滤;默认:filter */\n searchResultType?: 'highlight' | 'filter';\n /**\n * 拖拽节点处理,自定义onDrop事件后,失效\n * ```\n * 参数\n * 1. parentId 当前拖拽节点的父节点ID\n * 2. id 当前拖拽节点ID\n * 3. index 当前拖拽节点所在数组下标\n * ```\n */\n onDropNodeHandle?: (result: { parentId?: string | number; id: string | number; index: number }) => void;\n /**\n * 拖拽排序前判断,如果返回 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 const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>([]);\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNames = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', ...props.fieldNames };\n }, [props.fieldNames]);\n 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 const tempList = getVauleList(value, labelInValueFieldNamesMerge);\n return tempList;\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 const allValues = treeToArray(state.treeList, fieldNames.children).map((item) => {\n return item[fieldNames.value];\n });\n setTreeExpandedKeys(allValues);\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 const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n return respDataList;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n console.warn(`TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n onRequestResponseChange?.(_respData);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n 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 (Boolean(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 targetList = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n };\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const tiledArray = treeToTiledArray(state.treeList || [], fieldNames);\n const targetList = tiledArray.filter((item) => item.label?.includes(treeSearchValue || ''));\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(targetList.map((item) => item.value)).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n 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 = props.checkStrictly ? checkedData.checked : checkedData;\n checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = isArray(checkedValueList) ? checkedValueList : [checkedValueList];\n\n const selectedLeafList = [] as TPlainObject[];\n const selectedLeafValueList = [] as Array<string | number>;\n const selectedAllList = [] as TPlainObject[];\n const selectedAllValueList = [] as Array<string | number>;\n checkedValueList.forEach((item) => {\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === item);\n if (!target) return;\n const children = target?.[fieldNames.children];\n if (!isArray(children) || children.length === 0) {\n selectedLeafList.push(target);\n selectedLeafValueList.push(target[fieldNames.value]);\n }\n selectedAllList.push(target);\n selectedAllValueList.push(target[fieldNames.value]);\n });\n\n if (checkable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(selectedLeafValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n if (!checkableResponseParentNode && !props.checkStrictly) {\n onRespChange(selectedLeafValueList, selectedLeafList, selectedAllList, 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 index = strTitle.indexOf(treeSearchValue);\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n titleDom =\n index > -1 ? (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>\n {beforeStr}\n <span className=\"site-tree-search-value\">{treeSearchValue}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom && 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\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem),\n );\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error: 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) {\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={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","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","children","loop","callback","i","cloneState","dragObj","index","arr","splice","dropToGap","unshift","props","expanded","ar","_item","dragNodeData","dorpNodeId","_tree$walkThroughTree","id","_tree","walkThroughTree","undefined","_parent","tileList","parentId","TreeWrapper","forwardRef","ref","style","serviceConfig","effectDependencyList","selectorTreeList","onChange","_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","allValues","expandedKeys","getTreeExpandedKeys","Array","from","Set","concat","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","respDataListNew","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","console","warn","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","Boolean","allState","refresh","newTreeExpandedKeys","forEach","includes","targetList","useUpdateEffect","filter","_item$label","prev","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","list","treeFilter","_node$fieldNames$labe","toLowerCase","indexOf","treeData","_extends2","adapterItem","disabled","strTitle","titleDom","beforeStr","substring","afterStr","slice","_jsxs","_classNames","_jsx","_treeItemName","_disabled","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_extends3","_props$menuOptions3","_extends6","stringLabel","buttonOperateConfig","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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"}
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 { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TPlainObject, treeToArray, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n };\n resetTreeList: void;\n changeRequestStatus: TRequestStatus;\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const array = treeToArray(state.treeList, params.childrenName);\n const target = array.find((item) => item[params.valueName] === params.value);\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, any>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { 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 { TAny, TPlainObject, treeLeafParentsArray, treeToTiledArray } from '@flatbiz/utils';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: { label?: string; value?: string; children?: string },\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nimport { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { tree } from '@dimjs/utils';\nimport { isUndefinedOrNull, LabelValueItem, treeToArray } from '@flatbiz/utils';\nimport { DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\n\nexport const getVauleList = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: TAny,\n value2: TAny,\n labelInValueFieldNames: LabelValueItem<string | number>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n\ntype OnTreeDropMethod = (\n dataList: TPlainObject[],\n fieldNames: { value: string; children: string },\n info: TAny,\n) => {\n dataList: TPlainObject[];\n dragNodeData: {\n parentId?: string | number;\n id: string | number;\n index: number;\n };\n};\n\nexport const onTreeDrop: OnTreeDropMethod = (dataList, fieldNames, info) => {\n const dropKey = info.node.key;\n const dragKey = info.dragNode.key;\n const dropPos = info.node.pos.split('-');\n const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);\n const treeKeyName = fieldNames.value;\n const treeChildrenName = fieldNames.children;\n\n const loop = (\n data: DataNode[],\n key: React.Key,\n callback: (node: DataNode, i: number, data: DataNode[]) => void,\n ) => {\n for (let i = 0; i < data.length; i++) {\n if (data[i][treeKeyName] === key) {\n return callback(data[i], i, data);\n }\n if (data[i][treeChildrenName]) {\n loop(data[i][treeChildrenName]!, key, callback);\n }\n }\n };\n const data = cloneState(dataList) as DataNode[];\n\n // Find dragObject\n let dragObj: DataNode;\n loop(data, dragKey, (item, index, arr) => {\n arr.splice(index, 1);\n dragObj = item;\n });\n\n if (!info.dropToGap) {\n // Drop on the content\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n });\n } else if (\n (info.node.props.children || []).length > 0 && // Has children\n info.node.props.expanded && // Is expanded\n dropPosition === 1 // On the bottom gap\n ) {\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n // in previous version, we use item.children.push(dragObj) to insert the\n // item to the tail of the children\n });\n } else {\n let ar: DataNode[] = [];\n let i: number;\n loop(data, dropKey, (_item, index, arr) => {\n ar = arr;\n i = index;\n });\n if (dropPosition === -1) {\n ar.splice(i!, 0, dragObj!);\n } else {\n ar.splice(i! + 1, 0, dragObj!);\n }\n }\n return {\n dataList: data,\n dragNodeData: dragNodeData(dragKey, data, fieldNames),\n };\n};\n\nexport const dragNodeData = (\n dorpNodeId: TAny,\n dataList: TAny[],\n fieldNames: { value: string; children: string },\n) => {\n const id = fieldNames.value;\n const children = fieldNames.children;\n tree.walkThroughTree<TPlainObject, TAny>(\n { [id]: undefined, [children]: dataList } as TAny,\n (node, index, _parent) => {\n node['__index'] = index;\n node['__parentId'] = _parent?.[id];\n },\n children,\n );\n const tileList = treeToArray(dataList, children);\n const target = tileList.find((item) => item[id] === dorpNodeId);\n return {\n parentId: target?.['__parentId'],\n id: target?.[id],\n index: target?.['__index'],\n };\n};\n","import { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend } from '@dimjs/utils';\n\nimport { hooks } from '@wove/react';\nimport { Button, message, Spin, Tree, TreeProps } from 'antd';\nimport {\n CSSProperties,\n DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n isUndefinedOrNull,\n TAny,\n TPlainObject,\n treeFilter,\n treeToArray,\n treeToTiledArray,\n} from '@flatbiz/utils';\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 { 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 modelKey: string;\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n * ```\n * 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调\n * ```\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n extraData?: TPlainObject,\n ) => void;\n fieldNames?: { label?: string; value?: string; children?: string };\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n loadDataFlag?: boolean;\n /**\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 }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n /** 搜素过滤方式,高亮 | 过滤;默认:filter */\n searchResultType?: 'highlight' | 'filter';\n /**\n * 拖拽节点处理,自定义onDrop事件后,失效\n * ```\n * 参数\n * 1. parentId 当前拖拽节点的父节点ID\n * 2. id 当前拖拽节点ID\n * 3. index 当前拖拽节点所在数组下标\n * ```\n */\n onDropNodeHandle?: (result: { parentId?: string | number; id: string | number; index: number }) => void;\n /**\n * 拖拽排序前判断,如果返回 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 const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>([]);\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNames = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', ...props.fieldNames };\n }, [props.fieldNames]);\n 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 const tempList = getVauleList(value, labelInValueFieldNamesMerge);\n return tempList;\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 const allValues = treeToArray(state.treeList, fieldNames.children).map((item) => {\n return item[fieldNames.value];\n });\n setTreeExpandedKeys(allValues);\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 const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n return respDataList;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n console.warn(`TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n onRequestResponseChange?.(_respData);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n 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 (Boolean(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 targetList = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n };\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const tiledArray = treeToTiledArray(state.treeList || [], fieldNames);\n const targetList = tiledArray.filter((item) => item.label?.includes(treeSearchValue || ''));\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(targetList.map((item) => item.value)).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n 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 index = strTitle.indexOf(treeSearchValue);\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n titleDom =\n index > -1 ? (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>\n {beforeStr}\n <span className=\"site-tree-search-value\">{treeSearchValue}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom && 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\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem),\n );\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error: 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) {\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={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","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","children","loop","callback","i","cloneState","dragObj","index","arr","splice","dropToGap","unshift","props","expanded","ar","_item","dragNodeData","dorpNodeId","_tree$walkThroughTree","id","_tree","walkThroughTree","undefined","_parent","tileList","parentId","TreeWrapper","forwardRef","ref","style","serviceConfig","effectDependencyList","selectorTreeList","onChange","_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","allValues","expandedKeys","getTreeExpandedKeys","Array","from","Set","concat","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","respDataListNew","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","console","warn","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","Boolean","allState","refresh","newTreeExpandedKeys","forEach","includes","targetList","useUpdateEffect","filter","_item$label","prev","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","list","treeFilter","_node$fieldNames$labe","toLowerCase","indexOf","treeData","_extends2","adapterItem","disabled","strTitle","titleDom","beforeStr","substring","afterStr","slice","_jsxs","_classNames","_jsx","_treeItemName","_disabled","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_extends3","_props$menuOptions3","_extends6","stringLabel","buttonOperateConfig","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/index.d.ts CHANGED
@@ -1839,7 +1839,7 @@ export type InputWrapperProps = Omit<InputProps, "defaultValue"> & {
1839
1839
  export declare const InputWrapper: (props: InputWrapperProps) => import("react/jsx-runtime").JSX.Element;
1840
1840
  export type LabelValueLayoutProps = {
1841
1841
  options: {
1842
- key: string | number;
1842
+ key?: string | number;
1843
1843
  label: string | ReactElement;
1844
1844
  value?: string | number | ReactElement;
1845
1845
  span?: number;
@@ -2014,6 +2014,8 @@ export declare const preDefinedClassName: {
2014
2014
  label_align_left: string;
2015
2015
  label_align_right: string;
2016
2016
  label_value_vertical: string;
2017
+ formItemGap15: string;
2018
+ formItemGap8: string;
2017
2019
  };
2018
2020
  formItem: {
2019
2021
  label_width_70: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "4.2.77",
3
+ "version": "4.2.79",
4
4
  "description": "flat-biz ui components",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",