@flatbiz/antd 4.2.80 → 4.2.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/button-wrapper/index.css +1 -1
- package/esm/button-wrapper/index.js +1 -1
- package/esm/button-wrapper/index.js.map +1 -1
- package/esm/dialog-drawer/index.js +1 -1
- package/esm/dialog-drawer/index.js.map +1 -1
- package/esm/dialog-drawer-content/index.js +1 -1
- package/esm/dialog-drawer-content/index.js.map +1 -1
- package/esm/drag-collapse-form-list/index.js +1 -1
- package/esm/drag-collapse-form-list/index.js.map +1 -1
- package/esm/drag-form-list/index.css +1 -0
- package/esm/drag-form-list/index.js +5 -0
- package/esm/drag-form-list/index.js.map +1 -0
- package/esm/form-item-group/index.js.map +1 -1
- package/esm/form-list-wrapper/index.css +1 -0
- package/esm/form-list-wrapper/index.js +5 -0
- package/esm/form-list-wrapper/index.js.map +1 -0
- package/esm/index.js +3 -1
- package/esm/pre-defined-class-name/index.css +1 -1
- package/esm/pre-defined-class-name/index.js +1 -1
- package/esm/pre-defined-class-name/index.js.map +1 -1
- package/esm/simple-layout/index.css +1 -1
- package/esm/switch-confirm-wrapper/index.js +1 -1
- package/esm/switch-confirm-wrapper/index.js.map +1 -1
- package/esm/text-overflow-render/index.js +1 -1
- package/esm/text-overflow-render/index.js.map +1 -1
- package/index.d.ts +171 -13
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
.bw-center-loading{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}
|
|
1
|
+
.bw-center-loading{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.ant-btn.button-remove-gap{height:auto;line-height:normal;margin:0;min-height:auto;padding:0}
|
|
@@ -4,5 +4,5 @@ import './../fba-hooks/index.css';
|
|
|
4
4
|
import './../fba-utils/index.css';
|
|
5
5
|
import './index.css';
|
|
6
6
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
7
|
-
import o from"@ant-design/icons/es/icons/LoadingOutlined";import{a as r,_ as i}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{isPromise as e}from"@dimjs/lang/cjs/is-promise";import{hooks as l}from"@wove/react/cjs/hooks";import{isUndefinedOrNull as n}from"@flatbiz/utils";import{Button as
|
|
7
|
+
import o from"@ant-design/icons/es/icons/LoadingOutlined";import{a as r,_ as i}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{isPromise as e}from"@dimjs/lang/cjs/is-promise";import{hooks as l}from"@wove/react/cjs/hooks";import{classNames as a}from"@dimjs/utils/cjs/class-names";import{isUndefinedOrNull as n}from"@flatbiz/utils";import{Button as t}from"antd";import{useState as c}from"react";import{ConfigProviderWrapper as s}from"../config-provider-wrapper/index.js";import{fbaHooks as m}from"../fba-hooks/index.js";import{fbaUtils as d}from"../fba-utils/index.js";import{jsx as p,jsxs as u}from"react/jsx-runtime";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/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";var f=["loadingPosition","color","debounceDuration","permission","hidden","loading","removeGap"];var v=function o(r){if(r.color&&!r.disabled){var i={};if(r.type==="link"){i={colorLink:r.color,colorLinkActive:r.color,colorLinkHover:r.color}}else if(r.type==="primary"){i={colorPrimary:r.color,colorPrimaryHover:r.color,colorPrimaryActive:r.color}}else{i={colorPrimaryHover:r.color,colorPrimaryActive:r.color,colorText:r.color,colorBorder:r.color}}return p(s,{theme:{components:{Button:i}},children:r.children})}return r.children};var y=function s(y){var j=y.loadingPosition,h=y.color,g=y.debounceDuration,b=y.permission,k=y.hidden,P=y.loading,w=y.removeGap,x=r(y,f);var C=P;var N=c(false),D=N[0],H=N[1];var L=j===undefined?"left":j;var _=L==="left";var z=n(g)?500:g;var A=a(x.className,{"button-remove-gap":w});m.useEffectCustom((function(){if(!n(P)){H(C||false)}}),[P]);var B=l.useDebounceClick((function(o){var r=y.onClick;if(!r){return}var i=r(o);if(i&&e(i)){H(true);i.catch((function(o){console.error(o)})).finally((function(){H(false)}))}}),z);if(!d.hasPermission(b)){return null}if(k){return null}if(_){return p(v,{color:h,disabled:y.disabled,type:y.type,children:p(t,i({},x,{onClick:B,loading:D,className:A,children:y.children}))})}return p(v,{color:h,disabled:y.disabled,type:y.type,children:u(t,i({},x,{onClick:B,className:A,children:[D&&p("div",{className:"bw-center-loading",children:p(o,{})}),D?p("div",{style:{opacity:.5},children:y.children}):y.children]}))})};export{y as ButtonWrapper};
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/button-wrapper/button-wrapper.tsx"],"sourcesContent":["import { LoadingOutlined } from '@ant-design/icons';\nimport { isPromise } from '@dimjs/lang';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, ButtonProps } from 'antd';\nimport { OverrideToken } from 'antd/es/theme/interface';\nimport { ReactElement, useState } from 'react';\nimport { ConfigProviderWrapper } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { fbaUtils } from '../fba-utils';\nimport './style.less';\n\nexport type ButtonWrapperProps = Omit<ButtonProps, 'onClick'> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => Promise<TAny> | void;\n // 重复点击间隙,单位毫秒 默认值:500\n debounceDuration?: number;\n permission?: string;\n hidden?: boolean;\n /** loading 显示位置,默认值:left */\n loadingPosition?: 'left' | 'center';\n};\n\nconst DefaultButton = (props: {\n children: ReactElement;\n color?: string;\n type?: ButtonProps['type'];\n disabled?: boolean;\n}) => {\n if (props.color && !props.disabled) {\n let buttonTheme: OverrideToken['Button'] = {};\n if (props.type === 'link') {\n buttonTheme = {\n colorLink: props.color,\n colorLinkActive: props.color,\n colorLinkHover: props.color,\n };\n } else if (props.type === 'primary') {\n buttonTheme = {\n colorPrimary: props.color,\n colorPrimaryHover: props.color,\n colorPrimaryActive: props.color,\n };\n } else {\n buttonTheme = {\n colorPrimaryHover: props.color,\n colorPrimaryActive: props.color,\n colorText: props.color,\n colorBorder: props.color,\n };\n }\n\n return (\n <ConfigProviderWrapper\n theme={{\n components: {\n Button: buttonTheme,\n },\n }}\n >\n {props.children}\n </ConfigProviderWrapper>\n );\n }\n return props.children;\n};\n\n/**\n * antd Button包装组件\n * 1. 添加按钮 onClick 返回 Promise自动loading效果\n * 2. 内置 防抖 效果(在第一触发函数后,在指定时间内再次触发无效,即两次触发的时间间隙大于指定时间)\n * @param props\n * @returns\n */\nexport const ButtonWrapper = (props: ButtonWrapperProps) => {\n const { loadingPosition, color, debounceDuration, permission, hidden, loading, ...otherProps }
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/button-wrapper/button-wrapper.tsx"],"sourcesContent":["import { LoadingOutlined } from '@ant-design/icons';\nimport { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, ButtonProps } from 'antd';\nimport { OverrideToken } from 'antd/es/theme/interface';\nimport { ReactElement, useState } from 'react';\nimport { ConfigProviderWrapper } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { fbaUtils } from '../fba-utils';\nimport './style.less';\n\nexport type ButtonWrapperProps = Omit<ButtonProps, 'onClick'> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => Promise<TAny> | void;\n // 重复点击间隙,单位毫秒 默认值:500\n debounceDuration?: number;\n permission?: string;\n hidden?: boolean;\n /** loading 显示位置,默认值:left */\n loadingPosition?: 'left' | 'center';\n /**\n * 移除间隙,一般用于 type=link 类型下\n */\n removeGap?: boolean;\n};\n\nconst DefaultButton = (props: {\n children: ReactElement;\n color?: string;\n type?: ButtonProps['type'];\n disabled?: boolean;\n}) => {\n if (props.color && !props.disabled) {\n let buttonTheme: OverrideToken['Button'] = {};\n if (props.type === 'link') {\n buttonTheme = {\n colorLink: props.color,\n colorLinkActive: props.color,\n colorLinkHover: props.color,\n };\n } else if (props.type === 'primary') {\n buttonTheme = {\n colorPrimary: props.color,\n colorPrimaryHover: props.color,\n colorPrimaryActive: props.color,\n };\n } else {\n buttonTheme = {\n colorPrimaryHover: props.color,\n colorPrimaryActive: props.color,\n colorText: props.color,\n colorBorder: props.color,\n };\n }\n\n return (\n <ConfigProviderWrapper\n theme={{\n components: {\n Button: buttonTheme,\n },\n }}\n >\n {props.children}\n </ConfigProviderWrapper>\n );\n }\n return props.children;\n};\n\n/**\n * antd Button包装组件\n * 1. 添加按钮 onClick 返回 Promise自动loading效果\n * 2. 内置 防抖 效果(在第一触发函数后,在指定时间内再次触发无效,即两次触发的时间间隙大于指定时间)\n * @param props\n * @returns\n */\nexport const ButtonWrapper = (props: ButtonWrapperProps) => {\n const { loadingPosition, color, debounceDuration, permission, hidden, loading, removeGap, ...otherProps } =\n props;\n const loadingNew = loading as boolean | undefined;\n const [innerLoading, setLoading] = useState(false);\n const loadingPositionNew = loadingPosition === undefined ? 'left' : loadingPosition;\n const isLoadingLeft = loadingPositionNew === 'left';\n const debounceDurationMew = isUndefinedOrNull(debounceDuration) ? 500 : debounceDuration;\n const className = classNames(otherProps.className, { 'button-remove-gap': removeGap });\n\n fbaHooks.useEffectCustom(() => {\n if (!isUndefinedOrNull(loading)) {\n setLoading(loadingNew || false);\n }\n }, [loading]);\n\n const onClick = hooks.useDebounceClick((e) => {\n const onClick = props.onClick;\n if (!onClick) {\n return;\n }\n const result = onClick(e);\n if (result && isPromise(result)) {\n setLoading(true);\n result\n .catch((error) => {\n console.error(error);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n }, debounceDurationMew);\n\n if (!fbaUtils.hasPermission(permission)) {\n return null;\n }\n\n if (hidden) {\n return null;\n }\n\n if (isLoadingLeft) {\n return (\n <DefaultButton color={color} disabled={props.disabled} type={props.type}>\n <Button {...otherProps} onClick={onClick} loading={innerLoading} className={className}>\n {props.children}\n </Button>\n </DefaultButton>\n );\n }\n\n return (\n <DefaultButton color={color} disabled={props.disabled} type={props.type}>\n <Button {...otherProps} onClick={onClick} className={className}>\n {innerLoading && (\n <div className=\"bw-center-loading\">\n <LoadingOutlined />\n </div>\n )}\n {innerLoading ? <div style={{ opacity: 0.5 }}>{props.children}</div> : props.children}\n </Button>\n </DefaultButton>\n );\n};\n"],"names":["DefaultButton","props","color","disabled","buttonTheme","type","colorLink","colorLinkActive","colorLinkHover","colorPrimary","colorPrimaryHover","colorPrimaryActive","colorText","colorBorder","_jsx","ConfigProviderWrapper","theme","components","Button","children","ButtonWrapper","loadingPosition","debounceDuration","permission","hidden","loading","removeGap","otherProps","_objectWithoutPropertiesLoose","_excluded","loadingNew","_useState","useState","innerLoading","setLoading","loadingPositionNew","undefined","isLoadingLeft","debounceDurationMew","isUndefinedOrNull","className","_classNames","fbaHooks","useEffectCustom","onClick","_hooks","useDebounceClick","e","result","_isPromise","catch","error","console","finally","fbaUtils","hasPermission","_extends","_jsxs","_LoadingOutlined","style","opacity"],"mappings":";unCA2BA,IAAMA,EAAgB,SAAhBA,EAAiBC,GAMrB,GAAIA,EAAMC,QAAUD,EAAME,SAAU,CAClC,IAAIC,EAAuC,CAAA,EAC3C,GAAIH,EAAMI,OAAS,OAAQ,CACzBD,EAAc,CACZE,UAAWL,EAAMC,MACjBK,gBAAiBN,EAAMC,MACvBM,eAAgBP,EAAMC,MAE1B,MAAO,GAAID,EAAMI,OAAS,UAAW,CACnCD,EAAc,CACZK,aAAcR,EAAMC,MACpBQ,kBAAmBT,EAAMC,MACzBS,mBAAoBV,EAAMC,MAE9B,KAAO,CACLE,EAAc,CACZM,kBAAmBT,EAAMC,MACzBS,mBAAoBV,EAAMC,MAC1BU,UAAWX,EAAMC,MACjBW,YAAaZ,EAAMC,MAEvB,CAEA,OACEY,EAACC,EAAqB,CACpBC,MAAO,CACLC,WAAY,CACVC,OAAQd,IAEVe,SAEDlB,EAAMkB,UAGb,CACA,OAAOlB,EAAMkB,QACf,MASaC,EAAgB,SAAhBA,EAAiBnB,GAC5B,IAAQoB,EACNpB,EADMoB,gBAAiBnB,EACvBD,EADuBC,MAAOoB,EAC9BrB,EAD8BqB,iBAAkBC,EAChDtB,EADgDsB,WAAYC,EAC5DvB,EAD4DuB,OAAQC,EACpExB,EADoEwB,QAASC,EAC7EzB,EAD6EyB,UAAcC,EAAUC,EACrG3B,EAAK4B,GACP,IAAMC,EAAaL,EACnB,IAAAM,EAAmCC,EAAS,OAArCC,EAAYF,EAAA,GAAEG,EAAUH,EAAA,GAC/B,IAAMI,EAAqBd,IAAoBe,UAAY,OAASf,EACpE,IAAMgB,EAAgBF,IAAuB,OAC7C,IAAMG,EAAsBC,EAAkBjB,GAAoB,IAAMA,EACxE,IAAMkB,EAAYC,EAAWd,EAAWa,UAAW,CAAE,oBAAqBd,IAE1EgB,EAASC,iBAAgB,WACvB,IAAKJ,EAAkBd,GAAU,CAC/BS,EAAWJ,GAAc,MAC3B,CACF,GAAG,CAACL,IAEJ,IAAMmB,EAAUC,EAAMC,kBAAiB,SAACC,GACtC,IAAMH,EAAU3C,EAAM2C,QACtB,IAAKA,EAAS,CACZ,MACF,CACA,IAAMI,EAASJ,EAAQG,GACvB,GAAIC,GAAUC,EAAUD,GAAS,CAC/Bd,EAAW,MACXc,EACGE,OAAM,SAACC,GACNC,QAAQD,MAAMA,EAChB,IACCE,SAAQ,WACPnB,EAAW,MACb,GACJ,CACD,GAAEI,GAEH,IAAKgB,EAASC,cAAchC,GAAa,CACvC,OAAO,IACT,CAEA,GAAIC,EAAQ,CACV,OAAO,IACT,CAEA,GAAIa,EAAe,CACjB,OACEvB,EAACd,EAAa,CAACE,MAAOA,EAAOC,SAAUF,EAAME,SAAUE,KAAMJ,EAAMI,KAAKc,SACtEL,EAACI,EAAMsC,KAAK7B,EAAU,CAAEiB,QAASA,EAASnB,QAASQ,EAAcO,UAAWA,EAAUrB,SACnFlB,EAAMkB,aAIf,CAEA,OACEL,EAACd,EAAa,CAACE,MAAOA,EAAOC,SAAUF,EAAME,SAAUE,KAAMJ,EAAMI,KAAKc,SACtEsC,EAACvC,EAAMsC,KAAK7B,EAAU,CAAEiB,QAASA,EAASJ,UAAWA,EAAUrB,SAAA,CAC5Dc,GACCnB,EAAA,MAAA,CAAK0B,UAAU,oBAAmBrB,SAChCL,EAAA4C,EAAkB,MAGrBzB,EAAenB,EAAA,MAAA,CAAK6C,MAAO,CAAEC,QAAS,IAAMzC,SAAElB,EAAMkB,WAAkBlB,EAAMkB,cAIrF"}
|
|
@@ -5,5 +5,5 @@ import './../fba-hooks/index.css';
|
|
|
5
5
|
import './../fba-utils/index.css';
|
|
6
6
|
import './index.css';
|
|
7
7
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
8
|
-
import{isString as e}from"@dimjs/lang/cjs/is-string";import{_ as o,a as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{isPromise as t}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{Form as i,Space as a,Drawer as l}from"antd";import{useState as d}from"react";import{createRoot as
|
|
8
|
+
import{isString as e}from"@dimjs/lang/cjs/is-string";import{_ as o,a as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{isPromise as t}from"@dimjs/lang/cjs/is-promise";import{hooks as n}from"@wove/react/cjs/hooks";import{Form as i,Space as a,Drawer as l}from"antd";import{useState as d}from"react";import{createRoot as s}from"react-dom/client";import{ButtonWrapper as c}from"../button-wrapper/index.js";import{ConfigProviderWrapper as m}from"../config-provider-wrapper/index.js";import{fbaHooks as p}from"../fba-hooks/index.js";import{b as u}from"../dom-4d04aa64.js";import{C as f}from"../context-1f2093c6.js";import{jsx as v,jsxs as j}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/utils/cjs/class-names";import"@flatbiz/utils";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../use-responsive-point-21b8c601.js";import"@wove/react/cjs/create-ctx";var y=["divElement","elementId","onOk","onCancel","content","configProviderProps","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra","bodyStyle"];var w=function e(s){var u=s.divElement,w=s.elementId,h=s.onOk,g=s.onCancel,x=s.content,k=s.configProviderProps,C=s.okText,b=s.cancelText,P=s.okButtonExtraProps,_=s.cancelButtonExtraProps,E=s.operatePosition,B=E===void 0?"footer":E,I=s.operateRender,S=s.width,H=S===void 0?600:S,O=s.okHidden,R=s.cancelHidden,T=s.extra,z=s.bodyStyle,F=r(s,y);var W=d(true),Y=W[0],D=W[1];var L=d(),N=L[0],U=L[1];var q=i.useForm(),A=q[0];var G=n.useCallbackRef((function(){try{delete window[w]}catch(e){}D(false)}));p.useEffectCustom((function(){window[w]=G}),[G]);var J=n.useCallbackRef((function(e){if(g){var o=g(A,e);if(o&&t(o)){return o.then(G)}}return G()}));var K=n.useCallbackRef((function(e){if(h){var o=h(A,e);if(o&&t(o)){return o.then(G)}}return G()}));var M=j(a,{children:[R||_!=null&&_.hidden?null:v(c,o({},_,{onClick:J,children:b||"取消"})),O||P!=null&&P.hidden?null:v(c,o({type:"primary"},P,{onClick:K,children:C||"提交"}))]});var Q=function e(){if(I){return I(A)}if(!O||!R){return M}return null};var V=typeof T==="function"?T(A):T;var X=function e(o){U(o)};return v(f,{value:{onClose:G,updateBodyStyle:X},children:v(m,o({},k,{children:v(l,o({maskClosable:true,destroyOnClose:true,onClose:G,width:"80%",contentWrapperStyle:{maxWidth:H},footer:B==="footer"?Q():null},F,{bodyStyle:o({},N,z),extra:B==="header"?Q():V,open:Y,getContainer:u,children:typeof x==="function"?x(A,{onClose:G}):x}))}))})};var h={open:function e(r){var t=u(),n=t.divElement,i=t.elementId;window["__dialog_drawer_elementId"]=i;var a=s(n);a.render(v(w,o({},r,{divElement:n,elementId:i})));return{close:function e(){var o,r;(o=(r=window)[i])==null?void 0:o.call(r)}}},close:function o(){try{var r,t;var n=window["__dialog_drawer_elementId"];if(e(n))(r=(t=window)[n])==null?void 0:r.call(t)}catch(e){}}};export{h as dialogDrawer};
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-drawer/dialog-drawer.tsx"],"sourcesContent":["import { isPromise, isString } from '@dimjs/lang';\nimport { TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { CSSProperties, ReactElement, ReactNode, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { bodyAppendDivElement, BodyAppendDivElementProps } from '../_utils/dom';\nimport { CtxProvider } from './context';\n\nexport type DialogDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'footer' | 'extra'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n operatePosition?: 'header' | 'footer';\n operateRender?: (form: FormInstance) => ReactElement;\n okHidden?: boolean;\n cancelHidden?: boolean;\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogDrawerProps) => {\n const {\n divElement,\n elementId,\n onOk,\n onCancel,\n content,\n configProviderProps,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width = 600,\n okHidden,\n cancelHidden,\n extra,\n bodyStyle,\n ...otherProps\n } = props;\n const [open, setOpen] = useState(true);\n const [innerBodyStyle, setInnerBodyStyle] = useState<CSSProperties>();\n const [form] = Form.useForm();\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const operateGroup = (\n <Space>\n {cancelHidden || cancelButtonExtraProps?.hidden ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHidden || okButtonExtraProps?.hidden ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n\n const operateRenderHandle = () => {\n if (operateRender) {\n return operateRender(form);\n }\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n };\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n\n const updateBodyStyle = (bodyStyle?: CSSProperties) => {\n setInnerBodyStyle(bodyStyle);\n };\n\n return (\n <CtxProvider value={{ onClose, updateBodyStyle }}>\n <ConfigProviderWrapper {...configProviderProps}>\n <Drawer\n maskClosable={true}\n destroyOnClose\n onClose={onClose}\n width={'80%'}\n contentWrapperStyle={{ maxWidth: width }}\n footer={operatePosition === 'footer' ? operateRenderHandle() : null}\n {...otherProps}\n bodyStyle={{ ...innerBodyStyle, ...bodyStyle }}\n extra={operatePosition === 'header' ? operateRenderHandle() : extraRender}\n open={open}\n getContainer={divElement}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n </ConfigProviderWrapper>\n </CtxProvider>\n );\n};\n\n/**\n * 函数式调用弹框;初始化后,内容无法更新\n *```\n * 1. 基础使用方式\n * dialogDrawer.open({\n * title: '我是标题',\n * content: <div>我是内容</div>,\n * });\n * ```\n * ```\n * ***************************\n * 2. 结合内置form使用,可在onOK、onCancel获取form对象\n * dialogDrawer.open({\n * title: '我是标题',\n * content: (form, operate) => {\n * return (\n * <Form form={form}>\n * <Form.Item name=\"useName\">\n * <Input placeholder=\"请输入\" />\n * </Form.Item>\n * </Form>\n * );\n * },\n * onOk: (form) => {\n * console.log('content form数据', form.getFieldsValue());\n * return Promise.resolve();\n * },\n * });\n *\n * 注意:\n * 1. 设置operateRender后,需要自定义操作按钮,onOk、onCancel、okText、cancelText、okButtonExtraProps、cancelButtonExtraProps配置失效\n * ```\n */\nexport const dialogDrawer = {\n open: (props: DialogDrawerProps) => {\n const { divElement, elementId } = bodyAppendDivElement();\n window['__dialog_drawer_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogDrawer.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_drawer_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","divElement","elementId","onOk","onCancel","content","configProviderProps","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","_props$width","width","okHidden","cancelHidden","extra","bodyStyle","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_useState2","innerBodyStyle","setInnerBodyStyle","_Form$useForm","Form","useForm","form","onClose","_hooks","useCallbackRef","window","error","fbaHooks","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","operateGroup","_jsxs","Space","children","hidden","_jsx","ButtonWrapper","_extends","onClick","type","operateRenderHandle","extraRender","updateBodyStyle","CtxProvider","value","ConfigProviderWrapper","Drawer","maskClosable","destroyOnClose","contentWrapperStyle","maxWidth","footer","getContainer","dialogDrawer","_bodyAppendDivElement","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString"],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-drawer/dialog-drawer.tsx"],"sourcesContent":["import { isPromise, isString } from '@dimjs/lang';\nimport { TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { CSSProperties, ReactElement, ReactNode, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { bodyAppendDivElement, BodyAppendDivElementProps } from '../_utils/dom';\nimport { CtxProvider } from './context';\n\nexport type DialogDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'open' | 'open' | 'footer' | 'extra'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n configProviderProps?: ConfigProviderWrapperProps;\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n operatePosition?: 'header' | 'footer';\n operateRender?: (form: FormInstance) => ReactElement;\n okHidden?: boolean;\n cancelHidden?: boolean;\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n};\n\nconst ModalRender = (props: BodyAppendDivElementProps & DialogDrawerProps) => {\n const {\n divElement,\n elementId,\n onOk,\n onCancel,\n content,\n configProviderProps,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width = 600,\n okHidden,\n cancelHidden,\n extra,\n bodyStyle,\n ...otherProps\n } = props;\n const [open, setOpen] = useState(true);\n const [innerBodyStyle, setInnerBodyStyle] = useState<CSSProperties>();\n const [form] = Form.useForm();\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n window[elementId] = onClose;\n }, [onClose]);\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const operateGroup = (\n <Space>\n {cancelHidden || cancelButtonExtraProps?.hidden ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHidden || okButtonExtraProps?.hidden ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n\n const operateRenderHandle = () => {\n if (operateRender) {\n return operateRender(form);\n }\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n };\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n\n const updateBodyStyle = (bodyStyle?: CSSProperties) => {\n setInnerBodyStyle(bodyStyle);\n };\n\n return (\n <CtxProvider value={{ onClose, updateBodyStyle }}>\n <ConfigProviderWrapper {...configProviderProps}>\n <Drawer\n maskClosable={true}\n destroyOnClose\n onClose={onClose}\n width={'80%'}\n contentWrapperStyle={{ maxWidth: width }}\n footer={operatePosition === 'footer' ? operateRenderHandle() : null}\n {...otherProps}\n bodyStyle={{ ...innerBodyStyle, ...bodyStyle }}\n extra={operatePosition === 'header' ? operateRenderHandle() : extraRender}\n open={open}\n getContainer={divElement}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n </ConfigProviderWrapper>\n </CtxProvider>\n );\n};\n\n/**\n * 函数式调用弹框;初始化后,内容无法更新\n *```\n * 1. 基础使用方式\n * dialogDrawer.open({\n * title: '我是标题',\n * content: <div>我是内容</div>,\n * });\n * ```\n * ```\n * ***************************\n * 2. 结合内置form使用,可在onOK、onCancel获取form对象\n * dialogDrawer.open({\n * title: '我是标题',\n * content: (form, operate) => {\n * return (\n * <Form form={form}>\n * <Form.Item name=\"useName\">\n * <Input placeholder=\"请输入\" />\n * </Form.Item>\n * </Form>\n * );\n * },\n * onOk: (form) => {\n * console.log('content form数据', form.getFieldsValue());\n * return Promise.resolve();\n * },\n * });\n *\n * 注意:\n * 1. 设置operateRender后,需要自定义操作按钮,onOk、onCancel、okText、cancelText、okButtonExtraProps、cancelButtonExtraProps配置失效\n * ```\n */\nexport const dialogDrawer = {\n open: (props: DialogDrawerProps) => {\n const { divElement, elementId } = bodyAppendDivElement();\n window['__dialog_drawer_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(<ModalRender {...props} divElement={divElement} elementId={elementId} />);\n return {\n close: () => {\n window[elementId]?.();\n },\n };\n },\n /**\n * ```\n * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个\n * 2. 多个弹框主动关闭,只能使用 dialogDrawer.open()返回值中的close\n * ```\n */\n close: () => {\n try {\n const elementId = window['__dialog_drawer_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","divElement","elementId","onOk","onCancel","content","configProviderProps","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","_props$width","width","okHidden","cancelHidden","extra","bodyStyle","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","open","setOpen","_useState2","innerBodyStyle","setInnerBodyStyle","_Form$useForm","Form","useForm","form","onClose","_hooks","useCallbackRef","window","error","fbaHooks","useEffectCustom","onCancelHandle","e","response","_isPromise","then","onOkHandle","operateGroup","_jsxs","Space","children","hidden","_jsx","ButtonWrapper","_extends","onClick","type","operateRenderHandle","extraRender","updateBodyStyle","CtxProvider","value","ConfigProviderWrapper","Drawer","maskClosable","destroyOnClose","contentWrapperStyle","maxWidth","footer","getContainer","dialogDrawer","_bodyAppendDivElement","bodyAppendDivElement","root","createRoot","render","close","_window$elementId","_window","call","_window$elementId2","_window2","_isString"],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@ import './../fba-hooks/index.css';
|
|
|
5
5
|
import './../fba-utils/index.css';
|
|
6
6
|
import './index.css';
|
|
7
7
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
8
|
-
import{_ as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{isPromise as e}from"@dimjs/lang/cjs/is-promise";import{hooks as o}from"@wove/react/cjs/hooks";import{Space as i}from"antd";import{ButtonWrapper as t}from"../button-wrapper/index.js";import{u as a}from"../context-1f2093c6.js";import{fbaHooks as n}from"../fba-hooks/index.js";import{jsxs as l,jsx as s}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@flatbiz/utils";import"react";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@wove/react/cjs/create-ctx";var d=function d(p){var c=a();var m=c.onClose;n.useEffectCustom((function(){c.updateBodyStyle({padding:0})}),[]);var u=p.okHidden,f=p.onCancel,j=p.onOk,v=p.cancelHidden,y=p.cancelText,g=p.okText,h=p.okButtonExtraProps,k=p.cancelButtonExtraProps,x=p.footer;var w=o.useCallbackRef((function(r){if(f){var o=f(r);if(o&&e(o)){return o.then(m)}}return m()}));var C=o.useCallbackRef((function(r){if(j){var o=j(r);if(o&&e(o)){return o.then(m)}}return m()}));var b=l(i,{children:[v||k!=null&&k.hidden?null:s(t,r({},k,{onClick:w,children:y||"取消"})),u||h!=null&&h.hidden?null:s(t,r({type:"primary"},h,{onClick:C,children:g||"提交"}))]});return l("div",{className:"dialog-drawer-content-wrapper",children:[s("div",{className:"dialog-drawer-content",children:p.children}),s("div",{className:"dialog-drawer-footer",style:p.footerStyle,children:(x==null?void 0:x({onClose:m}))||b})]})};export{d as DialogDrawerContent};
|
|
8
|
+
import{_ as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{isPromise as e}from"@dimjs/lang/cjs/is-promise";import{hooks as o}from"@wove/react/cjs/hooks";import{Space as i}from"antd";import{ButtonWrapper as t}from"../button-wrapper/index.js";import{u as a}from"../context-1f2093c6.js";import{fbaHooks as n}from"../fba-hooks/index.js";import{jsxs as l,jsx as s}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/utils/cjs/class-names";import"@flatbiz/utils";import"react";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@wove/react/cjs/create-ctx";var d=function d(p){var c=a();var m=c.onClose;n.useEffectCustom((function(){c.updateBodyStyle({padding:0})}),[]);var u=p.okHidden,f=p.onCancel,j=p.onOk,v=p.cancelHidden,y=p.cancelText,g=p.okText,h=p.okButtonExtraProps,k=p.cancelButtonExtraProps,x=p.footer;var w=o.useCallbackRef((function(r){if(f){var o=f(r);if(o&&e(o)){return o.then(m)}}return m()}));var C=o.useCallbackRef((function(r){if(j){var o=j(r);if(o&&e(o)){return o.then(m)}}return m()}));var b=l(i,{children:[v||k!=null&&k.hidden?null:s(t,r({},k,{onClick:w,children:y||"取消"})),u||h!=null&&h.hidden?null:s(t,r({type:"primary"},h,{onClick:C,children:g||"提交"}))]});return l("div",{className:"dialog-drawer-content-wrapper",children:[s("div",{className:"dialog-drawer-content",children:p.children}),s("div",{className:"dialog-drawer-footer",style:p.footerStyle,children:(x==null?void 0:x({onClose:m}))||b})]})};export{d as DialogDrawerContent};
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-drawer-content/content.tsx"],"sourcesContent":["import { isPromise } from '@dimjs/lang';\nimport { hooks } from '@wove/react';\nimport { Space } from 'antd';\nimport { CSSProperties, ReactElement, ReactNode } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { useDialogDrawerCtx } from '../dialog-drawer/context';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type DialogDrawerContentProps = {\n footer?: (data: { onClose: () => void }) => ReactElement;\n footerStyle?: CSSProperties;\n children?: ReactNode;\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n/**\n * 当dialogDrawer底部操作按钮在业务content内部时,使用\n * ```\n * 1. 设置 footer 后,okHidden、cancelHidden、okButtonExtraProps、cancelButtonExtraProps、okText、cancelText、onOk、onCancel全部失效\n * ```\n */\nexport const DialogDrawerContent = (props: DialogDrawerContentProps) => {\n const ctx = useDialogDrawerCtx();\n const onClose = ctx.onClose;\n\n fbaHooks.useEffectCustom(() => {\n ctx.updateBodyStyle({ padding: 0 });\n }, []);\n\n const {\n okHidden,\n onCancel,\n onOk,\n cancelHidden,\n cancelText,\n okText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n footer,\n } = props;\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n const operateGroup = (\n <Space>\n {cancelHidden || cancelButtonExtraProps?.hidden ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHidden || okButtonExtraProps?.hidden ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n return (\n <div className=\"dialog-drawer-content-wrapper\">\n <div className=\"dialog-drawer-content\">{props.children}</div>\n <div className=\"dialog-drawer-footer\" style={props.footerStyle}>\n {footer?.({ onClose }) || operateGroup}\n </div>\n </div>\n );\n};\n"],"names":["DialogDrawerContent","props","ctx","useDialogDrawerCtx","onClose","fbaHooks","useEffectCustom","updateBodyStyle","padding","okHidden","onCancel","onOk","cancelHidden","cancelText","okText","okButtonExtraProps","cancelButtonExtraProps","footer","onCancelHandle","_hooks","useCallbackRef","e","response","_isPromise","then","onOkHandle","operateGroup","_jsxs","Space","children","hidden","_jsx","ButtonWrapper","_extends","onClick","type","className","style","footerStyle"],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-drawer-content/content.tsx"],"sourcesContent":["import { isPromise } from '@dimjs/lang';\nimport { hooks } from '@wove/react';\nimport { Space } from 'antd';\nimport { CSSProperties, ReactElement, ReactNode } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { useDialogDrawerCtx } from '../dialog-drawer/context';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type DialogDrawerContentProps = {\n footer?: (data: { onClose: () => void }) => ReactElement;\n footerStyle?: CSSProperties;\n children?: ReactNode;\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n/**\n * 当dialogDrawer底部操作按钮在业务content内部时,使用\n * ```\n * 1. 设置 footer 后,okHidden、cancelHidden、okButtonExtraProps、cancelButtonExtraProps、okText、cancelText、onOk、onCancel全部失效\n * ```\n */\nexport const DialogDrawerContent = (props: DialogDrawerContentProps) => {\n const ctx = useDialogDrawerCtx();\n const onClose = ctx.onClose;\n\n fbaHooks.useEffectCustom(() => {\n ctx.updateBodyStyle({ padding: 0 });\n }, []);\n\n const {\n okHidden,\n onCancel,\n onOk,\n cancelHidden,\n cancelText,\n okText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n footer,\n } = props;\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n return onClose();\n });\n const operateGroup = (\n <Space>\n {cancelHidden || cancelButtonExtraProps?.hidden ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHidden || okButtonExtraProps?.hidden ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n return (\n <div className=\"dialog-drawer-content-wrapper\">\n <div className=\"dialog-drawer-content\">{props.children}</div>\n <div className=\"dialog-drawer-footer\" style={props.footerStyle}>\n {footer?.({ onClose }) || operateGroup}\n </div>\n </div>\n );\n};\n"],"names":["DialogDrawerContent","props","ctx","useDialogDrawerCtx","onClose","fbaHooks","useEffectCustom","updateBodyStyle","padding","okHidden","onCancel","onOk","cancelHidden","cancelText","okText","okButtonExtraProps","cancelButtonExtraProps","footer","onCancelHandle","_hooks","useCallbackRef","e","response","_isPromise","then","onOkHandle","operateGroup","_jsxs","Space","children","hidden","_jsx","ButtonWrapper","_extends","onClick","type","className","style","footerStyle"],"mappings":";6hCA4BaA,EAAsB,SAAtBA,EAAuBC,GAClC,IAAMC,EAAMC,IACZ,IAAMC,EAAUF,EAAIE,QAEpBC,EAASC,iBAAgB,WACvBJ,EAAIK,gBAAgB,CAAEC,QAAS,GAChC,GAAE,IAEH,IACEC,EASER,EATFQ,SACAC,EAQET,EARFS,SACAC,EAOEV,EAPFU,KACAC,EAMEX,EANFW,aACAC,EAKEZ,EALFY,WACAC,EAIEb,EAJFa,OACAC,EAGEd,EAHFc,mBACAC,EAEEf,EAFFe,uBACAC,EACEhB,EADFgB,OAEF,IAAMC,EAAiBC,EAAMC,gBAAe,SAACC,GAC3C,GAAIX,EAAU,CACZ,IAAMY,EAAWZ,EAASW,GAC1B,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKpB,EACvB,CACF,CACA,OAAOA,GACT,IAEA,IAAMqB,EAAaN,EAAMC,gBAAe,SAACC,GACvC,GAAIV,EAAM,CACR,IAAMW,EAAWX,EAAKU,GACtB,GAAIC,GAAYC,EAAUD,GAAW,CACnC,OAAOA,EAASE,KAAKpB,EACvB,CACF,CACA,OAAOA,GACT,IACA,IAAMsB,EACJC,EAACC,EAAK,CAAAC,UACHjB,GAAgBI,GAAsB,MAAtBA,EAAwBc,OAAS,KAChDC,EAACC,EAAaC,KAAKjB,EAAsB,CAAEkB,QAAShB,EAAeW,SAChEhB,GAAc,QAGlBJ,GAAYM,SAAAA,EAAoBe,OAAS,KACxCC,EAACC,EAAaC,EAAA,CAACE,KAAK,WAAcpB,EAAkB,CAAEmB,QAAST,EAAWI,SACvEf,GAAU,WAKnB,OACEa,EAAA,MAAA,CAAKS,UAAU,gCAA+BP,UAC5CE,EAAA,MAAA,CAAKK,UAAU,wBAAuBP,SAAE5B,EAAM4B,WAC9CE,EAAA,MAAA,CAAKK,UAAU,uBAAuBC,MAAOpC,EAAMqC,YAAYT,UAC5DZ,GAAM,UAAA,EAANA,EAAS,CAAEb,QAAAA,MAAcsB,MAIlC"}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../fba-hooks/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{array as a}from"@dimjs/utils/cjs/array";import{hooks as n}from"@wove/react/cjs/hooks";import{DndContext as i,closestCenter as r,DragOverlay as t}from"@dnd-kit/core";import{useSortable as o,SortableContext as
|
|
5
|
+
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{array as a}from"@dimjs/utils/cjs/array";import{hooks as n}from"@wove/react/cjs/hooks";import{DndContext as i,closestCenter as r,DragOverlay as t}from"@dnd-kit/core";import{useSortable as o,SortableContext as d,verticalListSortingStrategy as s,arrayMove as l}from"@dnd-kit/sortable";import{toArray as c}from"@flatbiz/utils";import{Form as m,Collapse as u}from"antd";import{Fragment as f,useState as p,useRef as g,useMemo as v}from"react";import{fbaHooks as h}from"../fba-hooks/index.js";import{_ as I}from"../_rollupPluginBabelHelpers-fc015ef2.js";import D from"@ant-design/icons/es/icons/DragOutlined";import{CSS as x}from"@dnd-kit/utilities";import{jsx as N,jsxs as b}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";function y(a){var n;var i=m.useFormInstance();var r=a.isOverlay?false:a.getItemDragDisabled==null?void 0:a.getItemDragDisabled(a.uid,a.index);var t=o({id:a.uid,disabled:r}),d=t.listeners,s=t.setNodeRef,l=t.transform,c=t.transition;var p=function e(){var n=a.dragIcon?a.dragIcon:N(D,{});var r=a.header({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName,getInsideFormItemName:function e(n){return[a.formListFieldData.name,n]},getInsideFormItemData:function e(){return i.getFieldValue(a.formStageCompleteName)||{}},index:a.index});return a.dragDisabled?r:b(f,{children:[N("span",I({className:"dc-drag-trigger"},d,{children:n})),N("span",{className:"dc-drag-header-content",style:a.headerStyle,children:r})]})};var g=I({transform:x.Transform.toString(l),transition:c},a.style);var v=e("drag-collapse",{"drag-collapse-grap":a.isGray,"drag-collapse-last":a.isLast,"drag-collapse-drag-disabled":r},a.className);return N(u,{activeKey:a.isActive?a.uid:undefined,accordion:true,className:v,collapsible:a.collapsible,expandIcon:a.expandIcon,expandIconPosition:a.expandIconPosition,size:a.size,onChange:(n=a.onChange)==null?void 0:n.bind(null,a.uid),style:I({},g),ref:s,children:N(u.Panel,{header:p(),children:a.content({formListFieldData:a.formListFieldData,operation:a.formListOperate,uid:a.uid,formStageCompleteName:a.formStageCompleteName,getInsideFormItemName:function e(n){return[a.formListFieldData.name,n]},getInsideFormItemData:function e(){return i.getFieldValue(a.formStageCompleteName)||{}},index:a.index})},a.uid)})}var C=function o(u){var I=p(),D=I[0],x=I[1];var C=p([]),L=C[0],F=C[1];var j=m.useFormInstance();var S=g([]);var k=m.useWatch(u.formListName,j);var P=n.useCallbackRef((function(e){return e==null?void 0:e[u.uidFieldName||"uid"]}));h.useEffectCustom((function(){var e=c(u.defaultActiveKey);if(!u.activeKey&&e.length>0){F(e)}else{F(c(u.activeKey))}}),[]);n.useUpdateEffect((function(){F(c(u.activeKey))}),[u.activeKey]);var z=function e(n){var i=[];if(u.accordion){if(L[0]&&L[0]===n){i=[]}else{i=[n]}}else{var r=L.includes(n);if(r){a.arrayRemove(L,n);i=[].concat(L)}else{i=L.concat(n)}}F(i);if(u.accordion){u.onChange==null?void 0:u.onChange(i.length?i[0]:undefined)}else{u.onChange==null?void 0:u.onChange(i.length?i:undefined)}};function O(e){var a=e.active;x(a.id)}var K=n.useCallbackRef((function(){return j.getFieldValue(u.formListName)||[]}));function A(e){var a=e.active,n=e.over;var i=K();if(a.id!==n.id){var r=i.findIndex((function(e){return P(e)===a.id}));var t=i.findIndex((function(e){return P(e)===n.id}));var o=l(i,r,t);j.setFields([{name:u.formListName,value:o}]);u.onDropChange==null?void 0:u.onDropChange(o)}x(undefined)}var E=v((function(){if(!D)return undefined;var e=K();var a=e.findIndex((function(e){return P(e)===D}));return S.current.find((function(e){return e.name===a}))}),[D,K,P]);var R=e("drag-collapse-formlist-wrapper",{"dcfw-isEmpty":c(k).length===0},u.className);return N("div",{className:R,style:u.style,children:N(i,{collisionDetection:r,onDragStart:O,onDragEnd:A,children:N(m.List,{name:u.formListName,children:function e(a,n){S.current=a;return b(f,{children:[N(d,{items:K().map((function(e){return P(e)})),strategy:s,children:N(f,{children:a.map((function(e,a){var i=P(K()[a]);return N(y,{formListOperate:n,formListFieldData:e,uid:i,isActive:L.includes(i),collapsible:u.collapsible,expandIcon:u.expandIcon,expandIconPosition:u.expandIconPosition,size:u.size,dragIcon:u.dragIcon,getItemDragDisabled:u.getItemDragDisabled,dragDisabled:u.dragDisabled,onChange:z,isGray:i===D,isLast:a===K().length-1,header:u.header,content:u.content,index:a,formStageCompleteName:[].concat(c(u.formListName),[e.name])},i+"-"+e.key)}))})}),N(t,{dropAnimation:{duration:0},children:D&&E?N(y,{isOverlay:true,uid:D,className:"overlay-sortable-item",formListFieldData:E,isActive:L.includes(D),collapsible:u.collapsible,expandIcon:u.expandIcon,expandIconPosition:u.expandIconPosition,size:u.size,dragIcon:u.dragIcon,onChange:z,header:u.header,content:u.content,formListOperate:null,index:0,formStageCompleteName:[].concat(c(u.formListName),[E.name])},D):null})]})}})})})};export{C as DragCollapseFormList};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-collapse-form-list/sortable-item.tsx","@flatbiz/antd/src/drag-collapse-form-list/drag-collapse.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Collapse, FormListFieldData, FormListOperation } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n onChange: (activeKey: number | string) => void;\n header: DragCollapseFormListProps['header'];\n content: DragCollapseFormListProps['content'];\n collapsible?: DragCollapseFormListProps['collapsible'];\n expandIcon?: DragCollapseFormListProps['expandIcon'];\n expandIconPosition?: DragCollapseFormListProps['expandIconPosition'];\n size?: DragCollapseFormListProps['size'];\n dragIcon?: DragCollapseFormListProps['dragIcon'];\n getItemDragDisabled?: DragCollapseFormListProps['getItemDragDisabled'];\n dragDisabled?: DragCollapseFormListProps['dragDisabled'];\n isGray?: boolean;\n isLast?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n isActive?: boolean;\n headerStyle?: CSSProperties;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: string | number | (string | number)[];\n};\nexport function SortableItem(props: SortableItemProps) {\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const header = () => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n const headerContent = props.header({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n });\n return props.dragDisabled ? (\n headerContent\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\" style={props.headerStyle}>\n {headerContent}\n </span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-collapse',\n {\n 'drag-collapse-grap': props.isGray,\n 'drag-collapse-last': props.isLast,\n 'drag-collapse-drag-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <Collapse\n activeKey={props.isActive ? props.uid : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.uid)}\n style={{ ...style }}\n ref={setNodeRef}\n >\n <Collapse.Panel header={header()} key={props.uid}>\n {props.content({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n })}\n </Collapse.Panel>\n </Collapse>\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseFormListProps } from './types';\n\n/**\n * 可拖拽 折叠面板+FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置名称\n * ```\n */\nexport const DragCollapseFormList = (props: DragCollapseFormListProps) => {\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const [openKeys, setOpenKeys] = useState<(number | string)[]>([]);\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n\n const formListValue = Form.useWatch(props.formListName, form);\n\n const getUidValue = hooks.useCallbackRef((item) => {\n return item?.[props.uidFieldName || 'uid'] as string | number;\n });\n\n fbaHooks.useEffectCustom(() => {\n const defaultActiveKeys = toArray<string | number>(props.defaultActiveKey);\n if (!props.activeKey && defaultActiveKeys.length > 0) {\n setOpenKeys(defaultActiveKeys);\n } else {\n setOpenKeys(toArray(props.activeKey));\n }\n }, []);\n\n hooks.useUpdateEffect(() => {\n setOpenKeys(toArray(props.activeKey));\n }, [props.activeKey]);\n\n const onChange = (key: number | string) => {\n let openKeysNew: (number | string)[] = [];\n if (props.accordion) {\n if (openKeys[0] && openKeys[0] === key) {\n openKeysNew = [];\n } else {\n openKeysNew = [key];\n }\n } else {\n const has = openKeys.includes(key);\n if (has) {\n array.arrayRemove(openKeys, key);\n openKeysNew = [...openKeys];\n } else {\n openKeysNew = openKeys.concat(key);\n }\n }\n setOpenKeys(openKeysNew);\n if (props.accordion) {\n props.onChange?.(openKeysNew.length ? openKeysNew[0] : undefined);\n } else {\n props.onChange?.(openKeysNew.length ? openKeysNew : undefined);\n }\n };\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n const getItems = hooks.useCallbackRef(() => {\n return (form.getFieldValue(props.formListName) || []) as TPlainObject[];\n });\n\n function handleDragEnd(event) {\n const { active, over } = event;\n const items = getItems();\n if (active.id !== over.id) {\n const oldIndex = items.findIndex((item) => getUidValue(item) === active.id);\n const newIndex = items.findIndex((item) => getUidValue(item) === over.id);\n const newList = arrayMove<TPlainObject>(items, oldIndex, newIndex);\n form.setFields([\n {\n name: props.formListName,\n value: newList,\n },\n ]);\n props.onDropChange?.(newList);\n }\n setDragActiveId(undefined);\n }\n\n const dragOverlayItem = useMemo(() => {\n if (!dragActiveId) return undefined;\n const items = getItems();\n const targetIndex = items.findIndex((item) => getUidValue(item) === dragActiveId);\n return formListOperationRef.current.find((item) => item.name === targetIndex);\n }, [dragActiveId, getItems, getUidValue]);\n\n const cName = classNames(\n 'drag-collapse-formlist-wrapper',\n { 'dcfw-isEmpty': toArray(formListValue).length === 0 },\n props.className,\n );\n return (\n <div className={cName} style={props.style}>\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Form.List name={props.formListName}>\n {(fields, operate) => {\n formListOperationRef.current = fields;\n return (\n <Fragment>\n <SortableContext\n items={getItems().map((temp) => getUidValue(temp))}\n strategy={verticalListSortingStrategy}\n >\n <Fragment>\n {fields.map((item, index) => {\n const uid = getUidValue(getItems()[index]);\n return (\n <SortableItem\n formListOperate={operate}\n formListFieldData={item}\n uid={uid}\n key={`${uid}-${item.key}`}\n isActive={openKeys.includes(uid)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n getItemDragDisabled={props.getItemDragDisabled}\n dragDisabled={props.dragDisabled}\n onChange={onChange}\n isGray={uid === dragActiveId}\n isLast={index === getItems().length - 1}\n header={props.header}\n content={props.content}\n index={index}\n formStageCompleteName={[...toArray<string | number>(props.formListName), item.name]}\n />\n );\n })}\n </Fragment>\n </SortableContext>\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId && dragOverlayItem ? (\n <SortableItem\n isOverlay={true}\n uid={dragActiveId}\n key={dragActiveId}\n className=\"overlay-sortable-item\"\n formListFieldData={dragOverlayItem}\n isActive={openKeys.includes(dragActiveId)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n onChange={onChange}\n header={props.header}\n content={props.content}\n formListOperate={null as TAny}\n index={0}\n formStageCompleteName={[\n ...toArray<string | number>(props.formListName),\n dragOverlayItem.name,\n ]}\n />\n ) : null}\n </DragOverlay>\n </Fragment>\n );\n }}\n </Form.List>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","_props$onChange","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","headerContent","formListFieldData","operation","formListOperate","formStageCompleteName","dragDisabled","_jsxs","Fragment","children","_extends","className","style","headerStyle","CSS","Transform","toString","cname","_classNames","isGray","isLast","Collapse","activeKey","isActive","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","Panel","content","DragCollapseFormList","_useState","useState","dragActiveId","setDragActiveId","_useState2","openKeys","setOpenKeys","form","Form","useFormInstance","formListOperationRef","useRef","formListValue","useWatch","formListName","getUidValue","_hooks","useCallbackRef","item","uidFieldName","fbaHooks","useEffectCustom","defaultActiveKeys","toArray","defaultActiveKey","length","useUpdateEffect","key","openKeysNew","has","includes","_array","arrayRemove","concat","handleDragStart","event","active","getItems","getFieldValue","handleDragEnd","over","items","oldIndex","findIndex","newIndex","newList","arrayMove","setFields","name","value","onDropChange","dragOverlayItem","useMemo","targetIndex","current","find","cName","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","List","fields","operate","SortableContext","map","temp","strategy","verticalListSortingStrategy","DragOverlay","dropAnimation","duration"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-collapse-form-list/sortable-item.tsx","@flatbiz/antd/src/drag-collapse-form-list/drag-collapse.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Collapse, Form, FormListFieldData, FormListOperation } from 'antd';\nimport { CSSProperties, Fragment } from 'react';\nimport { DragCollapseFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n onChange: (activeKey: number | string) => void;\n header: DragCollapseFormListProps['header'];\n content: DragCollapseFormListProps['content'];\n collapsible?: DragCollapseFormListProps['collapsible'];\n expandIcon?: DragCollapseFormListProps['expandIcon'];\n expandIconPosition?: DragCollapseFormListProps['expandIconPosition'];\n size?: DragCollapseFormListProps['size'];\n dragIcon?: DragCollapseFormListProps['dragIcon'];\n getItemDragDisabled?: DragCollapseFormListProps['getItemDragDisabled'];\n dragDisabled?: DragCollapseFormListProps['dragDisabled'];\n isGray?: boolean;\n isLast?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n isActive?: boolean;\n headerStyle?: CSSProperties;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: Array<string | number>;\n};\nexport function SortableItem(props: SortableItemProps) {\n const form = Form.useFormInstance();\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const header = () => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n const headerContent = props.header({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n getInsideFormItemName: (key: string) => {\n return [props.formListFieldData.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n index: props.index,\n });\n return props.dragDisabled ? (\n headerContent\n ) : (\n <Fragment>\n <span className=\"dc-drag-trigger\" {...listeners}>\n {dragIcon}\n </span>\n <span className=\"dc-drag-header-content\" style={props.headerStyle}>\n {headerContent}\n </span>\n </Fragment>\n );\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-collapse',\n {\n 'drag-collapse-grap': props.isGray,\n 'drag-collapse-last': props.isLast,\n 'drag-collapse-drag-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <Collapse\n activeKey={props.isActive ? props.uid : undefined}\n accordion\n className={cname}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n onChange={props.onChange?.bind(null, props.uid)}\n style={{ ...style }}\n ref={setNodeRef}\n >\n <Collapse.Panel header={header()} key={props.uid}>\n {props.content({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n uid: props.uid,\n formStageCompleteName: props.formStageCompleteName,\n getInsideFormItemName: (key: string) => {\n return [props.formListFieldData.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n index: props.index,\n })}\n </Collapse.Panel>\n </Collapse>\n );\n}\n","import { array, classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { DragCollapseFormListProps } from './types';\n\n/**\n * 可拖拽 折叠面板+FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置名称\n * ```\n */\nexport const DragCollapseFormList = (props: DragCollapseFormListProps) => {\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const [openKeys, setOpenKeys] = useState<(number | string)[]>([]);\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n\n const formListValue = Form.useWatch(props.formListName, form);\n\n const getUidValue = hooks.useCallbackRef((item) => {\n return item?.[props.uidFieldName || 'uid'] as string | number;\n });\n\n fbaHooks.useEffectCustom(() => {\n const defaultActiveKeys = toArray<string | number>(props.defaultActiveKey);\n if (!props.activeKey && defaultActiveKeys.length > 0) {\n setOpenKeys(defaultActiveKeys);\n } else {\n setOpenKeys(toArray(props.activeKey));\n }\n }, []);\n\n hooks.useUpdateEffect(() => {\n setOpenKeys(toArray(props.activeKey));\n }, [props.activeKey]);\n\n const onChange = (key: number | string) => {\n let openKeysNew: (number | string)[] = [];\n if (props.accordion) {\n if (openKeys[0] && openKeys[0] === key) {\n openKeysNew = [];\n } else {\n openKeysNew = [key];\n }\n } else {\n const has = openKeys.includes(key);\n if (has) {\n array.arrayRemove(openKeys, key);\n openKeysNew = [...openKeys];\n } else {\n openKeysNew = openKeys.concat(key);\n }\n }\n setOpenKeys(openKeysNew);\n if (props.accordion) {\n props.onChange?.(openKeysNew.length ? openKeysNew[0] : undefined);\n } else {\n props.onChange?.(openKeysNew.length ? openKeysNew : undefined);\n }\n };\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n const getItems = hooks.useCallbackRef(() => {\n return (form.getFieldValue(props.formListName) || []) as TPlainObject[];\n });\n\n function handleDragEnd(event) {\n const { active, over } = event;\n const items = getItems();\n if (active.id !== over.id) {\n const oldIndex = items.findIndex((item) => getUidValue(item) === active.id);\n const newIndex = items.findIndex((item) => getUidValue(item) === over.id);\n const newList = arrayMove<TPlainObject>(items, oldIndex, newIndex);\n form.setFields([\n {\n name: props.formListName,\n value: newList,\n },\n ]);\n props.onDropChange?.(newList);\n }\n setDragActiveId(undefined);\n }\n\n const dragOverlayItem = useMemo(() => {\n if (!dragActiveId) return undefined;\n const items = getItems();\n const targetIndex = items.findIndex((item) => getUidValue(item) === dragActiveId);\n return formListOperationRef.current.find((item) => item.name === targetIndex);\n }, [dragActiveId, getItems, getUidValue]);\n\n const cName = classNames(\n 'drag-collapse-formlist-wrapper',\n { 'dcfw-isEmpty': toArray(formListValue).length === 0 },\n props.className,\n );\n return (\n <div className={cName} style={props.style}>\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Form.List name={props.formListName}>\n {(fields, operate) => {\n formListOperationRef.current = fields;\n return (\n <Fragment>\n <SortableContext\n items={getItems().map((temp) => getUidValue(temp))}\n strategy={verticalListSortingStrategy}\n >\n <Fragment>\n {fields.map((item, index) => {\n const uid = getUidValue(getItems()[index]);\n return (\n <SortableItem\n formListOperate={operate}\n formListFieldData={item}\n uid={uid}\n key={`${uid}-${item.key}`}\n isActive={openKeys.includes(uid)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n getItemDragDisabled={props.getItemDragDisabled}\n dragDisabled={props.dragDisabled}\n onChange={onChange}\n isGray={uid === dragActiveId}\n isLast={index === getItems().length - 1}\n header={props.header}\n content={props.content}\n index={index}\n formStageCompleteName={[...toArray<string | number>(props.formListName), item.name]}\n />\n );\n })}\n </Fragment>\n </SortableContext>\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId && dragOverlayItem ? (\n <SortableItem\n isOverlay={true}\n uid={dragActiveId}\n key={dragActiveId}\n className=\"overlay-sortable-item\"\n formListFieldData={dragOverlayItem}\n isActive={openKeys.includes(dragActiveId)}\n collapsible={props.collapsible}\n expandIcon={props.expandIcon}\n expandIconPosition={props.expandIconPosition}\n size={props.size}\n dragIcon={props.dragIcon}\n onChange={onChange}\n header={props.header}\n content={props.content}\n formListOperate={null as TAny}\n index={0}\n formStageCompleteName={[\n ...toArray<string | number>(props.formListName),\n dragOverlayItem.name,\n ]}\n />\n ) : null}\n </DragOverlay>\n </Fragment>\n );\n }}\n </Form.List>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","_props$onChange","form","Form","useFormInstance","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","header","dragIcon","_jsx","_DragOutlined","headerContent","formListFieldData","operation","formListOperate","formStageCompleteName","getInsideFormItemName","key","name","getInsideFormItemData","getFieldValue","dragDisabled","_jsxs","Fragment","children","_extends","className","style","headerStyle","CSS","Transform","toString","cname","_classNames","isGray","isLast","Collapse","activeKey","isActive","undefined","accordion","collapsible","expandIcon","expandIconPosition","size","onChange","bind","ref","Panel","content","DragCollapseFormList","_useState","useState","dragActiveId","setDragActiveId","_useState2","openKeys","setOpenKeys","formListOperationRef","useRef","formListValue","useWatch","formListName","getUidValue","_hooks","useCallbackRef","item","uidFieldName","fbaHooks","useEffectCustom","defaultActiveKeys","toArray","defaultActiveKey","length","useUpdateEffect","openKeysNew","has","includes","_array","arrayRemove","concat","handleDragStart","event","active","getItems","handleDragEnd","over","items","oldIndex","findIndex","newIndex","newList","arrayMove","setFields","value","onDropChange","dragOverlayItem","useMemo","targetIndex","current","find","cName","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","List","fields","operate","SortableContext","map","temp","strategy","verticalListSortingStrategy","DragOverlay","dropAnimation","duration"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.drag-form-list{background-color:#fff}.drag-form-list-item-grap *{opacity:.7!important}.drag-form-list-item-disabled .drag-form-list-item-trigger{cursor:no-drop;opacity:.6}.drag-form-list-overlay{border:none;border-radius:6px;box-shadow:0 0 12px 4px rgba(34,33,81,.1)}.drag-form-list-overlay .ant-collapse-item{border-bottom:none}.drag-form-list-overlay .drag-form-list-item-trigger{background-color:transparent}.drag-form-list-icon{display:inline-block;width:30px}.drag-form-list-item{align-items:center;background-color:#fff;display:flex;padding:8px 10px}.drag-form-list-item-content{flex:1}.drag-form-list-item-content .ant-form-item{margin-bottom:0}.drag-form-list-item-trigger{align-items:center;border-radius:6px;cursor:move;display:inline-flex;font-size:16px;height:30px;justify-content:center;margin-right:5px;width:30px}.drag-form-list-item-trigger:hover{background-color:rgba(0,0,0,.1)}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import './index.css';
|
|
3
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
+
import{_ as e}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as t}from"@wove/react/cjs/hooks";import{DndContext as a,closestCenter as n,DragOverlay as i}from"@dnd-kit/core";import{useSortable as d,SortableContext as o,verticalListSortingStrategy as l,arrayMove as m}from"@dnd-kit/sortable";import{ButtonWrapper as s}from"@flatbiz/antd";import{toArray as u,getUuid as c}from"@flatbiz/utils";import{Form as f,Empty as p}from"antd";import{Fragment as g,useState as v,useRef as h,useMemo as D}from"react";import N from"@ant-design/icons/es/icons/DragOutlined";import{CSS as I}from"@dnd-kit/utilities";import{jsx as C,jsxs as b}from"react/jsx-runtime";function y(a){var n=f.useFormInstance();var i=a.isOverlay?false:a.getItemDragDisabled==null?void 0:a.getItemDragDisabled(a.uid,a.index);var o=d({id:a.uid,disabled:i}),l=o.listeners,m=o.setNodeRef,s=o.transform,u=o.transition;var c=t.useCallbackRef((function(){var r=a.dragIcon?a.dragIcon:C(N,{});return a.dragDisabled?C(g,{}):C("span",e({className:"drag-form-list-item-trigger"},l,{children:C("span",{children:r})}))}));var p=e({transform:I.Transform.toString(s),transition:u},a.style);var v=r("drag-form-list-item",{"drag-form-list-item-grap":a.isGray,"drag-form-list-item-disabled":i},a.className);return b("div",{style:e({},p),ref:m,className:v,children:[C(f.Item,{style:{margin:0},children:c()}),C("div",{className:"drag-form-list-item-content",children:a.children({formListFieldData:a.formListFieldData,operation:a.formListOperate,formStageCompleteName:a.formStageCompleteName,index:a.index,getInsideFormItemName:function e(r){return[a.formListFieldData.name,r]},getInsideFormItemData:function e(){return n.getFieldValue(a.formStageCompleteName)||{}},prevCompleteName:a.prevCompleteName,uidKey:a.uidFieldName})})]})}var F=function e(r){if(r.wrapper)return r.wrapper({children:r.children});return r.children};var x=function d(N){var I=[].concat(N.prevCompleteName,u(N.name));var x=v(),L=x[0],R=x[1];var k=f.useFormInstance();var w=h([]);var S=N.uidFieldName||"uid";var A=f.useWatch(I,k);var E=t.useCallbackRef((function(e){return e==null?void 0:e[S]}));function O(e){var r=e.active;R(r.id)}var j=t.useCallbackRef((function(){return k.getFieldValue(I)||[]}));function B(e){var r=e.active,t=e.over;var a=j();if(r.id!==t.id){var n=a.findIndex((function(e){return E(e)===r.id}));var i=a.findIndex((function(e){return E(e)===t.id}));var d=m(a,n,i);k.setFields([{name:N.name,value:d}]);N.onDropChange==null?void 0:N.onDropChange(d)}R(undefined)}var V=D((function(){if(!L)return undefined;var e=j();var r=e.findIndex((function(e){return E(e)===L}));return w.current.find((function(e){return e.name===r}))}),[L,j,E]);return b("div",{className:r("drag-form-list",N.className),style:N.style,children:[!N.hiddenEmptyRender&&!(A!=null&&A.length)?C(p,{image:p.PRESENTED_IMAGE_SIMPLE,style:{margin:"15px 0"}}):null,C(a,{collisionDetection:n,onDragStart:O,onDragEnd:B,children:C(f.List,{name:N.name,children:function r(t,a){w.current=t;return C(F,{wrapper:N.formListChildrenWrapper,children:b(g,{children:[C(o,{items:j().map((function(e){return E(e)})),strategy:l,children:b(g,{children:[t.map((function(e,r){var t=E(j()[r]);if(!t)return null;return C(y,{formListOperate:a,formListFieldData:e,uid:t,dragIcon:N.dragIcon,getItemDragDisabled:N.getItemDragDisabled,dragDisabled:N.dragDisabled,isGray:!!t&&t===L,index:r,formStageCompleteName:[].concat(I,[e.name]),prevCompleteName:I,uidFieldName:S,children:N.children},t+"-"+e.key)})),N.onCustomAddRowButton?N.onCustomAddRowButton(a):C(s,{hidden:N.hiddenAddRowButton,type:"dashed",block:true,onClick:function r(){var t;return a.add(e((t={},t[S]=c(),t),N.getAddRowDefaultValues==null?void 0:N.getAddRowDefaultValues()))},children:"添加"})]})}),C(i,{dropAnimation:{duration:0},children:L&&V?C(y,{isOverlay:true,uid:L,className:"drag-form-list-overlay",formListFieldData:V,dragIcon:N.dragIcon,formListOperate:null,index:0,formStageCompleteName:[].concat(I,[V.name]),prevCompleteName:I,uidFieldName:S,children:N.children},L):null})]})})}})})]})};export{x as DragFormList};
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-form-list/sortable-item.tsx","@flatbiz/antd/src/drag-form-list/drag-form-list.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { hooks } from '@wove/react';\nimport { Form, type FormListFieldData, type FormListOperation } from 'antd';\nimport { Fragment, type CSSProperties, type ReactElement } from 'react';\nimport { type DragFormListContentProps, type DragFormListProps } from './types';\nexport type SortableItemProps = {\n formListFieldData: FormListFieldData;\n formListOperate: FormListOperation;\n dragIcon?: DragFormListProps['dragIcon'];\n getItemDragDisabled?: DragFormListProps['getItemDragDisabled'];\n dragDisabled?: DragFormListProps['dragDisabled'];\n isGray?: boolean;\n className?: string;\n style?: CSSProperties;\n uid: string | number;\n index: number;\n isOverlay?: boolean;\n formStageCompleteName: (string | number)[];\n children: (data: DragFormListContentProps) => ReactElement;\n prevCompleteName: (string | number)[];\n uidFieldName: string;\n};\nexport function SortableItem(props: SortableItemProps) {\n const form = Form.useFormInstance();\n const isDisabled = props.isOverlay ? false : props.getItemDragDisabled?.(props.uid, props.index);\n const { listeners, setNodeRef, transform, transition } = useSortable({\n id: props.uid,\n disabled: isDisabled,\n });\n\n const dragIconRender = hooks.useCallbackRef(() => {\n const dragIcon = props.dragIcon ? props.dragIcon : <DragOutlined />;\n return props.dragDisabled ? (\n <Fragment />\n ) : (\n <span className=\"drag-form-list-item-trigger\" {...listeners}>\n <span>{dragIcon}</span>\n </span>\n );\n });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n ...props.style,\n };\n\n const cname = classNames(\n 'drag-form-list-item',\n {\n 'drag-form-list-item-grap': props.isGray,\n 'drag-form-list-item-disabled': isDisabled,\n },\n props.className,\n );\n return (\n <div style={{ ...style }} ref={setNodeRef} className={cname}>\n <Form.Item style={{ margin: 0 }}>{dragIconRender()}</Form.Item>\n <div className=\"drag-form-list-item-content\">\n {props.children({\n formListFieldData: props.formListFieldData,\n operation: props.formListOperate,\n formStageCompleteName: props.formStageCompleteName,\n index: props.index,\n getInsideFormItemName: (key: string) => {\n return [props.formListFieldData.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(props.formStageCompleteName) || {};\n },\n prevCompleteName: props.prevCompleteName,\n uidKey: props.uidFieldName,\n })}\n </div>\n </div>\n );\n}\n","import { classNames } from '@dimjs/utils';\nimport { closestCenter, DndContext, DragOverlay } from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { ButtonWrapper } from '@flatbiz/antd';\nimport { getUuid, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Empty, Form, type FormListFieldData } from 'antd';\nimport { Fragment, useMemo, useRef, useState, type ReactElement } from 'react';\nimport { SortableItem } from './sortable-item';\nimport './style.less';\nimport { type DragFormListProps } from './types';\n\ntype FormListChildrenWrapperProps = {\n wrapper?: DragFormListProps['formListChildrenWrapper'];\n children: ReactElement;\n};\nconst FormListChildrenWrapper = (props: FormListChildrenWrapperProps) => {\n if (props.wrapper) return props.wrapper({ children: props.children });\n return props.children;\n};\n\n/**\n * 可拖拽FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置\n * 2. Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list\n * ```\n */\nexport const DragFormList = (props: DragFormListProps) => {\n const stageCompleteName = [...props.prevCompleteName, ...toArray(props.name)] as Array<string | number>;\n const [dragActiveId, setDragActiveId] = useState<string | number>();\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n\n const uidFieldName = props.uidFieldName || 'uid';\n // 使用 useWatch 可确保FormList在变更后及时刷新\n const formListValue = Form.useWatch(stageCompleteName, form);\n\n const getUidValue = hooks.useCallbackRef((item) => {\n return item?.[uidFieldName] as string | number;\n });\n\n function handleDragStart(event) {\n const { active } = event;\n setDragActiveId(active.id);\n }\n\n const getItems = hooks.useCallbackRef(() => {\n /** 只能通过getFieldValue取值 */\n return (form.getFieldValue(stageCompleteName) || []) as TPlainObject[];\n });\n\n function handleDragEnd(event) {\n const { active, over } = event;\n const items = getItems();\n if (active.id !== over.id) {\n const oldIndex = items.findIndex((item) => getUidValue(item) === active.id);\n const newIndex = items.findIndex((item) => getUidValue(item) === over.id);\n const newList = arrayMove<TPlainObject>(items, oldIndex, newIndex);\n form.setFields([\n {\n name: props.name,\n value: newList,\n },\n ]);\n props.onDropChange?.(newList);\n }\n setDragActiveId(undefined);\n }\n\n const dragOverlayItem = useMemo(() => {\n if (!dragActiveId) return undefined;\n const items = getItems();\n const targetIndex = items.findIndex((item) => getUidValue(item) === dragActiveId);\n return formListOperationRef.current.find((item) => item.name === targetIndex);\n }, [dragActiveId, getItems, getUidValue]);\n\n return (\n <div className={classNames('drag-form-list', props.className)} style={props.style}>\n {!props.hiddenEmptyRender && !formListValue?.length ? (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} style={{ margin: '15px 0' }} />\n ) : null}\n <DndContext collisionDetection={closestCenter} onDragStart={handleDragStart} onDragEnd={handleDragEnd}>\n <Form.List name={props.name}>\n {(fields, operation) => {\n formListOperationRef.current = fields;\n return (\n <FormListChildrenWrapper wrapper={props.formListChildrenWrapper}>\n <Fragment>\n <SortableContext\n items={getItems().map((temp) => getUidValue(temp))}\n strategy={verticalListSortingStrategy}\n >\n <Fragment>\n {fields.map((item, index) => {\n const uid = getUidValue(getItems()[index]);\n if (!uid) return null;\n return (\n <SortableItem\n formListOperate={operation}\n formListFieldData={item}\n uid={uid}\n key={`${uid}-${item.key}`}\n dragIcon={props.dragIcon}\n getItemDragDisabled={props.getItemDragDisabled}\n dragDisabled={props.dragDisabled}\n isGray={!!uid && uid === dragActiveId}\n index={index}\n formStageCompleteName={[...stageCompleteName, item.name]}\n prevCompleteName={stageCompleteName}\n uidFieldName={uidFieldName}\n >\n {props.children}\n </SortableItem>\n );\n })}\n {props.onCustomAddRowButton ? (\n props.onCustomAddRowButton(operation)\n ) : (\n <ButtonWrapper\n hidden={props.hiddenAddRowButton}\n type=\"dashed\"\n block\n onClick={() =>\n operation.add({ [uidFieldName]: getUuid(), ...props.getAddRowDefaultValues?.() })\n }\n >\n 添加\n </ButtonWrapper>\n )}\n </Fragment>\n </SortableContext>\n <DragOverlay dropAnimation={{ duration: 0 }}>\n {dragActiveId && dragOverlayItem ? (\n <SortableItem\n isOverlay={true}\n uid={dragActiveId}\n key={dragActiveId}\n className=\"drag-form-list-overlay\"\n formListFieldData={dragOverlayItem}\n dragIcon={props.dragIcon}\n formListOperate={null as TAny}\n index={0}\n formStageCompleteName={[...stageCompleteName, dragOverlayItem.name]}\n prevCompleteName={stageCompleteName}\n uidFieldName={uidFieldName}\n >\n {props.children}\n </SortableItem>\n ) : null}\n </DragOverlay>\n </Fragment>\n </FormListChildrenWrapper>\n );\n }}\n </Form.List>\n </DndContext>\n </div>\n );\n};\n"],"names":["SortableItem","props","form","Form","useFormInstance","isDisabled","isOverlay","getItemDragDisabled","uid","index","_useSortable","useSortable","id","disabled","listeners","setNodeRef","transform","transition","dragIconRender","_hooks","useCallbackRef","dragIcon","_jsx","_DragOutlined","dragDisabled","Fragment","_extends","className","children","style","CSS","Transform","toString","cname","_classNames","isGray","_jsxs","ref","Item","margin","formListFieldData","operation","formListOperate","formStageCompleteName","getInsideFormItemName","key","name","getInsideFormItemData","getFieldValue","prevCompleteName","uidKey","uidFieldName","FormListChildrenWrapper","wrapper","DragFormList","stageCompleteName","concat","toArray","_useState","useState","dragActiveId","setDragActiveId","formListOperationRef","useRef","formListValue","useWatch","getUidValue","item","handleDragStart","event","active","getItems","handleDragEnd","over","items","oldIndex","findIndex","newIndex","newList","arrayMove","setFields","value","onDropChange","undefined","dragOverlayItem","useMemo","targetIndex","current","find","hiddenEmptyRender","length","Empty","image","PRESENTED_IMAGE_SIMPLE","DndContext","collisionDetection","closestCenter","onDragStart","onDragEnd","List","fields","formListChildrenWrapper","SortableContext","map","temp","strategy","verticalListSortingStrategy","onCustomAddRowButton","ButtonWrapper","hidden","hiddenAddRowButton","type","block","onClick","_extends2","add","getUuid","getAddRowDefaultValues","DragOverlay","dropAnimation","duration"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-group/card/index.tsx","@flatbiz/antd/src/form-item-group/horizontal-union/index.tsx","@flatbiz/antd/src/form-item-group/index.ts"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { CSSProperties, FC, ReactElement } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport './style.less';\n\nexport type FormItemCardProps = {\n title?: string | ReactElement;\n children: ReactElement | ReactElement[];\n className?: string;\n style?: CSSProperties;\n titleSign?: boolean;\n};\nexport const FormItemCard: FC<FormItemCardProps> = (props) => {\n const classNamePrefix = 'form-item-group-card';\n\n const theme = fbaHooks.useThemeToken();\n\n const style = { '--form-item-group-colorPrimary': theme.colorPrimary } as CSSProperties;\n\n return (\n <div className={classNames(classNamePrefix, props.className)} style={{ ...style, ...props.style }}>\n {props.title ? (\n <div\n className={classNames(`${classNamePrefix}-title`, {\n [`${classNamePrefix}-title-sign`]: props.titleSign === true,\n })}\n >\n {props.title}\n </div>\n ) : null}\n {props.children}\n </div>\n );\n};\n\nFormItemCard.defaultProps = {\n titleSign: true,\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { cloneElement, CSSProperties, isValidElement, ReactElement, useMemo } from 'react';\nimport { FlexLayout } from '../../flex-layout';\nimport './style.less';\n\nexport type FormItemHorizontalUnionProps = {\n className?: string;\n style?: CSSProperties;\n label?: string | ReactElement;\n groupConfigList: {\n hidden?: boolean;\n before?: ReactElement | string;\n width?: number | string;\n mainItem: ReactElement;\n after?: ReactElement | string;\n }[];\n gap?: number;\n flexLayoutStyle?: CSSProperties;\n hidden?: boolean;\n required?: boolean;\n colon?: boolean;\n};\n\nexport const FormItemHorizontalUnion = (props: FormItemHorizontalUnionProps) => {\n const groupFlexElementData = useMemo(() => {\n const fullIndex = [] as number[];\n const flexElementList = [] as Array<ReactElement>;\n const groupConfigList = props.groupConfigList.filter((item) => !item.hidden);\n groupConfigList.forEach((item) => {\n if (item.before) {\n flexElementList.push(\n isValidElement(item.before) ? (\n (item.before as ReactElement)\n ) : (\n <div className=\"union-before-text\">{item.before}</div>\n ),\n );\n }\n if (item.width) {\n flexElementList.push(\n cloneElement(item.mainItem, {\n style: { width: item.width, ...item.mainItem.props.style },\n }),\n );\n } else {\n fullIndex.push(flexElementList.length);\n flexElementList.push(item.mainItem);\n }\n if (item.after) {\n flexElementList.push(\n isValidElement(item.after) ? (\n (item.after as ReactElement)\n ) : (\n <div className=\"union-after-text\">{item.after}</div>\n ),\n );\n }\n });\n return {\n flexElementList,\n fullIndex,\n };\n }, [props.groupConfigList]);\n\n return (\n <Form.Item\n label={props.label}\n className={classNames('form-item-group-horizontal-union', props.className)}\n style={props.style}\n hidden={props.hidden}\n required={props.required}\n colon={props.colon}\n >\n <FlexLayout\n direction=\"horizontal\"\n gap={props.gap === undefined ? 15 : props.gap}\n fullIndex={groupFlexElementData.fullIndex}\n style={props.flexLayoutStyle}\n >\n {groupFlexElementData.flexElementList.map((item, index) => {\n return cloneElement(item, { key: index });\n })}\n </FlexLayout>\n </Form.Item>\n );\n};\n","import { FormItemCard } from './card';\nimport { FormItemHorizontalUnion } from './horizontal-union';\n\nexport const FormItemGroup = {\n HorizontalUnion: FormItemHorizontalUnion,\n Card: FormItemCard,\n};\n"],"names":["FormItemCard","props","_classNames2","classNamePrefix","theme","fbaHooks","useThemeToken","style","colorPrimary","_jsxs","className","_classNames","_extends","children","title","_jsx","titleSign","defaultProps","FormItemHorizontalUnion","groupFlexElementData","useMemo","fullIndex","flexElementList","groupConfigList","filter","item","hidden","forEach","before","push","isValidElement","width","cloneElement","mainItem","length","after","Form","Item","label","required","colon","FlexLayout","direction","gap","undefined","flexLayoutStyle","map","index","key","FormItemGroup","HorizontalUnion","Card"],"mappings":";mfAYO,IAAMA,EAAsC,SAAtCA,EAAuCC,GAAU,IAAAC,EAC5D,IAAMC,EAAkB,uBAExB,IAAMC,EAAQC,EAASC,gBAEvB,IAAMC,EAAQ,CAAE,iCAAkCH,EAAMI,cAExD,OACEC,EAAA,MAAA,CAAKC,UAAWC,EAAWR,EAAiBF,EAAMS,WAAYH,MAAKK,EAAOL,CAAAA,EAAAA,EAAUN,EAAMM,OAAQM,SAC/FZ,CAAAA,EAAMa,MACLC,EAAA,MAAA,CACEL,UAAWC,EAAcR,EAAeD,UAAAA,KAAAA,EAClCC,EAA+BF,eAAAA,EAAMe,YAAc,KAAId,IAC1DW,SAEFZ,EAAMa,QAEP,KACHb,EAAMY,WAGb,EAEAb,EAAaiB,aAAe,CAC1BD,UAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-group/card/index.tsx","@flatbiz/antd/src/form-item-group/horizontal-union/index.tsx","@flatbiz/antd/src/form-item-group/index.ts"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { CSSProperties, FC, ReactElement } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport './style.less';\n\nexport type FormItemCardProps = {\n title?: string | ReactElement;\n children: ReactElement | ReactElement[];\n className?: string;\n style?: CSSProperties;\n titleSign?: boolean;\n};\nexport const FormItemCard: FC<FormItemCardProps> = (props) => {\n const classNamePrefix = 'form-item-group-card';\n\n const theme = fbaHooks.useThemeToken();\n\n const style = { '--form-item-group-colorPrimary': theme.colorPrimary } as CSSProperties;\n\n return (\n <div className={classNames(classNamePrefix, props.className)} style={{ ...style, ...props.style }}>\n {props.title ? (\n <div\n className={classNames(`${classNamePrefix}-title`, {\n [`${classNamePrefix}-title-sign`]: props.titleSign === true,\n })}\n >\n {props.title}\n </div>\n ) : null}\n {props.children}\n </div>\n );\n};\n\nFormItemCard.defaultProps = {\n titleSign: true,\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { cloneElement, CSSProperties, isValidElement, ReactElement, useMemo } from 'react';\nimport { FlexLayout } from '../../flex-layout';\nimport './style.less';\n\nexport type FormItemHorizontalUnionProps = {\n className?: string;\n style?: CSSProperties;\n label?: string | ReactElement;\n groupConfigList: {\n hidden?: boolean;\n before?: ReactElement | string;\n /**\n * 设置宽度\n * ```\n * 1. 自适应可设置:auto\n * 2. 可设置具体数值\n * 3. 不设置会在铺满flex剩余空间\n * 4. 多个未设置会等分铺满剩余空间\n * ```\n */\n width?: number | string;\n mainItem: ReactElement;\n after?: ReactElement | string;\n }[];\n gap?: number;\n flexLayoutStyle?: CSSProperties;\n hidden?: boolean;\n required?: boolean;\n colon?: boolean;\n};\n\n/**\n * FormItem 水平布局\n * ```\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/input\n * ```\n * @param props\n * @returns\n */\nexport const FormItemHorizontalUnion = (props: FormItemHorizontalUnionProps) => {\n const groupFlexElementData = useMemo(() => {\n const fullIndex = [] as number[];\n const flexElementList = [] as Array<ReactElement>;\n const groupConfigList = props.groupConfigList.filter((item) => !item.hidden);\n groupConfigList.forEach((item) => {\n if (item.before) {\n flexElementList.push(\n isValidElement(item.before) ? (\n (item.before as ReactElement)\n ) : (\n <div className=\"union-before-text\">{item.before}</div>\n ),\n );\n }\n if (item.width) {\n flexElementList.push(\n cloneElement(item.mainItem, {\n style: { width: item.width, ...item.mainItem.props.style },\n }),\n );\n } else {\n fullIndex.push(flexElementList.length);\n flexElementList.push(item.mainItem);\n }\n if (item.after) {\n flexElementList.push(\n isValidElement(item.after) ? (\n (item.after as ReactElement)\n ) : (\n <div className=\"union-after-text\">{item.after}</div>\n ),\n );\n }\n });\n return {\n flexElementList,\n fullIndex,\n };\n }, [props.groupConfigList]);\n\n return (\n <Form.Item\n label={props.label}\n className={classNames('form-item-group-horizontal-union', props.className)}\n style={props.style}\n hidden={props.hidden}\n required={props.required}\n colon={props.colon}\n >\n <FlexLayout\n direction=\"horizontal\"\n gap={props.gap === undefined ? 15 : props.gap}\n fullIndex={groupFlexElementData.fullIndex}\n style={props.flexLayoutStyle}\n >\n {groupFlexElementData.flexElementList.map((item, index) => {\n return cloneElement(item, { key: index });\n })}\n </FlexLayout>\n </Form.Item>\n );\n};\n","import { FormItemCard } from './card';\nimport { FormItemHorizontalUnion } from './horizontal-union';\n\nexport const FormItemGroup = {\n HorizontalUnion: FormItemHorizontalUnion,\n Card: FormItemCard,\n};\n"],"names":["FormItemCard","props","_classNames2","classNamePrefix","theme","fbaHooks","useThemeToken","style","colorPrimary","_jsxs","className","_classNames","_extends","children","title","_jsx","titleSign","defaultProps","FormItemHorizontalUnion","groupFlexElementData","useMemo","fullIndex","flexElementList","groupConfigList","filter","item","hidden","forEach","before","push","isValidElement","width","cloneElement","mainItem","length","after","Form","Item","label","required","colon","FlexLayout","direction","gap","undefined","flexLayoutStyle","map","index","key","FormItemGroup","HorizontalUnion","Card"],"mappings":";mfAYO,IAAMA,EAAsC,SAAtCA,EAAuCC,GAAU,IAAAC,EAC5D,IAAMC,EAAkB,uBAExB,IAAMC,EAAQC,EAASC,gBAEvB,IAAMC,EAAQ,CAAE,iCAAkCH,EAAMI,cAExD,OACEC,EAAA,MAAA,CAAKC,UAAWC,EAAWR,EAAiBF,EAAMS,WAAYH,MAAKK,EAAOL,CAAAA,EAAAA,EAAUN,EAAMM,OAAQM,SAC/FZ,CAAAA,EAAMa,MACLC,EAAA,MAAA,CACEL,UAAWC,EAAcR,EAAeD,UAAAA,KAAAA,EAClCC,EAA+BF,eAAAA,EAAMe,YAAc,KAAId,IAC1DW,SAEFZ,EAAMa,QAEP,KACHb,EAAMY,WAGb,EAEAb,EAAaiB,aAAe,CAC1BD,UAAW,MCKN,IAAME,EAA0B,SAA1BA,EAA2BjB,GACtC,IAAMkB,EAAuBC,GAAQ,WACnC,IAAMC,EAAY,GAClB,IAAMC,EAAkB,GACxB,IAAMC,EAAkBtB,EAAMsB,gBAAgBC,QAAO,SAACC,GAAI,OAAMA,EAAKC,UACrEH,EAAgBI,SAAQ,SAACF,GACvB,GAAIA,EAAKG,OAAQ,CACfN,EAAgBO,KACdC,EAAeL,EAAKG,QACjBH,EAAKG,OAENb,EAAA,MAAA,CAAKL,UAAU,oBAAmBG,SAAEY,EAAKG,SAG/C,CACA,GAAIH,EAAKM,MAAO,CACdT,EAAgBO,KACdG,EAAaP,EAAKQ,SAAU,CAC1B1B,MAAKK,EAAA,CAAImB,MAAON,EAAKM,OAAUN,EAAKQ,SAAShC,MAAMM,SAGzD,KAAO,CACLc,EAAUQ,KAAKP,EAAgBY,QAC/BZ,EAAgBO,KAAKJ,EAAKQ,SAC5B,CACA,GAAIR,EAAKU,MAAO,CACdb,EAAgBO,KACdC,EAAeL,EAAKU,OACjBV,EAAKU,MAENpB,EAAA,MAAA,CAAKL,UAAU,mBAAkBG,SAAEY,EAAKU,QAG9C,CACF,IACA,MAAO,CACLb,gBAAAA,EACAD,UAAAA,EAEJ,GAAG,CAACpB,EAAMsB,kBAEV,OACER,EAACqB,EAAKC,KAAI,CACRC,MAAOrC,EAAMqC,MACb5B,UAAWC,EAAW,mCAAoCV,EAAMS,WAChEH,MAAON,EAAMM,MACbmB,OAAQzB,EAAMyB,OACda,SAAUtC,EAAMsC,SAChBC,MAAOvC,EAAMuC,MAAM3B,SAEnBE,EAAC0B,EAAU,CACTC,UAAU,aACVC,IAAK1C,EAAM0C,MAAQC,UAAY,GAAK3C,EAAM0C,IAC1CtB,UAAWF,EAAqBE,UAChCd,MAAON,EAAM4C,gBAAgBhC,SAE5BM,EAAqBG,gBAAgBwB,KAAI,SAACrB,EAAMsB,GAC/C,OAAOf,EAAaP,EAAM,CAAEuB,IAAKD,UAK3C,ECpGO,IAAME,EAAgB,CAC3BC,gBAAiBhC,EACjBiC,KAAMnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.form-list-wrapper{background-color:#fff}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import './index.css';
|
|
3
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
+
import{_ as e}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{ButtonWrapper as t}from"@flatbiz/antd";import{toArray as n,getUuid as a}from"@flatbiz/utils";import{Form as i,Empty as o}from"antd";import{useRef as l,Fragment as m}from"react";import{jsxs as d,jsx as u}from"react/jsx-runtime";var c=function e(r){if(r.wrapper)return r.wrapper({children:r.children});return r.children};var s=function s(p){var f=[].concat(p.prevCompleteName,n(p.name));var h=i.useFormInstance();var v=l([]);var g=p.uidFieldName||"uid";var w=i.useWatch(f,h);return d("div",{className:r("form-list-wrapper",p.className),style:p.style,children:[!p.hiddenEmptyRender&&!(w!=null&&w.length)?u(o,{image:o.PRESENTED_IMAGE_SIMPLE,style:{margin:"15px 0"}}):null,u(i.List,{name:p.name,children:function r(n,i){v.current=n;return u(c,{wrapper:p.formListChildrenWrapper,children:d(m,{children:[n.map((function(e,r){var t=[].concat(f,[e.name]);return u(m,{children:p.children({formListFieldData:e,operation:i,formStageCompleteName:t,prevCompleteName:f,index:r,getInsideFormItemName:function r(t){return[e.name,t]},getInsideFormItemData:function e(){return h.getFieldValue(t)},uidKey:g})},e.key)})),p.onCustomAddRowButton?p.onCustomAddRowButton(i):u(t,{hidden:p.hiddenAddRowButton,type:"dashed",block:true,onClick:function r(){var t;return i.add(e((t={},t[g]=a(),t),p.getAddRowDefaultValues==null?void 0:p.getAddRowDefaultValues()))},children:"添加"})]})})}})]})};export{s as FormListWrapper};
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-list-wrapper/form-list-wrapper.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { ButtonWrapper } from '@flatbiz/antd';\nimport { getUuid, toArray } from '@flatbiz/utils';\nimport { Empty, Form, type FormListFieldData } from 'antd';\nimport { Fragment, useRef, type ReactElement } from 'react';\nimport './style.less';\nimport { type FormListWrapperProps } from './types';\ntype FormListChildrenWrapperProps = {\n wrapper?: FormListWrapperProps['formListChildrenWrapper'];\n children: ReactElement;\n};\nconst FormListChildrenWrapper = (props: FormListChildrenWrapperProps) => {\n if (props.wrapper) return props.wrapper({ children: props.children });\n return props.children;\n};\n\n/**\n * FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置\n * 2. Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list\n * ```\n */\nexport const FormListWrapper = (props: FormListWrapperProps) => {\n const stageCompleteName = [...props.prevCompleteName, ...toArray(props.name)] as Array<string | number>;\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n const uidFieldName = props.uidFieldName || 'uid';\n const formListValue = Form.useWatch(stageCompleteName, form);\n\n return (\n <div className={classNames('form-list-wrapper', props.className)} style={props.style}>\n {!props.hiddenEmptyRender && !formListValue?.length ? (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} style={{ margin: '15px 0' }} />\n ) : null}\n <Form.List name={props.name}>\n {(fields, operation) => {\n formListOperationRef.current = fields;\n return (\n <FormListChildrenWrapper wrapper={props.formListChildrenWrapper}>\n <Fragment>\n {fields.map((field, index) => {\n const formStageCompleteName = [...stageCompleteName, field.name];\n return (\n <Fragment key={field.key}>\n {props.children({\n formListFieldData: field,\n operation: operation,\n formStageCompleteName,\n prevCompleteName: stageCompleteName,\n index,\n getInsideFormItemName: (key: string) => {\n return [field.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(formStageCompleteName);\n },\n uidKey: uidFieldName,\n })}\n </Fragment>\n );\n })}\n {props.onCustomAddRowButton ? (\n props.onCustomAddRowButton(operation)\n ) : (\n <ButtonWrapper\n hidden={props.hiddenAddRowButton}\n type=\"dashed\"\n block\n onClick={() =>\n operation.add({ [uidFieldName]: getUuid(), ...props.getAddRowDefaultValues?.() })\n }\n >\n 添加\n </ButtonWrapper>\n )}\n </Fragment>\n </FormListChildrenWrapper>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["FormListChildrenWrapper","props","wrapper","children","FormListWrapper","stageCompleteName","concat","prevCompleteName","toArray","name","form","Form","useFormInstance","formListOperationRef","useRef","uidFieldName","formListValue","useWatch","_jsxs","className","_classNames","style","hiddenEmptyRender","length","_jsx","Empty","image","PRESENTED_IMAGE_SIMPLE","margin","List","fields","operation","current","formListChildrenWrapper","Fragment","map","field","index","formStageCompleteName","formListFieldData","getInsideFormItemName","key","getInsideFormItemData","getFieldValue","uidKey","onCustomAddRowButton","ButtonWrapper","hidden","hiddenAddRowButton","type","block","onClick","_extends2","add","_extends","getUuid","getAddRowDefaultValues"],"mappings":";iWAWA,IAAMA,EAA0B,SAA1BA,EAA2BC,GAC/B,GAAIA,EAAMC,QAAS,OAAOD,EAAMC,QAAQ,CAAEC,SAAUF,EAAME,WAC1D,OAAOF,EAAME,QACf,MASaC,EAAkB,SAAlBA,EAAmBH,GAC9B,IAAMI,EAAiB,GAAAC,OAAOL,EAAMM,iBAAqBC,EAAQP,EAAMQ,OACvE,IAAMC,EAAOC,EAAKC,kBAClB,IAAMC,EAAuBC,EAA4B,IACzD,IAAMC,EAAed,EAAMc,cAAgB,MAC3C,IAAMC,EAAgBL,EAAKM,SAASZ,EAAmBK,GAEvD,OACEQ,EAAA,MAAA,CAAKC,UAAWC,EAAW,oBAAqBnB,EAAMkB,WAAYE,MAAOpB,EAAMoB,MAAMlB,SAClF,EAACF,EAAMqB,qBAAsBN,GAAa,MAAbA,EAAeO,QAC3CC,EAACC,EAAK,CAACC,MAAOD,EAAME,uBAAwBN,MAAO,CAAEO,OAAQ,YAC3D,KACJJ,EAACb,EAAKkB,KAAI,CAACpB,KAAMR,EAAMQ,KAAKN,SACzB,SAAAA,EAAC2B,EAAQC,GACRlB,EAAqBmB,QAAUF,EAC/B,OACEN,EAACxB,EAAuB,CAACE,QAASD,EAAMgC,wBAAwB9B,SAC9De,EAACgB,EAAQ,CAAA/B,SAAA,CACN2B,EAAOK,KAAI,SAACC,EAAOC,GAClB,IAAMC,KAAqBhC,OAAOD,EAAmB+B,CAAAA,EAAM3B,OAC3D,OACEe,EAACU,EAAQ,CAAA/B,SACNF,EAAME,SAAS,CACdoC,kBAAmBH,EACnBL,UAAWA,EACXO,sBAAAA,EACA/B,iBAAkBF,EAClBgC,MAAAA,EACAG,sBAAuB,SAAAA,EAACC,GACtB,MAAO,CAACL,EAAM3B,KAAMgC,EACrB,EACDC,sBAAuB,SAAAA,IACrB,OAAOhC,EAAKiC,cAAcL,EAC3B,EACDM,OAAQ7B,KAbGqB,EAAMK,IAiBzB,IACCxC,EAAM4C,qBACL5C,EAAM4C,qBAAqBd,GAE3BP,EAACsB,EAAa,CACZC,OAAQ9C,EAAM+C,mBACdC,KAAK,SACLC,MAAK,KACLC,QAAS,SAAAA,IAAA,IAAAC,EAAA,OACPrB,EAAUsB,IAAGC,GAAAF,EAAA,CAAA,EAAAA,EAAIrC,GAAewC,IAASH,GAAKnD,EAAMuD,wBAAsB,UAAA,EAA5BvD,EAAMuD,0BACrD,EAAArD,SACF,WAOX,MAIR"}
|
package/esm/index.js
CHANGED
|
@@ -31,6 +31,7 @@ import './dialog-drawer-content/index.css';
|
|
|
31
31
|
import './dialog-loading/index.css';
|
|
32
32
|
import './drag-collapse/index.css';
|
|
33
33
|
import './drag-collapse-form-list/index.css';
|
|
34
|
+
import './drag-form-list/index.css';
|
|
34
35
|
import './drawer-wrapper/index.css';
|
|
35
36
|
import './dynamic-node/index.css';
|
|
36
37
|
import './easy-table/index.css';
|
|
@@ -54,6 +55,7 @@ import './file-select/index.css';
|
|
|
54
55
|
import './form-item-group/index.css';
|
|
55
56
|
import './form-item-hidden/index.css';
|
|
56
57
|
import './form-item-wrapper/index.css';
|
|
58
|
+
import './form-list-wrapper/index.css';
|
|
57
59
|
import './input-search-wrapper/index.css';
|
|
58
60
|
import './label-value-layout/index.css';
|
|
59
61
|
import './local-loading/index.css';
|
|
@@ -91,5 +93,5 @@ import './tree-selector-wrapper/index.css';
|
|
|
91
93
|
import './tree-wrapper/index.css';
|
|
92
94
|
import './index.css';
|
|
93
95
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
94
|
-
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{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-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{ConfigProviderWrapper}from"./config-provider-wrapper/index.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{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{DragCollapse}from"./drag-collapse/index.js";export{DragCollapseFormList}from"./drag-collapse-form-list/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{EasyTable}from"./easy-table/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{EditorWrapper}from"./editor-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{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{FormItemWrapper}from"./form-item-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{LabelValueLayout}from"./label-value-layout/index.js";export{LocalLoading}from"./local-loading/index.js";export{ModalAction}from"./modal-action/index.js";export{ModalWrapper}from"./modal-wrapper/index.js";export{PageFixedFooter}from"./page-fixed-footer/index.js";export{Page404}from"./page404/index.js";export{P as PaginationWrapper}from"./index-e98b9352.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{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{styles}from"./styles/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{TabsWrapper}from"./tabs-wrapper/index.js";export{TagGroup}from"./tag-group/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{TextOverflowRender}from"./text-overflow-render/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{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";import"./_rollupPluginBabelHelpers-fc015ef2.js";import"@flatbiz/utils";import"antd";import"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";import"react";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"@wove/react/cjs/hooks";import"@ant-design/icons/es/icons/LoadingOutlined";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";import"@flatbiz/antd";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"./time-53b3f55f.js";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"./dom-4d04aa64.js";import"./context-1f2093c6.js";import"ahooks";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"@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/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@dimjs/lang/cjs/is-number";import"@ant-design/icons/es/icons/EditOutlined";import"./context-25d0b686.js";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/lang/cjs/is-boolean";import"@ant-design/icons/es/icons/DeleteOutlined";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";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";
|
|
96
|
+
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{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-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{ConfigProviderWrapper}from"./config-provider-wrapper/index.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{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{DragCollapse}from"./drag-collapse/index.js";export{DragCollapseFormList}from"./drag-collapse-form-list/index.js";export{DragFormList}from"./drag-form-list/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{EasyTable}from"./easy-table/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{EditorWrapper}from"./editor-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{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{FormItemWrapper}from"./form-item-wrapper/index.js";export{FormListWrapper}from"./form-list-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{LabelValueLayout}from"./label-value-layout/index.js";export{LocalLoading}from"./local-loading/index.js";export{ModalAction}from"./modal-action/index.js";export{ModalWrapper}from"./modal-wrapper/index.js";export{PageFixedFooter}from"./page-fixed-footer/index.js";export{Page404}from"./page404/index.js";export{P as PaginationWrapper}from"./index-e98b9352.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{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{styles}from"./styles/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{TabsWrapper}from"./tabs-wrapper/index.js";export{TagGroup}from"./tag-group/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{TextOverflowRender}from"./text-overflow-render/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{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";import"./_rollupPluginBabelHelpers-fc015ef2.js";import"@flatbiz/utils";import"antd";import"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";import"react";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"@wove/react/cjs/hooks";import"@ant-design/icons/es/icons/LoadingOutlined";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";import"@flatbiz/antd";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"./time-53b3f55f.js";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"./dom-4d04aa64.js";import"./context-1f2093c6.js";import"ahooks";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"@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/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@dimjs/lang/cjs/is-number";import"@ant-design/icons/es/icons/EditOutlined";import"./context-25d0b686.js";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/lang/cjs/is-boolean";import"@ant-design/icons/es/icons/DeleteOutlined";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";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";
|
|
95
97
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.form-item-label-70.ant-form-item .ant-form-item-label{width:70px!important}.form-item-label-80.ant-form-item .ant-form-item-label{width:80px!important}.form-item-label-90.ant-form-item .ant-form-item-label{width:90px!important}.form-item-label-100.ant-form-item .ant-form-item-label{width:100px!important}.form-item-label-110.ant-form-item .ant-form-item-label{width:110px!important}.form-item-label-120.ant-form-item .ant-form-item-label{width:120px!important}.form-item-label-130.ant-form-item .ant-form-item-label{width:130px!important}.form-item-label-140.ant-form-item .ant-form-item-label{width:140px!important}.form-item-label-150.ant-form-item .ant-form-item-label{width:150px!important}.form-item-label-160.ant-form-item .ant-form-item-label{width:160px!important}.form-item-label-170.ant-form-item .ant-form-item-label{width:170px!important}.form-item-label-180.ant-form-item .ant-form-item-label{width:180px!important}.form-item-label-190.ant-form-item .ant-form-item-label{width:190px!important}.form-item-label-200.ant-form-item .ant-form-item-label{width:200px!important}.form-item-label-auto.ant-form-item .ant-form-item-label{width:auto!important}.form-item-label-align-left .ant-form-item-label{text-align:left}.form-item-label-align-right .ant-form-item-label{text-align:right}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row{flex-direction:column}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-label{text-align:left;width:100%!important}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-control{flex:initial}.form-label-70 .ant-form-item-label{width:70px!important}.form-label-80 .ant-form-item-label{width:80px!important}.form-label-90 .ant-form-item-label{width:90px!important}.form-label-100 .ant-form-item-label{width:100px!important}.form-label-110 .ant-form-item-label{width:110px!important}.form-label-120 .ant-form-item-label{width:120px!important}.form-label-130 .ant-form-item-label{width:130px!important}.form-label-140 .ant-form-item-label{width:140px!important}.form-label-150 .ant-form-item-label{width:150px!important}.form-label-160 .ant-form-item-label{width:160px!important}.form-label-170 .ant-form-item-label{width:170px!important}.form-label-180 .ant-form-item-label{width:180px!important}.form-label-190 .ant-form-item-label{width:190px!important}.form-label-200 .ant-form-item-label{width:200px!important}.form-label-auto .ant-form-item-label{width:auto!important}.form-label-align-left .ant-form-item-label{text-align:left}.form-label-align-right .ant-form-item-label{text-align:right}.form-label-value-vertical .ant-form-item .ant-form-item-row{flex-direction:column}.form-label-value-vertical .ant-form-item .ant-form-item-label{text-align:left;width:100%}.form-label-value-vertical .ant-form-item .ant-form-item-control{flex:initial}.form-formitem-gap-15{margin-bottom:-15px}.form-formitem-gap-15 .ant-form-item{margin:0 0 15px}.form-formitem-gap-8{margin-bottom:-8px}.form-formitem-gap-8 .ant-form-item{margin:0 0 8px}
|
|
1
|
+
.form-item-label-70.ant-form-item .ant-form-item-label{width:70px!important}.form-item-label-80.ant-form-item .ant-form-item-label{width:80px!important}.form-item-label-90.ant-form-item .ant-form-item-label{width:90px!important}.form-item-label-100.ant-form-item .ant-form-item-label{width:100px!important}.form-item-label-110.ant-form-item .ant-form-item-label{width:110px!important}.form-item-label-120.ant-form-item .ant-form-item-label{width:120px!important}.form-item-label-130.ant-form-item .ant-form-item-label{width:130px!important}.form-item-label-140.ant-form-item .ant-form-item-label{width:140px!important}.form-item-label-150.ant-form-item .ant-form-item-label{width:150px!important}.form-item-label-160.ant-form-item .ant-form-item-label{width:160px!important}.form-item-label-170.ant-form-item .ant-form-item-label{width:170px!important}.form-item-label-180.ant-form-item .ant-form-item-label{width:180px!important}.form-item-label-190.ant-form-item .ant-form-item-label{width:190px!important}.form-item-label-200.ant-form-item .ant-form-item-label{width:200px!important}.form-item-label-auto.ant-form-item .ant-form-item-label{width:auto!important}.form-item-label-align-left .ant-form-item-label{text-align:left}.form-item-label-align-right .ant-form-item-label{text-align:right}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row{flex-direction:column}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-label{text-align:left;width:100%!important}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-control{flex:initial}.form-label-70 .ant-form-item-label{width:70px!important}.form-label-80 .ant-form-item-label{width:80px!important}.form-label-90 .ant-form-item-label{width:90px!important}.form-label-100 .ant-form-item-label{width:100px!important}.form-label-110 .ant-form-item-label{width:110px!important}.form-label-120 .ant-form-item-label{width:120px!important}.form-label-130 .ant-form-item-label{width:130px!important}.form-label-140 .ant-form-item-label{width:140px!important}.form-label-150 .ant-form-item-label{width:150px!important}.form-label-160 .ant-form-item-label{width:160px!important}.form-label-170 .ant-form-item-label{width:170px!important}.form-label-180 .ant-form-item-label{width:180px!important}.form-label-190 .ant-form-item-label{width:190px!important}.form-label-200 .ant-form-item-label{width:200px!important}.form-label-auto .ant-form-item-label{width:auto!important}.form-label-align-left .ant-form-item-label{text-align:left}.form-label-align-right .ant-form-item-label{text-align:right}.form-label-value-vertical .ant-form-item .ant-form-item-row{flex-direction:column}.form-label-value-vertical .ant-form-item .ant-form-item-label{text-align:left;width:100%}.form-label-value-vertical .ant-form-item .ant-form-item-control{flex:initial}.form-formitem-gap-15{margin-bottom:-15px}.form-formitem-gap-15 .ant-form-item{margin:0 0 15px}.form-formitem-gap-8{margin-bottom:-8px}.form-formitem-gap-8 .ant-form-item{margin:0 0 8px}.form-formitem-gap-5{margin-bottom:-5px}.form-formitem-gap-5 .ant-form-item{margin:0 0 5px}.form-formitem-gap-0{margin-bottom:0}.form-formitem-gap-0 .ant-form-item{margin:0}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
var l={label_width_70:"form-label-70",label_width_80:"form-label-80",label_width_90:"form-label-90",label_width_100:"form-label-100",label_width_110:"form-label-110",label_width_120:"form-label-120",label_width_130:"form-label-130",label_width_140:"form-label-140",label_width_150:"form-label-150",label_width_160:"form-label-160",label_width_170:"form-label-170",label_width_180:"form-label-180",label_width_190:"form-label-190",label_width_200:"form-label-200",label_width_auto:"form-label-auto",label_align_left:"form-label-align-left",label_align_right:"form-label-align-right",label_value_vertical:"form-label-value-vertical",formItemGap15:"form-formitem-gap-15",formItemGap8:"form-formitem-gap-8"};var e={label_width_70:"form-item-label-70",label_width_80:"form-item-label-80",label_width_90:"form-item-label-90",label_width_100:"form-item-label-100",label_width_110:"form-item-label-110",label_width_120:"form-item-label-120",label_width_130:"form-item-label-130",label_width_140:"form-item-label-140",label_width_150:"form-item-label-150",label_width_160:"form-item-label-160",label_width_170:"form-item-label-170",label_width_180:"form-item-label-180",label_width_190:"form-item-label-190",label_width_200:"form-item-label-200",label_width_auto:"form-item-label-auto",label_align_left:"form-item-label-align-left",label_align_right:"form-item-label-align-right",label_value_vertical:"form-item-label-value-vertical"};var a={form:l,formItem:e};export{a as preDefinedClassName};
|
|
4
|
+
var l={label_width_70:"form-label-70",label_width_80:"form-label-80",label_width_90:"form-label-90",label_width_100:"form-label-100",label_width_110:"form-label-110",label_width_120:"form-label-120",label_width_130:"form-label-130",label_width_140:"form-label-140",label_width_150:"form-label-150",label_width_160:"form-label-160",label_width_170:"form-label-170",label_width_180:"form-label-180",label_width_190:"form-label-190",label_width_200:"form-label-200",label_width_auto:"form-label-auto",label_align_left:"form-label-align-left",label_align_right:"form-label-align-right",label_value_vertical:"form-label-value-vertical",formItemGap15:"form-formitem-gap-15",formItemGap8:"form-formitem-gap-8",formItemGap5:"form-formitem-gap-5",formItemGap0:"form-formitem-gap-0"};var e={label_width_70:"form-item-label-70",label_width_80:"form-item-label-80",label_width_90:"form-item-label-90",label_width_100:"form-item-label-100",label_width_110:"form-item-label-110",label_width_120:"form-item-label-120",label_width_130:"form-item-label-130",label_width_140:"form-item-label-140",label_width_150:"form-item-label-150",label_width_160:"form-item-label-160",label_width_170:"form-item-label-170",label_width_180:"form-item-label-180",label_width_190:"form-item-label-190",label_width_200:"form-item-label-200",label_width_auto:"form-item-label-auto",label_align_left:"form-item-label-align-left",label_align_right:"form-item-label-align-right",label_value_vertical:"form-item-label-value-vertical"};var a={form:l,formItem:e};export{a as preDefinedClassName};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/pre-defined-class-name/form/index.tsx","@flatbiz/antd/src/pre-defined-class-name/index.ts"],"sourcesContent":["import './style.less';\n/**\n * 使用在Form组件上,预定义form-item label宽度\n */\nexport const formClassName = {\n label_width_70: 'form-label-70',\n label_width_80: 'form-label-80',\n label_width_90: 'form-label-90',\n label_width_100: 'form-label-100',\n label_width_110: 'form-label-110',\n label_width_120: 'form-label-120',\n label_width_130: 'form-label-130',\n label_width_140: 'form-label-140',\n label_width_150: 'form-label-150',\n label_width_160: 'form-label-160',\n label_width_170: 'form-label-170',\n label_width_180: 'form-label-180',\n label_width_190: 'form-label-190',\n label_width_200: 'form-label-200',\n label_width_auto: 'form-label-auto',\n label_align_left: 'form-label-align-left',\n label_align_right: 'form-label-align-right',\n label_value_vertical: 'form-label-value-vertical',\n /** formItem之间的垂直间距为15 */\n formItemGap15: 'form-formitem-gap-15',\n /** formItem之间的垂直间距为8 */\n formItemGap8: 'form-formitem-gap-8',\n};\n/**\n * 使用在Form.Item组件上,预定义form-item label宽度\n */\nexport const formItemClassName = {\n label_width_70: 'form-item-label-70',\n label_width_80: 'form-item-label-80',\n label_width_90: 'form-item-label-90',\n label_width_100: 'form-item-label-100',\n label_width_110: 'form-item-label-110',\n label_width_120: 'form-item-label-120',\n label_width_130: 'form-item-label-130',\n label_width_140: 'form-item-label-140',\n label_width_150: 'form-item-label-150',\n label_width_160: 'form-item-label-160',\n label_width_170: 'form-item-label-170',\n label_width_180: 'form-item-label-180',\n label_width_190: 'form-item-label-190',\n label_width_200: 'form-item-label-200',\n label_width_auto: 'form-item-label-auto',\n label_align_left: 'form-item-label-align-left',\n label_align_right: 'form-item-label-align-right',\n label_value_vertical: 'form-item-label-value-vertical',\n};\n","import { formClassName, formItemClassName } from './form';\n\n/**\n * 预定义className\n * ```\n * form: 使用在Form组件上,设置form-item label宽度\n * formItem: 使用在Form.Item组件上,设置form-item label宽度\n * ```\n */\nexport const preDefinedClassName = {\n form: formClassName,\n formItem: formItemClassName,\n};\n"],"names":["formClassName","label_width_70","label_width_80","label_width_90","label_width_100","label_width_110","label_width_120","label_width_130","label_width_140","label_width_150","label_width_160","label_width_170","label_width_180","label_width_190","label_width_200","label_width_auto","label_align_left","label_align_right","label_value_vertical","formItemGap15","formItemGap8","formItemClassName","preDefinedClassName","form","formItem"],"mappings":";AAIO,IAAMA,EAAgB,CAC3BC,eAAgB,gBAChBC,eAAgB,gBAChBC,eAAgB,gBAChBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,iBAAkB,kBAClBC,iBAAkB,wBAClBC,kBAAmB,yBACnBC,qBAAsB,4BAEtBC,cAAe,uBAEfC,aAAc,uBAKT,IAAMC,EAAoB,CAC/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/pre-defined-class-name/form/index.tsx","@flatbiz/antd/src/pre-defined-class-name/index.ts"],"sourcesContent":["import './style.less';\n/**\n * 使用在Form组件上,预定义form-item label宽度\n */\nexport const formClassName = {\n label_width_70: 'form-label-70',\n label_width_80: 'form-label-80',\n label_width_90: 'form-label-90',\n label_width_100: 'form-label-100',\n label_width_110: 'form-label-110',\n label_width_120: 'form-label-120',\n label_width_130: 'form-label-130',\n label_width_140: 'form-label-140',\n label_width_150: 'form-label-150',\n label_width_160: 'form-label-160',\n label_width_170: 'form-label-170',\n label_width_180: 'form-label-180',\n label_width_190: 'form-label-190',\n label_width_200: 'form-label-200',\n label_width_auto: 'form-label-auto',\n label_align_left: 'form-label-align-left',\n label_align_right: 'form-label-align-right',\n label_value_vertical: 'form-label-value-vertical',\n /** formItem之间的垂直间距为15 */\n formItemGap15: 'form-formitem-gap-15',\n /** formItem之间的垂直间距为8 */\n formItemGap8: 'form-formitem-gap-8',\n /** formItem之间的垂直间距为8 */\n formItemGap5: 'form-formitem-gap-5',\n /** formItem之间的垂直间距为0 */\n formItemGap0: 'form-formitem-gap-0',\n};\n/**\n * 使用在Form.Item组件上,预定义form-item label宽度\n */\nexport const formItemClassName = {\n label_width_70: 'form-item-label-70',\n label_width_80: 'form-item-label-80',\n label_width_90: 'form-item-label-90',\n label_width_100: 'form-item-label-100',\n label_width_110: 'form-item-label-110',\n label_width_120: 'form-item-label-120',\n label_width_130: 'form-item-label-130',\n label_width_140: 'form-item-label-140',\n label_width_150: 'form-item-label-150',\n label_width_160: 'form-item-label-160',\n label_width_170: 'form-item-label-170',\n label_width_180: 'form-item-label-180',\n label_width_190: 'form-item-label-190',\n label_width_200: 'form-item-label-200',\n label_width_auto: 'form-item-label-auto',\n label_align_left: 'form-item-label-align-left',\n label_align_right: 'form-item-label-align-right',\n label_value_vertical: 'form-item-label-value-vertical',\n};\n","import { formClassName, formItemClassName } from './form';\n\n/**\n * 预定义className\n * ```\n * form: 使用在Form组件上,设置form-item label宽度\n * formItem: 使用在Form.Item组件上,设置form-item label宽度\n * ```\n */\nexport const preDefinedClassName = {\n form: formClassName,\n formItem: formItemClassName,\n};\n"],"names":["formClassName","label_width_70","label_width_80","label_width_90","label_width_100","label_width_110","label_width_120","label_width_130","label_width_140","label_width_150","label_width_160","label_width_170","label_width_180","label_width_190","label_width_200","label_width_auto","label_align_left","label_align_right","label_value_vertical","formItemGap15","formItemGap8","formItemGap5","formItemGap0","formItemClassName","preDefinedClassName","form","formItem"],"mappings":";AAIO,IAAMA,EAAgB,CAC3BC,eAAgB,gBAChBC,eAAgB,gBAChBC,eAAgB,gBAChBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,iBAAkB,kBAClBC,iBAAkB,wBAClBC,kBAAmB,yBACnBC,qBAAsB,4BAEtBC,cAAe,uBAEfC,aAAc,sBAEdC,aAAc,sBAEdC,aAAc,uBAKT,IAAMC,EAAoB,CAC/BtB,eAAgB,qBAChBC,eAAgB,qBAChBC,eAAgB,qBAChBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,gBAAiB,sBACjBC,iBAAkB,uBAClBC,iBAAkB,6BAClBC,kBAAmB,8BACnBC,qBAAsB,kCC5CjB,IAAMM,EAAsB,CACjCC,KAAMzB,EACN0B,SAAUH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.simple-layout{background-color:#fff;border-radius:6px;padding:15px}.simple-layout
|
|
1
|
+
.simple-layout{background-color:#fff;border-radius:6px;padding:15px}.simple-layout>.ant-form{margin-bottom:-15px}.simple-layout>.ant-form .ant-form-item{margin:0 0 15px}.simple-layout>.ant-form .ant-form-item-label{width:82px}.simple-layout>.ant-form .ant-form-item-label.ant-col-auto{width:auto}.simple-layout .ant-table-thead>tr>th{background:#f6f6f6}.simple-layout .ant-descriptions-item{padding-bottom:10px}.simple-layout .ant-descriptions-item-label{color:#999}.simple-layout .ant-table-pagination.ant-pagination{margin:16px 0 0}.simple-layout .simple-layout-content{position:relative}.simple-layout .simple-layout-content>.ant-row:last-child{margin-bottom:0}.simple-layout .simple-layout-content>.ant-row:last-child .ant-upload-list{padding-bottom:15px}.simple-layout .simple-layout-content>.ant-descriptions:not(.ant-descriptions-bordered):last-child{margin-bottom:-10px}.simple-layout .v-tree-wrapper-tree{padding:5px 0 0}.simple-layout-title-sign{padding-left:10px;position:relative}.simple-layout-title-sign:before{background:var(--simple-layout-colorPrimary);border-radius:3px;content:"";height:14px;left:0;margin-top:-7px;position:absolute;top:50%;width:3px}.simple-layout-title{color:rgba(0,0,0,.85);font-size:16px;font-weight:500;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.simple-layout-title+.simple-layout-content,.simple-layout-title-sign+.simple-layout-content{margin-top:10px}.simple-layout-desc{color:rgba(0,0,0,.55);font-size:12px}.simple-layout+.simple-layout,.simple-layout-desc+.simple-layout-content{margin-top:10px}.simple-layout+.ant-divider{margin:0 0 15px}.simple-layout-formlabel-left .ant-form-item-label{text-align:left}.simple-layout-tight.simple-layout{margin-top:0;padding:0}.simple-layout-title-extra-space{justify-content:space-between;width:100%}.simple-layout-title-fixed{display:flex;flex-direction:column;height:100%;overflow:hidden}.simple-layout-title-fixed>.simple-layout-content{flex:1;overflow-y:auto}.simple-layout-small.simple-layout{padding:8px 15px}.simple-layout-small.simple-layout>.ant-form{margin-bottom:-8px}.simple-layout-small.simple-layout>.ant-form .ant-form-item{margin:0 0 8px}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../fba-hooks/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{a as e,_ as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{hooks as n}from"@wove/react/cjs/hooks";import{message as o,Popconfirm as t,Switch as i}from"antd";import{
|
|
5
|
+
import{a as e,_ as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{hooks as n}from"@wove/react/cjs/hooks";import{message as o,Popconfirm as t,Switch as i}from"antd";import{useMemo as u,useState as s}from"react";import{fbaHooks as l}from"../fba-hooks/index.js";import{jsx as a}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";var c=["popConfirmProps","needConfirm","checkedValue","unCheckedValue","onChange","value","serviceConfig","noMessage"];var f=function f(d){var v=d.popConfirmProps,m=d.needConfirm,h=d.checkedValue,p=d.unCheckedValue,g=d.onChange,C=d.value,k=d.serviceConfig,b=d.noMessage,j=e(d,c);var y=u((function(){if(typeof v==="function"){return v(C===h)}return v}),[h,v,C]);var P=s(false),V=P[0],x=P[1];var R=s(false),q=R[0],w=R[1];l.useEffectCustom((function(){x(C===h)}),[d.value]);var B=u((function(){return m==="close"&&V||m==="open"&&!V||!m||m==="all"}),[V,m]);var E=n.useCallbackRef((function(){return new Promise((function(e,r){var n,t,i;n=!V?h:p;if(k!=null&&k.onRequest){var u=function(e){return function(n){try{w(false);return e&&e.call(this,n)}catch(e){return r(e)}}.bind(this)}.bind(this);var s=function(){try{return a.call(this)}catch(e){return r(e)}}.bind(this);var l=function(e){try{if(!b){void o.error((e==null?void 0:e.message)||(k==null||(i=k.message)==null?void 0:i.defaultError)||"状态修改失败!")}return u(s)()}catch(e){return u(r)(e)}};try{w(true);return Promise.resolve(k.onRequest(n)).then((function(e){try{x(!V);g==null?void 0:g(n);if(!b){void o.success((k==null||(t=k.message)==null?void 0:t.success)||"状态修改成功!")}return u(s)()}catch(e){return l(e)}}),l)}catch(e){l(e)}}else{x(!V);g==null?void 0:g(n);return a.call(this)}function a(){return e()}}))}));if(B){return a(t,{disabled:y==null?void 0:y.disabled,okButtonProps:{loading:q},title:y==null?void 0:y.title,description:y==null?void 0:y.description,onConfirm:E,children:a(i,r({checked:V},j))})}return a(i,r({checked:V,loading:q},j,{onChange:E}))};export{f as SwitchConfirmWrapper};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/switch-confirm-wrapper/switch-confirm-wrapper.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { message, Popconfirm, PopconfirmProps, Switch, SwitchProps } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\n\nexport type SwitchConfirmWrapperValue = string | number | boolean;\nexport type SwitchConfirmWrapperProps = Omit<SwitchProps, 'defaultChecked' | 'onChange'> & {\n value?: SwitchConfirmWrapperValue;\n checkedValue: SwitchConfirmWrapperValue;\n unCheckedValue: SwitchConfirmWrapperValue;\n needConfirm?: 'close' | 'open' | 'all' | 'none';\n noMessage?: boolean;\n onChange?: (value: SwitchConfirmWrapperValue) => void;\n popConfirmProps?: Pick<PopconfirmProps, 'disabled' | 'title' | 'description'
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/switch-confirm-wrapper/switch-confirm-wrapper.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { message, Popconfirm, PopconfirmProps, Switch, SwitchProps } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\n\nexport type SwitchConfirmWrapperValue = string | number | boolean;\nexport type SwitchConfirmWrapperProps = Omit<SwitchProps, 'defaultChecked' | 'onChange'> & {\n value?: SwitchConfirmWrapperValue;\n checkedValue: SwitchConfirmWrapperValue;\n unCheckedValue: SwitchConfirmWrapperValue;\n needConfirm?: 'close' | 'open' | 'all' | 'none';\n noMessage?: boolean;\n onChange?: (value: SwitchConfirmWrapperValue) => void;\n popConfirmProps?:\n | Pick<PopconfirmProps, 'disabled' | 'title' | 'description'>\n | ((checked?: boolean) => Pick<PopconfirmProps, 'disabled' | 'title' | 'description'>);\n serviceConfig?: {\n onRequest: (value: SwitchConfirmWrapperValue) => TAny;\n message?: {\n success?: string;\n defaultError?: string;\n };\n };\n};\n\n/**\n *\n * @description switch 切换时做二次pop提醒, 非可控组件【内部控制】\n * @param props\n * @param value\n * @param checkedValue:选中状态值\n * @param unCheckedValue:非选中状态值\n * @param needConfirm:二次pop拦截时机 可不传\n * close:switch 由开启转换成关闭时pop弹出\n * open:switch 由开启转换成开启时pop弹出\n * all:switch 一直pop\n * none:switch 不弹出\n * @param noMessage:不采用内置message提示\n * @param onChange:switch 有效切换回掉\n * @param popConfirmProps:popConfirm中参数 disabled title description\n * @param serviceConfig onRequest\n * @field onRequest 请求函数\n * @field message message配置 success defaultError\n * ```\n * 1. 单独使用\n * <SwitchConfirmWrapper\n * value={value}\n * checkedValue={'1'}\n * unCheckedValue={'2'}\n * serviceConfig={{\n * onRequest: async () => {\n * await sleep(2000);\n * },\n * }}\n * needConfirm={'all'}\n * popConfirmProps={{\n * title: '确定要开启吗?',\n * }}\n * onChange={(value) => {\n * setValue(value as string);\n * }}\n * />\n *\n * 2. 与Form.Item结合使用\n * <Form.Item name=\"open\">\n * <SwitchConfirmWrapper\n * checkedValue={'1'}\n * unCheckedValue={'2'}\n * serviceConfig={{\n * onRequest: async () => {\n * await sleep(2000);\n * },\n * }}\n * needConfirm={'all'}\n * popConfirmProps={{\n * title: '确定要开启吗?',\n * }}\n * />\n * </Form.Item>\n * ```\n */\nexport const SwitchConfirmWrapper = (props: SwitchConfirmWrapperProps) => {\n const {\n popConfirmProps,\n needConfirm,\n checkedValue,\n unCheckedValue,\n onChange,\n value,\n serviceConfig,\n noMessage,\n ...otherProps\n } = props;\n const popConfirmPropsFt = useMemo(() => {\n if (typeof popConfirmProps === 'function') {\n return popConfirmProps(value === checkedValue);\n }\n return popConfirmProps;\n }, [checkedValue, popConfirmProps, value]);\n const [isCheked, setIsCheked] = useState<boolean>(false);\n const [loading, setLoading] = useState<boolean>(false);\n\n fbaHooks.useEffectCustom(() => {\n setIsCheked(value === checkedValue);\n }, [props.value]);\n\n const showConfirm = useMemo(() => {\n return (\n (needConfirm === 'close' && isCheked) ||\n (needConfirm === 'open' && !isCheked) ||\n !needConfirm ||\n needConfirm === 'all'\n );\n }, [isCheked, needConfirm]);\n\n const onHandleChange = hooks.useCallbackRef(async () => {\n const changeValue = !isCheked ? checkedValue : unCheckedValue;\n if (serviceConfig?.onRequest) {\n try {\n setLoading(true);\n await serviceConfig.onRequest(changeValue);\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n if (!noMessage) {\n void message.success(serviceConfig?.message?.success || '状态修改成功!');\n }\n } catch (error) {\n if (!noMessage) {\n void message.error(error?.message || serviceConfig?.message?.defaultError || '状态修改失败!');\n }\n } finally {\n setLoading(false);\n }\n } else {\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n }\n });\n if (showConfirm) {\n return (\n <Popconfirm\n disabled={popConfirmPropsFt?.disabled}\n okButtonProps={{ loading: loading }}\n title={popConfirmPropsFt?.title}\n description={popConfirmPropsFt?.description}\n onConfirm={onHandleChange}\n >\n <Switch checked={isCheked} {...otherProps} />\n </Popconfirm>\n );\n }\n return <Switch checked={isCheked} loading={loading} {...otherProps} onChange={onHandleChange} />;\n};\n"],"names":["SwitchConfirmWrapper","props","popConfirmProps","needConfirm","checkedValue","unCheckedValue","onChange","value","serviceConfig","noMessage","otherProps","_objectWithoutPropertiesLoose","_excluded","popConfirmPropsFt","useMemo","_useState","useState","isCheked","setIsCheked","_useState2","loading","setLoading","fbaHooks","useEffectCustom","showConfirm","onHandleChange","_hooks","useCallbackRef","Promise","$return","$error","changeValue","_serviceConfig$messag","_serviceConfig$messag2","onRequest","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","$Try_1_Post","$If_2","$Try_1_Catch","error","message","defaultError","resolve","then","$await_3","success","_jsx","Popconfirm","disabled","okButtonProps","title","description","onConfirm","children","Switch","_extends","checked"],"mappings":"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"}
|
|
@@ -6,5 +6,5 @@ import './../fba-utils/index.css';
|
|
|
6
6
|
import './../text-css-ellipsis/index.css';
|
|
7
7
|
import './index.css';
|
|
8
8
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
9
|
-
import{isEmpty as i}from"@dimjs/lang/cjs/is-empty";import{a as r,_ as e}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{getStrByteLen as t,cutString as n}from"@flatbiz/utils";import{Tooltip as l}from"antd";import{Fragment as o}from"react";import{ButtonWrapper as a}from"../button-wrapper/index.js";import{TextCssEllipsis as
|
|
9
|
+
import{isEmpty as i}from"@dimjs/lang/cjs/is-empty";import{a as r,_ as e}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{getStrByteLen as t,cutString as n}from"@flatbiz/utils";import{Tooltip as l}from"antd";import{Fragment as o}from"react";import{ButtonWrapper as a}from"../button-wrapper/index.js";import{TextCssEllipsis as s}from"../text-css-ellipsis/index.js";import{jsx as p,jsxs as m}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"@dimjs/utils/cjs/class-names";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";var d=["onClick","children","prefix"];var c=function i(t){var n=t.onClick,l=t.children,o=t.prefix,s=r(t,d);if(!!n){return m(a,e({type:"link",onClick:n,style:{padding:0,height:"initial",display:"inline-flex",alignItems:"center"}},s,{children:[o?p("span",{style:{marginRight:5},children:o}):null,l]}))}return m("span",e({},s,{style:e({display:"inline-flex"},s["style"]),children:[o?p("span",{style:{marginRight:5},children:o}):null,l]}))};var f=function r(e){var a=e.text,m=e.maxLength,d=e.placeholder,f=e.onClick,u=e.prefix;if(!a||i(a)||a==="")return p(o,{children:d});if(!!m){var j=t(a);if(j<=m*2){return p(c,{onClick:f,prefix:u,children:a})}else{var h=n(a,m*2);return p(l,{placement:"topLeft",title:a,children:p(c,{onClick:f,prefix:u,children:h})})}}if(e.width){return p(c,{onClick:f,prefix:u,children:p(s,{text:a,width:e.width})})}return p(c,{onClick:f,prefix:u,children:e.text})};export{f as TextOverflowRender};
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/text-overflow-render/text-overflow-render.tsx"],"sourcesContent":["import { isEmpty } from '@dimjs/lang';\nimport { cutString, getStrByteLen } from '@flatbiz/utils';\nimport { Tooltip } from 'antd';\nimport { Fragment, ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TextCssEllipsis } from '../text-css-ellipsis';\n\nconst LinkRender = (props: {\n onClick?: (e) => void;\n children?: ReactElement | string;\n prefix?: string | ReactElement;\n}) => {\n const { onClick, children, prefix, ...otherProps } = props;\n if (!!onClick) {\n return (\n <ButtonWrapper\n type=\"link\"\n onClick={onClick}\n style={{ padding: 0, height: 'initial', display: 'inline-flex', alignItems: 'center' }}\n {...otherProps}\n >\n {prefix ? <span style={{ marginRight: 5 }}>{prefix}</span> : null}\n {children}\n </ButtonWrapper>\n );\n }\n return (\n <span {...otherProps} style={{ display: 'inline-flex', ...otherProps['style'] }}>\n {prefix ? <span style={{ marginRight: 5 }}>{prefix}</span> : null}\n {children}\n </span>\n );\n};\n\nexport type TextOverflowRenderProps = {\n /** width 宽度控制超长 */\n width?: number;\n /** maxLength 数字控制超长 */\n maxLength?: number;\n /** 完整文本 */\n text?: string;\n /** 文本前缀显示 */\n prefix?: string | ReactElement;\n /** 数据不存在时,占位符 */\n placeholder?: ReactElement | string;\n onClick?: (e) => void;\n};\n\n/**\n * 文本显示超出截取,被截取的添加Tooltip显示完整数据\n * ```\n * 控制文本显示两种方式\n * 1. 通过 maxLength 控制超长\n * 2. 通过 width 控制超长\n *\n * 3. maxLength 与 width 互斥,优先级:maxLength > width\n * ```\n * @param props\n * @returns\n */\nexport const TextOverflowRender = (props: TextOverflowRenderProps) => {\n const { text, maxLength, placeholder, onClick, prefix } = props;\n\n if (!text || isEmpty(text) || text === '') return <Fragment>{placeholder}</Fragment>;\n if (!!maxLength) {\n const strByteLen = getStrByteLen(text);\n if (strByteLen <= maxLength * 2) {\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n {text}\n </LinkRender>\n );\n } else {\n const resultTitle = cutString(text, maxLength * 2);\n return (\n <Tooltip placement=\"topLeft\" title={text}>\n <LinkRender onClick={onClick} prefix={prefix}>\n {resultTitle}\n </LinkRender>\n </Tooltip>\n );\n }\n }\n if (props.width) {\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n <TextCssEllipsis text={text} width={props.width} />\n </LinkRender>\n );\n }\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n {props.text}\n </LinkRender>\n );\n};\n"],"names":["LinkRender","props","onClick","children","prefix","otherProps","_objectWithoutPropertiesLoose","_excluded","_jsxs","ButtonWrapper","_extends","type","style","padding","height","display","alignItems","_jsx","marginRight","TextOverflowRender","text","maxLength","placeholder","_isEmpty","Fragment","strByteLen","getStrByteLen","resultTitle","cutString","Tooltip","placement","title","width","TextCssEllipsis"],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/text-overflow-render/text-overflow-render.tsx"],"sourcesContent":["import { isEmpty } from '@dimjs/lang';\nimport { cutString, getStrByteLen } from '@flatbiz/utils';\nimport { Tooltip } from 'antd';\nimport { Fragment, ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TextCssEllipsis } from '../text-css-ellipsis';\n\nconst LinkRender = (props: {\n onClick?: (e) => void;\n children?: ReactElement | string;\n prefix?: string | ReactElement;\n}) => {\n const { onClick, children, prefix, ...otherProps } = props;\n if (!!onClick) {\n return (\n <ButtonWrapper\n type=\"link\"\n onClick={onClick}\n style={{ padding: 0, height: 'initial', display: 'inline-flex', alignItems: 'center' }}\n {...otherProps}\n >\n {prefix ? <span style={{ marginRight: 5 }}>{prefix}</span> : null}\n {children}\n </ButtonWrapper>\n );\n }\n return (\n <span {...otherProps} style={{ display: 'inline-flex', ...otherProps['style'] }}>\n {prefix ? <span style={{ marginRight: 5 }}>{prefix}</span> : null}\n {children}\n </span>\n );\n};\n\nexport type TextOverflowRenderProps = {\n /** width 宽度控制超长 */\n width?: number;\n /** maxLength 数字控制超长 */\n maxLength?: number;\n /** 完整文本 */\n text?: string;\n /** 文本前缀显示 */\n prefix?: string | ReactElement;\n /** 数据不存在时,占位符 */\n placeholder?: ReactElement | string;\n onClick?: (e) => void;\n};\n\n/**\n * 文本显示超出截取,被截取的添加Tooltip显示完整数据\n * ```\n * 控制文本显示两种方式\n * 1. 通过 maxLength 控制超长\n * 2. 通过 width 控制超长\n *\n * 3. maxLength 与 width 互斥,优先级:maxLength > width\n * ```\n * @param props\n * @returns\n */\nexport const TextOverflowRender = (props: TextOverflowRenderProps) => {\n const { text, maxLength, placeholder, onClick, prefix } = props;\n\n if (!text || isEmpty(text) || text === '') return <Fragment>{placeholder}</Fragment>;\n if (!!maxLength) {\n const strByteLen = getStrByteLen(text);\n if (strByteLen <= maxLength * 2) {\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n {text}\n </LinkRender>\n );\n } else {\n const resultTitle = cutString(text, maxLength * 2);\n return (\n <Tooltip placement=\"topLeft\" title={text}>\n <LinkRender onClick={onClick} prefix={prefix}>\n {resultTitle}\n </LinkRender>\n </Tooltip>\n );\n }\n }\n if (props.width) {\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n <TextCssEllipsis text={text} width={props.width} />\n </LinkRender>\n );\n }\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n {props.text}\n </LinkRender>\n );\n};\n"],"names":["LinkRender","props","onClick","children","prefix","otherProps","_objectWithoutPropertiesLoose","_excluded","_jsxs","ButtonWrapper","_extends","type","style","padding","height","display","alignItems","_jsx","marginRight","TextOverflowRender","text","maxLength","placeholder","_isEmpty","Fragment","strByteLen","getStrByteLen","resultTitle","cutString","Tooltip","placement","title","width","TextCssEllipsis"],"mappings":";gnCAOA,IAAMA,EAAa,SAAbA,EAAcC,GAKlB,IAAQC,EAA6CD,EAA7CC,QAASC,EAAoCF,EAApCE,SAAUC,EAA0BH,EAA1BG,OAAWC,EAAUC,EAAKL,EAAKM,GAC1D,KAAML,EAAS,CACb,OACEM,EAACC,EAAaC,EAAA,CACZC,KAAK,OACLT,QAASA,EACTU,MAAO,CAAEC,QAAS,EAAGC,OAAQ,UAAWC,QAAS,cAAeC,WAAY,WACxEX,EAAU,CAAAF,SAAA,CAEbC,EAASa,EAAA,OAAA,CAAML,MAAO,CAAEM,YAAa,GAAIf,SAAEC,IAAiB,KAC5DD,KAGP,CACA,OACEK,EAAA,OAAAE,EAAA,CAAA,EAAUL,EAAU,CAAEO,MAAKF,EAAA,CAAIK,QAAS,eAAkBV,EAAW,UAAWF,SAAA,CAC7EC,EAASa,EAAA,OAAA,CAAML,MAAO,CAAEM,YAAa,GAAIf,SAAEC,IAAiB,KAC5DD,KAGP,MA4BagB,EAAqB,SAArBA,EAAsBlB,GACjC,IAAQmB,EAAkDnB,EAAlDmB,KAAMC,EAA4CpB,EAA5CoB,UAAWC,EAAiCrB,EAAjCqB,YAAapB,EAAoBD,EAApBC,QAASE,EAAWH,EAAXG,OAE/C,IAAKgB,GAAQG,EAAQH,IAASA,IAAS,GAAI,OAAOH,EAACO,EAAQ,CAAArB,SAAEmB,IAC7D,KAAMD,EAAW,CACf,IAAMI,EAAaC,EAAcN,GACjC,GAAIK,GAAcJ,EAAY,EAAG,CAC/B,OACEJ,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CiB,GAGP,KAAO,CACL,IAAMO,EAAcC,EAAUR,EAAMC,EAAY,GAChD,OACEJ,EAACY,EAAO,CAACC,UAAU,UAAUC,MAAOX,EAAKjB,SACvCc,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CwB,KAIT,CACF,CACA,GAAI1B,EAAM+B,MAAO,CACf,OACEf,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC3Cc,EAACgB,EAAe,CAACb,KAAMA,EAAMY,MAAO/B,EAAM+B,SAGhD,CACA,OACEf,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CF,EAAMmB,MAGb"}
|
package/index.d.ts
CHANGED
|
@@ -59,6 +59,10 @@ export type ButtonWrapperProps = Omit<ButtonProps, "onClick"> & {
|
|
|
59
59
|
hidden?: boolean;
|
|
60
60
|
/** loading 显示位置,默认值:left */
|
|
61
61
|
loadingPosition?: "left" | "center";
|
|
62
|
+
/**
|
|
63
|
+
* 移除间隙,一般用于 type=link 类型下
|
|
64
|
+
*/
|
|
65
|
+
removeGap?: boolean;
|
|
62
66
|
};
|
|
63
67
|
/**
|
|
64
68
|
* antd Button包装组件
|
|
@@ -676,24 +680,22 @@ export type DragCollapseProps = {
|
|
|
676
680
|
* @returns
|
|
677
681
|
*/
|
|
678
682
|
export declare const DragCollapse: (props: DragCollapseProps) => import("react/jsx-runtime").JSX.Element;
|
|
679
|
-
export type DragCollapseFormListHeaderProps = {
|
|
680
|
-
/** Form.List item fieldData */
|
|
681
|
-
formListFieldData: FormListFieldData;
|
|
682
|
-
/** 当前阶段 完整 formItem name */
|
|
683
|
-
formStageCompleteName: string | number | (string | number)[];
|
|
684
|
-
/** Form.List 操作项 */
|
|
685
|
-
operation: FormListOperation;
|
|
686
|
-
uid: string | number;
|
|
687
|
-
};
|
|
688
683
|
export type DragCollapseFormListContentProps = {
|
|
689
684
|
/** Form.List item fieldData */
|
|
690
685
|
formListFieldData: FormListFieldData;
|
|
691
686
|
/** 当前阶段 完整 formItem name */
|
|
692
|
-
formStageCompleteName: string | number
|
|
687
|
+
formStageCompleteName: Array<string | number>;
|
|
693
688
|
/** Form.List 操作项 */
|
|
694
689
|
operation: FormListOperation;
|
|
695
690
|
uid: string | number;
|
|
696
|
-
|
|
691
|
+
/** 获取当前FormList 内部 Form.Item name */
|
|
692
|
+
getInsideFormItemName: (key: string) => Array<string | number>;
|
|
693
|
+
/** 获取当前 FormList Item 数据 */
|
|
694
|
+
getInsideFormItemData: () => TPlainObject;
|
|
695
|
+
/** 索引 */
|
|
696
|
+
index: number;
|
|
697
|
+
};
|
|
698
|
+
export type DragCollapseFormListHeaderProps = DragCollapseFormListContentProps;
|
|
697
699
|
export type DragCollapseFormListProps = {
|
|
698
700
|
/** formList item 数据中的唯一值,默认值:uid */
|
|
699
701
|
uidFieldName?: string;
|
|
@@ -737,6 +739,80 @@ export type DragCollapseFormListProps = {
|
|
|
737
739
|
* ```
|
|
738
740
|
*/
|
|
739
741
|
export declare const DragCollapseFormList: (props: DragCollapseFormListProps) => import("react/jsx-runtime").JSX.Element;
|
|
742
|
+
export type DragFormListContentProps = {
|
|
743
|
+
/** Form.List item fieldData */
|
|
744
|
+
formListFieldData: FormListFieldData;
|
|
745
|
+
/**
|
|
746
|
+
* 当前阶段 完整 formItem name
|
|
747
|
+
* ```
|
|
748
|
+
* 1. 获取当前输入项Item数据
|
|
749
|
+
* form.getFieldValue(props.formStageCompleteName);
|
|
750
|
+
* 2. 获取当前输入项Item指定字段数据
|
|
751
|
+
* form.getFieldValue([...props.formStageCompleteName, 'key']);
|
|
752
|
+
* ```
|
|
753
|
+
*/
|
|
754
|
+
formStageCompleteName: (string | number)[];
|
|
755
|
+
/**
|
|
756
|
+
* formList上一级 formItem完整name
|
|
757
|
+
*/
|
|
758
|
+
prevCompleteName: (string | number)[];
|
|
759
|
+
/** Form.List 操作项 */
|
|
760
|
+
operation: FormListOperation;
|
|
761
|
+
/** 索引 */
|
|
762
|
+
index: number;
|
|
763
|
+
/** 获取当前FormList 内部 Form.Item name */
|
|
764
|
+
getInsideFormItemName: (key: string) => Array<string | number>;
|
|
765
|
+
/** 获取当前 FormList Item 数据 */
|
|
766
|
+
getInsideFormItemData: () => TPlainObject;
|
|
767
|
+
/** 唯一值字段Key */
|
|
768
|
+
uidKey: string;
|
|
769
|
+
};
|
|
770
|
+
export type DragFormListProps = {
|
|
771
|
+
className?: string;
|
|
772
|
+
style?: CSSProperties;
|
|
773
|
+
/** formList item 数据中的唯一值,默认值:uid */
|
|
774
|
+
uidFieldName?: string;
|
|
775
|
+
/** formList name */
|
|
776
|
+
name: string | number | (string | number)[];
|
|
777
|
+
/**
|
|
778
|
+
* formList上一级 formItem完整name
|
|
779
|
+
* ```
|
|
780
|
+
* 1. 如果没有传 []
|
|
781
|
+
* 2. FormList内部通过 Form.useWatch 取值需要完整 name
|
|
782
|
+
* ```
|
|
783
|
+
*/
|
|
784
|
+
prevCompleteName: (string | number)[];
|
|
785
|
+
/** 拖拽回调 */
|
|
786
|
+
onDropChange?: (items: TPlainObject[]) => void;
|
|
787
|
+
/** 设置拖拽图标 */
|
|
788
|
+
dragIcon?: ReactElement;
|
|
789
|
+
/** 禁用拖拽,拖拽图标隐藏 */
|
|
790
|
+
dragDisabled?: boolean;
|
|
791
|
+
/** 设置item禁止拖拽 */
|
|
792
|
+
getItemDragDisabled?: (uid: string | number, index: number) => boolean;
|
|
793
|
+
/** 新增行默认值,自定义onTableAfterRender后失效 */
|
|
794
|
+
getAddRowDefaultValues?: () => TPlainObject;
|
|
795
|
+
/** 隐藏新增行按钮 */
|
|
796
|
+
hiddenAddRowButton?: boolean;
|
|
797
|
+
/** 自定义新增行按钮,getAddRowDefaultValues配置失效 */
|
|
798
|
+
onCustomAddRowButton?: (operation: FormListOperation) => ReactElement;
|
|
799
|
+
/** formListItem 内容 */
|
|
800
|
+
children: (data: DragFormListContentProps) => ReactElement;
|
|
801
|
+
/** 隐藏数据为空渲染 */
|
|
802
|
+
hiddenEmptyRender?: boolean;
|
|
803
|
+
/** formList内部渲染包装,多用于FormListWrapper嵌套布局 */
|
|
804
|
+
formListChildrenWrapper?: (props: {
|
|
805
|
+
children: ReactElement;
|
|
806
|
+
}) => ReactElement;
|
|
807
|
+
};
|
|
808
|
+
/**
|
|
809
|
+
* 可拖拽FormList
|
|
810
|
+
* ```
|
|
811
|
+
* 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置
|
|
812
|
+
* 2. Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list
|
|
813
|
+
* ```
|
|
814
|
+
*/
|
|
815
|
+
export declare const DragFormList: (props: DragFormListProps) => import("react/jsx-runtime").JSX.Element;
|
|
740
816
|
export interface DrawerOperationProps {
|
|
741
817
|
loading?: boolean;
|
|
742
818
|
okText?: string;
|
|
@@ -1719,6 +1795,15 @@ export type FormItemHorizontalUnionProps = {
|
|
|
1719
1795
|
groupConfigList: {
|
|
1720
1796
|
hidden?: boolean;
|
|
1721
1797
|
before?: ReactElement | string;
|
|
1798
|
+
/**
|
|
1799
|
+
* 设置宽度
|
|
1800
|
+
* ```
|
|
1801
|
+
* 1. 自适应可设置:auto
|
|
1802
|
+
* 2. 可设置具体数值
|
|
1803
|
+
* 3. 不设置会在铺满flex剩余空间
|
|
1804
|
+
* 4. 多个未设置会等分铺满剩余空间
|
|
1805
|
+
* ```
|
|
1806
|
+
*/
|
|
1722
1807
|
width?: number | string;
|
|
1723
1808
|
mainItem: ReactElement;
|
|
1724
1809
|
after?: ReactElement | string;
|
|
@@ -1768,6 +1853,73 @@ export interface FormItemWrapperProps extends FormItemProps {
|
|
|
1768
1853
|
* ```
|
|
1769
1854
|
*/
|
|
1770
1855
|
export declare const FormItemWrapper: (props: FormItemWrapperProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
1856
|
+
export type FormListWrapperContentProps = {
|
|
1857
|
+
/** Form.List item fieldData */
|
|
1858
|
+
formListFieldData: FormListFieldData;
|
|
1859
|
+
/**
|
|
1860
|
+
* 当前阶段 完整 formItem name
|
|
1861
|
+
* ```
|
|
1862
|
+
* 1. 获取当前输入项Item数据
|
|
1863
|
+
* form.getFieldValue(props.formStageCompleteName);
|
|
1864
|
+
* 2. 获取当前输入项Item指定字段数据
|
|
1865
|
+
* form.getFieldValue([...props.formStageCompleteName, 'key']);
|
|
1866
|
+
* ```
|
|
1867
|
+
*/
|
|
1868
|
+
formStageCompleteName: (string | number)[];
|
|
1869
|
+
/**
|
|
1870
|
+
* formList上一级 formItem完整name
|
|
1871
|
+
*/
|
|
1872
|
+
prevCompleteName: (string | number)[];
|
|
1873
|
+
/** Form.List 操作项 */
|
|
1874
|
+
operation: FormListOperation;
|
|
1875
|
+
/** 索引 */
|
|
1876
|
+
index: number;
|
|
1877
|
+
/** 获取当前FormList 内部 Form.Item name */
|
|
1878
|
+
getInsideFormItemName: (key: string) => Array<string | number>;
|
|
1879
|
+
/** 获取当前 FormList Item 数据 */
|
|
1880
|
+
getInsideFormItemData: () => TPlainObject;
|
|
1881
|
+
/** 唯一值字段Key */
|
|
1882
|
+
uidKey: string;
|
|
1883
|
+
};
|
|
1884
|
+
export type FormListWrapperProps = {
|
|
1885
|
+
className?: string;
|
|
1886
|
+
style?: CSSProperties;
|
|
1887
|
+
/** formList item 数据中的唯一值,默认值:uid */
|
|
1888
|
+
uidFieldName?: string;
|
|
1889
|
+
/** formList name */
|
|
1890
|
+
name: string | number | (string | number)[];
|
|
1891
|
+
/**
|
|
1892
|
+
* formList上一级 formItem完整name
|
|
1893
|
+
* ```
|
|
1894
|
+
* 1. 如果没有传 []
|
|
1895
|
+
* 2. FormList内部通过 Form.useWatch 取值需要完整 name
|
|
1896
|
+
* ```
|
|
1897
|
+
*/
|
|
1898
|
+
prevCompleteName: (string | number)[];
|
|
1899
|
+
/** formListItem 内容 */
|
|
1900
|
+
/** 新增行默认值,自定义onTableAfterRender后失效 */
|
|
1901
|
+
getAddRowDefaultValues?: () => TPlainObject;
|
|
1902
|
+
/** 隐藏新增行按钮 */
|
|
1903
|
+
hiddenAddRowButton?: boolean;
|
|
1904
|
+
/** 自定义新增行按钮,getAddRowDefaultValues配置失效 */
|
|
1905
|
+
onCustomAddRowButton?: (operation: FormListOperation) => ReactElement;
|
|
1906
|
+
/** formListItem 内容 */
|
|
1907
|
+
children: (data: FormListWrapperContentProps) => ReactElement;
|
|
1908
|
+
/** 隐藏数据为空渲染 */
|
|
1909
|
+
hiddenEmptyRender?: boolean;
|
|
1910
|
+
/** formList内部渲染包装,多用于FormListWrapper嵌套布局 */
|
|
1911
|
+
formListChildrenWrapper?: (props: {
|
|
1912
|
+
children: ReactElement;
|
|
1913
|
+
}) => ReactElement;
|
|
1914
|
+
};
|
|
1915
|
+
/**
|
|
1916
|
+
* FormList
|
|
1917
|
+
* ```
|
|
1918
|
+
* 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置
|
|
1919
|
+
* 2. Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list
|
|
1920
|
+
* ```
|
|
1921
|
+
*/
|
|
1922
|
+
export declare const FormListWrapper: (props: FormListWrapperProps) => import("react/jsx-runtime").JSX.Element;
|
|
1771
1923
|
export type GapProps = {
|
|
1772
1924
|
height?: number;
|
|
1773
1925
|
width?: number;
|
|
@@ -2020,6 +2172,8 @@ export declare const preDefinedClassName: {
|
|
|
2020
2172
|
label_value_vertical: string;
|
|
2021
2173
|
formItemGap15: string;
|
|
2022
2174
|
formItemGap8: string;
|
|
2175
|
+
formItemGap5: string;
|
|
2176
|
+
formItemGap0: string;
|
|
2023
2177
|
};
|
|
2024
2178
|
formItem: {
|
|
2025
2179
|
label_width_70: string;
|
|
@@ -2390,7 +2544,7 @@ export type SwitchConfirmWrapperProps = Omit<SwitchProps, "defaultChecked" | "on
|
|
|
2390
2544
|
needConfirm?: "close" | "open" | "all" | "none";
|
|
2391
2545
|
noMessage?: boolean;
|
|
2392
2546
|
onChange?: (value: SwitchConfirmWrapperValue) => void;
|
|
2393
|
-
popConfirmProps?: Pick<PopconfirmProps, "disabled" | "title" | "description"
|
|
2547
|
+
popConfirmProps?: Pick<PopconfirmProps, "disabled" | "title" | "description"> | ((checked?: boolean) => Pick<PopconfirmProps, "disabled" | "title" | "description">);
|
|
2394
2548
|
serviceConfig?: {
|
|
2395
2549
|
onRequest: (value: SwitchConfirmWrapperValue) => TAny;
|
|
2396
2550
|
message?: {
|
|
@@ -2406,7 +2560,11 @@ export type SwitchConfirmWrapperProps = Omit<SwitchProps, "defaultChecked" | "on
|
|
|
2406
2560
|
* @param value
|
|
2407
2561
|
* @param checkedValue:选中状态值
|
|
2408
2562
|
* @param unCheckedValue:非选中状态值
|
|
2409
|
-
* @param needConfirm:二次pop拦截时机 可不传
|
|
2563
|
+
* @param needConfirm:二次pop拦截时机 可不传
|
|
2564
|
+
* close:switch 由开启转换成关闭时pop弹出
|
|
2565
|
+
* open:switch 由开启转换成开启时pop弹出
|
|
2566
|
+
* all:switch 一直pop
|
|
2567
|
+
* none:switch 不弹出
|
|
2410
2568
|
* @param noMessage:不采用内置message提示
|
|
2411
2569
|
* @param onChange:switch 有效切换回掉
|
|
2412
2570
|
* @param popConfirmProps:popConfirm中参数 disabled title description
|