@flatbiz/antd 4.5.39 → 4.5.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/cascader-wrapper/index.js +1 -2
- package/esm/cascader-wrapper/index.js.map +1 -1
- package/esm/easy-form/index.js +1 -1
- package/esm/easy-form/index.js.map +1 -1
- package/esm/form-item-wrapper/index.js +1 -1
- package/esm/form-item-wrapper/index.js.map +1 -1
- package/esm/form-item-wrapper-dependencies/index.js +1 -1
- package/esm/form-item-wrapper-dependencies/index.js.map +1 -1
- package/esm/index.js +2 -2
- package/index.d.ts +13 -7
- package/package.json +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './../fba-hooks/index.css';
|
|
3
|
-
import './../request-status/index.css';
|
|
4
3
|
import './index.css';
|
|
5
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import e from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as
|
|
5
|
+
import e from"@ant-design/icons/es/icons/CloseCircleFilled";import n from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as i,_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as t}from"@wove/react/cjs/hooks";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{get as l}from"@dimjs/utils/cjs/get";import{extend as u}from"@dimjs/utils/cjs/extend";import{toArray as s,isUndefinedOrNull as f,treeNodeParentsList as c}from"@flatbiz/utils";import{Cascader as d,Button as v,Flex as m}from"antd";import{forwardRef as p,useState as g,useRef as h,useMemo as C,useEffect as y,useImperativeHandle as q}from"react";import{fbaHooks as j}from"../fba-hooks/index.js";import{RequestStatus as R}from"../request-status/index.js";import{isPlainObject as b}from"@dimjs/lang/cjs/is-plain-object";import{jsx as L,jsxs as k}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";var w=function e(n){var r=s(n);return r.map((function(e){return b(e)?e==null?void 0:e["value"]:e}))};var P=["serviceConfig","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue"];var x=p((function(s,p){var b=s.serviceConfig,x=s.fieldNames,N=s.isDynamicLoad,S=s.requestMessageConfig,E=s.onSelectorListChange,D=s.responseType,I=s.labelInValue,O=i(s,P);var A=g([]),B=A[0],F=A[1];var J=g("request-init"),K=J[0],M=J[1];var T=h(S);var V=j.useSafeState(false),_=V[0],z=V[1];var H=u(true,{label:"label",value:"value",children:"children"},x);var G=g(),Q=G[0],U=G[1];var W=j.usePrevious(JSON.stringify((b==null?void 0:b.params)||{}));var X=C((function(){return JSON.stringify((b==null?void 0:b.params)||{})}),[b==null?void 0:b.params]);y((function(){T.current=S}),[S]);var Y=function e(n){if(b!=null&&b.onRequestResultAdapter){return b.onRequestResultAdapter(n)}if(x!=null&&x.list){n=l(n,x==null?void 0:x.list)}if(!a(n)){console.warn("接口返回数据不是数组类型,已被忽略",n);return[]}return n};var Z=t.useCallbackRef((function(){return new Promise((function(e,n){var r,i,t,a;if(!(b!=null&&b.onRequest)){return n(new Error("onRequest 调用接口服务不能为空"))}var l=function(){try{return e()}catch(e){return n(e)}};var u=function(e){try{z(false);T.current=o({},T.current,{"request-error":e.message||"获取数据异常"});M("request-error");return l()}catch(e){return n(e)}};try{r=b.params||{};if(b!=null&&b.requiredParamsKeys){i=b==null?void 0:b.requiredParamsKeys.find((function(e){return f(r[e])}));if(i){F([]);M("no-dependencies-params");if(s.value){s.onChange==null?void 0:s.onChange(undefined)}return e()}}z(true);M("request-progress");return Promise.resolve(b.onRequest==null?void 0:b.onRequest(r)).then((function(e){try{t=e;a=Y(t);if(N){a.map((function(e){e.isLeaf=e.isLeaf||false}))}z(false);F(a||[]);E==null?void 0:E(a||[]);return l()}catch(e){return u(e)}}),u)}catch(e){u(e)}}))}));j.useEffectCustom((function(){var e=w(s.value);if(e.length>0){if(D==="all"){U(e)}else{var n=c(e[0],B,true,H).reverse();if(n.length===0){U([s.value])}else{U(n)}}}else{U(undefined)}}),[B,s.value]);q(p,(function(){return{getCascaderList:function e(){return B}}}));j.useEffectCustom((function(){if(W){if(X!==W){void Z()}}}),[W,X]);var $=t.useCallbackRef((function(){void Z()}));j.useEffectCustom((function(){void Z()}),[]);var ee=function e(n){return new Promise((function(e,r){var i,t,a,l;t=n[n.length-1];t.loading=true;return Promise.resolve(b==null||b.onRequest==null?void 0:b.onRequest(o({},b.params,(i={},i[H.value]=t[H.value],i)))).then((function(n){try{a=n;l=Y(a);if(!l||l.length===0){t.isLeaf=true}else{l.map((function(e){e.isLeaf=e.isLeaf||false}));t.children=l}t.loading=false;E==null?void 0:E(B||[]);F([].concat(B));return e()}catch(e){return r(e)}}),r)}))};var ne=t.useCallbackRef((function(e,n){if(I!==true){if(D==="all"){s.onChange==null?void 0:s.onChange(e,n)}else{s.onChange==null?void 0:s.onChange(e==null?void 0:e[e.length-1],n)}}else{var r=n==null?void 0:n.map((function(e){return{label:e[H.label],value:e[H.value]}}));if(D==="all"){s.onChange==null?void 0:s.onChange(r,n)}else{s.onChange==null?void 0:s.onChange(r==null?void 0:r[r.length-1],n)}}}));var re=t.useCallbackRef((function(){void(s.onChange==null?void 0:s.onChange(undefined))}));return L(d,o({showSearch:true,allowClear:true},O,{popupClassName:r("cascader-wrapper-popup",O.popupClassName),notFoundContent:L(R,{status:K,loading:_,messageConfig:T.current,errorButton:L(v,{type:"primary",onClick:$,ghost:true,children:"重新获取数据"})}),loading:_,loadData:N?ee:undefined,fieldNames:H,suffixIcon:K==="request-error"?k(m,{style:{display:"inline-flex",gap:10},children:[L(n,{spin:_,onClick:$}),L(e,{style:{color:"#ff4d4f"}})]}):undefined,options:B,value:Q,multiple:false,onChange:ne,onClear:re}))}));export{x as CascaderWrapper};
|
|
7
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/cascader-wrapper/model.ts","@flatbiz/antd/src/cascader-wrapper/utils.ts","@flatbiz/antd/src/cascader-wrapper/cascader-wrapper.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n selectorList: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setSelectBoxList: { selectorList: TPlainObject[] };\n changeRequestStatus: ModelState['requestStatus'];\n};\n\nconst defaultState: ModelState = {\n selectorList: [],\n queryIsEmpty: false,\n requestStatus: 'request-init',\n};\n\nconst _SelectorWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setSelectBoxList: (params) => {\n return (state) => {\n state.selectorList = params.selectorList || [];\n state.requestStatus = 'request-success';\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n };\n },\n },\n state: defaultState,\n};\n\nconst cascaderWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const cascaderWrapperModel = (key: string) => {\n if (!cascaderWrapperModels[key]) {\n cascaderWrapperModels[key] = Model(_SelectorWrapperModel);\n }\n return cascaderWrapperModels[key];\n};\n","import { isPlainObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\nexport const getValues = (value: any) => {\n const values = toArray(value);\n return values.map((item) => {\n return isPlainObject(item) ? item?.['value'] : item;\n });\n};\n","import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend, get } from '@dimjs/utils';\nimport type { LabelValueItem, TPlainObject } from '@flatbiz/utils';\nimport { cloneObject, treeNodeParentsList, type TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport type { CascaderProps } from 'antd';\nimport { Button, Cascader, message } from 'antd';\nimport type { ReactElement } from 'react';\nimport { forwardRef, useImperativeHandle, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks/index';\nimport type { TRequestStatusProps } from '../request-status/request-status';\nimport { RequestStatus } from '../request-status/request-status';\nimport { cascaderWrapperModel } from './model';\nimport './style.less';\nimport { getValues } from './utils';\n\ntype CascaderWrapperServiceConfig = {\n params?: TPlainObject;\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type CascaderWrapperProps = Omit<\n CascaderProps<TAny>,\n 'loading' | 'notFoundContent' | 'options' | 'value' | 'multiple' | 'onChange' | 'fieldNames'\n> & {\n // 模型唯一值\n modelKey: string;\n /**\n * 参数Key映射\n * ```\n * 1. 默认值:value=value、label=label、children=children\n * 2. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 3. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * 4. 如果没有配置list,可说明接口返回为数组\n * ```\n */\n fieldNames?: {\n list?: string;\n label?: string;\n value?: string;\n children?: string;\n };\n /**\n * 请求服务需求的数据,当设置`selectorList`后无效果\n */\n serviceConfig?: CascaderWrapperServiceConfig;\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 是否动态加载选项\n */\n isDynamicLoad?: boolean;\n value?: string | number | Array<string | number> | LabelValueItem | LabelValueItem[];\n onChange?: (value?: string | number | Array<string | number>, selectedList?: TPlainObject[]) => void;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * 选择数据响应类型(当用户选中后响应数据),默认值:last\n * ```\n * 1. last 响应选中的最后一级数据\n * 2. all 响应选中的多级数据\n * ```\n */\n responseType?: 'last' | 'all';\n /** 响应数据是否包含label、value */\n labelInValue?: boolean;\n};\n\nexport type CascaderWrapperRefApi = {\n getCascaderList: () => TPlainObject[];\n};\n/**\n * 级联选择器包装组件\n * ```\n * 1. 数据源中 value 不能重复\n * 2. 不支持多选\n * 3. modelKey的配置是为了缓存数据,只缓存初始化数据,如果isDynamicLoad=true,动态获取的数据不再缓存\n * 4. onChange操作第一个参数返回叶子节点value(可配置返回多级),第二个参数返回选中的多级数据\n * 5. isDynamicLoad=true 会在请求中添加当前选中option的fieldNames.value为key的数据\n * ```\n */\nexport const CascaderWrapper = forwardRef<CascaderWrapperRefApi, CascaderWrapperProps>((props, ref) => {\n const {\n serviceConfig,\n modelKey,\n fieldNames,\n isDynamicLoad,\n requestMessageConfig,\n onSelectorListChange,\n responseType,\n labelInValue,\n ...otherProps\n } = props;\n const [options, setOptions] = useState<TAny[]>([]);\n\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const [state, actions] = cascaderWrapperModel(modelKey).useStore();\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNamesMerge = extend(true, { label: 'label', value: 'value', children: 'children' }, fieldNames);\n const [valueList, setValueList] = useState<string[]>();\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig?.onRequestResultAdapter) {\n return serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames?.list) {\n respData = get(respData, fieldNames?.list);\n }\n if (!isArray(respData)) {\n console.warn('接口返回数据不是数组类型,已被忽略', respData);\n return [];\n }\n return respData;\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!serviceConfig?.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n try {\n setLoading(true);\n window[requestPreKey] = true;\n void actions.changeRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(serviceConfig.params);\n const respAdapterData = serviceRespDataAdapter(respData);\n if (isDynamicLoad) {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n }\n setLoading(false);\n window[requestPreKey] = false;\n void actions.setSelectBoxList({\n selectorList: respAdapterData || [],\n });\n onSelectorListChange?.(respAdapterData || []);\n } catch (error: TAny) {\n setLoading(false);\n window[requestPreKey] = false;\n void actions.changeRequestStatus('request-error');\n void message.error(error.message || '获取数据异常');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (window[requestPreKey]) return;\n if (state.requestStatus === 'request-success') {\n setOptions(cloneState(state.selectorList));\n } else {\n void startDataSourceRequest();\n }\n }, []);\n\n fbaHooks.useEffectCustom(() => {\n const cloneList = cloneObject(state.selectorList);\n const values = getValues(props.value) as Array<number | string>;\n if (values.length > 0) {\n if (responseType === 'all') {\n setValueList(values as string[]);\n } else {\n const filterList = treeNodeParentsList(values[0], cloneList, true, fieldNamesMerge).reverse();\n if (filterList.length === 0) {\n setValueList([props.value as string]);\n } else {\n setValueList(filterList as string[]);\n }\n }\n } else {\n setValueList(undefined);\n }\n setOptions(cloneList);\n }, [state.selectorList, props.value]);\n\n useImperativeHandle(ref, () => {\n return {\n getCascaderList: () => {\n return state.selectorList;\n },\n };\n });\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\n });\n\n const loadData = async (selectedOptions: TAny[]) => {\n const targetOption = selectedOptions[selectedOptions.length - 1];\n targetOption.loading = true;\n const respData = await serviceConfig?.onRequest?.({\n ...serviceConfig.params,\n [fieldNamesMerge.value]: targetOption[fieldNamesMerge.value],\n });\n const respAdapterData = serviceRespDataAdapter(respData);\n if (!respAdapterData || respAdapterData.length === 0) {\n targetOption.isLeaf = true;\n } else {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n targetOption.children = respAdapterData;\n }\n targetOption.loading = false;\n void actions.setSelectBoxList({\n selectorList: options || [],\n });\n onSelectorListChange?.(options || []);\n setOptions([...options]);\n };\n\n const onChange = hooks.useCallbackRef((values: Array<string | number>, selectList) => {\n if (labelInValue !== true) {\n if (responseType === 'all') {\n props.onChange?.(values, selectList);\n } else {\n props.onChange?.(values?.[values.length - 1], selectList);\n }\n } else {\n const labelInValueList = selectList?.map((item) => {\n return {\n label: item[fieldNamesMerge.label],\n value: item[fieldNamesMerge.value],\n };\n });\n if (responseType === 'all') {\n props.onChange?.(labelInValueList, selectList);\n } else {\n props.onChange?.(labelInValueList?.[labelInValueList.length - 1], selectList);\n }\n }\n });\n\n const onClear = hooks.useCallbackRef(() => {\n void props.onChange?.(undefined);\n });\n\n return (\n <Cascader\n showSearch={true}\n allowClear={true}\n {...(otherProps as TAny)}\n popupClassName={classNames('cascader-wrapper-popup', otherProps.popupClassName)}\n notFoundContent={\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={requestMessageConfig}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n loading={loading}\n loadData={isDynamicLoad ? loadData : undefined}\n fieldNames={fieldNamesMerge}\n suffixIcon={\n state.requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n ) : undefined\n }\n options={options}\n value={valueList}\n multiple={false}\n onChange={onChange}\n onClear={onClear}\n />\n );\n});\n"],"names":["defaultState","selectorList","queryIsEmpty","requestStatus","_SelectorWrapperModel","actions","setSelectBoxList","params","state","changeRequestStatus","cascaderWrapperModels","cascaderWrapperModel","key","Model","getValues","value","values","toArray","map","item","_isPlainObject","CascaderWrapper","forwardRef","props","ref","serviceConfig","modelKey","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","options","setOptions","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","_cascaderWrapperModel","useStore","requestPreKey","fieldNamesMerge","_extend","label","children","_useState2","valueList","setValueList","serviceRespDataAdapter","respData","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","_respData","respAdapterData","onRequest","Error","$Try_1_Post","$boundEx","$Try_1_Catch","error","window","message","resolve","then","$await_2","isLeaf","useEffectCustom","cloneState","cloneList","cloneObject","length","filterList","treeNodeParentsList","reverse","undefined","useImperativeHandle","getCascaderList","onAgainRequest","loadData","selectedOptions","_extends2","targetOption","_extends","$await_3","concat","onChange","selectList","labelInValueList","onClear","_jsx","Cascader","showSearch","allowClear","popupClassName","_classNames","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","suffixIcon","_RedoOutlined","spin","multiple"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/cascader-wrapper/utils.ts","@flatbiz/antd/src/cascader-wrapper/cascader-wrapper.tsx"],"sourcesContent":["import { isPlainObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\nexport const getValues = (value: any) => {\n const values = toArray(value);\n return values.map((item) => {\n return isPlainObject(item) ? item?.['value'] : item;\n });\n};\n","import { CloseCircleFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { classNames, extend, get } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n LabelValueItem,\n TPlainObject,\n treeNodeParentsList,\n type TAny,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Cascader, CascaderProps, Flex } from 'antd';\nimport { forwardRef, ReactElement, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks/index';\nimport type { TRequestStatus, TRequestStatusProps } from '../request-status/request-status';\nimport { RequestStatus } from '../request-status/request-status';\nimport './style.less';\nimport { getValues } from './utils';\n\ntype CascaderWrapperServiceConfig = {\n params?: TPlainObject;\n onRequest?: (params?: TAny) => TAny;\n /** 响应数据适配器 */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n /** 必填字段设置 */\n requiredParamsKeys?: string[];\n};\n\nexport type CascaderWrapperProps = Omit<\n CascaderProps<TAny>,\n 'loading' | 'notFoundContent' | 'options' | 'value' | 'multiple' | 'onChange' | 'fieldNames'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. 默认值:value=value、label=label、children=children\n * 2. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 3. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * 4. 如果没有配置list,可说明接口返回为数组\n * ```\n */\n fieldNames?: {\n list?: string;\n label?: string;\n value?: string;\n children?: string;\n };\n /**\n * 请求服务需求的数据,当设置`selectorList`后无效果\n */\n serviceConfig?: CascaderWrapperServiceConfig;\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 是否动态加载选项\n */\n isDynamicLoad?: boolean;\n value?: string | number | Array<string | number> | LabelValueItem | LabelValueItem[];\n onChange?: (value?: string | number | Array<string | number>, selectedList?: TPlainObject[]) => void;\n /** 配置数据查询状态描述,比如有依赖字段描述 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * 选择数据响应类型(当用户选中后响应数据),默认值:last\n * ```\n * 1. last 响应选中的最后一级数据\n * 2. all 响应选中的多级数据\n * ```\n */\n responseType?: 'last' | 'all';\n /** 响应数据是否包含label、value */\n labelInValue?: boolean;\n};\n\nexport type CascaderWrapperRefApi = {\n getCascaderList: () => TPlainObject[];\n};\n/**\n * 级联选择器包装组件\n * ```\n * 1. 数据源中 value 不能重复\n * 2. 不支持多选\n * 3. modelKey的配置是为了缓存数据,只缓存初始化数据,如果isDynamicLoad=true,动态获取的数据不再缓存\n * 4. onChange操作第一个参数返回叶子节点value(可配置返回多级),第二个参数返回选中的多级数据\n * 5. isDynamicLoad=true 会在请求中添加当前选中option的fieldNames.value为key的数据\n * 6. @flatbiz/antd@5.0.25 删除 modelKey 字段\n * 7. serviceConfig.params 参数发生变化时,会重新请求数据\n * ```\n */\nexport const CascaderWrapper = forwardRef<CascaderWrapperRefApi, CascaderWrapperProps>((props, ref) => {\n const {\n serviceConfig,\n fieldNames,\n isDynamicLoad,\n requestMessageConfig,\n onSelectorListChange,\n responseType,\n labelInValue,\n ...otherProps\n } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n const [status, setStatus] = useState<TRequestStatus>('request-init');\n\n const requestMessageConfigRef = useRef(requestMessageConfig);\n\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const fieldNamesMerge = extend(true, { label: 'label', value: 'value', children: 'children' }, fieldNames);\n const [valueList, setValueList] = useState<string[]>();\n\n const prevParams = fbaHooks.usePrevious(JSON.stringify(serviceConfig?.params || {}));\n\n const paramsStr = useMemo(() => {\n return JSON.stringify(serviceConfig?.params || {});\n }, [serviceConfig?.params]);\n\n useEffect(() => {\n requestMessageConfigRef.current = requestMessageConfig;\n }, [requestMessageConfig]);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig?.onRequestResultAdapter) {\n return serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames?.list) {\n respData = get(respData, fieldNames?.list);\n }\n if (!isArray(respData)) {\n console.warn('接口返回数据不是数组类型,已被忽略', respData);\n return [];\n }\n return respData;\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!serviceConfig?.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n try {\n const params = serviceConfig.params || {};\n // 判断必填参数是否完整\n if (serviceConfig?.requiredParamsKeys) {\n const target = serviceConfig?.requiredParamsKeys.find((item) => {\n return isUndefinedOrNull(params[item]);\n });\n if (target) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setDataList([]);\n setStatus('no-dependencies-params');\n if (props.value) {\n props.onChange?.(undefined);\n }\n return;\n }\n }\n setLoading(true);\n setStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(params);\n const respAdapterData = serviceRespDataAdapter(respData);\n if (isDynamicLoad) {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n }\n setLoading(false);\n setDataList(respAdapterData || []);\n onSelectorListChange?.(respAdapterData || []);\n } catch (error: TAny) {\n setLoading(false);\n requestMessageConfigRef.current = {\n ...requestMessageConfigRef.current,\n 'request-error': error.message || '获取数据异常',\n };\n setStatus('request-error');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const values = getValues(props.value) as Array<number | string>;\n if (values.length > 0) {\n if (responseType === 'all') {\n setValueList(values as string[]);\n } else {\n const filterList = treeNodeParentsList(values[0], dataList, true, fieldNamesMerge).reverse();\n if (filterList.length === 0) {\n setValueList([props.value as string]);\n } else {\n setValueList(filterList as string[]);\n }\n }\n } else {\n setValueList(undefined);\n }\n }, [dataList, props.value]);\n\n useImperativeHandle(ref, () => {\n return {\n getCascaderList: () => {\n return dataList;\n },\n };\n });\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (paramsStr !== prevParams) {\n void startDataSourceRequest();\n }\n }\n }, [prevParams, paramsStr]);\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\n });\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loadData = async (selectedOptions: TAny[]) => {\n const targetOption = selectedOptions[selectedOptions.length - 1];\n targetOption.loading = true;\n const respData = await serviceConfig?.onRequest?.({\n ...serviceConfig.params,\n [fieldNamesMerge.value]: targetOption[fieldNamesMerge.value],\n });\n const respAdapterData = serviceRespDataAdapter(respData);\n if (!respAdapterData || respAdapterData.length === 0) {\n targetOption.isLeaf = true;\n } else {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n targetOption.children = respAdapterData;\n }\n targetOption.loading = false;\n onSelectorListChange?.(dataList || []);\n setDataList([...dataList]);\n };\n\n const onChange = hooks.useCallbackRef((values: Array<string | number>, selectList) => {\n if (labelInValue !== true) {\n if (responseType === 'all') {\n props.onChange?.(values, selectList);\n } else {\n props.onChange?.(values?.[values.length - 1], selectList);\n }\n } else {\n const labelInValueList = selectList?.map((item) => {\n return {\n label: item[fieldNamesMerge.label],\n value: item[fieldNamesMerge.value],\n };\n });\n if (responseType === 'all') {\n props.onChange?.(labelInValueList, selectList);\n } else {\n props.onChange?.(labelInValueList?.[labelInValueList.length - 1], selectList);\n }\n }\n });\n\n const onClear = hooks.useCallbackRef(() => {\n void props.onChange?.(undefined);\n });\n\n return (\n <Cascader\n showSearch={true}\n allowClear={true}\n {...(otherProps as TAny)}\n popupClassName={classNames('cascader-wrapper-popup', otherProps.popupClassName)}\n notFoundContent={\n <RequestStatus\n status={status}\n loading={loading}\n messageConfig={requestMessageConfigRef.current}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest} ghost>\n 重新获取数据\n </Button>\n }\n />\n }\n loading={loading}\n loadData={isDynamicLoad ? loadData : undefined}\n fieldNames={fieldNamesMerge}\n suffixIcon={\n status === 'request-error' ? (\n <Flex style={{ display: 'inline-flex', gap: 10 }}>\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n <CloseCircleFilled style={{ color: '#ff4d4f' }} />\n </Flex>\n ) : undefined\n }\n options={dataList}\n value={valueList}\n multiple={false}\n onChange={onChange}\n onClear={onClear}\n />\n );\n});\n"],"names":["getValues","value","values","toArray","map","item","_isPlainObject","CascaderWrapper","forwardRef","props","ref","serviceConfig","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","dataList","setDataList","_useState2","status","setStatus","requestMessageConfigRef","useRef","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","fieldNamesMerge","_extend","label","children","_useState3","valueList","setValueList","prevParams","usePrevious","JSON","stringify","params","paramsStr","useMemo","useEffect","current","serviceRespDataAdapter","respData","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","_params","target","_respData","respAdapterData","onRequest","Error","$Try_1_Post","$boundEx","$Try_1_Catch","error","_extends","message","requiredParamsKeys","find","isUndefinedOrNull","onChange","undefined","resolve","then","$await_2","isLeaf","useEffectCustom","length","filterList","treeNodeParentsList","reverse","useImperativeHandle","getCascaderList","onAgainRequest","loadData","selectedOptions","_extends2","targetOption","$await_3","concat","selectList","labelInValueList","onClear","_jsx","Cascader","showSearch","allowClear","popupClassName","_classNames","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","onClick","ghost","suffixIcon","_jsxs","Flex","style","display","gap","_RedoOutlined","spin","_CloseCircleFilled","color","options","multiple"],"mappings":"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"}
|
package/esm/easy-form/index.js
CHANGED
|
@@ -5,5 +5,5 @@ import './../form-wrapper/index.css';
|
|
|
5
5
|
import './../pre-defined-class-name/index.css';
|
|
6
6
|
import './index.css';
|
|
7
7
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
8
|
-
import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as e,_ as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isUndefinedOrNull as l,dom as
|
|
8
|
+
import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as e,_ as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isUndefinedOrNull as l,dom as a}from"@flatbiz/utils";import{Form as n}from"antd";import{useMemo as o,useRef as m,Fragment as s,Children as i,cloneElement as u}from"react";import{BoxGrid as p}from"../box-grid/index.js";import{fbaHooks as f}from"../fba-hooks/index.js";import{FormWrapper as d}from"../form-wrapper/index.js";import{preDefinedClassName as c}from"../pre-defined-class-name/index.js";import{jsxs as x,jsx as v}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var y=["column","forceColumn","children","width","gridGutter","labelWidth","labelItemVertical","labelAlign","formItemGap","isPure","nonuseFormWrapper"];var h=function h(g){var I=f.useResponsivePoint()||"";var b=g.column,F=g.forceColumn,j=g.children,W=g.width,N=g.gridGutter,G=g.labelWidth,w=g.labelItemVertical,C=g.labelAlign,A=g.formItemGap,P=A===void 0?"15":A,k=g.isPure,B=g.nonuseFormWrapper,S=e(g,y);var T=o((function(){if(F){var r=24/F;return{xs:r,sm:r,md:r,lg:r,xl:r,xxl:r}}if(!b){return{xs:24,sm:12,md:12,lg:8,xl:8,xxl:6}}var e={1:{xs:24,sm:24,md:24,lg:24,xl:24,xxl:24},2:{xs:24,sm:12,md:12,lg:12,xl:12,xxl:12},3:{xs:24,sm:12,md:12,lg:8,xl:8,xxl:8},4:{xs:24,sm:12,md:12,lg:6,xl:6,xxl:6}};return e[b]}),[b,F]);var V=function r(){var e=i.toArray(j).filter((function(r){return!!r}));return e.map((function(r,e){var l;var a=r.type["domTypeName"];var o=undefined;if(a==="FormItemText"||a==="FormItemSpan"||a==="FormItemWrapper"||a==="BoxGridCol"||a==="EasyForm"){o=r.props["span"];if(o){if(I==="xs"){o=24}else if(I==="sm"){o=o>12?o:12}}}if(a==="BoxGridCol"||a==="FormItemSpan"){if(a==="FormItemSpan"&&r.props.hidden){return null}return u(r,t({},r.props,T,{span:o,key:e}))}var m=(l=r.props)==null||(l=l.style)==null?void 0:l.display;var s=false;if(a==="FormItemText"||a==="FormItemHidden"||a==="FormItemWrapper"||a==="FormItemWrapperDependencies"||r.type===n.Item||m==="none"){s=true}if(a==="FormItemWrapper"||r.props.noStyle){s=false}return v(p.Col,t({},T,{span:o,removeWrapper:s,children:r}),e)})).filter(Boolean)};var E=o((function(){if(["xs","sm"].includes(I)||!W){return{}}return{width:W}}),[I,W]);var R=l(N)?[15,0]:N;var H=m(null);var L=function r(){try{if(B){return true}if(H.current){var e=a.findParentsElement(H.current,(function(r){var e;return(e=r.classList)==null||e.contains==null?void 0:e.contains("easy-form")}));return e?true:false}return undefined}catch(r){console.log("error",r);return false}};var _=L();var z=o((function(){if(["xs"].includes(I)){return"left"}return C}),[C,I]);var D=o((function(){return c.getFormLayoutClassName({labelWidth:G,labelItemVertical:w,labelAlign:z,formItemGap:P,className:S.className})}),[G,w,z,P,S.className]);return x(s,{children:[v("div",{className:"easy-form-anchor",ref:H}),_===true?v("div",{style:t({},E,S.style),className:r("easy-form",{"easy-form-pure":k},"easy-form-nested",D),children:k?j:v(p.Row,{gutter:R,children:V()})}):undefined,_===false?v(d,t({},S,{labelWidth:G,labelAlign:z,labelItemVertical:w,formItemGap:P,style:t({},E,S.style),className:r("easy-form",{"easy-form-pure":k},D),autoComplete:"off",children:k?j:v(p.Row,{gutter:R,children:V()})})):undefined]})};h["domTypeName"]="EasyForm";export{h as EasyForm};
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-form/form.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { dom, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Children, cloneElement, Fragment, ReactNode, useMemo, useRef } from 'react';\nimport { BoxGrid } from '../box-grid';\nimport { BoxRowProps } from '../box-grid/row';\nimport { GutterParams } from '../box-grid/type';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormWrapper, FormWrapperProps } from '../form-wrapper';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport './style.less';\n\nexport type EasyFormProps = Omit<FormWrapperProps, 'children'> & {\n /**\n * 定义一行显示几列(当外层宽度尺寸大于 992px(lg) 时,一行显示几列), 默认值:3\n * ```\n * 1. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响(column=1除外)\n * 2. 宽度尺寸定义\n * xs: 宽度 < 576px\n * sm: 宽度 ≥ 576px\n * md: 宽度 ≥ 768px\n * lg: 宽度 ≥ 992px\n * xl: 宽度 ≥ 1200px\n * xxl: 宽度 ≥ 1600px\n * 3. 列数尺寸定义\n * {\n * 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n * 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n * 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n * 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n * };\n * ```\n */\n column?: 1 | 2 | 3 | 4;\n /**\n * 强制定义一行显示几列,不考虑响应式\n * ```\n * 1. 优先级大于column\n * 2. 建议优先使用column配置\n * ```\n */\n forceColumn?: 1 | 2 | 3 | 4;\n /**\n * Form显示宽度,可数值、可百分比;在小屏幕尺寸(xs、sm)上无效\n */\n width?: number | string;\n /** 网格间距 */\n gridGutter?: BoxRowProps['gutter'];\n children: ReactNode;\n /**\n * 是否为纯净模式,对EasyForm的子节点不做任何包装处理\n */\n isPure?: boolean;\n /**\n * true: 当前EasyForm组件不使用Antd Form包裹,可在Form、EasyForm、FormWrapper内部使用\n */\n nonuseFormWrapper?: boolean;\n /**\n * 栅格占位格数,最大值:24\n * ```\n * 1. 当前EasyForm处在 EasyForm 直接子节点中有效,即当前EasyForm在EasyForm栅格中的占位格数;\n * 2. 父节点使用属性值,当前节点不使用属性值\n * ```\n */\n span?: number;\n};\n\n/**\n * 简单Form布局,可自定义网格布局\n * ```\n * 1. demo:https://fex.qa.tcshuke.com/docs/admin/main/form/grid\n * 2. EasyForm的children列表会进行网格化布局\n * 3. 自定义栅格占位格数的4中方式\n * 3.1 设置FormItemWrapper、FormItemText组件span属性;\n * 3.2 使用 EasyFormItemSpan 包裹children item,设置span属性\n * 3.3 使用 <BoxGrid.Col span={24} ></BoxGrid.Col> 包裹,设置响应式属性\n * 3.4 设置 EasyForm isPure = true设置纯净模式,对EasyForm的子节点不做任何包装处理\n * 4. EasyForm可嵌套使用,嵌套内部的<EasyForm />节点Form相关属性失效,例如属性form、initialValues等都失效\n * <EasyForm form={form}>\n * ....\n * <EasyForm>...</EasyForm>\n * ....\n * <EasyForm>...</EasyForm>\n * ....\n * </EasyForm>\n * 5. 布局网格以当前组件的宽度来计算的,不是屏幕宽度\n * 6. EasyForm 子节点包含 hidden = true 会被忽略\n * 7. 通过 column 可定义一行显示几列FormItem\n * 8. 通过 labelItemVertical 可定义 formitem 竖直布局\n * 9. 通过 formItemGap 可定义 formItem竖直方向间隙\n * 10. 通过 forceColumn 可强制定义一行显示几列,不考虑响应式\n * 11. 通过 labelWidth 可控制Form内部所有label的宽度(可实现整齐效果)\n * 12. 自定义栅格占位格数,见下方`例如`\n * 13. 内部直接子节点为 <Form.Item dependencies={['xxx']} noStyle /> 时,样式会有问题,可使用 <FormItemWrapperDependencies /> 代替,具体参考FormItemWrapperDependencies组件使用\n\n * 例如\n * <EasyForm column={3}>\n *\t <FormItemWrapper name=\"field1\" label=\"条件1\">\n *\t <Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t <!-- !!自定义栅格占位格数第一种方式:可通过使用 BoxGrid.Col 包裹元素来自定义网格占比 -->\n *\t <BoxGrid.Col span={24}>\n *\t <FormItemWrapper name=\"field5\" label=\"条件5\">\n *\t \t<Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t </BoxGrid.Col>\n *\t <!-- !!自定义栅格占位格数第二种方式:如果为FormItemWrapper组件,可设置span属性 -->\n *\t <FormItemWrapper name=\"field6\" label=\"条件6\" span={24}>\n *\t <Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t <FormItemWrapper noStyle span={24}>\n *\t <Button>按钮</Buttone>\n *\t </FormItemWrapper>\n * </EasyForm>\n * ```\n */\nexport const EasyForm = (props: EasyFormProps) => {\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const {\n column,\n forceColumn,\n children,\n width,\n gridGutter,\n labelWidth,\n labelItemVertical,\n labelAlign,\n formItemGap = '15',\n isPure,\n nonuseFormWrapper,\n ...otherProps\n } = props;\n const gridSize = useMemo(() => {\n if (forceColumn) {\n const num = 24 / forceColumn;\n return { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num };\n }\n if (!column) {\n return { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n }\n const columnMap = {\n 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n };\n return columnMap[column];\n }, [column, forceColumn]);\n\n const getFormRowChildren = () => {\n const childrenList = Children.toArray(children).filter((item: TAny) => {\n return !!item;\n });\n return childrenList\n .map((item: TAny, index) => {\n const domTypeName = item.type['domTypeName'];\n\n let span: number | undefined = undefined;\n if (\n domTypeName === 'FormItemText' ||\n domTypeName === 'FormItemSpan' ||\n domTypeName === 'FormItemWrapper' ||\n domTypeName === 'BoxGridCol' ||\n domTypeName === 'EasyForm'\n ) {\n span = item.props['span'] as number;\n if (span) {\n if (screenType === 'xs') {\n span = 24;\n } else if (screenType === 'sm') {\n span = span > 12 ? span : 12;\n }\n }\n }\n\n if (domTypeName === 'BoxGridCol' || domTypeName === 'FormItemSpan') {\n if (domTypeName === 'FormItemSpan' && item.props.hidden) {\n return null;\n }\n return cloneElement(item, {\n ...item.props,\n ...gridSize,\n span,\n key: index,\n });\n }\n return (\n <BoxGrid.Col key={index} {...gridSize} span={span} removeWrapper>\n {item}\n </BoxGrid.Col>\n );\n })\n .filter(Boolean);\n };\n\n const innerStyle = useMemo(() => {\n /** 小屏幕不控制宽度 */\n if (['xs', 'sm'].includes(screenType) || !width) {\n return {};\n }\n return { width };\n }, [screenType, width]);\n\n const gutter = isUndefinedOrNull(gridGutter) ? ([15, 0] as GutterParams) : gridGutter;\n const anchorRef = useRef<HTMLDivElement>(null);\n\n // 是否嵌套内部EasyForm节点\n const getIsNestedEasyForm = () => {\n try {\n if (nonuseFormWrapper) {\n return true;\n }\n if (anchorRef.current) {\n const target = dom.findParentsElement(anchorRef.current, (node) => {\n return node.classList?.contains?.('easy-form');\n });\n return target ? true : false;\n }\n return undefined;\n } catch (error) {\n console.log('error', error);\n return false;\n }\n };\n\n const isNestedEasyForm = getIsNestedEasyForm();\n\n const labelAlignNew = useMemo(() => {\n if (['xs'].includes(screenType)) {\n return 'left';\n }\n return labelAlign;\n }, [labelAlign, screenType]);\n\n const fromLayoutClassName = useMemo(() => {\n return preDefinedClassName.getFormLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign: labelAlignNew,\n formItemGap,\n className: otherProps.className,\n });\n }, [labelWidth, labelItemVertical, labelAlignNew, formItemGap, otherProps.className]);\n\n return (\n <Fragment>\n <div className=\"easy-form-anchor\" ref={anchorRef}></div>\n {isNestedEasyForm === true ? (\n <div\n style={{ ...innerStyle, ...otherProps.style }}\n className={classNames(\n 'easy-form',\n { 'easy-form-pure': isPure },\n 'easy-form-nested',\n fromLayoutClassName,\n )}\n >\n {isPure ? children : <BoxGrid.Row gutter={gutter}>{getFormRowChildren()}</BoxGrid.Row>}\n </div>\n ) : undefined}\n {isNestedEasyForm === false ? (\n <FormWrapper\n {...otherProps}\n labelWidth={labelWidth}\n labelAlign={labelAlignNew}\n labelItemVertical={labelItemVertical}\n formItemGap={formItemGap}\n style={{ ...innerStyle, ...otherProps.style }}\n className={classNames('easy-form', { 'easy-form-pure': isPure }, fromLayoutClassName)}\n autoComplete=\"off\"\n >\n {isPure ? children : <BoxGrid.Row gutter={gutter}>{getFormRowChildren()}</BoxGrid.Row>}\n </FormWrapper>\n ) : undefined}\n </Fragment>\n );\n};\n\nEasyForm['domTypeName'] = 'EasyForm';\n"],"names":["EasyForm","props","screenType","fbaHooks","useResponsivePoint","column","forceColumn","children","width","gridGutter","labelWidth","labelItemVertical","labelAlign","_props$formItemGap","formItemGap","isPure","nonuseFormWrapper","otherProps","_objectWithoutPropertiesLoose","_excluded","gridSize","useMemo","num","xs","sm","md","lg","xl","xxl","columnMap","getFormRowChildren","childrenList","Children","toArray","filter","item","map","index","domTypeName","type","span","undefined","hidden","cloneElement","_extends","key","_jsx","BoxGrid","Col","removeWrapper","Boolean","innerStyle","includes","gutter","isUndefinedOrNull","anchorRef","useRef","getIsNestedEasyForm","current","target","dom","findParentsElement","node","_node$classList","classList","contains","error","console","log","isNestedEasyForm","labelAlignNew","fromLayoutClassName","preDefinedClassName","getFormLayoutClassName","className","_jsxs","Fragment","ref","style","_classNames","Row","FormWrapper","autoComplete"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-form/form.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { dom, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { Children, cloneElement, Fragment, ReactNode, useMemo, useRef } from 'react';\nimport { BoxGrid } from '../box-grid';\nimport { BoxRowProps } from '../box-grid/row';\nimport { GutterParams } from '../box-grid/type';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormWrapper, FormWrapperProps } from '../form-wrapper';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport './style.less';\n\nexport type EasyFormProps = Omit<FormWrapperProps, 'children'> & {\n /**\n * 定义一行显示几列(当外层宽度尺寸大于 992px(lg) 时,一行显示几列), 默认值:3\n * ```\n * 1. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响(column=1除外)\n * 2. 宽度尺寸定义\n * xs: 宽度 < 576px\n * sm: 宽度 ≥ 576px\n * md: 宽度 ≥ 768px\n * lg: 宽度 ≥ 992px\n * xl: 宽度 ≥ 1200px\n * xxl: 宽度 ≥ 1600px\n * 3. 列数尺寸定义\n * {\n * 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n * 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n * 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n * 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n * };\n * ```\n */\n column?: 1 | 2 | 3 | 4;\n /**\n * 强制定义一行显示几列,不考虑响应式\n * ```\n * 1. 优先级大于column\n * 2. 建议优先使用column配置\n * ```\n */\n forceColumn?: 1 | 2 | 3 | 4;\n /**\n * Form显示宽度,可数值、可百分比;在小屏幕尺寸(xs、sm)上无效\n */\n width?: number | string;\n /** 网格间距 */\n gridGutter?: BoxRowProps['gutter'];\n children: ReactNode;\n /**\n * 是否为纯净模式,对EasyForm的子节点不做任何包装处理\n */\n isPure?: boolean;\n /**\n * true: 当前EasyForm组件不使用Antd Form包裹,可在Form、EasyForm、FormWrapper内部使用\n */\n nonuseFormWrapper?: boolean;\n /**\n * 栅格占位格数,最大值:24\n * ```\n * 1. 当前EasyForm处在 EasyForm 直接子节点中有效,即当前EasyForm在EasyForm栅格中的占位格数;\n * 2. 父节点使用属性值,当前节点不使用属性值\n * ```\n */\n span?: number;\n};\n\n/**\n * 简单Form布局,可自定义网格布局\n * ```\n * 1. demo:https://fex.qa.tcshuke.com/docs/admin/main/form/grid\n * 2. EasyForm的children列表会进行网格化布局\n * 3. 自定义栅格占位格数的4中方式\n * 3.1 设置FormItemWrapper、FormItemText组件span属性;\n * 3.2 使用 EasyFormItemSpan 包裹children item,设置span属性\n * 3.3 使用 <BoxGrid.Col span={24} ></BoxGrid.Col> 包裹,设置响应式属性\n * 3.4 设置 EasyForm isPure = true设置纯净模式,对EasyForm的子节点不做任何包装处理\n * 4. EasyForm可嵌套使用,嵌套内部的<EasyForm />节点Form相关属性失效,例如属性form、initialValues等都失效\n * <EasyForm form={form}>\n * ....\n * <EasyForm>...</EasyForm>\n * ....\n * <EasyForm>...</EasyForm>\n * ....\n * </EasyForm>\n * 5. 布局网格以当前组件的宽度来计算的,不是屏幕宽度\n * 6. EasyForm 子节点包含 hidden = true 会被忽略\n * 7. 通过 column 可定义一行显示几列FormItem\n * 8. 通过 labelItemVertical 可定义 formitem 竖直布局\n * 9. 通过 formItemGap 可定义 formItem竖直方向间隙\n * 10. 通过 forceColumn 可强制定义一行显示几列,不考虑响应式\n * 11. 通过 labelWidth 可控制Form内部所有label的宽度(可实现整齐效果)\n * 12. 自定义栅格占位格数,见下方`例如`\n\n * 例如\n * <EasyForm column={3}>\n *\t <FormItemWrapper name=\"field1\" label=\"条件1\">\n *\t <Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t <!-- !!自定义栅格占位格数第一种方式:可通过使用 BoxGrid.Col 包裹元素来自定义网格占比 -->\n *\t <BoxGrid.Col span={24}>\n *\t <FormItemWrapper name=\"field5\" label=\"条件5\">\n *\t \t<Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t </BoxGrid.Col>\n *\t <!-- !!自定义栅格占位格数第二种方式:如果为FormItemWrapper组件,可设置span属性 -->\n *\t <FormItemWrapper name=\"field6\" label=\"条件6\" span={24}>\n *\t <Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t <FormItemWrapper noStyle span={24}>\n *\t <Button>按钮</Buttone>\n *\t </FormItemWrapper>\n * </EasyForm>\n * ```\n */\nexport const EasyForm = (props: EasyFormProps) => {\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const {\n column,\n forceColumn,\n children,\n width,\n gridGutter,\n labelWidth,\n labelItemVertical,\n labelAlign,\n formItemGap = '15',\n isPure,\n nonuseFormWrapper,\n ...otherProps\n } = props;\n const gridSize = useMemo(() => {\n if (forceColumn) {\n const num = 24 / forceColumn;\n return { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num };\n }\n if (!column) {\n return { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n }\n const columnMap = {\n 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n };\n return columnMap[column];\n }, [column, forceColumn]);\n\n const getFormRowChildren = () => {\n const childrenList = Children.toArray(children).filter((item: TAny) => {\n return !!item;\n });\n return childrenList\n .map((item: TAny, index) => {\n const domTypeName = item.type['domTypeName'];\n\n let span: number | undefined = undefined;\n if (\n domTypeName === 'FormItemText' ||\n domTypeName === 'FormItemSpan' ||\n domTypeName === 'FormItemWrapper' ||\n domTypeName === 'BoxGridCol' ||\n domTypeName === 'EasyForm'\n ) {\n span = item.props['span'] as number;\n if (span) {\n if (screenType === 'xs') {\n span = 24;\n } else if (screenType === 'sm') {\n span = span > 12 ? span : 12;\n }\n }\n }\n\n if (domTypeName === 'BoxGridCol' || domTypeName === 'FormItemSpan') {\n if (domTypeName === 'FormItemSpan' && item.props.hidden) {\n return null;\n }\n return cloneElement(item, {\n ...item.props,\n ...gridSize,\n span,\n key: index,\n });\n }\n const display = item.props?.style?.display;\n let removeWrapper = false;\n if (\n domTypeName === 'FormItemText' ||\n domTypeName === 'FormItemHidden' ||\n domTypeName === 'FormItemWrapper' ||\n domTypeName === 'FormItemWrapperDependencies' ||\n item.type === Form.Item ||\n display === 'none'\n ) {\n removeWrapper = true;\n }\n\n if (domTypeName === 'FormItemWrapper' || item.props.noStyle) {\n removeWrapper = false;\n }\n return (\n <BoxGrid.Col key={index} {...gridSize} span={span} removeWrapper={removeWrapper}>\n {item}\n </BoxGrid.Col>\n );\n })\n .filter(Boolean);\n };\n\n const innerStyle = useMemo(() => {\n /** 小屏幕不控制宽度 */\n if (['xs', 'sm'].includes(screenType) || !width) {\n return {};\n }\n return { width };\n }, [screenType, width]);\n\n const gutter = isUndefinedOrNull(gridGutter) ? ([15, 0] as GutterParams) : gridGutter;\n const anchorRef = useRef<HTMLDivElement>(null);\n\n // 是否嵌套内部EasyForm节点\n const getIsNestedEasyForm = () => {\n try {\n if (nonuseFormWrapper) {\n return true;\n }\n if (anchorRef.current) {\n const target = dom.findParentsElement(anchorRef.current, (node) => {\n return node.classList?.contains?.('easy-form');\n });\n return target ? true : false;\n }\n return undefined;\n } catch (error) {\n console.log('error', error);\n return false;\n }\n };\n\n const isNestedEasyForm = getIsNestedEasyForm();\n\n const labelAlignNew = useMemo(() => {\n if (['xs'].includes(screenType)) {\n return 'left';\n }\n return labelAlign;\n }, [labelAlign, screenType]);\n\n const fromLayoutClassName = useMemo(() => {\n return preDefinedClassName.getFormLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign: labelAlignNew,\n formItemGap,\n className: otherProps.className,\n });\n }, [labelWidth, labelItemVertical, labelAlignNew, formItemGap, otherProps.className]);\n\n return (\n <Fragment>\n <div className=\"easy-form-anchor\" ref={anchorRef}></div>\n {isNestedEasyForm === true ? (\n <div\n style={{ ...innerStyle, ...otherProps.style }}\n className={classNames(\n 'easy-form',\n { 'easy-form-pure': isPure },\n 'easy-form-nested',\n fromLayoutClassName,\n )}\n >\n {isPure ? children : <BoxGrid.Row gutter={gutter}>{getFormRowChildren()}</BoxGrid.Row>}\n </div>\n ) : undefined}\n {isNestedEasyForm === false ? (\n <FormWrapper\n {...otherProps}\n labelWidth={labelWidth}\n labelAlign={labelAlignNew}\n labelItemVertical={labelItemVertical}\n formItemGap={formItemGap}\n style={{ ...innerStyle, ...otherProps.style }}\n className={classNames('easy-form', { 'easy-form-pure': isPure }, fromLayoutClassName)}\n autoComplete=\"off\"\n >\n {isPure ? children : <BoxGrid.Row gutter={gutter}>{getFormRowChildren()}</BoxGrid.Row>}\n </FormWrapper>\n ) : undefined}\n </Fragment>\n );\n};\n\nEasyForm['domTypeName'] = 'EasyForm';\n"],"names":["EasyForm","props","screenType","fbaHooks","useResponsivePoint","column","forceColumn","children","width","gridGutter","labelWidth","labelItemVertical","labelAlign","_props$formItemGap","formItemGap","isPure","nonuseFormWrapper","otherProps","_objectWithoutPropertiesLoose","_excluded","gridSize","useMemo","num","xs","sm","md","lg","xl","xxl","columnMap","getFormRowChildren","childrenList","Children","toArray","filter","item","map","index","_item$props","domTypeName","type","span","undefined","hidden","cloneElement","_extends","key","display","style","removeWrapper","Form","Item","noStyle","_jsx","BoxGrid","Col","Boolean","innerStyle","includes","gutter","isUndefinedOrNull","anchorRef","useRef","getIsNestedEasyForm","current","target","dom","findParentsElement","node","_node$classList","classList","contains","error","console","log","isNestedEasyForm","labelAlignNew","fromLayoutClassName","preDefinedClassName","getFormLayoutClassName","className","_jsxs","Fragment","ref","_classNames","Row","FormWrapper","autoComplete"],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../pre-defined-class-name/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import{a as e,_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{composeProps as
|
|
6
|
+
import{a as e,_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{composeProps as t,isUndefinedOrNull as l}from"@flatbiz/utils";import{Form as i}from"antd";import{useMemo as a,isValidElement as n,cloneElement as o}from"react";import{fbaHooks as s}from"../fba-hooks/index.js";import{preDefinedClassName as f}from"../pre-defined-class-name/index.js";import{jsx as u,jsxs as p}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/class-names";var m=["wrapper","children","inputNormalize","isClear","beforeAfterStyle"],d=["wrapper","isClear","labelWidth","labelItemVertical","labelAlign","children","before","after","inputNormalize","outputNormalize","className","dependencies","hidden","beforeAfterStyle"];var c=function i(a){var n=a.wrapper,f=a.children,d=a.inputNormalize,c=a.isClear,h=a.beforeAfterStyle,v=e(a,m);var b=Object.prototype.hasOwnProperty.call(v,"value");if(b&&d){v["value"]=d(v["value"])}var y=o(f,t(f.props,v,true));s.useEffectCustom((function(){if(c&&!l(a.value)){a.onChange==null?void 0:a.onChange(undefined)}}),[c,a.value]);if(n){return n(y)}if(a.before||a.after){return p("div",{style:r({display:"flex",alignItems:"center"},h),children:[a.before?u("span",{style:{marginRight:10},children:a.before}):null,u("div",{style:{flex:1},children:y}),a.after?u("span",{style:{marginLeft:10},children:a.after}):null]})}return y};var h=function t(l){var o=l.wrapper,s=l.isClear,p=l.labelWidth,m=l.labelItemVertical,h=l.labelAlign,v=l.children,b=l.before,y=l.after,g=l.inputNormalize,N=l.outputNormalize,j=l.className,z=l.dependencies,C=l.hidden,I=l.beforeAfterStyle,A=e(l,d);var S=i.useFormInstance();var w=a((function(){return f.getFormItemLayoutClassName({labelWidth:p,labelItemVertical:m,labelAlign:h,className:j})}),[p,m,h,j]);if(z&&(z==null?void 0:z.length)>0){return u(i.Item,{dependencies:z,noStyle:true,children:function(e){function r(r){return e.apply(this,arguments)}r.toString=function(){return e.toString()};return r}((function(e){var t=typeof C==="function"?C==null?void 0:C(e.getFieldsValue()):C;var l=typeof s==="function"?s==null?void 0:s(e.getFieldsValue()):s;var a=A.rules;if(l||t){a=[]}return u(i.Item,r({normalize:N},A,{className:w,hidden:l||t,rules:a,children:n(v)?u(c,{wrapper:o,before:b,after:y,inputNormalize:g,isClear:l,beforeAfterStyle:I,children:v}):v}))}))})}var F=typeof C==="function"?C(S.getFieldsValue()):C;var V=typeof s==="function"?s(S.getFieldsValue()):s;return u(i.Item,r({normalize:N},A,{className:w,hidden:F||V,children:n(v)?u(c,{wrapper:o,before:b,after:y,inputNormalize:g,isClear:V,beforeAfterStyle:I,children:v}):v}))};h["domTypeName"]="FormItemWrapper";export{h as FormItemWrapper};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-wrapper/form-item-wrapper.tsx"],"sourcesContent":["import { composeProps, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Form, FormItemProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { TFormItemLayoutPreClassNameProps } from '../pre-defined-class-name/form';\n\nexport type FormItemWrapperProps = Omit<FormItemProps, 'hidden' | 'children' | 'noStyle'> &\n TFormItemLayoutPreClassNameProps & {\n wrapper?: (children: ReactNode) => ReactElement;\n /** 设置wrapper后,before、after失效 */\n before?: ReactNode;\n /** 设置wrapper后,before、after失效 */\n after?: ReactNode;\n /** value 序列化处理 */\n inputNormalize?: (value?: TAny) => TAny;\n /**\n * onChange 参数序列化处理\n * 如果设置 normalize 属性,outputNormalize将失效\n */\n outputNormalize?: (value?: TAny) => TAny;\n /**\n * 隐藏 Form.Item,同时清除 Form.Item 值\n * ```\n * 1.与 dependencies 属性配合使用,可实现当前FormItemWrapper的显示隐藏\n * ```\n */\n isClear?: boolean | ((formValues: TPlainObject) => boolean);\n /**\n * 隐藏 Form.Item,不会清除 Form.Item 值\n * ```\n * 1.与 dependencies 属性配合使用,可实现当前FormItemWrapper的显示隐藏\n * ```\n */\n hidden?: boolean | ((formValues: TPlainObject) => boolean);\n /**\n * 栅格占位格数,最大值:24\n * ```\n * 1. 当前FormItemWrapper处在 EasyForm 直接子节点中有效,即FormItemWrapper在EasyForm栅格中的占位格数;\n * 2. 父节点使用属性值,当前节点不使用属性值\n * ```\n */\n span?: number;\n\n /** 不支持函数式写法,如果需要使用dependencies获取表单值,可使用FormItemWrapperDependencies 组件 */\n children?: ReactNode;\n\n /**\n * ```\n * 1. 设置noStyle后,可能会导致 FromItemWrapper 在 EasyFrom 内部渲染网格布局时出现异常\n * 2. 在FormItemWrapper中使用 dependencies 逻辑不需要设置 noStyle\n * ```\n */\n noStyle?: boolean;\n };\n\ntype FormItemWrapperChildrenProps = Pick<\n FormItemWrapperProps,\n 'wrapper' | 'after' | 'before' | 'inputNormalize' | 'isClear'\n> & {\n children: ReactElement;\n value?: any;\n onChange?: (value?: any) => any;\n};\n\nconst FormItemWrapperChildren = (props: FormItemWrapperChildrenProps) => {\n const { wrapper, children, inputNormalize, isClear, ...rest } = props;\n // composeProps 合并执行 Form.Item 传的 onChange 以及组件本身的方法\n const hasValue = Object.prototype.hasOwnProperty.call(rest, 'value');\n if (hasValue && inputNormalize) {\n rest['value'] = inputNormalize(rest['value']);\n }\n const _children = cloneElement(children, composeProps(children.props, rest, true));\n\n fbaHooks.useEffectCustom(() => {\n if (isClear && !isUndefinedOrNull(props.value)) {\n props.onChange?.(undefined);\n }\n }, [isClear, props.value]);\n\n if (wrapper) {\n return wrapper(_children);\n }\n if (props.before || props.after) {\n return (\n <div style={{ display: 'flex', alignItems: 'center' }}>\n {props.before ? <span style={{ marginRight: 10 }}>{props.before}</span> : null}\n <div style={{ flex: 1 }}>{_children}</div>\n {props.after ? <span style={{ marginLeft: 10 }}>{props.after}</span> : null}\n </div>\n );\n }\n return _children;\n};\n\n/**\n * 对 Form.Item 包装处理\n * ```\n * 1. 为 children 增加 before、after\n * 2. 对输入、输出数据进行序列化处理\n * 3. 内置布局样式使用 preDefinedClassName.formItem\n * 4. 设置隐藏域(不清除字段值) 使用hidden,存在依赖逻辑,可与dependencies属性配合使用\n * 5. 设置隐藏域(清除字段值)使用isClear,存在依赖逻辑,可与dependencies属性配合使用\n * 6. 不支持noStyle属性、children不支持函数写法、如果需要获取依赖字段值,可使用 FormItemWrapperDependencies 组件\n * 7. 设置noStyle后,可能会导致 FromItemWrapper 在 EasyFrom 内部渲染网格布局时出现异常\n *\n *\n * ** 依赖其他字段 自身切换显示隐藏 **\n * <FormItemWrapper\n * label=\"label\"\n * name=\"xx1\"\n * dependencies={['type']}\n * isClear={(values) => {\n * return values.type == 1\n * }}>\n * <Input placeholder=\"请输入\" />\n * </FormItemWrapper>\n *\n * 如果只是想获取依赖字段值,可使用 FormItemWrapperDependencies 组件\n * ```\n */\nexport const FormItemWrapper = (props: FormItemWrapperProps) => {\n const {\n wrapper,\n isClear,\n labelWidth,\n labelItemVertical,\n labelAlign,\n children,\n before,\n after,\n inputNormalize,\n outputNormalize,\n className,\n dependencies,\n hidden,\n ...rest\n } = props;\n const form = Form.useFormInstance();\n\n const innerClassName = useMemo(() => {\n return preDefinedClassName.getFormItemLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign,\n className,\n });\n }, [labelWidth, labelItemVertical, labelAlign, className]);\n\n if (dependencies && dependencies?.length > 0) {\n return (\n <Form.Item dependencies={dependencies} noStyle>\n {(innerForm) => {\n const innerHidden = typeof hidden === 'function' ? hidden?.(innerForm.getFieldsValue()) : hidden;\n const innerIsClear =\n typeof isClear === 'function' ? isClear?.(innerForm.getFieldsValue()) : isClear;\n let rules = rest.rules;\n if (innerIsClear || innerHidden) {\n rules = [];\n }\n\n return (\n <Form.Item\n normalize={outputNormalize}\n {...rest}\n className={innerClassName}\n hidden={innerIsClear || innerHidden}\n rules={rules}\n >\n {isValidElement(children) ? (\n <FormItemWrapperChildren\n wrapper={wrapper}\n before={before}\n after={after}\n inputNormalize={inputNormalize}\n isClear={innerIsClear}\n >\n {children}\n </FormItemWrapperChildren>\n ) : (\n children\n )}\n </Form.Item>\n );\n }}\n </Form.Item>\n );\n }\n\n const innerHidden = typeof hidden === 'function' ? hidden(form.getFieldsValue()) : hidden;\n const innerIsClear = typeof isClear === 'function' ? isClear(form.getFieldsValue()) : isClear;\n\n return (\n <Form.Item\n normalize={outputNormalize}\n {...rest}\n className={innerClassName}\n hidden={innerHidden || innerIsClear}\n >\n {isValidElement(children) ? (\n <FormItemWrapperChildren\n wrapper={wrapper}\n before={before}\n after={after}\n inputNormalize={inputNormalize}\n isClear={innerIsClear}\n >\n {children}\n </FormItemWrapperChildren>\n ) : (\n children\n )}\n </Form.Item>\n );\n};\n\nFormItemWrapper['domTypeName'] = 'FormItemWrapper';\n"],"names":["FormItemWrapperChildren","props","wrapper","children","inputNormalize","isClear","rest","_objectWithoutPropertiesLoose","_excluded","hasValue","Object","prototype","hasOwnProperty","call","_children","cloneElement","composeProps","fbaHooks","useEffectCustom","isUndefinedOrNull","value","onChange","undefined","before","after","_jsxs","style","display","alignItems","_jsx","marginRight","flex","marginLeft","FormItemWrapper","labelWidth","labelItemVertical","labelAlign","outputNormalize","className","dependencies","hidden","_excluded2","form","Form","useFormInstance","innerClassName","useMemo","preDefinedClassName","getFormItemLayoutClassName","length","Item","noStyle","_children2","_x","apply","this","arguments","toString","innerForm","innerHidden","getFieldsValue","innerIsClear","rules","_extends","normalize","isValidElement"],"mappings":";wwBAiEA,IAAMA,EAA0B,SAA1BA,EAA2BC,GAC/B,IAAQC,EAAwDD,EAAxDC,QAASC,EAA+CF,EAA/CE,SAAUC,EAAqCH,EAArCG,eAAgBC,EAAqBJ,EAArBI,QAAYC,EAAIC,EAAKN,EAAKO,GAErE,IAAMC,EAAWC,OAAOC,UAAUC,eAAeC,KAAKP,EAAM,SAC5D,GAAIG,GAAYL,EAAgB,CAC9BE,EAAK,SAAWF,EAAeE,EAAK,SACtC,CACA,IAAMQ,EAAYC,EAAaZ,EAAUa,EAAab,EAASF,MAAOK,EAAM,OAE5EW,EAASC,iBAAgB,WACvB,GAAIb,IAAYc,EAAkBlB,EAAMmB,OAAQ,CAC9CnB,EAAMoB,UAANpB,UAAAA,EAAAA,EAAMoB,SAAWC,UACnB,CACD,GAAE,CAACjB,EAASJ,EAAMmB,QAEnB,GAAIlB,EAAS,CACX,OAAOA,EAAQY,EACjB,CACA,GAAIb,EAAMsB,QAAUtB,EAAMuB,MAAO,CAC/B,OACEC,EAAA,MAAA,CAAKC,MAAO,CAAEC,QAAS,OAAQC,WAAY,UAAWzB,SACnDF,CAAAA,EAAMsB,OAASM,EAAA,OAAA,CAAMH,MAAO,CAAEI,YAAa,IAAK3B,SAAEF,EAAMsB,SAAiB,KAC1EM,EAAA,MAAA,CAAKH,MAAO,CAAEK,KAAM,GAAI5B,SAAEW,IACzBb,EAAMuB,MAAQK,EAAA,OAAA,CAAMH,MAAO,CAAEM,WAAY,IAAK7B,SAAEF,EAAMuB,QAAgB,OAG7E,CACA,OAAOV,CACT,MA4BamB,EAAkB,SAAlBA,EAAmBhC,GAC9B,IACEC,EAcED,EAdFC,QACAG,EAaEJ,EAbFI,QACA6B,EAYEjC,EAZFiC,WACAC,EAWElC,EAXFkC,kBACAC,EAUEnC,EAVFmC,WACAjC,EASEF,EATFE,SACAoB,EAQEtB,EARFsB,OACAC,EAOEvB,EAPFuB,MACApB,EAMEH,EANFG,eACAiC,EAKEpC,EALFoC,gBACAC,EAIErC,EAJFqC,UACAC,EAGEtC,EAHFsC,aACAC,EAEEvC,EAFFuC,OACGlC,EAAIC,EACLN,EAAKwC,GACT,IAAMC,EAAOC,EAAKC,kBAElB,IAAMC,EAAiBC,GAAQ,WAC7B,OAAOC,EAAoBC,2BAA2B,CACpDd,WAAAA,EACAC,kBAAAA,EACAC,WAAAA,EACAE,UAAAA,GAEH,GAAE,CAACJ,EAAYC,EAAmBC,EAAYE,IAE/C,GAAIC,IAAgBA,GAAY,UAAA,EAAZA,EAAcU,QAAS,EAAG,CAC5C,OACEpB,EAACc,EAAKO,KAAI,CAACX,aAAcA,EAAcY,QAAO,KAAAhD,kBAAAiD,GAAA,SAAAjD,EAAAkD,GAAA,OAAAD,EAAAE,MAAAC,KAAAC,UAAA,CAAArD,EAAAsD,SAAA,WAAA,OAAAL,EAAAK,UAAA,EAAA,OAAAtD,CAC3C,GAAA,SAACuD,GACA,IAAMC,SAAqBnB,IAAW,WAAaA,GAAM,UAAA,EAANA,EAASkB,EAAUE,kBAAoBpB,EAC1F,IAAMqB,SACGxD,IAAY,WAAaA,GAAO,UAAA,EAAPA,EAAUqD,EAAUE,kBAAoBvD,EAC1E,IAAIyD,EAAQxD,EAAKwD,MACjB,GAAID,GAAgBF,EAAa,CAC/BG,EAAQ,EACV,CAEA,OACEjC,EAACc,EAAKO,KAAIa,EAAA,CACRC,UAAW3B,GACP/B,EAAI,CACRgC,UAAWO,EACXL,OAAQqB,GAAgBF,EACxBG,MAAOA,EAAM3D,SAEZ8D,EAAe9D,GACd0B,EAAC7B,EAAuB,CACtBE,QAASA,EACTqB,OAAQA,EACRC,MAAOA,EACPpB,eAAgBA,EAChBC,QAASwD,EAAa1D,SAErBA,IAGHA,SAOd,CAEA,IAAMwD,SAAqBnB,IAAW,WAAaA,EAAOE,EAAKkB,kBAAoBpB,EACnF,IAAMqB,SAAsBxD,IAAY,WAAaA,EAAQqC,EAAKkB,kBAAoBvD,EAEtF,OACEwB,EAACc,EAAKO,KAAIa,EAAA,CACRC,UAAW3B,GACP/B,EAAI,CACRgC,UAAWO,EACXL,OAAQmB,GAAeE,EAAa1D,SAEnC8D,EAAe9D,GACd0B,EAAC7B,EAAuB,CACtBE,QAASA,EACTqB,OAAQA,EACRC,MAAOA,EACPpB,eAAgBA,EAChBC,QAASwD,EAAa1D,SAErBA,IAGHA,IAIR,EAEA8B,EAAgB,eAAiB"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-wrapper/form-item-wrapper.tsx"],"sourcesContent":["import { composeProps, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Form, FormItemProps } from 'antd';\nimport { cloneElement, CSSProperties, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { TFormItemLayoutPreClassNameProps } from '../pre-defined-class-name/form';\n\nexport type FormItemWrapperProps = Omit<FormItemProps, 'hidden' | 'children' | 'noStyle'> &\n TFormItemLayoutPreClassNameProps & {\n wrapper?: (children: ReactNode) => ReactElement;\n /** 设置wrapper后,before、after失效 */\n before?: ReactNode;\n /** 设置wrapper后,before、after失效 */\n after?: ReactNode;\n /** 设置 before、after 属性的包装结构style */\n beforeAfterStyle?: CSSProperties;\n /** value 序列化处理 */\n inputNormalize?: (value?: TAny) => TAny;\n /**\n * onChange 参数序列化处理\n * 如果设置 normalize 属性,outputNormalize将失效\n */\n outputNormalize?: (value?: TAny) => TAny;\n /**\n * 隐藏 Form.Item,同时清除 Form.Item 值\n * ```\n * 1.与 dependencies 属性配合使用,可实现当前FormItemWrapper的显示隐藏\n * ```\n */\n isClear?: boolean | ((formValues: TPlainObject) => boolean);\n /**\n * 隐藏 Form.Item,不会清除 Form.Item 值\n * ```\n * 1.与 dependencies 属性配合使用,可实现当前FormItemWrapper的显示隐藏\n * ```\n */\n hidden?: boolean | ((formValues: TPlainObject) => boolean);\n /**\n * 栅格占位格数,最大值:24\n * ```\n * 1. 当前FormItemWrapper处在 EasyForm 直接子节点中有效,即FormItemWrapper在EasyForm栅格中的占位格数;\n * 2. 父节点使用属性值,当前节点不使用属性值\n * ```\n */\n span?: number;\n\n /** 不支持函数式写法,如果需要使用dependencies获取表单值,可使用FormItemWrapperDependencies 组件 */\n children?: ReactNode;\n\n /**\n * ```\n * 1. 设置noStyle后,可能会导致 FromItemWrapper 在 EasyFrom 内部渲染网格布局时出现异常\n * 2. 在FormItemWrapper中使用 dependencies 逻辑不需要设置 noStyle\n * ```\n */\n noStyle?: boolean;\n };\n\ntype FormItemWrapperChildrenProps = Pick<\n FormItemWrapperProps,\n 'wrapper' | 'after' | 'before' | 'inputNormalize' | 'isClear' | 'beforeAfterStyle'\n> & {\n children: ReactElement;\n value?: any;\n onChange?: (value?: any) => any;\n};\n\nconst FormItemWrapperChildren = (props: FormItemWrapperChildrenProps) => {\n const { wrapper, children, inputNormalize, isClear, beforeAfterStyle, ...rest } = props;\n // composeProps 合并执行 Form.Item 传的 onChange 以及组件本身的方法\n const hasValue = Object.prototype.hasOwnProperty.call(rest, 'value');\n if (hasValue && inputNormalize) {\n rest['value'] = inputNormalize(rest['value']);\n }\n const _children = cloneElement(children, composeProps(children.props, rest, true));\n\n fbaHooks.useEffectCustom(() => {\n if (isClear && !isUndefinedOrNull(props.value)) {\n props.onChange?.(undefined);\n }\n }, [isClear, props.value]);\n\n if (wrapper) {\n return wrapper(_children);\n }\n if (props.before || props.after) {\n return (\n <div style={{ display: 'flex', alignItems: 'center', ...beforeAfterStyle }}>\n {props.before ? <span style={{ marginRight: 10 }}>{props.before}</span> : null}\n <div style={{ flex: 1 }}>{_children}</div>\n {props.after ? <span style={{ marginLeft: 10 }}>{props.after}</span> : null}\n </div>\n );\n }\n return _children;\n};\n\n/**\n * 对 Form.Item 包装处理\n * ```\n * 1. 为 children 增加 before、after\n * 2. 对输入、输出数据进行序列化处理\n * 3. 内置布局样式使用 preDefinedClassName.formItem\n * 4. 设置隐藏域(不清除字段值) 使用hidden,存在依赖逻辑,可与dependencies属性配合使用\n * 5. 设置隐藏域(清除字段值)使用isClear,存在依赖逻辑,可与dependencies属性配合使用\n * 6. 不支持noStyle属性、children不支持函数写法、如果需要获取依赖字段值,可使用 FormItemWrapperDependencies 组件\n * 7. 设置noStyle后,可能会导致 FromItemWrapper 在 EasyFrom 内部渲染网格布局时出现异常\n *\n *\n * ** 依赖其他字段 自身切换显示隐藏 **\n * <FormItemWrapper\n * label=\"label\"\n * name=\"xx1\"\n * dependencies={['type']}\n * isClear={(values) => {\n * return values.type == 1\n * }}>\n * <Input placeholder=\"请输入\" />\n * </FormItemWrapper>\n *\n * 如果只是想获取依赖字段值,可使用 FormItemWrapperDependencies 组件\n * ```\n */\nexport const FormItemWrapper = (props: FormItemWrapperProps) => {\n const {\n wrapper,\n isClear,\n labelWidth,\n labelItemVertical,\n labelAlign,\n children,\n before,\n after,\n inputNormalize,\n outputNormalize,\n className,\n dependencies,\n hidden,\n beforeAfterStyle,\n ...rest\n } = props;\n const form = Form.useFormInstance();\n\n const innerClassName = useMemo(() => {\n return preDefinedClassName.getFormItemLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign,\n className,\n });\n }, [labelWidth, labelItemVertical, labelAlign, className]);\n\n if (dependencies && dependencies?.length > 0) {\n return (\n <Form.Item dependencies={dependencies} noStyle>\n {(innerForm) => {\n const innerHidden = typeof hidden === 'function' ? hidden?.(innerForm.getFieldsValue()) : hidden;\n const innerIsClear =\n typeof isClear === 'function' ? isClear?.(innerForm.getFieldsValue()) : isClear;\n let rules = rest.rules;\n if (innerIsClear || innerHidden) {\n rules = [];\n }\n\n return (\n <Form.Item\n normalize={outputNormalize}\n {...rest}\n className={innerClassName}\n hidden={innerIsClear || innerHidden}\n rules={rules}\n >\n {isValidElement(children) ? (\n <FormItemWrapperChildren\n wrapper={wrapper}\n before={before}\n after={after}\n inputNormalize={inputNormalize}\n isClear={innerIsClear}\n beforeAfterStyle={beforeAfterStyle}\n >\n {children}\n </FormItemWrapperChildren>\n ) : (\n children\n )}\n </Form.Item>\n );\n }}\n </Form.Item>\n );\n }\n\n const innerHidden = typeof hidden === 'function' ? hidden(form.getFieldsValue()) : hidden;\n const innerIsClear = typeof isClear === 'function' ? isClear(form.getFieldsValue()) : isClear;\n\n return (\n <Form.Item\n normalize={outputNormalize}\n {...rest}\n className={innerClassName}\n hidden={innerHidden || innerIsClear}\n >\n {isValidElement(children) ? (\n <FormItemWrapperChildren\n wrapper={wrapper}\n before={before}\n after={after}\n inputNormalize={inputNormalize}\n isClear={innerIsClear}\n beforeAfterStyle={beforeAfterStyle}\n >\n {children}\n </FormItemWrapperChildren>\n ) : (\n children\n )}\n </Form.Item>\n );\n};\n\nFormItemWrapper['domTypeName'] = 'FormItemWrapper';\n"],"names":["FormItemWrapperChildren","props","wrapper","children","inputNormalize","isClear","beforeAfterStyle","rest","_objectWithoutPropertiesLoose","_excluded","hasValue","Object","prototype","hasOwnProperty","call","_children","cloneElement","composeProps","fbaHooks","useEffectCustom","isUndefinedOrNull","value","onChange","undefined","before","after","_jsxs","style","_extends","display","alignItems","_jsx","marginRight","flex","marginLeft","FormItemWrapper","labelWidth","labelItemVertical","labelAlign","outputNormalize","className","dependencies","hidden","_excluded2","form","Form","useFormInstance","innerClassName","useMemo","preDefinedClassName","getFormItemLayoutClassName","length","Item","noStyle","_children2","_x","apply","this","arguments","toString","innerForm","innerHidden","getFieldsValue","innerIsClear","rules","normalize","isValidElement"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{a as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{Form as r}from"antd";import{jsx as n}from"react/jsx-runtime";var l=["dependencies"];var t=function t(i){var o=i.dependencies,
|
|
4
|
+
import{a as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{Form as r}from"antd";import{jsx as n}from"react/jsx-runtime";var l=["dependencies"];var t=function t(i){var o=i.dependencies,a=e(i,l);return n(r.Item,{dependencies:o,noStyle:true,children:function e(r){return i.children==null?void 0:i.children(r,{style:a==null?void 0:a.style,className:a.className})}})};t["domTypeName"]="FormItemWrapperDependencies";export{t as FormItemWrapperDependencies};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-wrapper-dependencies/dependencies.tsx"],"sourcesContent":["import { Form, type FormInstance } from 'antd';\nimport type { CSSProperties, ReactElement } from 'react';\nexport type FormItemWrapperDependenciesProps = {\n children?: (form: FormInstance, otherProps: { style?: CSSProperties; className?: string }) => ReactElement;\n dependencies: any[];\n className?: string;\n style?: CSSProperties;\n};\n/**\n * FormItem依赖写法包装,当处在EasyForm内部时,不支持 <Form.Item dependencies={['xxx']} noStyle /> 此写法,使用 <FormItemWrapperDependencies dependencies={['xxx']} /> 代替\n *\n * ```\n * 例如:(其中 otherProps 中 style、className透传是必要的)\n * <FormItemWrapperDependencies dependencies={['xx2']}>\n * {(_form, otherProps) => {\n * return (\n * <FormItemWrapper\n * name=\"xxxxx\"\n * label=\"xx1\"\n * style={otherProps.style}\n * className={otherProps.className}\n * >\n * <Input />\n * </FormItemWrapper>\n * );\n * }}\n * </FormItemWrapperDependencies>\n *\n *\n * 说明:\n * 透传style、className 是因为在EasyForm内部的BoxGrid组件下发的style、className在配置了noStyle后Form.Item不接收导致的\n *\n * ```\n */\nexport const FormItemWrapperDependencies = (props: FormItemWrapperDependenciesProps) => {\n const { dependencies, ...otherProps } = props;\n return (\n <Form.Item dependencies={dependencies} noStyle>\n {(form) => {\n return props.children?.(form, {\n style: otherProps?.style,\n className: otherProps.className,\n });\n }}\n </Form.Item>\n );\n};\n"],"names":["FormItemWrapperDependencies","props","dependencies","otherProps","_objectWithoutPropertiesLoose","_excluded","_jsx","Form","Item","noStyle","children","form","style","className"],"mappings":";4JAkCaA,EAA8B,SAA9BA,EAA+BC,GAC1C,IAAQC,EAAgCD,EAAhCC,aAAiBC,EAAUC,EAAKH,EAAKI,GAC7C,OACEC,EAACC,EAAKC,KAAI,CAACN,aAAcA,EAAcO,QAAO,KAAAC,SAC3C,SAAAA,EAACC,GACA,OAAOV,EAAMS,UAAQ,UAAA,EAAdT,EAAMS,SAAWC,EAAM,CAC5BC,MAAOT,GAAAA,UAAAA,EAAAA,EAAYS,MACnBC,UAAWV,EAAWU,WAE1B,GAGN"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-wrapper-dependencies/dependencies.tsx"],"sourcesContent":["import { Form, type FormInstance } from 'antd';\nimport type { CSSProperties, ReactElement } from 'react';\nexport type FormItemWrapperDependenciesProps = {\n children?: (form: FormInstance, otherProps: { style?: CSSProperties; className?: string }) => ReactElement;\n dependencies: any[];\n className?: string;\n style?: CSSProperties;\n};\n/**\n * FormItem依赖写法包装,当处在EasyForm内部时,不支持 <Form.Item dependencies={['xxx']} noStyle /> 此写法,使用 <FormItemWrapperDependencies dependencies={['xxx']} /> 代替\n *\n * ```\n * 例如:(其中 otherProps 中 style、className透传是必要的)\n * <FormItemWrapperDependencies dependencies={['xx2']}>\n * {(_form, otherProps) => {\n * return (\n * <FormItemWrapper\n * name=\"xxxxx\"\n * label=\"xx1\"\n * style={otherProps.style}\n * className={otherProps.className}\n * >\n * <Input />\n * </FormItemWrapper>\n * );\n * }}\n * </FormItemWrapperDependencies>\n *\n *\n * 说明:\n * 透传style、className 是因为在EasyForm内部的BoxGrid组件下发的style、className在配置了noStyle后Form.Item不接收导致的\n *\n * ```\n */\nexport const FormItemWrapperDependencies = (props: FormItemWrapperDependenciesProps) => {\n const { dependencies, ...otherProps } = props;\n return (\n <Form.Item dependencies={dependencies} noStyle>\n {(form) => {\n return props.children?.(form, {\n style: otherProps?.style,\n className: otherProps.className,\n });\n }}\n </Form.Item>\n );\n};\n\nFormItemWrapperDependencies['domTypeName'] = 'FormItemWrapperDependencies';\n"],"names":["FormItemWrapperDependencies","props","dependencies","otherProps","_objectWithoutPropertiesLoose","_excluded","_jsx","Form","Item","noStyle","children","form","style","className"],"mappings":";4JAkCaA,EAA8B,SAA9BA,EAA+BC,GAC1C,IAAQC,EAAgCD,EAAhCC,aAAiBC,EAAUC,EAAKH,EAAKI,GAC7C,OACEC,EAACC,EAAKC,KAAI,CAACN,aAAcA,EAAcO,QAAO,KAAAC,SAC3C,SAAAA,EAACC,GACA,OAAOV,EAAMS,UAAQ,UAAA,EAAdT,EAAMS,SAAWC,EAAM,CAC5BC,MAAOT,GAAAA,UAAAA,EAAAA,EAAYS,MACnBC,UAAWV,EAAWU,WAE1B,GAGN,EAEAb,EAA4B,eAAiB"}
|
package/esm/index.js
CHANGED
|
@@ -26,7 +26,6 @@ import './dialog-modal/index.css';
|
|
|
26
26
|
import './card-layout/index.css';
|
|
27
27
|
import './card-wrapper/index.css';
|
|
28
28
|
import './cascader-wrapper/index.css';
|
|
29
|
-
import './request-status/index.css';
|
|
30
29
|
import './check-list/index.css';
|
|
31
30
|
import './checkbox-wrapper/index.css';
|
|
32
31
|
import './color-picker-wrapper/index.css';
|
|
@@ -58,6 +57,7 @@ import './drag-editable-table/index.css';
|
|
|
58
57
|
import './editable-table/index.css';
|
|
59
58
|
import './text-symbol-wrapper/index.css';
|
|
60
59
|
import './selector-wrapper/index.css';
|
|
60
|
+
import './request-status/index.css';
|
|
61
61
|
import './switch-wrapper/index.css';
|
|
62
62
|
import './upload-wrapper/index.css';
|
|
63
63
|
import './table-cell-render/index.css';
|
|
@@ -139,5 +139,5 @@ import './tree-selector-wrapper/index.css';
|
|
|
139
139
|
import './x-mind-preview/index.css';
|
|
140
140
|
import './index.css';
|
|
141
141
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
142
|
-
export{AceEditorGroovy}from"./ace-editor-groovy/index.js";export{AceEditorJava}from"./ace-editor-java/index.js";export{AceEditorJson}from"./ace-editor-json/index.js";export{AceEditorMysql}from"./ace-editor-mysql/index.js";export{AceEditorXml}from"./ace-editor-xml/index.js";export{AlertWrapper}from"./alert-wrapper/index.js";export{AmountFenInput}from"./amount-fen-input/index.js";export{AmountFenInputFormItem}from"./amount-fen-input-form-item/index.js";export{AnchorSteps}from"./anchor-steps/index.js";export{BlockLayout}from"./block-layout/index.js";export{Bootstrap}from"./bootstrap/index.js";export{BoxGrid,useBoxBreakpoint}from"./box-grid/index.js";export{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-wrapper/index.js";export{CardLayout}from"./card-layout/index.js";export{CardWrapper}from"./card-wrapper/index.js";export{CascaderWrapper}from"./cascader-wrapper/index.js";export{CheckList}from"./check-list/index.js";export{CheckboxWrapper}from"./checkbox-wrapper/index.js";export{ColorPickerWrapper}from"./color-picker-wrapper/index.js";export{C as ConfigProviderWrapper}from"./index-7f4ad045.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{CssNodeHover}from"./css-node-hover/index.js";export{DataRender}from"./data-render/index.js";export{DatePickerWrapper}from"./date-picker-wrapper/index.js";export{DateRangePickerWrapper}from"./date-range-picker-wrapper/index.js";export{DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item/index.js";export{DeleteNode}from"./delete-node/index.js";export{dialogAlert}from"./dialog-alert/index.js";export{dialogConfirm}from"./dialog-confirm/index.js";export{dialogDrawer}from"./dialog-drawer/index.js";export{DialogDrawerContent}from"./dialog-drawer-content/index.js";export{dialogLoading}from"./dialog-loading/index.js";export{dialogModal}from"./dialog-modal/index.js";export{dialogPreviewImage}from"./dialog-preview-image/index.js";export{DragCollapse}from"./drag-collapse/index.js";export{DragCollapseFormList}from"./drag-collapse-form-list/index.js";export{DragEditableCard}from"./drag-editable-card/index.js";export{DragEditableTable}from"./drag-editable-table/index.js";export{DragEditableTablePro}from"./drag-editable-table-pro/index.js";export{DragFormList}from"./drag-form-list/index.js";export{DragTable}from"./drag-table/index.js";export{DrawerWrapper}from"./drawer-wrapper/index.js";export{DropdownMenuWrapper}from"./dropdown-menu-wrapper/index.js";export{dynamicNode}from"./dynamic-node/index.js";export{EasyForm}from"./easy-form/index.js";export{EasyTable}from"./easy-table/index.js";export{EditableCard}from"./editable-card/index.js";export{EditableField}from"./editable-field/index.js";export{EditableFieldProvider}from"./editable-field-provider/index.js";export{EditableTable}from"./editable-table/index.js";export{EditableTablePro}from"./editable-table-pro/index.js";export{EditorWrapper}from"./editor-wrapper/index.js";export{ErrorBoundaryWrapper}from"./error-boundary-wrapper/index.js";export{FbaApp}from"./fba-app/index.js";export{fbaHooks}from"./fba-hooks/index.js";export{fbaUtils}from"./fba-utils/index.js";export{FileExport}from"./file-export/index.js";export{FileImport}from"./file-import/index.js";export{FileSelect}from"./file-select/index.js";export{FlexLayout}from"./flex-layout/index.js";export{FormGrid}from"./form-grid/index.js";export{FormItemGroup}from"./form-item-group/index.js";export{FormItemHidden}from"./form-item-hidden/index.js";export{FormItemSpan}from"./form-item-span/index.js";export{FormItemText}from"./form-item-text/index.js";export{FormItemWrapper}from"./form-item-wrapper/index.js";export{FormItemWrapperDependencies}from"./form-item-wrapper-dependencies/index.js";export{FormListWrapper}from"./form-list-wrapper/index.js";export{FormWrapper}from"./form-wrapper/index.js";export{Gap}from"./gap/index.js";export{IconWrapper}from"./icon-wrapper/index.js";export{InputSearchWrapper}from"./input-search-wrapper/index.js";export{InputTextAreaWrapper}from"./input-text-area-wrapper/index.js";export{InputWrapper}from"./input-wrapper/index.js";export{JsonEditor}from"./json-editor/index.js";export{LabelValueLayout}from"./label-value-layout/index.js";export{LabelValueRender}from"./label-value-render/index.js";export{LocalLoading}from"./local-loading/index.js";export{MentionEditor}from"./mention-editor/index.js";export{MentionsWrapper}from"./mentions-wrapper/index.js";export{ModalAction}from"./modal-action/index.js";export{ModalWrapper}from"./modal-wrapper/index.js";export{NumberRangeFormItem}from"./number-range-form-item/index.js";export{PageFixedFooter}from"./page-fixed-footer/index.js";export{Page404}from"./page404/index.js";export{PaginationWrapper}from"./pagination-wrapper/index.js";export{Pdf}from"./pdf/index.js";export{PdfPreview}from"./pdf-preview/index.js";export{PdfPreview2}from"./pdf-preview2/index.js";export{Permission}from"./permission/index.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{RadioGroupWrapper}from"./radio-group-wrapper/index.js";export{RelationTree}from"./relation-tree/index.js";export{RequestStatus}from"./request-status/index.js";export{RichTextEditor}from"./rich-text-editor/index.js";export{RichTextViewer}from"./rich-text-viewer/index.js";export{RollLocationCenter}from"./roll-location-center/index.js";export{RollLocationInView}from"./roll-location-in-view/index.js";export{RuleDescribe}from"./rule-describe/index.js";export{SearchForm}from"./search-form/index.js";export{SearchMenu}from"./search-menu/index.js";export{SelectorWrapper}from"./selector-wrapper/index.js";export{SelectorWrapperSearch}from"./selector-wrapper-search/index.js";export{SelectorWrapperSimple}from"./selector-wrapper-simple/index.js";export{SimpleLayout}from"./simple-layout/index.js";export{SmsCountDown}from"./sms-count-down/index.js";export{SplitWrapper}from"./split-wrapper/index.js";export{styles}from"./styles/index.js";export{SvgHttpView}from"./svg-http-view/index.js";export{SwitchConfirmWrapper}from"./switch-confirm-wrapper/index.js";export{SwitchWrapper}from"./switch-wrapper/index.js";export{tableCellRender}from"./table-cell-render/index.js";export{TableScrollbar}from"./table-scrollbar/index.js";export{TableTitleTooltip}from"./table-title-tooltip/index.js";export{TabsSticky}from"./tabs-sticky/index.js";export{TabsWrapper}from"./tabs-wrapper/index.js";export{TagGroup}from"./tag-group/index.js";export{TagListRender}from"./tag-list-render/index.js";export{TagListSelect}from"./tag-list-select/index.js";export{TagWrapper}from"./tag-wrapper/index.js";export{TextCssEllipsis}from"./text-css-ellipsis/index.js";export{TextOverflow}from"./text-overflow/index.js";export{TextOverflowRender}from"./text-overflow-render/index.js";export{TextSymbolWrapper}from"./text-symbol-wrapper/index.js";export{TimePickerWrapper}from"./time-picker-wrapper/index.js";export{TimeRangePickerWrapper}from"./time-range-picker-wrapper/index.js";export{TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item/index.js";export{TipsTitle}from"./tips-title/index.js";export{TipsWrapper}from"./tips-wrapper/index.js";export{TreeModal}from"./tree-modal/index.js";export{TreeModalSelector}from"./tree-modal-selector/index.js";export{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";export{XMindPreview}from"./x-mind-preview/index.js";import"./_rollupPluginBabelHelpers-a0769acd.js";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@dimjs/lang/cjs/is-object";import"@flatbiz/utils";import"react";import"react-ace";import"ace-builds/src-noconflict/ext-language_tools";import"ace-builds/src-noconflict/mode-groovy";import"ace-builds/src-noconflict/snippets/groovy";import"react/jsx-runtime";import"ace-builds/src-noconflict/mode-java";import"ace-builds/src-noconflict/snippets/java";import"ace-builds/src-noconflict/mode-json";import"ace-builds/src-noconflict/snippets/json";import"sql-formatter";import"ace-builds/src-noconflict/mode-mysql";import"ace-builds/src-noconflict/snippets/mysql";import"antd";import"xml-formatter";import"ace-builds/src-noconflict/mode-xml";import"ace-builds/src-noconflict/snippets/xml";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-array";import"@dimjs/utils/cjs/extend";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"./time-53b3f55f.js";import"@ant-design/icons/es/icons/CloseCircleFilled";import"@ant-design/icons/es/icons/DeleteOutlined";import"react-dom/client";import"./context-1f2093c6.js";import"./dom-4d04aa64.js";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@dnd-kit/modifiers";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/PlusOutlined";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@ant-design/icons/es/icons/EditOutlined";import"./context-62955871.js";import"@dimjs/lang/cjs/is-boolean";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@ant-design/icons/es/icons/QuestionCircleFilled";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-split";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";import"simple-mind-map";
|
|
142
|
+
export{AceEditorGroovy}from"./ace-editor-groovy/index.js";export{AceEditorJava}from"./ace-editor-java/index.js";export{AceEditorJson}from"./ace-editor-json/index.js";export{AceEditorMysql}from"./ace-editor-mysql/index.js";export{AceEditorXml}from"./ace-editor-xml/index.js";export{AlertWrapper}from"./alert-wrapper/index.js";export{AmountFenInput}from"./amount-fen-input/index.js";export{AmountFenInputFormItem}from"./amount-fen-input-form-item/index.js";export{AnchorSteps}from"./anchor-steps/index.js";export{BlockLayout}from"./block-layout/index.js";export{Bootstrap}from"./bootstrap/index.js";export{BoxGrid,useBoxBreakpoint}from"./box-grid/index.js";export{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-wrapper/index.js";export{CardLayout}from"./card-layout/index.js";export{CardWrapper}from"./card-wrapper/index.js";export{CascaderWrapper}from"./cascader-wrapper/index.js";export{CheckList}from"./check-list/index.js";export{CheckboxWrapper}from"./checkbox-wrapper/index.js";export{ColorPickerWrapper}from"./color-picker-wrapper/index.js";export{C as ConfigProviderWrapper}from"./index-7f4ad045.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{CssNodeHover}from"./css-node-hover/index.js";export{DataRender}from"./data-render/index.js";export{DatePickerWrapper}from"./date-picker-wrapper/index.js";export{DateRangePickerWrapper}from"./date-range-picker-wrapper/index.js";export{DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item/index.js";export{DeleteNode}from"./delete-node/index.js";export{dialogAlert}from"./dialog-alert/index.js";export{dialogConfirm}from"./dialog-confirm/index.js";export{dialogDrawer}from"./dialog-drawer/index.js";export{DialogDrawerContent}from"./dialog-drawer-content/index.js";export{dialogLoading}from"./dialog-loading/index.js";export{dialogModal}from"./dialog-modal/index.js";export{dialogPreviewImage}from"./dialog-preview-image/index.js";export{DragCollapse}from"./drag-collapse/index.js";export{DragCollapseFormList}from"./drag-collapse-form-list/index.js";export{DragEditableCard}from"./drag-editable-card/index.js";export{DragEditableTable}from"./drag-editable-table/index.js";export{DragEditableTablePro}from"./drag-editable-table-pro/index.js";export{DragFormList}from"./drag-form-list/index.js";export{DragTable}from"./drag-table/index.js";export{DrawerWrapper}from"./drawer-wrapper/index.js";export{DropdownMenuWrapper}from"./dropdown-menu-wrapper/index.js";export{dynamicNode}from"./dynamic-node/index.js";export{EasyForm}from"./easy-form/index.js";export{EasyTable}from"./easy-table/index.js";export{EditableCard}from"./editable-card/index.js";export{EditableField}from"./editable-field/index.js";export{EditableFieldProvider}from"./editable-field-provider/index.js";export{EditableTable}from"./editable-table/index.js";export{EditableTablePro}from"./editable-table-pro/index.js";export{EditorWrapper}from"./editor-wrapper/index.js";export{ErrorBoundaryWrapper}from"./error-boundary-wrapper/index.js";export{FbaApp}from"./fba-app/index.js";export{fbaHooks}from"./fba-hooks/index.js";export{fbaUtils}from"./fba-utils/index.js";export{FileExport}from"./file-export/index.js";export{FileImport}from"./file-import/index.js";export{FileSelect}from"./file-select/index.js";export{FlexLayout}from"./flex-layout/index.js";export{FormGrid}from"./form-grid/index.js";export{FormItemGroup}from"./form-item-group/index.js";export{FormItemHidden}from"./form-item-hidden/index.js";export{FormItemSpan}from"./form-item-span/index.js";export{FormItemText}from"./form-item-text/index.js";export{FormItemWrapper}from"./form-item-wrapper/index.js";export{FormItemWrapperDependencies}from"./form-item-wrapper-dependencies/index.js";export{FormListWrapper}from"./form-list-wrapper/index.js";export{FormWrapper}from"./form-wrapper/index.js";export{Gap}from"./gap/index.js";export{IconWrapper}from"./icon-wrapper/index.js";export{InputSearchWrapper}from"./input-search-wrapper/index.js";export{InputTextAreaWrapper}from"./input-text-area-wrapper/index.js";export{InputWrapper}from"./input-wrapper/index.js";export{JsonEditor}from"./json-editor/index.js";export{LabelValueLayout}from"./label-value-layout/index.js";export{LabelValueRender}from"./label-value-render/index.js";export{LocalLoading}from"./local-loading/index.js";export{MentionEditor}from"./mention-editor/index.js";export{MentionsWrapper}from"./mentions-wrapper/index.js";export{ModalAction}from"./modal-action/index.js";export{ModalWrapper}from"./modal-wrapper/index.js";export{NumberRangeFormItem}from"./number-range-form-item/index.js";export{PageFixedFooter}from"./page-fixed-footer/index.js";export{Page404}from"./page404/index.js";export{PaginationWrapper}from"./pagination-wrapper/index.js";export{Pdf}from"./pdf/index.js";export{PdfPreview}from"./pdf-preview/index.js";export{PdfPreview2}from"./pdf-preview2/index.js";export{Permission}from"./permission/index.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{RadioGroupWrapper}from"./radio-group-wrapper/index.js";export{RelationTree}from"./relation-tree/index.js";export{RequestStatus}from"./request-status/index.js";export{RichTextEditor}from"./rich-text-editor/index.js";export{RichTextViewer}from"./rich-text-viewer/index.js";export{RollLocationCenter}from"./roll-location-center/index.js";export{RollLocationInView}from"./roll-location-in-view/index.js";export{RuleDescribe}from"./rule-describe/index.js";export{SearchForm}from"./search-form/index.js";export{SearchMenu}from"./search-menu/index.js";export{SelectorWrapper}from"./selector-wrapper/index.js";export{SelectorWrapperSearch}from"./selector-wrapper-search/index.js";export{SelectorWrapperSimple}from"./selector-wrapper-simple/index.js";export{SimpleLayout}from"./simple-layout/index.js";export{SmsCountDown}from"./sms-count-down/index.js";export{SplitWrapper}from"./split-wrapper/index.js";export{styles}from"./styles/index.js";export{SvgHttpView}from"./svg-http-view/index.js";export{SwitchConfirmWrapper}from"./switch-confirm-wrapper/index.js";export{SwitchWrapper}from"./switch-wrapper/index.js";export{tableCellRender}from"./table-cell-render/index.js";export{TableScrollbar}from"./table-scrollbar/index.js";export{TableTitleTooltip}from"./table-title-tooltip/index.js";export{TabsSticky}from"./tabs-sticky/index.js";export{TabsWrapper}from"./tabs-wrapper/index.js";export{TagGroup}from"./tag-group/index.js";export{TagListRender}from"./tag-list-render/index.js";export{TagListSelect}from"./tag-list-select/index.js";export{TagWrapper}from"./tag-wrapper/index.js";export{TextCssEllipsis}from"./text-css-ellipsis/index.js";export{TextOverflow}from"./text-overflow/index.js";export{TextOverflowRender}from"./text-overflow-render/index.js";export{TextSymbolWrapper}from"./text-symbol-wrapper/index.js";export{TimePickerWrapper}from"./time-picker-wrapper/index.js";export{TimeRangePickerWrapper}from"./time-range-picker-wrapper/index.js";export{TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item/index.js";export{TipsTitle}from"./tips-title/index.js";export{TipsWrapper}from"./tips-wrapper/index.js";export{TreeModal}from"./tree-modal/index.js";export{TreeModalSelector}from"./tree-modal-selector/index.js";export{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";export{XMindPreview}from"./x-mind-preview/index.js";import"./_rollupPluginBabelHelpers-a0769acd.js";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@dimjs/lang/cjs/is-object";import"@flatbiz/utils";import"react";import"react-ace";import"ace-builds/src-noconflict/ext-language_tools";import"ace-builds/src-noconflict/mode-groovy";import"ace-builds/src-noconflict/snippets/groovy";import"react/jsx-runtime";import"ace-builds/src-noconflict/mode-java";import"ace-builds/src-noconflict/snippets/java";import"ace-builds/src-noconflict/mode-json";import"ace-builds/src-noconflict/snippets/json";import"sql-formatter";import"ace-builds/src-noconflict/mode-mysql";import"ace-builds/src-noconflict/snippets/mysql";import"antd";import"xml-formatter";import"ace-builds/src-noconflict/mode-xml";import"ace-builds/src-noconflict/snippets/xml";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-array";import"@dimjs/utils/cjs/extend";import"@ant-design/icons/es/icons/CloseCircleFilled";import"@ant-design/icons/es/icons/RedoOutlined";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";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/model-react";import"./time-53b3f55f.js";import"@ant-design/icons/es/icons/DeleteOutlined";import"react-dom/client";import"./context-1f2093c6.js";import"./dom-4d04aa64.js";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@dnd-kit/modifiers";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/PlusOutlined";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@ant-design/icons/es/icons/EditOutlined";import"./context-62955871.js";import"@dimjs/lang/cjs/is-boolean";import"@dimjs/model";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@ant-design/icons/es/icons/QuestionCircleFilled";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-split";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";import"simple-mind-map";
|
|
143
143
|
//# sourceMappingURL=index.js.map
|
package/index.d.ts
CHANGED
|
@@ -679,13 +679,12 @@ export declare const RequestStatus: (props: TRequestStatusProps) => import("reac
|
|
|
679
679
|
export type CascaderWrapperServiceConfig = {
|
|
680
680
|
params?: TPlainObject;
|
|
681
681
|
onRequest?: (params?: TAny) => TAny;
|
|
682
|
-
/**
|
|
683
|
-
* 响应数据适配器
|
|
684
|
-
*/
|
|
682
|
+
/** 响应数据适配器 */
|
|
685
683
|
onRequestResultAdapter?: (respData: TAny) => TPlainObject[];
|
|
684
|
+
/** 必填字段设置 */
|
|
685
|
+
requiredParamsKeys?: string[];
|
|
686
686
|
};
|
|
687
687
|
export type CascaderWrapperProps = Omit<CascaderProps<TAny>, "loading" | "notFoundContent" | "options" | "value" | "multiple" | "onChange" | "fieldNames"> & {
|
|
688
|
-
modelKey: string;
|
|
689
688
|
/**
|
|
690
689
|
* 参数Key映射
|
|
691
690
|
* ```
|
|
@@ -713,6 +712,7 @@ export type CascaderWrapperProps = Omit<CascaderProps<TAny>, "loading" | "notFou
|
|
|
713
712
|
isDynamicLoad?: boolean;
|
|
714
713
|
value?: string | number | Array<string | number> | LabelValueItem | LabelValueItem[];
|
|
715
714
|
onChange?: (value?: string | number | Array<string | number>, selectedList?: TPlainObject[]) => void;
|
|
715
|
+
/** 配置数据查询状态描述,比如有依赖字段描述 */
|
|
716
716
|
requestMessageConfig?: TRequestStatusProps["messageConfig"];
|
|
717
717
|
/**
|
|
718
718
|
* 选择数据响应类型(当用户选中后响应数据),默认值:last
|
|
@@ -736,10 +736,11 @@ export type CascaderWrapperRefApi = {
|
|
|
736
736
|
* 3. modelKey的配置是为了缓存数据,只缓存初始化数据,如果isDynamicLoad=true,动态获取的数据不再缓存
|
|
737
737
|
* 4. onChange操作第一个参数返回叶子节点value(可配置返回多级),第二个参数返回选中的多级数据
|
|
738
738
|
* 5. isDynamicLoad=true 会在请求中添加当前选中option的fieldNames.value为key的数据
|
|
739
|
+
* 6. @flatbiz/antd@5.0.25 删除 modelKey 字段
|
|
740
|
+
* 7. serviceConfig.params 参数发生变化时,会重新请求数据
|
|
739
741
|
* ```
|
|
740
742
|
*/
|
|
741
743
|
export declare const CascaderWrapper: import("react").ForwardRefExoticComponent<Omit<CascaderProps<any>, "value" | "loading" | "multiple" | "options" | "onChange" | "notFoundContent" | "fieldNames"> & {
|
|
742
|
-
modelKey: string;
|
|
743
744
|
/**
|
|
744
745
|
* 参数Key映射
|
|
745
746
|
* ```
|
|
@@ -767,6 +768,7 @@ export declare const CascaderWrapper: import("react").ForwardRefExoticComponent<
|
|
|
767
768
|
isDynamicLoad?: boolean | undefined;
|
|
768
769
|
value?: string | number | (string | number)[] | LabelValueItem | LabelValueItem[] | undefined;
|
|
769
770
|
onChange?: ((value?: string | number | Array<string | number>, selectedList?: TPlainObject[]) => void) | undefined;
|
|
771
|
+
/** 配置数据查询状态描述,比如有依赖字段描述 */
|
|
770
772
|
requestMessageConfig?: TRequestStatusProps["messageConfig"];
|
|
771
773
|
/**
|
|
772
774
|
* 选择数据响应类型(当用户选中后响应数据),默认值:last
|
|
@@ -1063,6 +1065,8 @@ export type FormItemWrapperProps = Omit<FormItemProps, "hidden" | "children" | "
|
|
|
1063
1065
|
before?: ReactNode;
|
|
1064
1066
|
/** 设置wrapper后,before、after失效 */
|
|
1065
1067
|
after?: ReactNode;
|
|
1068
|
+
/** 设置 before、after 属性的包装结构style */
|
|
1069
|
+
beforeAfterStyle?: CSSProperties;
|
|
1066
1070
|
/** value 序列化处理 */
|
|
1067
1071
|
inputNormalize?: (value?: TAny) => TAny;
|
|
1068
1072
|
/**
|
|
@@ -1542,7 +1546,6 @@ export type EasyFormProps = Omit<FormWrapperProps, "children"> & {
|
|
|
1542
1546
|
* 10. 通过 forceColumn 可强制定义一行显示几列,不考虑响应式
|
|
1543
1547
|
* 11. 通过 labelWidth 可控制Form内部所有label的宽度(可实现整齐效果)
|
|
1544
1548
|
* 12. 自定义栅格占位格数,见下方`例如`
|
|
1545
|
-
* 13. 内部直接子节点为 <Form.Item dependencies={['xxx']} noStyle /> 时,样式会有问题,可使用 <FormItemWrapperDependencies /> 代替,具体参考FormItemWrapperDependencies组件使用
|
|
1546
1549
|
|
|
1547
1550
|
* 例如
|
|
1548
1551
|
* <EasyForm column={3}>
|
|
@@ -3928,7 +3931,10 @@ export type FormItemWrapperDependenciesProps = {
|
|
|
3928
3931
|
*
|
|
3929
3932
|
* ```
|
|
3930
3933
|
*/
|
|
3931
|
-
export declare const FormItemWrapperDependencies:
|
|
3934
|
+
export declare const FormItemWrapperDependencies: {
|
|
3935
|
+
(props: FormItemWrapperDependenciesProps): import("react/jsx-runtime").JSX.Element;
|
|
3936
|
+
domTypeName: string;
|
|
3937
|
+
};
|
|
3932
3938
|
export type FormListWrapperContentProps = {
|
|
3933
3939
|
/** Form.List item fieldData */
|
|
3934
3940
|
formListFieldData: FormListFieldData;
|