@flatbiz/antd 4.5.25 → 4.5.26
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/bootstrap/index.js +1 -1
- package/esm/bootstrap/index.js.map +1 -1
- package/esm/button-operate/index.js +1 -1
- package/esm/button-operate/index.js.map +1 -1
- package/esm/button-wrapper/index.js.map +1 -1
- package/esm/dialog-alert/index.js +1 -1
- package/esm/dialog-alert/index.js.map +1 -1
- package/esm/dialog-confirm/index.css +1 -1
- package/esm/dialog-confirm/index.js +1 -1
- package/esm/dialog-confirm/index.js.map +1 -1
- package/esm/dialog-modal/index.css +1 -1
- package/esm/dialog-modal/index.js +1 -1
- package/esm/dialog-modal/index.js.map +1 -1
- package/esm/drag-editable-card/index.css +0 -0
- package/esm/drag-editable-card/index.js +21 -0
- package/esm/drag-editable-card/index.js.map +1 -0
- package/esm/drag-editable-table/index.js +1 -1
- package/esm/drag-editable-table/index.js.map +1 -1
- package/esm/dropdown-menu-wrapper/index.js +1 -1
- package/esm/dropdown-menu-wrapper/index.js.map +1 -1
- package/esm/easy-form/index.js +1 -1
- package/esm/easy-form/index.js.map +1 -1
- package/esm/editable-card/index.css +1 -0
- package/esm/editable-card/index.js +20 -0
- package/esm/editable-card/index.js.map +1 -0
- package/esm/editable-table/index.js +1 -1
- package/esm/editable-table/index.js.map +1 -1
- package/esm/fba-app/index.css +1 -1
- package/esm/fba-app/index.js +1 -1
- package/esm/fba-app/index.js.map +1 -1
- package/esm/index.js +6 -4
- package/esm/label-value-render/index.js +1 -1
- package/esm/label-value-render/index.js.map +1 -1
- package/esm/table-cell-render/index.js +1 -1
- package/esm/table-cell-render/index.js.map +1 -1
- package/esm/tree-wrapper/index.js +1 -1
- package/esm/tree-wrapper/index.js.map +1 -1
- package/index.d.ts +361 -97
- package/package.json +3 -3
|
@@ -9,5 +9,5 @@ import './../dialog-modal/index.css';
|
|
|
9
9
|
import './../flex-layout/index.css';
|
|
10
10
|
import './index.css';
|
|
11
11
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
12
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import
|
|
12
|
+
import{classNames as e}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/ExclamationCircleFilled";import{a as i,_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as n}from"@wove/react/cjs/hooks";import{Dropdown as t}from"antd";import{Fragment as a,useMemo as s,createElement as l}from"react";import{ButtonWrapper as m}from"../button-wrapper/index.js";import{dialogConfirm as d}from"../dialog-confirm/index.js";import{fbaUtils as p}from"../fba-utils/index.js";import{FlexLayout as c}from"../flex-layout/index.js";import{jsxs as u,jsx as f}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@flatbiz/utils";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/model";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-string";import"ahooks";import"react-dom/client";import"@wove/react/cjs/create-ctx";function g(e){var r=true;var i=false;while(r){if(e.tagName==="HTML"||e.tagName==="BODY"){r=false;i=false}else{var o=window.getComputedStyle(e),n=o.position;if(n==="sticky"){i=true;r=false}else{if(!e||!e.parentNode){r=false}else{e=e.parentNode}}}}return i}var j=["menuList"],v=["text","permission","needConfirm","confirmMessage","hidden","type","confirmModalProps"];var y=function y(h){var x=h.menuList,k=i(h,j);var w=n.useId(undefined,"DropdownMenuWrapper");var C=n.useCallbackRef((function(e,i){if(e.needConfirm){var n;d.open(o({title:u(c,{direction:"horizontal",fullIndex:1,gap:8,children:[f(r,{style:{color:"#faad14"}}),f("span",{children:e.title})]}),content:f(a,{children:e.confirmMessage}),onOk:(n=e.onClick)==null?void 0:n.bind(null,i),okButtonProps:{loadingPosition:"center"}},e.confirmModalProps));return Promise.resolve()}i.stopPropagation();return e.onClick==null?void 0:e.onClick(i)}));var P=document.querySelector("."+w);var b=s((function(){if(h.isFixed||P&&g(P)){return undefined}return P}),[h.isFixed,P]);var M=s((function(){var r=[];x.filter(Boolean).forEach((function(n,t){if(!n)return;var a=n.text,s=n.permission,d=n.needConfirm,c=n.confirmMessage,u=n.hidden,f=n.type,g=n.confirmModalProps,j=i(n,v);if(u)return;if(s&&!p.hasPermission(s))return;var y=f||"link";var h=j.color?false:d;r.push({key:t,label:l(m,o({loadingPosition:"center",size:"small",danger:h},j,{style:o({},j.style),className:e("dmw-item-button",j.className),type:y,key:t,onClick:C.bind(null,o({},n,{needConfirm:d,confirmMessage:c,confirmModalProps:g}))}),a)})}));return r}),[x,C]);return f("div",{className:e("dropdown-menu-wrapper",w),style:{position:"relative"},children:f(t,o({trigger:(k==null?void 0:k.trigger)||["hover"],getPopupContainer:b?function(){return P}:undefined,arrow:{pointAtCenter:true}},k,{overlayStyle:o({zIndex:9},k.overlayStyle),menu:{items:M},rootClassName:"dropdown-menu-wrapper-popup",children:h.children}))})};export{y as DropdownMenuWrapper};
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dropdown-menu-wrapper/utils.ts","@flatbiz/antd/src/dropdown-menu-wrapper/dropdown-menu-wrapper.tsx"],"sourcesContent":["export function parentsHasSticky(node: Element) {\n let condition = true;\n let result = false;\n while (condition) {\n if (node.tagName === 'HTML' || node.tagName === 'BODY') {\n condition = false;\n result = false;\n } else {\n const { position } = window.getComputedStyle(node);\n if (position === 'sticky') {\n result = true;\n condition = false;\n } else {\n if (!node || !node.parentNode) {\n condition = false;\n } else {\n node = node.parentNode as Element;\n }\n }\n }\n }\n return result;\n}\n","import { ExclamationCircleFilled } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Dropdown, DropdownProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\nimport { fbaUtils } from '../fba-utils';\nimport { FlexLayout } from '../flex-layout';\nimport './style.less';\nimport { parentsHasSticky } from './utils';\n\nexport interface DropdownMenuItem extends ButtonProps {\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n confirmModalProps?: DialogModalProps;\n stopPropagation?: boolean;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n /** dropdown 设置弹框根节点在body下 */\n isFixed?: boolean;\n}\n\n/**\n * DropdownMenuWrapper\n * 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能\n * @param props\n * @returns\n * ```\n * 1. Dropdown默认弹框根节点在组件内部,通过isFixed=true可设置弹框根节点在body下\n * ```\n */\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const clsName = hooks.useId(undefined, 'DropdownMenuWrapper');\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n if (item.needConfirm) {\n dialogConfirm.open({\n title: (\n <FlexLayout direction=\"horizontal\" fullIndex={1} gap={8}>\n <ExclamationCircleFilled style={{ color: '#faad14' }} />\n <span>{item.title}</span>\n </FlexLayout>\n ),\n content: <Fragment>{item.confirmMessage}</Fragment>,\n onOk: item.onClick?.bind(null, event),\n okButtonProps: {\n loadingPosition: 'center',\n },\n ...item.confirmModalProps,\n });\n return Promise.resolve();\n }\n event.stopPropagation();\n return item.onClick?.(event);\n });\n\n const target = document.querySelector(`.${clsName}`);\n const container = useMemo(() => {\n if (props.isFixed || (target && parentsHasSticky(target))) {\n return undefined;\n }\n return target;\n }, [props.isFixed, target]);\n\n const menuItems = useMemo(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n confirmModalProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const buttonType = type || 'link';\n const danger = otherProps.color ? false : needConfirm;\n menuItemsNew.push({\n key: index,\n label: (\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n danger={danger}\n {...otherProps}\n style={{ ...otherProps.style }}\n className={classNames('dmw-item-button', otherProps.className)}\n type={buttonType}\n key={index}\n onClick={onClick.bind(null, {\n ...item,\n needConfirm,\n confirmMessage,\n confirmModalProps,\n })}\n >\n {text}\n </ButtonWrapper>\n ),\n });\n });\n return menuItemsNew;\n }, [menuList, onClick]);\n\n return (\n <div className={classNames('dropdown-menu-wrapper', clsName)} style={{ position: 'relative' }}>\n <Dropdown\n trigger={dropdownOtherProps?.trigger || ['hover']}\n getPopupContainer={container ? () => target as HTMLElement : undefined}\n arrow={{ pointAtCenter: true }}\n {...dropdownOtherProps}\n overlayStyle={{ zIndex: 9, ...dropdownOtherProps.overlayStyle }}\n menu={{ items: menuItems }}\n rootClassName=\"dropdown-menu-wrapper-popup\"\n >\n {props.children}\n </Dropdown>\n </div>\n );\n};\n"],"names":["parentsHasSticky","node","condition","result","tagName","_window$getComputedSt","window","getComputedStyle","position","parentNode","DropdownMenuWrapper","props","menuList","dropdownOtherProps","_objectWithoutPropertiesLoose","_excluded","clsName","_hooks","useId","undefined","onClick","useCallbackRef","item","event","needConfirm","_item$onClick","dialogConfirm","open","_extends","title","_jsxs","FlexLayout","direction","fullIndex","gap","children","_jsx","_ExclamationCircleFilled","style","color","content","Fragment","confirmMessage","onOk","bind","okButtonProps","loadingPosition","confirmModalProps","Promise","resolve","stopPropagation","target","document","querySelector","container","useMemo","isFixed","menuItems","menuItemsNew","filter","Boolean","forEach","index","text","permission","hidden","type","otherProps","_excluded2","fbaUtils","hasPermission","buttonType","danger","push","key","label","_createElement","ButtonWrapper","size","className","_classNames","Dropdown","trigger","getPopupContainer","arrow","pointAtCenter","overlayStyle","zIndex","menu","items","rootClassName"],"mappings":";+
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dropdown-menu-wrapper/utils.ts","@flatbiz/antd/src/dropdown-menu-wrapper/dropdown-menu-wrapper.tsx"],"sourcesContent":["export function parentsHasSticky(node: Element) {\n let condition = true;\n let result = false;\n while (condition) {\n if (node.tagName === 'HTML' || node.tagName === 'BODY') {\n condition = false;\n result = false;\n } else {\n const { position } = window.getComputedStyle(node);\n if (position === 'sticky') {\n result = true;\n condition = false;\n } else {\n if (!node || !node.parentNode) {\n condition = false;\n } else {\n node = node.parentNode as Element;\n }\n }\n }\n }\n return result;\n}\n","import { ExclamationCircleFilled } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Dropdown, DropdownProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\nimport { fbaUtils } from '../fba-utils';\nimport { FlexLayout } from '../flex-layout';\nimport './style.less';\nimport { parentsHasSticky } from './utils';\n\nexport interface DropdownMenuItem extends ButtonProps {\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n confirmModalProps?: DialogModalProps;\n stopPropagation?: boolean;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n /** dropdown 设置弹框根节点在body下 */\n isFixed?: boolean;\n}\n\n/**\n * DropdownMenuWrapper\n * 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能\n * @param props\n * @returns\n * ```\n * 1. Dropdown默认弹框根节点在组件内部,通过isFixed=true可设置弹框根节点在body下\n * ```\n */\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const clsName = hooks.useId(undefined, 'DropdownMenuWrapper');\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n if (item.needConfirm) {\n dialogConfirm.open({\n title: (\n <FlexLayout direction=\"horizontal\" fullIndex={1} gap={8}>\n <ExclamationCircleFilled style={{ color: '#faad14' }} />\n <span>{item.title}</span>\n </FlexLayout>\n ),\n content: <Fragment>{item.confirmMessage}</Fragment>,\n onOk: item.onClick?.bind(null, event),\n okButtonProps: {\n loadingPosition: 'center',\n },\n ...item.confirmModalProps,\n });\n return Promise.resolve();\n }\n event.stopPropagation();\n return item.onClick?.(event);\n });\n\n const target = document.querySelector(`.${clsName}`);\n const container = useMemo(() => {\n if (props.isFixed || (target && parentsHasSticky(target))) {\n return undefined;\n }\n return target;\n }, [props.isFixed, target]);\n\n const menuItems = useMemo(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n confirmModalProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const buttonType = type || 'link';\n const danger = otherProps.color ? false : needConfirm;\n menuItemsNew.push({\n key: index,\n label: (\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n danger={danger}\n {...otherProps}\n style={{ ...otherProps.style }}\n className={classNames('dmw-item-button', otherProps.className)}\n type={buttonType}\n key={index}\n onClick={onClick.bind(null, {\n ...item,\n needConfirm,\n confirmMessage,\n confirmModalProps,\n })}\n >\n {text}\n </ButtonWrapper>\n ),\n });\n });\n return menuItemsNew;\n }, [menuList, onClick]);\n\n return (\n <div className={classNames('dropdown-menu-wrapper', clsName)} style={{ position: 'relative' }}>\n <Dropdown\n trigger={dropdownOtherProps?.trigger || ['hover']}\n getPopupContainer={container ? () => target as HTMLElement : undefined}\n arrow={{ pointAtCenter: true }}\n {...dropdownOtherProps}\n overlayStyle={{ zIndex: 9, ...dropdownOtherProps.overlayStyle }}\n menu={{ items: menuItems }}\n rootClassName=\"dropdown-menu-wrapper-popup\"\n >\n {props.children}\n </Dropdown>\n </div>\n );\n};\n"],"names":["parentsHasSticky","node","condition","result","tagName","_window$getComputedSt","window","getComputedStyle","position","parentNode","DropdownMenuWrapper","props","menuList","dropdownOtherProps","_objectWithoutPropertiesLoose","_excluded","clsName","_hooks","useId","undefined","onClick","useCallbackRef","item","event","needConfirm","_item$onClick","dialogConfirm","open","_extends","title","_jsxs","FlexLayout","direction","fullIndex","gap","children","_jsx","_ExclamationCircleFilled","style","color","content","Fragment","confirmMessage","onOk","bind","okButtonProps","loadingPosition","confirmModalProps","Promise","resolve","stopPropagation","target","document","querySelector","container","useMemo","isFixed","menuItems","menuItemsNew","filter","Boolean","forEach","index","text","permission","hidden","type","otherProps","_excluded2","fbaUtils","hasPermission","buttonType","danger","push","key","label","_createElement","ButtonWrapper","size","className","_classNames","Dropdown","trigger","getPopupContainer","arrow","pointAtCenter","overlayStyle","zIndex","menu","items","rootClassName"],"mappings":"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"}
|
package/esm/easy-form/index.js
CHANGED
|
@@ -5,5 +5,5 @@ import './../form-wrapper/index.css';
|
|
|
5
5
|
import './../pre-defined-class-name/index.css';
|
|
6
6
|
import './index.css';
|
|
7
7
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
8
|
-
import{classNames as
|
|
8
|
+
import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as e,_ as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isUndefinedOrNull as n,dom as l}from"@flatbiz/utils";import{useMemo as i,useRef as o,Fragment as a,Children as m}from"react";import{BoxGrid as s}from"../box-grid/index.js";import{fbaHooks as u}from"../fba-hooks/index.js";import{FormWrapper as d}from"../form-wrapper/index.js";import{preDefinedClassName as f}from"../pre-defined-class-name/index.js";import{jsxs as c,jsx as p}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";import"antd";var x=["column","forceColumn","children","width","gridGutter","labelWidth","labelItemVertical","labelAlign","formItemGap","isPure","nonuseFormWrapper"];var v=function v(y){var h=u.useResponsivePoint()||"";var g=y.column,b=y.forceColumn,j=y.children,I=y.width,N=y.gridGutter,w=y.labelWidth,F=y.labelItemVertical,G=y.labelAlign,W=y.formItemGap,A=W===void 0?"15":W,C=y.isPure,T=y.nonuseFormWrapper,P=e(y,x);var V=i((function(){if(b){var r=24/b;return{xs:r,sm:r,md:r,lg:r,xl:r,xxl:r}}if(!g){return{xs:24,sm:12,md:12,lg:8,xl:8,xxl:6}}var e={1:{xs:24,sm:24,md:24,lg:24,xl:24,xxl:24},2:{xs:24,sm:12,md:12,lg:12,xl:12,xxl:12},3:{xs:24,sm:12,md:12,lg:8,xl:8,xxl:8},4:{xs:24,sm:12,md:12,lg:6,xl:6,xxl:6}};return e[g]}),[g,b]);var k=function r(){return m.toArray(j).filter((function(r){return r.props["hidden"]||r.type["domTypeName"]=="FormItemHidden"}))};var B=function r(){return m.toArray(j).filter((function(r){return!r.props["hidden"]&&r.type["domTypeName"]!="FormItemHidden"})).map((function(r,e){if(r.type["domTypeName"]==="BoxGridCol")return p(a,{children:r},e);var n=undefined;if(r.type["domTypeName"]==="FormItemWrapper"||r.type["domTypeName"]==="FormItemText"){n=r.props["span"];if(n){if(h==="xs"){n=24}else if(h==="sm"){n=n>12?n:12}}}return p(s.Col,t({},V,{span:n,children:r}),e)})).filter(Boolean)};var H=i((function(){if(["xs","sm"].includes(h)||!I){return{}}return{width:I}}),[h,I]);var R=n(N)?[15,0]:N;var L=o(null);var _=function r(){try{if(T){return true}if(L.current){var e=l.findParentsElement(L.current,(function(r){var e;return(e=r.classList)==null||e.contains==null?void 0:e.contains("easy-form")}));return e?true:false}return undefined}catch(r){console.log("error",r);return false}};var z=_();var E=i((function(){if(["xs"].includes(h)){return"left"}return G}),[G,h]);var q=i((function(){return f.getFormLayoutClassName({labelWidth:w,labelItemVertical:F,labelAlign:E,formItemGap:A,className:P.className})}),[w,F,E,A,P.className]);return c(a,{children:[p("div",{className:"easy-form-anchor",ref:L}),z===true?p("div",{style:t({},H,P.style),className:r("easy-form",{"easy-form-pure":C},"easy-form-nested",q),children:C?j:c(a,{children:[k(),p(s.Row,{gutter:R,children:B()})]})}):undefined,z===false?p(d,t({},P,{labelWidth:w,labelAlign:E,labelItemVertical:F,formItemGap:A,style:t({},H,P.style),className:r("easy-form",{"easy-form-pure":C},q),autoComplete:"off",children:C?j:c(a,{children:[k(),p(s.Row,{gutter:R,children:B()})]})})):undefined]})};export{v as EasyForm};
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-form/form.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { dom, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Children, Fragment, ReactNode, useMemo, useRef } from 'react';\nimport { BoxGrid } from '../box-grid';\nimport { BoxRowProps } from '../box-grid/row';\nimport { GutterParams } from '../box-grid/type';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormWrapper, FormWrapperProps } from '../form-wrapper';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport './style.less';\n\nexport type EasyFormProps = Omit<FormWrapperProps, 'children'> & {\n /**\n * 定义一行显示几列(当外层宽度尺寸大于 992px(lg) 时,一行显示几列), 默认值:3\n * ```\n * 1. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响(column=1除外)\n * 2. 宽度尺寸定义\n * xs: 宽度 < 576px\n * sm: 宽度 ≥ 576px\n * md: 宽度 ≥ 768px\n * lg: 宽度 ≥ 992px\n * xl: 宽度 ≥ 1200px\n * xxl: 宽度 ≥ 1600px\n * 3. 列数尺寸定义\n * {\n * 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n * 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n * 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n * 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n * };\n * ```\n */\n column?: 1 | 2 | 3 | 4;\n /**\n * 强制定义一行显示几列,不考虑响应式\n * ```\n * 1. 优先级大于column\n * 2. 建议优先使用column配置\n * ```\n */\n forceColumn?: 1 | 2 | 3 | 4;\n /**\n * Form显示宽度,可数值、可百分比;在小屏幕尺寸(xs、sm)上无效\n */\n width?: number | string;\n /** 网格间距 */\n gridGutter?: BoxRowProps['gutter'];\n children: ReactNode;\n /**\n * 是否为纯净模式,对EasyForm的子节点不做任何包装处理\n */\n isPure?: boolean;\n};\n\n/**\n * 简单Form布局,可自定义网格布局\n * ```\n * 1. demo:https://fex.qa.tcshuke.com/docs/admin/main/form/grid\n * 2. EasyForm的children列表会进行网格化布局,可通过设置 isPure = true设置纯净模式(对EasyForm的子节点不做任何包装处理)\n * 3. EasyForm可嵌套使用,嵌套内部的<EasyForm />节点Form相关属性失效,例如属性form、initialValues等都失效\n * <EasyForm form={form}>\n * ....\n * <EasyForm>...</EasyForm>\n * ....\n * <EasyForm>...</EasyForm>\n * ....\n * </EasyForm>\n * 4. 布局网格以当前组件的宽度来计算的,不是屏幕宽度\n * 5. EasyForm 子节点包含 hidden = true 会被忽略\n * 6. 通过 column 可定义一行显示几列FormItem\n * 7. 通过 labelItemVertical 可定义 formitem 竖直布局\n * 8. 通过 formItemGap 可定义 formItem竖直方向间隙\n * 9. 通过 forceColumn 可强制定义一行显示几列,不考虑响应式\n * 10. 通过 labelWidth 可控制Form内部所有label的宽度(可实现整齐效果)\n * 11. 自定义栅格占位格数,见下方`例如`\n\n * 例如\n * <EasyForm column={3}>\n *\t <FormItemWrapper name=\"field1\" label=\"条件1\">\n *\t <Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t <!-- !!自定义栅格占位格数第一种方式:可通过使用 BoxGrid.Col 包裹元素来自定义网格占比 -->\n *\t <BoxGrid.Col span={24}>\n *\t <FormItemWrapper name=\"field5\" label=\"条件5\">\n *\t \t<Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t </BoxGrid.Col>\n *\t <!-- !!自定义栅格占位格数第二种方式:如果为FormItemWrapper组件,可设置span属性 -->\n *\t <FormItemWrapper name=\"field6\" label=\"条件6\" span={24}>\n *\t <Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t <FormItemWrapper noStyle span={24}>\n *\t <Button>按钮</Buttone>\n *\t </FormItemWrapper>\n * </EasyForm>\n * ```\n */\nexport const EasyForm = (props: EasyFormProps) => {\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const {\n column,\n forceColumn,\n children,\n width,\n gridGutter,\n labelWidth,\n labelItemVertical,\n labelAlign,\n formItemGap = '15',\n isPure,\n ...otherProps\n } = props;\n\n const gridSize = useMemo(() => {\n if (forceColumn) {\n const num = 24 / forceColumn;\n return { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num };\n }\n if (!column) {\n return { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n }\n const columnMap = {\n 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n };\n return columnMap[column];\n }, [column, forceColumn]);\n\n const getHiddenRowChildren = () => {\n return Children.toArray(children).filter((item: TAny) => {\n return item.props['hidden'] || item.type['domTypeName'] == 'FormItemHidden';\n });\n };\n\n const getFormRowChildren = () => {\n return Children.toArray(children)\n .filter((item: TAny) => {\n return !item.props['hidden'] && item.type['domTypeName'] != 'FormItemHidden';\n })\n .map((item: TAny, index) => {\n if (item.type['domTypeName'] === 'BoxGridCol') return <Fragment key={index}>{item}</Fragment>;\n let span: number | undefined = undefined;\n if (item.type['domTypeName'] === 'FormItemWrapper' || item.type['domTypeName'] === 'FormItemText') {\n span = item.props['span'] as number;\n if (span) {\n if (screenType === 'xs') {\n span = 24;\n } else if (screenType === 'sm') {\n span = span > 12 ? span : 12;\n }\n }\n }\n return (\n <BoxGrid.Col key={index} {...gridSize} span={span}>\n {item}\n </BoxGrid.Col>\n );\n })\n .filter(Boolean);\n };\n\n const innerStyle = useMemo(() => {\n /** 小屏幕不控制宽度 */\n if (['xs', 'sm'].includes(screenType) || !width) {\n return {};\n }\n return { width };\n }, [screenType, width]);\n\n const gutter = isUndefinedOrNull(gridGutter) ? ([15, 0] as GutterParams) : gridGutter;\n const anchorRef = useRef<HTMLDivElement>(null);\n\n // 是否嵌套内部EasyForm节点\n const getIsNestedEasyForm = () => {\n try {\n if (anchorRef.current) {\n const target = dom.findParentsElement(anchorRef.current, (node) => {\n return node.classList?.contains?.('easy-form');\n });\n return target ? true : false;\n }\n return undefined;\n } catch (error) {\n console.log('error', error);\n return false;\n }\n };\n\n const isNestedEasyForm = getIsNestedEasyForm();\n\n const labelAlignNew = useMemo(() => {\n if (['xs'].includes(screenType)) {\n return 'left';\n }\n return labelAlign;\n }, [labelAlign, screenType]);\n\n const fromLayoutClassName = useMemo(() => {\n return preDefinedClassName.getFormLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign: labelAlignNew,\n formItemGap,\n className: otherProps.className,\n });\n }, [labelWidth, labelItemVertical, labelAlignNew, formItemGap, otherProps.className]);\n\n return (\n <Fragment>\n <div className=\"easy-form-anchor\" ref={anchorRef}></div>\n {isNestedEasyForm === true ? (\n <div\n style={{ ...innerStyle, ...otherProps.style }}\n className={classNames(\n 'easy-form',\n { 'easy-form-pure': isPure },\n 'easy-form-nested',\n fromLayoutClassName,\n )}\n >\n {getHiddenRowChildren()}\n {isPure ? children : <BoxGrid.Row gutter={gutter}>{getFormRowChildren()}</BoxGrid.Row>}\n </div>\n ) : undefined}\n {isNestedEasyForm === false ? (\n <FormWrapper\n {...otherProps}\n labelWidth={labelWidth}\n labelAlign={labelAlignNew}\n labelItemVertical={labelItemVertical}\n formItemGap={formItemGap}\n style={{ ...innerStyle, ...otherProps.style }}\n className={classNames('easy-form', { 'easy-form-pure': isPure }, fromLayoutClassName)}\n autoComplete=\"off\"\n >\n {getHiddenRowChildren()}\n {isPure ? children : <BoxGrid.Row gutter={gutter}>{getFormRowChildren()}</BoxGrid.Row>}\n </FormWrapper>\n ) : undefined}\n </Fragment>\n );\n};\n"],"names":["EasyForm","props","screenType","fbaHooks","useResponsivePoint","column","forceColumn","children","width","gridGutter","labelWidth","labelItemVertical","labelAlign","_props$formItemGap","formItemGap","isPure","otherProps","_objectWithoutPropertiesLoose","_excluded","gridSize","useMemo","num","xs","sm","md","lg","xl","xxl","columnMap","getHiddenRowChildren","Children","toArray","filter","item","type","getFormRowChildren","map","index","_jsx","Fragment","span","undefined","BoxGrid","Col","_extends","Boolean","innerStyle","includes","gutter","isUndefinedOrNull","anchorRef","useRef","getIsNestedEasyForm","current","target","dom","findParentsElement","node","_node$classList","classList","contains","error","console","log","isNestedEasyForm","labelAlignNew","fromLayoutClassName","preDefinedClassName","getFormLayoutClassName","className","_jsxs","ref","style","_classNames","Row","FormWrapper","autoComplete"],"mappings":";q0BAiGaA,EAAW,SAAXA,EAAYC,GACvB,IAAMC,EAAaC,EAASC,sBAAwB,GAEpD,IACEC,EAWEJ,EAXFI,OACAC,EAUEL,EAVFK,YACAC,EASEN,EATFM,SACAC,EAQEP,EARFO,MACAC,EAOER,EAPFQ,WACAC,EAMET,EANFS,WACAC,EAKEV,EALFU,kBACAC,EAIEX,EAJFW,WAAUC,EAIRZ,EAHFa,YAAAA,EAAWD,SAAG,EAAA,KAAIA,EAClBE,EAEEd,EAFFc,OACGC,EAAUC,EACXhB,EAAKiB,GAET,IAAMC,EAAWC,GAAQ,WACvB,GAAId,EAAa,CACf,IAAMe,EAAM,GAAKf,EACjB,MAAO,CAAEgB,GAAID,EAAKE,GAAIF,EAAKG,GAAIH,EAAKI,GAAIJ,EAAKK,GAAIL,EAAKM,IAAKN,EAC7D,CACA,IAAKhB,EAAQ,CACX,MAAO,CAAEiB,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,EAAGC,GAAI,EAAGC,IAAK,EACtD,CACA,IAAMC,EAAY,CAChB,EAAG,CAAEN,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,IAAK,IAClD,EAAG,CAAEL,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,IAAK,IAClD,EAAG,CAAEL,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,EAAGC,GAAI,EAAGC,IAAK,GAChD,EAAG,CAAEL,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,EAAGC,GAAI,EAAGC,IAAK,IAElD,OAAOC,EAAUvB,EACnB,GAAG,CAACA,EAAQC,IAEZ,IAAMuB,EAAuB,SAAvBA,IACJ,OAAOC,EAASC,QAAQxB,GAAUyB,QAAO,SAACC,GACxC,OAAOA,EAAKhC,MAAM,WAAagC,EAAKC,KAAK,gBAAkB,gBAC7D,KAGF,IAAMC,EAAqB,SAArBA,IACJ,OAAOL,EAASC,QAAQxB,GACrByB,QAAO,SAACC,GACP,OAAQA,EAAKhC,MAAM,WAAagC,EAAKC,KAAK,gBAAkB,gBAC7D,IACAE,KAAI,SAACH,EAAYI,GAChB,GAAIJ,EAAKC,KAAK,iBAAmB,aAAc,OAAOI,EAACC,EAAQ,CAAAhC,SAAc0B,GAARI,GACrE,IAAIG,EAA2BC,UAC/B,GAAIR,EAAKC,KAAK,iBAAmB,mBAAqBD,EAAKC,KAAK,iBAAmB,eAAgB,CACjGM,EAAOP,EAAKhC,MAAM,QAClB,GAAIuC,EAAM,CACR,GAAItC,IAAe,KAAM,CACvBsC,EAAO,EACT,MAAO,GAAItC,IAAe,KAAM,CAC9BsC,EAAOA,EAAO,GAAKA,EAAO,EAC5B,CACF,CACF,CACA,OACEF,EAACI,EAAQC,IAAGC,KAAiBzB,EAAQ,CAAEqB,KAAMA,EAAKjC,SAC/C0B,IADeI,EAItB,IACCL,OAAOa,UAGZ,IAAMC,EAAa1B,GAAQ,WAEzB,GAAI,CAAC,KAAM,MAAM2B,SAAS7C,KAAgBM,EAAO,CAC/C,MAAO,EACT,CACA,MAAO,CAAEA,MAAAA,EACX,GAAG,CAACN,EAAYM,IAEhB,IAAMwC,EAASC,EAAkBxC,GAAe,CAAC,GAAI,GAAsBA,EAC3E,IAAMyC,EAAYC,EAAuB,MAGzC,IAAMC,EAAsB,SAAtBA,IACJ,IACE,GAAIF,EAAUG,QAAS,CACrB,IAAMC,EAASC,EAAIC,mBAAmBN,EAAUG,SAAS,SAACI,GAAS,IAAAC,EACjE,OAAAA,EAAOD,EAAKE,YAALD,MAAAA,EAAgBE,sBAAhBF,EAAgBE,SAAW,YACpC,IACA,OAAON,EAAS,KAAO,KACzB,CACA,OAAOb,SACR,CAAC,MAAOoB,GACPC,QAAQC,IAAI,QAASF,GACrB,OAAO,KACT,GAGF,IAAMG,EAAmBZ,IAEzB,IAAMa,EAAgB7C,GAAQ,WAC5B,GAAI,CAAC,MAAM2B,SAAS7C,GAAa,CAC/B,MAAO,MACT,CACA,OAAOU,CACT,GAAG,CAACA,EAAYV,IAEhB,IAAMgE,EAAsB9C,GAAQ,WAClC,OAAO+C,EAAoBC,uBAAuB,CAChD1D,WAAAA,EACAC,kBAAAA,EACAC,WAAYqD,EACZnD,YAAAA,EACAuD,UAAWrD,EAAWqD,WAE1B,GAAG,CAAC3D,EAAYC,EAAmBsD,EAAenD,EAAaE,EAAWqD,YAE1E,OACEC,EAAC/B,EAAQ,CAAAhC,UACP+B,EAAA,MAAA,CAAK+B,UAAU,mBAAmBE,IAAKrB,IACtCc,IAAqB,KACpBM,EAAA,MAAA,CACEE,MAAK5B,EAAOE,CAAAA,EAAAA,EAAe9B,EAAWwD,OACtCH,UAAWI,EACT,YACA,CAAE,iBAAkB1D,GACpB,mBACAmD,GACA3D,SAEDsB,CAAAA,IACAd,EAASR,EAAW+B,EAACI,EAAQgC,IAAG,CAAC1B,OAAQA,EAAOzC,SAAE4B,SAEnDM,UACHuB,IAAqB,MACpBM,EAACK,EAAW/B,KACN5B,EAAU,CACdN,WAAYA,EACZE,WAAYqD,EACZtD,kBAAmBA,EACnBG,YAAaA,EACb0D,MAAK5B,EAAOE,CAAAA,EAAAA,EAAe9B,EAAWwD,OACtCH,UAAWI,EAAW,YAAa,CAAE,iBAAkB1D,GAAUmD,GACjEU,aAAa,MAAKrE,SAEjBsB,CAAAA,IACAd,EAASR,EAAW+B,EAACI,EAAQgC,IAAG,CAAC1B,OAAQA,EAAOzC,SAAE4B,UAEnDM,YAGV"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-form/form.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { dom, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Children, Fragment, ReactNode, useMemo, useRef } from 'react';\nimport { BoxGrid } from '../box-grid';\nimport { BoxRowProps } from '../box-grid/row';\nimport { GutterParams } from '../box-grid/type';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormWrapper, FormWrapperProps } from '../form-wrapper';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport './style.less';\n\nexport type EasyFormProps = Omit<FormWrapperProps, 'children'> & {\n /**\n * 定义一行显示几列(当外层宽度尺寸大于 992px(lg) 时,一行显示几列), 默认值:3\n * ```\n * 1. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响(column=1除外)\n * 2. 宽度尺寸定义\n * xs: 宽度 < 576px\n * sm: 宽度 ≥ 576px\n * md: 宽度 ≥ 768px\n * lg: 宽度 ≥ 992px\n * xl: 宽度 ≥ 1200px\n * xxl: 宽度 ≥ 1600px\n * 3. 列数尺寸定义\n * {\n * 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n * 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n * 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n * 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n * };\n * ```\n */\n column?: 1 | 2 | 3 | 4;\n /**\n * 强制定义一行显示几列,不考虑响应式\n * ```\n * 1. 优先级大于column\n * 2. 建议优先使用column配置\n * ```\n */\n forceColumn?: 1 | 2 | 3 | 4;\n /**\n * Form显示宽度,可数值、可百分比;在小屏幕尺寸(xs、sm)上无效\n */\n width?: number | string;\n /** 网格间距 */\n gridGutter?: BoxRowProps['gutter'];\n children: ReactNode;\n /**\n * 是否为纯净模式,对EasyForm的子节点不做任何包装处理\n */\n isPure?: boolean;\n /**\n * true: 不使用Antd Form包裹,可在Form、EasyForm、FormWrapper内部使用\n */\n nonuseFormWrapper?: boolean;\n};\n\n/**\n * 简单Form布局,可自定义网格布局\n * ```\n * 1. demo:https://fex.qa.tcshuke.com/docs/admin/main/form/grid\n * 2. EasyForm的children列表会进行网格化布局,可通过设置 isPure = true设置纯净模式(对EasyForm的子节点不做任何包装处理)\n * 3. EasyForm可嵌套使用,嵌套内部的<EasyForm />节点Form相关属性失效,例如属性form、initialValues等都失效\n * <EasyForm form={form}>\n * ....\n * <EasyForm>...</EasyForm>\n * ....\n * <EasyForm>...</EasyForm>\n * ....\n * </EasyForm>\n * 4. 布局网格以当前组件的宽度来计算的,不是屏幕宽度\n * 5. EasyForm 子节点包含 hidden = true 会被忽略\n * 6. 通过 column 可定义一行显示几列FormItem\n * 7. 通过 labelItemVertical 可定义 formitem 竖直布局\n * 8. 通过 formItemGap 可定义 formItem竖直方向间隙\n * 9. 通过 forceColumn 可强制定义一行显示几列,不考虑响应式\n * 10. 通过 labelWidth 可控制Form内部所有label的宽度(可实现整齐效果)\n * 11. 自定义栅格占位格数,见下方`例如`\n\n * 例如\n * <EasyForm column={3}>\n *\t <FormItemWrapper name=\"field1\" label=\"条件1\">\n *\t <Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t <!-- !!自定义栅格占位格数第一种方式:可通过使用 BoxGrid.Col 包裹元素来自定义网格占比 -->\n *\t <BoxGrid.Col span={24}>\n *\t <FormItemWrapper name=\"field5\" label=\"条件5\">\n *\t \t<Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t </BoxGrid.Col>\n *\t <!-- !!自定义栅格占位格数第二种方式:如果为FormItemWrapper组件,可设置span属性 -->\n *\t <FormItemWrapper name=\"field6\" label=\"条件6\" span={24}>\n *\t <Input placeholder=\"请输入\" allowClear={true} />\n *\t </FormItemWrapper>\n *\t <FormItemWrapper noStyle span={24}>\n *\t <Button>按钮</Buttone>\n *\t </FormItemWrapper>\n * </EasyForm>\n * ```\n */\nexport const EasyForm = (props: EasyFormProps) => {\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const {\n column,\n forceColumn,\n children,\n width,\n gridGutter,\n labelWidth,\n labelItemVertical,\n labelAlign,\n formItemGap = '15',\n isPure,\n nonuseFormWrapper,\n ...otherProps\n } = props;\n\n const gridSize = useMemo(() => {\n if (forceColumn) {\n const num = 24 / forceColumn;\n return { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num };\n }\n if (!column) {\n return { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n }\n const columnMap = {\n 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n };\n return columnMap[column];\n }, [column, forceColumn]);\n\n const getHiddenRowChildren = () => {\n return Children.toArray(children).filter((item: TAny) => {\n return item.props['hidden'] || item.type['domTypeName'] == 'FormItemHidden';\n });\n };\n\n const getFormRowChildren = () => {\n return Children.toArray(children)\n .filter((item: TAny) => {\n return !item.props['hidden'] && item.type['domTypeName'] != 'FormItemHidden';\n })\n .map((item: TAny, index) => {\n if (item.type['domTypeName'] === 'BoxGridCol') return <Fragment key={index}>{item}</Fragment>;\n let span: number | undefined = undefined;\n if (item.type['domTypeName'] === 'FormItemWrapper' || item.type['domTypeName'] === 'FormItemText') {\n span = item.props['span'] as number;\n if (span) {\n if (screenType === 'xs') {\n span = 24;\n } else if (screenType === 'sm') {\n span = span > 12 ? span : 12;\n }\n }\n }\n return (\n <BoxGrid.Col key={index} {...gridSize} span={span}>\n {item}\n </BoxGrid.Col>\n );\n })\n .filter(Boolean);\n };\n\n const innerStyle = useMemo(() => {\n /** 小屏幕不控制宽度 */\n if (['xs', 'sm'].includes(screenType) || !width) {\n return {};\n }\n return { width };\n }, [screenType, width]);\n\n const gutter = isUndefinedOrNull(gridGutter) ? ([15, 0] as GutterParams) : gridGutter;\n const anchorRef = useRef<HTMLDivElement>(null);\n\n // 是否嵌套内部EasyForm节点\n const getIsNestedEasyForm = () => {\n try {\n if (nonuseFormWrapper) {\n return true;\n }\n if (anchorRef.current) {\n const target = dom.findParentsElement(anchorRef.current, (node) => {\n return node.classList?.contains?.('easy-form');\n });\n return target ? true : false;\n }\n return undefined;\n } catch (error) {\n console.log('error', error);\n return false;\n }\n };\n\n const isNestedEasyForm = getIsNestedEasyForm();\n\n const labelAlignNew = useMemo(() => {\n if (['xs'].includes(screenType)) {\n return 'left';\n }\n return labelAlign;\n }, [labelAlign, screenType]);\n\n const fromLayoutClassName = useMemo(() => {\n return preDefinedClassName.getFormLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign: labelAlignNew,\n formItemGap,\n className: otherProps.className,\n });\n }, [labelWidth, labelItemVertical, labelAlignNew, formItemGap, otherProps.className]);\n\n return (\n <Fragment>\n <div className=\"easy-form-anchor\" ref={anchorRef}></div>\n {isNestedEasyForm === true ? (\n <div\n style={{ ...innerStyle, ...otherProps.style }}\n className={classNames(\n 'easy-form',\n { 'easy-form-pure': isPure },\n 'easy-form-nested',\n fromLayoutClassName,\n )}\n >\n {isPure ? (\n children\n ) : (\n <Fragment>\n {getHiddenRowChildren()}\n <BoxGrid.Row gutter={gutter}>{getFormRowChildren()}</BoxGrid.Row>\n </Fragment>\n )}\n </div>\n ) : undefined}\n {isNestedEasyForm === false ? (\n <FormWrapper\n {...otherProps}\n labelWidth={labelWidth}\n labelAlign={labelAlignNew}\n labelItemVertical={labelItemVertical}\n formItemGap={formItemGap}\n style={{ ...innerStyle, ...otherProps.style }}\n className={classNames('easy-form', { 'easy-form-pure': isPure }, fromLayoutClassName)}\n autoComplete=\"off\"\n >\n {isPure ? (\n children\n ) : (\n <Fragment>\n {getHiddenRowChildren()}\n <BoxGrid.Row gutter={gutter}>{getFormRowChildren()}</BoxGrid.Row>\n </Fragment>\n )}\n </FormWrapper>\n ) : undefined}\n </Fragment>\n );\n};\n"],"names":["EasyForm","props","screenType","fbaHooks","useResponsivePoint","column","forceColumn","children","width","gridGutter","labelWidth","labelItemVertical","labelAlign","_props$formItemGap","formItemGap","isPure","nonuseFormWrapper","otherProps","_objectWithoutPropertiesLoose","_excluded","gridSize","useMemo","num","xs","sm","md","lg","xl","xxl","columnMap","getHiddenRowChildren","Children","toArray","filter","item","type","getFormRowChildren","map","index","_jsx","Fragment","span","undefined","BoxGrid","Col","_extends","Boolean","innerStyle","includes","gutter","isUndefinedOrNull","anchorRef","useRef","getIsNestedEasyForm","current","target","dom","findParentsElement","node","_node$classList","classList","contains","error","console","log","isNestedEasyForm","labelAlignNew","fromLayoutClassName","preDefinedClassName","getFormLayoutClassName","className","_jsxs","ref","style","_classNames","Row","FormWrapper","autoComplete"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.editable-card-empty{padding:15px 0 20px}.editable-card-empty .ant-empty{align-items:center;display:flex;justify-content:center;margin:0}.editable-card-empty .ant-empty-image{height:25px;margin:0;width:50px}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import './../button-wrapper/index.css';
|
|
3
|
+
import './../config-provider-wrapper/index.css';
|
|
4
|
+
import './../fba-hooks/index.css';
|
|
5
|
+
import './../types/index.css';
|
|
6
|
+
import './../fba-utils/index.css';
|
|
7
|
+
import './../card-wrapper/index.css';
|
|
8
|
+
import './../delete-node/index.css';
|
|
9
|
+
import './../icon-wrapper/index.css';
|
|
10
|
+
import './../easy-form/index.css';
|
|
11
|
+
import './../box-grid/index.css';
|
|
12
|
+
import './../form-wrapper/index.css';
|
|
13
|
+
import './../pre-defined-class-name/index.css';
|
|
14
|
+
import './../form-item-hidden/index.css';
|
|
15
|
+
import './../form-item-wrapper/index.css';
|
|
16
|
+
import './../tips-wrapper/index.css';
|
|
17
|
+
import './index.css';
|
|
18
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
19
|
+
import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{_ as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as t}from"@wove/react/cjs/hooks";import{toArray as i,isUndefinedOrNull as o}from"@flatbiz/utils";import{Form as a,Empty as l}from"antd";import{useRef as d,useMemo as s,Fragment as m,createElement as u,isValidElement as p}from"react";import{ButtonWrapper as c}from"../button-wrapper/index.js";import{CardWrapper as f}from"../card-wrapper/index.js";import{DeleteNode as v}from"../delete-node/index.js";import{EasyForm as g}from"../easy-form/index.js";import{fbaHooks as y}from"../fba-hooks/index.js";import{fbaUtils as j}from"../fba-utils/index.js";import{FormItemHidden as h}from"../form-item-hidden/index.js";import{FormItemWrapper as x}from"../form-item-wrapper/index.js";import{TipsWrapper as b}from"../tips-wrapper/index.js";import{jsx as F,jsxs as k}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/model";import"@ant-design/icons/es/icons/CloseCircleFilled";import"@ant-design/icons/es/icons/DeleteOutlined";import"../icon-wrapper/index.js";import"@dimjs/lang/cjs/is-undefined";import"../box-grid/index.js";import"@dimjs/lang/cjs/is-number";import"ahooks";import"../form-wrapper/index.js";import"../pre-defined-class-name/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var w=function w(C){var P=a.useFormInstance();var R=i(C.formListName);var N=d();var I=d();var E=t.useForceUpdate();var D=C.formListCompleteName||R;var V=t.useCallbackRef((function(e,r){return new Promise((function(n,t){return Promise.resolve(P.validateFields(r.map((function(r){return[].concat(e,i(r))})))).then((function(e){try{return n()}catch(e){return t(e)}}),t)}))}));var q=t.useCallbackRef((function(e){return P.getFieldValue(e)}));var L=t.useCallbackRef((function(e,r){j.setFormFieldsAndTriggerValuesChange(P,r.map((function(r){return{name:[].concat(D,[e],i(r.name)),value:r.value}})));E()}));var T=s((function(){return C.columns.map((function(e){var r;var t=e.title;var a=t;if(e.tips){a=F(b,{tipType:"popover",popoverProps:{content:e.tips},children:t})}var l=e.required;if(!l&&typeof e.formItemProps==="object"&&(r=e.formItemProps.rules)!=null&&r.length){l=!!e.formItemProps.rules.find((function(e){return!!e["required"]}))}var d=i(e["dataIndex"]);return{render:function r(t,i,s){var p;var c=P.getFieldValue([].concat(D,[i.name]));var f=P.getFieldValue([].concat(D,[i.name],d));if(o(e.render)){return F(m,{children:f})}var v=typeof(e==null?void 0:e.editable)==="function"?e==null?void 0:e.editable(c,t):e==null?void 0:e.editable;var g=[].concat(D,[i.name]);var y={index:t,editable:v,add:s.add,remove:s.remove,move:s.move,rowFormItemName:i.name,rowFormItemCompleteName:g,setCurrentRowField:L.bind(null,i.name),validateRowFields:V.bind(null,g),getCurrentRowData:q.bind(null,g),forceUpdate:E};if(e.hidden!=null&&e.hidden(c,t)){return F(h,{name:[i.name].concat(d)},i.key)}var j=typeof e.formItemProps==="function"?e.formItemProps(y):e.formItemProps;if(!((p=j)!=null&&(p=p.rules)!=null&&p.length)&&l){j=n({},j,{rules:[{required:true,message:""}]})}if(v===true){return u(x,n({},j,{name:[i.name].concat(d),label:a,span:e.gridNumber,key:i.key}),e.render==null?void 0:e.render(y))}return F(x,n({label:a,span:e.gridNumber},j,{children:e.render==null?void 0:e.render(y)}),i.key)}}}))}),[C.columns,P,D,L,V,q,E]);var _=r("editable-card",C.className);y.useEffectCustom((function(){var e;if(C.required&&!((e=I.current)!=null&&e.length)){setTimeout((function(){j.setFormFieldsAndTriggerValuesChange(P,[{name:[].concat(D),value:[n({},C.addRowDefaultValues==null?void 0:C.addRowDefaultValues())]}])}),30)}}),[]);return F("div",{className:_,style:C.style,children:F(a.List,{name:R,rules:C.rules,children:function r(t,i,o){var d=o.errors;N.current=i;I.current=t;return k("div",{style:{borderRadius:"6px",border:d!=null&&d.length?"1px solid #ff4d4f":"1px solid transparent"},children:[C.contentBeforeRender==null?void 0:C.contentBeforeRender(i,t.length),t.map((function(e,r){var o;var a=C.onCustomGroupName?C.onCustomGroupName(r):r+1;var l={index:r,fields:t,fieldItem:e,operation:i,required:C.required,key:""+e.key};if(C.onCustomWrapper){var d;return C.onCustomWrapper(F(g,n({nonuseFormWrapper:true},C.cardEasyFormProps,{style:n({padding:0,margin:0},(d=C.cardEasyFormProps)==null?void 0:d.style),children:T.map((function(r,n){return r.render(n,e,i)}))}),e.key),l)}var s=C.cardExtraRender==null?void 0:C.cardExtraRender(l);return F(f,{className:C.cardClassName,title:a,size:"small",style:n({padding:0,margin:"0 0 15px 0"},C.cardStyle),bodyStyle:{paddingBottom:0},extra:p(s)?s:k("div",{style:{display:"inline-flex",alignItems:"center",gap:"8px"},children:[s==null?void 0:s["before"],F(v,{style:{color:"red"},hidden:C.required&&t.length===1,onDelete:function e(){i.remove(r)}}),s==null?void 0:s["after"]]}),children:F(g,n({nonuseFormWrapper:true},C.cardEasyFormProps,{style:n({padding:0,margin:0},(o=C.cardEasyFormProps)==null?void 0:o.style),children:T.map((function(r,n){return r.render(n,e,i)}))}),e.key)},e.key)})),t.length===0?F("div",{className:"editable-card-empty",children:F(l,{image:l.PRESENTED_IMAGE_SIMPLE})}):null,F(c,{block:true,hidden:C.hiddenFooterBtn,type:"dashed",icon:F(e,{}),style:{marginTop:t.length?15:0},onClick:function e(){var r=C.addRowDefaultValues==null?void 0:C.addRowDefaultValues();i.add(n({},r))},children:"新增"}),C.contentAfterRender==null?void 0:C.contentAfterRender(i,t.length),d.length?F(a.ErrorList,{errors:[F("div",{style:{color:"#ff4d4f",padding:"5px"},children:d},"0")]}):null]})}})})};export{w as EditableCard};
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-card/editable-card.tsx"],"sourcesContent":["import { PlusOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\n\nimport type { TAny } from '@flatbiz/utils';\nimport { isUndefinedOrNull, toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Empty, Form, FormListFieldData, type FormListOperation } from 'antd';\nimport type { ReactElement } from 'react';\nimport { Fragment, isValidElement, useMemo, useRef } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { CardWrapper } from '../card-wrapper';\nimport { DeleteNode } from '../delete-node';\nimport { EasyForm } from '../easy-form';\nimport { fbaHooks } from '../fba-hooks';\nimport { fbaUtils } from '../fba-utils';\nimport { FormItemHidden } from '../form-item-hidden';\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport { TipsWrapper } from '../tips-wrapper';\nimport './style.less';\nimport type { EditableCardDataIndex, EditableCardOperation, EditableCardProps } from './type';\n\n/**\n * 使用FormList实现可编辑卡片\n * ```\n * 1. EditableCard有两种模式,正常 & 禁用\n * 2. 必须在外部包裹Form组件\n * 3. 行内需要联动逻辑可使用 column.render.operation.setCurrentRowField 方法\n * 4. 可使用DragEditableCard组件实现拖拽排序\n * 5. 设置EditableCard disabled后,通过 LabelValueRender 组件展示数据,可通过 disabledRenderProps 配置布局\n *\n * demo\n * https://fex.qa.tcshuke.com/docs/admin/main/form/grid\n * ```\n */\nexport const EditableCard = (props: EditableCardProps) => {\n const form = Form.useFormInstance();\n const formListName = toArray<string | number>(props.formListName);\n const formListOperationRef = useRef<FormListOperation>();\n const fieldsRef = useRef<FormListFieldData[]>();\n const forceUpdate = hooks.useForceUpdate();\n\n const formListCompleteName = props.formListCompleteName || formListName;\n\n const validateRowFields = hooks.useCallbackRef(\n async (formItemPrevName: Array<string | number>, nameList: EditableCardDataIndex[]) => {\n await form.validateFields(\n nameList.map((item) => [...formItemPrevName, ...toArray<string | number>(item)]),\n );\n },\n );\n const getCurrentRowData = hooks.useCallbackRef((formItemPrevName: Array<string | number>) => {\n return form.getFieldValue(formItemPrevName);\n });\n\n const setCurrentRowField = hooks.useCallbackRef(\n (\n formItemPrevName: string | number,\n dataIndexConfigs: {\n name: EditableCardDataIndex;\n value?: TAny;\n }[],\n ) => {\n fbaUtils.setFormFieldsAndTriggerValuesChange(\n form,\n dataIndexConfigs.map((item) => {\n return {\n name: [...formListCompleteName, formItemPrevName, ...toArray<string | number>(item.name)],\n value: item.value,\n };\n }),\n );\n forceUpdate();\n },\n );\n\n const columns = useMemo(() => {\n return props.columns.map((column) => {\n const title = column.title;\n let titleRender: ReactElement | string | undefined = title;\n if (column.tips) {\n titleRender = (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: column.tips }}>\n {title}\n </TipsWrapper>\n );\n }\n\n let required = column.required;\n\n if (!required && typeof column.formItemProps === 'object' && column.formItemProps.rules?.length) {\n required = !!column.formItemProps.rules.find((item) => !!item['required']);\n }\n\n const dataIndex = toArray<string>(column['dataIndex']);\n\n return {\n render: (index, fieldData: FormListFieldData, operation: FormListOperation) => {\n const record = form.getFieldValue([...formListCompleteName, fieldData.name]);\n const value = form.getFieldValue([...formListCompleteName, fieldData.name, ...dataIndex]);\n if (isUndefinedOrNull(column.render)) {\n return <Fragment>{value}</Fragment>;\n }\n\n const editable =\n typeof column?.editable === 'function' ? column?.editable(record, index) : column?.editable;\n\n const rowFormItemCompleteName = [...formListCompleteName, fieldData.name];\n\n const renderOperationProps: EditableCardOperation = {\n index,\n editable,\n add: operation.add,\n remove: operation.remove,\n move: operation.move,\n rowFormItemName: fieldData.name,\n rowFormItemCompleteName,\n setCurrentRowField: setCurrentRowField.bind(null, fieldData.name),\n validateRowFields: validateRowFields.bind(null, rowFormItemCompleteName),\n getCurrentRowData: getCurrentRowData.bind(null, rowFormItemCompleteName),\n forceUpdate,\n };\n\n if (column.hidden?.(record, index)) {\n return <FormItemHidden name={[fieldData.name, ...dataIndex]} key={fieldData.key} />;\n }\n let formItemProps =\n typeof column.formItemProps === 'function'\n ? column.formItemProps(renderOperationProps)\n : column.formItemProps;\n\n if (!formItemProps?.rules?.length && required) {\n formItemProps = {\n ...formItemProps,\n rules: [{ required: true, message: '' }],\n };\n }\n\n if (editable === true) {\n return (\n <FormItemWrapper\n {...formItemProps}\n name={[fieldData.name, ...dataIndex]}\n label={titleRender}\n span={column.gridNumber}\n key={fieldData.key}\n >\n {column.render?.(renderOperationProps) as React.ReactNode}\n </FormItemWrapper>\n );\n }\n return (\n <FormItemWrapper\n label={titleRender}\n span={column.gridNumber}\n key={fieldData.key}\n {...formItemProps}\n >\n {column.render?.(renderOperationProps)}\n </FormItemWrapper>\n );\n },\n };\n });\n }, [\n props.columns,\n form,\n formListCompleteName,\n setCurrentRowField,\n validateRowFields,\n getCurrentRowData,\n forceUpdate,\n ]);\n\n const className = classNames('editable-card', props.className);\n\n fbaHooks.useEffectCustom(() => {\n if (props.required && !fieldsRef.current?.length) {\n setTimeout(() => {\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: [...formListCompleteName],\n value: [{ ...props.addRowDefaultValues?.() }],\n },\n ]);\n }, 30);\n }\n }, []);\n\n return (\n <div className={className} style={props.style}>\n <Form.List name={formListName} rules={props.rules}>\n {(fields, formListOperation, { errors }) => {\n formListOperationRef.current = formListOperation;\n fieldsRef.current = fields;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.contentBeforeRender?.(formListOperation, fields.length)}\n {fields.map((fieldItem, index) => {\n const title = props.onCustomGroupName ? props.onCustomGroupName(index) : index + 1;\n\n const extraData = {\n index,\n fields,\n fieldItem,\n operation: formListOperation,\n required: props.required,\n key: `${fieldItem.key}`,\n };\n if (props.onCustomWrapper) {\n return props.onCustomWrapper(\n <EasyForm\n nonuseFormWrapper={true}\n key={fieldItem.key}\n {...props.cardEasyFormProps}\n style={{\n padding: 0,\n margin: 0,\n ...props.cardEasyFormProps?.style,\n }}\n >\n {columns.map((column, index) => {\n return column.render(index, fieldItem, formListOperation);\n })}\n </EasyForm>,\n extraData,\n );\n }\n\n const cardExtraRenderResult = props.cardExtraRender?.(extraData);\n\n return (\n <CardWrapper\n key={fieldItem.key}\n className={props.cardClassName}\n title={title}\n size=\"small\"\n style={{\n padding: 0,\n margin: '0 0 15px 0',\n ...props.cardStyle,\n }}\n bodyStyle={{ paddingBottom: 0 }}\n // styles={{ body: { paddingBottom: 0 } }}\n extra={\n isValidElement(cardExtraRenderResult) ? (\n cardExtraRenderResult\n ) : (\n <div\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n }}\n >\n {cardExtraRenderResult?.['before']}\n <DeleteNode\n style={{ color: 'red' }}\n hidden={props.required && fields.length === 1}\n onDelete={() => {\n formListOperation.remove(index);\n }}\n />\n {cardExtraRenderResult?.['after']}\n </div>\n )\n }\n >\n <EasyForm\n nonuseFormWrapper={true}\n key={fieldItem.key}\n {...props.cardEasyFormProps}\n style={{\n padding: 0,\n margin: 0,\n ...props.cardEasyFormProps?.style,\n }}\n >\n {columns.map((column, index) => {\n return column.render(index, fieldItem, formListOperation);\n })}\n </EasyForm>\n </CardWrapper>\n );\n })}\n {fields.length === 0 ? (\n <div className=\"editable-card-empty\">\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />\n </div>\n ) : null}\n <ButtonWrapper\n block\n hidden={props.hiddenFooterBtn}\n type=\"dashed\"\n icon={<PlusOutlined />}\n style={{ marginTop: fields.length ? 15 : 0 }}\n onClick={() => {\n const defaultValues = props.addRowDefaultValues?.();\n formListOperation.add({ ...defaultValues });\n }}\n >\n 新增\n </ButtonWrapper>\n {props.contentAfterRender?.(formListOperation, fields.length)}\n {errors.length ? (\n <Form.ErrorList\n errors={[\n <div style={{ color: '#ff4d4f', padding: '5px' }} key=\"0\">\n {errors}\n </div>,\n ]}\n />\n ) : null}\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["EditableCard","props","form","Form","useFormInstance","formListName","toArray","formListOperationRef","useRef","fieldsRef","forceUpdate","_hooks","useForceUpdate","formListCompleteName","validateRowFields","useCallbackRef","formItemPrevName","nameList","Promise","$return","$error","resolve","validateFields","map","item","concat","then","$await_1","$boundEx","getCurrentRowData","getFieldValue","setCurrentRowField","dataIndexConfigs","fbaUtils","setFormFieldsAndTriggerValuesChange","name","value","columns","useMemo","column","_column$formItemProps","title","titleRender","tips","_jsx","TipsWrapper","tipType","popoverProps","content","children","required","formItemProps","rules","length","find","dataIndex","render","index","fieldData","operation","_formItemProps","record","isUndefinedOrNull","Fragment","editable","rowFormItemCompleteName","renderOperationProps","add","remove","move","rowFormItemName","bind","hidden","FormItemHidden","key","_extends","message","_createElement","FormItemWrapper","label","span","gridNumber","className","_classNames","fbaHooks","useEffectCustom","_fieldsRef$current","current","setTimeout","addRowDefaultValues","style","List","fields","formListOperation","_ref","errors","_jsxs","borderRadius","border","contentBeforeRender","fieldItem","_props$cardEasyFormPr2","onCustomGroupName","extraData","onCustomWrapper","_props$cardEasyFormPr","EasyForm","nonuseFormWrapper","cardEasyFormProps","padding","margin","cardExtraRenderResult","cardExtraRender","CardWrapper","cardClassName","size","cardStyle","bodyStyle","paddingBottom","extra","isValidElement","display","alignItems","gap","DeleteNode","color","onDelete","Empty","image","PRESENTED_IMAGE_SIMPLE","ButtonWrapper","block","hiddenFooterBtn","type","icon","_PlusOutlined","marginTop","onClick","defaultValues","contentAfterRender","ErrorList"],"mappings":"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"}
|
|
@@ -24,5 +24,5 @@ import './../input-wrapper/index.css';
|
|
|
24
24
|
import './../input-text-area-wrapper/index.css';
|
|
25
25
|
import './index.css';
|
|
26
26
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
27
|
-
import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{arrayField2LabelValue as a,toArray as t,isUndefinedOrNull as l}from"@flatbiz/utils";import{Form as o,Checkbox as d,InputNumber as m,Radio as u,Tag as s,Space as c,Button as p,message as f,Table as v}from"antd";import{useMemo as g,useState as b,useEffect as h,Fragment as C,useRef as x,isValidElement as w}from"react";import{ButtonWrapper as j}from"../button-wrapper/index.js";import{TextSymbolWrapper as I}from"../text-symbol-wrapper/index.js";import{TipsWrapper as y}from"../tips-wrapper/index.js";import{isArray as N}from"@dimjs/lang/cjs/is-array";import{FormItemHidden as R}from"../form-item-hidden/index.js";import{extend as k}from"@dimjs/utils/cjs/extend";import{hooks as F}from"@wove/react/cjs/hooks";import{tableCellRender as P}from"../table-cell-render/index.js";import{jsx as L,jsxs as T,Fragment as V}from"react/jsx-runtime";import{DatePickerWrapper as _}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as O}from"../date-range-picker-wrapper/index.js";import{InputWrapper as A}from"../input-wrapper/index.js";import{SelectorWrapper as S}from"../selector-wrapper/index.js";import{SwitchWrapper as K}from"../switch-wrapper/index.js";import{isBoolean as W}from"@dimjs/lang/cjs/is-boolean";import{isNumber as B}from"@dimjs/lang/cjs/is-number";import{isString as D}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as E}from"../input-text-area-wrapper/index.js";import{UploadWrapper as q}from"../upload-wrapper/index.js";import z from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@dimjs/model";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-null";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../tag-list-render/index.js";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var G=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var M=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var m=g((function(){return o.options||[]}),[o.options]);var u=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o.onChange==null?void 0:o.onChange(e)}));if(t){return L(d.Group,r({},o,{value:n.value,onChange:u}))}return L("span",{className:"editable-checkbox-group-view",children:l?l(n.value,m):P.selectorCell(m)(n.value)})};var Y=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-checkbox-group-form-item",a==null?void 0:a.className),children:L(M,r({},i))}))};var H=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-date-picker-wraper-form-item",t==null?void 0:t.className),children:L(_,r({allowClear:true},l.editableComptProps))}))};var J=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=g((function(){var e=N(n.value)?n.value:[];if(t)return undefined;return e.join("~")}),[t,n.value]);if(t){return L(O,r({allowClear:true},o,{value:n.value,onChange:d}))}return L("span",{className:"editable-date-range-picker-view",children:l?l(n.value):m})};var Q=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:L(J,r({},i))}))};var U=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(A,r({allowClear:true},t.editableComptProps))}))};var $=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-input-number-form-item",t==null?void 0:t.className),children:L(m,r({},l.editableComptProps))}))};var X=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=g((function(){return o.options||[]}),[o.options]);var m=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e.target.value);o.onChange==null?void 0:o.onChange(e)}));if(t){return L(u.Group,r({},o,{value:n.value,onChange:m}))}return L("span",{className:"editable-radio-group-view",children:l?l(n.value,d):P.selectorCell(d)(n.value)})};var Z=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-radio-group-form-item",a==null?void 0:a.className),children:L(X,r({},i))}))};var ee=function e(n){var i=n.fieldConfig,t=i.editableConfig,l=i.editable,o=i.render;var d=t.editableComptProps;var m=b([]),u=m[0],c=m[1];var p=b([]),f=p[0],v=p[1];h((function(){if(!l){var e=N(n.value)?n.value:n.value===undefined?[]:[n.value];if(u.length===0){v(e.map((function(e){return{label:e,value:e}})))}var r=[];e.forEach((function(e){var n=u.find((function(n){return n.value===e}));r.push(n?n:{label:String(e),value:e})}));v(r)}}),[l,d.fieldNames,n.value,u]);var g=F.useCallbackRef((function(e){c(a(e||[],d.fieldNames))}));var x=F.useCallbackRef((function(e,r){n.onChange==null?void 0:n.onChange(e);d.onChange==null?void 0:d.onChange(e,r)}));if(l){return L(S,r({},d,{value:n.value,onChange:x,onSelectorListAllChange:g}))}return T(C,{children:[L("div",{style:{display:"none"},children:L(S,r({},d,{onSelectorListAllChange:g}))}),L("span",{className:"editable-selector-view",children:o?o(n.value,u):f.map((function(e,n){return L(s,{color:"geekblue",children:e.label},n)}))})]})};var ne=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:L(ee,r({},i))}))};var re=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=g((function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}}),[o.checkedChildren,o.unCheckedChildren]);if(t){return L(K,r({},o,{value:n.value,onChange:d}))}if(l){return L("span",{className:"editable-switch-wrapper-view",children:l(n.value)})}return L("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==n.value?L(s,{color:"geekblue",style:{marginRight:0},children:m.checkedText}):L(s,{style:{marginRight:0},children:m.unCheckedText})})};var ie=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-switch-wrapper-form-item",a==null?void 0:a.className),children:L(re,r({},i))}))};var ae=function e(n){var r,i;var a=g((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=D(n.value)||B(n.value)||W(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var t=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return L("span",{children:t})};var te=function e(n){return L(o.Item,{noStyle:true,name:n.name,children:L(ae,{name:n.name,fieldConfig:n.fieldConfig})})};var le=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(E,r({},t.editableComptProps))}))};var oe=["children"];var de=function e(n){var a=n.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=i(d,oe);if(o){return L(q,r({listType:"text"},u,{value:n.value,onChange:n.onChange,children:m}))}return L("div",{className:"upload-wrapper-selector-view",children:l?l(n.value):L(q,r({listType:"text"},u,{value:n.value,disabled:true}))})};var me=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:L(de,r({},i))}))};var ue=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable;var l=G(t,n.tableRowIndex);var o=k({},n.fieldConfig,{editable:l});var d={name:n.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return L(U,r({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return L($,r({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return L(le,r({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return L(H,r({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return L(Q,r({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return L(ne,r({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return L(Y,r({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return L(Z,r({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return L(me,r({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return L(ie,r({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:n.name,editable:l,completeName:n.completeName,tableRowIndex:n.tableRowIndex})}return L(te,r({},d))};var se=function e(r){var i=o.useFormInstance();var a=r.formListConfig,t=a.onFormListBeforeRender,l=a.editableConfigList,d=a.onFormListAfterRender,m=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,s=a.deleteOperateRender;return L(o.List,{name:r.name,children:function e(a,o){var p=o.add,f=o.remove;return T(V,{children:[t?t({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null,a.map((function(e,a){var t=l.find((function(e){return G(e.editable,r.tableRowIndex)}));var o=n("editable-inner-formlist-item","editable-inner-formlist-item-"+r.name[1],{"editable-inner-formlist-item_preview":!t});return T("div",{className:o,children:[m==null?void 0:m({add:p,remove:function e(){f(a)},formListItemIndex:a,tableRowIndex:r.tableRowIndex,get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}}),T(c,{children:[l.map((function(n,i){return L(ue,{name:[e.name,n.fieldName],fieldConfig:n,tableRowIndex:r.tableRowIndex,completeName:[].concat(r.completeName,[e.name])},i)})),t?L(ce,{deleteOperateRender:s,remove:function e(){f(a)},index:a}):undefined]}),u==null?void 0:u({add:p,formListItemIndex:a,tableRowIndex:r.tableRowIndex,remove:function e(){f(a)},get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}})]},a)})),d?d({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null]})}})};var ce=function e(n){return L(o.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):L(p,{type:"link",danger:true,icon:L(z,{}),onClick:n.remove,children:"删除"})})};var pe=function e(n){if(n.fieldConfig){if(N(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return L(se,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{var i;return T(C,{children:[L(ue,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),(i=n.hiddenFieldList)==null?void 0:i.map((function(e,r){return L(R,{name:[n.tableRowIndex].concat(t(e.dataIndex))},r)}))]})}}return L(te,{name:n.name})};var fe=["fieldConfig","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align"];var ve=function a(d){var m=o.useFormInstance();var u=x([]);var s=g((function(){var e=d.columns.find((function(e){return e["dataIndex"]===d.uidFieldKey}));return!!e}),[d.columns,d.uidFieldKey]);var c=g((function(){if(!d.columns)return[];return d.columns.map((function(e){var n=e.fieldConfig,a=e.renderMiddleware,l=e.tableChildrenColumnRender,o=e.title,u=e.tipsWrapperProps,c=e.required,p=e.align,f=i(e,fe);var v=w(o)||typeof o==="string";var g;if(u&&v){if(typeof u==="string"){g=L(y,{tipType:"popover",popoverProps:{content:u},children:o})}else{g=L(y,r({},u,{children:o}))}}else{g=o}return r({title:c?L(I,{style:{marginLeft:p==="center"?undefined:10},text:g,position:"before",symbolType:"required"}):g,onCell:function e(){var n;return{valign:((n=d.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},f,{render:function r(i,o,u){if(o["_isChildrenItem"]){if(l){return l(i,o,u)}return i}var c=[].concat(t(d.name),[o.name]);var p=e.dataIndex?[].concat(c,[e.dataIndex]):c;var f=a==null?void 0:a({name:p,tableRowIndex:o.name,operation:o.operation,tableRowName:c,index:u,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}});if(f){return f}var v=typeof n==="function"?n({name:p,tableRowIndex:o.name,tableRowName:c,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}}):n;var g=t(e.hiddenField);if(!s&&u===0){g=g.concat([{dataIndex:d.uidFieldKey}])}return L(pe,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:p,fieldConfig:v,tableRowIndex:o.name,hiddenFieldList:g})}})}))}),[d.columns,d.tableProps,d.name,d.completeName,d.uidFieldKey,s,m]);var p=o.useWatch(d.completeName?d.completeName:d.name,m);h((function(){var e=t(d.name);if(/^\d+$/.test(""+(e==null?void 0:e[0]))&&d.completeName===undefined){void f.error("当前Editable处在FormList内部,必须赋值completeName参数")}}),[d.completeName,d.name]);return L("div",{className:n("editable-table",{"et-empty-show-large":d.emptyShowSize==="large"},d.className),style:d.style,children:L(o.List,{name:d.name,rules:d.rules,children:function n(i,a,s){var f=s.errors;u.current=i;return T("div",{style:{borderRadius:"6px",border:f!=null&&f.length?"1px solid #ff4d4f":"1px solid transparent"},children:[d.onTableBeforeRender?d.onTableBeforeRender(a,i.length):null,L(v,r({scroll:{x:"max-content"},pagination:false,size:"small"},d.tableProps,{rowKey:function e(n){var r;var i=d.completeName||[];var a=t(d.name);var o=i.length?i:a;var u;if(n["_isChildrenItem"]){u=m.getFieldValue([].concat(o,[n["_parentIndex"],"children",n["_index"]]))}else{u=m.getFieldValue([].concat(o,[n["_index"]]))}var s=(r=u)==null?void 0:r[d.uidFieldKey];if(l(s)){console.warn("EditableTable 通过入参uidFieldKey:"+d.uidFieldKey+",未获取到表格行唯一值数据")}return s},dataSource:i.map((function(e,n){var i;var t=p==null||(i=p[e.name])==null?void 0:i.children;if(t){t.forEach((function(e,r){e["_isChildrenItem"]=true;e["_parentIndex"]=n;e["_index"]=r}))}return r({},e,{_index:n,operation:a,children:t})})),columns:c})),d.onTableAfterRender?d.onTableAfterRender(a,i.length):L(j,{type:"dashed",hidden:d.hiddenFooterBtn,onClick:function e(){return a.add(d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues())},block:true,icon:L(e,{}),style:{marginTop:15},children:"新增"}),L(o.ErrorList,{errors:f.length?[L("div",{style:{color:"#ff4d4f",padding:"5px"},children:f},"0")]:undefined})]})}})})};export{ve as EditableTable};
|
|
27
|
+
import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{arrayField2LabelValue as a,toArray as t,isUndefinedOrNull as l}from"@flatbiz/utils";import{Form as o,Checkbox as d,InputNumber as m,Radio as u,Tag as s,Space as c,Button as p,message as f,Table as v}from"antd";import{useMemo as g,useState as b,useEffect as h,Fragment as C,useRef as x,isValidElement as w}from"react";import{ButtonWrapper as j}from"../button-wrapper/index.js";import{TextSymbolWrapper as I}from"../text-symbol-wrapper/index.js";import{TipsWrapper as y}from"../tips-wrapper/index.js";import{isArray as N}from"@dimjs/lang/cjs/is-array";import{FormItemHidden as R}from"../form-item-hidden/index.js";import{extend as k}from"@dimjs/utils/cjs/extend";import{hooks as F}from"@wove/react/cjs/hooks";import{tableCellRender as P}from"../table-cell-render/index.js";import{jsx as L,jsxs as T,Fragment as V}from"react/jsx-runtime";import{DatePickerWrapper as _}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as O}from"../date-range-picker-wrapper/index.js";import{InputWrapper as A}from"../input-wrapper/index.js";import{SelectorWrapper as S}from"../selector-wrapper/index.js";import{SwitchWrapper as K}from"../switch-wrapper/index.js";import{isBoolean as W}from"@dimjs/lang/cjs/is-boolean";import{isNumber as B}from"@dimjs/lang/cjs/is-number";import{isString as D}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as E}from"../input-text-area-wrapper/index.js";import{UploadWrapper as q}from"../upload-wrapper/index.js";import z from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@dimjs/model";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../tag-list-render/index.js";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var G=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var M=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var m=g((function(){return o.options||[]}),[o.options]);var u=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o.onChange==null?void 0:o.onChange(e)}));if(t){return L(d.Group,r({},o,{value:n.value,onChange:u}))}return L("span",{className:"editable-checkbox-group-view",children:l?l(n.value,m):P.selectorCell(m)(n.value)})};var Y=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-checkbox-group-form-item",a==null?void 0:a.className),children:L(M,r({},i))}))};var H=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-date-picker-wraper-form-item",t==null?void 0:t.className),children:L(_,r({allowClear:true},l.editableComptProps))}))};var J=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=g((function(){var e=N(n.value)?n.value:[];if(t)return undefined;return e.join("~")}),[t,n.value]);if(t){return L(O,r({allowClear:true},o,{value:n.value,onChange:d}))}return L("span",{className:"editable-date-range-picker-view",children:l?l(n.value):m})};var Q=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:L(J,r({},i))}))};var U=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(A,r({allowClear:true},t.editableComptProps))}))};var $=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-input-number-form-item",t==null?void 0:t.className),children:L(m,r({},l.editableComptProps))}))};var X=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=g((function(){return o.options||[]}),[o.options]);var m=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e.target.value);o.onChange==null?void 0:o.onChange(e)}));if(t){return L(u.Group,r({},o,{value:n.value,onChange:m}))}return L("span",{className:"editable-radio-group-view",children:l?l(n.value,d):P.selectorCell(d)(n.value)})};var Z=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-radio-group-form-item",a==null?void 0:a.className),children:L(X,r({},i))}))};var ee=function e(n){var i=n.fieldConfig,t=i.editableConfig,l=i.editable,o=i.render;var d=t.editableComptProps;var m=b([]),u=m[0],c=m[1];var p=b([]),f=p[0],v=p[1];h((function(){if(!l){var e=N(n.value)?n.value:n.value===undefined?[]:[n.value];if(u.length===0){v(e.map((function(e){return{label:e,value:e}})))}var r=[];e.forEach((function(e){var n=u.find((function(n){return n.value===e}));r.push(n?n:{label:String(e),value:e})}));v(r)}}),[l,d.fieldNames,n.value,u]);var g=F.useCallbackRef((function(e){c(a(e||[],d.fieldNames))}));var x=F.useCallbackRef((function(e,r){n.onChange==null?void 0:n.onChange(e);d.onChange==null?void 0:d.onChange(e,r)}));if(l){return L(S,r({},d,{value:n.value,onChange:x,onSelectorListAllChange:g}))}return T(C,{children:[L("div",{style:{display:"none"},children:L(S,r({},d,{onSelectorListAllChange:g}))}),L("span",{className:"editable-selector-view",children:o?o(n.value,u):f.map((function(e,n){return L(s,{color:"geekblue",children:e.label},n)}))})]})};var ne=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:L(ee,r({},i))}))};var re=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=g((function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}}),[o.checkedChildren,o.unCheckedChildren]);if(t){return L(K,r({},o,{value:n.value,onChange:d}))}if(l){return L("span",{className:"editable-switch-wrapper-view",children:l(n.value)})}return L("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==n.value?L(s,{color:"geekblue",style:{marginRight:0},children:m.checkedText}):L(s,{style:{marginRight:0},children:m.unCheckedText})})};var ie=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-switch-wrapper-form-item",a==null?void 0:a.className),children:L(re,r({},i))}))};var ae=function e(n){var r,i;var a=g((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=D(n.value)||B(n.value)||W(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var t=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return L("span",{children:t})};var te=function e(n){return L(o.Item,{noStyle:true,name:n.name,children:L(ae,{name:n.name,fieldConfig:n.fieldConfig})})};var le=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(E,r({},t.editableComptProps))}))};var oe=["children"];var de=function e(n){var a=n.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=i(d,oe);if(o){return L(q,r({listType:"text"},u,{value:n.value,onChange:n.onChange,children:m}))}return L("div",{className:"upload-wrapper-selector-view",children:l?l(n.value):L(q,r({listType:"text"},u,{value:n.value,disabled:true}))})};var me=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:L(de,r({},i))}))};var ue=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable;var l=G(t,n.tableRowIndex);var o=k({},n.fieldConfig,{editable:l});var d={name:n.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return L(U,r({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return L($,r({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return L(le,r({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return L(H,r({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return L(Q,r({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return L(ne,r({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return L(Y,r({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return L(Z,r({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return L(me,r({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return L(ie,r({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:n.name,editable:l,completeName:n.completeName,tableRowIndex:n.tableRowIndex})}return L(te,r({},d))};var se=function e(r){var i=o.useFormInstance();var a=r.formListConfig,t=a.onFormListBeforeRender,l=a.editableConfigList,d=a.onFormListAfterRender,m=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,s=a.deleteOperateRender;return L(o.List,{name:r.name,children:function e(a,o){var p=o.add,f=o.remove;return T(V,{children:[t?t({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null,a.map((function(e,a){var t=l.find((function(e){return G(e.editable,r.tableRowIndex)}));var o=n("editable-inner-formlist-item","editable-inner-formlist-item-"+r.name[1],{"editable-inner-formlist-item_preview":!t});return T("div",{className:o,children:[m==null?void 0:m({add:p,remove:function e(){f(a)},formListItemIndex:a,tableRowIndex:r.tableRowIndex,get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}}),T(c,{children:[l.map((function(n,i){return L(ue,{name:[e.name,n.fieldName],fieldConfig:n,tableRowIndex:r.tableRowIndex,completeName:[].concat(r.completeName,[e.name])},i)})),t?L(ce,{deleteOperateRender:s,remove:function e(){f(a)},index:a}):undefined]}),u==null?void 0:u({add:p,formListItemIndex:a,tableRowIndex:r.tableRowIndex,remove:function e(){f(a)},get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}})]},a)})),d?d({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null]})}})};var ce=function e(n){return L(o.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):L(p,{type:"link",danger:true,icon:L(z,{}),onClick:n.remove,children:"删除"})})};var pe=function e(n){if(n.fieldConfig){if(N(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return L(se,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{var i;return T(C,{children:[L(ue,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),(i=n.hiddenFieldList)==null?void 0:i.map((function(e,r){return L(R,{name:[n.tableRowIndex].concat(t(e.dataIndex))},r)}))]})}}return L(te,{name:n.name})};var fe=["fieldConfig","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align"];var ve=function a(d){var m=o.useFormInstance();var u=x([]);var s=g((function(){var e=d.columns.find((function(e){return e["dataIndex"]===d.uidFieldKey}));return!!e}),[d.columns,d.uidFieldKey]);var c=g((function(){if(!d.columns)return[];return d.columns.map((function(e){var n=e.fieldConfig,a=e.renderMiddleware,l=e.tableChildrenColumnRender,o=e.title,u=e.tipsWrapperProps,c=e.required,p=e.align,f=i(e,fe);var v=w(o)||typeof o==="string";var g;if(u&&v){if(typeof u==="string"){g=L(y,{tipType:"popover",popoverProps:{content:u},children:o})}else{g=L(y,r({},u,{children:o}))}}else{g=o}return r({title:c?L(I,{style:{marginLeft:p==="center"?undefined:10},text:g,position:"before",symbolType:"required"}):g,onCell:function e(){var n;return{valign:((n=d.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},f,{render:function r(i,o,u){if(o["_isChildrenItem"]){if(l){return l(i,o,u)}return i}var c=[].concat(t(d.name),[o.name]);var p=e.dataIndex?[].concat(c,[e.dataIndex]):c;var f=a==null?void 0:a({name:p,tableRowIndex:o.name,operation:o.operation,tableRowName:c,index:u,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}});if(f){return f}var v=typeof n==="function"?n({name:p,tableRowIndex:o.name,tableRowName:c,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}}):n;var g=t(e.hiddenField);if(!s&&u===0){g=g.concat([{dataIndex:d.uidFieldKey}])}return L(pe,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:p,fieldConfig:v,tableRowIndex:o.name,hiddenFieldList:g})}})}))}),[d.columns,d.tableProps,d.name,d.completeName,d.uidFieldKey,s,m]);var p=o.useWatch(d.completeName?d.completeName:d.name,m);h((function(){var e=t(d.name);if(/^\d+$/.test(""+(e==null?void 0:e[0]))&&d.completeName===undefined){void f.error("当前Editable处在FormList内部,必须赋值completeName参数")}}),[d.completeName,d.name]);return L("div",{className:n("editable-table",{"et-empty-show-large":d.emptyShowSize==="large"},d.className),style:d.style,children:L(o.List,{name:d.name,rules:d.rules,children:function n(i,a,s){var f=s.errors;u.current=i;return T("div",{style:{borderRadius:"6px",border:f!=null&&f.length?"1px solid #ff4d4f":"1px solid transparent"},children:[d.onTableBeforeRender?d.onTableBeforeRender(a,i.length):null,L(v,r({scroll:{x:"max-content"},pagination:false,size:"small"},d.tableProps,{rowKey:function e(n){var r;var i=d.completeName||[];var a=t(d.name);var o=i.length?i:a;var u;if(n["_isChildrenItem"]){u=m.getFieldValue([].concat(o,[n["_parentIndex"],"children",n["_index"]]))}else{u=m.getFieldValue([].concat(o,[n["_index"]]))}var s=(r=u)==null?void 0:r[d.uidFieldKey];if(l(s)){console.warn("EditableTable 通过入参uidFieldKey:"+d.uidFieldKey+",未获取到表格行唯一值数据")}return s},dataSource:i.map((function(e,n){var i;var t=p==null||(i=p[e.name])==null?void 0:i.children;if(t){t.forEach((function(e,r){e["_isChildrenItem"]=true;e["_parentIndex"]=n;e["_index"]=r}))}return r({},e,{_index:n,operation:a,children:t})})),columns:c})),d.onTableAfterRender?d.onTableAfterRender(a,i.length):L(j,{type:"dashed",hidden:d.hiddenFooterBtn,onClick:function e(){return a.add(d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues())},block:true,icon:L(e,{}),style:{marginTop:15},children:"新增"}),L(o.ErrorList,{errors:f.length?[L("div",{style:{color:"#ff4d4f",padding:"5px"},children:f},"0")]:undefined})]})}})})};export{ve as EditableTable};
|
|
28
28
|
//# sourceMappingURL=index.js.map
|