@flatbiz/antd 4.3.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/esm/amount-fen-input/index.js.map +1 -1
  2. package/esm/bootstrap/index.css +1 -0
  3. package/esm/bootstrap/index.js +12 -0
  4. package/esm/bootstrap/index.js.map +1 -0
  5. package/esm/card-layout/index.css +1 -0
  6. package/esm/card-layout/index.js +5 -0
  7. package/esm/card-layout/index.js.map +1 -0
  8. package/esm/dialog-drawer/index.js +1 -1
  9. package/esm/dialog-drawer/index.js.map +1 -1
  10. package/esm/dialog-modal/index.js +1 -1
  11. package/esm/dialog-modal/index.js.map +1 -1
  12. package/esm/drag-editable-table/index.js +1 -1
  13. package/esm/drag-editable-table/index.js.map +1 -1
  14. package/esm/drag-form-list/index.css +1 -1
  15. package/esm/drag-form-list/index.js +1 -1
  16. package/esm/drag-form-list/index.js.map +1 -1
  17. package/esm/drag-table/index.js +1 -1
  18. package/esm/drag-table/index.js.map +1 -1
  19. package/esm/easy-table/index.css +1 -1
  20. package/esm/easy-table/index.js +2 -2
  21. package/esm/easy-table/index.js.map +1 -1
  22. package/esm/fba-app/index.css +1 -1
  23. package/esm/fba-app/index.js +1 -1
  24. package/esm/fba-app/index.js.map +1 -1
  25. package/esm/fba-hooks/index.js +1 -1
  26. package/esm/fba-hooks/index.js.map +1 -1
  27. package/esm/form-item-group/index.css +1 -1
  28. package/esm/form-list-wrapper/index.css +1 -1
  29. package/esm/index-1f45bfd5.js +3 -0
  30. package/esm/index-1f45bfd5.js.map +1 -0
  31. package/esm/index.css +1 -0
  32. package/esm/index.js +9 -7
  33. package/esm/json-editor/index.js +1 -1
  34. package/esm/json-editor/index.js.map +1 -1
  35. package/esm/label-value-layout/index.css +1 -1
  36. package/esm/local-loading/index.js +1 -1
  37. package/esm/local-loading/index.js.map +1 -1
  38. package/esm/page-fixed-footer/index.css +1 -1
  39. package/esm/rule-describe/index.css +1 -1
  40. package/esm/search-form/index.css +1 -0
  41. package/esm/search-form/index.js +2 -1
  42. package/esm/search-form/index.js.map +1 -1
  43. package/esm/selector-wrapper/index.js.map +1 -1
  44. package/esm/simple-layout/index.js.map +1 -1
  45. package/esm/split-wrapper/index.css +1 -1
  46. package/esm/tips-title/index.css +1 -1
  47. package/esm/tree-selector-wrapper/index.js +2 -2
  48. package/esm/tree-selector-wrapper/index.js.map +1 -1
  49. package/esm/tree-wrapper/index.css +1 -1
  50. package/esm/tree-wrapper/index.js +1 -1
  51. package/esm/tree-wrapper/index.js.map +1 -1
  52. package/index.d.ts +132 -23
  53. package/package.json +1 -1
@@ -1 +1 @@
1
- .v-label-value-layout .ant-descriptions-item-label{color:rgba(0,0,0,.45);flex-shrink:0;width:var(--v-label-value-layout-Width)}.v-label-value-layout .ant-descriptions-item{padding-bottom:8px}.v-label-value-layout .ant-descriptions-item-content{color:rgba(0,0,0,.85);font-weight:400;overflow:hidden}.v-label-value-layout.ant-descriptions-bordered .ant-descriptions-item-content,.v-label-value-layout.ant-descriptions-bordered .ant-descriptions-item-label{padding:8px 10px}.v-label-value-layout-border{border:1px solid #dedede;border-radius:5px;margin-top:20px;padding:10px 10px 2px}.v-label-value-layout:not(.ant-descriptions-bordered) .ant-descriptions-item-label{display:inline-block;text-align:left}.lvl-bordered-padding.ant-descriptions-bordered .ant-descriptions-item-content,.lvl-bordered-padding.ant-descriptions-bordered .ant-descriptions-item-label{padding:var(--v-label-value-layout-row-padding)!important}
1
+ .v-label-value-layout .ant-descriptions-item-label{flex-shrink:0;width:var(--v-label-value-layout-Width)}.v-label-value-layout .ant-descriptions-item{padding-bottom:8px}.v-label-value-layout .ant-descriptions-item-content{font-weight:400;overflow:hidden}.v-label-value-layout.ant-descriptions-bordered .ant-descriptions-item-content,.v-label-value-layout.ant-descriptions-bordered .ant-descriptions-item-label{padding:8px 10px}.v-label-value-layout-border{border:1px solid #dedede;border-radius:5px;margin-top:20px;padding:10px 10px 2px}.v-label-value-layout:not(.ant-descriptions-bordered) .ant-descriptions-item-label{display:inline-block;text-align:left}.lvl-bordered-padding.ant-descriptions-bordered .ant-descriptions-item-content,.lvl-bordered-padding.ant-descriptions-bordered .ant-descriptions-item-label{padding:var(--v-label-value-layout-row-padding)!important}
@@ -4,5 +4,5 @@ import './../dynamic-node/index.css';
4
4
  import './../fba-hooks/index.css';
5
5
  import './index.css';
6
6
  /*! @flatjs/forge MIT @flatbiz/antd */
7
- import{fbaUtils as r}from"../fba-utils/index.js";import{createCtx as e}from"@wove/react/cjs/create-ctx";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{isDeepEqual as t}from"@dimjs/lang/cjs/is-deep-equal";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{toArray as a}from"@flatbiz/utils";import{Result as o,Button as s,Spin as c}from"antd";import{forwardRef as l,useState as u,useRef as m,useMemo as f,useImperativeHandle as d}from"react";import{dynamicNode as v}from"../dynamic-node/index.js";import{fbaHooks as p}from"../fba-hooks/index.js";import{jsx as h,jsxs as g}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"../dom-4d04aa64.js";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var y=e(),j=y[0],b=y[1];var x=l((function(r,e){var l=r.serviceConfig,y=r.isAsync,j=r.children,x=r.errorRender;var C=u("init"),N=C[0],P=C[1];var R=u(),q=R[0],k=R[1];var w=r.loadingHeight===undefined?100:r.loadingHeight;var E=m(null);var H=m();var T=m();var z=p.usePrevious(l.params);var A=f((function(){var r;if(!l.params||a(l.invalidParamKey).length===0){return l.params}var e=i({},l.params);(r=l.invalidParamKey)==null?void 0:r.forEach((function(r){e[r]=undefined}));return e}),[l]);var K=function r(){T.current=undefined;H.current=v.append({content:h(c,{spinning:true}),getContainer:function r(){return E.current}}).elementId};var L=function r(){v.remove(H.current)};var _=function r(e){return new Promise((function(r,n){var t=function(r){return function(e){try{L();return r&&r.call(this,e)}catch(r){return n(r)}}.bind(this)}.bind(this);var a;var o=function(){try{return r()}catch(r){return n(r)}};var s=function(r){try{console.error(r);P("error");T.current=r.message;return t(o)()}catch(r){return t(n)(r)}};try{K();return Promise.resolve(l.onRequest(i({},A,e))).then((function(r){try{a=r;P("success");k(a);return t(o)()}catch(r){return s(r)}}),s)}catch(r){s(r)}}))};p.useEffectCustomAsync(_,[]);p.useEffectCustom((function(){if(z){if(!t(l.params,z)){void _()}}}),[z,l.params]);d(e,(function(){return{onRefresh:_}}));if(N==="error"){if(x){return x(q)}return h(b,{value:{onRequest:_},children:g("div",{className:"local-loading-error",children:[h("div",{className:"local-loading-area",ref:E}),h(o,{status:"error",subTitle:T.current||"数据处理异常",extra:[h(s,{type:"primary",ghost:true,size:"small",onClick:function r(){P("init");setTimeout((function(){void _()}),100)},children:"重新获取"},"console")]})]})})}if(N!=="success"&&!y){return h("div",{className:"fba-local-loading-process",style:{height:w,display:"flex",justifyContent:"center",position:"relative",backgroundColor:"#fff"},children:h("div",{className:"local-loading-area",ref:E})})}return h(b,{value:{onRequest:_},children:g("div",{className:n("fba-local-loading",r.className),style:r.style,children:[h("div",{className:"local-loading-area",ref:E}),h("div",{className:"local-loading-content",style:r.contentStyle,children:j(q)})]})})}));var C=r.attachPropertiesToComponent(x,{useLocalLoading:function r(){var e=j();return{onRequest:function r(n){e.onRequest(n)}}}});export{C as LocalLoading};
7
+ import{fbaUtils as r}from"../fba-utils/index.js";import{createCtx as e}from"@wove/react/cjs/create-ctx";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{isDeepEqual as t}from"@dimjs/lang/cjs/is-deep-equal";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{toArray as o}from"@flatbiz/utils";import{Result as a,Button as s,Spin as c}from"antd";import{forwardRef as l,useState as u,useRef as m,useMemo as f,useImperativeHandle as d}from"react";import{dynamicNode as v}from"../dynamic-node/index.js";import{fbaHooks as p}from"../fba-hooks/index.js";import{jsx as h,jsxs as g}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"../dom-4d04aa64.js";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var y=e(),j=y[0],b=y[1];var x=l((function(r,e){var l=r.serviceConfig,y=r.isAsync,j=r.children,x=r.errorRender;var C=u("init"),N=C[0],P=C[1];var R=u(),q=R[0],k=R[1];var w=r.loadingHeight===undefined?100:r.loadingHeight;var E=m(null);var H=m();var T=m();var z=p.usePrevious(l.params);var A=f((function(){var r;if(!l.params||o(l.invalidParamKey).length===0){return l.params}var e=i({},l.params);(r=l.invalidParamKey)==null?void 0:r.forEach((function(r){e[r]=undefined}));return e}),[l]);var K=function r(){T.current=undefined;H.current=v.append({content:h(c,{spinning:true}),getContainer:function r(){return E.current}}).elementId};var L=function r(){v.remove(H.current)};var _=function r(e){return new Promise((function(r,n){var t=function(r){return function(e){try{L();return r&&r.call(this,e)}catch(r){return n(r)}}.bind(this)}.bind(this);var o;var a=function(){try{return r()}catch(r){return n(r)}};var s=function(r){try{console.error(r);P("error");T.current=r.message;return t(a)()}catch(r){return t(n)(r)}};try{K();return Promise.resolve(l.onRequest(i({},A,e))).then((function(r){try{o=r;P("success");k(o);return t(a)()}catch(r){return s(r)}}),s)}catch(r){s(r)}}))};p.useEffectCustomAsync(_,[]);p.useEffectCustom((function(){if(z){if(!t(l.params,z)){void _()}}}),[z,l.params]);d(e,(function(){return{onRefresh:_}}));if(N==="error"){if(x){return x(q)}return h(b,{value:{onRequest:_},children:g("div",{className:"local-loading-error",children:[h("div",{className:"local-loading-area",ref:E}),h(a,{status:"error",subTitle:T.current||"数据处理异常",extra:[h(s,{type:"primary",ghost:true,size:"small",onClick:function r(){P("init");setTimeout((function(){void _()}),100)},children:"重新获取"},"console")]})]})})}if(N!=="success"&&!y){return h("div",{className:"fba-local-loading-process",style:{height:w,display:"flex",justifyContent:"center",position:"relative",backgroundColor:"var(--block-bg-color)"},children:h("div",{className:"local-loading-area",ref:E})})}return h(b,{value:{onRequest:_},children:g("div",{className:n("fba-local-loading",r.className),style:r.style,children:[h("div",{className:"local-loading-area",ref:E}),h("div",{className:"local-loading-content",style:r.contentStyle,children:j(q)})]})})}));var C=r.attachPropertiesToComponent(x,{useLocalLoading:function r(){var e=j();return{onRequest:function r(n){e.onRequest(n)}}}});export{C as LocalLoading};
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/context.ts","@flatbiz/antd/src/local-loading/local-loading.tsx","@flatbiz/antd/src/local-loading/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useLocalLoadingCtx, LocalLoadingCtxProvider] = createCtx<{\n onRequest: (params?: TPlainObject) => void;\n}>();\n","import { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { dynamicNode } from '../dynamic-node';\nimport { fbaHooks } from '../fba-hooks';\nimport { LocalLoadingCtxProvider } from './context';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TAny>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number | string;\n className?: string;\n style?: CSSProperties;\n contentStyle?: CSSProperties;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: (params?: TPlainObject) => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n * @param props\n * @returns\n */\nexport const LocalLoadingInner = forwardRef<LocalLoadingRefApi, LocalLoadingProps>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const rootRef = useRef<HTMLDivElement>(null);\n const loadingKeyRef = useRef<string>();\n const errorRef = useRef<string>();\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig.params || toArray(serviceConfig.invalidParamKey).length === 0) {\n return serviceConfig.params;\n }\n const newParams = { ...serviceConfig.params };\n serviceConfig.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig]);\n\n const openLoading = () => {\n errorRef.current = undefined;\n loadingKeyRef.current = dynamicNode.append({\n content: <Spin spinning={true}></Spin>,\n getContainer: () => {\n return rootRef.current as HTMLElement;\n },\n }).elementId;\n };\n\n const closeLoading = () => {\n dynamicNode.remove(loadingKeyRef.current);\n };\n\n const onInitRequest = async (params?: TPlainObject) => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest({\n ...serviceParams,\n ...params,\n });\n setStatus('success');\n setRespData(respData);\n } catch (error) {\n console.error(error);\n setStatus('error');\n errorRef.current = error.message;\n } finally {\n closeLoading();\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInitRequest();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n useImperativeHandle(ref, () => {\n return { onRefresh: onInitRequest };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender(respData);\n }\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className=\"local-loading-error\">\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <Result\n status=\"error\"\n subTitle={errorRef.current || '数据处理异常'}\n extra={[\n <Button\n type=\"primary\"\n ghost\n key=\"console\"\n size=\"small\"\n onClick={() => {\n setStatus('init');\n setTimeout(() => {\n void onInitRequest();\n }, 100);\n }}\n >\n 重新获取\n </Button>,\n ]}\n />\n </div>\n </LocalLoadingCtxProvider>\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div\n className=\"fba-local-loading-process\"\n style={{\n height: loadingHeight,\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n backgroundColor: '#fff',\n }}\n >\n <div className=\"local-loading-area\" ref={rootRef}></div>\n </div>\n );\n }\n\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className={classNames('fba-local-loading', props.className)} style={props.style}>\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <div className=\"local-loading-content\" style={props.contentStyle}>\n {children(respData)}\n </div>\n </div>\n </LocalLoadingCtxProvider>\n );\n});\n","import { TPlainObject } from '@flatbiz/utils';\nimport { fbaUtils } from '../fba-utils';\nimport { useLocalLoadingCtx } from './context';\nimport { LocalLoadingInner } from './local-loading';\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n */\nexport const LocalLoading = fbaUtils.attachPropertiesToComponent(LocalLoadingInner, {\n useLocalLoading: () => {\n const ctx = useLocalLoadingCtx();\n return {\n onRequest: (params?: TPlainObject) => {\n ctx.onRequest(params);\n },\n };\n },\n});\n"],"names":["_createCtx","_createCtx2","useLocalLoadingCtx","LocalLoadingCtxProvider","LocalLoadingInner","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","loadingHeight","undefined","rootRef","useRef","loadingKeyRef","errorRef","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","openLoading","current","dynamicNode","append","content","_jsx","Spin","spinning","getContainer","elementId","closeLoading","remove","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_respData","$Try_1_Post","$Try_1_Catch","error","console","message","resolve","onRequest","then","$await_2","useEffectCustomAsync","useEffectCustom","_isDeepEqual","useImperativeHandle","onRefresh","value","_jsxs","className","Result","subTitle","extra","Button","type","ghost","size","onClick","setTimeout","style","height","display","justifyContent","position","backgroundColor","_classNames","contentStyle","LocalLoading","fbaUtils","attachPropertiesToComponent","useLocalLoading","ctx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/context.ts","@flatbiz/antd/src/local-loading/local-loading.tsx","@flatbiz/antd/src/local-loading/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useLocalLoadingCtx, LocalLoadingCtxProvider] = createCtx<{\n onRequest: (params?: TPlainObject) => void;\n}>();\n","import { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { dynamicNode } from '../dynamic-node';\nimport { fbaHooks } from '../fba-hooks';\nimport { LocalLoadingCtxProvider } from './context';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TAny>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number | string;\n className?: string;\n style?: CSSProperties;\n contentStyle?: CSSProperties;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: (params?: TPlainObject) => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n * @param props\n * @returns\n */\nexport const LocalLoadingInner = forwardRef<\n LocalLoadingRefApi,\n LocalLoadingProps\n>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight =\n props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const rootRef = useRef<HTMLDivElement>(null);\n const loadingKeyRef = useRef<string>();\n const errorRef = useRef<string>();\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (\n !serviceConfig.params ||\n toArray(serviceConfig.invalidParamKey).length === 0\n ) {\n return serviceConfig.params;\n }\n const newParams = { ...serviceConfig.params };\n serviceConfig.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig]);\n\n const openLoading = () => {\n errorRef.current = undefined;\n loadingKeyRef.current = dynamicNode.append({\n content: <Spin spinning={true}></Spin>,\n getContainer: () => {\n return rootRef.current as HTMLElement;\n },\n }).elementId;\n };\n\n const closeLoading = () => {\n dynamicNode.remove(loadingKeyRef.current);\n };\n\n const onInitRequest = async (params?: TPlainObject) => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest({\n ...serviceParams,\n ...params,\n });\n setStatus('success');\n setRespData(respData);\n } catch (error) {\n console.error(error);\n setStatus('error');\n errorRef.current = error.message;\n } finally {\n closeLoading();\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInitRequest();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n useImperativeHandle(ref, () => {\n return { onRefresh: onInitRequest };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender(respData);\n }\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className=\"local-loading-error\">\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <Result\n status=\"error\"\n subTitle={errorRef.current || '数据处理异常'}\n extra={[\n <Button\n type=\"primary\"\n ghost\n key=\"console\"\n size=\"small\"\n onClick={() => {\n setStatus('init');\n setTimeout(() => {\n void onInitRequest();\n }, 100);\n }}\n >\n 重新获取\n </Button>,\n ]}\n />\n </div>\n </LocalLoadingCtxProvider>\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div\n className=\"fba-local-loading-process\"\n style={{\n height: loadingHeight,\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n backgroundColor: 'var(--block-bg-color)',\n }}\n >\n <div className=\"local-loading-area\" ref={rootRef}></div>\n </div>\n );\n }\n\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div\n className={classNames('fba-local-loading', props.className)}\n style={props.style}\n >\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <div className=\"local-loading-content\" style={props.contentStyle}>\n {children(respData)}\n </div>\n </div>\n </LocalLoadingCtxProvider>\n );\n});\n","import { TPlainObject } from '@flatbiz/utils';\nimport { fbaUtils } from '../fba-utils';\nimport { useLocalLoadingCtx } from './context';\nimport { LocalLoadingInner } from './local-loading';\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n */\nexport const LocalLoading = fbaUtils.attachPropertiesToComponent(LocalLoadingInner, {\n useLocalLoading: () => {\n const ctx = useLocalLoadingCtx();\n return {\n onRequest: (params?: TPlainObject) => {\n ctx.onRequest(params);\n },\n };\n },\n});\n"],"names":["_createCtx","_createCtx2","useLocalLoadingCtx","LocalLoadingCtxProvider","LocalLoadingInner","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","loadingHeight","undefined","rootRef","useRef","loadingKeyRef","errorRef","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","openLoading","current","dynamicNode","append","content","_jsx","Spin","spinning","getContainer","elementId","closeLoading","remove","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_respData","$Try_1_Post","$Try_1_Catch","error","console","message","resolve","onRequest","then","$await_2","useEffectCustomAsync","useEffectCustom","_isDeepEqual","useImperativeHandle","onRefresh","value","_jsxs","className","Result","subTitle","extra","Button","type","ghost","size","onClick","setTimeout","style","height","display","justifyContent","position","backgroundColor","_classNames","contentStyle","LocalLoading","fbaUtils","attachPropertiesToComponent","useLocalLoading","ctx"],"mappings":";oxBAGO,IAAAA,EAAsDC,IAA/CC,EAAkBF,EAAA,GAAEG,EAAuBH,EAAA,GC4DlD,IAAMI,EAAoBC,GAG/B,SAACC,EAAOC,GACR,IAAQC,EAAkDF,EAAlDE,cAAeC,EAAmCH,EAAnCG,QAASC,EAA0BJ,EAA1BI,SAAUC,EAAgBL,EAAhBK,YAC1C,IAAAC,EAA4BC,EAAuC,QAA5DC,EAAMF,EAAA,GAAEG,EAASH,EAAA,GACxB,IAAAI,EAAgCH,IAAzBI,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAC5B,IAAMG,EACJb,EAAMa,gBAAkBC,UAAY,IAAMd,EAAMa,cAClD,IAAME,EAAUC,EAAuB,MACvC,IAAMC,EAAgBD,IACtB,IAAME,EAAWF,IAEjB,IAAMG,EAAaC,EAASC,YAAYnB,EAAcoB,QAGtD,IAAMC,EAAgBC,GAAQ,WAAM,IAAAC,EAClC,IACGvB,EAAcoB,QACfI,EAAQxB,EAAcyB,iBAAiBC,SAAW,EAClD,CACA,OAAO1B,EAAcoB,MACvB,CACA,IAAMO,EAASC,KAAQ5B,EAAcoB,SACrCG,EAAAvB,EAAcyB,kBAAe,UAAA,EAA7BF,EAA+BM,SAAQ,SAACC,GACtCH,EAAUG,GAAOlB,SACnB,IACA,OAAOe,CACT,GAAG,CAAC3B,IAEJ,IAAM+B,EAAc,SAAdA,IACJf,EAASgB,QAAUpB,UACnBG,EAAciB,QAAUC,EAAYC,OAAO,CACzCC,QAASC,EAACC,EAAI,CAACC,SAAU,OACzBC,aAAc,SAAAA,IACZ,OAAO1B,EAAQmB,OACjB,IACCQ,WAGL,IAAMC,EAAe,SAAfA,IACJR,EAAYS,OAAO3B,EAAciB,UAGnC,IAAMW,EAAgB,SAAhBA,EAAuBvB,GAAP,OAAA,IAAAwB,SAAA,SAAAC,EAAAC,GAAA,IAAAC,EA3GxB,SAAAC,GAAA,OAAC,SAAAC,GAAD,IAyHMR,IAzHyG,OAAOO,GAAUA,EAAME,KAAKC,KAAIF,EAAtI,CAAC,MAAAG,GAAW,OAAON,EAAAM,EAAM,CAAgI,EAA/JC,KAAKF,OAALE,KAAKF,MAAK,IA8GDG,EA9GZ,IAAIC,aAAJ,IAAI,OAAAV,GAAK,CAAC,MAAAO,GAAW,OAAON,EAAAM,EAAM,GAAlC,IAAII,EAAA,SAoHSC,GApHb,IAqHMC,QAAQD,MAAMA,GACdlD,EAAU,SACVS,EAASgB,QAAUyB,EAAME,QAvH/B,OAAOZ,EAAAQ,EAAAR,EAAE,CAAC,MAAAK,GAAW,OAAOL,EAAAD,EAAAC,CAAAK,EAAM,GA4G9B,IACErB,IACiB,OAAAa,QAAAgB,QAAM5D,EAAc6D,UAASjC,EACzCP,CAAAA,EAAAA,EACAD,KAFY0C,eAGfC,GAjHR,IA8GYtD,EAAWsD,EAIjBxD,EAAU,WACVG,EAAYD,GAnHlB,OAAOsC,EAAAQ,EAAAR,EAAE,CAAC,MAAAK,GAAW,OAAOI,EAAAJ,EAAM,CAAC,GAAAI,EAoH9B,CAAC,MAAOC,GAAOD,EAAPC,EAIT,CAEC,GACF,EAEDvC,EAAS8C,qBAAqBrB,EAAe,IAE7CzB,EAAS+C,iBAAgB,WACvB,GAAIhD,EAAY,CACd,IAAKiD,EAAYlE,EAAcoB,OAAQH,GAAa,MAC7C0B,GACP,CACF,CACD,GAAE,CAAC1B,EAAYjB,EAAcoB,SAE9B+C,EAAoBpE,GAAK,WACvB,MAAO,CAAEqE,UAAWzB,EACtB,IAEA,GAAIrC,IAAW,QAAS,CACtB,GAAIH,EAAa,CACf,OAAOA,EAAYM,EACrB,CACA,OACE2B,EAACzC,EAAuB,CAAC0E,MAAO,CAAER,UAAWlB,GAAgBzC,SAC3DoE,EAAA,MAAA,CAAKC,UAAU,sBAAqBrE,UAClCkC,EAAA,MAAA,CAAKmC,UAAU,qBAAqBxE,IAAKc,IACzCuB,EAACoC,EAAM,CACLlE,OAAO,QACPmE,SAAUzD,EAASgB,SAAW,SAC9B0C,MAAO,CACLtC,EAACuC,EAAM,CACLC,KAAK,UACLC,MAAK,KAELC,KAAK,QACLC,QAAS,SAAAA,IACPxE,EAAU,QACVyE,YAAW,gBACJrC,GACN,GAAE,IACH,EAAAzC,SACH,QARK,kBAgBlB,CAEA,GAAII,IAAW,YAAcL,EAAS,CACpC,OACEmC,EAAA,MAAA,CACEmC,UAAU,4BACVU,MAAO,CACLC,OAAQvE,EACRwE,QAAS,OACTC,eAAgB,SAChBC,SAAU,WACVC,gBAAiB,yBACjBpF,SAEFkC,EAAA,MAAA,CAAKmC,UAAU,qBAAqBxE,IAAKc,KAG/C,CAEA,OACEuB,EAACzC,EAAuB,CAAC0E,MAAO,CAAER,UAAWlB,GAAgBzC,SAC3DoE,EAAA,MAAA,CACEC,UAAWgB,EAAW,oBAAqBzF,EAAMyE,WACjDU,MAAOnF,EAAMmF,MAAM/E,UAEnBkC,EAAA,MAAA,CAAKmC,UAAU,qBAAqBxE,IAAKc,IACzCuB,EAAA,MAAA,CAAKmC,UAAU,wBAAwBU,MAAOnF,EAAM0F,aAAatF,SAC9DA,EAASO,SAKpB,IC3LO,IAAMgF,EAAeC,EAASC,4BAA4B/F,EAAmB,CAClFgG,gBAAiB,SAAAA,IACf,IAAMC,EAAMnG,IACZ,MAAO,CACLmE,UAAW,SAAAA,EAACzC,GACVyE,EAAIhC,UAAUzC,EAChB,EAEJ"}
@@ -1 +1 @@
1
- .page-fixed-footer{background-color:#fff;box-shadow:0 0 17px rgba(0,0,0,.08);padding:15px 23px;z-index:9}
1
+ .page-fixed-footer{background-color:var(--block-bg-color);box-shadow:0 0 17px rgba(0,0,0,.08);padding:15px 23px;z-index:9}
@@ -1 +1 @@
1
- .v-rule-describe-title{color:#333;font-size:16px;font-weight:500;margin-bottom:10px;position:relative}.v-rule-describe-item-title{color:#545454;font-size:14px;font-weight:500}.v-rule-describe-item-desc{color:#666;font-size:12px;margin-top:5px}.v-rule-describe-item-title-index{display:inline-block;flex-shrink:0;width:20px}.v-rule-describe-item-title-content{flex:1}.v-rule-describe-item+.v-rule-describe-item{margin-top:8px}.v-rule-describe-title-sign{padding-left:10px}.v-rule-describe-title-sign:before{background:var(--rule-describe-colorPrimary);border-radius:3px;content:"";height:14px;left:0;margin-top:-7px;position:absolute;top:50%;width:3px}.v-rule-describe .v-rule-describe .v-rule-describe-item-title{opacity:.9}
1
+ .dark-theme .v-rule-describe-item-title{color:hsla(0,0%,100%,.85)}.dark-theme .v-rule-describe-item-desc{color:hsla(0,0%,100%,.75)}.light-theme .v-rule-describe-item-title{color:#545454}.light-theme .v-rule-describe-item-desc{color:#666}.v-rule-describe-title{font-size:16px;font-weight:500;margin-bottom:10px;position:relative}.v-rule-describe-item-title{font-size:14px;font-weight:500}.v-rule-describe-item-desc{font-size:12px;margin-top:5px}.v-rule-describe-item-title-index{display:inline-block;flex-shrink:0;width:20px}.v-rule-describe-item-title-content{flex:1}.v-rule-describe-item+.v-rule-describe-item{margin-top:8px}.v-rule-describe-title-sign{padding-left:10px}.v-rule-describe-title-sign:before{background:var(--rule-describe-colorPrimary);border-radius:3px;content:"";height:14px;left:0;margin-top:-7px;position:absolute;top:50%;width:3px}.v-rule-describe .v-rule-describe .v-rule-describe-item-title{opacity:.9}
@@ -0,0 +1 @@
1
+ .search-form{background-color:var(--block-bg-color)}
@@ -5,7 +5,8 @@ import './../fba-hooks/index.css';
5
5
  import './../types/index.css';
6
6
  import './../fba-utils/index.css';
7
7
  import './../form-grid/index.css';
8
+ import './../pre-defined-class-name/index.css';
8
9
  import './index.css';
9
10
  /*! @flatjs/forge MIT @flatbiz/antd */
10
- import e from"@ant-design/icons/es/icons/DownOutlined";import i from"@ant-design/icons/es/icons/UpOutlined";import{_ as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as t}from"@wove/react/cjs/hooks";import{Form as r}from"antd";import{forwardRef as o,useMemo as l,Children as a,useImperativeHandle as s}from"react";import{isFragment as u}from"react-is";import{ButtonWrapper as d}from"../button-wrapper/index.js";import{fbaHooks as f}from"../fba-hooks/index.js";import{FormGrid as p}from"../form-grid/index.js";import{Model as c}from"@dimjs/model-react";import{jsx as m,jsxs as v}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@dimjs/utils/cjs/class-names";import"@flatbiz/utils";import"../index-7f4ad045.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"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";var h={queryCondition:{},isInit:true,openFold:false};var y={actions:{updateFilterCondition:function e(i){return function(e){e.queryCondition=n({},e.queryCondition,i)}},resetFilterCondition:function e(i){return function(e){e.queryCondition=n({},h.queryCondition,i)}},updateInitStatus:function e(){return function(e){e.isInit=false}},onChangeOpenFold:function e(i){return function(e){e.openFold=i}}},state:h};var g={};var j=function e(i){if(!g[i]){g[i]=c(y)}return g[i]};var C=o((function(o,c){var h=t.useId(undefined,"search-form-key");var y=l((function(){return o.cacheSwitch===false?h:location.pathname}),[h,o.cacheSwitch]);var g=j(y).useStore(),C=g[0],F=g[1];var k=r.useForm(),S=k[0];var q=o.queryButtonProps,w=o.resetButtonProps,x=o.searchOperate,O=o.formClassName,b=o.rightOperateAreaAppendType,I=o.onQuery,P=o.onReset,_=o.initRequest,z=o.onFormFinish,L=o.defaultResetButtonTriggerRequest;var A=typeof o.children==="function"?o.children(S):o.children;var B=b||"cover";var R=l((function(){if(u(A)){return a.toArray(A.props.children)}else{return a.toArray(A)}}),[A]);var T=function e(i){Object.keys(i).forEach((function(e){if(e.startsWith("__#invalid_date_")){delete i[e]}}));void F.updateFilterCondition(i);void(I==null?void 0:I(i||{}))};var N=t.useCallbackRef((function(){return new Promise((function(e,i){return Promise.resolve(F.resetFilterCondition()).then((function(n){try{setTimeout((function(){S.resetFields()}),200);P==null?void 0:P();if(L===false){return e()}void T({});return e()}catch(e){return i(e)}}),i)}))}));var K=function e(i){if(z){z(i);return}void T(i)};var V=l((function(){var t;var r=[!(q!=null&&q.hidden)?m(d,n({type:"primary",htmlType:"submit",loadingPosition:"center"},q,{children:(q==null?void 0:q.text)||"查询"}),"1"):null,!(w!=null&&w.hidden)?m(d,n({onClick:N},w,{children:(w==null?void 0:w.text)||"重置"}),"2"):null].filter(Boolean);var l=x==null?void 0:x(S);var a=l==null?void 0:l.rightList;var s=(l==null?void 0:l.leftList)||[];var u=r;if(a){if(B==="afterAppend"){u=[].concat(r,a)}else if(B==="beforeAppend"){u=[].concat(a,r)}else{u=a}}if((t=o.foldKeys)!=null&&t.length){var f=m(d,{type:"link",style:{padding:"0"},onClick:function e(){void F.onChangeOpenFold(!C.openFold)},children:C.openFold?v("span",{children:["收起",m(i,{style:{marginLeft:3,fontSize:12}})]}):v("span",{children:["展开",m(e,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(u.length>0||s.length===0){u.push(f)}else if((s==null?void 0:s.length)>0){s.push(f)}}return R.map((function(e,i){var n;if(!C.openFold&&(n=o.foldKeys)!=null&&n.find((function(i){return".$"+i===e.key}))){return null}if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return m(p.Col,{children:e},i)})).filter(Boolean).concat(m(p.OperateCol,n({},l,{leftList:s,rightList:u}),999))}),[q,w,N,x,S,o.foldKeys,R,B,C.openFold,F]);f.useEffectCustom((function(){if(_===false&&!C.isInit||_!==false){void(I==null?void 0:I(n({},o.formInitialValues,C.queryCondition)))}void F.updateInitStatus()}),[]);s(c,(function(){return{onQuery:T,form:S}}));return m(r,{form:S,autoComplete:"off",onFinish:K,initialValues:n({},o.formInitialValues,C.queryCondition),className:O,style:o.formStyle,children:o.isPure?A:m(p.Row,{gutter:[15,0],gridSize:o.formGridSize,children:V})})}));export{C as SearchForm};
11
+ import{classNames as e}from"@dimjs/utils/cjs/class-names";import i from"@ant-design/icons/es/icons/DownOutlined";import n from"@ant-design/icons/es/icons/UpOutlined";import{_ as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as r}from"@wove/react/cjs/hooks";import{Form as o}from"antd";import{forwardRef as l,useMemo as a,Children as s,useImperativeHandle as u}from"react";import{isFragment as d}from"react-is";import{ButtonWrapper as f}from"../button-wrapper/index.js";import{fbaHooks as p}from"../fba-hooks/index.js";import{FormGrid as c}from"../form-grid/index.js";import{Model as m}from"@dimjs/model-react";import{preDefinedClassName as v}from"../pre-defined-class-name/index.js";import{jsx as h,jsxs as y}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@flatbiz/utils";import"../index-7f4ad045.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"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";var g={queryCondition:{},isInit:true,openFold:false};var j={actions:{updateFilterCondition:function e(i){return function(e){e.queryCondition=t({},e.queryCondition,i)}},resetFilterCondition:function e(i){return function(e){e.queryCondition=t({},g.queryCondition,i)}},updateInitStatus:function e(){return function(e){e.isInit=false}},onChangeOpenFold:function e(i){return function(e){e.openFold=i}}},state:g};var C={};var F=function e(i){if(!C[i]){C[i]=m(j)}return C[i]};var k=l((function(l,m){var g=r.useId(undefined,"search-form-key");var j=a((function(){return l.cacheSwitch===false?g:location.pathname}),[g,l.cacheSwitch]);var C=F(j).useStore(),k=C[0],x=C[1];var S=o.useForm(),q=S[0];var w=l.queryButtonProps,O=l.resetButtonProps,b=l.searchOperate,I=l.formClassName,P=l.rightOperateAreaAppendType,_=l.onQuery,z=l.onReset,L=l.initRequest,A=l.onFormFinish,B=l.defaultResetButtonTriggerRequest;var R=typeof l.children==="function"?l.children(q):l.children;var T=P||"cover";var N=a((function(){if(d(R)){return s.toArray(R.props.children)}else{return s.toArray(R)}}),[R]);var K=function e(i){Object.keys(i).forEach((function(e){if(e.startsWith("__#invalid_date_")){delete i[e]}}));void x.updateFilterCondition(i);void(_==null?void 0:_(i||{}))};var V=r.useCallbackRef((function(){return new Promise((function(e,i){return Promise.resolve(x.resetFilterCondition()).then((function(n){try{setTimeout((function(){q.resetFields()}),200);z==null?void 0:z();if(B===false){return e()}void K({});return e()}catch(e){return i(e)}}),i)}))}));var D=function e(i){if(A){A(i);return}void K(i)};var E=a((function(){var e;var r=[!(w!=null&&w.hidden)?h(f,t({type:"primary",htmlType:"submit",loadingPosition:"center"},w,{children:(w==null?void 0:w.text)||"查询"}),"1"):null,!(O!=null&&O.hidden)?h(f,t({onClick:V},O,{children:(O==null?void 0:O.text)||"重置"}),"2"):null].filter(Boolean);var o=b==null?void 0:b(q);var a=o==null?void 0:o.rightList;var s=(o==null?void 0:o.leftList)||[];var u=r;if(a){if(T==="afterAppend"){u=[].concat(r,a)}else if(T==="beforeAppend"){u=[].concat(a,r)}else{u=a}}if((e=l.foldKeys)!=null&&e.length){var d=h(f,{type:"link",style:{padding:"0"},onClick:function e(){void x.onChangeOpenFold(!k.openFold)},children:k.openFold?y("span",{children:["收起",h(n,{style:{marginLeft:3,fontSize:12}})]}):y("span",{children:["展开",h(i,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(u.length>0||s.length===0){u.push(d)}else if((s==null?void 0:s.length)>0){s.push(d)}}return N.map((function(e,i){var n;if(!k.openFold&&(n=l.foldKeys)!=null&&n.find((function(i){return".$"+i===e.key}))){return null}if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return h(c.Col,{children:e},i)})).filter(Boolean).concat(h(c.OperateCol,t({},o,{leftList:s,rightList:u}),999))}),[w,O,V,b,q,l.foldKeys,N,T,k.openFold,x]);p.useEffectCustom((function(){if(L===false&&!k.isInit||L!==false){void(_==null?void 0:_(t({},l.formInitialValues,k.queryCondition)))}void x.updateInitStatus()}),[]);u(m,(function(){return{onQuery:K,form:q}}));return h(o,{form:q,autoComplete:"off",onFinish:D,initialValues:t({},l.formInitialValues,k.queryCondition),className:e("search-form",v.form.formItemGap8,I),style:l.formStyle,children:l.isPure?R:h(c.Row,{gutter:[15,0],gridSize:l.formGridSize,children:E})})}));export{k as SearchForm};
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/search-form/model.ts","@flatbiz/antd/src/search-form/search.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n openFold: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n onChangeOpenFold: boolean;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n openFold: false,\n};\n\nconst SearchFormModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n onChangeOpenFold: (boo) => {\n return (state) => {\n state.openFold = boo;\n };\n },\n },\n state: defaultState,\n};\n\nconst searchFormModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const searchFormModel = (key: string) => {\n if (!searchFormModels[key]) {\n searchFormModels[key] = Model(SearchFormModel);\n }\n return searchFormModels[key];\n};\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\n\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, forwardRef, ReactElement, useImperativeHandle, useMemo } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { searchFormModel } from './model';\n\nexport type SearchFormProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n searchOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /**\n * 自定义 searchOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n foldKeys?: string[];\n formInitialValues?: TPlainObject;\n /**\n * 按钮提交事件\n * 如果需要自定义回车提交事件,需要自定义提交按钮\n */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 重置按钮 */\n onReset?: () => void;\n /** 查询按钮 */\n onQuery?: (values: TPlainObject) => void;\n /**\n * 是否缓存查询数据,默认值:true\n * ```\n * 1. 一般首页可缓存,二级、三级等页面不能缓存\n * ```\n */\n cacheSwitch?: boolean;\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n};\n\nexport type SearchFormRefApi = {\n onQuery: (values?: TPlainObject) => void;\n form: FormInstance;\n};\n\n/**\n * 搜索表单\n *\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <SearchForm>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </SearchForm>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <SearchForm>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </SearchForm>\n *\n * -- children 可为 function\n * <SearchForm>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </SearchForm>\n *\n * 2. 用户2(自定义布局)\n * SearchForm设置 isPure = true,FormItem无布局规则\n * 3. SearchForm中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 searchOperate 设置操作按钮\n * 5. SearchForm 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,可在右侧按钮区域新增自定义按钮\n * 8. 可设置 cacheSwitch 来控制是否缓存查询数据(一般一级页面可缓存,二级、三级等不能缓存),\n * 缓存数据存储在内存中,react路由跳转可正常读取缓存,浏览器刷新后缓存丢失\n *```\n */\nexport const SearchForm = forwardRef<SearchFormRefApi, SearchFormProps>((props, ref) => {\n const searchFormId = hooks.useId(undefined, 'search-form-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch === false ? searchFormId : location.pathname;\n }, [searchFormId, props.cacheSwitch]);\n\n const [state, actions] = searchFormModel(modelKey).useStore();\n const [form] = Form.useForm();\n const {\n queryButtonProps,\n resetButtonProps,\n searchOperate,\n formClassName,\n rightOperateAreaAppendType,\n onQuery,\n onReset,\n initRequest,\n onFormFinish,\n defaultResetButtonTriggerRequest,\n } = props;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const onInnerQuery = (values) => {\n Object.keys(values).forEach((key) => {\n if (key.startsWith('__#invalid_date_')) {\n delete values[key];\n }\n });\n void actions.updateFilterCondition(values);\n void onQuery?.(values || {});\n };\n\n const onInnerReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n setTimeout(() => {\n form.resetFields();\n }, 200);\n onReset?.();\n if (defaultResetButtonTriggerRequest === false) {\n return;\n }\n void onInnerQuery({});\n });\n\n const onInnerFormFinish = (values) => {\n if (onFormFinish) {\n onFormFinish(values);\n return;\n }\n void onInnerQuery(values);\n };\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper\n key=\"1\"\n type=\"primary\"\n htmlType={'submit'}\n loadingPosition=\"center\"\n {...queryButtonProps}\n >\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onInnerReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = searchOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (props.foldKeys?.length) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n void actions.onChangeOpenFold(!state.openFold);\n }}\n >\n {state.openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!state.openFold && props.foldKeys?.find((keyItem) => `.$${keyItem}` === item.key)) {\n return null;\n }\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n queryButtonProps,\n resetButtonProps,\n onInnerReset,\n searchOperate,\n form,\n props.foldKeys,\n childrens,\n rightOperateAreaAppendTypeFt,\n state.openFold,\n actions,\n ]);\n\n fbaHooks.useEffectCustom(() => {\n if ((initRequest === false && !state.isInit) || initRequest !== false) {\n void onQuery?.({\n ...props.formInitialValues,\n ...state.queryCondition,\n });\n }\n void actions.updateInitStatus();\n }, []);\n\n useImperativeHandle(ref, () => {\n return {\n onQuery: onInnerQuery,\n form,\n };\n });\n\n return (\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onInnerFormFinish}\n initialValues={{\n ...props.formInitialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n style={props.formStyle}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n );\n});\n"],"names":["defaultState","queryCondition","isInit","openFold","SearchFormModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","onChangeOpenFold","boo","searchFormModels","searchFormModel","key","Model","SearchForm","forwardRef","props","ref","searchFormId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_searchFormModel$useS","useStore","_Form$useForm","Form","useForm","form","queryButtonProps","resetButtonProps","searchOperate","formClassName","rightOperateAreaAppendType","onQuery","onReset","initRequest","onFormFinish","defaultResetButtonTriggerRequest","children","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","onInnerQuery","values","Object","keys","forEach","startsWith","onInnerReset","useCallbackRef","Promise","$return","$error","resolve","then","$await_1","setTimeout","resetFields","$boundEx","onInnerFormFinish","formRowChildren","_props$foldKeys","defaultRightList","hidden","_jsx","ButtonWrapper","type","htmlType","loadingPosition","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","foldKeys","length","changeFolditem","style","padding","_jsxs","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","_props$foldKeys2","find","keyItem","FormGrid","Col","OperateCol","fbaHooks","useEffectCustom","formInitialValues","useImperativeHandle","autoComplete","onFinish","initialValues","className","formStyle","isPure","Row","gutter","gridSize","formGridSize"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/search-form/model.ts","@flatbiz/antd/src/search-form/search.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n openFold: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n onChangeOpenFold: boolean;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n openFold: false,\n};\n\nconst SearchFormModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n onChangeOpenFold: (boo) => {\n return (state) => {\n state.openFold = boo;\n };\n },\n },\n state: defaultState,\n};\n\nconst searchFormModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const searchFormModel = (key: string) => {\n if (!searchFormModels[key]) {\n searchFormModels[key] = Model(SearchFormModel);\n }\n return searchFormModels[key];\n};\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\n\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport {\n Children,\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n} from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { searchFormModel } from './model';\nimport { classNames } from '@dimjs/utils';\nimport './style.less';\nimport { preDefinedClassName } from '../pre-defined-class-name';\n\nexport type SearchFormProps = {\n children:\n | ReactElement\n | ReactElement[]\n | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n searchOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /**\n * 自定义 searchOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n foldKeys?: string[];\n formInitialValues?: TPlainObject;\n /**\n * 按钮提交事件\n * 如果需要自定义回车提交事件,需要自定义提交按钮\n */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 重置按钮 */\n onReset?: () => void;\n /** 查询按钮 */\n onQuery?: (values: TPlainObject) => void;\n /**\n * 是否缓存查询数据,默认值:true\n * ```\n * 1. 一般首页可缓存,二级、三级等页面不能缓存\n * ```\n */\n cacheSwitch?: boolean;\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n};\n\nexport type SearchFormRefApi = {\n onQuery: (values?: TPlainObject) => void;\n form: FormInstance;\n};\n\n/**\n * 搜索表单\n *\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <SearchForm>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </SearchForm>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <SearchForm>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </SearchForm>\n *\n * -- children 可为 function\n * <SearchForm>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </SearchForm>\n *\n * 2. 用户2(自定义布局)\n * SearchForm设置 isPure = true,FormItem无布局规则\n * 3. SearchForm中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 searchOperate 设置操作按钮\n * 5. SearchForm 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,可在右侧按钮区域新增自定义按钮\n * 8. 可设置 cacheSwitch 来控制是否缓存查询数据(一般一级页面可缓存,二级、三级等不能缓存),\n * 缓存数据存储在内存中,react路由跳转可正常读取缓存,浏览器刷新后缓存丢失\n *```\n */\nexport const SearchForm = forwardRef<SearchFormRefApi, SearchFormProps>(\n (props, ref) => {\n const searchFormId = hooks.useId(undefined, 'search-form-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch === false ? searchFormId : location.pathname;\n }, [searchFormId, props.cacheSwitch]);\n\n const [state, actions] = searchFormModel(modelKey).useStore();\n const [form] = Form.useForm();\n const {\n queryButtonProps,\n resetButtonProps,\n searchOperate,\n formClassName,\n rightOperateAreaAppendType,\n onQuery,\n onReset,\n initRequest,\n onFormFinish,\n defaultResetButtonTriggerRequest,\n } = props;\n const children =\n typeof props.children === 'function'\n ? props.children(form)\n : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray(\n (children as ReactElement).props.children\n ) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const onInnerQuery = (values) => {\n Object.keys(values).forEach((key) => {\n if (key.startsWith('__#invalid_date_')) {\n delete values[key];\n }\n });\n void actions.updateFilterCondition(values);\n void onQuery?.(values || {});\n };\n\n const onInnerReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n setTimeout(() => {\n form.resetFields();\n }, 200);\n onReset?.();\n if (defaultResetButtonTriggerRequest === false) {\n return;\n }\n void onInnerQuery({});\n });\n\n const onInnerFormFinish = (values) => {\n if (onFormFinish) {\n onFormFinish(values);\n return;\n }\n void onInnerQuery(values);\n };\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper\n key=\"1\"\n type=\"primary\"\n htmlType={'submit'}\n loadingPosition=\"center\"\n {...queryButtonProps}\n >\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onInnerReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = searchOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (props.foldKeys?.length) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n void actions.onChangeOpenFold(!state.openFold);\n }}\n >\n {state.openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (\n !state.openFold &&\n props.foldKeys?.find((keyItem) => `.$${keyItem}` === item.key)\n ) {\n return null;\n }\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol\n key={999}\n {...customFormOperateCol}\n leftList={leftList}\n rightList={rightList}\n />\n );\n }, [\n queryButtonProps,\n resetButtonProps,\n onInnerReset,\n searchOperate,\n form,\n props.foldKeys,\n childrens,\n rightOperateAreaAppendTypeFt,\n state.openFold,\n actions,\n ]);\n\n fbaHooks.useEffectCustom(() => {\n if ((initRequest === false && !state.isInit) || initRequest !== false) {\n void onQuery?.({\n ...props.formInitialValues,\n ...state.queryCondition,\n });\n }\n void actions.updateInitStatus();\n }, []);\n\n useImperativeHandle(ref, () => {\n return {\n onQuery: onInnerQuery,\n form,\n };\n });\n\n return (\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onInnerFormFinish}\n initialValues={{\n ...props.formInitialValues,\n ...state.queryCondition,\n }}\n className={classNames(\n 'search-form',\n preDefinedClassName.form.formItemGap8,\n formClassName\n )}\n style={props.formStyle}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n );\n }\n);\n"],"names":["defaultState","queryCondition","isInit","openFold","SearchFormModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","onChangeOpenFold","boo","searchFormModels","searchFormModel","key","Model","SearchForm","forwardRef","props","ref","searchFormId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_searchFormModel$useS","useStore","_Form$useForm","Form","useForm","form","queryButtonProps","resetButtonProps","searchOperate","formClassName","rightOperateAreaAppendType","onQuery","onReset","initRequest","onFormFinish","defaultResetButtonTriggerRequest","children","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","onInnerQuery","values","Object","keys","forEach","startsWith","onInnerReset","useCallbackRef","Promise","$return","$error","resolve","then","$await_1","setTimeout","resetFields","$boundEx","onInnerFormFinish","formRowChildren","_props$foldKeys","defaultRightList","hidden","_jsx","ButtonWrapper","type","htmlType","loadingPosition","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","foldKeys","length","changeFolditem","style","padding","_jsxs","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","_props$foldKeys2","find","keyItem","FormGrid","Col","OperateCol","fbaHooks","useEffectCustom","formInitialValues","useImperativeHandle","autoComplete","onFinish","initialValues","className","_classNames","preDefinedClassName","formItemGap8","formStyle","isPure","Row","gutter","gridSize","formGridSize"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper/use-request.ts","@flatbiz/antd/src/selector-wrapper/utils.ts","@flatbiz/antd/src/selector-wrapper/selector-wrapper.tsx"],"sourcesContent":["import { isArray, isDeepEqual } from '@dimjs/lang';\nimport { get, json } from '@dimjs/utils';\nimport { isUndefinedOrNull, TPlainObject } from '@flatbiz/utils';\nimport pubSub from 'pubsub-js';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { TRequestStatus } from '../request-status';\nimport { SelectorServiceConfig, SelectorWrapperProps } from './types';\n\nexport const useRequest = (options: {\n cacheKey: string;\n serviceConfig?: SelectorServiceConfig;\n hasOuterSelectorList?: boolean;\n onChange?: SelectorWrapperProps['onChange'];\n outerSelectorList?: SelectorWrapperProps['selectorList'];\n onRespDataChange?: (dataList?: TPlainObject[]) => void;\n onSelectorRequestError?: SelectorWrapperProps['onSelectorRequestError'];\n useCache: boolean;\n fieldNames: SelectorWrapperProps['fieldNames'];\n}) => {\n const {\n cacheKey,\n serviceConfig,\n hasOuterSelectorList,\n outerSelectorList,\n onRespDataChange,\n onSelectorRequestError,\n onChange,\n useCache,\n fieldNames,\n } = options;\n const serviceRequestParams = serviceConfig?.params;\n const requiredParamsKeys = serviceConfig?.requiredParamsKeys || [];\n const hasServiceRequestParams = serviceRequestParams && Object.keys(serviceRequestParams).length > 0;\n\n const [stateSelectorList, setStateSelectorList] = useState<TPlainObject[]>();\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>();\n const [refreshKey, setRefreshKey] = useState(Date.now());\n\n const serviceRequestParamsStringify = useMemo(() => {\n try {\n if (hasServiceRequestParams) {\n const sortDataStringify = JSON.stringify(json.sort(serviceRequestParams));\n if (sortDataStringify === '{}') {\n return undefined;\n }\n return sortDataStringify;\n }\n } catch (error) {}\n return undefined;\n }, [hasServiceRequestParams, serviceRequestParams]);\n // 将 undefined => 'undefined'\n const serviceRequestCahceKey = `${serviceRequestParamsStringify}`;\n const serviceRequestCahceStatusKey = `${serviceRequestParamsStringify}_status`;\n const pubSubKey = `${cacheKey}_${serviceRequestCahceKey}`;\n\n // 上一个参数值\n const prevServiceRequestParamsStringify = fbaHooks.usePrevious(serviceRequestParamsStringify);\n const prevParams = fbaHooks.usePrevious(serviceRequestParams);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig?.onRequestResultAdapter) {\n return serviceConfig?.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames?.list) {\n const result = get(respData, fieldNames?.list);\n return isArray(result) ? result : [];\n }\n return respData;\n };\n\n const getWindowCacheData = () => {\n return window['__selector_wrapper_']?.[cacheKey];\n };\n const getWindowCacheValue = () => {\n return getWindowCacheData()?.[serviceRequestCahceKey];\n };\n const getWindowCacheStatus = () => {\n return getWindowCacheData()?.[serviceRequestCahceStatusKey];\n };\n\n const setWindowCache = (key, value) => {\n if (!window['__selector_wrapper_']) {\n window['__selector_wrapper_'] = {};\n }\n if (!window['__selector_wrapper_'][cacheKey]) {\n window['__selector_wrapper_'][cacheKey] = {};\n }\n window['__selector_wrapper_'][cacheKey][key] = value;\n };\n\n const onChangeRequestStatus = (status: TRequestStatus) => {\n setWindowCache(serviceRequestCahceStatusKey, status);\n setRequestStatus(status);\n };\n\n const onRequest = async () => {\n try {\n onChangeRequestStatus('request-progress');\n\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData) || [];\n\n setWindowCache(serviceRequestCahceKey, respAdapterData);\n onChangeRequestStatus('request-success');\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-success',\n respData: respAdapterData,\n });\n });\n\n return respAdapterData;\n } catch (error) {\n console.error(error);\n onChangeRequestStatus('request-error');\n setStateSelectorList(undefined);\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-error',\n });\n });\n onSelectorRequestError?.(error);\n return Promise.reject();\n }\n };\n\n fbaHooks.useEffectCustomAsync(async () => {\n if (hasOuterSelectorList) {\n setRequestStatus('request-success');\n setStateSelectorList(outerSelectorList);\n onRespDataChange?.(outerSelectorList);\n return;\n }\n if (requiredParamsKeys.length > 0) {\n const isEmpty = serviceRequestParams\n ? requiredParamsKeys.find((key) => isUndefinedOrNull(serviceRequestParams[key]))\n : true;\n if (isEmpty) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setStateSelectorList([]);\n setRequestStatus('no-dependencies-params');\n /**\n * 怎么判断数据是从有到无的\n * 每一次 params 变少,只要 上一次 params 值存在,就应该清空 value 值\n */\n if (prevServiceRequestParamsStringify) {\n onChange?.(undefined);\n }\n return;\n }\n\n // 不使用缓存模式\n if (useCache === false) {\n // 判断参数是否发生变化\n if (isDeepEqual(serviceRequestParams, prevParams)) {\n return;\n }\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData) || [];\n setRequestStatus('request-success');\n setStateSelectorList(respAdapterData);\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n return;\n }\n }\n\n /**\n * 此处无法判断 调用props.onChange?.(undefined);\n * A、B、C\n * 例如:C依赖A、B,当外部只修改了一个元素,理论上应该应该清空C value 值(调用onChange(undefined)),如果此时外部直接回填A、B、C时,C无法回填成功;该场景只能在A、B的onChange事件中,清空C\n */\n // if (prevServiceRequestParamsStringify) {\n // props.onChange?.(undefined);\n // }\n\n const status = getWindowCacheStatus();\n if (status === 'request-success') {\n const dataList = getWindowCacheValue();\n setStateSelectorList(dataList);\n setRequestStatus(status);\n onRespDataChange?.(dataList);\n return;\n }\n if (status === 'request-progress') {\n setRequestStatus(status);\n pubSub.subscribe(pubSubKey, (_msg, { status, respData }) => {\n if (status === 'request-success') {\n setRequestStatus(status);\n setStateSelectorList(respData);\n onRespDataChange?.(respData);\n } else {\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n }\n });\n return;\n }\n try {\n const respAdapterData = await onRequest();\n setStateSelectorList(respAdapterData);\n setRequestStatus('request-success');\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n }, [JSON.stringify(serviceRequestParams), outerSelectorList, refreshKey]);\n\n const onRefreshRequest = () => {\n setRefreshKey(Date.now());\n };\n\n return {\n requestStatus,\n stateSelectorList,\n serviceRequestParamsStringify,\n onRefreshRequest,\n };\n};\n","import { isObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\n/**\n * value存在两种格式\n * 1. string | number;\n * 2. labelInValue 格式\n * @param data\n * @param labelInValueFieldNames\n * @returns\n */\nexport const getVauleList = (data, valueKey: string | number) => {\n let valueList = toArray<string | number>(data);\n valueList = valueList.map((item) => {\n if (isObject(item)) return item[valueKey];\n return item;\n });\n return valueList;\n};\n","import { arrayFind, TAny, toArray, TPlainObject, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select } from 'antd';\nimport { useMemo, useRef } from 'react';\nimport './style.less';\n\nimport { RedoOutlined } from '@ant-design/icons';\nimport { isString } from '@dimjs/lang';\nimport { RequestStatus } from '../request-status';\nimport { SelectorWrapperProps } from './types';\nimport { useRequest } from './use-request';\nimport { getVauleList } from './utils';\nexport * from './types';\n/**\n * 选择器包装组件\n * ```\n * 1. 不支持搜索 + 调用服务模式\n * ```\n */\nexport const SelectorWrapper = (props: SelectorWrapperProps) => {\n const {\n serviceConfig,\n showAllOption,\n onSelectorListChange,\n onSelectorListAllChange,\n onSelectorRequestError,\n onLabelRenderAdapter,\n requestMessageConfig,\n selectorList: outerSelectorList,\n modelKey,\n fieldNames,\n value,\n labelInValue,\n useCache,\n ...otherProps\n } = props;\n\n const firstRenderSelectList = useRef(true);\n\n // props 是否存在 selectorList,selectorList = undefined 也算存在\n const hasOuterSelectorList = props.hasOwnProperty('selectorList');\n const mergeFieldNames = {\n label: 'label',\n value: 'value',\n disabled: 'disabled',\n ...fieldNames,\n };\n\n const {\n label: optionsItemLabelField,\n value: optionsItemValueField,\n disabled: optionsItemDisabledField,\n } = mergeFieldNames;\n\n const allOptionConfig = useMemo(() => {\n if (!showAllOption) return null;\n const isTrue = showAllOption === true;\n return {\n [optionsItemLabelField]: isTrue ? '全部' : showAllOption.label,\n [optionsItemValueField]: isTrue ? '' : showAllOption.value,\n };\n }, [optionsItemLabelField, optionsItemValueField, showAllOption]);\n\n const isMultiple = valueIsEqual(props.mode, ['multiple']);\n\n const { requestStatus, stateSelectorList, onRefreshRequest } = useRequest({\n fieldNames: mergeFieldNames,\n cacheKey: modelKey,\n hasOuterSelectorList,\n onChange: props.onChange,\n serviceConfig,\n outerSelectorList,\n onRespDataChange: (dataList) => {\n if (firstRenderSelectList.current) {\n onSelectorListChange?.(dataList || []);\n firstRenderSelectList.current = false;\n }\n onSelectorListAllChange?.(dataList || []);\n },\n onSelectorRequestError,\n useCache: useCache === undefined ? true : useCache,\n });\n\n const onRespChange = hooks.useCallbackRef((selectedList: TPlainObject[]) => {\n if (labelInValue) {\n if (isMultiple) {\n props.onChange?.(selectedList, selectedList);\n } else {\n props.onChange?.(selectedList[0], selectedList);\n }\n } else {\n const valueList = selectedList.map((item) => item[optionsItemValueField]);\n if (isMultiple) {\n props.onChange?.(valueList, selectedList);\n } else {\n props.onChange?.(valueList[0], selectedList[0]);\n }\n }\n });\n\n const onInnerChange = hooks.useCallbackRef((_value, otherParams) => {\n if (!otherParams) return props.onChange?.(undefined);\n const selectedList = toArray<TAny>(otherParams);\n const targetList = [] as TPlainObject[];\n selectedList.forEach((item) => {\n if (showAllOption && allOptionConfig && item.value === allOptionConfig[optionsItemValueField]) {\n targetList.push(allOptionConfig);\n } else {\n const filterTarget = arrayFind(stateSelectorList || [], item.value, optionsItemValueField);\n if (filterTarget) {\n targetList.push(filterTarget);\n }\n }\n });\n onRespChange(targetList);\n });\n\n const selectorAllList = useMemo(() => {\n if (requestStatus !== 'request-success') return [];\n if (!stateSelectorList || stateSelectorList.length === 0) return [];\n if (!allOptionConfig) return stateSelectorList;\n return [allOptionConfig].concat(stateSelectorList);\n }, [allOptionConfig, requestStatus, stateSelectorList]);\n\n const loading = requestStatus === 'request-progress';\n\n const selectValue = useMemo(() => {\n const targetList = getVauleList(value, optionsItemValueField);\n return isMultiple ? targetList : targetList[0];\n }, [isMultiple, optionsItemValueField, value]);\n\n const filterOption = hooks.useCallbackRef((input: string, option) => {\n const children = toArray(option.children);\n let mergeString = '';\n children.forEach((item) => {\n if (isString(item)) mergeString += item;\n });\n return mergeString.toLowerCase().indexOf(input.toLowerCase()) >= 0;\n });\n\n return (\n <Select\n showSearch={true}\n allowClear={true}\n popupMatchSelectWidth={false}\n filterOption={filterOption}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n value={selectValue}\n loading={loading}\n onChange={onInnerChange}\n fieldNames={undefined}\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onRefreshRequest} />\n ) : (\n otherProps.suffixIcon\n )\n }\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={onRefreshRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {selectorAllList.map((item, index) => {\n const value = item[optionsItemValueField];\n const label = item[optionsItemLabelField];\n return (\n <Select.Option\n value={value}\n label={label}\n key={`${value}-${index}`}\n disabled={item[optionsItemDisabledField]}\n >\n {props.showIcon ? (\n <span className=\"v-selector-item-icon\">{props.icon?.(item, index)}</span>\n ) : null}\n {onLabelRenderAdapter ? onLabelRenderAdapter(item) : label}\n </Select.Option>\n );\n })}\n </Select>\n );\n};\n"],"names":["useRequest","options","cacheKey","serviceConfig","hasOuterSelectorList","outerSelectorList","onRespDataChange","onSelectorRequestError","onChange","useCache","fieldNames","serviceRequestParams","params","requiredParamsKeys","hasServiceRequestParams","Object","keys","length","_useState","useState","stateSelectorList","setStateSelectorList","_useState2","requestStatus","setRequestStatus","_useState3","Date","now","refreshKey","setRefreshKey","serviceRequestParamsStringify","useMemo","sortDataStringify","JSON","stringify","_json","sort","undefined","error","serviceRequestCahceKey","serviceRequestCahceStatusKey","pubSubKey","prevServiceRequestParamsStringify","fbaHooks","usePrevious","prevParams","serviceRespDataAdapter","respData","onRequestResultAdapter","list","result","_get","_isArray","getWindowCacheData","_window$__selector_wr","window","getWindowCacheValue","_getWindowCacheData","getWindowCacheStatus","_getWindowCacheData2","setWindowCache","key","value","onChangeRequestStatus","status","onRequest","Promise","$return","$error","respAdapterData","$Try_2_Catch","console","setTimeout","pubSub","publish","reject","$boundEx","resolve","then","$await_7","useEffectCustomAsync","isEmpty","_dataList","_respAdapterData","find","isUndefinedOrNull","_isDeepEqual","$Try_3_Post","$Try_3_Catch","$await_8","$If_5","call","this","dataList","subscribe","_msg","_ref","$Try_4_Post","$Try_4_Catch","$await_9","onRefreshRequest","getVauleList","data","valueKey","valueList","toArray","map","item","_isObject","SelectorWrapper","props","showAllOption","onSelectorListChange","onSelectorListAllChange","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","firstRenderSelectList","useRef","hasOwnProperty","mergeFieldNames","_extends","label","disabled","optionsItemLabelField","optionsItemValueField","optionsItemDisabledField","allOptionConfig","isTrue","isMultiple","valueIsEqual","mode","_useRequest","current","onRespChange","_hooks","useCallbackRef","selectedList","onInnerChange","_value","otherParams","targetList","forEach","push","filterTarget","arrayFind","selectorAllList","concat","loading","selectValue","filterOption","input","option","children","mergeString","_isString","toLowerCase","indexOf","_jsx","Select","showSearch","allowClear","popupMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","index","_jsxs","Option","showIcon","className","icon"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper/use-request.ts","@flatbiz/antd/src/selector-wrapper/utils.ts","@flatbiz/antd/src/selector-wrapper/selector-wrapper.tsx"],"sourcesContent":["import { isArray, isDeepEqual } from '@dimjs/lang';\nimport { get, json } from '@dimjs/utils';\nimport { isUndefinedOrNull, type TPlainObject } from '@flatbiz/utils';\nimport pubSub from 'pubsub-js';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { type TRequestStatus } from '../request-status';\nimport { type SelectorServiceConfig, type SelectorWrapperProps } from './types';\n\nexport const useRequest = (options: {\n cacheKey: string;\n serviceConfig?: SelectorServiceConfig;\n hasOuterSelectorList?: boolean;\n onChange?: SelectorWrapperProps['onChange'];\n outerSelectorList?: SelectorWrapperProps['selectorList'];\n onRespDataChange?: (dataList?: TPlainObject[]) => void;\n onSelectorRequestError?: SelectorWrapperProps['onSelectorRequestError'];\n useCache: boolean;\n fieldNames: SelectorWrapperProps['fieldNames'];\n}) => {\n const {\n cacheKey,\n serviceConfig,\n hasOuterSelectorList,\n outerSelectorList,\n onRespDataChange,\n onSelectorRequestError,\n onChange,\n useCache,\n fieldNames,\n } = options;\n const serviceRequestParams = serviceConfig?.params;\n const requiredParamsKeys = serviceConfig?.requiredParamsKeys || [];\n const hasServiceRequestParams =\n serviceRequestParams && Object.keys(serviceRequestParams).length > 0;\n\n const [stateSelectorList, setStateSelectorList] = useState<TPlainObject[]>();\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>();\n const [refreshKey, setRefreshKey] = useState(Date.now());\n\n const serviceRequestParamsStringify = useMemo(() => {\n try {\n if (hasServiceRequestParams) {\n const sortDataStringify = JSON.stringify(\n json.sort(serviceRequestParams)\n );\n if (sortDataStringify === '{}') {\n return undefined;\n }\n return sortDataStringify;\n }\n } catch (error) {}\n return undefined;\n }, [hasServiceRequestParams, serviceRequestParams]);\n // 将 undefined => 'undefined'\n const serviceRequestCahceKey = `${serviceRequestParamsStringify}`;\n const serviceRequestCahceStatusKey = `${serviceRequestParamsStringify}_status`;\n const pubSubKey = `${cacheKey}_${serviceRequestCahceKey}`;\n\n // 上一个参数值\n const prevServiceRequestParamsStringify = fbaHooks.usePrevious(\n serviceRequestParamsStringify\n );\n const prevParams = fbaHooks.usePrevious(serviceRequestParams);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig?.onRequestResultAdapter) {\n return serviceConfig?.onRequestResultAdapter(\n respData as unknown as TPlainObject\n );\n }\n if (fieldNames?.list) {\n const result = get(respData, fieldNames?.list);\n return isArray(result) ? result : [];\n }\n return respData;\n };\n\n const getWindowCacheData = () => {\n return window['__selector_wrapper_']?.[cacheKey];\n };\n const getWindowCacheValue = () => {\n return getWindowCacheData()?.[serviceRequestCahceKey];\n };\n const getWindowCacheStatus = () => {\n return getWindowCacheData()?.[serviceRequestCahceStatusKey];\n };\n\n const setWindowCache = (key, value) => {\n if (!window['__selector_wrapper_']) {\n window['__selector_wrapper_'] = {};\n }\n if (!window['__selector_wrapper_'][cacheKey]) {\n window['__selector_wrapper_'][cacheKey] = {};\n }\n window['__selector_wrapper_'][cacheKey][key] = value;\n };\n\n const onChangeRequestStatus = (status: TRequestStatus) => {\n setWindowCache(serviceRequestCahceStatusKey, status);\n setRequestStatus(status);\n };\n\n const onRequest = async () => {\n try {\n onChangeRequestStatus('request-progress');\n\n const respData = await serviceConfig?.onRequest?.(\n serviceRequestParams || {}\n );\n const respAdapterData = serviceRespDataAdapter(respData) || [];\n\n setWindowCache(serviceRequestCahceKey, respAdapterData);\n onChangeRequestStatus('request-success');\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-success',\n respData: respAdapterData,\n });\n });\n\n return respAdapterData;\n } catch (error) {\n console.error(error);\n onChangeRequestStatus('request-error');\n setStateSelectorList(undefined);\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-error',\n });\n });\n onSelectorRequestError?.(error);\n return Promise.reject();\n }\n };\n\n fbaHooks.useEffectCustomAsync(async () => {\n if (hasOuterSelectorList) {\n setRequestStatus('request-success');\n setStateSelectorList(outerSelectorList);\n onRespDataChange?.(outerSelectorList);\n return;\n }\n if (requiredParamsKeys.length > 0) {\n const isEmpty = serviceRequestParams\n ? requiredParamsKeys.find((key) =>\n isUndefinedOrNull(serviceRequestParams[key])\n )\n : true;\n if (isEmpty) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setStateSelectorList([]);\n setRequestStatus('no-dependencies-params');\n /**\n * 怎么判断数据是从有到无的\n * 每一次 params 变少,只要 上一次 params 值存在,就应该清空 value 值\n */\n if (prevServiceRequestParamsStringify) {\n onChange?.(undefined);\n }\n return;\n }\n\n // 不使用缓存模式\n if (useCache === false) {\n // 判断参数是否发生变化\n if (isDeepEqual(serviceRequestParams, prevParams)) {\n return;\n }\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig?.onRequest?.(\n serviceRequestParams || {}\n );\n const respAdapterData = serviceRespDataAdapter(respData) || [];\n setRequestStatus('request-success');\n setStateSelectorList(respAdapterData);\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n return;\n }\n }\n\n /**\n * 此处无法判断 调用props.onChange?.(undefined);\n * A、B、C\n * 例如:C依赖A、B,当外部只修改了一个元素,理论上应该应该清空C value 值(调用onChange(undefined)),如果此时外部直接回填A、B、C时,C无法回填成功;该场景只能在A、B的onChange事件中,清空C\n */\n // if (prevServiceRequestParamsStringify) {\n // props.onChange?.(undefined);\n // }\n\n const status = getWindowCacheStatus();\n if (status === 'request-success') {\n const dataList = getWindowCacheValue();\n setStateSelectorList(dataList);\n setRequestStatus(status);\n onRespDataChange?.(dataList);\n return;\n }\n if (status === 'request-progress') {\n setRequestStatus(status);\n pubSub.subscribe(pubSubKey, (_msg, { status, respData }) => {\n if (status === 'request-success') {\n setRequestStatus(status);\n setStateSelectorList(respData);\n onRespDataChange?.(respData);\n } else {\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n }\n });\n return;\n }\n try {\n const respAdapterData = await onRequest();\n setStateSelectorList(respAdapterData);\n setRequestStatus('request-success');\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n }, [JSON.stringify(serviceRequestParams), outerSelectorList, refreshKey]);\n\n const onRefreshRequest = () => {\n setRefreshKey(Date.now());\n };\n\n return {\n requestStatus,\n stateSelectorList,\n serviceRequestParamsStringify,\n onRefreshRequest,\n };\n};\n","import { isObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\n/**\n * value存在两种格式\n * 1. string | number;\n * 2. labelInValue 格式\n * @param data\n * @param labelInValueFieldNames\n * @returns\n */\nexport const getVauleList = (data, valueKey: string | number) => {\n let valueList = toArray<string | number>(data);\n valueList = valueList.map((item) => {\n if (isObject(item)) return item[valueKey];\n return item;\n });\n return valueList;\n};\n","import { arrayFind, TAny, toArray, TPlainObject, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select } from 'antd';\nimport { useMemo, useRef } from 'react';\nimport './style.less';\n\nimport { RedoOutlined } from '@ant-design/icons';\nimport { isString } from '@dimjs/lang';\nimport { RequestStatus } from '../request-status';\nimport { SelectorWrapperProps } from './types';\nimport { useRequest } from './use-request';\nimport { getVauleList } from './utils';\nexport * from './types';\n/**\n * 选择器包装组件\n * ```\n * 1. 不支持搜索 + 调用服务模式\n * ```\n */\nexport const SelectorWrapper = (props: SelectorWrapperProps) => {\n const {\n serviceConfig,\n showAllOption,\n onSelectorListChange,\n onSelectorListAllChange,\n onSelectorRequestError,\n onLabelRenderAdapter,\n requestMessageConfig,\n selectorList: outerSelectorList,\n modelKey,\n fieldNames,\n value,\n labelInValue,\n useCache,\n ...otherProps\n } = props;\n\n const firstRenderSelectList = useRef(true);\n\n // props 是否存在 selectorList,selectorList = undefined 也算存在\n const hasOuterSelectorList = props.hasOwnProperty('selectorList');\n const mergeFieldNames = {\n label: 'label',\n value: 'value',\n disabled: 'disabled',\n ...fieldNames,\n };\n\n const {\n label: optionsItemLabelField,\n value: optionsItemValueField,\n disabled: optionsItemDisabledField,\n } = mergeFieldNames;\n\n const allOptionConfig = useMemo(() => {\n if (!showAllOption) return null;\n const isTrue = showAllOption === true;\n return {\n [optionsItemLabelField]: isTrue ? '全部' : showAllOption.label,\n [optionsItemValueField]: isTrue ? '' : showAllOption.value,\n };\n }, [optionsItemLabelField, optionsItemValueField, showAllOption]);\n\n const isMultiple = valueIsEqual(props.mode, ['multiple']);\n\n const { requestStatus, stateSelectorList, onRefreshRequest } = useRequest({\n fieldNames: mergeFieldNames,\n cacheKey: modelKey,\n hasOuterSelectorList,\n onChange: props.onChange,\n serviceConfig,\n outerSelectorList,\n onRespDataChange: (dataList) => {\n if (firstRenderSelectList.current) {\n onSelectorListChange?.(dataList || []);\n firstRenderSelectList.current = false;\n }\n onSelectorListAllChange?.(dataList || []);\n },\n onSelectorRequestError,\n useCache: useCache === undefined ? true : useCache,\n });\n\n const onRespChange = hooks.useCallbackRef((selectedList: TPlainObject[]) => {\n if (labelInValue) {\n if (isMultiple) {\n props.onChange?.(selectedList, selectedList);\n } else {\n props.onChange?.(selectedList[0], selectedList);\n }\n } else {\n const valueList = selectedList.map((item) => item[optionsItemValueField]);\n if (isMultiple) {\n props.onChange?.(valueList, selectedList);\n } else {\n props.onChange?.(valueList[0], selectedList[0]);\n }\n }\n });\n\n const onInnerChange = hooks.useCallbackRef((_value, otherParams) => {\n if (!otherParams) return props.onChange?.(undefined);\n const selectedList = toArray<TAny>(otherParams);\n const targetList = [] as TPlainObject[];\n selectedList.forEach((item) => {\n if (showAllOption && allOptionConfig && item.value === allOptionConfig[optionsItemValueField]) {\n targetList.push(allOptionConfig);\n } else {\n const filterTarget = arrayFind(stateSelectorList || [], item.value, optionsItemValueField);\n if (filterTarget) {\n targetList.push(filterTarget);\n }\n }\n });\n onRespChange(targetList);\n });\n\n const selectorAllList = useMemo(() => {\n if (requestStatus !== 'request-success') return [];\n if (!stateSelectorList || stateSelectorList.length === 0) return [];\n if (!allOptionConfig) return stateSelectorList;\n return [allOptionConfig].concat(stateSelectorList);\n }, [allOptionConfig, requestStatus, stateSelectorList]);\n\n const loading = requestStatus === 'request-progress';\n\n const selectValue = useMemo(() => {\n const targetList = getVauleList(value, optionsItemValueField);\n return isMultiple ? targetList : targetList[0];\n }, [isMultiple, optionsItemValueField, value]);\n\n const filterOption = hooks.useCallbackRef((input: string, option) => {\n const children = toArray(option.children);\n let mergeString = '';\n children.forEach((item) => {\n if (isString(item)) mergeString += item;\n });\n return mergeString.toLowerCase().indexOf(input.toLowerCase()) >= 0;\n });\n\n return (\n <Select\n showSearch={true}\n allowClear={true}\n popupMatchSelectWidth={false}\n filterOption={filterOption}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n value={selectValue}\n loading={loading}\n onChange={onInnerChange}\n fieldNames={undefined}\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onRefreshRequest} />\n ) : (\n otherProps.suffixIcon\n )\n }\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={onRefreshRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {selectorAllList.map((item, index) => {\n const value = item[optionsItemValueField];\n const label = item[optionsItemLabelField];\n return (\n <Select.Option\n value={value}\n label={label}\n key={`${value}-${index}`}\n disabled={item[optionsItemDisabledField]}\n >\n {props.showIcon ? (\n <span className=\"v-selector-item-icon\">{props.icon?.(item, index)}</span>\n ) : null}\n {onLabelRenderAdapter ? onLabelRenderAdapter(item) : label}\n </Select.Option>\n );\n })}\n </Select>\n );\n};\n"],"names":["useRequest","options","cacheKey","serviceConfig","hasOuterSelectorList","outerSelectorList","onRespDataChange","onSelectorRequestError","onChange","useCache","fieldNames","serviceRequestParams","params","requiredParamsKeys","hasServiceRequestParams","Object","keys","length","_useState","useState","stateSelectorList","setStateSelectorList","_useState2","requestStatus","setRequestStatus","_useState3","Date","now","refreshKey","setRefreshKey","serviceRequestParamsStringify","useMemo","sortDataStringify","JSON","stringify","_json","sort","undefined","error","serviceRequestCahceKey","serviceRequestCahceStatusKey","pubSubKey","prevServiceRequestParamsStringify","fbaHooks","usePrevious","prevParams","serviceRespDataAdapter","respData","onRequestResultAdapter","list","result","_get","_isArray","getWindowCacheData","_window$__selector_wr","window","getWindowCacheValue","_getWindowCacheData","getWindowCacheStatus","_getWindowCacheData2","setWindowCache","key","value","onChangeRequestStatus","status","onRequest","Promise","$return","$error","respAdapterData","$Try_2_Catch","console","setTimeout","pubSub","publish","reject","$boundEx","resolve","then","$await_7","useEffectCustomAsync","isEmpty","_dataList","_respAdapterData","find","isUndefinedOrNull","_isDeepEqual","$Try_3_Post","$Try_3_Catch","$await_8","$If_5","call","this","dataList","subscribe","_msg","_ref","$Try_4_Post","$Try_4_Catch","$await_9","onRefreshRequest","getVauleList","data","valueKey","valueList","toArray","map","item","_isObject","SelectorWrapper","props","showAllOption","onSelectorListChange","onSelectorListAllChange","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","firstRenderSelectList","useRef","hasOwnProperty","mergeFieldNames","_extends","label","disabled","optionsItemLabelField","optionsItemValueField","optionsItemDisabledField","allOptionConfig","isTrue","isMultiple","valueIsEqual","mode","_useRequest","current","onRespChange","_hooks","useCallbackRef","selectedList","onInnerChange","_value","otherParams","targetList","forEach","push","filterTarget","arrayFind","selectorAllList","concat","loading","selectValue","filterOption","input","option","children","mergeString","_isString","toLowerCase","indexOf","_jsx","Select","showSearch","allowClear","popupMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","index","_jsxs","Option","showIcon","className","icon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/simple-layout/simple-layout.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport { Space } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, ReactNode } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type SimpleLayoutProps = {\n className?: string;\n style?: CSSProperties;\n title?: string | ReactElement;\n desc?: string | ReactElement | string[] | ReactElement[];\n /**\n * @deprecated 已过期,请使用form className 属性 preDefinedClassName.form.xxx\n */\n formLabelAlign?: 'left' | 'right';\n /**\n * layoutType 布局类型\n * ```\n * 1. layer:分层布局\n * 2. tight:紧凑布局(没有外边距)\n * ```\n */\n layoutType?: 'layer' | 'tight';\n titleLeftLine?: boolean;\n titleStyle?: CSSProperties;\n contentStyle?: CSSProperties;\n /** 优先级大于 style padding */\n padding?: CSSProperties['padding'];\n /** 优先级大于 style width */\n width?: CSSProperties['width'];\n children?: ReactNode | ReactNode[];\n titleExtra?: string | ReactElement;\n hidden?: boolean;\n titleFixed?: boolean;\n /**\n * 间距尺寸\n * 1. default = 15\n * 2. small = 8\n */\n size?: 'default' | 'small';\n onClick?: (event) => void;\n};\n\n/**\n * 简单布局\n * @param props\n * @returns\n * ```\n * 1. layoutType 布局类型\n * layer:分层布局\n * tight:紧凑布局(没有外边距)\n * ```\n */\nexport const SimpleLayout = (props: SimpleLayoutProps) => {\n const labelAlign = props.formLabelAlign || 'right';\n const className = classNames(\n 'simple-layout',\n {\n 'simple-layout-tight': props.layoutType === 'tight',\n 'simple-layout-formlabel-left': labelAlign === 'left',\n 'simple-layout-title-fixed': props.titleFixed,\n 'simple-layout-small': props.size === 'small',\n },\n props.className,\n );\n\n const theme = fbaHooks.useThemeToken();\n const style = extend({ '--simple-layout-colorPrimary': theme.colorPrimary }, props.style, {\n padding: props.padding,\n width: props.width,\n });\n\n if (props.hidden) return <Fragment />;\n\n return (\n <div className={className} style={style} onClick={props.onClick}>\n {props.title && props.titleExtra ? (\n <div\n className={classNames({ 'simple-layout-title-sign': props.titleLeftLine })}\n style={props.titleStyle}\n >\n <Space className=\"simple-layout-title-extra-space\">\n <div className=\"simple-layout-title\">{props.title}</div>\n <div className=\"simple-layout-title-extra\">{props.titleExtra}</div>\n </Space>\n </div>\n ) : null}\n {props.title && !props.titleExtra ? (\n <div\n className={classNames('simple-layout-title', {\n 'simple-layout-title-sign': props.titleLeftLine,\n })}\n style={props.titleStyle}\n >\n {props.title}\n </div>\n ) : null}\n {props.desc && !isArray(props.desc) ? <div className=\"simple-layout-desc\">{props.desc}</div> : null}\n {props.desc && isArray(props.desc) ? (\n <div className=\"simple-layout-desc\">\n <Space direction=\"vertical\" size={5}>\n {(props.desc as string[]).map((item, index) => {\n return <Fragment key={index}>{item}</Fragment>;\n })}\n </Space>\n </div>\n ) : null}\n {props.children ? (\n <div className=\"simple-layout-content\" style={props.contentStyle}>\n {props.children}\n </div>\n ) : null}\n </div>\n );\n};\n\nSimpleLayout.defaultProps = {\n titleLeftLine: true,\n layoutType: 'layer',\n};\n"],"names":["SimpleLayout","props","labelAlign","formLabelAlign","className","_classNames","layoutType","titleFixed","size","theme","fbaHooks","useThemeToken","style","_extend","colorPrimary","padding","width","hidden","_jsx","Fragment","_jsxs","onClick","children","title","titleExtra","titleLeftLine","titleStyle","Space","desc","_isArray","direction","map","item","index","contentStyle","defaultProps"],"mappings":";qdAsDaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAMC,EAAaD,EAAME,gBAAkB,QAC3C,IAAMC,EAAYC,EAChB,gBACA,CACE,sBAAuBJ,EAAMK,aAAe,QAC5C,+BAAgCJ,IAAe,OAC/C,4BAA6BD,EAAMM,WACnC,sBAAuBN,EAAMO,OAAS,SAExCP,EAAMG,WAGR,IAAMK,EAAQC,EAASC,gBACvB,IAAMC,EAAQC,EAAO,CAAE,+BAAgCJ,EAAMK,cAAgBb,EAAMW,MAAO,CACxFG,QAASd,EAAMc,QACfC,MAAOf,EAAMe,QAGf,GAAIf,EAAMgB,OAAQ,OAAOC,EAACC,EAAQ,CAAE,GAEpC,OACEC,EAAA,MAAA,CAAKhB,UAAWA,EAAWQ,MAAOA,EAAOS,QAASpB,EAAMoB,QAAQC,SAAA,CAC7DrB,EAAMsB,OAAStB,EAAMuB,WACpBN,EAAA,MAAA,CACEd,UAAWC,EAAW,CAAE,2BAA4BJ,EAAMwB,gBAC1Db,MAAOX,EAAMyB,WAAWJ,SAExBF,EAACO,EAAK,CAACvB,UAAU,kCAAiCkB,UAChDJ,EAAA,MAAA,CAAKd,UAAU,sBAAqBkB,SAAErB,EAAMsB,QAC5CL,EAAA,MAAA,CAAKd,UAAU,4BAA2BkB,SAAErB,EAAMuB,kBAGpD,KACHvB,EAAMsB,QAAUtB,EAAMuB,WACrBN,EAAA,MAAA,CACEd,UAAWC,EAAW,sBAAuB,CAC3C,2BAA4BJ,EAAMwB,gBAEpCb,MAAOX,EAAMyB,WAAWJ,SAEvBrB,EAAMsB,QAEP,KACHtB,EAAM2B,OAASC,EAAQ5B,EAAM2B,MAAQV,EAAA,MAAA,CAAKd,UAAU,qBAAoBkB,SAAErB,EAAM2B,OAAc,KAC9F3B,EAAM2B,MAAQC,EAAQ5B,EAAM2B,MAC3BV,EAAA,MAAA,CAAKd,UAAU,qBAAoBkB,SACjCJ,EAACS,EAAK,CAACG,UAAU,WAAWtB,KAAM,EAAEc,SAChCrB,EAAM2B,KAAkBG,KAAI,SAACC,EAAMC,GACnC,OAAOf,EAACC,EAAQ,CAAAG,SAAcU,GAARC,UAI1B,KACHhC,EAAMqB,SACLJ,EAAA,MAAA,CAAKd,UAAU,wBAAwBQ,MAAOX,EAAMiC,aAAaZ,SAC9DrB,EAAMqB,WAEP,OAGV,EAEAtB,EAAamC,aAAe,CAC1BV,cAAe,KACfnB,WAAY"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/simple-layout/simple-layout.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport { Space } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, ReactNode } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type SimpleLayoutProps = {\n className?: string;\n style?: CSSProperties;\n title?: string | ReactElement;\n desc?: string | ReactElement | string[] | ReactElement[];\n /**\n * @deprecated 已过期,请使用form className 属性 preDefinedClassName.form.xxx\n */\n formLabelAlign?: 'left' | 'right';\n /**\n * layoutType 布局类型\n * ```\n * 1. layer:分层布局\n * 2. tight:紧凑布局(没有外边距)\n * ```\n */\n layoutType?: 'layer' | 'tight';\n titleLeftLine?: boolean;\n titleStyle?: CSSProperties;\n contentStyle?: CSSProperties;\n /** 优先级大于 style padding */\n padding?: CSSProperties['padding'];\n /** 优先级大于 style width */\n width?: CSSProperties['width'];\n children?: ReactNode | ReactNode[];\n titleExtra?: string | ReactElement;\n hidden?: boolean;\n titleFixed?: boolean;\n /**\n * 间距尺寸\n * 1. default = 15\n * 2. small = 8\n */\n size?: 'default' | 'small';\n onClick?: (event) => void;\n};\n\n/**\n * 简单布局\n * @deprecated 已过期,使用 CardLayout 组件替代\n * ```\n * 1. layoutType 布局类型\n * layer:分层布局\n * tight:紧凑布局(没有外边距)\n * ```\n */\nexport const SimpleLayout = (props: SimpleLayoutProps) => {\n const labelAlign = props.formLabelAlign || 'right';\n const className = classNames(\n 'simple-layout',\n {\n 'simple-layout-tight': props.layoutType === 'tight',\n 'simple-layout-formlabel-left': labelAlign === 'left',\n 'simple-layout-title-fixed': props.titleFixed,\n 'simple-layout-small': props.size === 'small',\n },\n props.className,\n );\n\n const theme = fbaHooks.useThemeToken();\n const style = extend({ '--simple-layout-colorPrimary': theme.colorPrimary }, props.style, {\n padding: props.padding,\n width: props.width,\n });\n\n if (props.hidden) return <Fragment />;\n\n return (\n <div className={className} style={style} onClick={props.onClick}>\n {props.title && props.titleExtra ? (\n <div\n className={classNames({ 'simple-layout-title-sign': props.titleLeftLine })}\n style={props.titleStyle}\n >\n <Space className=\"simple-layout-title-extra-space\">\n <div className=\"simple-layout-title\">{props.title}</div>\n <div className=\"simple-layout-title-extra\">{props.titleExtra}</div>\n </Space>\n </div>\n ) : null}\n {props.title && !props.titleExtra ? (\n <div\n className={classNames('simple-layout-title', {\n 'simple-layout-title-sign': props.titleLeftLine,\n })}\n style={props.titleStyle}\n >\n {props.title}\n </div>\n ) : null}\n {props.desc && !isArray(props.desc) ? <div className=\"simple-layout-desc\">{props.desc}</div> : null}\n {props.desc && isArray(props.desc) ? (\n <div className=\"simple-layout-desc\">\n <Space direction=\"vertical\" size={5}>\n {(props.desc as string[]).map((item, index) => {\n return <Fragment key={index}>{item}</Fragment>;\n })}\n </Space>\n </div>\n ) : null}\n {props.children ? (\n <div className=\"simple-layout-content\" style={props.contentStyle}>\n {props.children}\n </div>\n ) : null}\n </div>\n );\n};\n\nSimpleLayout.defaultProps = {\n titleLeftLine: true,\n layoutType: 'layer',\n};\n"],"names":["SimpleLayout","props","labelAlign","formLabelAlign","className","_classNames","layoutType","titleFixed","size","theme","fbaHooks","useThemeToken","style","_extend","colorPrimary","padding","width","hidden","_jsx","Fragment","_jsxs","onClick","children","title","titleExtra","titleLeftLine","titleStyle","Space","desc","_isArray","direction","map","item","index","contentStyle","defaultProps"],"mappings":";qdAqDaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAMC,EAAaD,EAAME,gBAAkB,QAC3C,IAAMC,EAAYC,EAChB,gBACA,CACE,sBAAuBJ,EAAMK,aAAe,QAC5C,+BAAgCJ,IAAe,OAC/C,4BAA6BD,EAAMM,WACnC,sBAAuBN,EAAMO,OAAS,SAExCP,EAAMG,WAGR,IAAMK,EAAQC,EAASC,gBACvB,IAAMC,EAAQC,EAAO,CAAE,+BAAgCJ,EAAMK,cAAgBb,EAAMW,MAAO,CACxFG,QAASd,EAAMc,QACfC,MAAOf,EAAMe,QAGf,GAAIf,EAAMgB,OAAQ,OAAOC,EAACC,EAAQ,CAAE,GAEpC,OACEC,EAAA,MAAA,CAAKhB,UAAWA,EAAWQ,MAAOA,EAAOS,QAASpB,EAAMoB,QAAQC,SAAA,CAC7DrB,EAAMsB,OAAStB,EAAMuB,WACpBN,EAAA,MAAA,CACEd,UAAWC,EAAW,CAAE,2BAA4BJ,EAAMwB,gBAC1Db,MAAOX,EAAMyB,WAAWJ,SAExBF,EAACO,EAAK,CAACvB,UAAU,kCAAiCkB,UAChDJ,EAAA,MAAA,CAAKd,UAAU,sBAAqBkB,SAAErB,EAAMsB,QAC5CL,EAAA,MAAA,CAAKd,UAAU,4BAA2BkB,SAAErB,EAAMuB,kBAGpD,KACHvB,EAAMsB,QAAUtB,EAAMuB,WACrBN,EAAA,MAAA,CACEd,UAAWC,EAAW,sBAAuB,CAC3C,2BAA4BJ,EAAMwB,gBAEpCb,MAAOX,EAAMyB,WAAWJ,SAEvBrB,EAAMsB,QAEP,KACHtB,EAAM2B,OAASC,EAAQ5B,EAAM2B,MAAQV,EAAA,MAAA,CAAKd,UAAU,qBAAoBkB,SAAErB,EAAM2B,OAAc,KAC9F3B,EAAM2B,MAAQC,EAAQ5B,EAAM2B,MAC3BV,EAAA,MAAA,CAAKd,UAAU,qBAAoBkB,SACjCJ,EAACS,EAAK,CAACG,UAAU,WAAWtB,KAAM,EAAEc,SAChCrB,EAAM2B,KAAkBG,KAAI,SAACC,EAAMC,GACnC,OAAOf,EAACC,EAAQ,CAAAG,SAAcU,GAARC,UAI1B,KACHhC,EAAMqB,SACLJ,EAAA,MAAA,CAAKd,UAAU,wBAAwBQ,MAAOX,EAAMiC,aAAaZ,SAC9DrB,EAAMqB,WAEP,OAGV,EAEAtB,EAAamC,aAAe,CAC1BV,cAAe,KACfnB,WAAY"}
@@ -1 +1 @@
1
- .split-warpper-horizontal{display:flex;height:100%;overflow:hidden}.split-warpper-vertical{display:flex;flex-direction:column;height:100%}.split-warpper-panel{background-color:#fff;height:100%;overflow:auto;position:relative}.split-warpper .gutter-horizontal{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==");background-position:50%;background-repeat:no-repeat}.split-warpper .gutter-vertical{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII=");background-position:50%;background-repeat:no-repeat;cursor:row-resize}
1
+ .split-warpper-horizontal{display:flex;height:100%;overflow:hidden}.split-warpper-vertical{display:flex;flex-direction:column;height:100%}.split-warpper-panel{background-color:var(--block-bg-color);height:100%;overflow:auto;position:relative}.split-warpper .gutter-horizontal{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==");background-position:50%;background-repeat:no-repeat}.split-warpper .gutter-vertical{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII=");background-position:50%;background-repeat:no-repeat;cursor:row-resize}
@@ -1 +1 @@
1
- .tips-title{border:1px solid var(--v-border-color,#d9d9d9);border-radius:8px;padding:24px;position:relative}.tips-title-title{background-color:#fff;font-weight:600;left:10px;padding:0 10px;position:absolute;top:0;transform:translateY(-50%)}.tips-title-small{padding:12px}.tips-title+.tips-title{margin-top:20px}
1
+ .tips-title{border:1px solid var(--v-border-color,#d9d9d9);border-radius:8px;padding:24px;position:relative}.tips-title-title{background-color:var(--block-bg-color);font-weight:600;left:10px;padding:0 10px;position:absolute;top:0;transform:translateY(-50%)}.tips-title-small{padding:12px}.tips-title+.tips-title{margin-top:20px}
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable */
2
- import './../request-status/index.css';
3
2
  import './../fba-hooks/index.css';
3
+ import './../request-status/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{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-a0769acd.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};
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-a0769acd.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{usePrevious as p}from"ahooks";import{TreeSelect as S,Button as b}from"antd";import{dequal as g}from"dequal";import{useState as C,useRef as y,useMemo as L,createElement as w}from"react";import{fbaHooks as q}from"../fba-hooks/index.js";import{RequestStatus as k}from"../request-status/index.js";import{Model as R}from"@dimjs/model-react";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]=R(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,R=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 $=R||[];var ee=q.useSafeState(false),re=ee[0],te=ee[1];var ne=C(),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=y(true);var de=L((function(){if(X.treeCheckStrictly)return true;return H}),[H,X.treeCheckStrictly]);var ve=L((function(){return u({label:"label",value:"value",children:"children",disabled:"disabled"},_)}),[_]);var me=L((function(){return u({label:"label",value:"value"},K)}),[K]);var he=L((function(){if(J){var e=J===true;return{label:e?"全部":J.label,value:e?"":J.value}}return null}),[J]);var pe=y(true);var Se=p(B);q.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($.length){ye([]);void Ce();return}var e=N(V).getState();if(e.requestStatus==="request-success"){return}if(!window[se]){void Ce();return}}),$,g);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)}));q.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 w(S.TreeNode,u({},r,{disabled:a,value:n,title:l,key:""+n}),t&&t.length>0&&xe(t))}))}));var Ee=L((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=L((function(){if(n(Ee)&&Ee.length===0){return undefined}return ce?Ee:Ee[0]}),[ce,Ee]);return T(S,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(k,{status:ue.requestStatus,messageConfig:j,loading:re,errorButton:T(b,{type:"primary",onClick:we,children:"重新获取数据"})}),children:xe(ue.treeSelectorList)}))};export{V as TreeSelectorWrapper};
7
7
  //# sourceMappingURL=index.js.map