@flatbiz/antd 4.4.8 → 4.4.10

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.
@@ -8,5 +8,5 @@ import './../button-wrapper/index.css';
8
8
  import './../flex-layout/index.css';
9
9
  import './index.css';
10
10
  /*! @flatjs/forge MIT @flatbiz/antd */
11
- import{_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{get as r}from"@dimjs/utils/cjs/get";import{theme as i,App as e}from"antd";import{C as t}from"../index-7f4ad045.js";import{FbaApp as s}from"../fba-app/index.js";import{fbaHooks as a}from"../fba-hooks/index.js";import{jsx as l}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/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"@flatbiz/utils";import"@wove/react/cjs/hooks";import"react";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-promise";import"ahooks";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../flex-layout/index.js";import"../index-1f45bfd5.js";import"../use-responsive-point-21b8c601.js";var m=function m(d){var n;a.useEffectCustom((function(){var o=document.body.style.cssText;var i={};if(o){var e=/(.+?):\s*(.+?);/g;var t;while(t=e.exec(o)){var s=t[1].trim();var a=t[2];i[s]=a}}if(d.dark){i["--bg-color"]=r(d,"bgColorConfig.dark.bgColor","#1b1a1a");i["--block-bg-color"]=r(d,"bgColorConfig.dark.blockBgColor","#000")}else{i["--bg-color"]=r(d,"bgColorConfig.light.bgColor","#f9f9f9");i["--block-bg-color"]=r(d,"bgColorConfig.light.blockBgColor","#FFF")}var l="";Object.keys(i).forEach((function(o){if(i[o]){l=l+(o+":"+i[o]+";")}}));document.body.style.cssText=l;if(d.dark){document.body.classList.add("dark-theme")}else{document.body.classList.add("light-theme")}}),[d.bgColorConfig,d.dark]);var p=a.useThemeToken();return l(t,o({locale:d.locale,componentSize:"middle",space:{size:"middle"}},d.configProviderProps,{theme:o({},(n=d.configProviderProps)==null?void 0:n.theme,{algorithm:d.dark?i.darkAlgorithm:undefined}),children:l(e,{style:{"--color-primary":p.colorPrimary},className:"bootstrap-app",children:l(s,{children:d.children})})}))};export{m as Bootstrap};
11
+ import{_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{get as r}from"@dimjs/utils/cjs/get";import{theme as i,App as e}from"antd";import{C as t}from"../index-7f4ad045.js";import{FbaApp as s}from"../fba-app/index.js";import{fbaHooks as a}from"../fba-hooks/index.js";import{jsx as l}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/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"@flatbiz/utils";import"@wove/react/cjs/hooks";import"react";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-null";import"@dimjs/lang/cjs/is-promise";import"ahooks";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../flex-layout/index.js";import"../index-1f45bfd5.js";import"../use-responsive-point-21b8c601.js";var m=function m(d){var n;a.useEffectCustom((function(){var o=document.body.style.cssText;var i={};if(o){var e=/(.+?):\s*(.+?);/g;var t;while(t=e.exec(o)){var s=t[1].trim();var a=t[2];i[s]=a}}if(d.dark){i["--bg-color"]=r(d,"bgColorConfig.dark.bgColor","#1b1a1a");i["--block-bg-color"]=r(d,"bgColorConfig.dark.blockBgColor","#000")}else{i["--bg-color"]=r(d,"bgColorConfig.light.bgColor","#f9f9f9");i["--block-bg-color"]=r(d,"bgColorConfig.light.blockBgColor","#FFF")}var l="";Object.keys(i).forEach((function(o){if(i[o]){l=l+(o+":"+i[o]+";")}}));document.body.style.cssText=l;if(d.dark){document.body.classList.add("dark-theme")}else{document.body.classList.add("light-theme")}}),[d.bgColorConfig,d.dark]);var p=a.useThemeToken();return l(t,o({locale:d.locale,componentSize:"middle",space:{size:"middle"}},d.configProviderProps,{theme:o({},(n=d.configProviderProps)==null?void 0:n.theme,{algorithm:d.dark?i.darkAlgorithm:undefined}),children:l(e,{style:{"--color-primary":p.colorPrimary},className:"bootstrap-app",children:l(s,{children:d.children})})}))};export{m as Bootstrap};
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/bootstrap/bootstrap.tsx"],"sourcesContent":["import { get } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { App, theme } from 'antd';\nimport { CSSProperties, ReactNode } from 'react';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { FbaApp } from '../fba-app';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type BootstrapProps = {\n dark?: boolean;\n children: ReactNode;\n configProviderProps?: ConfigProviderWrapperProps;\n /** @default zhCN */\n locale?: 'en' | 'zh-cn';\n /**\n * 背景颜色配置\n * ```\n * 默认值:\n * dark: { bgColor: '#1b1a1a', blockBgColor: '#000' }\n * light: { bgColor: '#f9f9f9', blockBgColor: '#FFF' }\n * ```\n */\n bgColorConfig?: {\n dark?: {\n bgColor?: string;\n blockBgColor?: string;\n };\n light?: {\n bgColor?: string;\n blockBgColor?: string;\n };\n };\n};\n/**\n * 如果当前项目入口不使用@flatbiz/pro-layout,必须使用 Bootstrap 组件包装\n * ```\n * Bootstrap 内部\n * 1. 封装 antd App组件\n * 2. 封装 @flatbiz/antd FbaApp组件\n * 3. 适配 light/dark模式\n * 4. 封装 antd ConfigProvider 可配置主题\n * ```\n */\nexport const Bootstrap = (props: BootstrapProps) => {\n fbaHooks.useEffectCustom(() => {\n const bodyStyle = document.body.style.cssText;\n const keyValuePairs = {};\n if (bodyStyle) {\n const regex = /(.+?):\\s*(.+?);/g;\n\n let match;\n while ((match = regex.exec(bodyStyle))) {\n const key = match[1].trim();\n const value = match[2];\n keyValuePairs[key] = value;\n }\n }\n if (props.dark) {\n keyValuePairs['--bg-color'] = get(props, 'bgColorConfig.dark.bgColor', '#1b1a1a');\n keyValuePairs['--block-bg-color'] = get(props, 'bgColorConfig.dark.blockBgColor', '#000');\n } else {\n keyValuePairs['--bg-color'] = get(props, 'bgColorConfig.light.bgColor', '#f9f9f9');\n keyValuePairs['--block-bg-color'] = get(props, 'bgColorConfig.light.blockBgColor', '#FFF');\n }\n let varStyleText = '';\n Object.keys(keyValuePairs).forEach((key) => {\n if (keyValuePairs[key]) {\n varStyleText = varStyleText + `${key}:${keyValuePairs[key]};`;\n }\n });\n document.body.style.cssText = varStyleText;\n\n if (props.dark) {\n document.body.classList.add('dark-theme');\n } else {\n document.body.classList.add('light-theme');\n }\n }, [props.bgColorConfig, props.dark]);\n\n const innerTheme = fbaHooks.useThemeToken();\n\n return (\n <ConfigProviderWrapper\n locale={props.locale as TAny}\n componentSize={'middle'}\n space={{ size: 'middle' }}\n {...props.configProviderProps}\n theme={{\n ...props.configProviderProps?.theme,\n algorithm: props.dark ? theme.darkAlgorithm : undefined,\n }}\n >\n <App style={{ '--color-primary': innerTheme.colorPrimary } as CSSProperties} className=\"bootstrap-app\">\n <FbaApp>{props.children}</FbaApp>\n </App>\n </ConfigProviderWrapper>\n );\n};\n"],"names":["Bootstrap","props","_props$configProvider","fbaHooks","useEffectCustom","bodyStyle","document","body","style","cssText","keyValuePairs","regex","match","exec","key","trim","value","dark","_get","varStyleText","Object","keys","forEach","classList","add","bgColorConfig","innerTheme","useThemeToken","_jsx","ConfigProviderWrapper","_extends","locale","componentSize","space","size","configProviderProps","theme","algorithm","darkAlgorithm","undefined","children","App","colorPrimary","className","FbaApp"],"mappings":";mlCA4CaA,EAAY,SAAZA,EAAaC,GAA0B,IAAAC,EAClDC,EAASC,iBAAgB,WACvB,IAAMC,EAAYC,SAASC,KAAKC,MAAMC,QACtC,IAAMC,EAAgB,CAAA,EACtB,GAAIL,EAAW,CACb,IAAMM,EAAQ,mBAEd,IAAIC,EACJ,MAAQA,EAAQD,EAAME,KAAKR,GAAa,CACtC,IAAMS,EAAMF,EAAM,GAAGG,OACrB,IAAMC,EAAQJ,EAAM,GACpBF,EAAcI,GAAOE,CACvB,CACF,CACA,GAAIf,EAAMgB,KAAM,CACdP,EAAc,cAAgBQ,EAAIjB,EAAO,6BAA8B,WACvES,EAAc,oBAAsBQ,EAAIjB,EAAO,kCAAmC,OACpF,KAAO,CACLS,EAAc,cAAgBQ,EAAIjB,EAAO,8BAA+B,WACxES,EAAc,oBAAsBQ,EAAIjB,EAAO,mCAAoC,OACrF,CACA,IAAIkB,EAAe,GACnBC,OAAOC,KAAKX,GAAeY,SAAQ,SAACR,GAClC,GAAIJ,EAAcI,GAAM,CACtBK,EAAeA,GAAkBL,MAAOJ,EAAcI,GAAO,IAC/D,CACF,IACAR,SAASC,KAAKC,MAAMC,QAAUU,EAE9B,GAAIlB,EAAMgB,KAAM,CACdX,SAASC,KAAKgB,UAAUC,IAAI,aAC9B,KAAO,CACLlB,SAASC,KAAKgB,UAAUC,IAAI,cAC9B,CACD,GAAE,CAACvB,EAAMwB,cAAexB,EAAMgB,OAE/B,IAAMS,EAAavB,EAASwB,gBAE5B,OACEC,EAACC,EAAqBC,EAAA,CACpBC,OAAQ9B,EAAM8B,OACdC,cAAe,SACfC,MAAO,CAAEC,KAAM,WACXjC,EAAMkC,oBAAmB,CAC7BC,MAAKN,EAAA,IAAA5B,EACAD,EAAMkC,sBAAmB,UAAA,EAAzBjC,EAA2BkC,MAAK,CACnCC,UAAWpC,EAAMgB,KAAOmB,EAAME,cAAgBC,YAC9CC,SAEFZ,EAACa,EAAG,CAACjC,MAAO,CAAE,kBAAmBkB,EAAWgB,cAAiCC,UAAU,gBAAeH,SACpGZ,EAACgB,EAAM,CAAAJ,SAAEvC,EAAMuC,eAIvB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/bootstrap/bootstrap.tsx"],"sourcesContent":["import { get } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { App, theme } from 'antd';\nimport { CSSProperties, ReactNode } from 'react';\nimport { ConfigProviderWrapper, ConfigProviderWrapperProps } from '../config-provider-wrapper';\nimport { FbaApp } from '../fba-app';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type BootstrapProps = {\n dark?: boolean;\n children: ReactNode;\n configProviderProps?: ConfigProviderWrapperProps;\n /** @default zhCN */\n locale?: 'en' | 'zh-cn';\n /**\n * 背景颜色配置\n * ```\n * 默认值:\n * dark: { bgColor: '#1b1a1a', blockBgColor: '#000' }\n * light: { bgColor: '#f9f9f9', blockBgColor: '#FFF' }\n * ```\n */\n bgColorConfig?: {\n dark?: {\n bgColor?: string;\n blockBgColor?: string;\n };\n light?: {\n bgColor?: string;\n blockBgColor?: string;\n };\n };\n};\n/**\n * 如果当前项目入口不使用@flatbiz/pro-layout,必须使用 Bootstrap 组件包装\n * ```\n * Bootstrap 内部\n * 1. 封装 antd App组件\n * 2. 封装 @flatbiz/antd FbaApp组件\n * 3. 适配 light/dark模式\n * 4. 封装 antd ConfigProvider 可配置主题\n * ```\n */\nexport const Bootstrap = (props: BootstrapProps) => {\n fbaHooks.useEffectCustom(() => {\n const bodyStyle = document.body.style.cssText;\n const keyValuePairs = {};\n if (bodyStyle) {\n const regex = /(.+?):\\s*(.+?);/g;\n\n let match;\n while ((match = regex.exec(bodyStyle))) {\n const key = match[1].trim();\n const value = match[2];\n keyValuePairs[key] = value;\n }\n }\n if (props.dark) {\n keyValuePairs['--bg-color'] = get(props, 'bgColorConfig.dark.bgColor', '#1b1a1a');\n keyValuePairs['--block-bg-color'] = get(props, 'bgColorConfig.dark.blockBgColor', '#000');\n } else {\n keyValuePairs['--bg-color'] = get(props, 'bgColorConfig.light.bgColor', '#f9f9f9');\n keyValuePairs['--block-bg-color'] = get(props, 'bgColorConfig.light.blockBgColor', '#FFF');\n }\n let varStyleText = '';\n Object.keys(keyValuePairs).forEach((key) => {\n if (keyValuePairs[key]) {\n varStyleText = varStyleText + `${key}:${keyValuePairs[key]};`;\n }\n });\n document.body.style.cssText = varStyleText;\n\n if (props.dark) {\n document.body.classList.add('dark-theme');\n } else {\n document.body.classList.add('light-theme');\n }\n }, [props.bgColorConfig, props.dark]);\n\n const innerTheme = fbaHooks.useThemeToken();\n\n return (\n <ConfigProviderWrapper\n locale={props.locale as TAny}\n componentSize={'middle'}\n space={{ size: 'middle' }}\n {...props.configProviderProps}\n theme={{\n ...props.configProviderProps?.theme,\n algorithm: props.dark ? theme.darkAlgorithm : undefined,\n }}\n >\n <App style={{ '--color-primary': innerTheme.colorPrimary } as CSSProperties} className=\"bootstrap-app\">\n <FbaApp>{props.children}</FbaApp>\n </App>\n </ConfigProviderWrapper>\n );\n};\n"],"names":["Bootstrap","props","_props$configProvider","fbaHooks","useEffectCustom","bodyStyle","document","body","style","cssText","keyValuePairs","regex","match","exec","key","trim","value","dark","_get","varStyleText","Object","keys","forEach","classList","add","bgColorConfig","innerTheme","useThemeToken","_jsx","ConfigProviderWrapper","_extends","locale","componentSize","space","size","configProviderProps","theme","algorithm","darkAlgorithm","undefined","children","App","colorPrimary","className","FbaApp"],"mappings":";mnCA4CaA,EAAY,SAAZA,EAAaC,GAA0B,IAAAC,EAClDC,EAASC,iBAAgB,WACvB,IAAMC,EAAYC,SAASC,KAAKC,MAAMC,QACtC,IAAMC,EAAgB,CAAA,EACtB,GAAIL,EAAW,CACb,IAAMM,EAAQ,mBAEd,IAAIC,EACJ,MAAQA,EAAQD,EAAME,KAAKR,GAAa,CACtC,IAAMS,EAAMF,EAAM,GAAGG,OACrB,IAAMC,EAAQJ,EAAM,GACpBF,EAAcI,GAAOE,CACvB,CACF,CACA,GAAIf,EAAMgB,KAAM,CACdP,EAAc,cAAgBQ,EAAIjB,EAAO,6BAA8B,WACvES,EAAc,oBAAsBQ,EAAIjB,EAAO,kCAAmC,OACpF,KAAO,CACLS,EAAc,cAAgBQ,EAAIjB,EAAO,8BAA+B,WACxES,EAAc,oBAAsBQ,EAAIjB,EAAO,mCAAoC,OACrF,CACA,IAAIkB,EAAe,GACnBC,OAAOC,KAAKX,GAAeY,SAAQ,SAACR,GAClC,GAAIJ,EAAcI,GAAM,CACtBK,EAAeA,GAAkBL,MAAOJ,EAAcI,GAAO,IAC/D,CACF,IACAR,SAASC,KAAKC,MAAMC,QAAUU,EAE9B,GAAIlB,EAAMgB,KAAM,CACdX,SAASC,KAAKgB,UAAUC,IAAI,aAC9B,KAAO,CACLlB,SAASC,KAAKgB,UAAUC,IAAI,cAC9B,CACD,GAAE,CAACvB,EAAMwB,cAAexB,EAAMgB,OAE/B,IAAMS,EAAavB,EAASwB,gBAE5B,OACEC,EAACC,EAAqBC,EAAA,CACpBC,OAAQ9B,EAAM8B,OACdC,cAAe,SACfC,MAAO,CAAEC,KAAM,WACXjC,EAAMkC,oBAAmB,CAC7BC,MAAKN,EAAA,IAAA5B,EACAD,EAAMkC,sBAAmB,UAAA,EAAzBjC,EAA2BkC,MAAK,CACnCC,UAAWpC,EAAMgB,KAAOmB,EAAME,cAAgBC,YAC9CC,SAEFZ,EAACa,EAAG,CAACjC,MAAO,CAAE,kBAAmBkB,EAAWgB,cAAiCC,UAAU,gBAAeH,SACpGZ,EAACgB,EAAM,CAAAJ,SAAEvC,EAAMuC,eAIvB"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as e}from"@dimjs/utils/cjs/class-names";import{createContext as a,useContext as t,useMemo as i,useRef as n}from"react";import{jsx as l}from"react/jsx-runtime";import{isNumber as o}from"@dimjs/lang/cjs/is-number";import{useSize as s}from"ahooks";var c={xs:24,sm:12,md:12,lg:8,xl:8,xxl:6};var d={xs:8,sm:16,md:16,lg:24,xl:24,xxl:32};var p={top:"flex-start",middle:"center",bottom:"flex-end",stretch:"stretch"};var u={start:"flex-start",end:"flex-end",center:"center","space-around":"space-around","space-between":"space-between","space-evenly":"space-evenly"};var v={boxBreakpoint:"lg",defaultGrid:c,horizontalGap:10,verticalGap:10};var f=a(v);var m=function a(n){var o=n.children,s=n.className,c=n.style;var d=t(f),p=d.defaultGrid,u=d.horizontalGap,v=d.boxBreakpoint;var m=i((function(){return n.span||n[v||"lg"]||(p==null?void 0:p[v||"lg"])||8}),[n,v,p]);return l("div",{className:e(s,"box-grad-col"),style:r({},c,{flex:"0 0 "+m/24*100+"%",maxWidth:m/24*100+"%",padding:"0 "+u/2+"px"}),children:o})};var x=function r(e){var a=s(e)||{},t=a.width;var n=i((function(){var r=t||(e==null?void 0:e.clientWidth);if(!r){return"lg"}if(r>=1600){return"xxl"}else if(r>=1200){return"xl"}else if(r>=992){return"lg"}else if(r>=768){return"md"}else if(r>=576){return"sm"}else{return"xs"}}),[t]);return{boxBreakpoint:n,isInit:!!t}};var g=function e(a,t){if(a===void 0){a=d}return i((function(){var e;var i;var n=function e(a){if(typeof a==="number"){return a}if(typeof a==="object"){return r({},d,a)[t]}};if(Array.isArray(a)){var l=a,s=l[0],c=l[1];e=n(s);i=n(c)}else{e=n(a);i=v.verticalGap}return{horizontalGap:o(e)?e:v.horizontalGap,verticalGap:o(i)?i:v.verticalGap}}),[a,t])};var h=function a(t){var i=t.defaultGrid,o=i===void 0?c:i,s=t.children,d=t.className,m=t.style,h=t.gutter,G=t.align,b=t.justify;var y=n(null);var j=x(y),k=j.boxBreakpoint,w=j.isInit;var z=g(h,k),B=z.horizontalGap,N=z.verticalGap;return l(f.Provider,{value:r({},v,{defaultGrid:r({},c,o),boxBreakpoint:k,horizontalGap:B,verticalGap:N}),children:l("div",{className:e("box-grad-root",d),ref:y,style:m,children:l("div",{className:"box-grad-row",style:{alignItems:G?p[G]:"normal",justifyContent:b?u[b]:"normal",marginLeft:"-"+B/2+"px",marginRight:"-"+B/2+"px",rowGap:N+"px"},children:w&&s})})})};var G={Row:h,Col:m};export{G as BoxGrid};
4
+ import{_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as e}from"@dimjs/utils/cjs/class-names";import{createContext as a,useContext as t,useMemo as n,useRef as i,useEffect as l}from"react";import{jsx as o}from"react/jsx-runtime";import{isNumber as s}from"@dimjs/lang/cjs/is-number";import{useSize as u}from"ahooks";var c={xs:24,sm:12,md:12,lg:8,xl:8,xxl:6};var d={xs:8,sm:16,md:16,lg:24,xl:24,xxl:32};var v={top:"flex-start",middle:"center",bottom:"flex-end",stretch:"stretch"};var p={start:"flex-start",end:"flex-end",center:"center","space-around":"space-around","space-between":"space-between","space-evenly":"space-evenly"};var f={boxBreakpoint:"lg",defaultGrid:c,horizontalGap:10,verticalGap:10};var m=a(f);var x=function a(i){var l=i.children,s=i.className,u=i.style;var c=t(m),d=c.defaultGrid,v=c.horizontalGap,p=c.boxBreakpoint;var f=n((function(){return i.span||i[p||"lg"]||(d==null?void 0:d[p||"lg"])||8}),[i,p,d]);return o("div",{className:e(s,"box-grad-col"),style:r({},u,{flex:"0 0 "+f/24*100+"%",maxWidth:f/24*100+"%",padding:"0 "+v/2+"px"}),children:l})};x["domTypeName"]="BoxGridCol";var g=function r(e){var a=u(e)||{},t=a.width;var i=n((function(){var r=t||(e==null?void 0:e.clientWidth);if(!r){return"lg"}if(r>=1600){return"xxl"}else if(r>=1200){return"xl"}else if(r>=992){return"lg"}else if(r>=768){return"md"}else if(r>=576){return"sm"}else{return"xs"}}),[t]);return{boxBreakpoint:i,isInit:!!t}};var h=function e(a,t){if(a===void 0){a=d}return n((function(){var e;var n;var i=function e(a){if(typeof a==="number"){return a}if(typeof a==="object"){return r({},d,a)[t]}};if(Array.isArray(a)){var l=a,o=l[0],u=l[1];e=i(o);n=i(u)}else{e=i(a);n=f.verticalGap}return{horizontalGap:s(e)?e:f.horizontalGap,verticalGap:s(n)?n:f.verticalGap}}),[a,t])};var G=function a(t){var n=t.defaultGrid,s=n===void 0?c:n,u=t.children,d=t.className,x=t.style,G=t.gutter,b=t.align,y=t.justify,B=t.onBoxBreakpointChange;var j=i(null);var k=g(j),w=k.boxBreakpoint,z=k.isInit;var N=h(G,w),C=N.horizontalGap,I=N.verticalGap;l((function(){B==null?void 0:B(w)}),[w]);return o(m.Provider,{value:r({},f,{defaultGrid:r({},c,s),boxBreakpoint:w,horizontalGap:C,verticalGap:I}),children:o("div",{className:e("box-grad-root",d),ref:j,style:x,children:o("div",{className:"box-grad-row",style:{alignItems:b?v[b]:"normal",justifyContent:y?p[y]:"normal",marginLeft:"-"+C/2+"px",marginRight:"-"+C/2+"px",rowGap:I+"px"},children:z&&u})})})};var b=function r(e){var a=function r(a){var t=Math.ceil(e*24/a);return[1,2,3,4,6,8,12,24].find((function(r){return r>=t}))||24};return{xxl:a(1600),xl:a(1200),lg:a(992),md:a(768),sm:a(576),xs:a(200)}};var y={Row:G,Col:x,getGridMapByRange:b};export{y as BoxGrid,g as useBoxBreakpoint};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/box-grid/constant.tsx","@flatbiz/antd/src/box-grid/ctx.ts","@flatbiz/antd/src/box-grid/col.tsx","@flatbiz/antd/src/box-grid/hooks.ts","@flatbiz/antd/src/box-grid/row.tsx","@flatbiz/antd/src/box-grid/index.ts"],"sourcesContent":["export const PresetDefaultGrid = {\n xs: 24,\n sm: 12,\n md: 12,\n lg: 8,\n xl: 8,\n xxl: 6,\n};\n\nexport const DefaultGutter = { xs: 8, sm: 16, md: 16, lg: 24, xl: 24, xxl: 32 };\n\nexport const RowAligns = ['top', 'middle', 'bottom', 'stretch'] as const;\nexport const RowJustify = [\n 'start',\n 'end',\n 'center',\n 'space-around',\n 'space-between',\n 'space-evenly',\n] as const;\n\nexport const alignPropsMap: Record<(typeof RowAligns)[number], string> = {\n top: 'flex-start',\n middle: 'center',\n bottom: 'flex-end',\n stretch: 'stretch',\n};\n\nexport const justifyPropsMap: Record<(typeof RowJustify)[number], string> = {\n start: 'flex-start',\n end: 'flex-end',\n center: 'center',\n 'space-around': 'space-around',\n 'space-between': 'space-between',\n 'space-evenly': 'space-evenly',\n};\n","import { createContext } from 'react';\nimport { PresetDefaultGrid } from './constant';\nimport { type TBoxBreakpoint } from './type';\n\nexport type BoxGridProviderContextType = {\n horizontalGap: number;\n verticalGap: number;\n boxBreakpoint: TBoxBreakpoint;\n defaultGrid: {\n xs: number;\n sm: number;\n md: number;\n lg: number;\n xl: number;\n xxl: number;\n };\n};\n\nexport const defaultCtx: BoxGridProviderContextType = {\n boxBreakpoint: 'lg',\n defaultGrid: PresetDefaultGrid,\n horizontalGap: 10,\n verticalGap: 10,\n};\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const BoxGridProviderCtx = createContext<BoxGridProviderContextType>(defaultCtx);\n","import { classNames } from '@dimjs/utils';\nimport { useContext, useMemo, type FC } from 'react';\nimport { BoxGridProviderCtx } from './ctx';\nimport { type ICommonReact } from './type';\n\nexport type BoxColProps = {\n /** 栅格占位格数,固定分数,为0相当于隐藏 */\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n};\n\nexport const Col: FC<BoxColProps & ICommonReact> = (props) => {\n const { children, className, style } = props;\n const { defaultGrid, horizontalGap, boxBreakpoint } = useContext(BoxGridProviderCtx);\n\n const span = useMemo(() => {\n return props.span || props[boxBreakpoint || 'lg'] || defaultGrid?.[boxBreakpoint || 'lg'] || 8;\n }, [props, boxBreakpoint, defaultGrid]);\n\n return (\n <div\n className={classNames(className, 'box-grad-col')}\n style={{\n ...style,\n flex: `0 0 ${(span / 24) * 100}%`,\n maxWidth: `${(span / 24) * 100}%`,\n padding: `0 ${horizontalGap / 2}px`,\n }}\n >\n {children}\n </div>\n );\n};\n","import { isNumber } from '@dimjs/lang';\nimport { useSize } from 'ahooks';\nimport { useMemo } from 'react';\nimport { DefaultGutter } from './constant';\nimport { defaultCtx } from './ctx';\nimport { type GutterParams, type TBoxBreakpoint } from './type';\n\n/**\n * 监听盒子大小变化,返回当前的断点\n * @param dom\n * @returns\n */\nexport const useBoxBreakpoint = (dom) => {\n const { width } = useSize(dom) || {};\n\n const boxBreakpoint = useMemo<TBoxBreakpoint>(() => {\n const w = width || dom?.clientWidth;\n if (!w) {\n return 'lg';\n }\n\n if (w >= 1600) {\n return 'xxl';\n } else if (w >= 1200) {\n return 'xl';\n } else if (w >= 992) {\n return 'lg';\n } else if (w >= 768) {\n return 'md';\n } else if (w >= 576) {\n return 'sm';\n } else {\n return 'xs';\n }\n }, [width]);\n\n return {\n boxBreakpoint,\n isInit: !!width,\n };\n};\n\n/**\n * 处理间距\n * @param gutter\n * @param boxBreakpoint\n * @returns\n */\nexport const useGutter = (gutter: GutterParams = DefaultGutter, boxBreakpoint: TBoxBreakpoint) => {\n return useMemo(() => {\n let horizontalGap: number;\n let verticalGap: number;\n\n const getCommonGutter = (gutter) => {\n if (typeof gutter === 'number') {\n return gutter;\n }\n if (typeof gutter === 'object') {\n return { ...DefaultGutter, ...gutter }[boxBreakpoint];\n }\n };\n\n if (Array.isArray(gutter)) {\n const [h, v] = gutter;\n horizontalGap = getCommonGutter(h);\n verticalGap = getCommonGutter(v);\n } else {\n horizontalGap = getCommonGutter(gutter);\n verticalGap = defaultCtx.verticalGap;\n }\n\n return {\n horizontalGap: isNumber(horizontalGap) ? horizontalGap : defaultCtx.horizontalGap,\n verticalGap: isNumber(verticalGap) ? verticalGap : defaultCtx.verticalGap,\n };\n }, [gutter, boxBreakpoint]);\n};\n","import { classNames } from '@dimjs/utils';\nimport { useRef, type FC } from 'react';\nimport { alignPropsMap, justifyPropsMap, PresetDefaultGrid } from './constant';\nimport { BoxGridProviderCtx, defaultCtx } from './ctx';\nimport { useBoxBreakpoint, useGutter } from './hooks';\nimport { type GutterParams, type ICommonReact } from './type';\n\nexport interface BoxRowProps {\n /**\n * 默认的栅格配置\n */\n defaultGrid?: Partial<typeof PresetDefaultGrid>;\n /** 间距 */\n gutter?: GutterParams;\n /** flex 布局的垂直对齐方式 */\n align?: 'top' | 'middle' | 'bottom' | 'stretch';\n /** flex 布局的水平排列方式 */\n justify?: 'start' | 'end' | 'center' | 'space-around' | 'space-between' | 'space-evenly';\n}\n\nexport const Row: FC<BoxRowProps & ICommonReact> = (props) => {\n const { defaultGrid = PresetDefaultGrid, children, className, style, gutter, align, justify } = props;\n const domRef = useRef<HTMLDivElement>(null);\n const { boxBreakpoint, isInit } = useBoxBreakpoint(domRef);\n const { horizontalGap, verticalGap } = useGutter(gutter, boxBreakpoint);\n\n return (\n <BoxGridProviderCtx.Provider\n value={{\n ...defaultCtx,\n defaultGrid: {\n ...PresetDefaultGrid,\n ...defaultGrid,\n },\n boxBreakpoint,\n horizontalGap,\n verticalGap,\n }}\n >\n <div className={classNames('box-grad-root', className)} ref={domRef} style={style}>\n <div\n className=\"box-grad-row\"\n style={{\n alignItems: align ? alignPropsMap[align] : 'normal',\n justifyContent: justify ? justifyPropsMap[justify] : 'normal',\n marginLeft: `-${horizontalGap / 2}px`,\n marginRight: `-${horizontalGap / 2}px`,\n rowGap: `${verticalGap}px`,\n }}\n >\n {/* 是否初始化,计算尺寸初始会闪一下,这里初始时不渲染 */}\n {isInit && children}\n </div>\n </div>\n </BoxGridProviderCtx.Provider>\n );\n};\n","import { Col } from './col';\nimport './index.less';\nimport { Row } from './row';\n\nexport const BoxGrid = {\n Row,\n Col,\n};\n"],"names":["PresetDefaultGrid","xs","sm","md","lg","xl","xxl","DefaultGutter","alignPropsMap","top","middle","bottom","stretch","justifyPropsMap","start","end","center","defaultCtx","boxBreakpoint","defaultGrid","horizontalGap","verticalGap","BoxGridProviderCtx","createContext","Col","props","children","className","style","_useContext","useContext","span","useMemo","_jsx","_classNames","_extends","flex","maxWidth","padding","useBoxBreakpoint","dom","_ref","useSize","width","w","clientWidth","isInit","useGutter","gutter","getCommonGutter","Array","isArray","_gutter","h","v","_isNumber","Row","_props$defaultGrid","align","justify","domRef","useRef","_useBoxBreakpoint","_useGutter","Provider","value","ref","alignItems","justifyContent","marginLeft","marginRight","rowGap","BoxGrid"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/box-grid/constant.tsx","@flatbiz/antd/src/box-grid/ctx.ts","@flatbiz/antd/src/box-grid/col.tsx","@flatbiz/antd/src/box-grid/hooks.ts","@flatbiz/antd/src/box-grid/row.tsx","@flatbiz/antd/src/box-grid/utils.ts","@flatbiz/antd/src/box-grid/index.ts"],"sourcesContent":["export const PresetDefaultGrid = {\n xs: 24,\n sm: 12,\n md: 12,\n lg: 8,\n xl: 8,\n xxl: 6,\n};\n\nexport const DefaultGutter = { xs: 8, sm: 16, md: 16, lg: 24, xl: 24, xxl: 32 };\n\nexport const RowAligns = ['top', 'middle', 'bottom', 'stretch'] as const;\nexport const RowJustify = [\n 'start',\n 'end',\n 'center',\n 'space-around',\n 'space-between',\n 'space-evenly',\n] as const;\n\nexport const alignPropsMap: Record<(typeof RowAligns)[number], string> = {\n top: 'flex-start',\n middle: 'center',\n bottom: 'flex-end',\n stretch: 'stretch',\n};\n\nexport const justifyPropsMap: Record<(typeof RowJustify)[number], string> = {\n start: 'flex-start',\n end: 'flex-end',\n center: 'center',\n 'space-around': 'space-around',\n 'space-between': 'space-between',\n 'space-evenly': 'space-evenly',\n};\n","import { createContext } from 'react';\nimport { PresetDefaultGrid } from './constant';\nimport { type TBoxBreakpoint } from './type';\n\nexport type BoxGridProviderContextType = {\n horizontalGap: number;\n verticalGap: number;\n boxBreakpoint: TBoxBreakpoint;\n defaultGrid: {\n xs: number;\n sm: number;\n md: number;\n lg: number;\n xl: number;\n xxl: number;\n };\n};\n\nexport const defaultCtx: BoxGridProviderContextType = {\n boxBreakpoint: 'lg',\n defaultGrid: PresetDefaultGrid,\n horizontalGap: 10,\n verticalGap: 10,\n};\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const BoxGridProviderCtx = createContext<BoxGridProviderContextType>(defaultCtx);\n","import { classNames } from '@dimjs/utils';\nimport { useContext, useMemo, type FC } from 'react';\nimport { BoxGridProviderCtx } from './ctx';\nimport { type ICommonReact } from './type';\n\nexport type BoxColProps = {\n /**\n * 栅格占位格数\n * span 优先级最高:配置了span后,其他的响应式配置将失效;\n * 范围 0 ~ 24\n * 为 0 相当于隐藏\n * 为 24 相当于独占一行\n */\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n};\n\nexport const Col: FC<BoxColProps & ICommonReact> = (props) => {\n const { children, className, style } = props;\n const { defaultGrid, horizontalGap, boxBreakpoint } = useContext(BoxGridProviderCtx);\n\n const span = useMemo(() => {\n return props.span || props[boxBreakpoint || 'lg'] || defaultGrid?.[boxBreakpoint || 'lg'] || 8;\n }, [props, boxBreakpoint, defaultGrid]);\n\n return (\n <div\n className={classNames(className, 'box-grad-col')}\n style={{\n ...style,\n flex: `0 0 ${(span / 24) * 100}%`,\n maxWidth: `${(span / 24) * 100}%`,\n padding: `0 ${horizontalGap / 2}px`,\n }}\n >\n {children}\n </div>\n );\n};\n\nCol['domTypeName'] = 'BoxGridCol';\n","import { isNumber } from '@dimjs/lang';\nimport { useSize } from 'ahooks';\nimport { useMemo } from 'react';\nimport { DefaultGutter } from './constant';\nimport { defaultCtx } from './ctx';\nimport { type GutterParams, type TBoxBreakpoint } from './type';\n\n/**\n * 监听盒子大小变化,返回当前的断点\n * @param dom\n * @returns\n */\nexport const useBoxBreakpoint = (dom) => {\n const { width } = useSize(dom) || {};\n\n const boxBreakpoint = useMemo<TBoxBreakpoint>(() => {\n const w = width || dom?.clientWidth;\n if (!w) {\n return 'lg';\n }\n\n if (w >= 1600) {\n return 'xxl';\n } else if (w >= 1200) {\n return 'xl';\n } else if (w >= 992) {\n return 'lg';\n } else if (w >= 768) {\n return 'md';\n } else if (w >= 576) {\n return 'sm';\n } else {\n return 'xs';\n }\n }, [width]);\n\n return {\n boxBreakpoint,\n isInit: !!width,\n };\n};\n\n/**\n * 处理间距\n * @param gutter\n * @param boxBreakpoint\n * @returns\n */\nexport const useGutter = (gutter: GutterParams = DefaultGutter, boxBreakpoint: TBoxBreakpoint) => {\n return useMemo(() => {\n let horizontalGap: number;\n let verticalGap: number;\n\n const getCommonGutter = (gutter) => {\n if (typeof gutter === 'number') {\n return gutter;\n }\n if (typeof gutter === 'object') {\n return { ...DefaultGutter, ...gutter }[boxBreakpoint];\n }\n };\n\n if (Array.isArray(gutter)) {\n const [h, v] = gutter;\n horizontalGap = getCommonGutter(h);\n verticalGap = getCommonGutter(v);\n } else {\n horizontalGap = getCommonGutter(gutter);\n verticalGap = defaultCtx.verticalGap;\n }\n\n return {\n horizontalGap: isNumber(horizontalGap) ? horizontalGap : defaultCtx.horizontalGap,\n verticalGap: isNumber(verticalGap) ? verticalGap : defaultCtx.verticalGap,\n };\n }, [gutter, boxBreakpoint]);\n};\n","import { classNames } from '@dimjs/utils';\nimport { FC, useEffect, useRef } from 'react';\nimport { alignPropsMap, justifyPropsMap, PresetDefaultGrid } from './constant';\nimport { BoxGridProviderCtx, defaultCtx } from './ctx';\nimport { useBoxBreakpoint, useGutter } from './hooks';\nimport { TBoxBreakpoint, type GutterParams, type ICommonReact } from './type';\n\nexport interface BoxRowProps {\n /**\n * 在不同响应尺寸下的元素占位格数\n * 应用到所有Col子元素上\n */\n defaultGrid?: Partial<typeof PresetDefaultGrid>;\n /** 间距 */\n gutter?: GutterParams;\n /** flex 布局的垂直对齐方式 */\n align?: 'top' | 'middle' | 'bottom' | 'stretch';\n /** flex 布局的水平排列方式 */\n justify?: 'start' | 'end' | 'center' | 'space-around' | 'space-between' | 'space-evenly';\n /** 尺寸变化回调 */\n onBoxBreakpointChange?: (breakpoint: TBoxBreakpoint) => void;\n}\n\nexport const Row: FC<BoxRowProps & ICommonReact> = (props) => {\n const {\n defaultGrid = PresetDefaultGrid,\n children,\n className,\n style,\n gutter,\n align,\n justify,\n onBoxBreakpointChange,\n } = props;\n const comRef = useRef<HTMLDivElement>(null);\n const { boxBreakpoint, isInit } = useBoxBreakpoint(comRef);\n const { horizontalGap, verticalGap } = useGutter(gutter, boxBreakpoint);\n\n useEffect(() => {\n onBoxBreakpointChange?.(boxBreakpoint);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [boxBreakpoint]);\n\n return (\n <BoxGridProviderCtx.Provider\n value={{\n ...defaultCtx,\n defaultGrid: {\n ...PresetDefaultGrid,\n ...defaultGrid,\n },\n boxBreakpoint,\n horizontalGap,\n verticalGap,\n }}\n >\n <div className={classNames('box-grad-root', className)} ref={comRef} style={style}>\n <div\n className=\"box-grad-row\"\n style={{\n alignItems: align ? alignPropsMap[align] : 'normal',\n justifyContent: justify ? justifyPropsMap[justify] : 'normal',\n marginLeft: `-${horizontalGap / 2}px`,\n marginRight: `-${horizontalGap / 2}px`,\n rowGap: `${verticalGap}px`,\n }}\n >\n {/* 是否初始化,计算尺寸初始会闪一下,这里初始时不渲染 */}\n {isInit && children}\n </div>\n </div>\n </BoxGridProviderCtx.Provider>\n );\n};\n","import { type TBoxBreakpoint } from './type';\n\n/**\n * 获取栅格响应式布局的配置\n * @param minSize 元素的最小可接受宽度\n * @returns\n */\nexport const getGridMapByRange = (minSize: number): Record<TBoxBreakpoint, number> => {\n const getSpan = (threshold: number) => {\n const result = Math.ceil((minSize * 24) / threshold);\n return [1, 2, 3, 4, 6, 8, 12, 24].find((item) => item >= result) || 24;\n };\n\n return {\n xxl: getSpan(1600),\n xl: getSpan(1200),\n lg: getSpan(992),\n md: getSpan(768),\n sm: getSpan(576),\n xs: getSpan(200),\n };\n};\n","import { Col } from './col';\nimport './index.less';\nimport { Row } from './row';\nimport { getGridMapByRange } from './utils';\n\nexport { useBoxBreakpoint } from './hooks';\n\nexport const BoxGrid = {\n /**\n * 网格响应式布局\n *```\n * 1. 应用场景:根据盒子大小决定内部元素的布局\n * 2. 子元素只能是 BoxGrid.Col\n */\n Row,\n /**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,0 ~ 24\n * 2. grid 自定义响应式网格布局\n * xs: 容器尺寸 < 576px\n * sm: 容器尺寸 ≥ 576px\n * md: 容器尺寸 ≥ 768px\n * lg: 容器尺寸 ≥ 992px\n * xl: 容器尺寸 ≥ 1200px\n * xxl: 容器尺寸 ≥ 1600px\n * ```\n */\n Col,\n /**\n * 获取栅格响应式布局的配置\n * @param minSize 元素的最小可接受宽度\n * @returns { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num }\n */\n getGridMapByRange,\n};\n"],"names":["PresetDefaultGrid","xs","sm","md","lg","xl","xxl","DefaultGutter","alignPropsMap","top","middle","bottom","stretch","justifyPropsMap","start","end","center","defaultCtx","boxBreakpoint","defaultGrid","horizontalGap","verticalGap","BoxGridProviderCtx","createContext","Col","props","children","className","style","_useContext","useContext","span","useMemo","_jsx","_classNames","_extends","flex","maxWidth","padding","useBoxBreakpoint","dom","_ref","useSize","width","w","clientWidth","isInit","useGutter","gutter","getCommonGutter","Array","isArray","_gutter","h","v","_isNumber","Row","_props$defaultGrid","align","justify","onBoxBreakpointChange","comRef","useRef","_useBoxBreakpoint","_useGutter","useEffect","Provider","value","ref","alignItems","justifyContent","marginLeft","marginRight","rowGap","getGridMapByRange","minSize","getSpan","threshold","result","Math","ceil","find","item","BoxGrid"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  /* eslint-disable */
2
- import './../form-grid/index.css';
2
+ import './../box-grid/index.css';
3
+ import './../fba-hooks/index.css';
3
4
  import './../form-wrapper/index.css';
4
5
  import './index.css';
5
6
  /*! @flatjs/forge MIT @flatbiz/antd */
6
- import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as l,_ as m}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useMemo as o,Children as e}from"react";import{FormGrid as t}from"../form-grid/index.js";import{FormWrapper as i}from"../form-wrapper/index.js";import{jsx as s}from"react/jsx-runtime";import"antd";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";var n=["column","children"];var a=function a(x){var p=x.column,u=x.children,f=l(x,n);var d=o((function(){if(!p){return{xs:24,sm:12,md:12,lg:8,xl:8,xxl:6}}var r={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 r[p]}),[]);var c=function r(){return e.toArray(u).map((function(r,l){if(r.props["hidden"])return null;if(r.type["domTypeName"]==="FormCol")return r;return s(t.Col,m({},d,{children:r}),l)})).filter(Boolean)};return s(i,m({},f,{className:r(f.className,"easy-form"),autoComplete:"off",children:s(t.Row,{gutter:[15,0],children:c()})}))};export{a as EasyForm};
7
+ import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as o,_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isUndefinedOrNull as e}from"@flatbiz/utils";import{useMemo as t,Children as s,Fragment as m}from"react";import{BoxGrid as l}from"../box-grid/index.js";import{fbaHooks as n}from"../fba-hooks/index.js";import{FormWrapper as a}from"../form-wrapper/index.js";import{jsx as u}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"];var d=function d(p){var f=p.column,c=p.forceColumn,g=p.children,h=p.width,j=p.gridGutter,v=o(p,x);var y=t((function(){if(c){var r=24/c;return{xs:r,sm:r,md:r,lg:r,xl:r,xxl:r}}if(!f){return{xs:24,sm:12,md:12,lg:8,xl:8,xxl:6}}var o={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 o[f]}),[]);var b=function r(){return s.toArray(g).map((function(r,o){if(r.props["hidden"])return null;if(r.type["domTypeName"]==="BoxGridCol")return u(m,{children:r},o);return u(l.Col,i({},y,{children:r}),o)})).filter(Boolean)};var w=n.useResponsivePoint()||"";var C=t((function(){if(["xs","sm"].includes(w||"")||!h){return{}}return{width:h}}),[w]);var k=e(j)?[15,0]:j;return u(a,i({},v,{style:i({},C,v.style),className:r(v.className,"easy-form"),autoComplete:"off",children:u(l.Row,{gutter:k,children:b()})}))};export{d as EasyForm};
7
8
  //# 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 { Children, ReactElement, useMemo } from 'react';\nimport { FormGrid } from '../form-grid';\nimport { FormWrapper, FormWrapperProps } from '../form-wrapper';\nimport './style.less';\n\nexport type EasyFormProps = Omit<FormWrapperProps, 'children'> & {\n children: ReactElement | ReactElement[];\n /** 一行显示几列,定义FormItem网格占比 */\n column?: 1 | 2 | 3 | 4;\n};\n\n/**\n * 简单Form布局,可自定义网格布局\n * ```\n * 1. EasyForm 子节点包含 hidden = true 会被忽略\n * 2. 通过 column 可修改一行显示几列FormItem\n * 3. demo:https://fex.qa.tcshuke.com/docs/admin/main/form/label\n * <EasyForm column={3}>\n <Form.Item name=\"field1\" label=\"条件1\">\n <Input placeholder=\"请输入\" allowClear={true} />\n </Form.Item>\n <Form.Item name=\"field2\" label=\"条件2\">\n <Input placeholder=\"请输入\" allowClear={true} />\n </Form.Item>\n <!-- !!!可通过使用 FormGrid.Col 包裹元素来自定义网格占比 !!! -->\n <FormGrid.Col span={24}>\n <Form.Item name=\"field5\" label=\"条件5\">\n <Input placeholder=\"请输入\" allowClear={true} />\n </Form.Item>\n </FormGrid.Col>\n <Form.Item name=\"field6\" label=\"条件6\">\n <Input placeholder=\"请输入\" allowClear={true} />\n </Form.Item>\n </EasyForm>\n * ```\n */\nexport const EasyForm = (props: EasyFormProps) => {\n const { column, children, ...otherProps } = props;\n\n const gridSize = useMemo(() => {\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 }, []);\n\n const getFormRowChildren = () => {\n return Children.toArray(children)\n .map((item: any, index) => {\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return (\n <FormGrid.Col key={index} {...gridSize}>\n {item}\n </FormGrid.Col>\n );\n })\n .filter(Boolean);\n };\n\n return (\n <FormWrapper {...otherProps} className={classNames(otherProps.className, 'easy-form')} autoComplete=\"off\">\n <FormGrid.Row gutter={[15, 0]}>{getFormRowChildren()}</FormGrid.Row>\n </FormWrapper>\n );\n};\n"],"names":["EasyForm","props","column","children","otherProps","_objectWithoutPropertiesLoose","_excluded","gridSize","useMemo","xs","sm","md","lg","xl","xxl","columnMap","getFormRowChildren","Children","toArray","map","item","index","type","_jsx","FormGrid","Col","_extends","filter","Boolean","FormWrapper","className","_classNames","autoComplete","Row","gutter"],"mappings":";4aAqCaA,EAAW,SAAXA,EAAYC,GACvB,IAAQC,EAAoCD,EAApCC,OAAQC,EAA4BF,EAA5BE,SAAaC,EAAUC,EAAKJ,EAAKK,GAEjD,IAAMC,EAAWC,GAAQ,WACvB,IAAKN,EAAQ,CACX,MAAO,CAAEO,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,EAAUb,EAClB,GAAE,IAEH,IAAMc,EAAqB,SAArBA,IACJ,OAAOC,EAASC,QAAQf,GACrBgB,KAAI,SAACC,EAAWC,GACf,GAAID,EAAKnB,MAAM,UAAW,OAAO,KACjC,GAAImB,EAAKE,KAAK,iBAAmB,UAAW,OAAOF,EACnD,OACEG,EAACC,EAASC,IAAGC,KAAiBnB,EAAQ,CAAAJ,SACnCiB,IADgBC,EAIvB,IACCM,OAAOC,UAGZ,OACEL,EAACM,EAAWH,KAAKtB,EAAU,CAAE0B,UAAWC,EAAW3B,EAAW0B,UAAW,aAAcE,aAAa,MAAK7B,SACvGoB,EAACC,EAASS,IAAG,CAACC,OAAQ,CAAC,GAAI,GAAG/B,SAAEa,QAGtC"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-form/form.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { Children, Fragment, ReactElement, useMemo } from 'react';\nimport { BoxGrid } from '../box-grid';\nimport { BoxRowProps } from '../box-grid/row';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormWrapper, FormWrapperProps } from '../form-wrapper';\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: ReactElement | ReactElement[];\n};\n\n/**\n * 简单Form布局,可自定义网格布局\n * ```\n * 1. 布局网格以当前节点的宽度来计算的,不是屏幕宽度\n * 2. EasyForm 子节点包含 hidden = true 会被忽略\n * 3. 通过 column 可定义一行显示几列FormItem\n * 4. demo:https://fex.qa.tcshuke.com/docs/admin/main/form/label\n * 5. 通过 labelItemVertical 可定义 formitem 竖直布局\n * 6. 通过 formItemGap 可定义 formItem竖直方向间隙\n * 7. 通过 forceColumn 可强制定义一行显示几列,不考虑响应式\n * 8. 通过 labelWidth 可控制Form内部所有label的宽度(可实现整齐效果)\n\n * 例如\n * <EasyForm column={3}>\n <Form.Item name=\"field1\" label=\"条件1\">\n <Input placeholder=\"请输入\" allowClear={true} />\n </Form.Item>\n <Form.Item name=\"field2\" label=\"条件2\">\n <Input placeholder=\"请输入\" allowClear={true} />\n </Form.Item>\n <!-- !!!可通过使用 BoxGrid.Col 包裹元素来自定义网格占比 !!! -->\n <BoxGrid.Col span={24}>\n <Form.Item name=\"field5\" label=\"条件5\">\n <Input placeholder=\"请输入\" allowClear={true} />\n </Form.Item>\n </BoxGrid.Col>\n <Form.Item name=\"field6\" label=\"条件6\">\n <Input placeholder=\"请输入\" allowClear={true} />\n </Form.Item>\n </EasyForm>\n * ```\n */\nexport const EasyForm = (props: EasyFormProps) => {\n const { column, forceColumn, children, width, gridGutter, ...otherProps } = 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 }, []);\n\n const getFormRowChildren = () => {\n return Children.toArray(children)\n .map((item: any, index) => {\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'BoxGridCol') return <Fragment key={index}>{item}</Fragment>;\n return (\n <BoxGrid.Col key={index} {...gridSize}>\n {item}\n </BoxGrid.Col>\n );\n })\n .filter(Boolean);\n };\n\n const screenType = fbaHooks.useResponsivePoint() || '';\n const innerStyle = useMemo(() => {\n /** 小屏幕不控制宽度 */\n if (['xs', 'sm'].includes(screenType || '') || !width) {\n return {};\n }\n return { width };\n }, [screenType]);\n\n const gutter = (isUndefinedOrNull(gridGutter) ? [15, 0] : gridGutter) as BoxRowProps['gutter'];\n\n return (\n <FormWrapper\n {...otherProps}\n style={{ ...innerStyle, ...otherProps.style }}\n className={classNames(otherProps.className, 'easy-form')}\n autoComplete=\"off\"\n >\n <BoxGrid.Row gutter={gutter}>{getFormRowChildren()}</BoxGrid.Row>\n </FormWrapper>\n );\n};\n"],"names":["EasyForm","props","column","forceColumn","children","width","gridGutter","otherProps","_objectWithoutPropertiesLoose","_excluded","gridSize","useMemo","num","xs","sm","md","lg","xl","xxl","columnMap","getFormRowChildren","Children","toArray","map","item","index","type","_jsx","Fragment","BoxGrid","Col","_extends","filter","Boolean","screenType","fbaHooks","useResponsivePoint","innerStyle","includes","gutter","isUndefinedOrNull","FormWrapper","style","className","_classNames","autoComplete","Row"],"mappings":";wpBAgFaA,EAAW,SAAXA,EAAYC,GACvB,IAAQC,EAAoED,EAApEC,OAAQC,EAA4DF,EAA5DE,YAAaC,EAA+CH,EAA/CG,SAAUC,EAAqCJ,EAArCI,MAAOC,EAA8BL,EAA9BK,WAAeC,EAAUC,EAAKP,EAAKQ,GAEjF,IAAMC,EAAWC,GAAQ,WACvB,GAAIR,EAAa,CACf,IAAMS,EAAM,GAAKT,EACjB,MAAO,CAAEU,GAAID,EAAKE,GAAIF,EAAKG,GAAIH,EAAKI,GAAIJ,EAAKK,GAAIL,EAAKM,IAAKN,EAC7D,CACA,IAAKV,EAAQ,CACX,MAAO,CAAEW,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,EAAUjB,EAClB,GAAE,IAEH,IAAMkB,EAAqB,SAArBA,IACJ,OAAOC,EAASC,QAAQlB,GACrBmB,KAAI,SAACC,EAAWC,GACf,GAAID,EAAKvB,MAAM,UAAW,OAAO,KACjC,GAAIuB,EAAKE,KAAK,iBAAmB,aAAc,OAAOC,EAACC,EAAQ,CAAAxB,SAAcoB,GAARC,GACrE,OACEE,EAACE,EAAQC,IAAGC,KAAiBrB,EAAQ,CAAAN,SAClCoB,IADeC,EAItB,IACCO,OAAOC,UAGZ,IAAMC,EAAaC,EAASC,sBAAwB,GACpD,IAAMC,EAAa1B,GAAQ,WAEzB,GAAI,CAAC,KAAM,MAAM2B,SAASJ,GAAc,MAAQ7B,EAAO,CACrD,MAAO,EACT,CACA,MAAO,CAAEA,MAAAA,EACX,GAAG,CAAC6B,IAEJ,IAAMK,EAAUC,EAAkBlC,GAAc,CAAC,GAAI,GAAKA,EAE1D,OACEqB,EAACc,EAAWV,KACNxB,EAAU,CACdmC,MAAKX,EAAOM,CAAAA,EAAAA,EAAe9B,EAAWmC,OACtCC,UAAWC,EAAWrC,EAAWoC,UAAW,aAC5CE,aAAa,MAAKzC,SAElBuB,EAACE,EAAQiB,IAAG,CAACP,OAAQA,EAAOnC,SAAEgB,QAGpC"}
@@ -7,5 +7,5 @@ import './../types/index.css';
7
7
  import './../flex-layout/index.css';
8
8
  import './index.css';
9
9
  /*! @flatjs/forge MIT @flatbiz/antd */
10
- import{fbaUtils as o}from"../fba-utils/index.js";import{hooks as e}from"@wove/react/cjs/hooks";import{a as n,_ as l}from"../_rollupPluginBabelHelpers-a0769acd.js";import{getUuid as a}from"@flatbiz/utils";import{createContext as r,useMemo as i,useContext as t,useState as s,createElement as u}from"react";import{classNames as d}from"@dimjs/utils/cjs/class-names";import{isPromise as c}from"@dimjs/lang/cjs/is-promise";import{useSize as f}from"ahooks";import{Form as p,Modal as v,Space as m,Drawer as C,theme as g}from"antd";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{FlexLayout as h}from"../flex-layout/index.js";import{g as b}from"../index-7f4ad045.js";import{jsx as y,jsxs as x}from"react/jsx-runtime";import{B as D}from"../index-1f45bfd5.js";import"@dimjs/lang/cjs/is-array";import"@ant-design/icons/es/icons/LoadingOutlined";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.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";var O=r({});var j=["titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","bodyHeightPercent"];var w=function o(a){var r,t;var s=a.titleExtra,u=a.title,m=a.onOk,C=a.onCancel,g=a.okButtonProps,D=a.cancelButtonProps,O=a.content,w=a.className,R=a.okHidden,P=a.cancelHidden,T=a.footer,M=a.cancelText,N=a.okText,H=a.bodyHeightPercent,B=n(a,j);var L=p.useForm(),A=L[0];var E=f(document.querySelector("html"));var F=b();var z=e.useCallbackRef((function(){a.onClose==null?void 0:a.onClose()}));var _=e.useCallbackRef((function(o){if(C){var e=C(A,o);if(e&&c(e)){return e.then(z)}}z();return Promise.resolve()}));var S=e.useCallbackRef((function(o){if(m){var e=m(A,o);if(e&&c(e)){return e.then(z)}}z();return Promise.resolve()}));var W=[y(k,l({},D,{onClick:_,hidden:P,children:M||((r=F.FbaDialogModal)==null?void 0:r.cancelText)}),"0"),y(k,l({type:"primary"},g,{onClick:S,hidden:R,children:N||"提交"}),"1")];var Y=T||W;var q=i((function(){if(!(E!=null&&E.height)||!H){return"auto"}return(E==null?void 0:E.height)*(H/100)}),[H,E==null?void 0:E.height]);return y(v,l({maskClosable:true,title:s?x(h,{direction:"horizontal",fullIndex:0,children:[y("span",{children:u}),s]}):u,centered:true,onCancel:z,destroyOnClose:true},B,{styles:{body:l({height:q,maxHeight:E!=null&&E.height?(E==null?void 0:E.height)*.8:"calc(100vh - 200px)"},(t=B.styles)==null?void 0:t.body)},className:d("fba-dialog-modal",{"fba-dialog-modal-title-extra":!!s},w),open:a.open,footer:Y,children:typeof O==="function"?O(A,{onClose:z}):O}))};var R=function o(e){var n=d("fba-dialog-confirm",e.className);return y(w,l({okText:"确定",width:350,cancelText:"取消",maskClosable:true},e,{className:n}))};var P=function o(e){return y(R,l({okText:"确定",cancelHidden:true,maskClosable:false},e,{onOk:function o(n,l){return e.onClick==null?void 0:e.onClick(l)}}))};var T=["onOk","onCancel","content","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var M=function o(a){var r=a.onOk,i=a.onCancel,t=a.content,s=a.okText,u=a.cancelText,f=a.okButtonExtraProps,v=a.cancelButtonExtraProps,g=a.operatePosition,h=g===void 0?"footer":g,b=a.operateRender,D=a.width,O=D===void 0?600:D,j=a.okHidden,w=a.cancelHidden,R=a.extra,P=n(a,T);var M=p.useForm(),N=M[0];var H=e.useCallbackRef((function(o){a.onClose==null?void 0:a.onClose(o)}));var B=e.useCallbackRef((function(o){if(i){var e=i(N,o);if(e&&c(e)){return e.then(H)}}H(o);return Promise.resolve()}));var L=e.useCallbackRef((function(o){if(r){var e=r(N,o);if(e&&c(e)){return e.then(H)}}H(o);return Promise.resolve()}));var A=x(m,{children:[w||v!=null&&v.hidden?null:y(k,l({},v,{onClick:B,children:u||"取消"})),j||f!=null&&f.hidden?null:y(k,l({type:"primary"},f,{onClick:L,children:s||"提交"}))]});var E=function o(){if(b){return b(N)}if(!j||!w){return A}return null};var F=typeof R==="function"?R(N):R;return y(C,l({maskClosable:true,destroyOnClose:true,width:O,contentWrapperStyle:{maxWidth:"95%"},footer:h==="footer"?E():null},P,{className:d("app-dialog-drawer",P.className),extra:h==="header"?E():F,open:a.open,onClose:H,children:typeof t==="function"?t(N,{onClose:H}):t}))};var N=function o(e){var n=e.className,l=e.message,a=e.mask;var r=g.useToken(),i=r.token;var t=i.colorPrimary;return y(v,{maskClosable:false,centered:true,destroyOnClose:true,className:d("fba-dialog-loading",n),open:e.open,footer:null,closable:false,style:{"--fba-loading-color":t},mask:a,children:y(D,{className:d("fba-dialog-loading-content"),children:x("div",{className:"loader-wrapper",children:[y("div",{className:"loader-inner"}),y("div",{className:"loader-text",children:l||"处理中"})]})})})};var H=function o(){var e=t(O);var n=function o(){e.dialogDrawerClose==null?void 0:e.dialogDrawerClose()};return{appDialogDrawer:{open:function o(a){e.dialogDrawerOpen==null?void 0:e.dialogDrawerOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var B=function o(){var e=t(O);var n=function o(){e.dialogDrawerClose2==null?void 0:e.dialogDrawerClose2()};return{appDialogDrawer2:{open:function o(a){e.dialogDrawerOpen2==null?void 0:e.dialogDrawerOpen2(l({},a,{open:true}));return{onClose:n}},close:n}}};var L=function o(){var e=t(O);var n=function o(){e.dialogModalClose==null?void 0:e.dialogModalClose()};return{appDialogModal:{open:function o(a){e.dialogModalOpen==null?void 0:e.dialogModalOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var A=function o(){var e=t(O);var n=function o(){e.dialogModalClose2==null?void 0:e.dialogModalClose2()};return{appDialogModal2:{open:function o(a){e.dialogModalOpen2==null?void 0:e.dialogModalOpen2(l({},a,{open:true}));return{onClose:n}},close:n}}};var E=function o(){var e=t(O);var n=function o(){e.dialogAlertClose==null?void 0:e.dialogAlertClose()};return{appDialogAlert:{open:function o(a){e.dialogAlertOpen==null?void 0:e.dialogAlertOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var F=function o(){var e=t(O);var n=function o(){e.dialogConfirmClose==null?void 0:e.dialogConfirmClose()};return{appDialogConfirm:{open:function o(a){e.dialogConfirmOpen==null?void 0:e.dialogConfirmOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var z=function o(){var e=t(O);var n=function o(){e.dialogLoadingClose==null?void 0:e.dialogLoadingClose()};return{appDialogLoading:{open:function o(a){e.dialogLoadingOpen==null?void 0:e.dialogLoadingOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var _=function o(n){var r=s({}),i=r[0],t=r[1];var d=s(a()),c=d[0],f=d[1];var p=s({}),v=p[0],m=p[1];var C=s(a()),g=C[0],k=C[1];var h=s({}),b=h[0],y=h[1];var D=s(a()),j=D[0],T=D[1];var H=s({}),B=H[0],L=H[1];var A=s(a()),E=A[0],F=A[1];var z=s({}),_=z[0],S=z[1];var W=s({}),Y=W[0],q=W[1];var I=s(),U=I[0],G=I[1];var J=s(a()),K=J[0],Q=J[1];var V=s(a()),X=V[0],Z=V[1];var $=s(a()),oo=$[0],eo=$[1];var no=e.useCallbackRef((function(o){t(o)}));var lo=e.useCallbackRef((function(o){t(l({},i,{open:false}));i.onClose==null?void 0:i.onClose(o);setTimeout((function(){f(a())}),200)}));var ao=e.useCallbackRef((function(o){m(o)}));var ro=e.useCallbackRef((function(o){m(l({},v,{open:false}));v.onClose==null?void 0:v.onClose(o);setTimeout((function(){k(a())}),200)}));var io=e.useCallbackRef((function(o){y(o)}));var to=e.useCallbackRef((function(){y(l({},b,{open:false}));b.onClose==null?void 0:b.onClose();setTimeout((function(){T(a())}),200)}));var so=e.useCallbackRef((function(o){L(o)}));var uo=e.useCallbackRef((function(){L(l({},B,{open:false}));B.onClose==null?void 0:B.onClose();setTimeout((function(){F(a())}),200)}));var co=e.useCallbackRef((function(o){S(o)}));var fo=e.useCallbackRef((function(){S(l({},_,{open:false}));_.onClose==null?void 0:_.onClose();setTimeout((function(){Q(a())}),200)}));var po=e.useCallbackRef((function(o){q(o)}));var vo=e.useCallbackRef((function(){q(l({},Y,{open:false}));Y.onClose==null?void 0:Y.onClose();setTimeout((function(){Z(a())}),200)}));var mo=e.useCallbackRef((function(o){G(o)}));var Co=e.useCallbackRef((function(){G(l({},U,{open:false}));setTimeout((function(){eo(a())}),200)}));return x(O.Provider,{value:{dialogDrawerOpen:no,dialogDrawerClose:lo,dialogDrawerOpen2:ao,dialogDrawerClose2:ro,dialogModalOpen:io,dialogModalClose:to,dialogModalOpen2:so,dialogModalClose2:uo,dialogAlertOpen:co,dialogAlertClose:fo,dialogConfirmOpen:po,dialogConfirmClose:vo,dialogLoadingOpen:mo,dialogLoadingClose:Co},children:[u(M,l({},i,{onClose:lo,key:c})),u(M,l({},v,{onClose:ro,key:g})),u(w,l({},b,{onClose:to,key:j})),u(w,l({},B,{onClose:uo,key:E})),u(P,l({},_,{onClose:fo,key:K})),u(R,l({},Y,{onClose:vo,key:X})),u(N,l({},U,{key:oo})),n.children]})};var S=o.attachPropertiesToComponent(_,{useDialogDrawer:H,useDialogDrawer2:B,useDialogModal:L,useDialogModal2:A,useDialogConfirm:F,useDialogAlert:E,useDialogLoading:z});export{S as FbaApp};
10
+ import{fbaUtils as o}from"../fba-utils/index.js";import{hooks as e}from"@wove/react/cjs/hooks";import{a as n,_ as l}from"../_rollupPluginBabelHelpers-a0769acd.js";import{getUuid as a}from"@flatbiz/utils";import{createContext as r,useMemo as i,useContext as t,useState as s,createElement as u}from"react";import{classNames as d}from"@dimjs/utils/cjs/class-names";import{isNull as c}from"@dimjs/lang/cjs/is-null";import{isPromise as f}from"@dimjs/lang/cjs/is-promise";import{useSize as p}from"ahooks";import{Form as v,Modal as m,Space as C,Drawer as g,theme as k}from"antd";import{ButtonWrapper as h}from"../button-wrapper/index.js";import{FlexLayout as b}from"../flex-layout/index.js";import{g as y}from"../index-7f4ad045.js";import{jsx as x,jsxs as D}from"react/jsx-runtime";import{B as O}from"../index-1f45bfd5.js";import"@dimjs/lang/cjs/is-array";import"@ant-design/icons/es/icons/LoadingOutlined";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.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";var j=r({});var w=["titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","bodyHeightPercent"];var R=function o(a){var r,t;var s=a.titleExtra,u=a.title,C=a.onOk,g=a.onCancel,k=a.okButtonProps,O=a.cancelButtonProps,j=a.content,R=a.className,P=a.okHidden,T=a.cancelHidden,M=a.footer,N=a.cancelText,H=a.okText,B=a.bodyHeightPercent,L=n(a,w);var A=v.useForm(),E=A[0];var F=p(document.querySelector("html"));var z=y();var _=e.useCallbackRef((function(){a.onClose==null?void 0:a.onClose()}));var S=e.useCallbackRef((function(o){if(g){var e=g(E,o);if(e&&f(e)){return e.then(_)}}_();return Promise.resolve()}));var W=e.useCallbackRef((function(o){if(C){var e=C(E,o);if(e&&f(e)){return e.then(_)}}_();return Promise.resolve()}));var Y=[x(h,l({},O,{onClick:S,hidden:T,children:N||((r=z.FbaDialogModal)==null?void 0:r.cancelText)}),"0"),x(h,l({type:"primary"},k,{onClick:W,hidden:P,children:H||"提交"}),"1")];var q=c(M)?null:Y;var I=i((function(){if(!(F!=null&&F.height)||!B){return"auto"}return(F==null?void 0:F.height)*(B/100)}),[B,F==null?void 0:F.height]);return x(m,l({maskClosable:true,title:s?D(b,{direction:"horizontal",fullIndex:0,children:[x("span",{children:u}),s]}):u,centered:true,onCancel:_,destroyOnClose:true},L,{styles:{body:l({height:I,maxHeight:F!=null&&F.height?(F==null?void 0:F.height)*.8:"calc(100vh - 200px)"},(t=L.styles)==null?void 0:t.body)},className:d("fba-dialog-modal",{"fba-dialog-modal-title-extra":!!s},R),open:a.open,footer:q,children:typeof j==="function"?j(E,{onClose:_}):j}))};var P=function o(e){var n=d("fba-dialog-confirm",e.className);return x(R,l({okText:"确定",width:350,cancelText:"取消",maskClosable:true},e,{className:n}))};var T=function o(e){return x(P,l({okText:"确定",cancelHidden:true,maskClosable:false},e,{onOk:function o(n,l){return e.onClick==null?void 0:e.onClick(l)}}))};var M=["onOk","onCancel","content","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var N=function o(a){var r=a.onOk,i=a.onCancel,t=a.content,s=a.okText,u=a.cancelText,c=a.okButtonExtraProps,p=a.cancelButtonExtraProps,m=a.operatePosition,k=m===void 0?"footer":m,b=a.operateRender,y=a.width,O=y===void 0?600:y,j=a.okHidden,w=a.cancelHidden,R=a.extra,P=n(a,M);var T=v.useForm(),N=T[0];var H=e.useCallbackRef((function(o){a.onClose==null?void 0:a.onClose(o)}));var B=e.useCallbackRef((function(o){if(i){var e=i(N,o);if(e&&f(e)){return e.then(H)}}H(o);return Promise.resolve()}));var L=e.useCallbackRef((function(o){if(r){var e=r(N,o);if(e&&f(e)){return e.then(H)}}H(o);return Promise.resolve()}));var A=D(C,{children:[w||p!=null&&p.hidden?null:x(h,l({},p,{onClick:B,children:u||"取消"})),j||c!=null&&c.hidden?null:x(h,l({type:"primary"},c,{onClick:L,children:s||"提交"}))]});var E=function o(){if(b){return b(N)}if(!j||!w){return A}return null};var F=typeof R==="function"?R(N):R;return x(g,l({maskClosable:true,destroyOnClose:true,width:O,contentWrapperStyle:{maxWidth:"95%"},footer:k==="footer"?E():null},P,{className:d("app-dialog-drawer",P.className),extra:k==="header"?E():F,open:a.open,onClose:H,children:typeof t==="function"?t(N,{onClose:H}):t}))};var H=function o(e){var n=e.className,l=e.message,a=e.mask;var r=k.useToken(),i=r.token;var t=i.colorPrimary;return x(m,{maskClosable:false,centered:true,destroyOnClose:true,className:d("fba-dialog-loading",n),open:e.open,footer:null,closable:false,style:{"--fba-loading-color":t},mask:a,children:x(O,{className:d("fba-dialog-loading-content"),children:D("div",{className:"loader-wrapper",children:[x("div",{className:"loader-inner"}),x("div",{className:"loader-text",children:l||"处理中"})]})})})};var B=function o(){var e=t(j);var n=function o(){e.dialogDrawerClose==null?void 0:e.dialogDrawerClose()};return{appDialogDrawer:{open:function o(a){e.dialogDrawerOpen==null?void 0:e.dialogDrawerOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var L=function o(){var e=t(j);var n=function o(){e.dialogDrawerClose2==null?void 0:e.dialogDrawerClose2()};return{appDialogDrawer2:{open:function o(a){e.dialogDrawerOpen2==null?void 0:e.dialogDrawerOpen2(l({},a,{open:true}));return{onClose:n}},close:n}}};var A=function o(){var e=t(j);var n=function o(){e.dialogModalClose==null?void 0:e.dialogModalClose()};return{appDialogModal:{open:function o(a){e.dialogModalOpen==null?void 0:e.dialogModalOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var E=function o(){var e=t(j);var n=function o(){e.dialogModalClose2==null?void 0:e.dialogModalClose2()};return{appDialogModal2:{open:function o(a){e.dialogModalOpen2==null?void 0:e.dialogModalOpen2(l({},a,{open:true}));return{onClose:n}},close:n}}};var F=function o(){var e=t(j);var n=function o(){e.dialogAlertClose==null?void 0:e.dialogAlertClose()};return{appDialogAlert:{open:function o(a){e.dialogAlertOpen==null?void 0:e.dialogAlertOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var z=function o(){var e=t(j);var n=function o(){e.dialogConfirmClose==null?void 0:e.dialogConfirmClose()};return{appDialogConfirm:{open:function o(a){e.dialogConfirmOpen==null?void 0:e.dialogConfirmOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var _=function o(){var e=t(j);var n=function o(){e.dialogLoadingClose==null?void 0:e.dialogLoadingClose()};return{appDialogLoading:{open:function o(a){e.dialogLoadingOpen==null?void 0:e.dialogLoadingOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var S=function o(n){var r=s({}),i=r[0],t=r[1];var d=s(a()),c=d[0],f=d[1];var p=s({}),v=p[0],m=p[1];var C=s(a()),g=C[0],k=C[1];var h=s({}),b=h[0],y=h[1];var x=s(a()),O=x[0],w=x[1];var M=s({}),B=M[0],L=M[1];var A=s(a()),E=A[0],F=A[1];var z=s({}),_=z[0],S=z[1];var W=s({}),Y=W[0],q=W[1];var I=s(),U=I[0],G=I[1];var J=s(a()),K=J[0],Q=J[1];var V=s(a()),X=V[0],Z=V[1];var $=s(a()),oo=$[0],eo=$[1];var no=e.useCallbackRef((function(o){t(o)}));var lo=e.useCallbackRef((function(o){t(l({},i,{open:false}));i.onClose==null?void 0:i.onClose(o);setTimeout((function(){f(a())}),200)}));var ao=e.useCallbackRef((function(o){m(o)}));var ro=e.useCallbackRef((function(o){m(l({},v,{open:false}));v.onClose==null?void 0:v.onClose(o);setTimeout((function(){k(a())}),200)}));var io=e.useCallbackRef((function(o){y(o)}));var to=e.useCallbackRef((function(){y(l({},b,{open:false}));b.onClose==null?void 0:b.onClose();setTimeout((function(){w(a())}),200)}));var so=e.useCallbackRef((function(o){L(o)}));var uo=e.useCallbackRef((function(){L(l({},B,{open:false}));B.onClose==null?void 0:B.onClose();setTimeout((function(){F(a())}),200)}));var co=e.useCallbackRef((function(o){S(o)}));var fo=e.useCallbackRef((function(){S(l({},_,{open:false}));_.onClose==null?void 0:_.onClose();setTimeout((function(){Q(a())}),200)}));var po=e.useCallbackRef((function(o){q(o)}));var vo=e.useCallbackRef((function(){q(l({},Y,{open:false}));Y.onClose==null?void 0:Y.onClose();setTimeout((function(){Z(a())}),200)}));var mo=e.useCallbackRef((function(o){G(o)}));var Co=e.useCallbackRef((function(){G(l({},U,{open:false}));setTimeout((function(){eo(a())}),200)}));return D(j.Provider,{value:{dialogDrawerOpen:no,dialogDrawerClose:lo,dialogDrawerOpen2:ao,dialogDrawerClose2:ro,dialogModalOpen:io,dialogModalClose:to,dialogModalOpen2:so,dialogModalClose2:uo,dialogAlertOpen:co,dialogAlertClose:fo,dialogConfirmOpen:po,dialogConfirmClose:vo,dialogLoadingOpen:mo,dialogLoadingClose:Co},children:[u(N,l({},i,{onClose:lo,key:c})),u(N,l({},v,{onClose:ro,key:g})),u(R,l({},b,{onClose:to,key:O})),u(R,l({},B,{onClose:uo,key:E})),u(T,l({},_,{onClose:fo,key:K})),u(P,l({},Y,{onClose:vo,key:X})),u(H,l({},U,{key:oo})),n.children]})};var W=o.attachPropertiesToComponent(S,{useDialogDrawer:B,useDialogDrawer2:L,useDialogModal:A,useDialogModal2:E,useDialogConfirm:z,useDialogAlert:F,useDialogLoading:_});export{W as FbaApp};
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-app/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/index.tsx","@flatbiz/antd/src/fba-app/dialog-confirm/index.tsx","@flatbiz/antd/src/fba-app/dialog-alert/index.tsx","@flatbiz/antd/src/fba-app/dialog-drawer/index.tsx","@flatbiz/antd/src/fba-app/dialog-loading/index.tsx","@flatbiz/antd/src/fba-app/fba-app.tsx","@flatbiz/antd/src/fba-app/index.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModalProps } from './dialog-modal';\n\nexport type FbaAppContextApi = {\n dialogDrawerOpen?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose?: (e?) => void;\n\n dialogDrawerOpen2?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose2?: (e?) => void;\n\n dialogModalOpen?: (data: FbaAppModalProps) => void;\n dialogModalClose?: () => void;\n\n dialogModalOpen2?: (data: FbaAppModalProps) => void;\n dialogModalClose2?: () => void;\n\n dialogAlertOpen?: (data: FbaAppAlertProps) => void;\n dialogAlertClose?: () => void;\n\n dialogConfirmOpen?: (data: FbaAppConfirmProps) => void;\n dialogConfirmClose?: () => void;\n\n dialogLoadingOpen?: (data?: FbaAppLoadingProps & { open?: boolean }) => void;\n dialogLoadingClose?: () => void;\n};\n\nexport const FbaAppContext = createContext<FbaAppContextApi>({});\n","import { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { FlexLayout } from '../../flex-layout';\nimport { getFbaLocaleMessage } from '../../_utils/i18n';\nimport './style.less';\n\nexport type FbaAppModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'okButtonProps' | 'cancelButtonProps'\n> & {\n onOk?: (\n form: FormInstance,\n e: React.MouseEvent<HTMLElement>\n ) => void | Promise<void>;\n onCancel?: (\n form: FormInstance,\n e: React.MouseEvent<HTMLElement>\n ) => void | Promise<void>;\n onClose?: () => void;\n content:\n | string\n | ReactElement\n | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<\n ButtonWrapperProps,\n 'hidden' | 'children' | 'onClick'\n >;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n\n titleExtra?: ReactElement;\n};\n\nexport const FbaAppModal = (props: FbaAppModalProps) => {\n const {\n titleExtra,\n title,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n bodyHeightPercent,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n const size = useSize(document.querySelector('html'));\n const localMessage = getFbaLocaleMessage();\n\n const onClose = hooks.useCallbackRef(() => {\n props.onClose?.();\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const operateGroup = [\n <ButtonWrapper\n key=\"0\"\n {...cancelButtonProps}\n onClick={onCancelHandle}\n hidden={cancelHidden}\n >\n {cancelText || localMessage.FbaDialogModal?.cancelText}\n </ButtonWrapper>,\n <ButtonWrapper\n key=\"1\"\n type=\"primary\"\n {...okButtonProps}\n onClick={onOkHandle}\n hidden={okHidden}\n >\n {okText || '提交'}\n </ButtonWrapper>,\n ];\n\n const footerNew = footer || operateGroup;\n\n const height = useMemo(() => {\n if (!size?.height || !bodyHeightPercent) {\n return 'auto';\n }\n return size?.height * (bodyHeightPercent / 100);\n }, [bodyHeightPercent, size?.height]);\n\n return (\n <Modal\n maskClosable={true}\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n centered={true}\n onCancel={onClose}\n destroyOnClose\n {...otherProps}\n styles={{\n body: {\n height,\n maxHeight: size?.height ? size?.height * 0.8 : 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNames(\n 'fba-dialog-modal',\n { 'fba-dialog-modal-title-extra': !!titleExtra },\n className\n )}\n open={props.open}\n footer={footerNew}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { FbaAppModal, FbaAppModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport type FbaAppConfirmProps = FbaAppModalProps;\n\nexport const FbaAppConfirm = (props: FbaAppConfirmProps) => {\n const className = classNames('fba-dialog-confirm', props.className);\n return (\n <FbaAppModal\n okText=\"确定\"\n width={350}\n cancelText=\"取消\"\n maskClosable={true}\n {...props}\n className={className}\n />\n );\n};\n","import { FbaAppConfirm } from '../dialog-confirm';\nimport { FbaAppModalProps } from '../dialog-modal';\n\n// export type DialogAlertProps = Omit<\n// DialogModalProps,\n// 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n// > & {\n// onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n// };\n\n// export const dialogAlert = {\n// open: (props: DialogAlertProps) => {\n// return dialogConfirm.open({\n// okText: '确定',\n// cancelHidden: true,\n// maskClosable: false,\n// ...props,\n// onOk: props.onClick,\n// } as DialogModalProps);\n// },\n// };\n\nexport type FbaAppAlertProps = Omit<\n FbaAppModalProps,\n 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n\nexport const FbaAppAlert = (props: FbaAppAlertProps) => {\n return (\n <FbaAppConfirm\n okText=\"确定\"\n cancelHidden={true}\n maskClosable={false}\n {...props}\n onOk={(_form, e) => {\n return props.onClick?.(e);\n }}\n />\n );\n};\n","import { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { ReactElement, ReactNode } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport './style.less';\n\nexport type FbaAppDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'footer' | 'extra'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content:\n | string\n | ReactElement\n | ((form: FormInstance, operate: { onClose: DrawerProps['onClose'] }) => ReactElement);\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n operatePosition?: 'header' | 'footer';\n operateRender?: (form: FormInstance) => ReactElement;\n okHidden?: boolean;\n cancelHidden?: boolean;\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n};\n\nexport const FbaAppDrawer = (props: FbaAppDrawerProps) => {\n const {\n onOk,\n onCancel,\n content,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width = 600,\n okHidden,\n cancelHidden,\n extra,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n\n const onClose = hooks.useCallbackRef((e) => {\n props.onClose?.(e);\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const operateGroup = (\n <Space>\n {cancelHidden || cancelButtonExtraProps?.hidden ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHidden || okButtonExtraProps?.hidden ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n\n const operateRenderHandle = () => {\n if (operateRender) {\n return operateRender(form);\n }\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n };\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n return (\n <Drawer\n maskClosable={true}\n destroyOnClose\n width={width}\n contentWrapperStyle={{ maxWidth: '95%' }}\n footer={operatePosition === 'footer' ? operateRenderHandle() : null}\n {...otherProps}\n className={classNames('app-dialog-drawer', otherProps.className)}\n extra={operatePosition === 'header' ? operateRenderHandle() : extraRender}\n open={props.open}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties } from 'react';\nimport { BlockLayout } from '../../block-layout';\nimport './style.less';\n\nexport type FbaAppLoadingProps = {\n className?: string;\n message?: string;\n mask?: boolean;\n};\n\nexport const FbaAppLoading = (props: FbaAppLoadingProps & { open?: boolean }) => {\n const { className, message, mask } = props;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('fba-dialog-loading', className)}\n open={props.open}\n footer={null}\n closable={false}\n style={{ '--fba-loading-color': colorPrimary } as CSSProperties}\n mask={mask}\n >\n <BlockLayout className={classNames('fba-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{message || '处理中'}</div>\n </div>\n </BlockLayout>\n </Modal>\n );\n};\n","import { getUuid } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ReactNode, useContext, useState } from 'react';\nimport { FbaAppContext, FbaAppContextApi } from './context';\nimport { FbaAppAlert, FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirm, FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawer, FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoading, FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModal, FbaAppModalProps } from './dialog-modal';\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogDrawer2\n * @returns\n */\nexport const useDialogDrawer = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose?.();\n };\n\n return {\n appDialogDrawer: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const useDialogDrawer2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose2?.();\n };\n\n return {\n appDialogDrawer2: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogModal2\n * @returns\n */\nexport const useDialogModal = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose?.();\n };\n\n return {\n appDialogModal: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogModal2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose2?.();\n };\n\n return {\n appDialogModal2: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogAlert = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogAlertClose?.();\n };\n\n return {\n appDialogAlert: {\n open: (data: FbaAppAlertProps) => {\n ctx.dialogAlertOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogConfirm = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogConfirmClose?.();\n };\n\n return {\n appDialogConfirm: {\n open: (data: FbaAppConfirmProps) => {\n ctx.dialogConfirmOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogLoading = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogLoadingClose?.();\n };\n\n return {\n appDialogLoading: {\n open: (data?: FbaAppLoadingProps) => {\n ctx.dialogLoadingOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const FbaApp = (props: { children: ReactNode }) => {\n const [drawerProps, setDrawerProps] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey, setDrawerKey] = useState(getUuid());\n\n const [drawerProps2, setDrawerProps2] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey2, setDrawerKey2] = useState(getUuid());\n\n const [modalProps, setModalProps] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey, setModalKey] = useState(getUuid());\n\n const [modalProps2, setModalProps2] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey2, setModalKey2] = useState(getUuid());\n\n const [alertProps, setAlertProps] = useState<FbaAppAlertProps>({} as FbaAppAlertProps);\n const [confirmProps, setConfirmProps] = useState<FbaAppConfirmProps>({} as FbaAppConfirmProps);\n const [loadingProps, setLoadingProps] = useState<FbaAppLoadingProps>();\n\n const [alertKey, setAlertKey] = useState(getUuid());\n const [confirmKey, setConfirmKey] = useState(getUuid());\n const [loadingKey, setLoadingKey] = useState(getUuid());\n\n const dialogDrawerOpen: FbaAppContextApi['dialogDrawerOpen'] = hooks.useCallbackRef((data) => {\n setDrawerProps(data);\n });\n const dialogDrawerClose = hooks.useCallbackRef((e) => {\n setDrawerProps({ ...drawerProps, open: false } as FbaAppDrawerProps);\n drawerProps.onClose?.(e);\n setTimeout(() => {\n setDrawerKey(getUuid());\n }, 200);\n });\n\n const dialogDrawerOpen2: FbaAppContextApi['dialogDrawerOpen2'] = hooks.useCallbackRef((data) => {\n setDrawerProps2(data);\n });\n\n const dialogDrawerClose2 = hooks.useCallbackRef((e) => {\n setDrawerProps2({ ...drawerProps2, open: false } as FbaAppDrawerProps);\n drawerProps2.onClose?.(e);\n setTimeout(() => {\n setDrawerKey2(getUuid());\n }, 200);\n });\n\n const dialogModalOpen: FbaAppContextApi['dialogModalOpen'] = hooks.useCallbackRef((data) => {\n setModalProps(data);\n });\n\n const dialogModalClose = hooks.useCallbackRef(() => {\n setModalProps({ ...modalProps, open: false } as FbaAppModalProps);\n modalProps.onClose?.();\n setTimeout(() => {\n setModalKey(getUuid());\n }, 200);\n });\n\n const dialogModalOpen2: FbaAppContextApi['dialogModalOpen2'] = hooks.useCallbackRef((data) => {\n setModalProps2(data);\n });\n\n const dialogModalClose2 = hooks.useCallbackRef(() => {\n setModalProps2({ ...modalProps2, open: false } as FbaAppModalProps);\n modalProps2.onClose?.();\n setTimeout(() => {\n setModalKey2(getUuid());\n }, 200);\n });\n\n const dialogAlertOpen: FbaAppContextApi['dialogAlertOpen'] = hooks.useCallbackRef((data) => {\n setAlertProps(data);\n });\n\n const dialogAlertClose = hooks.useCallbackRef(() => {\n setAlertProps({ ...alertProps, open: false } as FbaAppAlertProps);\n alertProps.onClose?.();\n setTimeout(() => {\n setAlertKey(getUuid());\n }, 200);\n });\n\n const dialogConfirmOpen: FbaAppContextApi['dialogConfirmOpen'] = hooks.useCallbackRef((data) => {\n setConfirmProps(data);\n });\n\n const dialogConfirmClose = hooks.useCallbackRef(() => {\n setConfirmProps({ ...confirmProps, open: false } as FbaAppConfirmProps);\n confirmProps.onClose?.();\n setTimeout(() => {\n setConfirmKey(getUuid());\n }, 200);\n });\n\n const dialogLoadingOpen: FbaAppContextApi['dialogLoadingOpen'] = hooks.useCallbackRef((data) => {\n setLoadingProps(data);\n });\n\n const dialogLoadingClose = hooks.useCallbackRef(() => {\n setLoadingProps({ ...loadingProps, open: false } as FbaAppLoadingProps);\n setTimeout(() => {\n setLoadingKey(getUuid());\n }, 200);\n });\n\n return (\n <FbaAppContext.Provider\n value={{\n dialogDrawerOpen,\n dialogDrawerClose,\n dialogDrawerOpen2,\n dialogDrawerClose2,\n dialogModalOpen,\n dialogModalClose,\n dialogModalOpen2,\n dialogModalClose2,\n dialogAlertOpen,\n dialogAlertClose,\n dialogConfirmOpen,\n dialogConfirmClose,\n dialogLoadingOpen,\n dialogLoadingClose,\n }}\n >\n <FbaAppDrawer {...drawerProps} onClose={dialogDrawerClose} key={drawerKey}></FbaAppDrawer>\n <FbaAppDrawer {...drawerProps2} onClose={dialogDrawerClose2} key={drawerKey2}></FbaAppDrawer>\n <FbaAppModal {...modalProps} onClose={dialogModalClose} key={modalKey}></FbaAppModal>\n <FbaAppModal {...modalProps2} onClose={dialogModalClose2} key={modalKey2}></FbaAppModal>\n <FbaAppAlert {...alertProps} onClose={dialogAlertClose} key={alertKey}></FbaAppAlert>\n <FbaAppConfirm {...confirmProps} onClose={dialogConfirmClose} key={confirmKey}></FbaAppConfirm>\n <FbaAppLoading {...loadingProps} key={loadingKey}></FbaAppLoading>\n {props.children}\n </FbaAppContext.Provider>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport {\n FbaApp as FbaAppInner,\n useDialogAlert,\n useDialogConfirm,\n useDialogDrawer,\n useDialogDrawer2,\n useDialogLoading,\n useDialogModal,\n useDialogModal2,\n} from './fba-app';\n\nexport const FbaApp = fbaUtils.attachPropertiesToComponent(FbaAppInner, {\n /** 不支持多次弹框,第二个弹框可使用useDialogDrawer2 */\n useDialogDrawer,\n useDialogDrawer2,\n /** 不支持多次弹框,第二个弹框可使用useDialogModal2 */\n useDialogModal,\n useDialogModal2,\n /** 不支持多次弹框 */\n useDialogConfirm,\n /** 不支持多次弹框 */\n useDialogAlert,\n /** 不支持多次弹框 */\n useDialogLoading,\n});\n"],"names":["FbaAppContext","createContext","FbaAppModal","props","_localMessage$FbaDial","_otherProps$styles","titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","bodyHeightPercent","otherProps","_objectWithoutPropertiesLoose","_excluded","_Form$useForm","Form","useForm","form","size","useSize","document","querySelector","localMessage","getFbaLocaleMessage","onClose","_hooks","useCallbackRef","onCancelHandle","e","response","_isPromise","then","Promise","resolve","onOkHandle","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","FbaDialogModal","type","footerNew","height","useMemo","Modal","maskClosable","_jsxs","FlexLayout","direction","fullIndex","centered","destroyOnClose","styles","body","maxHeight","_classNames","open","FbaAppConfirm","width","FbaAppAlert","_form","FbaAppDrawer","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","_props$width","extra","Space","operateRenderHandle","extraRender","Drawer","contentWrapperStyle","maxWidth","FbaAppLoading","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","closable","style","BlockLayout","useDialogDrawer","ctx","useContext","dialogDrawerClose","appDialogDrawer","data","dialogDrawerOpen","close","useDialogDrawer2","dialogDrawerClose2","appDialogDrawer2","dialogDrawerOpen2","useDialogModal","dialogModalClose","appDialogModal","dialogModalOpen","useDialogModal2","dialogModalClose2","appDialogModal2","dialogModalOpen2","useDialogAlert","dialogAlertClose","appDialogAlert","dialogAlertOpen","useDialogConfirm","dialogConfirmClose","appDialogConfirm","dialogConfirmOpen","useDialogLoading","dialogLoadingClose","appDialogLoading","dialogLoadingOpen","FbaApp","_useState","useState","drawerProps","setDrawerProps","_useState2","getUuid","drawerKey","setDrawerKey","_useState3","drawerProps2","setDrawerProps2","_useState4","drawerKey2","setDrawerKey2","_useState5","modalProps","setModalProps","_useState6","modalKey","setModalKey","_useState7","modalProps2","setModalProps2","_useState8","modalKey2","setModalKey2","_useState9","alertProps","setAlertProps","_useState10","confirmProps","setConfirmProps","_useState11","loadingProps","setLoadingProps","_useState12","alertKey","setAlertKey","_useState13","confirmKey","setConfirmKey","_useState14","loadingKey","setLoadingKey","setTimeout","Provider","value","_createElement","key","fbaUtils","attachPropertiesToComponent","FbaAppInner"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/fba-app/context.ts","@flatbiz/antd/src/fba-app/dialog-modal/index.tsx","@flatbiz/antd/src/fba-app/dialog-confirm/index.tsx","@flatbiz/antd/src/fba-app/dialog-alert/index.tsx","@flatbiz/antd/src/fba-app/dialog-drawer/index.tsx","@flatbiz/antd/src/fba-app/dialog-loading/index.tsx","@flatbiz/antd/src/fba-app/fba-app.tsx","@flatbiz/antd/src/fba-app/index.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModalProps } from './dialog-modal';\n\nexport type FbaAppContextApi = {\n dialogDrawerOpen?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose?: (e?) => void;\n\n dialogDrawerOpen2?: (data: FbaAppDrawerProps) => void;\n dialogDrawerClose2?: (e?) => void;\n\n dialogModalOpen?: (data: FbaAppModalProps) => void;\n dialogModalClose?: () => void;\n\n dialogModalOpen2?: (data: FbaAppModalProps) => void;\n dialogModalClose2?: () => void;\n\n dialogAlertOpen?: (data: FbaAppAlertProps) => void;\n dialogAlertClose?: () => void;\n\n dialogConfirmOpen?: (data: FbaAppConfirmProps) => void;\n dialogConfirmClose?: () => void;\n\n dialogLoadingOpen?: (data?: FbaAppLoadingProps & { open?: boolean }) => void;\n dialogLoadingClose?: () => void;\n};\n\nexport const FbaAppContext = createContext<FbaAppContextApi>({});\n","import { isNull, isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { TNoopDefine } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Form, FormInstance, Modal, ModalProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport { FlexLayout } from '../../flex-layout';\nimport { getFbaLocaleMessage } from '../../_utils/i18n';\nimport './style.less';\n\nexport type FbaAppModalProps = Omit<\n ModalProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'okButtonProps' | 'cancelButtonProps' | 'footer'\n> & {\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onClose?: () => void;\n content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine }) => ReactElement);\n okHidden?: boolean;\n cancelHidden?: boolean;\n okButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n cancelButtonProps?: Omit<ButtonWrapperProps, 'hidden' | 'children' | 'onClick'>;\n /**\n * 设置modal body height 为当前窗口height的百分比,例如:30\n * ```\n * 1. 最大值:80\n * 1. 设置bodyStyle.height 后,bodyHeightPercent失效\n * ```\n */\n bodyHeightPercent?: number;\n\n titleExtra?: ReactElement;\n /** null则隐藏footer */\n footer?: null | ReactElement | ReactElement[];\n};\n\nexport const FbaAppModal = (props: FbaAppModalProps) => {\n const {\n titleExtra,\n title,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n content,\n className,\n okHidden,\n cancelHidden,\n footer,\n cancelText,\n okText,\n bodyHeightPercent,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n const size = useSize(document.querySelector('html'));\n const localMessage = getFbaLocaleMessage();\n\n const onClose = hooks.useCallbackRef(() => {\n props.onClose?.();\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose();\n return Promise.resolve();\n });\n\n const operateGroup = [\n <ButtonWrapper key=\"0\" {...cancelButtonProps} onClick={onCancelHandle} hidden={cancelHidden}>\n {cancelText || localMessage.FbaDialogModal?.cancelText}\n </ButtonWrapper>,\n <ButtonWrapper key=\"1\" type=\"primary\" {...okButtonProps} onClick={onOkHandle} hidden={okHidden}>\n {okText || '提交'}\n </ButtonWrapper>,\n ];\n\n const footerNew = isNull(footer) ? null : operateGroup;\n\n const height = useMemo(() => {\n if (!size?.height || !bodyHeightPercent) {\n return 'auto';\n }\n return size?.height * (bodyHeightPercent / 100);\n }, [bodyHeightPercent, size?.height]);\n\n return (\n <Modal\n maskClosable={true}\n title={\n titleExtra ? (\n <FlexLayout direction=\"horizontal\" fullIndex={0}>\n <span>{title}</span>\n {titleExtra}\n </FlexLayout>\n ) : (\n title\n )\n }\n centered={true}\n onCancel={onClose}\n destroyOnClose\n {...otherProps}\n styles={{\n body: {\n height,\n maxHeight: size?.height ? size?.height * 0.8 : 'calc(100vh - 200px)',\n ...otherProps.styles?.body,\n },\n }}\n className={classNames('fba-dialog-modal', { 'fba-dialog-modal-title-extra': !!titleExtra }, className)}\n open={props.open}\n footer={footerNew}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Modal>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { FbaAppModal, FbaAppModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport type FbaAppConfirmProps = FbaAppModalProps;\n\nexport const FbaAppConfirm = (props: FbaAppConfirmProps) => {\n const className = classNames('fba-dialog-confirm', props.className);\n return (\n <FbaAppModal\n okText=\"确定\"\n width={350}\n cancelText=\"取消\"\n maskClosable={true}\n {...props}\n className={className}\n />\n );\n};\n","import { FbaAppConfirm } from '../dialog-confirm';\nimport { FbaAppModalProps } from '../dialog-modal';\n\n// export type DialogAlertProps = Omit<\n// DialogModalProps,\n// 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n// > & {\n// onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n// };\n\n// export const dialogAlert = {\n// open: (props: DialogAlertProps) => {\n// return dialogConfirm.open({\n// okText: '确定',\n// cancelHidden: true,\n// maskClosable: false,\n// ...props,\n// onOk: props.onClick,\n// } as DialogModalProps);\n// },\n// };\n\nexport type FbaAppAlertProps = Omit<\n FbaAppModalProps,\n 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n\nexport const FbaAppAlert = (props: FbaAppAlertProps) => {\n return (\n <FbaAppConfirm\n okText=\"确定\"\n cancelHidden={true}\n maskClosable={false}\n {...props}\n onOk={(_form, e) => {\n return props.onClick?.(e);\n }}\n />\n );\n};\n","import { isPromise } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Drawer, DrawerProps, Form, FormInstance, Space } from 'antd';\nimport { ReactElement, ReactNode } from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../../button-wrapper';\nimport './style.less';\n\nexport type FbaAppDrawerProps = Omit<\n DrawerProps,\n 'onOk' | 'onCancel' | 'getContainer' | 'footer' | 'extra'\n> & {\n okText?: string | ReactElement;\n cancelText?: string | ReactElement;\n onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n content:\n | string\n | ReactElement\n | ((form: FormInstance, operate: { onClose: DrawerProps['onClose'] }) => ReactElement);\n okButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children' | 'loading'>;\n cancelButtonExtraProps?: Omit<ButtonWrapperProps, 'onClick' | 'children'>;\n operatePosition?: 'header' | 'footer';\n operateRender?: (form: FormInstance) => ReactElement;\n okHidden?: boolean;\n cancelHidden?: boolean;\n extra?: ReactNode | ((form: FormInstance) => ReactElement);\n};\n\nexport const FbaAppDrawer = (props: FbaAppDrawerProps) => {\n const {\n onOk,\n onCancel,\n content,\n okText,\n cancelText,\n okButtonExtraProps,\n cancelButtonExtraProps,\n operatePosition = 'footer',\n operateRender,\n width = 600,\n okHidden,\n cancelHidden,\n extra,\n ...otherProps\n } = props;\n const [form] = Form.useForm();\n\n const onClose = hooks.useCallbackRef((e) => {\n props.onClose?.(e);\n });\n\n const onCancelHandle = hooks.useCallbackRef((e) => {\n if (onCancel) {\n const response = onCancel(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const onOkHandle = hooks.useCallbackRef((e) => {\n if (onOk) {\n const response = onOk(form, e);\n if (response && isPromise(response)) {\n return response.then(onClose);\n }\n }\n onClose(e);\n return Promise.resolve();\n });\n\n const operateGroup = (\n <Space>\n {cancelHidden || cancelButtonExtraProps?.hidden ? null : (\n <ButtonWrapper {...cancelButtonExtraProps} onClick={onCancelHandle}>\n {cancelText || '取消'}\n </ButtonWrapper>\n )}\n {okHidden || okButtonExtraProps?.hidden ? null : (\n <ButtonWrapper type=\"primary\" {...okButtonExtraProps} onClick={onOkHandle}>\n {okText || '提交'}\n </ButtonWrapper>\n )}\n </Space>\n );\n\n const operateRenderHandle = () => {\n if (operateRender) {\n return operateRender(form);\n }\n if (!okHidden || !cancelHidden) {\n return operateGroup;\n }\n return null;\n };\n\n const extraRender = typeof extra === 'function' ? extra(form) : extra;\n return (\n <Drawer\n maskClosable={true}\n destroyOnClose\n width={width}\n contentWrapperStyle={{ maxWidth: '95%' }}\n footer={operatePosition === 'footer' ? operateRenderHandle() : null}\n {...otherProps}\n className={classNames('app-dialog-drawer', otherProps.className)}\n extra={operatePosition === 'header' ? operateRenderHandle() : extraRender}\n open={props.open}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(form, { onClose }) : content}\n </Drawer>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Modal, theme } from 'antd';\nimport { CSSProperties } from 'react';\nimport { BlockLayout } from '../../block-layout';\nimport './style.less';\n\nexport type FbaAppLoadingProps = {\n className?: string;\n message?: string;\n mask?: boolean;\n};\n\nexport const FbaAppLoading = (props: FbaAppLoadingProps & { open?: boolean }) => {\n const { className, message, mask } = props;\n const { token } = theme.useToken();\n const colorPrimary = token.colorPrimary;\n\n return (\n <Modal\n maskClosable={false}\n centered={true}\n destroyOnClose\n className={classNames('fba-dialog-loading', className)}\n open={props.open}\n footer={null}\n closable={false}\n style={{ '--fba-loading-color': colorPrimary } as CSSProperties}\n mask={mask}\n >\n <BlockLayout className={classNames('fba-dialog-loading-content')}>\n <div className=\"loader-wrapper\">\n <div className=\"loader-inner\" />\n <div className=\"loader-text\">{message || '处理中'}</div>\n </div>\n </BlockLayout>\n </Modal>\n );\n};\n","import { getUuid } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ReactNode, useContext, useState } from 'react';\nimport { FbaAppContext, FbaAppContextApi } from './context';\nimport { FbaAppAlert, FbaAppAlertProps } from './dialog-alert';\nimport { FbaAppConfirm, FbaAppConfirmProps } from './dialog-confirm';\nimport { FbaAppDrawer, FbaAppDrawerProps } from './dialog-drawer';\nimport { FbaAppLoading, FbaAppLoadingProps } from './dialog-loading';\nimport { FbaAppModal, FbaAppModalProps } from './dialog-modal';\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogDrawer2\n * @returns\n */\nexport const useDialogDrawer = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose?.();\n };\n\n return {\n appDialogDrawer: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const useDialogDrawer2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogDrawerClose2?.();\n };\n\n return {\n appDialogDrawer2: {\n open: (data: FbaAppDrawerProps) => {\n ctx.dialogDrawerOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\n/**\n * 不支持多个弹框,第二个弹框可使用useDialogModal2\n * @returns\n */\nexport const useDialogModal = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose?.();\n };\n\n return {\n appDialogModal: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogModal2 = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogModalClose2?.();\n };\n\n return {\n appDialogModal2: {\n open: (data: FbaAppModalProps) => {\n ctx.dialogModalOpen2?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogAlert = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogAlertClose?.();\n };\n\n return {\n appDialogAlert: {\n open: (data: FbaAppAlertProps) => {\n ctx.dialogAlertOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogConfirm = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogConfirmClose?.();\n };\n\n return {\n appDialogConfirm: {\n open: (data: FbaAppConfirmProps) => {\n ctx.dialogConfirmOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n/**\n * 不支持多个弹框\n * @returns\n */\nexport const useDialogLoading = () => {\n const ctx = useContext(FbaAppContext);\n\n const onClose = () => {\n ctx.dialogLoadingClose?.();\n };\n\n return {\n appDialogLoading: {\n open: (data?: FbaAppLoadingProps) => {\n ctx.dialogLoadingOpen?.({ ...data, open: true });\n return { onClose };\n },\n close: onClose,\n },\n };\n};\n\nexport const FbaApp = (props: { children: ReactNode }) => {\n const [drawerProps, setDrawerProps] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey, setDrawerKey] = useState(getUuid());\n\n const [drawerProps2, setDrawerProps2] = useState<FbaAppDrawerProps>({} as FbaAppDrawerProps);\n const [drawerKey2, setDrawerKey2] = useState(getUuid());\n\n const [modalProps, setModalProps] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey, setModalKey] = useState(getUuid());\n\n const [modalProps2, setModalProps2] = useState<FbaAppModalProps>({} as FbaAppModalProps);\n const [modalKey2, setModalKey2] = useState(getUuid());\n\n const [alertProps, setAlertProps] = useState<FbaAppAlertProps>({} as FbaAppAlertProps);\n const [confirmProps, setConfirmProps] = useState<FbaAppConfirmProps>({} as FbaAppConfirmProps);\n const [loadingProps, setLoadingProps] = useState<FbaAppLoadingProps>();\n\n const [alertKey, setAlertKey] = useState(getUuid());\n const [confirmKey, setConfirmKey] = useState(getUuid());\n const [loadingKey, setLoadingKey] = useState(getUuid());\n\n const dialogDrawerOpen: FbaAppContextApi['dialogDrawerOpen'] = hooks.useCallbackRef((data) => {\n setDrawerProps(data);\n });\n const dialogDrawerClose = hooks.useCallbackRef((e) => {\n setDrawerProps({ ...drawerProps, open: false } as FbaAppDrawerProps);\n drawerProps.onClose?.(e);\n setTimeout(() => {\n setDrawerKey(getUuid());\n }, 200);\n });\n\n const dialogDrawerOpen2: FbaAppContextApi['dialogDrawerOpen2'] = hooks.useCallbackRef((data) => {\n setDrawerProps2(data);\n });\n\n const dialogDrawerClose2 = hooks.useCallbackRef((e) => {\n setDrawerProps2({ ...drawerProps2, open: false } as FbaAppDrawerProps);\n drawerProps2.onClose?.(e);\n setTimeout(() => {\n setDrawerKey2(getUuid());\n }, 200);\n });\n\n const dialogModalOpen: FbaAppContextApi['dialogModalOpen'] = hooks.useCallbackRef((data) => {\n setModalProps(data);\n });\n\n const dialogModalClose = hooks.useCallbackRef(() => {\n setModalProps({ ...modalProps, open: false } as FbaAppModalProps);\n modalProps.onClose?.();\n setTimeout(() => {\n setModalKey(getUuid());\n }, 200);\n });\n\n const dialogModalOpen2: FbaAppContextApi['dialogModalOpen2'] = hooks.useCallbackRef((data) => {\n setModalProps2(data);\n });\n\n const dialogModalClose2 = hooks.useCallbackRef(() => {\n setModalProps2({ ...modalProps2, open: false } as FbaAppModalProps);\n modalProps2.onClose?.();\n setTimeout(() => {\n setModalKey2(getUuid());\n }, 200);\n });\n\n const dialogAlertOpen: FbaAppContextApi['dialogAlertOpen'] = hooks.useCallbackRef((data) => {\n setAlertProps(data);\n });\n\n const dialogAlertClose = hooks.useCallbackRef(() => {\n setAlertProps({ ...alertProps, open: false } as FbaAppAlertProps);\n alertProps.onClose?.();\n setTimeout(() => {\n setAlertKey(getUuid());\n }, 200);\n });\n\n const dialogConfirmOpen: FbaAppContextApi['dialogConfirmOpen'] = hooks.useCallbackRef((data) => {\n setConfirmProps(data);\n });\n\n const dialogConfirmClose = hooks.useCallbackRef(() => {\n setConfirmProps({ ...confirmProps, open: false } as FbaAppConfirmProps);\n confirmProps.onClose?.();\n setTimeout(() => {\n setConfirmKey(getUuid());\n }, 200);\n });\n\n const dialogLoadingOpen: FbaAppContextApi['dialogLoadingOpen'] = hooks.useCallbackRef((data) => {\n setLoadingProps(data);\n });\n\n const dialogLoadingClose = hooks.useCallbackRef(() => {\n setLoadingProps({ ...loadingProps, open: false } as FbaAppLoadingProps);\n setTimeout(() => {\n setLoadingKey(getUuid());\n }, 200);\n });\n\n return (\n <FbaAppContext.Provider\n value={{\n dialogDrawerOpen,\n dialogDrawerClose,\n dialogDrawerOpen2,\n dialogDrawerClose2,\n dialogModalOpen,\n dialogModalClose,\n dialogModalOpen2,\n dialogModalClose2,\n dialogAlertOpen,\n dialogAlertClose,\n dialogConfirmOpen,\n dialogConfirmClose,\n dialogLoadingOpen,\n dialogLoadingClose,\n }}\n >\n <FbaAppDrawer {...drawerProps} onClose={dialogDrawerClose} key={drawerKey}></FbaAppDrawer>\n <FbaAppDrawer {...drawerProps2} onClose={dialogDrawerClose2} key={drawerKey2}></FbaAppDrawer>\n <FbaAppModal {...modalProps} onClose={dialogModalClose} key={modalKey}></FbaAppModal>\n <FbaAppModal {...modalProps2} onClose={dialogModalClose2} key={modalKey2}></FbaAppModal>\n <FbaAppAlert {...alertProps} onClose={dialogAlertClose} key={alertKey}></FbaAppAlert>\n <FbaAppConfirm {...confirmProps} onClose={dialogConfirmClose} key={confirmKey}></FbaAppConfirm>\n <FbaAppLoading {...loadingProps} key={loadingKey}></FbaAppLoading>\n {props.children}\n </FbaAppContext.Provider>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport {\n FbaApp as FbaAppInner,\n useDialogAlert,\n useDialogConfirm,\n useDialogDrawer,\n useDialogDrawer2,\n useDialogLoading,\n useDialogModal,\n useDialogModal2,\n} from './fba-app';\n\nexport const FbaApp = fbaUtils.attachPropertiesToComponent(FbaAppInner, {\n /** 不支持多次弹框,第二个弹框可使用useDialogDrawer2 */\n useDialogDrawer,\n useDialogDrawer2,\n /** 不支持多次弹框,第二个弹框可使用useDialogModal2 */\n useDialogModal,\n useDialogModal2,\n /** 不支持多次弹框 */\n useDialogConfirm,\n /** 不支持多次弹框 */\n useDialogAlert,\n /** 不支持多次弹框 */\n useDialogLoading,\n});\n"],"names":["FbaAppContext","createContext","FbaAppModal","props","_localMessage$FbaDial","_otherProps$styles","titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","bodyHeightPercent","otherProps","_objectWithoutPropertiesLoose","_excluded","_Form$useForm","Form","useForm","form","size","useSize","document","querySelector","localMessage","getFbaLocaleMessage","onClose","_hooks","useCallbackRef","onCancelHandle","e","response","_isPromise","then","Promise","resolve","onOkHandle","operateGroup","_jsx","ButtonWrapper","_extends","onClick","hidden","children","FbaDialogModal","type","footerNew","_isNull","height","useMemo","Modal","maskClosable","_jsxs","FlexLayout","direction","fullIndex","centered","destroyOnClose","styles","body","maxHeight","_classNames","open","FbaAppConfirm","width","FbaAppAlert","_form","FbaAppDrawer","okButtonExtraProps","cancelButtonExtraProps","_props$operatePositio","operatePosition","operateRender","_props$width","extra","Space","operateRenderHandle","extraRender","Drawer","contentWrapperStyle","maxWidth","FbaAppLoading","message","mask","_theme$useToken","theme","useToken","token","colorPrimary","closable","style","BlockLayout","useDialogDrawer","ctx","useContext","dialogDrawerClose","appDialogDrawer","data","dialogDrawerOpen","close","useDialogDrawer2","dialogDrawerClose2","appDialogDrawer2","dialogDrawerOpen2","useDialogModal","dialogModalClose","appDialogModal","dialogModalOpen","useDialogModal2","dialogModalClose2","appDialogModal2","dialogModalOpen2","useDialogAlert","dialogAlertClose","appDialogAlert","dialogAlertOpen","useDialogConfirm","dialogConfirmClose","appDialogConfirm","dialogConfirmOpen","useDialogLoading","dialogLoadingClose","appDialogLoading","dialogLoadingOpen","FbaApp","_useState","useState","drawerProps","setDrawerProps","_useState2","getUuid","drawerKey","setDrawerKey","_useState3","drawerProps2","setDrawerProps2","_useState4","drawerKey2","setDrawerKey2","_useState5","modalProps","setModalProps","_useState6","modalKey","setModalKey","_useState7","modalProps2","setModalProps2","_useState8","modalKey2","setModalKey2","_useState9","alertProps","setAlertProps","_useState10","confirmProps","setConfirmProps","_useState11","loadingProps","setLoadingProps","_useState12","alertKey","setAlertKey","_useState13","confirmKey","setConfirmKey","_useState14","loadingKey","setLoadingKey","setTimeout","Provider","value","_createElement","key","fbaUtils","attachPropertiesToComponent","FbaAppInner"],"mappings":"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"}
package/esm/index.js CHANGED
@@ -60,11 +60,11 @@ import './drag-table/index.css';
60
60
  import './drawer-wrapper/index.css';
61
61
  import './dynamic-node/index.css';
62
62
  import './easy-form/index.css';
63
- import './form-grid/index.css';
64
63
  import './form-wrapper/index.css';
65
64
  import './easy-table/index.css';
66
65
  import './pagination-wrapper/index.css';
67
66
  import './tips-wrapper/index.css';
67
+ import './form-grid/index.css';
68
68
  import './pre-defined-class-name/index.css';
69
69
  import './table-scrollbar/index.css';
70
70
  import './editable-field/index.css';
@@ -81,6 +81,7 @@ import './input-search-wrapper/index.css';
81
81
  import './json-editor/index.css';
82
82
  import './label-value-layout/index.css';
83
83
  import './local-loading/index.css';
84
+ import './mention-editor/index.css';
84
85
  import './mentions-wrapper/index.css';
85
86
  import './modal-action/index.css';
86
87
  import './modal-wrapper/index.css';
@@ -118,5 +119,5 @@ import './tree-selector-wrapper/index.css';
118
119
  import './tree-wrapper/index.css';
119
120
  import './index.css';
120
121
  /*! @flatjs/forge MIT @flatbiz/antd */
121
- export{AceEditorGroovy}from"./ace-editor-groovy/index.js";export{AceEditorJava}from"./ace-editor-java/index.js";export{AceEditorJson}from"./ace-editor-json/index.js";export{AceEditorMysql}from"./ace-editor-mysql/index.js";export{AceEditorXml}from"./ace-editor-xml/index.js";export{AlertWrapper}from"./alert-wrapper/index.js";export{AmountFenInput}from"./amount-fen-input/index.js";export{AmountFenInputFormItem}from"./amount-fen-input-form-item/index.js";export{AnchorSteps}from"./anchor-steps/index.js";export{B as BlockLayout}from"./index-1f45bfd5.js";export{Bootstrap}from"./bootstrap/index.js";export{BoxGrid}from"./box-grid/index.js";export{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-wrapper/index.js";export{CardLayout}from"./card-layout/index.js";export{CardWrapper}from"./card-wrapper/index.js";export{CascaderWrapper}from"./cascader-wrapper/index.js";export{CheckList}from"./check-list/index.js";export{CheckboxWrapper}from"./checkbox-wrapper/index.js";export{ColorPickerWrapper}from"./color-picker-wrapper/index.js";export{C as ConfigProviderWrapper}from"./index-7f4ad045.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{CssNodeHover}from"./css-node-hover/index.js";export{DataRender}from"./data-render/index.js";export{DatePickerWrapper}from"./date-picker-wrapper/index.js";export{DateRangePickerWrapper}from"./date-range-picker-wrapper/index.js";export{DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item/index.js";export{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{DragEditableTable}from"./drag-editable-table/index.js";export{DragFormList}from"./drag-form-list/index.js";export{DragTable}from"./drag-table/index.js";export{DrawerWrapper}from"./drawer-wrapper/index.js";export{DropdownMenuWrapper}from"./dropdown-menu-wrapper/index.js";export{dynamicNode}from"./dynamic-node/index.js";export{EasyForm}from"./easy-form/index.js";export{EasyTable}from"./easy-table/index.js";export{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{ErrorBoundaryWrapper}from"./error-boundary-wrapper/index.js";export{FbaApp}from"./fba-app/index.js";export{fbaHooks}from"./fba-hooks/index.js";export{fbaUtils}from"./fba-utils/index.js";export{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{FormItemText}from"./form-item-text/index.js";export{FormItemWrapper}from"./form-item-wrapper/index.js";export{FormListWrapper}from"./form-list-wrapper/index.js";export{FormWrapper}from"./form-wrapper/index.js";export{Gap}from"./gap/index.js";export{IconWrapper}from"./icon-wrapper/index.js";export{InputSearchWrapper}from"./input-search-wrapper/index.js";export{InputTextAreaWrapper}from"./input-text-area-wrapper/index.js";export{InputWrapper}from"./input-wrapper/index.js";export{JsonEditor}from"./json-editor/index.js";export{LabelValueLayout}from"./label-value-layout/index.js";export{LocalLoading}from"./local-loading/index.js";export{MentionsWrapper}from"./mentions-wrapper/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-6677fbfc.js";export{Permission}from"./permission/index.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{RadioGroupWrapper}from"./radio-group-wrapper/index.js";export{RelationTree}from"./relation-tree/index.js";export{RequestStatus}from"./request-status/index.js";export{RichTextEditor}from"./rich-text-editor/index.js";export{RichTextViewer}from"./rich-text-viewer/index.js";export{RollLocationCenter}from"./roll-location-center/index.js";export{RollLocationInView}from"./roll-location-in-view/index.js";export{RuleDescribe}from"./rule-describe/index.js";export{SearchForm}from"./search-form/index.js";export{SearchMenu}from"./search-menu/index.js";export{SelectorWrapper}from"./selector-wrapper/index.js";export{SelectorWrapperSearch}from"./selector-wrapper-search/index.js";export{SelectorWrapperSimple}from"./selector-wrapper-simple/index.js";export{SimpleLayout}from"./simple-layout/index.js";export{SmsCountDown}from"./sms-count-down/index.js";export{SplitWrapper}from"./split-wrapper/index.js";export{styles}from"./styles/index.js";export{SvgHttpView}from"./svg-http-view/index.js";export{SwitchConfirmWrapper}from"./switch-confirm-wrapper/index.js";export{SwitchWrapper}from"./switch-wrapper/index.js";export{tableCellRender}from"./table-cell-render/index.js";export{TableScrollbar}from"./table-scrollbar/index.js";export{TableTitleTooltip}from"./table-title-tooltip/index.js";export{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{TextOverflow}from"./text-overflow/index.js";export{TextOverflowRender}from"./text-overflow-render/index.js";export{TextSymbolWrapper}from"./text-symbol-wrapper/index.js";export{TimePickerWrapper}from"./time-picker-wrapper/index.js";export{TimeRangePickerWrapper}from"./time-range-picker-wrapper/index.js";export{TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item/index.js";export{TipsTitle}from"./tips-title/index.js";export{TipsWrapper}from"./tips-wrapper/index.js";export{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";import"./_rollupPluginBabelHelpers-a0769acd.js";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@dimjs/lang/cjs/is-object";import"@flatbiz/utils";import"react";import"react-ace";import"./ext-language_tools-0c27f877.js";import"react/jsx-runtime";import"./mode-json-062fdb24.js";import"sql-formatter";import"antd";import"xml-formatter";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-array";import"@dimjs/utils/cjs/extend";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"./time-53b3f55f.js";import"react-dom/client";import"./dom-4d04aa64.js";import"./context-1f2093c6.js";import"@dimjs/lang/cjs/is-null";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@dnd-kit/modifiers";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";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/json";import"pubsub-js";import"react-split";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";
122
+ export{AceEditorGroovy}from"./ace-editor-groovy/index.js";export{AceEditorJava}from"./ace-editor-java/index.js";export{AceEditorJson}from"./ace-editor-json/index.js";export{AceEditorMysql}from"./ace-editor-mysql/index.js";export{AceEditorXml}from"./ace-editor-xml/index.js";export{AlertWrapper}from"./alert-wrapper/index.js";export{AmountFenInput}from"./amount-fen-input/index.js";export{AmountFenInputFormItem}from"./amount-fen-input-form-item/index.js";export{AnchorSteps}from"./anchor-steps/index.js";export{B as BlockLayout}from"./index-1f45bfd5.js";export{Bootstrap}from"./bootstrap/index.js";export{BoxGrid,useBoxBreakpoint}from"./box-grid/index.js";export{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-wrapper/index.js";export{CardLayout}from"./card-layout/index.js";export{CardWrapper}from"./card-wrapper/index.js";export{CascaderWrapper}from"./cascader-wrapper/index.js";export{CheckList}from"./check-list/index.js";export{CheckboxWrapper}from"./checkbox-wrapper/index.js";export{ColorPickerWrapper}from"./color-picker-wrapper/index.js";export{C as ConfigProviderWrapper}from"./index-7f4ad045.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{CssNodeHover}from"./css-node-hover/index.js";export{DataRender}from"./data-render/index.js";export{DatePickerWrapper}from"./date-picker-wrapper/index.js";export{DateRangePickerWrapper}from"./date-range-picker-wrapper/index.js";export{DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item/index.js";export{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{DragEditableTable}from"./drag-editable-table/index.js";export{DragFormList}from"./drag-form-list/index.js";export{DragTable}from"./drag-table/index.js";export{DrawerWrapper}from"./drawer-wrapper/index.js";export{DropdownMenuWrapper}from"./dropdown-menu-wrapper/index.js";export{dynamicNode}from"./dynamic-node/index.js";export{EasyForm}from"./easy-form/index.js";export{EasyTable}from"./easy-table/index.js";export{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{ErrorBoundaryWrapper}from"./error-boundary-wrapper/index.js";export{FbaApp}from"./fba-app/index.js";export{fbaHooks}from"./fba-hooks/index.js";export{fbaUtils}from"./fba-utils/index.js";export{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{FormItemText}from"./form-item-text/index.js";export{FormItemWrapper}from"./form-item-wrapper/index.js";export{FormListWrapper}from"./form-list-wrapper/index.js";export{FormWrapper}from"./form-wrapper/index.js";export{Gap}from"./gap/index.js";export{IconWrapper}from"./icon-wrapper/index.js";export{InputSearchWrapper}from"./input-search-wrapper/index.js";export{InputTextAreaWrapper}from"./input-text-area-wrapper/index.js";export{InputWrapper}from"./input-wrapper/index.js";export{JsonEditor}from"./json-editor/index.js";export{LabelValueLayout}from"./label-value-layout/index.js";export{LocalLoading}from"./local-loading/index.js";export{MetionEditor}from"./mention-editor/index.js";export{MentionsWrapper}from"./mentions-wrapper/index.js";export{ModalAction}from"./modal-action/index.js";export{ModalWrapper}from"./modal-wrapper/index.js";export{PageFixedFooter}from"./page-fixed-footer/index.js";export{Page404}from"./page404/index.js";export{P as PaginationWrapper}from"./index-6677fbfc.js";export{Permission}from"./permission/index.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{RadioGroupWrapper}from"./radio-group-wrapper/index.js";export{RelationTree}from"./relation-tree/index.js";export{RequestStatus}from"./request-status/index.js";export{RichTextEditor}from"./rich-text-editor/index.js";export{RichTextViewer}from"./rich-text-viewer/index.js";export{RollLocationCenter}from"./roll-location-center/index.js";export{RollLocationInView}from"./roll-location-in-view/index.js";export{RuleDescribe}from"./rule-describe/index.js";export{SearchForm}from"./search-form/index.js";export{SearchMenu}from"./search-menu/index.js";export{SelectorWrapper}from"./selector-wrapper/index.js";export{SelectorWrapperSearch}from"./selector-wrapper-search/index.js";export{SelectorWrapperSimple}from"./selector-wrapper-simple/index.js";export{SimpleLayout}from"./simple-layout/index.js";export{SmsCountDown}from"./sms-count-down/index.js";export{SplitWrapper}from"./split-wrapper/index.js";export{styles}from"./styles/index.js";export{SvgHttpView}from"./svg-http-view/index.js";export{SwitchConfirmWrapper}from"./switch-confirm-wrapper/index.js";export{SwitchWrapper}from"./switch-wrapper/index.js";export{tableCellRender}from"./table-cell-render/index.js";export{TableScrollbar}from"./table-scrollbar/index.js";export{TableTitleTooltip}from"./table-title-tooltip/index.js";export{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{TextOverflow}from"./text-overflow/index.js";export{TextOverflowRender}from"./text-overflow-render/index.js";export{TextSymbolWrapper}from"./text-symbol-wrapper/index.js";export{TimePickerWrapper}from"./time-picker-wrapper/index.js";export{TimeRangePickerWrapper}from"./time-range-picker-wrapper/index.js";export{TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item/index.js";export{TipsTitle}from"./tips-title/index.js";export{TipsWrapper}from"./tips-wrapper/index.js";export{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";import"./_rollupPluginBabelHelpers-a0769acd.js";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@dimjs/lang/cjs/is-object";import"@flatbiz/utils";import"react";import"react-ace";import"./ext-language_tools-0c27f877.js";import"react/jsx-runtime";import"./mode-json-062fdb24.js";import"sql-formatter";import"antd";import"xml-formatter";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-number";import"ahooks";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-array";import"@dimjs/utils/cjs/extend";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"./time-53b3f55f.js";import"react-dom/client";import"./dom-4d04aa64.js";import"./context-1f2093c6.js";import"@dimjs/lang/cjs/is-null";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@dnd-kit/modifiers";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";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"@flatbiz/antd";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-split";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";
122
123
  //# sourceMappingURL=index.js.map
File without changes
@@ -0,0 +1,5 @@
1
+ /* eslint-disable */
2
+ import './index.css';
3
+ /*! @flatjs/forge MIT @flatbiz/antd */
4
+ import{a as r,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as n}from"@wove/react/cjs/hooks";import{Flex as t,Button as o}from"antd";import{useRef as a,useMemo as i}from"react";import{MentionsWrapper as l}from"../mentions-wrapper/index.js";import{jsxs as u,jsx as c}from"react/jsx-runtime";import"@flatbiz/antd";import"@flatbiz/utils";import"ahooks";var f=["prefix","operations"];var p=function p(v){var s=a({});var m=a();var d=a(0);var h=v.prefix,g=v.operations,x=g===void 0?[]:g,C=r(v,f);var b=function r(e){var n=v.value||"";var t=(P==null?void 0:P.selectionStart)||d.current;var o=(e.codeAdapter==null?void 0:e.codeAdapter())||""+e.codePrefix+B(e.codePrefix);var a=o.length+((h==null?void 0:h.length)||0)+2;if(n){n=n.slice(0,t)+k(o)+n.slice(t)}else{n=k(o)}v.onChange==null?void 0:v.onChange(n);if(v.onSelectParam){v.onSelectParam({code:o,type:e.type,value:undefined},h)}d.current+=a};var y=function r(e){var n;d.current=((n=v.value)==null?void 0:n.length)||0;if(v.onBlur){v.onBlur(e)}};var k=n.useCallbackRef((function(r){return(h||"")+"{"+r+"}"}));var B=n.useCallbackRef((function(r){var e=s.current;if(e[r]>=0){e[r]+=1}else{e[r]=0}return e[r]}));var P=i((function(){return m.current?m.current.getInputInstance():null}),[m.current]);var j=i((function(){var r=(v.params||[]).map((function(r){return k(r.code)}));var e=new Set(r);return Array.from(e)}),[v.params]);return u("div",{children:[x&&x.length>0&&c(t,{gap:4,style:{marginBottom:8},children:x.map((function(r){return c(o,{type:"text",icon:r.icon,onClick:function e(){return b(r)},children:r.label&&c("span",{children:r.label})},r.type)}))}),c(l,e({},C,{ref:m,prefix:h,options:j,value:v.value,onBlur:y,onChange:v.onChange,onCursorChange:function r(e){d.current=e}}))]})};export{p as MetionEditor};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/mention-editor/metion-editor.tsx"],"sourcesContent":["import { type TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Flex } from 'antd';\nimport { useMemo, useRef, type ReactElement } from 'react';\nimport { MentionsWrapper, type MentionsWrapperProps } from '../mentions-wrapper/mentions';\nimport { type ParamItem } from './types';\n\nexport type OperationPresetProps = {\n /** icon */\n icon: ReactElement;\n /** 模版参数文案 */\n label?: string;\n /** 模版参数类型 */\n type: string;\n /** 自增code前缀 */\n codePrefix: string;\n /** 自定义生成模版参数code */\n codeAdapter?: () => string | undefined;\n};\n\nexport type MetionEditorProps = Omit<MentionsWrapperProps, 'prefix'> & {\n /**\n * onChange\n * @item 点击的预设模版参数\n */\n onSelectParam?: (item: ParamItem, prefix?: string) => void;\n /** 模版参数前缀 & | $ */\n prefix?: string;\n /** editor 支持添加的模版参数类型 */\n operations?: OperationPresetProps[];\n /** 模版参数列表 */\n params?: ParamItem[] | undefined;\n};\n\n/**\n * 基于MetionWrapper封装的模版字符串配置组件\n * 1. 提供变量,数字,链接等可选的模版参数\n * 2. 不同类型模版参数可配置多个\n * 3. mention 会根据 传入的params自动推断出关键字\n * 4. 模版参数建议都以${_xxx}为格式\n * 5. Demo: https://fex.qa.tcshuke.com/docs/admin/main/widget?key=mention-editor\n */\nexport const MetionEditor = (props: MetionEditorProps) => {\n const iMap = useRef<Record<string, number>>({});\n const mentionRef = useRef<TAny>();\n const curPosition = useRef<number>(0);\n\n const { prefix, operations = [], ...otherProps } = props;\n\n const onAddParam = (opt: OperationPresetProps) => {\n let content = props.value || '';\n const position = inputInstance?.selectionStart || curPosition.current;\n const param = opt.codeAdapter?.() || `${opt.codePrefix}${getIndex(opt.codePrefix)}`;\n const addPos = param.length + (prefix?.length || 0) + 2;\n if (content) {\n content = content.slice(0, position) + getOptionCode(param) + content.slice(position);\n } else {\n content = getOptionCode(param);\n }\n props.onChange?.(content);\n if (props.onSelectParam) {\n props.onSelectParam(\n {\n code: param,\n type: opt.type as any,\n value: undefined,\n },\n prefix,\n );\n }\n curPosition.current += addPos;\n };\n\n const onInputBlur = (e) => {\n curPosition.current = props.value?.length || 0;\n if (props.onBlur) {\n props.onBlur(e);\n }\n };\n\n const getOptionCode = hooks.useCallbackRef((code: string) => {\n return (prefix || '') + '{' + code + '}';\n });\n\n const getIndex = hooks.useCallbackRef((code) => {\n const indexMap = iMap.current;\n if (indexMap[code] >= 0) {\n indexMap[code] += 1;\n } else {\n indexMap[code] = 0;\n }\n return indexMap[code];\n });\n\n const inputInstance = useMemo(() => {\n return mentionRef.current ? mentionRef.current.getInputInstance() : null;\n }, [mentionRef.current]);\n\n const options = useMemo(() => {\n const options = (props.params || []).map((item) => getOptionCode(item.code));\n const optionSet = new Set(options);\n return Array.from(optionSet);\n }, [props.params]);\n\n return (\n <div>\n {operations && operations.length > 0 && (\n <Flex gap={4} style={{ marginBottom: 8 }}>\n {operations.map((operation) => {\n return (\n <Button\n key={operation.type}\n type=\"text\"\n icon={operation.icon}\n onClick={() => onAddParam(operation)}\n >\n {operation.label && <span>{operation.label}</span>}\n </Button>\n );\n })}\n </Flex>\n )}\n <MentionsWrapper\n {...otherProps}\n ref={mentionRef}\n prefix={prefix}\n options={options}\n value={props.value}\n onBlur={onInputBlur}\n onChange={props.onChange}\n onCursorChange={(position) => {\n curPosition.current = position;\n }}\n />\n </div>\n );\n};\n"],"names":["MetionEditor","props","iMap","useRef","mentionRef","curPosition","prefix","_props$operations","operations","otherProps","_objectWithoutPropertiesLoose","_excluded","onAddParam","opt","content","value","position","inputInstance","selectionStart","current","param","codeAdapter","codePrefix","getIndex","addPos","length","slice","getOptionCode","onChange","onSelectParam","code","type","undefined","onInputBlur","e","_props$value","onBlur","_hooks","useCallbackRef","indexMap","useMemo","getInputInstance","options","params","map","item","optionSet","Set","Array","from","_jsxs","children","_jsx","Flex","gap","style","marginBottom","operation","Button","icon","onClick","label","MentionsWrapper","_extends","ref","onCursorChange"],"mappings":";qZA0CaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAMC,EAAOC,EAA+B,CAAA,GAC5C,IAAMC,EAAaD,IACnB,IAAME,EAAcF,EAAe,GAEnC,IAAQG,EAA2CL,EAA3CK,OAAMC,EAAqCN,EAAnCO,WAAAA,EAAUD,SAAG,EAAA,GAAEA,EAAKE,EAAUC,EAAKT,EAAKU,GAExD,IAAMC,EAAa,SAAbA,EAAcC,GAClB,IAAIC,EAAUb,EAAMc,OAAS,GAC7B,IAAMC,GAAWC,GAAa,UAAA,EAAbA,EAAeC,iBAAkBb,EAAYc,QAC9D,IAAMC,GAAQP,EAAIQ,aAAW,UAAA,EAAfR,EAAIQ,gBAAsBR,GAAAA,EAAIS,WAAaC,EAASV,EAAIS,YACtE,IAAME,EAASJ,EAAMK,SAAUnB,GAAAA,UAAAA,EAAAA,EAAQmB,SAAU,GAAK,EACtD,GAAIX,EAAS,CACXA,EAAUA,EAAQY,MAAM,EAAGV,GAAYW,EAAcP,GAASN,EAAQY,MAAMV,EAC9E,KAAO,CACLF,EAAUa,EAAcP,EAC1B,CACAnB,EAAM2B,UAAN3B,UAAAA,EAAAA,EAAM2B,SAAWd,GACjB,GAAIb,EAAM4B,cAAe,CACvB5B,EAAM4B,cACJ,CACEC,KAAMV,EACNW,KAAMlB,EAAIkB,KACVhB,MAAOiB,WAET1B,EAEJ,CACAD,EAAYc,SAAWK,GAGzB,IAAMS,EAAc,SAAdA,EAAeC,GAAM,IAAAC,EACzB9B,EAAYc,UAAUgB,EAAAlC,EAAMc,QAANoB,UAAAA,EAAAA,EAAaV,SAAU,EAC7C,GAAIxB,EAAMmC,OAAQ,CAChBnC,EAAMmC,OAAOF,EACf,GAGF,IAAMP,EAAgBU,EAAMC,gBAAe,SAACR,GAC1C,OAAQxB,GAAU,IAAM,IAAMwB,EAAO,GACvC,IAEA,IAAMP,EAAWc,EAAMC,gBAAe,SAACR,GACrC,IAAMS,EAAWrC,EAAKiB,QACtB,GAAIoB,EAAST,IAAS,EAAG,CACvBS,EAAST,IAAS,CACpB,KAAO,CACLS,EAAST,GAAQ,CACnB,CACA,OAAOS,EAAST,EAClB,IAEA,IAAMb,EAAgBuB,GAAQ,WAC5B,OAAOpC,EAAWe,QAAUf,EAAWe,QAAQsB,mBAAqB,IACtE,GAAG,CAACrC,EAAWe,UAEf,IAAMuB,EAAUF,GAAQ,WACtB,IAAME,GAAWzC,EAAM0C,QAAU,IAAIC,KAAI,SAACC,GAAI,OAAKlB,EAAckB,EAAKf,SACtE,IAAMgB,EAAY,IAAIC,IAAIL,GAC1B,OAAOM,MAAMC,KAAKH,EACpB,GAAG,CAAC7C,EAAM0C,SAEV,OACEO,EAAA,MAAA,CAAAC,SAAA,CACG3C,GAAcA,EAAWiB,OAAS,GACjC2B,EAACC,EAAI,CAACC,IAAK,EAAGC,MAAO,CAAEC,aAAc,GAAIL,SACtC3C,EAAWoC,KAAI,SAACa,GACf,OACEL,EAACM,EAAM,CAEL3B,KAAK,OACL4B,KAAMF,EAAUE,KAChBC,QAAS,SAAAA,IAAA,OAAMhD,EAAW6C,EAAW,EAAAN,SAEpCM,EAAUI,OAAST,EAAA,OAAA,CAAAD,SAAOM,EAAUI,SALhCJ,EAAU1B,WAWzBqB,EAACU,EAAeC,KACVtD,EAAU,CACduD,IAAK5D,EACLE,OAAQA,EACRoC,QAASA,EACT3B,MAAOd,EAAMc,MACbqB,OAAQH,EACRL,SAAU3B,EAAM2B,SAChBqC,eAAgB,SAAAA,EAACjD,GACfX,EAAYc,QAAUH,CACxB,OAIR"}
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable */
2
- import './../fba-hooks/index.css';
3
2
  import './index.css';
4
3
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import{a as r,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as n}from"@wove/react/cjs/hooks";import{toArray as t}from"@flatbiz/utils";import{useEventListener as o}from"ahooks";import{Mentions as i}from"antd";import{useRef as a,useState as l,useMemo as u}from"react";import{fbaHooks as s}from"../fba-hooks/index.js";import{jsx as v}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";var c=function r(e){if(!e.value||!e.overallKeyWords.length)return[];var n=Array.from(new Set(e.overallKeyWords||[]));var t=[];n.forEach((function(r){var n;if(!((n=e.value)!=null&&n.includes(r)))return;var o=r.replace(/\$/g,"\\$").replace(/\{/g,"\\{").replace(/\}/g,"\\}").replace(/\]/g,"\\]").replace(/\[/g,"\\[");var i=new RegExp(o,"g");var a=[];var l;while((l=i.exec(e.value))!==null){a.push(l.index)}var u=[];a.forEach((function(e){u.push({start:e+1,end:e+r.length})}));t.push(u)}));return t};var f=function r(e){for(var n=0;n<e.keyWordsPosition.length;n++){var t=e.keyWordsPosition[n].find((function(r){return e.cursorPosition>=r.start&&e.cursorPosition<r.end}));if(t)return t}return undefined};var d=["value","onChange","onClick","onCursorChange","options","prefix"];var p=function p(g){var h=g.value,m=g.onChange,k=g.onClick,y=g.onCursorChange,P=g.options,S=g.prefix,w=r(g,d);var C=n.useId(undefined,"overall-input");var R=a();var b=l(0),x=b[0],W=b[1];var j=a(false);var A=h||"";var E=u((function(){if(P){return c({overallKeyWords:P||[],value:A})}return[]}),[P,A]);var K=function r(){var e;return(e=R.current)==null?void 0:e.textarea};s.useEffectCustom((function(){y==null?void 0:y(x||0)}),[x]);o("keydown",(function(r){var e;var n=(e=K())==null?void 0:e.selectionStart;if(["ArrowLeft","ArrowRight"].includes(r.code)){var t=0;if(r.code==="ArrowLeft"){if(n-1<0)return;t=n-1;W(t);var o=f({keyWordsPosition:E,cursorPosition:t});if(o){var i;(i=K())==null?void 0:i.setSelectionRange(o.start,o.start)}}else if(r.code==="ArrowRight"){if(n+1>A.length)return;t=n+1;W(t);var a=f({keyWordsPosition:E,cursorPosition:t});if(a){var l;(l=K())==null?void 0:l.setSelectionRange(a.end-1,a.end-1)}}}else if(r.code==="Backspace"){var u=f({keyWordsPosition:E,cursorPosition:n-1});if(u){j.current=true;var s=A.substring(0,u.start-1)+A.substring(u.end);setTimeout((function(){var r;(r=K())==null?void 0:r.setSelectionRange(u.start-1,u.start-1)}),50);if(!s){j.current=false}m==null?void 0:m(s)}}}),{target:function r(){return document.querySelector("#"+C)}});o("keyup",(function(r){var e;var n=((e=K())==null?void 0:e.selectionStart)||0;if(["ArrowUp","ArrowDown"].includes(r.code)){W(n);var t=f({keyWordsPosition:E,cursorPosition:n});if(t){if(n-t.start<t.end-n){var o;(o=K())==null?void 0:o.setSelectionRange(t.start-1,t.start-1)}else{var i;(i=K())==null?void 0:i.setSelectionRange(t.end,t.end)}}}}),{target:function r(){return document.querySelector("#"+C)}});var q=n.useCallbackRef((function(r){var e;if(w.disabled)return;if(j.current){j.current=false;return}var n=((e=K())==null?void 0:e.selectionStart)||0;W(n);m==null?void 0:m(r)}));var B=n.useCallbackRef((function(r){var e;var n=((e=K())==null?void 0:e.selectionStart)||0;W(n);k==null?void 0:k(r.target.value);var t=f({keyWordsPosition:E,cursorPosition:n});if(t){if(n-t.start<t.end-n){var o;(o=K())==null?void 0:o.setSelectionRange(t.start-1,t.start-1)}else{var i;(i=K())==null?void 0:i.setSelectionRange(t.end,t.end)}}}));var L=u((function(){var r=t(S);return(P==null?void 0:P.map((function(e){var n=e;for(var t=0;t<r.length;t++){var o=r[t];if(n.startsWith(o)){n=n.replace(o,"");break}}return{label:n,value:n}})))||[]}),[P,S]);return v(i,e({notFoundContent:v("div",{children:"暂无数据"}),rows:3},w,{prefix:S,style:e({width:"100%"},w.style),id:C,value:A,ref:R,onChange:q,onClick:B,split:"",validateSearch:function r(e){if(!L.length)return false;var n=L.find((function(r){return e.indexOf(r.value)>=0}));return n&&e.length>n.value.length?false:true},options:L}))};export{p as MentionsWrapper};
4
+ import{a as r,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as n}from"@wove/react/cjs/hooks";import{fbaHooks as t}from"@flatbiz/antd";import{toArray as o}from"@flatbiz/utils";import{useEventListener as i}from"ahooks";import{Mentions as a}from"antd";import{forwardRef as l,useRef as u,useState as s,useMemo as v,useImperativeHandle as c}from"react";import{jsx as f}from"react/jsx-runtime";var d=function r(e){if(!e.value||!e.overallKeyWords.length)return[];var n=Array.from(new Set(e.overallKeyWords||[]));var t=[];n.forEach((function(r){var n;if(!((n=e.value)!=null&&n.includes(r)))return;var o=r.replace(/\$/g,"\\$").replace(/\{/g,"\\{").replace(/\}/g,"\\}").replace(/\]/g,"\\]").replace(/\[/g,"\\[");var i=new RegExp(o,"g");var a=[];var l;while((l=i.exec(e.value))!==null){a.push(l.index)}var u=[];a.forEach((function(e){u.push({start:e+1,end:e+r.length})}));t.push(u)}));return t};var g=function r(e){for(var n=0;n<e.keyWordsPosition.length;n++){var t=e.keyWordsPosition[n].find((function(r){return e.cursorPosition>=r.start&&e.cursorPosition<r.end}));if(t)return t}return undefined};var p=["value","onChange","onClick","onCursorChange","onSelect","options","prefix"];var h=l((function(l,h){var m=l.value,k=l.onChange,S=l.onClick,y=l.onCursorChange,P=l.onSelect,w=l.options,C=l.prefix,R=r(l,p);var W=n.useId(undefined,"overall-input");var b=u();var x=s(0),A=x[0],E=x[1];var j=u(false);var I=m||"";var K=v((function(){if(w){return d({overallKeyWords:w||[],value:I})}return[]}),[w,I]);var q=function r(){var e;return(e=b.current)==null?void 0:e.textarea};t.useEffectCustom((function(){y==null?void 0:y(A||0)}),[A]);i("keydown",(function(r){var e,n;var t=(e=q())==null?void 0:e.selectionStart;var o=(n=q())==null?void 0:n.selectionEnd;if(["ArrowLeft","ArrowRight"].includes(r.code)){var i=0;if(r.code==="ArrowLeft"){if(t-1<0)return;i=t-1;E(i);var a=g({keyWordsPosition:K,cursorPosition:i});if(a){var l;(l=q())==null?void 0:l.setSelectionRange(a.start,a.start)}}else if(r.code==="ArrowRight"){if(t+1>I.length)return;i=t+1;E(i);var u=g({keyWordsPosition:K,cursorPosition:i});if(u){var s;(s=q())==null?void 0:s.setSelectionRange(u.end-1,u.end-1)}}}else if(r.code==="Backspace"){if(t!==o){return}var v=g({keyWordsPosition:K,cursorPosition:t-1});if(v){j.current=true;var c=I.substring(0,v.start-1)+I.substring(v.end);setTimeout((function(){var r;(r=q())==null?void 0:r.setSelectionRange(v.start-1,v.start-1)}),50);if(!c){j.current=false}k==null?void 0:k(c)}}}),{target:function r(){return document.querySelector("#"+W)}});i("keyup",(function(r){var e;var n=((e=q())==null?void 0:e.selectionStart)||0;if(["ArrowUp","ArrowDown"].includes(r.code)){E(n);var t=g({keyWordsPosition:K,cursorPosition:n});if(t){if(n-t.start<t.end-n){var o;(o=q())==null?void 0:o.setSelectionRange(t.start-1,t.start-1)}else{var i;(i=q())==null?void 0:i.setSelectionRange(t.end,t.end)}}}}),{target:function r(){return document.querySelector("#"+W)}});var z=n.useCallbackRef((function(r){var e;if(R.disabled)return;if(j.current){j.current=false;return}var n=((e=q())==null?void 0:e.selectionStart)||0;E(n);k==null?void 0:k(r)}));var B=n.useCallbackRef((function(r){var e;var n=((e=q())==null?void 0:e.selectionStart)||0;E(n);S==null?void 0:S(r.target.value);var t=g({keyWordsPosition:K,cursorPosition:n});if(t){if(n-t.start<t.end-n){var o;(o=q())==null?void 0:o.setSelectionRange(t.start-1,t.start-1)}else{var i;(i=q())==null?void 0:i.setSelectionRange(t.end,t.end)}}}));var L=function r(e,n){var t;var o=((t=e.value)==null?void 0:t.length)||0;E((function(r){return r+o}));if(P){P(e,n)}};var $=v((function(){var r=o(C);return(w==null?void 0:w.map((function(e){var n=e;for(var t=0;t<r.length;t++){var o=r[t];if(n.startsWith(o)){n=n.replace(o,"");break}}return{label:n,value:n}})))||[]}),[w,C]);c(h,(function(){return{getInputInstance:q}}));return f(a,e({notFoundContent:f("div",{children:"暂无数据"}),rows:3},R,{prefix:C,style:e({width:"100%"},R.style),id:W,value:I,ref:b,onSelect:L,onChange:z,onClick:B,split:"",validateSearch:function r(e){if(!$.length)return false;var n=$.find((function(r){return e.indexOf(r.value)>=0}));return n&&e.length>n.value.length?false:true},options:$}))}));export{h as MentionsWrapper};
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/mentions-wrapper/utils.ts","@flatbiz/antd/src/mentions-wrapper/mentions.tsx"],"sourcesContent":["import { type OverallKeyWordsPosition } from './types';\n\nexport const getOverallKeyWordsPosition = (params: { overallKeyWords: string[]; value?: string }) => {\n if (!params.value || !params.overallKeyWords.length) return [];\n const overallKeyWordsNew = Array.from(new Set(params.overallKeyWords || []));\n const positionItem: OverallKeyWordsPosition[][] = [];\n overallKeyWordsNew.forEach((item) => {\n if (!params.value?.includes(item)) return;\n const newItem = item\n .replace(/\\$/g, '\\\\$')\n .replace(/\\{/g, '\\\\{')\n .replace(/\\}/g, '\\\\}')\n .replace(/\\]/g, '\\\\]')\n .replace(/\\[/g, '\\\\[');\n const regex = new RegExp(newItem, 'g');\n const positions: number[] = [];\n let match;\n // console.log\n while ((match = regex.exec(params.value)) !== null) {\n positions.push(match.index as number);\n }\n const innerList: OverallKeyWordsPosition[] = [];\n positions.forEach((temp) => {\n innerList.push({ start: temp + 1, end: temp + item.length });\n });\n positionItem.push(innerList);\n });\n return positionItem;\n};\n\n/**\n * 判断光标是否处在关键词位置内\n */\nexport const judgmentCursorInKeyWordsPosition = (params: {\n keyWordsPosition: OverallKeyWordsPosition[][];\n cursorPosition: number;\n}) => {\n for (let index = 0; index < params.keyWordsPosition.length; index++) {\n const element = params.keyWordsPosition[index].find((temp) => {\n return params.cursorPosition >= temp.start && params.cursorPosition < temp.end;\n });\n if (element) return element;\n }\n return undefined;\n};\n","import { toArray, type TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useEventListener } from 'ahooks';\nimport { Mentions, type MentionProps } from 'antd';\nimport { useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { getOverallKeyWordsPosition, judgmentCursorInKeyWordsPosition } from './utils';\n\nexport type MentionsWrapperProps = Omit<\n MentionProps,\n | 'value'\n | 'onChange'\n | 'onClick'\n | 'onCursorChange'\n | 'options'\n | 'id'\n | 'split'\n | 'validateSearch'\n | 'ref'\n | 'prefix'\n> & {\n value?: string;\n onChange?: (value?: string) => void;\n /** 设置列表提示关键字,例如:@、$等 */\n prefix?: string | string[];\n onClick?: (value?: string) => void;\n /** 光标移动回调 */\n onCursorChange?: (position: number) => void;\n /**\n * 输入框内整体关键词列表\n * ```\n * 整体关键词交互\n * 1. 光标可整体移动\n * 2. 光标不会存在关键词内部\n * 3. 删除时,整体删除\n * ```\n */\n options?: string[];\n};\n\n/**\n * 基于Antd Mentions进行二次封装,可实现输入内关键字整体控制,包括光标移动、关键词删除等\n * ```\n * 可实现\n * 1. 控制光标输入\n * 2. 可设置关键词,光标不会出现在关键词内部\n * 3. 可整体删除关键词\n *\n * 应用场景例如:\n * 1. 公式输入\n * (【xx金额1】+【xx金额2】)*2\n * <MentionsWrapper prefix=\"$\" options={['【xx金额1】', '【xx金额2】']}/>\n *\n * 2. 短信模板设置\n * 您的订单号为${订单号},订单交易时间为${订单时间}\n * <MentionsWrapper prefix=\"$\" options={['${订单号}', '${订单时间}']}/>\n *\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/other/widget\n * ```\n *\n */\nexport const MentionsWrapper = (props: MentionsWrapperProps) => {\n const { value, onChange, onClick, onCursorChange, options, prefix, ...otherProps } = props;\n const id = hooks.useId(undefined, 'overall-input');\n const inputInnerRef = useRef<TAny>();\n const [cursorPosition, setCursorPosition] = useState(0);\n const invalidOnChangeRef = useRef(false);\n const valueNew = value || '';\n /** 关键词位置 */\n const overallKeyWordsPosition = useMemo(() => {\n if (options) {\n return getOverallKeyWordsPosition({\n overallKeyWords: options || [],\n value: valueNew,\n });\n }\n return [];\n }, [options, valueNew]);\n\n const getInputInstance = () => {\n return inputInnerRef.current?.textarea;\n };\n\n fbaHooks.useEffectCustom(() => {\n onCursorChange?.(cursorPosition || 0);\n }, [cursorPosition]);\n\n useEventListener(\n 'keydown',\n (ev) => {\n const selectionStart = getInputInstance()?.selectionStart as number;\n if (['ArrowLeft', 'ArrowRight'].includes(ev.code)) {\n let positionValue = 0;\n if (ev.code === 'ArrowLeft') {\n if (selectionStart - 1 < 0) return;\n positionValue = selectionStart - 1;\n setCursorPosition(positionValue);\n const targret = judgmentCursorInKeyWordsPosition({\n keyWordsPosition: overallKeyWordsPosition,\n cursorPosition: positionValue,\n });\n if (targret) {\n getInputInstance()?.setSelectionRange(targret.start, targret.start);\n }\n } else if (ev.code === 'ArrowRight') {\n if (selectionStart + 1 > valueNew.length) return;\n positionValue = selectionStart + 1;\n setCursorPosition(positionValue);\n const targret = judgmentCursorInKeyWordsPosition({\n keyWordsPosition: overallKeyWordsPosition,\n cursorPosition: positionValue,\n });\n if (targret) {\n getInputInstance()?.setSelectionRange(targret.end - 1, targret.end - 1);\n }\n }\n } else if (ev.code === 'Backspace') {\n const targret = judgmentCursorInKeyWordsPosition({\n keyWordsPosition: overallKeyWordsPosition,\n cursorPosition: selectionStart - 1,\n });\n if (targret) {\n invalidOnChangeRef.current = true;\n const result = valueNew.substring(0, targret.start - 1) + valueNew.substring(targret.end);\n setTimeout(() => {\n getInputInstance()?.setSelectionRange(targret.start - 1, targret.start - 1);\n }, 50);\n if (!result) {\n invalidOnChangeRef.current = false;\n }\n onChange?.(result);\n }\n }\n },\n {\n target: () => {\n return document.querySelector(`#${id}`);\n },\n },\n );\n useEventListener(\n 'keyup',\n (ev) => {\n const selectionStart = getInputInstance()?.selectionStart || 0;\n if (['ArrowUp', 'ArrowDown'].includes(ev.code)) {\n setCursorPosition(selectionStart);\n const targret = judgmentCursorInKeyWordsPosition({\n keyWordsPosition: overallKeyWordsPosition,\n cursorPosition: selectionStart,\n });\n if (targret) {\n if (selectionStart - targret.start < targret.end - selectionStart) {\n getInputInstance()?.setSelectionRange(targret.start - 1, targret.start - 1);\n } else {\n getInputInstance()?.setSelectionRange(targret.end, targret.end);\n }\n }\n }\n },\n {\n target: () => {\n return document.querySelector(`#${id}`);\n },\n },\n );\n\n const onInputChange = hooks.useCallbackRef((value) => {\n if (otherProps.disabled) return;\n if (invalidOnChangeRef.current) {\n invalidOnChangeRef.current = false;\n return;\n }\n const selectionStart = getInputInstance()?.selectionStart || 0;\n setCursorPosition(selectionStart);\n onChange?.(value);\n });\n\n const onInputClick = hooks.useCallbackRef((event) => {\n const selectionStart = getInputInstance()?.selectionStart || 0;\n setCursorPosition(selectionStart);\n onClick?.(event.target.value);\n const targret = judgmentCursorInKeyWordsPosition({\n keyWordsPosition: overallKeyWordsPosition,\n cursorPosition: selectionStart,\n });\n if (targret) {\n if (selectionStart - targret.start < targret.end - selectionStart) {\n getInputInstance()?.setSelectionRange(targret.start - 1, targret.start - 1);\n } else {\n getInputInstance()?.setSelectionRange(targret.end, targret.end);\n }\n }\n });\n\n const mentionOptions = useMemo(() => {\n const prefixList = toArray<string>(prefix);\n return (\n options?.map((item) => {\n let opValue = item;\n for (let index = 0; index < prefixList.length; index++) {\n const element = prefixList[index];\n if (opValue.startsWith(element)) {\n opValue = opValue.replace(element, '');\n break;\n }\n }\n return { label: opValue, value: opValue };\n }) || []\n );\n }, [options, prefix]);\n\n return (\n <Mentions\n notFoundContent={<div>暂无数据</div>}\n rows={3}\n {...otherProps}\n prefix={prefix}\n style={{ width: '100%', ...otherProps.style }}\n id={id}\n value={valueNew}\n ref={inputInnerRef}\n onChange={onInputChange}\n onClick={onInputClick}\n split=\"\"\n validateSearch={(text: string) => {\n if (!mentionOptions.length) return false;\n const target = mentionOptions.find((item) => text.indexOf(item.value) >= 0);\n return target && text.length > target.value.length ? false : true;\n }}\n options={mentionOptions}\n />\n );\n};\n"],"names":["getOverallKeyWordsPosition","params","value","overallKeyWords","length","overallKeyWordsNew","Array","from","Set","positionItem","forEach","item","_params$value","includes","newItem","replace","regex","RegExp","positions","match","exec","push","index","innerList","temp","start","end","judgmentCursorInKeyWordsPosition","keyWordsPosition","element","find","cursorPosition","undefined","MentionsWrapper","props","onChange","onClick","onCursorChange","options","prefix","otherProps","_objectWithoutPropertiesLoose","_excluded","id","_hooks","useId","inputInnerRef","useRef","_useState","useState","setCursorPosition","invalidOnChangeRef","valueNew","overallKeyWordsPosition","useMemo","getInputInstance","_inputInnerRef$curren","current","textarea","fbaHooks","useEffectCustom","useEventListener","ev","_getInputInstance","selectionStart","code","positionValue","targret","_getInputInstance2","setSelectionRange","_getInputInstance3","result","substring","setTimeout","_getInputInstance4","target","document","querySelector","_getInputInstance5","_getInputInstance6","_getInputInstance7","onInputChange","useCallbackRef","_getInputInstance8","disabled","onInputClick","event","_getInputInstance9","_getInputInstance10","_getInputInstance11","mentionOptions","prefixList","toArray","map","opValue","startsWith","label","_jsx","Mentions","_extends","notFoundContent","children","rows","style","width","ref","split","validateSearch","text","indexOf"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/mentions-wrapper/utils.ts","@flatbiz/antd/src/mentions-wrapper/mentions.tsx"],"sourcesContent":["import { type OverallKeyWordsPosition } from './types';\n\nexport const getOverallKeyWordsPosition = (params: { overallKeyWords: string[]; value?: string }) => {\n if (!params.value || !params.overallKeyWords.length) return [];\n const overallKeyWordsNew = Array.from(new Set(params.overallKeyWords || []));\n const positionItem: OverallKeyWordsPosition[][] = [];\n overallKeyWordsNew.forEach((item) => {\n if (!params.value?.includes(item)) return;\n const newItem = item\n .replace(/\\$/g, '\\\\$')\n .replace(/\\{/g, '\\\\{')\n .replace(/\\}/g, '\\\\}')\n .replace(/\\]/g, '\\\\]')\n .replace(/\\[/g, '\\\\[');\n const regex = new RegExp(newItem, 'g');\n const positions: number[] = [];\n let match;\n // console.log\n while ((match = regex.exec(params.value)) !== null) {\n positions.push(match.index as number);\n }\n const innerList: OverallKeyWordsPosition[] = [];\n positions.forEach((temp) => {\n innerList.push({ start: temp + 1, end: temp + item.length });\n });\n positionItem.push(innerList);\n });\n return positionItem;\n};\n\n/**\n * 判断光标是否处在关键词位置内\n */\nexport const judgmentCursorInKeyWordsPosition = (params: {\n keyWordsPosition: OverallKeyWordsPosition[][];\n cursorPosition: number;\n}) => {\n for (let index = 0; index < params.keyWordsPosition.length; index++) {\n const element = params.keyWordsPosition[index].find((temp) => {\n return params.cursorPosition >= temp.start && params.cursorPosition < temp.end;\n });\n if (element) return element;\n }\n return undefined;\n};\n","import { fbaHooks } from '@flatbiz/antd';\nimport { toArray, type TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useEventListener } from 'ahooks';\nimport { Mentions, type MentionProps } from 'antd';\nimport { forwardRef, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { getOverallKeyWordsPosition, judgmentCursorInKeyWordsPosition } from './utils';\n\nexport type MentionsWrapperRef = {\n getInputInstance: () => any;\n};\nexport type MentionsWrapperProps = Omit<\n MentionProps,\n | 'value'\n | 'onChange'\n | 'onClick'\n | 'onCursorChange'\n | 'options'\n | 'id'\n | 'split'\n | 'validateSearch'\n | 'ref'\n | 'prefix'\n> & {\n value?: string;\n onChange?: (value?: string) => void;\n /** 设置列表提示关键字,例如:@、$等 */\n prefix?: string | string[];\n onClick?: (value?: string) => void;\n /** 光标移动回调 */\n onCursorChange?: (position: number) => void;\n /**\n * 输入框内整体关键词列表\n * ```\n * 整体关键词交互\n * 1. 光标可整体移动\n * 2. 光标不会存在关键词内部\n * 3. 删除时,整体删除\n * ```\n */\n options?: string[];\n};\n\n/**\n * 基于Antd Mentions进行二次封装,可实现输入内关键字整体控制,包括光标移动、关键词删除等\n * ```\n * 可实现\n * 1. 控制光标输入\n * 2. 可设置关键词,光标不会出现在关键词内部\n * 3. 可整体删除关键词\n *\n * 应用场景例如:\n * 1. 公式输入\n * (【xx金额1】+【xx金额2】)*2\n * <MentionsWrapper prefix=\"$\" options={['【xx金额1】', '【xx金额2】']}/>\n *\n * 2. 短信模板设置\n * 您的订单号为${订单号},订单交易时间为${订单时间}\n * <MentionsWrapper prefix=\"$\" options={['${订单号}', '${订单时间}']}/>\n *\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/other/widget\n * ```\n *\n */\nexport const MentionsWrapper = forwardRef<MentionsWrapperRef, MentionsWrapperProps>(\n (props: MentionsWrapperProps, ref) => {\n const { value, onChange, onClick, onCursorChange, onSelect, options, prefix, ...otherProps } = props;\n const id = hooks.useId(undefined, 'overall-input');\n const inputInnerRef = useRef<TAny>();\n const [cursorPosition, setCursorPosition] = useState(0);\n const invalidOnChangeRef = useRef(false);\n const valueNew = value || '';\n /** 关键词位置 */\n const overallKeyWordsPosition = useMemo(() => {\n if (options) {\n return getOverallKeyWordsPosition({\n overallKeyWords: options || [],\n value: valueNew,\n });\n }\n return [];\n }, [options, valueNew]);\n\n const getInputInstance = () => {\n return inputInnerRef.current?.textarea;\n };\n\n fbaHooks.useEffectCustom(() => {\n onCursorChange?.(cursorPosition || 0);\n }, [cursorPosition]);\n\n useEventListener(\n 'keydown',\n (ev) => {\n const selectionStart = getInputInstance()?.selectionStart as number;\n const selectionEnd = getInputInstance()?.selectionEnd as number;\n if (['ArrowLeft', 'ArrowRight'].includes(ev.code)) {\n let positionValue = 0;\n if (ev.code === 'ArrowLeft') {\n if (selectionStart - 1 < 0) return;\n positionValue = selectionStart - 1;\n setCursorPosition(positionValue);\n const targret = judgmentCursorInKeyWordsPosition({\n keyWordsPosition: overallKeyWordsPosition,\n cursorPosition: positionValue,\n });\n if (targret) {\n getInputInstance()?.setSelectionRange(targret.start, targret.start);\n }\n } else if (ev.code === 'ArrowRight') {\n if (selectionStart + 1 > valueNew.length) return;\n positionValue = selectionStart + 1;\n setCursorPosition(positionValue);\n const targret = judgmentCursorInKeyWordsPosition({\n keyWordsPosition: overallKeyWordsPosition,\n cursorPosition: positionValue,\n });\n if (targret) {\n getInputInstance()?.setSelectionRange(targret.end - 1, targret.end - 1);\n }\n }\n } else if (ev.code === 'Backspace') {\n /** 选中关键字/关键字+文字 的情况,直接删除 */\n if (selectionStart !== selectionEnd) {\n return;\n }\n const targret = judgmentCursorInKeyWordsPosition({\n keyWordsPosition: overallKeyWordsPosition,\n cursorPosition: selectionStart - 1,\n });\n if (targret) {\n invalidOnChangeRef.current = true;\n const result = valueNew.substring(0, targret.start - 1) + valueNew.substring(targret.end);\n setTimeout(() => {\n getInputInstance()?.setSelectionRange(targret.start - 1, targret.start - 1);\n }, 50);\n if (!result) {\n invalidOnChangeRef.current = false;\n }\n onChange?.(result);\n }\n }\n },\n {\n target: () => {\n return document.querySelector(`#${id}`);\n },\n },\n );\n\n useEventListener(\n 'keyup',\n (ev) => {\n const selectionStart = getInputInstance()?.selectionStart || 0;\n if (['ArrowUp', 'ArrowDown'].includes(ev.code)) {\n setCursorPosition(selectionStart);\n const targret = judgmentCursorInKeyWordsPosition({\n keyWordsPosition: overallKeyWordsPosition,\n cursorPosition: selectionStart,\n });\n if (targret) {\n if (selectionStart - targret.start < targret.end - selectionStart) {\n getInputInstance()?.setSelectionRange(targret.start - 1, targret.start - 1);\n } else {\n getInputInstance()?.setSelectionRange(targret.end, targret.end);\n }\n }\n }\n },\n {\n target: () => {\n return document.querySelector(`#${id}`);\n },\n },\n );\n\n const onInputChange = hooks.useCallbackRef((value) => {\n if (otherProps.disabled) return;\n if (invalidOnChangeRef.current) {\n invalidOnChangeRef.current = false;\n return;\n }\n const selectionStart = getInputInstance()?.selectionStart || 0;\n setCursorPosition(selectionStart);\n onChange?.(value);\n });\n\n const onInputClick = hooks.useCallbackRef((event) => {\n const selectionStart = getInputInstance()?.selectionStart || 0;\n setCursorPosition(selectionStart);\n onClick?.(event.target.value);\n const targret = judgmentCursorInKeyWordsPosition({\n keyWordsPosition: overallKeyWordsPosition,\n cursorPosition: selectionStart,\n });\n if (targret) {\n if (selectionStart - targret.start < targret.end - selectionStart) {\n getInputInstance()?.setSelectionRange(targret.start - 1, targret.start - 1);\n } else {\n getInputInstance()?.setSelectionRange(targret.end, targret.end);\n }\n }\n });\n\n const onHandleSelect = (options, prefix) => {\n const addPos: number = options.value?.length || 0;\n setCursorPosition((prePos) => prePos + addPos);\n if (onSelect) {\n onSelect(options, prefix);\n }\n };\n\n const mentionOptions = useMemo(() => {\n const prefixList = toArray<string>(prefix);\n return (\n options?.map((item) => {\n let opValue = item;\n for (let index = 0; index < prefixList.length; index++) {\n const element = prefixList[index];\n if (opValue.startsWith(element)) {\n opValue = opValue.replace(element, '');\n break;\n }\n }\n return { label: opValue, value: opValue };\n }) || []\n );\n }, [options, prefix]);\n\n useImperativeHandle(ref, () => {\n return {\n getInputInstance,\n };\n });\n\n return (\n <Mentions\n notFoundContent={<div>暂无数据</div>}\n rows={3}\n {...otherProps}\n prefix={prefix}\n style={{ width: '100%', ...otherProps.style }}\n id={id}\n value={valueNew}\n ref={inputInnerRef}\n onSelect={onHandleSelect}\n onChange={onInputChange}\n onClick={onInputClick}\n split=\"\"\n validateSearch={(text: string) => {\n if (!mentionOptions.length) return false;\n const target = mentionOptions.find((item) => text.indexOf(item.value) >= 0);\n return target && text.length > target.value.length ? false : true;\n }}\n options={mentionOptions}\n />\n );\n },\n);\n"],"names":["getOverallKeyWordsPosition","params","value","overallKeyWords","length","overallKeyWordsNew","Array","from","Set","positionItem","forEach","item","_params$value","includes","newItem","replace","regex","RegExp","positions","match","exec","push","index","innerList","temp","start","end","judgmentCursorInKeyWordsPosition","keyWordsPosition","element","find","cursorPosition","undefined","MentionsWrapper","forwardRef","props","ref","onChange","onClick","onCursorChange","onSelect","options","prefix","otherProps","_objectWithoutPropertiesLoose","_excluded","id","_hooks","useId","inputInnerRef","useRef","_useState","useState","setCursorPosition","invalidOnChangeRef","valueNew","overallKeyWordsPosition","useMemo","getInputInstance","_inputInnerRef$curren","current","textarea","fbaHooks","useEffectCustom","useEventListener","ev","_getInputInstance","_getInputInstance2","selectionStart","selectionEnd","code","positionValue","targret","_getInputInstance3","setSelectionRange","_getInputInstance4","result","substring","setTimeout","_getInputInstance5","target","document","querySelector","_getInputInstance6","_getInputInstance7","_getInputInstance8","onInputChange","useCallbackRef","_getInputInstance9","disabled","onInputClick","event","_getInputInstance10","_getInputInstance11","_getInputInstance12","onHandleSelect","_options$value","addPos","prePos","mentionOptions","prefixList","toArray","map","opValue","startsWith","label","useImperativeHandle","_jsx","Mentions","_extends","notFoundContent","children","rows","style","width","split","validateSearch","text","indexOf"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -301,14 +301,6 @@ export type BootstrapProps = {
301
301
  * ```
302
302
  */
303
303
  export declare const Bootstrap: (props: BootstrapProps) => import("react/jsx-runtime").JSX.Element;
304
- declare const PresetDefaultGrid: {
305
- xs: number;
306
- sm: number;
307
- md: number;
308
- lg: number;
309
- xl: number;
310
- xxl: number;
311
- };
312
304
  export type TBoxBreakpoint = "xs" | "sm" | "md" | "lg" | "xl" | "xxl";
313
305
  export interface ICommonReact {
314
306
  children?: ReactNode;
@@ -320,9 +312,27 @@ export type GutterParams = Gutter | [
320
312
  Gutter,
321
313
  Gutter
322
314
  ];
315
+ /**
316
+ * 监听盒子大小变化,返回当前的断点
317
+ * @param dom
318
+ * @returns
319
+ */
320
+ export declare const useBoxBreakpoint: (dom: any) => {
321
+ boxBreakpoint: TBoxBreakpoint;
322
+ isInit: boolean;
323
+ };
324
+ declare const PresetDefaultGrid: {
325
+ xs: number;
326
+ sm: number;
327
+ md: number;
328
+ lg: number;
329
+ xl: number;
330
+ xxl: number;
331
+ };
323
332
  export interface BoxRowProps {
324
333
  /**
325
- * 默认的栅格配置
334
+ * 在不同响应尺寸下的元素占位格数
335
+ * 应用到所有Col子元素上
326
336
  */
327
337
  defaultGrid?: Partial<typeof PresetDefaultGrid>;
328
338
  /** 间距 */
@@ -331,9 +341,17 @@ export interface BoxRowProps {
331
341
  align?: "top" | "middle" | "bottom" | "stretch";
332
342
  /** flex 布局的水平排列方式 */
333
343
  justify?: "start" | "end" | "center" | "space-around" | "space-between" | "space-evenly";
344
+ /** 尺寸变化回调 */
345
+ onBoxBreakpointChange?: (breakpoint: TBoxBreakpoint) => void;
334
346
  }
335
347
  export type BoxColProps = {
336
- /** 栅格占位格数,固定分数,为0相当于隐藏 */
348
+ /**
349
+ * 栅格占位格数
350
+ * span 优先级最高:配置了span后,其他的响应式配置将失效;
351
+ * 范围 0 ~ 24
352
+ * 为 0 相当于隐藏
353
+ * 为 24 相当于独占一行
354
+ */
337
355
  span?: number;
338
356
  /** 屏幕 < 576px */
339
357
  xs?: number;
@@ -349,8 +367,33 @@ export type BoxColProps = {
349
367
  xxl?: number;
350
368
  };
351
369
  export declare const BoxGrid: {
370
+ /**
371
+ * 网格响应式布局
372
+ *```
373
+ * 1. 应用场景:根据盒子大小决定内部元素的布局
374
+ * 2. 子元素只能是 BoxGrid.Col
375
+ */
352
376
  Row: import("react").FC<BoxRowProps & ICommonReact>;
377
+ /**
378
+ * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }
379
+ *```
380
+ * 1. 设置 span 栅格占位格数,0 ~ 24
381
+ * 2. grid 自定义响应式网格布局
382
+ * xs: 容器尺寸 < 576px
383
+ * sm: 容器尺寸 ≥ 576px
384
+ * md: 容器尺寸 ≥ 768px
385
+ * lg: 容器尺寸 ≥ 992px
386
+ * xl: 容器尺寸 ≥ 1200px
387
+ * xxl: 容器尺寸 ≥ 1600px
388
+ * ```
389
+ */
353
390
  Col: import("react").FC<BoxColProps & ICommonReact>;
391
+ /**
392
+ * 获取栅格响应式布局的配置
393
+ * @param minSize 元素的最小可接受宽度
394
+ * @returns { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num }
395
+ */
396
+ getGridMapByRange: (minSize: number) => Record<TBoxBreakpoint, number>;
354
397
  };
355
398
  export type ButtonWrapperProps = Omit<ButtonProps, "onClick"> & {
356
399
  /** 当返回 Promise 时,按钮自动loading */
@@ -1878,16 +1921,56 @@ export type FormWrapperProps<Values = any> = FormProps<Values> & {
1878
1921
  */
1879
1922
  export declare const FormWrapper: (props: FormWrapperProps) => import("react/jsx-runtime").JSX.Element;
1880
1923
  export type EasyFormProps = Omit<FormWrapperProps, "children"> & {
1881
- children: ReactElement | ReactElement[];
1882
- /** 一行显示几列,定义FormItem网格占比 */
1924
+ /**
1925
+ * 定义一行显示几列(当外层宽度尺寸大于 992px(lg) 时,一行显示几列), 默认值:3
1926
+ * ```
1927
+ * 1. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响(column=1除外)
1928
+ * 2. 宽度尺寸定义
1929
+ * xs: 宽度 < 576px
1930
+ * sm: 宽度 ≥ 576px
1931
+ * md: 宽度 ≥ 768px
1932
+ * lg: 宽度 ≥ 992px
1933
+ * xl: 宽度 ≥ 1200px
1934
+ * xxl: 宽度 ≥ 1600px
1935
+ * 3. 列数尺寸定义
1936
+ * {
1937
+ * 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },
1938
+ * 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },
1939
+ * 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },
1940
+ * 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },
1941
+ * };
1942
+ * ```
1943
+ */
1883
1944
  column?: 1 | 2 | 3 | 4;
1945
+ /**
1946
+ * 强制定义一行显示几列,不考虑响应式
1947
+ * ```
1948
+ * 1. 优先级大于column
1949
+ * 2. 建议优先使用column配置
1950
+ * ```
1951
+ */
1952
+ forceColumn?: 1 | 2 | 3 | 4;
1953
+ /**
1954
+ * Form显示宽度,可数值、可百分比;在小屏幕尺寸(xs、sm)上无效
1955
+ */
1956
+ width?: number | string;
1957
+ /** 网格间距 */
1958
+ gridGutter?: BoxRowProps["gutter"];
1959
+ children: ReactElement | ReactElement[];
1884
1960
  };
1885
1961
  /**
1886
1962
  * 简单Form布局,可自定义网格布局
1887
1963
  * ```
1888
- * 1. EasyForm 子节点包含 hidden = true 会被忽略
1889
- * 2. 通过 column 可修改一行显示几列FormItem
1890
- * 3. demo:https://fex.qa.tcshuke.com/docs/admin/main/form/label
1964
+ * 1. 布局网格以当前节点的宽度来计算的,不是屏幕宽度
1965
+ * 2. EasyForm 子节点包含 hidden = true 会被忽略
1966
+ * 3. 通过 column 可定义一行显示几列FormItem
1967
+ * 4. demo:https://fex.qa.tcshuke.com/docs/admin/main/form/label
1968
+ * 5. 通过 labelItemVertical 可定义 formitem 竖直布局
1969
+ * 6. 通过 formItemGap 可定义 formItem竖直方向间隙
1970
+ * 7. 通过 forceColumn 可强制定义一行显示几列,不考虑响应式
1971
+ * 8. 通过 labelWidth 可控制Form内部所有label的宽度(可实现整齐效果)
1972
+
1973
+ * 例如
1891
1974
  * <EasyForm column={3}>
1892
1975
  <Form.Item name="field1" label="条件1">
1893
1976
  <Input placeholder="请输入" allowClear={true} />
@@ -1895,12 +1978,12 @@ export type EasyFormProps = Omit<FormWrapperProps, "children"> & {
1895
1978
  <Form.Item name="field2" label="条件2">
1896
1979
  <Input placeholder="请输入" allowClear={true} />
1897
1980
  </Form.Item>
1898
- <!-- !!!可通过使用 FormGrid.Col 包裹元素来自定义网格占比 !!! -->
1899
- <FormGrid.Col span={24}>
1981
+ <!-- !!!可通过使用 BoxGrid.Col 包裹元素来自定义网格占比 !!! -->
1982
+ <BoxGrid.Col span={24}>
1900
1983
  <Form.Item name="field5" label="条件5">
1901
1984
  <Input placeholder="请输入" allowClear={true} />
1902
1985
  </Form.Item>
1903
- </FormGrid.Col>
1986
+ </BoxGrid.Col>
1904
1987
  <Form.Item name="field6" label="条件6">
1905
1988
  <Input placeholder="请输入" allowClear={true} />
1906
1989
  </Form.Item>
@@ -2359,7 +2442,7 @@ export type FbaAppDrawerProps = Omit<DrawerProps, "onOk" | "onCancel" | "getCont
2359
2442
  cancelHidden?: boolean;
2360
2443
  extra?: ReactNode | ((form: FormInstance) => ReactElement);
2361
2444
  };
2362
- export type FbaAppModalProps = Omit<ModalProps, "onOk" | "onCancel" | "getContainer" | "okButtonProps" | "cancelButtonProps"> & {
2445
+ export type FbaAppModalProps = Omit<ModalProps, "onOk" | "onCancel" | "getContainer" | "okButtonProps" | "cancelButtonProps" | "footer"> & {
2363
2446
  onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;
2364
2447
  onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>;
2365
2448
  onClose?: () => void;
@@ -2379,6 +2462,8 @@ export type FbaAppModalProps = Omit<ModalProps, "onOk" | "onCancel" | "getContai
2379
2462
  */
2380
2463
  bodyHeightPercent?: number;
2381
2464
  titleExtra?: ReactElement;
2465
+ /** null则隐藏footer */
2466
+ footer?: null | ReactElement | ReactElement[];
2382
2467
  };
2383
2468
  export type FbaAppAlertProps = Omit<FbaAppModalProps, "onOk" | "cancelHidden" | "cancelButtonProps" | "onCancel" | "onClick"> & {
2384
2469
  onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;
@@ -2969,6 +3054,9 @@ export declare const LocalLoading: import("react").ForwardRefExoticComponent<Loc
2969
3054
  onRequest: (params?: TPlainObject) => void;
2970
3055
  };
2971
3056
  };
3057
+ export type MentionsWrapperRef = {
3058
+ getInputInstance: () => any;
3059
+ };
2972
3060
  export type MentionsWrapperProps = Omit<MentionProps, "value" | "onChange" | "onClick" | "onCursorChange" | "options" | "id" | "split" | "validateSearch" | "ref" | "prefix"> & {
2973
3061
  value?: string;
2974
3062
  onChange?: (value?: string) => void;
@@ -3009,7 +3097,67 @@ export type MentionsWrapperProps = Omit<MentionProps, "value" | "onChange" | "on
3009
3097
  * ```
3010
3098
  *
3011
3099
  */
3012
- export declare const MentionsWrapper: (props: MentionsWrapperProps) => import("react/jsx-runtime").JSX.Element;
3100
+ export declare const MentionsWrapper: import("react").ForwardRefExoticComponent<Omit<MentionProps, "split" | "id" | "value" | "prefix" | "options" | "ref" | "onChange" | "onClick" | "onCursorChange" | "validateSearch"> & {
3101
+ value?: string | undefined;
3102
+ onChange?: ((value?: string) => void) | undefined;
3103
+ /** 设置列表提示关键字,例如:@、$等 */
3104
+ prefix?: string | string[] | undefined;
3105
+ onClick?: ((value?: string) => void) | undefined;
3106
+ /** 光标移动回调 */
3107
+ onCursorChange?: ((position: number) => void) | undefined;
3108
+ /**
3109
+ * 输入框内整体关键词列表
3110
+ * ```
3111
+ * 整体关键词交互
3112
+ * 1. 光标可整体移动
3113
+ * 2. 光标不会存在关键词内部
3114
+ * 3. 删除时,整体删除
3115
+ * ```
3116
+ */
3117
+ options?: string[] | undefined;
3118
+ } & import("react").RefAttributes<MentionsWrapperRef>>;
3119
+ export type ParamItem = {
3120
+ /** 模版参数code */
3121
+ code: string;
3122
+ /** 模版参数类型 文本/数字/链接 */
3123
+ type: "text" | "number" | "link";
3124
+ /** 模版参数 value */
3125
+ value: TAny;
3126
+ } & Record<string, TAny>;
3127
+ export type OperationPresetProps = {
3128
+ /** icon */
3129
+ icon: ReactElement;
3130
+ /** 模版参数文案 */
3131
+ label?: string;
3132
+ /** 模版参数类型 */
3133
+ type: string;
3134
+ /** 自增code前缀 */
3135
+ codePrefix: string;
3136
+ /** 自定义生成模版参数code */
3137
+ codeAdapter?: () => string | undefined;
3138
+ };
3139
+ export type MetionEditorProps = Omit<MentionsWrapperProps, "prefix"> & {
3140
+ /**
3141
+ * onChange
3142
+ * @item 点击的预设模版参数
3143
+ */
3144
+ onSelectParam?: (item: ParamItem, prefix?: string) => void;
3145
+ /** 模版参数前缀 & | $ */
3146
+ prefix?: string;
3147
+ /** editor 支持添加的模版参数类型 */
3148
+ operations?: OperationPresetProps[];
3149
+ /** 模版参数列表 */
3150
+ params?: ParamItem[] | undefined;
3151
+ };
3152
+ /**
3153
+ * 基于MetionWrapper封装的模版字符串配置组件
3154
+ * 1. 提供变量,数字,链接等可选的模版参数
3155
+ * 2. 不同类型模版参数可配置多个
3156
+ * 3. mention 会根据 传入的params自动推断出关键字
3157
+ * 4. 模版参数建议都以${_xxx}为格式
3158
+ * 5. Demo: https://fex.qa.tcshuke.com/docs/admin/main/widget?key=mention-editor
3159
+ */
3160
+ export declare const MetionEditor: (props: MetionEditorProps) => import("react/jsx-runtime").JSX.Element;
3013
3161
  export type onClick = (e?: React.MouseEvent<HTMLElement>) => void;
3014
3162
  export interface ModalActionProps {
3015
3163
  children: ReactElement | ((data: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "4.4.8",
3
+ "version": "4.4.10",
4
4
  "description": "flat-biz ui components",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",