bi-components-library 1.0.39 → 1.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bi-components-library.css +1 -1
- package/dist/iconfont/demo.css +539 -0
- package/dist/iconfont/demo_index.html +3248 -0
- package/dist/iconfont/iconfont.css +548 -0
- package/dist/iconfont/iconfont.js +1 -0
- package/dist/iconfont/iconfont.json +940 -0
- package/dist/iconfont/iconfont.svg +285 -0
- package/dist/iconfont/iconfont.ttf +0 -0
- package/dist/iconfont/iconfont.woff +0 -0
- package/dist/iconfont/iconfont.woff2 +0 -0
- package/dist/index.es.js +1979 -1954
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +3 -3
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/index.umd.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
(function(oe,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("react/jsx-runtime"),require("react"),require("antd"),require("@ant-design/icons"),require("react-dom")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","antd","@ant-design/icons","react-dom"],c):(oe=typeof globalThis<"u"?globalThis:oe||self,c(oe.SealSeekBIComponents={},oe.React,oe.React,oe.antd,oe.AntdIcons,oe.ReactDOM))})(this,function(oe,c,u,R,ke,De){"use strict";const He=({variant:e="primary",loading:p=!1,children:i,...o})=>{const m=S=>{switch(S){case"primary":return"primary";case"ghost":return"default";case"dashed":return"dashed";case"link":return"link";case"text":return"text";default:return"primary"}};return c.jsx(R.Button,{...o,type:m(e),loading:p,ghost:e==="ghost",children:i})};He.__docgenInfo={displayName:"Button",description:"基础按钮,用于触发操作",props:{variant:{name:"variant",required:!1,description:"视觉风格",type:{name:"ButtonVariant",raw:'"primary" | "ghost" | "dashed" | "link" | "text"'},defaultValue:{value:'"primary"'}},loading:{name:"loading",required:!1,description:"是否加载中",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},children:{name:"children",required:!1,description:"按钮内容",type:{name:"ReactNode",raw:"React.ReactNode"}},size:{name:"size",required:!1,description:"按钮大小",type:{name:"ButtonSize",raw:'"small" | "middle" | "large"'}},disabled:{name:"disabled",required:!1,description:"是否禁用",type:{name:"boolean",raw:"boolean"}},onClick:{name:"onClick",required:!1,description:"点击事件",type:{name:"function",raw:"(event: MouseEvent) => void"}}}};const Ge=({title:e,children:p,bordered:i=!0,hoverable:o=!1,size:m="default",...S})=>c.jsx(R.Card,{...S,title:e,bordered:i,hoverable:o,size:m,children:p});Ge.__docgenInfo={displayName:"Card",description:"卡片容器,用于分组内容",props:{title:{name:"title",required:!1,description:"标题",type:{name:"ReactNode",raw:"React.ReactNode"}},children:{name:"children",required:!1,description:"内容区域",type:{name:"ReactNode",raw:"React.ReactNode"}},bordered:{name:"bordered",required:!1,description:"是否显示边框",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},hoverable:{name:"hoverable",required:!1,description:"是否可悬停",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},size:{name:"size",required:!1,description:"卡片大小",type:{name:"CardSize",raw:'"default" | "small"'},defaultValue:{value:'"default"'}},loading:{name:"loading",required:!1,description:"是否加载中",type:{name:"boolean",raw:"boolean"}},actions:{name:"actions",required:!1,description:"卡片操作组",type:{name:"ReactNode[]",raw:"React.ReactNode[]"}}}};const Fe=({showDefaultFooter:e=!0,...p})=>{const i=p.footer!==void 0?p.footer:e?(o,{OkBtn:m,CancelBtn:S})=>c.jsxs(c.Fragment,{children:[c.jsx(m,{}),c.jsx(S,{})]}):null;return c.jsx(R.Modal,{...p,footer:i})};Fe.__docgenInfo={displayName:"AppModal",description:"应用级模态框组件,基于 Ant Design Modal 封装",props:{showDefaultFooter:{name:"showDefaultFooter",required:!1,description:"是否显示默认的确定和取消按钮",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},title:{name:"title",required:!1,description:"模态框标题",type:{name:"ReactNode",raw:"React.ReactNode"}},open:{name:"open",required:!1,description:"是否显示模态框",type:{name:"boolean",raw:"boolean"}},onCancel:{name:"onCancel",required:!1,description:"取消按钮点击事件",type:{name:"function",raw:"(e: React.MouseEvent<HTMLElement>) => void"}},onOk:{name:"onOk",required:!1,description:"确定按钮点击事件",type:{name:"function",raw:"(e: React.MouseEvent<HTMLElement>) => void"}},children:{name:"children",required:!1,description:"模态框内容",type:{name:"ReactNode",raw:"React.ReactNode"}},width:{name:"width",required:!1,description:"模态框宽度",type:{name:"string | number",raw:"string | number"}},centered:{name:"centered",required:!1,description:"是否居中显示",type:{name:"boolean",raw:"boolean"}},maskClosable:{name:"maskClosable",required:!1,description:"点击蒙层是否允许关闭",type:{name:"boolean",raw:"boolean"}}}};const ze=({scrollX:e,showPagination:p=!0,defaultPageSize:i=10,...o})=>c.jsx(R.Table,{...o,scroll:{x:e||"max-content",y:"50vh"},pagination:p?{hideOnSinglePage:!0,showSizeChanger:!0,showQuickJumper:!0,defaultPageSize:i,...o.pagination}:!1});ze.__docgenInfo={displayName:"PageTable",description:"页面级表格组件,高度铺满容器,自动滚动",props:{scrollX:{name:"scrollX",required:!1,description:"水平滚动宽度",type:{name:"number",raw:"number"}},showPagination:{name:"showPagination",required:!1,description:"是否显示分页器",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},defaultPageSize:{name:"defaultPageSize",required:!1,description:"默认页面大小",type:{name:"number",raw:"number"},defaultValue:{value:"10"}},columns:{name:"columns",required:!1,description:"表格列配置",type:{name:"ColumnType[]",raw:"ColumnType<any>[]"}},dataSource:{name:"dataSource",required:!1,description:"数据源",type:{name:"any[]",raw:"any[]"}},loading:{name:"loading",required:!1,description:"是否加载中",type:{name:"boolean",raw:"boolean"}},rowKey:{name:"rowKey",required:!1,description:"行数据的 Key",type:{name:"string | function",raw:"string | ((record: any) => string)"}}}};const ut=ke.createFromIconfontCN({scriptUrl:["https://at.alicdn.com/t/c/font_4968458_eh91gfr4j9e.js"]}),Ye=({name:e,size:p,color:i,style:o,...m})=>{const S={fontSize:p,color:i,...o};return c.jsx(ut,{...m,type:e,style:S})};Ye.__docgenInfo={displayName:"XcIcon",description:"自定义图标组件,基于 iconfont",props:{name:{name:"name",required:!0,description:"图标名称",type:{name:"string",raw:"string"}},size:{name:"size",required:!1,description:"图标大小",type:{name:"number | string",raw:"number | string"}},color:{name:"color",required:!1,description:"图标颜色",type:{name:"string",raw:"string"}},className:{name:"className",required:!1,description:"自定义类名",type:{name:"string",raw:"string"}},style:{name:"style",required:!1,description:"自定义样式",type:{name:"CSSProperties",raw:"React.CSSProperties"}}}};const je=({loading:e,description:p="暂无数据",className:i,emptyChildren:o,loadingText:m,emptyImage:S})=>e?c.jsxs(R.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",vertical:!0,children:[c.jsx(R.Spin,{size:"large"}),m&&c.jsx("div",{className:"mt-4 text-gray-500",children:m})]}):c.jsx(R.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",children:c.jsx(R.Empty,{image:S,description:p,imageStyle:{height:180},children:o})});je.__docgenInfo={displayName:"EmptyAndSpin",description:"空状态和加载状态组合组件",props:{loading:{name:"loading",required:!0,description:"是否加载中",type:{name:"boolean",raw:"boolean"}},description:{name:"description",required:!1,description:"空状态描述",type:{name:"ReactNode",raw:"React.ReactNode"},defaultValue:{value:'"暂无数据"'}},className:{name:"className",required:!1,description:"自定义类名",type:{name:"string",raw:"string"}},emptyChildren:{name:"emptyChildren",required:!1,description:"空状态额外内容",type:{name:"ReactNode",raw:"React.ReactNode"}},loadingText:{name:"loadingText",required:!1,description:"加载中提示文字",type:{name:"string",raw:"string"}},emptyImage:{name:"emptyImage",required:!1,description:"空状态图片",type:{name:"string",raw:"string"}}}};const We=({onClick:e,showText:p=!1,className:i,size:o="small",type:m="default"})=>c.jsx(R.Button,{size:o,type:m,icon:c.jsx(ke.LeftOutlined,{}),className:`cursor-pointer ${i||""}`,onClick:e,children:p&&"返回"});We.__docgenInfo={displayName:"BackButton",description:"返回按钮组件",props:{onClick:{name:"onClick",required:!1,description:"点击事件",type:{name:"function",raw:"() => void"}},showText:{name:"showText",required:!1,description:"是否显示文字",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},className:{name:"className",required:!1,description:"自定义类名",type:{name:"string",raw:"string"}},size:{name:"size",required:!1,description:"按钮大小",type:{name:"ButtonSize",raw:'"small" | "middle" | "large"'},defaultValue:{value:'"small"'}},type:{name:"type",required:!1,description:"按钮类型",type:{name:"ButtonType",raw:'"primary" | "default" | "dashed" | "link" | "text"'},defaultValue:{value:'"default"'}}}};const Ke=({removePadding:e=!0,className:p,...i})=>{const o=e?`px-0 h-auto ${p||""}`:p;return c.jsx(R.Button,{type:"link",...i,className:o,children:i.children})};Ke.__docgenInfo={displayName:"LinkButton",description:"链接样式按钮组件,适用于表格操作列",props:{removePadding:{name:"removePadding",required:!1,description:"是否去除默认内边距",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},children:{name:"children",required:!1,description:"按钮内容",type:{name:"ReactNode",raw:"React.ReactNode"}},onClick:{name:"onClick",required:!1,description:"点击事件",type:{name:"function",raw:"(event: React.MouseEvent<HTMLButtonElement>) => void"}},disabled:{name:"disabled",required:!1,description:"是否禁用",type:{name:"boolean",raw:"boolean"}},className:{name:"className",required:!1,description:"自定义类名",type:{name:"string",raw:"string"}}}};const{Option:dt}=R.Select,Ue=({columns:e,request:p,searchFields:i=[],showSearch:o=!0,showRefresh:m=!0,defaultPageSize:S=10,pageSizeOptions:T=["10","20","50","100"],autoLoad:$=!0,externalParams:w={},...x})=>{const[t,f]=u.useState([]),[d,a]=u.useState(!1),[n,s]=u.useState({current:1,pageSize:S,total:0}),[r,C]=u.useState({}),[l,k]=u.useState({}),[N]=R.Form.useForm(),V=u.useRef(n);V.current=n;const P=u.useRef(w);P.current=w;const _=u.useRef(!1),Y=u.useMemo(()=>e.map(b=>{const{sortable:y,render:g,...M}=b;return{...M,sorter:y?!0:void 0,render:g||(D=>D)}}),[e]),A=u.useCallback(async(b={})=>{if(p){a(!0);try{const y={page:V.current.current,pageSize:V.current.pageSize,sortField:l.field,sortOrder:l.order,searchParams:{...r,...P.current},...b},g=await p(y);g.success&&(f(g.data),s(M=>({...M,total:g.total,current:y.page||M.current})))}catch(y){console.error("加载数据失败:",y)}finally{a(!1)}}},[p,l,r]),z=u.useCallback(b=>{C(b),s(y=>({...y,current:1}))},[]),B=u.useCallback(()=>{N.resetFields(),C({}),s(b=>({...b,current:1}))},[N]),te=u.useCallback(()=>{A()},[A]),ie=u.useCallback((b,y,g)=>{const M={current:b.current||1,pageSize:b.pageSize||S,total:b.total||0},D={field:g?.field,order:g?.order};s(M),k(D)},[S]);return u.useEffect(()=>{const b=Object.keys(w).length>0;($&&!_.current||b)&&(A(),_.current=!0)},[$,w,A]),c.jsxs("div",{children:[o&&i.length>0&&c.jsx(R.Card,{size:"small",style:{marginBottom:16},children:c.jsxs(R.Form,{form:N,layout:"inline",onFinish:z,initialValues:i.reduce((b,y)=>(y.defaultValue!==void 0&&(b[y.key]=y.defaultValue),b),{}),children:[i.map(b=>c.jsx(R.Form.Item,{name:b.key,label:b.label,children:b.type==="input"?c.jsx(R.Input,{placeholder:b.placeholder||`请输入${b.label}`,style:{width:200}}):c.jsx(R.Select,{placeholder:b.placeholder||`请选择${b.label}`,style:{width:200},allowClear:!0,children:b.options?.map(y=>c.jsx(dt,{value:y.value,children:y.label},y.value))})},b.key)),c.jsx(R.Form.Item,{children:c.jsxs(R.Space,{children:[c.jsx(R.Button,{type:"primary",htmlType:"submit",icon:c.jsx(ke.SearchOutlined,{}),children:"查询"}),c.jsx(R.Button,{onClick:B,children:"重置"}),m&&c.jsx(R.Button,{icon:c.jsx(ke.ReloadOutlined,{}),onClick:te,children:"刷新"})]})})]})}),c.jsx(R.Table,{...x,columns:Y,dataSource:t,loading:d,pagination:{...n,showSizeChanger:!0,showQuickJumper:!0,showTotal:(b,y)=>`第 ${y[0]}-${y[1]} 条/共 ${b} 条`,pageSizeOptions:T},onChange:ie,scroll:{x:"max-content",y:"50vh"}})]})};Ue.__docgenInfo={displayName:"AdvancedTable",description:"高阶表格组件,支持异步请求、搜索、排序等功能",props:{columns:{name:"columns",required:!0,description:"列配置",type:{name:"AdvancedColumnType[]",raw:"AdvancedColumnType<any>[]"}},request:{name:"request",required:!1,description:"异步请求函数",type:{name:"function",raw:"(params: RequestParams) => Promise<RequestResponse>"}},searchFields:{name:"searchFields",required:!1,description:"搜索字段配置",type:{name:"SearchFieldConfig[]",raw:"SearchFieldConfig[]"},defaultValue:{value:"[]"}},showSearch:{name:"showSearch",required:!1,description:"是否显示搜索区域",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},showRefresh:{name:"showRefresh",required:!1,description:"是否显示刷新按钮",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},defaultPageSize:{name:"defaultPageSize",required:!1,description:"默认页面大小",type:{name:"number",raw:"number"},defaultValue:{value:"10"}},pageSizeOptions:{name:"pageSizeOptions",required:!1,description:"页面大小选项",type:{name:"string[]",raw:"string[]"},defaultValue:{value:'["10", "20", "50", "100"]'}},autoLoad:{name:"autoLoad",required:!1,description:"是否自动加载",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},externalParams:{name:"externalParams",required:!1,description:"外部请求参数",type:{name:"Record<string, any>",raw:"Record<string, any>"},defaultValue:{value:"{}"}}}};function Ie(e,p,i){if(!e.current)return;const o=new Set,m={};for(const f of p)f.exclusionGroup&&f.exclusionGroup!=="separator"&&(o.add(f.exclusionGroup),m[f.exclusionGroup]||(m[f.exclusionGroup]=[]),m[f.exclusionGroup].push({type:f.type,key:f.key,exclusionGroup:f.exclusionGroup}));const S={};for(const f of o){S[f]=!1;for(const d of m[f])if(d.type==="upload"&&d.key){if(i[d.key]!==null&&i[d.key]!==void 0){S[f]=!0;break}}else if((d.type==="variable"||d.type==="multi-variable")&&d.key){const a=d.type==="multi-variable"?e.current.querySelectorAll(`[data-type="variable"][data-multi-key="${d.key}"]`):[e.current.querySelector(`[data-type="variable"][data-key="${d.key}"]`)].filter(Boolean);for(const n of a)if(!n.classList.contains("show-placeholder")&&n.innerText.replace(/[\u200B\n]/g,"").trim().length>0){S[f]=!0;break}if(S[f])break}}const T=p.some(f=>f.exclusionGroup==="separator"),w=Object.keys(S).filter(f=>S[f]).length>0;let x=null;if(w&&T){for(const f of p)if(f.exclusionGroup&&f.exclusionGroup!=="separator"&&S[f.exclusionGroup]){x=f.exclusionGroup;break}}for(const f of o){const d=e.current.querySelectorAll(`[data-group="${f}"]`);T&&w&&x?f===x?d.forEach(a=>{a.classList.contains("required-upload-group")?a.style.setProperty("display","inline-flex","important"):(a.classList.contains("exclusion-wrapper"),a.style.setProperty("display","inline-block","important"))}):d.forEach(a=>{a.style.display="none",a.style.setProperty("display","none","important")}):d.forEach(a=>{a.classList.contains("required-upload-group")?a.style.setProperty("display","inline-flex","important"):(a.classList.contains("exclusion-wrapper"),a.style.setProperty("display","inline-block","important"))})}e.current.querySelectorAll('[data-group="separator"]').forEach(f=>{f.style.display=w?"none":"inline"})}function Pe(e,p,i,o){if(!e.current){o(!1);return}const m=[];for(let d=0;d<p.length;d++){const a=p[d];if((a.type==="variable"||a.type==="upload"||a.type==="multi-variable"||a.type==="select"||a.type==="textarea"||a.type==="richtext"||a.type==="datepicker")&&a.required&&a.key){m.push({exclusionGroup:a.exclusionGroup||"",key:a.key,type:a.type==="multi-variable"?"variable":a.type,isMultiVariable:a.type==="multi-variable",minCount:a.type==="multi-variable"?a.minCount:void 0,__index:d});continue}if(a.type==="text"&&a.className?.includes("rte-text-required"))if(a.exclusionGroup)for(let n=d+1;n<p.length;n++){const s=p[n];if(s.exclusionGroup===a.exclusionGroup&&(s.type==="variable"||s.type==="upload"||s.type==="select"||s.type==="textarea"||s.type==="richtext"||s.type==="datepicker")&&s.key){m.push({exclusionGroup:a.exclusionGroup,key:s.key,type:s.type,__index:n});break}}else for(let n=d+1;n<p.length;n++){const s=p[n];if((s.type==="variable"||s.type==="upload"||s.type==="select"||s.type==="textarea"||s.type==="richtext"||s.type==="datepicker")&&s.key){m.push({exclusionGroup:s.exclusionGroup||"",key:s.key,type:s.type,__index:n});break}}}const S=p.some(d=>d.exclusionGroup==="separator"),T=[];if(S&&m.length>1){const d=[];p.forEach((a,n)=>{a.exclusionGroup==="separator"&&d.push(n)});for(const a of d){const s=m.filter(l=>typeof l.__index=="number"&&l.__index<a).sort((l,k)=>(k.__index??0)-(l.__index??0))[0],C=m.filter(l=>typeof l.__index=="number"&&l.__index>a).sort((l,k)=>(l.__index??0)-(k.__index??0))[0];s&&C&&T.push([s,C])}}if(m.length===0){if(p.length===0){if(!e.current){o(!1);return}const d=e.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"";o(d.length>0);return}o(!0);return}const $=m.filter(d=>{if(!e.current)return!1;if(d.exclusionGroup){const a=e.current.querySelectorAll(`[data-group="${d.exclusionGroup}"]`);if(a.length>0)return a[0].style.display!=="none"}if(d.type==="upload"&&d.key){const a=e.current.querySelector(`[data-type="upload"][data-key="${d.key}"]`);if(a){const n=a.closest("[data-group]")||a.parentElement;return n?n.style.display!=="none":!0}}else if(d.type==="variable"&&d.key)if(d.isMultiVariable){const a=e.current.querySelectorAll(`[data-type="variable"][data-multi-key="${d.key}"]`);if(a.length>0){const n=a[0],s=n.closest("[data-group]")||n.parentElement;return s?s.style.display!=="none":!0}}else{const a=e.current.querySelector(`[data-type="variable"][data-key="${d.key}"]`);if(a){const n=a.closest("[data-group]")||a.parentElement;return n?n.style.display!=="none":!0}}else if(d.type==="select"&&d.key){const a=e.current.querySelector(`[data-type="select"][data-key="${d.key}"]`);if(a){const n=a.closest("[data-group]")||a.parentElement;return n?n.style.display!=="none":!0}}else if(d.type==="textarea"&&d.key){const a=e.current.querySelector(`[data-type="textarea"][data-key="${d.key}"]`);if(a){const n=a.closest("[data-group]")||a.parentElement;return n?n.style.display!=="none":!0}}else if(d.type==="richtext"&&d.key){const a=e.current.querySelector(`[data-type="richtext"][data-key="${d.key}"]`);if(a){const n=a.closest("[data-group]")||a.parentElement;return n?n.style.display!=="none":!0}}else if(d.type==="datepicker"&&d.key){const a=e.current.querySelector(`[data-type="datepicker"][data-key="${d.key}"]`);if(a){const n=a.closest("[data-group]")||a.parentElement;return n?n.style.display!=="none":!0}}return!1});if($.length===0){o(!0);return}const w=new Set;T.forEach(d=>{d.forEach(a=>{a.key&&w.add(a.key)})});const x=$.filter(d=>!d.key||!w.has(d.key));let t=(T.length===0,!0);for(const d of T){const a=d.filter(s=>{if(!e.current)return!1;if(s.exclusionGroup){const r=e.current.querySelectorAll(`[data-group="${s.exclusionGroup}"]`);if(r.length>0)return r[0].style.display!=="none"}return!0});if(a.length===0)continue;let n=!1;for(const s of a)if(s.type==="upload"&&s.key){if(i[s.key]!==null&&i[s.key]!==void 0){n=!0;break}}else if(s.type==="variable"&&s.key)if(s.isMultiVariable){const r=e.current.querySelectorAll(`[data-type="variable"][data-multi-key="${s.key}"]`);let C=0;for(const k of Array.from(r)){if(k.classList.contains("show-placeholder"))continue;k.innerText.replace(/[\u200B\n]/g,"").trim().length>0&&(C+=1)}const l=s.minCount&&s.minCount>0?s.minCount:1;if(C>=l){n=!0;break}}else{const r=e.current.querySelector(`[data-type="variable"][data-key="${s.key}"]`);if(r){if(r.classList.contains("show-placeholder"))continue;if(r.innerText.replace(/[\u200B\n]/g,"").trim().length>0){n=!0;break}}}else if(s.type==="select"&&s.key){const r=e.current.querySelector(`[data-type="select"][data-key="${s.key}"]`);if(r&&(r.getAttribute("data-value")||"").trim().length>0){n=!0;break}}else if(s.type==="textarea"&&s.key){const r=e.current.querySelector(`[data-type="textarea"][data-key="${s.key}"]`);if(r&&(r.value||"").trim().length>0){n=!0;break}}else if(s.type==="richtext"&&s.key){const r=e.current.querySelector(`[data-type="richtext"][data-key="${s.key}"]`);if(r&&(r.textContent||"").replace(/[\u200B]/g,"").trim().length>0){n=!0;break}}else if(s.type==="datepicker"&&s.key){const r=e.current.querySelector(`[data-type="datepicker"][data-key="${s.key}"]`);if(r&&(r.getAttribute("data-value")||"").trim().length>0){n=!0;break}}if(!n){t=!1;break}}let f=!0;for(const d of x)if(d.type==="upload"&&d.key){if(i[d.key]===null||i[d.key]===void 0){f=!1;break}}else if(d.type==="variable"&&d.key)if(d.isMultiVariable){const a=e.current.querySelectorAll(`[data-type="variable"][data-multi-key="${d.key}"]`);let n=0;for(const r of Array.from(a)){if(r.classList.contains("show-placeholder"))continue;r.innerText.replace(/[\u200B\n]/g,"").trim().length>0&&(n+=1)}const s=d.minCount&&d.minCount>0?d.minCount:1;if(n<s){f=!1;break}}else{const a=e.current.querySelector(`[data-type="variable"][data-key="${d.key}"]`);if(!a){f=!1;break}if(a.classList.contains("show-placeholder")){f=!1;break}if(a.innerText.replace(/[\u200B\n]/g,"").trim().length===0){f=!1;break}}else if(d.type==="select"&&d.key){const a=e.current.querySelector(`[data-type="select"][data-key="${d.key}"]`);if(!a||(a.getAttribute("data-value")||"").trim().length===0){f=!1;break}}else if(d.type==="textarea"&&d.key){const a=e.current.querySelector(`[data-type="textarea"][data-key="${d.key}"]`);if(!a||(a.value||"").trim().length===0){f=!1;break}}else if(d.type==="richtext"&&d.key){const a=e.current.querySelector(`[data-type="richtext"][data-key="${d.key}"]`);if(!a||(a.textContent||"").replace(/[\u200B]/g,"").trim().length===0){f=!1;break}}else if(d.type==="datepicker"&&d.key){const a=e.current.querySelector(`[data-type="datepicker"][data-key="${d.key}"]`);if(!a||(a.getAttribute("data-value")||"").trim().length===0){f=!1;break}}o(t&&f)}function Ve(e,p){if(!e.current)return;e.current.querySelectorAll('[data-type="variable"]').forEach(o=>{const m=o.innerText;m.replace(/\u200B/g,"").trim().length===0?(m!==""&&(o.innerText=""),o.classList.add("show-placeholder")):o.classList.remove("show-placeholder")})}const pt=({host:e,onChange:p})=>{const i=e.dataset.key,o=e.dataset.placeholder,m=e.dataset.options?decodeURIComponent(e.dataset.options):"[]",S=e.dataset.required==="true",T=e.dataset.value||"",$=u.useMemo(()=>{try{return JSON.parse(m)}catch{return[]}},[m]),[w,x]=u.useState(T||void 0),[t,f]=u.useState(80),d=n=>{const r=document.createElement("canvas").getContext("2d");return r?(r.font='14px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif',r.measureText(n).width):n.length*14};u.useEffect(()=>{const n=w?$.find(C=>C.value===w)?.label||w:o||"请选择",s=d(n),r=Math.max(64,Math.ceil(s+40));f(r)},[w,$,o]);const a=n=>{x(n),e.setAttribute("data-value",n),p(i,n)};return u.useEffect(()=>{x(T||void 0)},[T]),De.createPortal(c.jsx("div",{className:"rte-select-wrapper",contentEditable:!1,style:{display:"inline-block",minWidth:t,width:t},children:c.jsx(R.Select,{value:w,onChange:a,placeholder:o||"请选择",style:{width:"100%",minWidth:t},options:$,allowClear:!S,size:"small",dropdownClassName:"rte-select-dropdown",getPopupContainer:()=>document.body,dropdownMatchSelectWidth:!1,suffixIcon:c.jsx("i",{className:"iconfont icon-qiehuan-xiayizhang",style:{fontSize:"10px",color:"#7C3AED"}})})}),e)},ft=e=>{const[p,i]=u.useState([]);return u.useEffect(()=>{const o=e.current;if(!o)return;const m=()=>{const T=o.querySelectorAll(".rte-select-host"),$=[];T.forEach(w=>{const x=w.getAttribute("data-key");x&&$.push(c.jsx(pt,{host:w,onChange:()=>{if(e.current){const t=new Event("input",{bubbles:!0});e.current.dispatchEvent(t)}}},`select-${x}`))}),i($)};m();const S=new MutationObserver(T=>{let $=!1;for(const w of T)if(w.type==="childList"){let x=!1;if(w.addedNodes.forEach(t=>{if(t.nodeType===Node.ELEMENT_NODE){const f=t;(f.classList?.contains("rte-select-host")||f.querySelector?.(".rte-select-host"))&&(x=!0)}}),w.removedNodes.forEach(t=>{if(t.nodeType===Node.ELEMENT_NODE){const f=t;(f.classList?.contains("rte-select-host")||f.querySelector?.(".rte-select-host"))&&(x=!0)}}),x){$=!0;break}}$&&m()});return S.observe(o,{childList:!0,subtree:!0}),()=>S.disconnect()},[e]),p};function yt(e,p,i,o,m,S={},T={},$){if(!e.current)return;let w="",x=0;for(;x<p.length;){const t=p[x],f=x+1<p.length?p[x+1]:null;if(t.type==="text"&&(t.text?.includes("icon-bitian")||t.className==="rte-text-required")&&f){const C=f.type==="upload"&&f.exclusionGroup==="fileInput"&&t.exclusionGroup==="fileInput"&&t.exclusionGroup===f.exclusionGroup,l=f.type==="variable"&&f.exclusionGroup==="textInput"&&t.exclusionGroup==="textInput"&&t.exclusionGroup===f.exclusionGroup;if(C){const N=`<span ${t.exclusionGroup?`data-group="${t.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group">`,V="</span>";let P="";t.className?P=`<span class="${t.className}">${t.text??""}</span>`:P=t.text??"";const _=f,Y=i[_.key]!==null&&i[_.key]!==void 0,A=Y?i[_.key]:null,z=Y?i[_.key]?.name:_.text,B=Y?"":"hidden",te=_.tooltip&&!Y?"":"hidden",ie=Y?"has-file":"",b=Y&&z?` data-file-name="${z.replace(/"/g,""")}"`:"";let y="";Y&&A?A.type?.startsWith("image/")?y=`<img class="upload-icon-img upload-icon-preview" src="${URL.createObjectURL(A)}" alt="preview" />`:y="<i class='iconfont icon-exlwenjian'></i>":y="<i class='iconfont icon-shangchuan1'></i>";const g=`<span contenteditable="false" data-type="upload" data-key="${_.key}" class="upload-chip"><span class="upload-inner-wrapper ${ie}"><span class="upload-icon">${y}</span><span class="upload-label"${b}>${z||_.text}</span>${_.tooltip?`<i contenteditable="false" class="iconfont icon-tishi upload-info-icon ${te}" data-upload-key="${_.key}" data-tooltip="${_.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${B}" title="移除文件">×</span></span></span>`;w+=N+P+g+V,x+=2;continue}if(l){const N=`<span ${t.exclusionGroup?`data-group="${t.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group">`,V="</span>";let P="";t.className?P=`<span class="${t.className}">${t.text??""}</span>`:P=t.text??"";const _=f,A=(_.key?m[_.key]:void 0)||_.text||"",z=!A,B=z?"":A,te=z?"show-placeholder":"",ie=_.exclusionGroup?` data-group="${_.exclusionGroup}"`:"",b=_.tooltip?` data-tooltip="${_.tooltip.replace(/"/g,""")}" data-variable-key="${_.key||""}"`:"",y=_.tooltip&&z?"":"hidden",g=`<span contenteditable="true" data-type="variable" data-key="${_.key}" data-placeholder="${_.placeholder||""}"${ie}${b} class="variable-chip ${te}">${B}${_.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${y}" data-variable-key="${_.key}" data-tooltip="${_.tooltip.replace(/"/g,""")}" title="提示"></i>`:""}</span>`;w+=N+P+g+V,x+=2;continue}}const a=t.exclusionGroup?`data-group="${t.exclusionGroup}"`:"",n=t.exclusionGroup?`<span ${a} class="exclusion-wrapper">`:"",s=t.exclusionGroup?"</span>":"";let r="";if(t.type==="tag"){const l=o||$==="hideTagClose"?"":'<span class="tag-close-btn" title="Clear (ESC)"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6L6 18M6 6l12 12"/></svg></span>',k=o?' data-locked="true"':"",N=t.tooltip?` data-tooltip="${t.tooltip.replace(/"/g,""")}" data-tag-key="${t.key||""}"`:"";r=`<span contenteditable="false" class="tag-node group"${k}${N}><span class="tag-label">${t.text}</span>${l}</span>`}else if(t.type==="text"){const C=o?' data-locked="true" contenteditable="false"':' contenteditable="false"',k=(t.text??"").replace(/\n/g,"<br/>");t.className?r=`<span data-type="text" class="${t.className}"${C}>${k}</span>`:r=o?`<span data-type="text"${C}>${k}</span>`:`<span data-type="text" contenteditable="false">${k}</span>`}else if(t.type==="variable"&&t.key){const l=m[t.key]||t.text||"",k=!l,N=k?"":l,V=k?"show-placeholder":"",P=t.exclusionGroup?` data-group="${t.exclusionGroup}"`:"",_=t.tooltip?` data-tooltip="${t.tooltip.replace(/"/g,""")}" data-variable-key="${t.key||""}"`:"",Y=t.tooltip&&k?"":"hidden",A=`<span contenteditable="true" data-type="variable" data-key="${t.key}" data-placeholder="${t.placeholder||""}"${P}${_} class="variable-chip ${V}">${N}${t.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${Y}" data-variable-key="${t.key}" data-tooltip="${t.tooltip.replace(/"/g,""")}" title="提示"></i>`:""}</span>`;t.required?r=`<span ${t.exclusionGroup?`data-group="${t.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${A}</span>`:r=A}else if(t.type==="upload"&&t.key)if(typeof t.maxCount=="number"&&typeof t.minCount=="number"){const l=t.minCount||1,k=t.maxCount||3,N=T[t.key]||l,V=Math.max(l,Math.min(N,k));let P="";for(let _=0;_<V;_++){const Y=`${t.key}-${_}`,A=i[Y]!==null&&i[Y]!==void 0,z=A?i[Y]:null,B=A?i[Y]?.name:t.text,te=A?"":"hidden",ie=t.tooltip&&!A?"":"hidden",b=A?"has-file":"",y=A&&B?` data-file-name="${B.replace(/"/g,""")}"`:"";let g="";A&&z?z.type?.startsWith("image/")?g=`<img class="upload-icon-img upload-icon-preview" src="${URL.createObjectURL(z)}" alt="preview" />`:g="<i class='iconfont icon-exlwenjian'></i>":g="<i class='iconfont icon-shangchuan1'></i>";const M=` data-batch-key="${t.key}"`,D=` data-batch-index="${_}"`,U=`<span contenteditable="false" data-type="upload" data-key="${Y}"${M}${D} class="upload-chip upload-chip-batch"><span class="upload-inner-wrapper ${b}"><span class="upload-icon">${g}</span><span class="upload-label"${y}>${B||t.text}</span>${t.tooltip?`<i contenteditable="false" class="iconfont icon-tishi upload-info-icon ${ie}" data-upload-key="${Y}" data-tooltip="${t.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${te}" title="移除文件">×</span></span></span>`;P+=U}t.required?r=`<span ${t.exclusionGroup?`data-group="${t.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${P}</span>`:r=P}else{const l=i[t.key]!==null&&i[t.key]!==void 0,k=l?i[t.key]:null,N=l?i[t.key]?.name:t.text,V=l?"":"hidden",P=t.tooltip&&!l?"":"hidden",_=l?"has-file":"",Y=l&&N?` data-file-name="${N.replace(/"/g,""")}"`:"";let A="";l&&k?k.type?.startsWith("image/")?A=`<img class="upload-icon-img upload-icon-preview" src="${URL.createObjectURL(k)}" alt="preview" />`:A="<i class='iconfont icon-exlwenjian'></i>":A="<i class='iconfont icon-shangchuan1'></i>";const z=`<span contenteditable="false" data-type="upload" data-key="${t.key}" class="upload-chip"><span class="upload-inner-wrapper ${_}"><span class="upload-icon">${A}</span><span class="upload-label"${Y}>${N||t.text}</span>${t.tooltip?`<i contenteditable="false" class="iconfont icon-tishi upload-info-icon ${P}" data-upload-key="${t.key}" data-tooltip="${t.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${V}" title="移除文件">×</span></span></span>`;t.required?r=`<span ${t.exclusionGroup?`data-group="${t.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${z}</span>`:r=z}else if(t.type==="select"&&t.key){const C=m[t.key]||t.defaultValue||"",l=encodeURIComponent(JSON.stringify(t.options||[])),k=t.placeholder?` data-placeholder="${t.placeholder}"`:"",N=t.exclusionGroup?` data-group="${t.exclusionGroup}"`:"",V=t.required?' data-required="true"':"",P=`<div data-type="select" data-key="${t.key}" data-value="${C}" data-options="${l}"${k}${N}${V} class="rte-select-host"></div>`;t.required?r=`<span ${t.exclusionGroup?`data-group="${t.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${P}</span>`:r=P}else if(t.type==="textarea"&&t.key){const C=m[t.key]||"",l=t.maxHeight||252,k=t.expandable!==!1,N=t.placeholder?` placeholder="${t.placeholder}"`:"",V=`<textarea data-type="textarea" data-key="${t.key}" class="rte-textarea" data-max-height="${l}" style="max-height:${l}px;"${N}>${C}</textarea>`,P=k?`<button type="button" class="rte-textarea-toggle" data-key="${t.key}" data-expanded="false">展开</button>`:"",_=`<div class="rte-textarea-wrapper" data-key="${t.key}">${V}${P}</div>`;t.required?r=`<span ${t.exclusionGroup?`data-group="${t.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${_}</span>`:r=_}else if(t.type==="richtext"&&t.key){const C=m[t.key]||t.text||"",l=t.minHeight||140,k=t.placeholder?` data-placeholder="${t.placeholder}"`:"",N=t.expandable!==!1,V=C,P=`<div contenteditable="true" data-type="richtext" data-key="${t.key}" class="rte-richtext"${k} style="min-height:${l}px;">${V}</div>`,_=N?`<button type="button" class="rte-richtext-toggle" data-key="${t.key}" data-expanded="false"><i class="iconfont icon-zhankai2"></i><span class="rte-richtext-toggle-label">展开</span></button>`:"",Y=`<div class="rte-richtext-wrapper" data-key="${t.key}">${P}${_}</div>`,A=`<div class="rte-richtext-container" data-key="${t.key}">${Y}</div>`;t.required?r=`<div ${t.exclusionGroup?`data-group="${t.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group rte-richtext-required"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${A}</div>`:r=A}else if(t.type==="datepicker"&&t.key){const C=m[t.key]||"",l=t.placeholder?` data-placeholder="${t.placeholder}"`:"",k=t.limitRange?` data-limit-range="${t.limitRange}"`:"",N=t.disableFuture?' data-disable-future="true"':"",V=`<div data-type="datepicker" data-key="${t.key}" data-value="${C}" class="rte-datepicker-host"${l}${k}${N}></div>`;t.required?r=`<span ${t.exclusionGroup?`data-group="${t.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${V}</span>`:r=V}else if(t.type==="multi-variable"&&t.key){const C=t.maxCount||9,l=S[t.key]||1,k=Math.min(l,C);if(t.required){const N=`<span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>`,V=t.exclusionGroup?`data-group="${t.exclusionGroup}"`:"";let P="";for(let _=0;_<k;_++){const Y=`${t.key}_${_}`,A=m[Y]||"",z=!A,B=z?"":A,te=z?"show-placeholder":"",ie=t.tooltip?` data-tooltip="${t.tooltip.replace(/"/g,""")}" data-variable-key="${t.key||""}"`:"",b=t.tooltip&&z?"":"hidden",y=t.exclusionGroup?` data-group="${t.exclusionGroup}"`:"",g=`<span contenteditable="true" data-type="variable" data-key="${Y}" data-multi-key="${t.key}" data-index="${_}" data-placeholder="${t.placeholder||""}"${y}${ie} class="variable-chip ${te}">${B}${t.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${b}" data-variable-key="${t.key}" data-tooltip="${t.tooltip.replace(/"/g,""")}" title="提示"></i>`:""}</span>`;_===0?P+=`<span ${V} class="exclusion-wrapper required-upload-group required-multi-first">${N}${g}</span>`:P+=g}r=P}else{let N="";for(let V=0;V<k;V++){const P=`${t.key}_${V}`,_=m[P]||"",Y=!_,A=Y?"":_,z=Y?"show-placeholder":"",B=t.tooltip?` data-tooltip="${t.tooltip.replace(/"/g,""")}" data-variable-key="${t.key||""}"`:"",te=t.tooltip&&Y?"":"hidden",ie=t.exclusionGroup?` data-group="${t.exclusionGroup}"`:"",b=`<span contenteditable="true" data-type="variable" data-key="${P}" data-multi-key="${t.key}" data-index="${V}" data-placeholder="${t.placeholder||""}"${ie}${B} class="variable-chip ${z}">${A}${t.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${te}" data-variable-key="${t.key}" data-tooltip="${t.tooltip.replace(/"/g,""")}" title="提示"></i>`:""}</span>`;N+=b}r=N}}w+=n+r+s,x++}e.current&&(e.current.innerHTML=w,setTimeout(()=>{if(!e.current)return;e.current.querySelectorAll('[data-type="variable"]').forEach(f=>{const d=f.innerText.replace(/\n/g,"");d.replace(/\u200B/g,"")?f.classList.remove("show-placeholder"):(d!==""&&(f.innerText=""),f.classList.add("show-placeholder"))})},0))}function mt(e,p,i,o,m={},S={},T,$,w){const x=u.useCallback(()=>{if(!e.current)return;if(p.length===0){e.current.innerHTML="";return}let t={};const d=e.current.__tempVariableValues;if(d?(t=d,setTimeout(()=>{if(e.current){const a=e.current;a.__tempVariableValues===d&&delete a.__tempVariableValues}},100)):(e.current.querySelectorAll('[data-type="variable"]').forEach(l=>{const k=l.dataset.key;if(k){const N=l.innerText.replace(/[\u200B\n]/g,"").trim();N&&(t[k]=N)}}),e.current.querySelectorAll('[data-type="select"]').forEach(l=>{const k=l.dataset.key;if(k){const N=(l.getAttribute("data-value")||"").trim();N&&(t[k]=N)}}),e.current.querySelectorAll('[data-type="textarea"]').forEach(l=>{const k=l.dataset.key;if(k){const N=l.value.replace(/[\u200B]/g,"").trim();N&&(t[k]=N)}}),e.current.querySelectorAll('[data-type="richtext"]').forEach(l=>{const k=l.dataset.key;if(k){const N=(l.textContent||"").replace(/[\u200B]/g,"").trim();N&&(t[k]=N)}}),e.current.querySelectorAll('[data-type="datepicker"]').forEach(l=>{const k=l.dataset.key;if(k){const N=(l.getAttribute("data-value")||"").trim();N&&(t[k]=N)}})),yt(e,p,i,o,t,m,S,w),T?.current){const{key:a,offset:n}=T.current;setTimeout(()=>{if(!e.current)return;const s=e.current.querySelector(`[data-type="variable"][data-key="${a}"]`);if(s){try{const r=document.createRange(),C=document.createTreeWalker(s,NodeFilter.SHOW_TEXT,null);let l=0,k=null,N=0;for(;C.nextNode();){const V=C.currentNode,P=V.textContent?.length||0;if(l+P>=n){k=V,N=n-l;break}l+=P}if(k){r.setStart(k,Math.min(N,k.textContent?.length||0)),r.collapse(!0);const V=window.getSelection();V&&(V.removeAllRanges(),V.addRange(r),s.focus())}else{r.selectNodeContents(s),r.collapse(!1);const V=window.getSelection();V&&(V.removeAllRanges(),V.addRange(r),s.focus())}}catch{const r=document.createRange();r.selectNodeContents(s),r.collapse(!1);const C=window.getSelection();C&&(C.removeAllRanges(),C.addRange(r),s.focus())}T.current=null}},0)}},[p,i,o,e,m,S,T,$,w]);u.useEffect(()=>{x()},[x])}function ht(e,p,i,o){u.useEffect(()=>{const m=e.current;if(!m)return;const S=$=>{const w=$.target?.closest(".upload-info-icon");if(w&&w.classList.contains("upload-info-icon")){const t=w.dataset.uploadKey;t&&o({key:t,anchorEl:w,type:"upload"});return}const x=$.target?.closest('[data-type="upload"]');if(x){const t=x.dataset.key;if(t){const f=i[t];f&&f.type&&f.type.startsWith("image/")&&o({key:t,anchorEl:x,type:"upload-preview"})}}},T=$=>{const w=$.target?.closest(".upload-info-icon"),x=$.relatedTarget;if(w&&w.classList.contains("upload-info-icon")){!x||!m.contains(x)?o(null):x.closest(".upload-info-icon")||o(null);return}const t=$.target?.closest('[data-type="upload"]');if(t){const f=x;if(f&&t.contains(f))return;o(null)}};return m.addEventListener("mouseover",S,!0),m.addEventListener("mouseout",T,!0),()=>{m.removeEventListener("mouseover",S,!0),m.removeEventListener("mouseout",T,!0)}},[p,i,e,o])}function gt(e,p,i,o){u.useEffect(()=>{if(!e.current)return;const m=w=>{if(o==="hideTagClose")return;const x=w.currentTarget,t=x.dataset.tooltip,f=x.dataset.tagKey||"";t&&i({key:f,anchorEl:x,type:"tag"})},S=()=>{i(null)};let T;const $=()=>{if(!e.current)return;e.current.querySelectorAll(".tag-node[data-tooltip]").forEach(x=>{x.addEventListener("mouseenter",m),x.addEventListener("mouseleave",S)})};return T=requestAnimationFrame(()=>{T=requestAnimationFrame($)}),()=>{cancelAnimationFrame(T),e.current&&e.current.querySelectorAll(".tag-node[data-tooltip]").forEach(x=>{x.removeEventListener("mouseenter",m),x.removeEventListener("mouseleave",S)})}},[p,e,i,o])}function bt(e,p,i){u.useEffect(()=>{const o=e.current;if(!o)return;const m=T=>{const $=T.target?.closest(".variable-info-icon");if($&&$.classList.contains("variable-info-icon")){const w=$.dataset.variableKey;w&&i({key:w,anchorEl:$,type:"variable"})}},S=T=>{const $=T.target?.closest(".variable-info-icon"),w=T.relatedTarget;$&&$.classList.contains("variable-info-icon")&&(!w||!o.contains(w)?i(null):w.closest(".variable-info-icon")||i(null))};return o.addEventListener("mouseover",m,!0),o.addEventListener("mouseout",S,!0),()=>{o.removeEventListener("mouseover",m,!0),o.removeEventListener("mouseout",S,!0)}},[p,e,i])}function vt(e,p,i,o){u.useEffect(()=>{if(!e.current)return;const m=w=>{const x=w.currentTarget;x.dataset.fileName&&o({key:"",anchorEl:x,type:"upload-label"})},S=()=>{o(null)};let T;const $=()=>{if(!e.current)return;e.current.querySelectorAll(".upload-label[data-file-name]").forEach(x=>{x.addEventListener("mouseenter",m),x.addEventListener("mouseleave",S)})};return T=requestAnimationFrame(()=>{T=requestAnimationFrame($)}),()=>{cancelAnimationFrame(T),e.current&&e.current.querySelectorAll(".upload-label[data-file-name]").forEach(x=>{x.removeEventListener("mouseenter",m),x.removeEventListener("mouseleave",S)})}},[p,i,e,o])}function xt(e,p,i,o){u.useEffect(()=>{const m=setTimeout(()=>{Ie(e,p,i),Pe(e,p,i,o)},0);return()=>clearTimeout(m)},[i,p,e,o])}function kt(e,p){const i=u.useRef(0),o=u.useRef(0);u.useEffect(()=>{if(!e.current)return;let m=!1,S=0;const T=l=>l instanceof HTMLElement?!!(l.closest(".rte-datepicker-wrapper")||l.closest(".rte-datepicker-host")||l.closest(".ant-picker")||l.closest(".ant-picker-dropdown")):!1,$=l=>l instanceof HTMLElement?!!(l.closest(".rte-select-wrapper")||l.closest(".rte-select-host")||l.closest(".ant-select")||l.closest(".ant-select-dropdown")):!1,w=l=>{m=!0,T(l.target)&&(i.current=Date.now(),console.log("[SelectionCtrl] mousedown on datepicker target")),$(l.target)&&(o.current=Date.now(),console.log("[SelectionCtrl] mousedown on select target"))},x=()=>{m=!1,S=Date.now()};let t=!1,f=0;const d=()=>{t=!0},a=()=>{t=!1,f=Date.now()},n=()=>{f=Date.now()},s=l=>{T(l.target)&&(i.current=Date.now(),console.log("[SelectionCtrl] focusin datepicker target")),$(l.target)&&(o.current=Date.now(),console.log("[SelectionCtrl] focusin select target"))},r=()=>{if(Date.now()-i.current<800||Date.now()-o.current<800){console.log("[SelectionCtrl] skip selectionchange due to recent picker/select interaction");return}const l=document.activeElement;if(l&&(l.closest(".rte-datepicker-wrapper")||l.closest(".rte-datepicker-host")||l.closest(".ant-picker-dropdown")||l.tagName==="INPUT"&&l.closest(".ant-picker")||l.closest(".rte-select-wrapper")||l.closest(".rte-select-host")||l.closest(".ant-select")||l.closest(".ant-select-dropdown"))){console.log("[SelectionCtrl] activeElement is picker/select; skip");return}if(!e.current)return;const k=window.getSelection();if(!k||k.rangeCount===0||p.current||m||t||Date.now()-f<500)return;const N=k.getRangeAt(0);if(!N.collapsed)return e.current.contains(N.commonAncestorContainer),void 0;const V=k.anchorNode;if(!V||!e.current.contains(V))return;let P=!1,_=!1;if(V.nodeType===Node.ELEMENT_NODE){const A=V;(A.closest('[data-type="datepicker"]')||A.closest(".rte-datepicker-wrapper")||A.closest(".rte-datepicker-host"))&&(P=!0),(A.closest('[data-type="select"]')||A.closest(".rte-select-wrapper")||A.closest(".rte-select-host"))&&(_=!0)}else if(V.parentElement){const A=V.parentElement;(A.closest('[data-type="datepicker"]')||A.closest(".rte-datepicker-wrapper")||A.closest(".rte-datepicker-host"))&&(P=!0),(A.closest('[data-type="select"]')||A.closest(".rte-select-wrapper")||A.closest(".rte-select-host"))&&(_=!0)}if(P||_)return;let Y=null;if(V.nodeType===Node.ELEMENT_NODE?Y=V.closest('[data-type="variable"]'):V.nodeType===Node.TEXT_NODE&&V.parentElement&&(Y=V.parentElement.closest('[data-type="variable"]')),!Y){if(Date.now()-S>500)return;const A=e.current.querySelectorAll('[data-type="variable"]');if(A.length>0){let z=null;for(const B of Array.from(A))if(B.style.display!=="none"){z=B;break}if(!z&&A.length>0&&(z=A[0]),z){const B=document.createRange();B.selectNodeContents(z),B.collapse(!1),k.removeAllRanges(),k.addRange(B),z.focus()}else k.removeAllRanges()}else k.removeAllRanges()}},C=e.current;return C&&(C.addEventListener("compositionstart",d),C.addEventListener("compositionend",a),C.addEventListener("input",n)),document.addEventListener("mousedown",w),document.addEventListener("mouseup",x),document.addEventListener("focusin",s),document.addEventListener("selectionchange",r),()=>{const l=e.current;l&&(l.removeEventListener("compositionstart",d),l.removeEventListener("compositionend",a),l.removeEventListener("input",n)),document.removeEventListener("mousedown",w),document.removeEventListener("mouseup",x),document.removeEventListener("focusin",s),document.removeEventListener("selectionchange",r)}},[e,p])}function wt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var qe={exports:{}},Et=qe.exports,Xe;function Je(){return Xe||(Xe=1,function(e,p){(function(i,o){e.exports=o()})(Et,function(){var i=1e3,o=6e4,m=36e5,S="millisecond",T="second",$="minute",w="hour",x="day",t="week",f="month",d="quarter",a="year",n="date",s="Invalid Date",r=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,C=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,l={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(b){var y=["th","st","nd","rd"],g=b%100;return"["+b+(y[(g-20)%10]||y[g]||y[0])+"]"}},k=function(b,y,g){var M=String(b);return!M||M.length>=y?b:""+Array(y+1-M.length).join(g)+b},N={s:k,z:function(b){var y=-b.utcOffset(),g=Math.abs(y),M=Math.floor(g/60),D=g%60;return(y<=0?"+":"-")+k(M,2,"0")+":"+k(D,2,"0")},m:function b(y,g){if(y.date()<g.date())return-b(g,y);var M=12*(g.year()-y.year())+(g.month()-y.month()),D=y.clone().add(M,f),U=g-D<0,J=y.clone().add(M+(U?-1:1),f);return+(-(M+(g-D)/(U?D-J:J-D))||0)},a:function(b){return b<0?Math.ceil(b)||0:Math.floor(b)},p:function(b){return{M:f,y:a,w:t,d:x,D:n,h:w,m:$,s:T,ms:S,Q:d}[b]||String(b||"").toLowerCase().replace(/s$/,"")},u:function(b){return b===void 0}},V="en",P={};P[V]=l;var _="$isDayjsObject",Y=function(b){return b instanceof te||!(!b||!b[_])},A=function b(y,g,M){var D;if(!y)return V;if(typeof y=="string"){var U=y.toLowerCase();P[U]&&(D=U),g&&(P[U]=g,D=U);var J=y.split("-");if(!D&&J.length>1)return b(J[0])}else{var ae=y.name;P[ae]=y,D=ae}return!M&&D&&(V=D),D||!M&&V},z=function(b,y){if(Y(b))return b.clone();var g=typeof y=="object"?y:{};return g.date=b,g.args=arguments,new te(g)},B=N;B.l=A,B.i=Y,B.w=function(b,y){return z(b,{locale:y.$L,utc:y.$u,x:y.$x,$offset:y.$offset})};var te=function(){function b(g){this.$L=A(g.locale,null,!0),this.parse(g),this.$x=this.$x||g.x||{},this[_]=!0}var y=b.prototype;return y.parse=function(g){this.$d=function(M){var D=M.date,U=M.utc;if(D===null)return new Date(NaN);if(B.u(D))return new Date;if(D instanceof Date)return new Date(D);if(typeof D=="string"&&!/Z$/i.test(D)){var J=D.match(r);if(J){var ae=J[2]-1||0,se=(J[7]||"0").substring(0,3);return U?new Date(Date.UTC(J[1],ae,J[3]||1,J[4]||0,J[5]||0,J[6]||0,se)):new Date(J[1],ae,J[3]||1,J[4]||0,J[5]||0,J[6]||0,se)}}return new Date(D)}(g),this.init()},y.init=function(){var g=this.$d;this.$y=g.getFullYear(),this.$M=g.getMonth(),this.$D=g.getDate(),this.$W=g.getDay(),this.$H=g.getHours(),this.$m=g.getMinutes(),this.$s=g.getSeconds(),this.$ms=g.getMilliseconds()},y.$utils=function(){return B},y.isValid=function(){return this.$d.toString()!==s},y.isSame=function(g,M){var D=z(g);return this.startOf(M)<=D&&D<=this.endOf(M)},y.isAfter=function(g,M){return z(g)<this.startOf(M)},y.isBefore=function(g,M){return this.endOf(M)<z(g)},y.$g=function(g,M,D){return B.u(g)?this[M]:this.set(D,g)},y.unix=function(){return Math.floor(this.valueOf()/1e3)},y.valueOf=function(){return this.$d.getTime()},y.startOf=function(g,M){var D=this,U=!!B.u(M)||M,J=B.p(g),ae=function(me,fe){var xe=B.w(D.$u?Date.UTC(D.$y,fe,me):new Date(D.$y,fe,me),D);return U?xe:xe.endOf(x)},se=function(me,fe){return B.w(D.toDate()[me].apply(D.toDate("s"),(U?[0,0,0,0]:[23,59,59,999]).slice(fe)),D)},ce=this.$W,de=this.$M,le=this.$D,ve="set"+(this.$u?"UTC":"");switch(J){case a:return U?ae(1,0):ae(31,11);case f:return U?ae(1,de):ae(0,de+1);case t:var Z=this.$locale().weekStart||0,pe=(ce<Z?ce+7:ce)-Z;return ae(U?le-pe:le+(6-pe),de);case x:case n:return se(ve+"Hours",0);case w:return se(ve+"Minutes",1);case $:return se(ve+"Seconds",2);case T:return se(ve+"Milliseconds",3);default:return this.clone()}},y.endOf=function(g){return this.startOf(g,!1)},y.$set=function(g,M){var D,U=B.p(g),J="set"+(this.$u?"UTC":""),ae=(D={},D[x]=J+"Date",D[n]=J+"Date",D[f]=J+"Month",D[a]=J+"FullYear",D[w]=J+"Hours",D[$]=J+"Minutes",D[T]=J+"Seconds",D[S]=J+"Milliseconds",D)[U],se=U===x?this.$D+(M-this.$W):M;if(U===f||U===a){var ce=this.clone().set(n,1);ce.$d[ae](se),ce.init(),this.$d=ce.set(n,Math.min(this.$D,ce.daysInMonth())).$d}else ae&&this.$d[ae](se);return this.init(),this},y.set=function(g,M){return this.clone().$set(g,M)},y.get=function(g){return this[B.p(g)]()},y.add=function(g,M){var D,U=this;g=Number(g);var J=B.p(M),ae=function(de){var le=z(U);return B.w(le.date(le.date()+Math.round(de*g)),U)};if(J===f)return this.set(f,this.$M+g);if(J===a)return this.set(a,this.$y+g);if(J===x)return ae(1);if(J===t)return ae(7);var se=(D={},D[$]=o,D[w]=m,D[T]=i,D)[J]||1,ce=this.$d.getTime()+g*se;return B.w(ce,this)},y.subtract=function(g,M){return this.add(-1*g,M)},y.format=function(g){var M=this,D=this.$locale();if(!this.isValid())return D.invalidDate||s;var U=g||"YYYY-MM-DDTHH:mm:ssZ",J=B.z(this),ae=this.$H,se=this.$m,ce=this.$M,de=D.weekdays,le=D.months,ve=D.meridiem,Z=function(fe,xe,Ee,$e){return fe&&(fe[xe]||fe(M,U))||Ee[xe].slice(0,$e)},pe=function(fe){return B.s(ae%12||12,fe,"0")},me=ve||function(fe,xe,Ee){var $e=fe<12?"AM":"PM";return Ee?$e.toLowerCase():$e};return U.replace(C,function(fe,xe){return xe||function(Ee){switch(Ee){case"YY":return String(M.$y).slice(-2);case"YYYY":return B.s(M.$y,4,"0");case"M":return ce+1;case"MM":return B.s(ce+1,2,"0");case"MMM":return Z(D.monthsShort,ce,le,3);case"MMMM":return Z(le,ce);case"D":return M.$D;case"DD":return B.s(M.$D,2,"0");case"d":return String(M.$W);case"dd":return Z(D.weekdaysMin,M.$W,de,2);case"ddd":return Z(D.weekdaysShort,M.$W,de,3);case"dddd":return de[M.$W];case"H":return String(ae);case"HH":return B.s(ae,2,"0");case"h":return pe(1);case"hh":return pe(2);case"a":return me(ae,se,!0);case"A":return me(ae,se,!1);case"m":return String(se);case"mm":return B.s(se,2,"0");case"s":return String(M.$s);case"ss":return B.s(M.$s,2,"0");case"SSS":return B.s(M.$ms,3,"0");case"Z":return J}return null}(fe)||J.replace(":","")})},y.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},y.diff=function(g,M,D){var U,J=this,ae=B.p(M),se=z(g),ce=(se.utcOffset()-this.utcOffset())*o,de=this-se,le=function(){return B.m(J,se)};switch(ae){case a:U=le()/12;break;case f:U=le();break;case d:U=le()/3;break;case t:U=(de-ce)/6048e5;break;case x:U=(de-ce)/864e5;break;case w:U=de/m;break;case $:U=de/o;break;case T:U=de/i;break;default:U=de}return D?U:B.a(U)},y.daysInMonth=function(){return this.endOf(f).$D},y.$locale=function(){return P[this.$L]},y.locale=function(g,M){if(!g)return this.$L;var D=this.clone(),U=A(g,M,!0);return U&&(D.$L=U),D},y.clone=function(){return B.w(this.$d,this)},y.toDate=function(){return new Date(this.valueOf())},y.toJSON=function(){return this.isValid()?this.toISOString():null},y.toISOString=function(){return this.$d.toISOString()},y.toString=function(){return this.$d.toUTCString()},b}(),ie=te.prototype;return z.prototype=ie,[["$ms",S],["$s",T],["$m",$],["$H",w],["$W",x],["$M",f],["$y",a],["$D",n]].forEach(function(b){ie[b[1]]=function(y){return this.$g(y,b[0],b[1])}}),z.extend=function(b,y){return b.$i||(b(y,te,z),b.$i=!0),z},z.locale=A,z.isDayjs=Y,z.unix=function(b){return z(1e3*b)},z.en=P[V],z.Ls=P,z.p={},z})}(qe)),qe.exports}var $t=Je();const Ne=wt($t);var Ae={exports:{}},Ct=Ae.exports,Qe;function St(){return Qe||(Qe=1,function(e,p){(function(i,o){e.exports=o(Je())})(Ct,function(i){function o(T){return T&&typeof T=="object"&&"default"in T?T:{default:T}}var m=o(i),S={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(T,$){return $==="W"?T+"周":T+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(T,$){var w=100*T+$;return w<600?"凌晨":w<900?"早上":w<1100?"上午":w<1300?"中午":w<1800?"下午":"晚上"}};return m.default.locale(S,null,!0),S})}(Ae)),Ae.exports}St();function Te(e){"@babel/helpers - typeof";return Te=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p},Te(e)}function Tt(e,p){if(Te(e)!="object"||!e)return e;var i=e[Symbol.toPrimitive];if(i!==void 0){var o=i.call(e,p);if(Te(o)!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(p==="string"?String:Number)(e)}function qt(e){var p=Tt(e,"string");return Te(p)=="symbol"?p:p+""}function Nt(e,p,i){return(p=qt(p))in e?Object.defineProperty(e,p,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[p]=i,e}function Ze(e,p){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);p&&(o=o.filter(function(m){return Object.getOwnPropertyDescriptor(e,m).enumerable})),i.push.apply(i,o)}return i}function Re(e){for(var p=1;p<arguments.length;p++){var i=arguments[p]!=null?arguments[p]:{};p%2?Ze(Object(i),!0).forEach(function(o){Nt(e,o,i[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Ze(Object(i)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(i,o))})}return e}var At={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0},_t=Re(Re({},At),{},{locale:"zh_CN",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",week:"周",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪",yearFormat:"YYYY年",cellDateFormat:"D",monthBeforeYear:!1});const Lt={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},et={lang:Object.assign({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},_t),timePickerLocale:Object.assign({},Lt)};et.lang.ok="确定",Ne.locale("zh-cn");const{RangePicker:Mt}=R.DatePicker,Dt=({host:e,onChange:p})=>{const i=e.dataset.key,o=e.dataset.value,m=e.dataset.placeholder,S=e.dataset.limitRange?parseInt(e.dataset.limitRange,10):void 0,T=e.dataset.disableFuture==="true",[$,w]=u.useState(()=>{if(!o)return null;const s=o.split(",");return s.length===2&&s[0]&&s[1]?[Ne(s[0]),Ne(s[1])]:null}),[x,t]=u.useState(null),f=s=>s?T&&s.isAfter(Ne(),"day")?!0:!S||!x||!x[0]?!1:Math.abs(s.diff(x[0],"days"))>S:!1,d=s=>{console.log("[DatePicker] onCalendarChange",s?.map(r=>r?.format("YYYY-MM-DD")||null)),t(s)},a=s=>{if(console.log("[DatePicker] onChange",s?.map(r=>r?.format("YYYY-MM-DD")||null)),w(s),t(null),s&&s[0]&&s[1]){const r=`${s[0].format("YYYY-MM-DD")},${s[1].format("YYYY-MM-DD")}`;e.setAttribute("data-value",r),p(i,r)}else e.setAttribute("data-value",""),p(i,"")},n=s=>{console.log("[DatePicker] onOpenChange",s),t(s?$:null)};return De.createPortal(c.jsx("div",{className:"rte-datepicker-wrapper",contentEditable:!1,style:{display:"inline-block",verticalAlign:"middle",width:"240px"},children:c.jsx(Mt,{value:$,disabledDate:f,onCalendarChange:d,onChange:a,onOpenChange:n,placeholder:[m||"开始日期",m||"结束日期"],style:{width:"100%"},size:"small",allowClear:!0,locale:et,getPopupContainer:()=>document.body,popupClassName:"rte-datepicker-dropdown"})}),e)},It=e=>{const[p,i]=u.useState([]);return u.useEffect(()=>{const o=e.current;if(!o)return;const m=()=>{const T=o.querySelectorAll(".rte-datepicker-host"),$=[];T.forEach(w=>{const x=w.getAttribute("data-key");x&&$.push(c.jsx(Dt,{host:w,onChange:()=>{if(e.current){const t=new Event("input",{bubbles:!0});e.current.dispatchEvent(t)}}},`datepicker-${x}`))}),i($)};m();const S=new MutationObserver(T=>{let $=!1;for(const w of T)if(w.type==="childList"){let x=!1;if(w.addedNodes.forEach(t=>{if(t.nodeType===Node.ELEMENT_NODE){const f=t;(f.classList?.contains("rte-datepicker-host")||f.querySelector?.(".rte-datepicker-host"))&&(x=!0)}}),w.removedNodes.forEach(t=>{if(t.nodeType===Node.ELEMENT_NODE){const f=t;(f.classList?.contains("rte-datepicker-host")||f.querySelector?.(".rte-datepicker-host"))&&(x=!0)}}),x){$=!0;break}}$&&m()});return S.observe(o,{childList:!0,subtree:!0}),()=>S.disconnect()},[e]),p},tt=({config:e,onSend:p,isProcessing:i=!1,disabled:o=!1,width:m,lockStructure:S=!1,agentOptions:T=[],onAgentSelect:$,onAgentExit:w,loading:x=!1,placeholder:t,border:f,background:d="transparent",hideButtons:a})=>{const n=u.useRef(null),s=u.useRef(null),[r,C]=u.useState({}),[l,k]=u.useState(null),[N,V]=u.useState(null),[P,_]=u.useState(null),Y=u.useRef(!1),A=u.useRef(null),[z,B]=u.useState(!1),te=u.useRef(null),[ie,b]=u.useState(!0),[y,g]=u.useState(()=>{const v={};return e.forEach(h=>{h.type==="multi-variable"&&h.key&&(v[h.key]=1)}),v}),[M,D]=u.useState(()=>{const v={};return e.forEach(h=>{h.type==="upload"&&h.key&&typeof h.maxCount=="number"&&typeof h.minCount=="number"&&(v[h.key]=h.minCount||1)}),v}),U=u.useRef({}),J=u.useRef({}),ae=u.useRef({}),se=u.useRef({});u.useEffect(()=>{J.current=r},[r]),u.useEffect(()=>{ae.current=y},[y]),u.useEffect(()=>{se.current=M},[M]);const ce=u.useCallback(v=>v.find(E=>E.type==="tag")?.text||null,[]),de=u.useRef(e),le=u.useRef(null);u.useEffect(()=>{const v=ce(de.current),h=ce(e);if(v&&v!==h&&n.current){const E={};n.current.querySelectorAll('[data-type="variable"]').forEach(L=>{const K=L.dataset.key;if(K){const O=L.innerText.replace(/[\u200B\n]/g,"").trim();O&&(E[K]=O)}}),n.current.querySelectorAll('[data-type="select"]').forEach(L=>{const K=L.dataset.key;if(K){const O=(L.getAttribute("data-value")||"").trim();O&&(E[K]=O)}}),n.current.querySelectorAll('[data-type="textarea"]').forEach(L=>{const K=L.dataset.key;if(K){const O=L.value.replace(/[\u200B]/g,"").trim();O&&(E[K]=O)}}),U.current[v]={variableValues:E,files:{...J.current},multiVariableCounts:{...ae.current},uploadCounts:{...se.current}}}if(h&&U.current[h]){const E=U.current[h];le.current=E,C(E.files),g(E.multiVariableCounts),D(E.uploadCounts||{})}else if(h){le.current=null;const E={},G={};e.forEach(q=>{q.type==="multi-variable"&&q.key&&(E[q.key]=1),q.type==="upload"&&q.key&&typeof q.maxCount=="number"&&typeof q.minCount=="number"&&(G[q.key]=q.minCount||1)}),g(E),D(G),C({})}else le.current=null,g({}),C({});de.current=e},[e,ce]),u.useLayoutEffect(()=>{le.current&&n.current&&(n.current.__tempVariableValues=le.current.variableValues,setTimeout(()=>{le.current&&(le.current=null)},0))}),mt(n,e,r,S,y,M,te,void 0,a),ht(n,e,r,_),gt(n,e,_,a),vt(n,e,r,_),bt(n,e,_),xt(n,e,r,B),kt(n,Y);const ve=ft(n);u.useEffect(()=>{if(!n.current)return;n.current.querySelectorAll(".rte-richtext-toggle").forEach(h=>{const E=h.getAttribute("data-expanded")==="true";h.innerHTML=E?'<i class="iconfont icon-shouqi1"></i><span class="rte-richtext-toggle-label">收起</span>':'<i class="iconfont icon-zhankai2"></i><span class="rte-richtext-toggle-label">展开</span>'})},[e,n]);const Z=It(n);u.useEffect(()=>{if(e.length>0){b(!1);return}const v=()=>{if(!n.current){b(!0);return}const E=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"",G=n.current.querySelectorAll('[data-type="variable"]'),q=n.current.querySelectorAll('[data-type="upload"]');let H=!1;G.forEach(K=>{(K.textContent?.replace(/[\u200B\n]/g,"").trim()||"")&&(H=!0)}),q.forEach(K=>{K.querySelector(".upload-inner-wrapper.has-file")&&(H=!0)});const L=!E&&!H;b(L),e.length===0&&B(!L)};v();const h=new MutationObserver(v);return n.current&&h.observe(n.current,{childList:!0,subtree:!0,characterData:!0}),()=>{h.disconnect()}},[e]);const pe=v=>{if(o){v.preventDefault();return}v.preventDefault();const h=v.clipboardData.getData("text/plain"),E=window.getSelection();if(E&&E.rangeCount>0){const G=E.anchorNode;if(G){let q=null;if(G.nodeType===Node.ELEMENT_NODE?q=G.closest('[data-type="variable"]'):G.nodeType===Node.TEXT_NODE&&G.parentElement&&(q=G.parentElement.closest('[data-type="variable"]')),q){const H=q.dataset.multiKey;if(H){const L=/[、,,\s\n\r\t]+/,K=h.split(L).map(O=>O.trim()).filter(O=>O.length>0);if(console.log("[Paste Event] 粘贴的内容:",h),console.log("[Paste Event] 拆分后的值:",K),K.length>1){const O=parseInt(q.dataset.index||"0",10),W=e.find(re=>re.type==="multi-variable"&&re.key===H)?.maxCount||9,X=y[H]||1,I=Math.min(O+K.length,W);I>X&&g(ne=>({...ne,[H]:I}));const j=[];for(let ne=0;ne<X;ne++){const re=`${H}_${ne}`,ye=n.current.querySelector(`[data-type="variable"][data-key="${re}"][data-multi-key="${H}"]`);if(ye){const be=ye.innerText.replace(/[\u200B\n]/g,"").trim();j.push(be)}}j.splice(O,1,...K.slice(0,W-O));const Q=j.slice(0,W);Q.length>0&&Q[Q.length-1]!==""&&Q.length<W&&Q.push("");const F=Math.max(Q.length,1),ee={};Q.forEach((ne,re)=>{ne&&(ee[`${H}_${re}`]=ne)}),n.current.querySelectorAll('[data-type="variable"]').forEach(ne=>{const re=ne.dataset.key,ye=ne.dataset.multiKey;if(re&&ye!==H){const be=ne.innerText.replace(/[\u200B\n]/g,"").trim();be&&(ee[re]=be)}}),n.current.__tempVariableValues=ee,g(ne=>({...ne,[H]:F})),console.log("[Paste Event] 粘贴完成,已填充到多个输入框,值:",Q);return}else K.length===1&&console.log("[Paste Event] 粘贴单个值,将在失去焦点时检查是否需要拆分")}}}}document.execCommand("insertText",!1,h),lt(),setTimeout(()=>{const G=window.getSelection();if(G&&G.rangeCount>0){const q=G.anchorNode;if(q){let H=null;if(q.nodeType===Node.ELEMENT_NODE?H=q.closest('[data-type="variable"][data-multi-key]'):q.nodeType===Node.TEXT_NODE&&q.parentElement&&(H=q.parentElement.closest('[data-type="variable"][data-multi-key]')),H){const L=H.innerText.replace(/[\u200B\n]/g,"").trim();/[、,,\s]+/.test(L)&&(console.log("[Paste Event] 粘贴后检测到分隔符,内容:",L),console.log("[Paste Event] 提示:失去焦点后将自动拆分"))}}}},0)},me=v=>{if(!v.target.files){v.target&&(v.target.value=""),k(null),V(null);return}if(N&&v.target.files&&v.target.files.length>0){const h=N,E=e.find(G=>G.type==="upload"&&G.key===h);if(E&&typeof E.maxCount=="number"&&typeof E.minCount=="number"){const G=E.maxCount,q=E.minCount||1,H=Array.from(v.target.files);let L=0;C(K=>{for(let I=0;I<G;I++){const j=`${h}-${I}`;K[j]&&(L=I+1)}const O=G-L,W=H.slice(0,O),X={...K};if(W.forEach((I,j)=>{const Q=`${h}-${L+j}`;X[Q]=I}),W.length>0){const I=Math.max(q,Math.min(L+W.length,G));D(j=>({...j,[h]:I}))}return X})}}else if(l&&v.target.files[0]){const h=v.target.files[0],E=l;C(G=>({...G,[E]:h}))}v.target&&(v.target.value=""),k(null),V(null)},fe=v=>{C(h=>{const E={...h};return delete E[v],E})},xe=v=>{const h=v.target;if(h.closest(".rte-datepicker-wrapper")||h.closest(".rte-datepicker-host")||h.closest(".rte-select-wrapper")||h.closest(".rte-select-host")||h.closest(".ant-select-dropdown"))return;if(h.closest(".tag-close-btn")){if(v.preventDefault(),v.stopPropagation(),S)return;_(null),w?w():n.current&&(n.current.innerHTML="",n.current.focus());return}if(S){const q=h.closest(".tag-node"),H=h.closest('[data-type="text"]');if(q||H){v.preventDefault(),v.stopPropagation();const L=window.getSelection();L&&L.removeAllRanges();return}}h.closest('[data-type="variable"]')||(A.current={x:v.clientX,y:v.clientY},Y.current=!1,h.closest(".file-remove-btn")&&(v.preventDefault(),v.stopPropagation()))},Ee=v=>{if(!v.target.closest('[data-type="variable"]')&&A.current){const G=Math.abs(v.clientX-A.current.x),q=Math.abs(v.clientY-A.current.y);(G>3||q>3)&&(Y.current=!0)}},$e=v=>{if(v.target.closest('[data-type="variable"]')){A.current=null,Y.current=!1;return}A.current=null,Y.current=!1},Ft=v=>{if(o)return;const h=v.target;if(h.closest('[data-type="datepicker"]'))return;if(h.closest(".tag-close-btn")){v.preventDefault(),v.stopPropagation();return}if(e.length===0)return;const q=(I,j)=>{if(!n.current)return;Array.from(n.current.children).forEach(F=>{if(F!==I)if(j)F.dataset.prevDisplay===void 0&&(F.dataset.prevDisplay=F.style.display||""),F.style.setProperty("display","none","important");else if(F.dataset.prevDisplay!==void 0){const ee=F.dataset.prevDisplay;ee?F.style.display=ee:F.style.removeProperty("display"),delete F.dataset.prevDisplay}else F.style.removeProperty("display")})},H=h.closest(".rte-textarea-toggle");if(H){v.preventDefault(),v.stopPropagation();const I=H.closest(".rte-textarea-wrapper"),j=I?.querySelector('[data-type="textarea"]'),F=!(H.getAttribute("data-expanded")==="true");H.setAttribute("data-expanded",String(F)),H.textContent=F?"收起":"展开",I&&I.classList.toggle("rte-textarea-expanded",F);const ee=I?.closest(".rte-textarea-required");if(ee?ee.classList.toggle("rte-textarea-overlay",F):I&&I.classList.toggle("rte-textarea-overlay",F),j)if(F)j.classList.add("rte-textarea-expanded"),j.style.maxHeight="none",j.style.height="100%";else{j.classList.remove("rte-textarea-expanded");const ue=j.dataset.maxHeight||"252";j.style.maxHeight=`${ue}px`,j.style.height="auto"}n.current&&(F?n.current.classList.add("rte-overlay-active"):n.current.classList.remove("rte-overlay-active"));return}const L=h.closest(".rte-richtext-toggle");if(L){v.preventDefault(),v.stopPropagation();const I=L.closest(".rte-richtext-wrapper"),j=I?.querySelector('[data-type="richtext"]'),F=!(L.getAttribute("data-expanded")==="true");((re,ye)=>{re.setAttribute("data-expanded",String(ye)),re.innerHTML=ye?'<i class="iconfont icon-shouqi1"></i><span class="rte-richtext-toggle-label">收起</span>':'<i class="iconfont icon-zhankai2"></i><span class="rte-richtext-toggle-label">展开</span>'})(L,F);const ue=I?.closest(".rte-richtext-required");ue?ue.classList.toggle("rte-richtext-expanded",F):I&&I.classList.toggle("rte-richtext-expanded",F);const ne=I?.closest(".exclusion-wrapper")||I?.parentElement;j&&(F?(j.style.height="100%",j.style.overflow="auto"):(j.style.height="",j.style.overflow="")),ne&&(ne.classList.toggle("rte-richtext-host-expanded",F),q(ne,F)),n.current&&n.current.classList.toggle("rte-richtext-fullscreen-active",F);return}if(h.closest('[data-type="text"]')){v.preventDefault(),v.stopPropagation();const I=window.getSelection();I&&I.removeAllRanges();return}if(S&&h.closest(".tag-node")){v.preventDefault(),v.stopPropagation();const j=window.getSelection();j&&j.removeAllRanges();return}if(h.closest('[data-type="variable"]')){if(Y.current)return;setTimeout(()=>{const I=window.getSelection();I&&!I.isCollapsed||Ve(n)},10);return}const W=h.closest(".file-remove-btn");if(W){v.preventDefault(),v.stopPropagation();const I=W.closest('[data-type="upload"]'),j=I?.dataset.key,Q=I?.dataset.batchKey;if(j)if(Q){const F=e.find(ee=>ee.type==="upload"&&ee.key===Q);if(F&&typeof F.maxCount=="number"&&typeof F.minCount=="number"){const ee=F.minCount||1,ue=F.maxCount;C(ne=>{const re={...ne};delete re[j];let ye=0;for(let he=0;he<ue;he++){const Ce=`${Q}-${he}`;re[Ce]&&(ye=he+1)}const be=Math.max(ee,ye);return D(he=>({...he,[Q]:be})),re})}else fe(j)}else fe(j);return}const X=h.closest('[data-type="upload"]');if(X){const I=X.dataset.key,j=X.dataset.batchKey;if(I)if(j){const Q=e.find(F=>F.type==="upload"&&F.key===j);if(Q&&typeof Q.maxCount=="number"&&typeof Q.minCount=="number"){const F=M[j]||Q.minCount||1,ee=Q.maxCount;F<ee&&s.current?(s.current.multiple=!0,V(j),s.current.click()):(s.current&&(s.current.multiple=!1),k(I),s.current?.click())}else s.current&&(s.current.multiple=!1),k(I),s.current?.click()}else s.current&&(s.current.multiple=!1),k(I),s.current?.click();return}},zt=v=>{const E=v.target.closest('[data-type="variable"]');if(E){const G=window.getSelection();if(G){const q=document.createRange(),H=E.textContent||"";if(H.replace(/\u200B/g,"")){let K=0,O=H.length;H.startsWith("")&&(K=1),H.endsWith("")&&H.length>1&&(O=H.length-1);const W=E.firstChild;W&&W.nodeType===Node.TEXT_NODE?(q.setStart(W,K),q.setEnd(W,O)):q.selectNodeContents(E)}else q.selectNodeContents(E),q.collapse(!0);G.removeAllRanges(),G.addRange(q)}}},lt=()=>{if(e.length===0){if(n.current){const E=!(n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"");b(E),B(!E)}return}if(Ve(n),n.current&&n.current.querySelectorAll('[data-type="variable"]').forEach(E=>{const G=E.querySelector(".variable-info-icon");if(G){let q=!1;const H=document.createTreeWalker(E,NodeFilter.SHOW_TEXT,{acceptNode:L=>G.contains(L)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT});for(;H.nextNode();)if(H.currentNode.textContent?.replace(/[\u200B\n]/g,"").trim()){q=!0;break}q?G.classList.add("hidden"):G.classList.remove("hidden")}}),Ie(n,e,r),Pe(n,e,r,B),!n.current)return;e.filter(h=>h.type==="multi-variable"&&h.key).forEach(h=>{if(!h.key)return;const E=h.maxCount||9,G=y[h.key]||1,q=[];for(let W=0;W<G;W++){const X=`${h.key}_${W}`,I=n.current.querySelector(`[data-type="variable"][data-key="${X}"][data-multi-key="${h.key}"]`);if(I){const j=I.innerText.replace(/[\u200B\n]/g,"").trim();q.push(j)}}const L=(q[q.length-1]||"")==="";let K=!1,O=-1;for(let W=0;W<q.length-1;W++)if(q[W]===""){K=!0,O=W;break}if(K&&O>=0){const W=window.getSelection();if(W&&W.rangeCount>0){const F=W.getRangeAt(0),ee=F.startContainer,ue=ee.nodeType===Node.ELEMENT_NODE?ee.closest('[data-type="variable"][data-multi-key]'):ee.parentElement?.closest('[data-type="variable"][data-multi-key]');if(ue){const ne=ue.dataset.key;if(ne){const re=document.createRange();re.setStartBefore(ue),re.setEnd(F.startContainer,F.startOffset);const ye=re.toString().length;te.current={key:ne,offset:ye}}}}const X=[...q];for(let F=O;F<X.length-1;F++)X[F]=X[F+1];X.pop();const I={};X.forEach((F,ee)=>{F&&(I[`${h.key}_${ee}`]=F)});const j=Math.max(L?X.length:X.length+1,1);n.current.querySelectorAll('[data-type="variable"]').forEach(F=>{const ee=F.dataset.key,ue=F.dataset.multiKey;if(ee&&ue!==h.key){const ne=F.innerText.replace(/[\u200B\n]/g,"").trim();ne&&(I[ee]=ne)}}),n.current.__tempVariableValues=I,g(F=>({...F,[h.key]:j}));return}if(!L){const W=G-1,X=`${h.key}_${W}`,I=n.current.querySelector(`[data-type="variable"][data-key="${X}"][data-multi-key="${h.key}"]`);if(I&&I.innerText.replace(/[\u200B\n]/g,"").trim().length>0&&G<E){const Q=window.getSelection();if(Q&&Q.rangeCount>0){const F=Q.getRangeAt(0),ee=F.startContainer,ue=ee.nodeType===Node.ELEMENT_NODE?ee.closest('[data-type="variable"][data-multi-key]'):ee.parentElement?.closest('[data-type="variable"][data-multi-key]');if(ue){const ne=ue.dataset.key;if(ne){const re=document.createRange();re.setStartBefore(ue),re.setEnd(F.startContainer,F.startOffset);const ye=re.toString().length;te.current={key:ne,offset:ye}}}}g(F=>({...F,[h.key]:G+1}))}}})};u.useLayoutEffect(()=>{const v=n.current;if(!v)return;const h=new Map,E=H=>{const L=H.target,K=H.relatedTarget;!L||!n.current||!n.current.contains(L)||K&&n.current.contains(K)||setTimeout(()=>{if(n.current){if(e.length===0){const O=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"";B(O.length>0);return}Ve(n),Ie(n,e,r),Pe(n,e,r,B)}},0)};v.addEventListener("blur",E,!0);const G=()=>{if(!n.current)return;h.forEach((K,O)=>{O.removeEventListener("blur",K,!1)}),h.clear();const H=n.current.querySelectorAll('[data-type="variable"][data-multi-key]'),L=K=>{K.stopPropagation(),K.stopImmediatePropagation();const O=K.target;if(!O||!n.current||!n.current.contains(O))return;const W=O.closest('[data-type="variable"][data-multi-key]');if(!W||!n.current.contains(W))return;let X=!1;if(h.forEach((re,ye)=>{(ye===W||ye.contains(O))&&(X=!0)}),!X)return;const I=W.dataset.multiKey,j=W.dataset.key,Q=W.dataset.index;if(!I||!j||Q===void 0)return;const F=K.relatedTarget;if(!(!F||!n.current.contains(F)))return;const ue=W.innerText.replace(/[\u200B\n]/g,"").trim();console.log("[Blur Event] 失去焦点的 multi-variable 输入框:",{multiKey:I,currentKey:j,index:Q,content:ue});const ne=/[、,,\s]+/;if(ne.test(ue)){const re=ue.split(ne).map(he=>he.trim()).filter(he=>he.length>0);console.log("[Blur Event] 拆分前的内容:",ue),console.log("[Blur Event] 拆分后的部分:",re);const be=re.slice(0,9);if(console.log("[Blur Event] 有效的部分(最多9个):",be),be.length>1){const he=e.find(Ce=>Ce.type==="multi-variable"&&Ce.key===I);if(he){const Ce=y[I]||1,it=parseInt(Q,10),ct=he.maxCount||9,_e=[];for(let ge=0;ge<Ce;ge++){const Se=`${I}_${ge}`,Le=n.current.querySelector(`[data-type="variable"][data-key="${Se}"][data-multi-key="${I}"]`);if(Le){const Me=Le.innerText.replace(/[\u200B\n]/g,"").trim();_e.push(Me)}}console.log("[Blur Event] 拆分前的所有值:",_e),console.log("[Blur Event] 当前索引:",it),console.log("[Blur Event] 要插入的值:",be),_e.splice(it,1,...be);const we=_e.slice(0,ct);console.log("[Blur Event] 拆分后的所有值:",we),we.length>0&&we[we.length-1]!==""&&we.length<ct&&we.push("");const Kt=Math.max(we.length,1),Oe={};we.forEach((ge,Se)=>{ge&&(Oe[`${I}_${Se}`]=ge)}),n.current.querySelectorAll('[data-type="variable"]').forEach(ge=>{const Se=ge.dataset.key,Le=ge.dataset.multiKey;if(Se&&Le!==I){const Me=ge.innerText.replace(/[\u200B\n]/g,"").trim();Me&&(Oe[Se]=Me)}}),n.current.__tempVariableValues=Oe,g(ge=>({...ge,[I]:Kt}))}}}};H.forEach(K=>{K.addEventListener("blur",L,!1),h.set(K,L)})},q=setTimeout(()=>{G()},0);return()=>{clearTimeout(q),v.removeEventListener("blur",E,!0),h.forEach((H,L)=>{L.removeEventListener("blur",H,!1)}),h.clear()}},[e,y,r]);const Yt=v=>{if(o){v.preventDefault();return}if(v.key==="Enter"){v.preventDefault();return}const h=window.getSelection();if(h&&h.rangeCount>0){const E=h.anchorNode;let G=null;if(E&&(E.nodeType===Node.ELEMENT_NODE?G=E.closest('[data-type="text"]'):E.nodeType===Node.TEXT_NODE&&E.parentElement&&(G=E.parentElement.closest('[data-type="text"]'))),G){if(v.preventDefault(),v.stopPropagation(),n.current){const q=n.current.querySelector('[data-type="variable"], [data-type="upload"]');q&&q.focus()}return}}if(S&&h&&h.rangeCount>0){const E=h.anchorNode;let G=null;if(E&&(E.nodeType===Node.ELEMENT_NODE?G=E.closest(".tag-node"):E.nodeType===Node.TEXT_NODE&&E.parentElement&&(G=E.parentElement.closest(".tag-node"))),G){if(v.preventDefault(),v.stopPropagation(),n.current){const q=n.current.querySelector('[data-type="variable"], [data-type="upload"]');q&&q.focus()}return}}if(v.key==="Escape"&&n.current){if(S){v.preventDefault();return}n.current.innerHTML="",n.current.focus()}if(v.key==="Backspace"){const E=window.getSelection();if(E&&E.rangeCount>0){const G=E.getRangeAt(0),q=E.anchorNode;if(S){let L=null,K=null;if(q&&(q.nodeType===Node.ELEMENT_NODE?(L=q.closest(".tag-node"),K=q.closest('[data-type="text"]')):q.nodeType===Node.TEXT_NODE&&q.parentElement&&(L=q.parentElement.closest(".tag-node"),K=q.parentElement.closest('[data-type="text"]'))),(L||K)&&G.collapsed&&G.startOffset===0){v.preventDefault();return}}let H=null;if(q&&(q.nodeType===Node.ELEMENT_NODE?H=q.closest('[data-type="variable"]'):q.nodeType===Node.TEXT_NODE&&q.parentElement&&(H=q.parentElement.closest('[data-type="variable"]'))),H){if(!G.collapsed)return;const L=H.innerText;if(L===""||L===""){v.preventDefault();return}if(G.startOffset===0){v.preventDefault();return}if(L.startsWith("")&&G.startOffset===1){v.preventDefault();return}}}}},jt=()=>{if(i||o||x||!z||!n.current)return;if(e.length===0){const H=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"";if(!H)return;p(H,H);return}const v=n.current;let h="";const E={},G=H=>{if(!(H.nodeType===Node.ELEMENT_NODE&&H.style.display==="none")){if(H.nodeType===Node.TEXT_NODE)h+=(H.textContent||"").replace(/\u200B/g,"");else if(H.nodeType===Node.ELEMENT_NODE){const L=H,K=L.dataset.type,O=L.dataset.key;if(K==="variable"&&O){let W="";const X=document.createTreeWalker(L,NodeFilter.SHOW_TEXT,{acceptNode:j=>{const Q=L.querySelector(".variable-info-icon");return Q&&Q.contains(j)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}});for(;X.nextNode();)W+=X.currentNode.textContent||"";const I=W.replace(/[\u200B\n]/g,"").trim();if(I){const j=L.dataset.multiKey;if(j){(!E[j]||!Array.isArray(E[j]))&&(E[j]=[]);const Q=E[j];Q.push(I),Q.length>1&&(h+=" "),h+=I}else E[O]=I,h+=I}}else if(K==="select"&&O){const W=(L.getAttribute("data-value")||"").trim();W&&(E[O]=W,h+=W)}else if(K==="textarea"&&O){const X=(L.value||"").replace(/\u200B/g,"").trim();X&&(E[O]=X,h+=X)}else if(K==="richtext"&&O){const X=(L.textContent||"").replace(/\u200B/g,"").trim();X&&(E[O]=X,h+=X)}else if(K==="datepicker"&&O){const X=(L.getAttribute("data-value")||"").trim();if(X)if(X.includes(",")){const I=X.split(",");I.length===2?(E[O]=I,h+=`[${I[0]}, ${I[1]}]`):(E[O]=X,h+=X)}else E[O]=X,h+=X}else if(K==="upload"&&O){const W=L.dataset.batchKey;if(W){const X=e.find(I=>I.type==="upload"&&I.key===W);if(X&&typeof X.maxCount=="number"&&typeof X.minCount=="number"){const I=M[W]||X.minCount||1,j=[];for(let Q=0;Q<I;Q++){const F=`${W}-${Q}`,ee=r[F];ee&&j.push(ee)}E[W]||(E[W]=j.length>0?j:null,j.length>0&&(h+=` [附带${j.length}个文件: ${j.map(Q=>Q.name).join(", ")}] `))}else E[O]=r[O]??null,r[O]&&(h+=` [附带文件: ${r[O]?.name}] `)}else E[O]=r[O]??null,r[O]&&(h+=` [附带文件: ${r[O]?.name}] `)}else{if(L.classList.contains("tag-close-btn")||L.classList.contains("file-remove-btn"))return;L.getAttribute("contenteditable")==="false"&&!K&&L.classList.contains("tag-node")?h+=L.innerText:L.childNodes.forEach(G)}}}};if(v.childNodes.forEach(G),h=h.trim(),!h)return;const q=new FormData;q.append("fullPrompt",h),Object.keys(E).forEach(H=>{const L=E[H];L!=null&&(L instanceof File?q.append(H,L):Array.isArray(L)?e.some(O=>O.type==="multi-variable"&&O.key===H)?L.forEach(O=>{O!=null&&O!==""&&q.append(H,String(O))}):L.forEach((O,W)=>{O!=null&&(O instanceof File?q.append(`${H}[${W}]`,O):typeof O=="string"?q.append(`${H}[${W}]`,O):q.append(`${H}[${W}]`,String(O)))}):typeof L=="string"?q.append(H,L):q.append(H,String(L)))}),p(q,h)},Wt={...m?{width:typeof m=="number"?`${m}px`:m}:{},...f?{border:f}:{},...d?{background:d}:{}};return c.jsxs("div",{className:"rich-text-editor",style:Wt,"data-disabled":o,children:[c.jsx("div",{ref:n,className:`rte-editor ${e.length===0?"rte-editor-default":""} ${ie&&t?"rte-editor-empty":""}`,contentEditable:e.length===0,suppressContentEditableWarning:!0,"data-placeholder":t,onMouseDown:xe,onMouseMove:Ee,onMouseUp:$e,onClick:Ft,onDoubleClick:zt,onInput:lt,onKeyDown:Yt,onPaste:pe}),c.jsx("input",{type:"file",ref:s,className:"rte-file-input",accept:".csv,.xlsx,.xls,.txt,.pdf,image/*",onChange:me}),c.jsxs("div",{className:"rich-text-editor-footer",children:[c.jsx("div",{className:"rich-text-editor-footer-left",children:c.jsxs("div",{className:"rich-text-editor-brand",children:[c.jsxs("div",{className:"rte-brand-badge",children:[c.jsx("img",{src:"https://oospublic.sealseek.cn/file/website/ball.png",alt:""}),c.jsx("span",{className:"rte-brand-text",children:"SealSeek 1.0"})]}),a!=="hideAgent"&&c.jsx(R.Dropdown,{placement:"top",menu:{items:T.filter(v=>v.isShowNew!==1).map(v=>({key:v.key,label:c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[v.icon&&c.jsx("i",{className:v.icon}),c.jsx("span",{children:v.label})]}),onClick:()=>{$?.(v)}}))},trigger:["click"],disabled:o||i,children:c.jsxs("div",{className:"rte-agent-badge",style:{cursor:T.length>0?"pointer":"default"},children:[c.jsx("i",{className:"iconfont icon-zhinengti",style:{fontSize:"16px"}}),c.jsx("span",{className:"rte-agent-text",children:"智能体"})]})})]})}),c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(()=>{const v=e.find(E=>E.type==="tag");if(!v||!v.text)return null;const h=T.find(E=>E.label===v.text);return!h||h.points===void 0||h.points===null?null:c.jsxs("div",{className:"rte-points-badge",children:[c.jsx("i",{className:"iconfont icon-jifen",style:{marginRight:"4px"}}),c.jsxs("span",{style:{fontSize:"16px"},children:["-",String(h.points)]})]})})(),c.jsx("button",{type:"button",onClick:jt,disabled:i||o||x||!z,className:"rich-text-editor-send-button",children:i||x?c.jsx("span",{className:"rte-send-spinner"}):c.jsx("i",{className:"iconfont icon-fasong"})})]})]}),P?.anchorEl&&(()=>{if(!document.body.contains(P.anchorEl))return null;let v="",h={background:"var(--neutral-800, #262626)"};if(P.type==="upload")v=e.find(q=>q.type==="upload"&&q.key===P.key)?.tooltip||"";else if(P.type==="tag")v=P.anchorEl.dataset.tooltip||"";else if(P.type==="upload-label")v=P.anchorEl.dataset.fileName||"";else if(P.type==="variable")v=P.anchorEl.dataset.tooltip||"";else if(P.type==="upload-preview"){const G=r[P.key];if(G&&G.type&&G.type.startsWith("image/")){const q=URL.createObjectURL(G);v=c.jsx("div",{style:{width:120,height:120,display:"flex",alignItems:"center",justifyContent:"center"},children:c.jsx("img",{src:q,style:{maxWidth:120,maxHeight:120,objectFit:"contain"}})}),h={background:"#fff",padding:4},setTimeout(()=>URL.revokeObjectURL(q),1e3)}else v=""}if(!v)return null;const E=P.type==="upload-preview"?"#0A0A0A":"#fff";return De.createPortal(c.jsx(R.Tooltip,{arrow:!1,title:c.jsx("div",{style:{maxWidth:"200px",fontSize:"12px",color:E},children:v}),open:!0,placement:"top",getPopupContainer:()=>document.body,overlayInnerStyle:h,children:c.jsx("div",{style:{position:"fixed",left:`${P.anchorEl.getBoundingClientRect().left}px`,top:`${P.anchorEl.getBoundingClientRect().top}px`,width:`${P.anchorEl.offsetWidth}px`,height:`${P.anchorEl.offsetHeight}px`,pointerEvents:"none"}})}),document.body)})(),Z,ve]})};tt.__docgenInfo={displayName:"RichTextEditor",description:"结构化富文本输入组件,支持标签、变量输入块、文件上传以及互斥显示逻辑。",props:{config:{name:"config",required:!0,description:"结构化输入配置节点数组",type:{name:"InputNode[]",raw:"InputNode[]"}},onSend:{name:"onSend",required:!0,description:"点击发送按钮时的回调,返回数据与拼接后的 Prompt",type:{name:"function",raw:"(data: Record<string, any>, fullPrompt: string) => void"}},isProcessing:{name:"isProcessing",required:!1,description:"是否处于处理状态(禁用输入与发送)",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}}}};const nt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFSSURBVHgB3ZTtccIwDIaVXv83I2SDZgSP0BHMBG0naEZhA2boBGQDswHdQJUOGRxjO0Z8HPDe6eJzJD2W4gjgEYSIn2xwK6EIFHqBGysJpMP3ZB0oRbEtmal1NtIxl4OWWsoxEsvqofJ0rgTNASOYq+7SXKDsuYvAcgkq/PWwBLQWqIfdjeRStaBUc4qzgLi9/BzJNmS/sh6bpvmrTfSFacU3scWy1mQryWdSnXiFE8QVUJINLTuyhWzzz/1OZmTN9hEckqtfUOwIGlGCpVRjE+94JFqpMtTeVzO8/UmPxpZU8Qa7aln8Tb9pfwla4WHWrjPvvbbnTBsX7PmLs83EDAH0BxSw1G31+/1FoDg/vPcXR+wocQS1apj4+P92FfhOoLyuBfYlmPgYnGoCjWADzAkzUyJ430awLmphPaxWQVU22BuuApPkHaanjcXSN3t6/QNjTMSJWDcs1QAAAABJRU5ErkJggg==",Pt=[{label:"5页",value:5},{label:"10页",value:10},{label:"15页",value:15},{label:"30页",value:30}],Vt=({autoLoading:e,batchSize:p,loadingProgress:i,loadIcon:o,onBatchSizeChange:m,onLoadNextPage:S,onStartAutoLoad:T,onStopLoad:$})=>e&&i?c.jsxs("div",{className:"auto_load_progress",children:[o||c.jsx("img",{src:nt,alt:"自动加载",width:14,height:14}),c.jsxs("span",{children:["正在加载第",i.currentPage,"/",i.totalPages,"页"]}),c.jsx(R.Progress,{percent:i.percentage,type:"line",size:[160,8]}),c.jsx("span",{onClick:$,className:"auto_load_stop_btn",children:"停止加载"})]}):c.jsxs("div",{className:"auto_load_container",children:[c.jsx("div",{onClick:S,className:"auto_load_next_btn",style:{backgroundColor:e?"#f5f5f5":"#2563eb"},children:"加载下一页"}),c.jsxs("div",{className:"right_control_wrap",style:{backgroundColor:e?"#f5f5f5":"#2563eb"},children:[c.jsxs("div",{className:"auto_load_btn",onClick:e?void 0:T,children:[o||c.jsx("img",{src:nt,alt:"自动加载",width:14,height:14}),c.jsx("span",{children:"自动加载"})]}),c.jsx(R.Select,{value:p,onChange:m,options:Pt,disabled:e,size:"small",className:"auto_load_select",popupMatchSelectWidth:84})]})]}),Bt=({current:e,loadIcon:p,pageSize:i,total:o,cachedPages:m,loadedCount:S,autoLoading:T=!1,loadingProgress:$,onChange:w,onLoadNextPage:x,onStartAutoLoad:t,onStopLoading:f})=>{const[d,a]=u.useState(5),n=Math.ceil(o/i),s=u.useMemo(()=>m.length>=n,[m,n]),r=()=>Array.from({length:n},(k,N)=>N+1).filter(k=>!m.includes(k)).slice(0,d),C=(l,k,N)=>{const V=m.includes(l);return k==="prev"||k==="next"||k==="jump-prev"||k==="jump-next"?c.jsx("div",{className:"pageBox",children:N}):c.jsxs("div",{className:"pageBox",style:{backgroundColor:e===l?"#2563EB":"#f5f5f5",color:e===l?"#fff":V?"#171717":"#a3a3a3"},children:[l,!V&&c.jsx("span",{className:"unload_spot"})]})};return c.jsxs("div",{className:"pagination_footer",children:[c.jsxs("div",{className:"pagination_leftWrap",children:[c.jsxs("span",{className:"pagination_total",children:[c.jsx(ke.InfoCircleOutlined,{style:{color:"#2563EB",marginRight:"4px"}}),"已加载: ",S,"/",o,"条数据"]}),!s&&c.jsx(Vt,{loadIcon:p||void 0,autoLoading:T,batchSize:d,loadingProgress:$,disabled:!x||!t,onBatchSizeChange:a,onLoadNextPage:()=>x?.(),onStartAutoLoad:()=>{const l=r();t?.(l)},onStopLoad:()=>f?.()})]}),c.jsx(R.Pagination,{current:e,pageSize:i,total:o,onChange:l=>w(l),showSizeChanger:!1,showQuickJumper:!1,showTotal:(l,k)=>"",itemRender:C})]})},at=e=>{const{loading:p,autoLoading:i,loadingProgress:o,columns:m=[],dataSource:S=[],total:T,current:$,pageSize:w,cachedPages:x,onChangePage:t,onLoadNextPage:f,onStartAutoLoad:d,onStopLoading:a,...n}=e,s=u.useRef(null),r=u.useCallback(C=>{t(C),x.includes(C)&&s.current?.scrollTo({key:`${(C-1)*w+1}`})},[$]);return c.jsxs("div",{className:"flex flex-col",children:[c.jsx(R.Table,{ref:s,...n,columns:m,dataSource:S,pagination:!1,virtual:!0}),c.jsx(Bt,{loading:p,autoLoading:i,loadingProgress:o,current:$,pageSize:w,total:T,loadedCount:S.length,cachedPages:x,onChange:r,onLoadNextPage:f,onStartAutoLoad:d,onStopLoading:a})]})};at.__docgenInfo={displayName:"VirtualTable",description:"虚拟滚动表格组件,支持分页、数据缓存和自动加载功能。",props:{loading:{description:"加载状态",name:"loading",required:!0,type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},total:{description:"总数据条数",name:"total",required:!0,type:{name:"number",raw:"number"},defaultValue:{value:"0"}},current:{description:"当前页码",name:"current",required:!0,type:{name:"number",raw:"number"},defaultValue:{value:"1"}},pageSize:{description:"每页数据条数",name:"pageSize",required:!0,type:{name:"number",raw:"number"},defaultValue:{value:"10"}},cachedPages:{description:"已缓存的页码数组",name:"cachedPages",required:!0,type:{name:"number[]",raw:"number[]"},defaultValue:{value:"[]"}},dataSource:{description:"数据源",name:"dataSource",required:!0,type:{name:"Array<T>",raw:"Array<T>"},defaultValue:{value:"[]"}},onChangePage:{description:"页码变更回调函数",name:"onChangePage",required:!0,type:{name:"function",raw:"function(page: number): void"},defaultValue:{value:"-"}},autoLoading:{description:"是否正在自动加载",name:"autoLoading",required:!0,type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},loadingProgress:{description:"加载进度信息",name:"loadingProgress",required:!0,type:{name:"object",raw:"{percentage: 0, currentPage: 1, totalPages: 5}"},defaultValue:{value:"-"}},onLoadNextPage:{description:"加载下一页回调函数",name:"onLoadNextPage",required:!1,type:{name:"function",raw:"function(page: number): void"},defaultValue:{value:"-"}},onStartAutoLoad:{description:"开始自动加载回调函数",name:"onStartAutoLoad",required:!1,type:{name:"function",raw:"function(loadNextPages: number[]): void"},defaultValue:{value:"-"}},onStopLoading:{description:"停止加载回调函数",name:"onStopLoading",required:!1,type:{name:"function",raw:"function(): void"},defaultValue:{value:"-"}},columns:{description:"表格列配置",name:"columns",required:!0,type:{name:"Array<object>",raw:"Array<object>"},defaultValue:{value:"[]"}}}};const rt=({texts:e=[],placeholder:p="请输入内容",animationSpeed:i=100,autoPlay:o=!0,value:m,onChange:S,...T})=>{const[$,w]=u.useState(""),[x,t]=u.useState(0),[f,d]=u.useState(!1),[a,n]=u.useState(!1),[s,r]=u.useState(!1),C=u.useRef(void 0),l=u.useRef(void 0),k=u.useRef(e),N=u.useRef(x),V=u.useRef(a),P=u.useRef($);u.useEffect(()=>{k.current=e,N.current=x,V.current=a,P.current=$});const _=u.useCallback((b,y)=>{let g=0;r(!0);const M=()=>{g<b.length?(w(b.slice(0,g+1)),g++,l.current=window.setTimeout(M,i)):(r(!1),y?.())};M()},[i]),Y=u.useCallback(b=>{let y=P.current.length;const g=()=>{y>0?(w(P.current.slice(0,y-1)),y--,l.current=window.setTimeout(g,i/2)):b?.()};g()},[i]),A=u.useCallback(()=>{if(k.current.length===0||V.current)return;d(!0);const b=k.current[N.current];P.current?Y(()=>{_(b,()=>{C.current=window.setTimeout(()=>{t(y=>(y+1)%k.current.length),d(!1)},2e3)})}):_(b,()=>{C.current=window.setTimeout(()=>{t(y=>(y+1)%k.current.length),d(!1)},2e3)})},[Y,_]);u.useEffect(()=>(o&&e.length>0&&!a&&A(),()=>{C.current&&window.clearTimeout(C.current),l.current&&window.clearTimeout(l.current)}),[x,a,o,e.length,A]),u.useEffect(()=>{!f&&o&&e.length>0&&!a&&A()},[x,f,o,e.length,a,A]);const z=b=>{n(!0),C.current&&window.clearTimeout(C.current),l.current&&window.clearTimeout(l.current),d(!1),r(!1),T.onFocus?.(b)},B=b=>{n(!1),!m&&e.length>0&&(w(""),t(0)),T.onBlur?.(b)},te=b=>{S?.(b.target.value),T.onChange?.(b)},ie=()=>a||m?p:$||p;return c.jsxs("div",{style:{position:"relative"},children:[c.jsx(R.Input,{...T,value:m,onChange:te,onFocus:z,onBlur:B,placeholder:ie(),style:{...T.style,position:"relative",zIndex:1}}),!a&&!m&&$&&c.jsxs("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",paddingLeft:11,paddingRight:11,color:"#bfbfbf",pointerEvents:"none",zIndex:2,fontSize:14,fontFamily:"inherit"},children:[c.jsx("span",{children:$}),s&&c.jsx("span",{style:{display:"inline-block",width:1,height:"1.2em",backgroundColor:"#1890ff",marginLeft:2,animation:"blink 1s infinite"}})]}),c.jsx("style",{children:`
|
|
1
|
+
(function(se,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("react/jsx-runtime"),require("react"),require("antd"),require("@ant-design/icons"),require("react-dom")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","antd","@ant-design/icons","react-dom"],u):(se=typeof globalThis<"u"?globalThis:se||self,u(se.SealSeekBIComponents={},se.React,se.React,se.antd,se.AntdIcons,se.ReactDOM))})(this,function(se,u,d,ee,ke,De){"use strict";const He=({variant:t="primary",loading:p=!1,children:i,...s})=>{const m=S=>{switch(S){case"primary":return"primary";case"ghost":return"default";case"dashed":return"dashed";case"link":return"link";case"text":return"text";default:return"primary"}};return u.jsx(ee.Button,{...s,type:m(t),loading:p,ghost:t==="ghost",children:i})};He.__docgenInfo={displayName:"Button",description:"基础按钮,用于触发操作",props:{variant:{name:"variant",required:!1,description:"视觉风格",type:{name:"ButtonVariant",raw:'"primary" | "ghost" | "dashed" | "link" | "text"'},defaultValue:{value:'"primary"'}},loading:{name:"loading",required:!1,description:"是否加载中",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},children:{name:"children",required:!1,description:"按钮内容",type:{name:"ReactNode",raw:"React.ReactNode"}},size:{name:"size",required:!1,description:"按钮大小",type:{name:"ButtonSize",raw:'"small" | "middle" | "large"'}},disabled:{name:"disabled",required:!1,description:"是否禁用",type:{name:"boolean",raw:"boolean"}},onClick:{name:"onClick",required:!1,description:"点击事件",type:{name:"function",raw:"(event: MouseEvent) => void"}}}};const Ge=({title:t,children:p,bordered:i=!0,hoverable:s=!1,size:m="default",...S})=>u.jsx(ee.Card,{...S,title:t,bordered:i,hoverable:s,size:m,children:p});Ge.__docgenInfo={displayName:"Card",description:"卡片容器,用于分组内容",props:{title:{name:"title",required:!1,description:"标题",type:{name:"ReactNode",raw:"React.ReactNode"}},children:{name:"children",required:!1,description:"内容区域",type:{name:"ReactNode",raw:"React.ReactNode"}},bordered:{name:"bordered",required:!1,description:"是否显示边框",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},hoverable:{name:"hoverable",required:!1,description:"是否可悬停",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},size:{name:"size",required:!1,description:"卡片大小",type:{name:"CardSize",raw:'"default" | "small"'},defaultValue:{value:'"default"'}},loading:{name:"loading",required:!1,description:"是否加载中",type:{name:"boolean",raw:"boolean"}},actions:{name:"actions",required:!1,description:"卡片操作组",type:{name:"ReactNode[]",raw:"React.ReactNode[]"}}}};const Fe=({showDefaultFooter:t=!0,...p})=>{const i=p.footer!==void 0?p.footer:t?(s,{OkBtn:m,CancelBtn:S})=>u.jsxs(u.Fragment,{children:[u.jsx(m,{}),u.jsx(S,{})]}):null;return u.jsx(ee.Modal,{...p,footer:i})};Fe.__docgenInfo={displayName:"AppModal",description:"应用级模态框组件,基于 Ant Design Modal 封装",props:{showDefaultFooter:{name:"showDefaultFooter",required:!1,description:"是否显示默认的确定和取消按钮",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},title:{name:"title",required:!1,description:"模态框标题",type:{name:"ReactNode",raw:"React.ReactNode"}},open:{name:"open",required:!1,description:"是否显示模态框",type:{name:"boolean",raw:"boolean"}},onCancel:{name:"onCancel",required:!1,description:"取消按钮点击事件",type:{name:"function",raw:"(e: React.MouseEvent<HTMLElement>) => void"}},onOk:{name:"onOk",required:!1,description:"确定按钮点击事件",type:{name:"function",raw:"(e: React.MouseEvent<HTMLElement>) => void"}},children:{name:"children",required:!1,description:"模态框内容",type:{name:"ReactNode",raw:"React.ReactNode"}},width:{name:"width",required:!1,description:"模态框宽度",type:{name:"string | number",raw:"string | number"}},centered:{name:"centered",required:!1,description:"是否居中显示",type:{name:"boolean",raw:"boolean"}},maskClosable:{name:"maskClosable",required:!1,description:"点击蒙层是否允许关闭",type:{name:"boolean",raw:"boolean"}}}};const ze=({scrollX:t,showPagination:p=!0,defaultPageSize:i=10,...s})=>u.jsx(ee.Table,{...s,scroll:{x:t||"max-content",y:"50vh"},pagination:p?{hideOnSinglePage:!0,showSizeChanger:!0,showQuickJumper:!0,defaultPageSize:i,...s.pagination}:!1});ze.__docgenInfo={displayName:"PageTable",description:"页面级表格组件,高度铺满容器,自动滚动",props:{scrollX:{name:"scrollX",required:!1,description:"水平滚动宽度",type:{name:"number",raw:"number"}},showPagination:{name:"showPagination",required:!1,description:"是否显示分页器",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},defaultPageSize:{name:"defaultPageSize",required:!1,description:"默认页面大小",type:{name:"number",raw:"number"},defaultValue:{value:"10"}},columns:{name:"columns",required:!1,description:"表格列配置",type:{name:"ColumnType[]",raw:"ColumnType<any>[]"}},dataSource:{name:"dataSource",required:!1,description:"数据源",type:{name:"any[]",raw:"any[]"}},loading:{name:"loading",required:!1,description:"是否加载中",type:{name:"boolean",raw:"boolean"}},rowKey:{name:"rowKey",required:!1,description:"行数据的 Key",type:{name:"string | function",raw:"string | ((record: any) => string)"}}}};const ct=ke.createFromIconfontCN({scriptUrl:["//at.alicdn.com/t/c/font_5037819_a72xy7yjoj.js"]}),Ye=({name:t,size:p,color:i,style:s,...m})=>{const S={fontSize:p,color:i,...s};return u.jsx(ct,{...m,type:t,style:S})};Ye.__docgenInfo={displayName:"XcIcon",description:"自定义图标组件,基于 iconfont",props:{name:{name:"name",required:!0,description:"图标名称",type:{name:"string",raw:"string"}},size:{name:"size",required:!1,description:"图标大小",type:{name:"number | string",raw:"number | string"}},color:{name:"color",required:!1,description:"图标颜色",type:{name:"string",raw:"string"}},className:{name:"className",required:!1,description:"自定义类名",type:{name:"string",raw:"string"}},style:{name:"style",required:!1,description:"自定义样式",type:{name:"CSSProperties",raw:"React.CSSProperties"}}}};const je=({loading:t,description:p="暂无数据",className:i,emptyChildren:s,loadingText:m,emptyImage:S})=>t?u.jsxs(ee.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",vertical:!0,children:[u.jsx(ee.Spin,{size:"large"}),m&&u.jsx("div",{className:"mt-4 text-gray-500",children:m})]}):u.jsx(ee.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",children:u.jsx(ee.Empty,{image:S,description:p,imageStyle:{height:180},children:s})});je.__docgenInfo={displayName:"EmptyAndSpin",description:"空状态和加载状态组合组件",props:{loading:{name:"loading",required:!0,description:"是否加载中",type:{name:"boolean",raw:"boolean"}},description:{name:"description",required:!1,description:"空状态描述",type:{name:"ReactNode",raw:"React.ReactNode"},defaultValue:{value:'"暂无数据"'}},className:{name:"className",required:!1,description:"自定义类名",type:{name:"string",raw:"string"}},emptyChildren:{name:"emptyChildren",required:!1,description:"空状态额外内容",type:{name:"ReactNode",raw:"React.ReactNode"}},loadingText:{name:"loadingText",required:!1,description:"加载中提示文字",type:{name:"string",raw:"string"}},emptyImage:{name:"emptyImage",required:!1,description:"空状态图片",type:{name:"string",raw:"string"}}}};const We=({onClick:t,showText:p=!1,className:i,size:s="small",type:m="default"})=>u.jsx(ee.Button,{size:s,type:m,icon:u.jsx(ke.LeftOutlined,{}),className:`cursor-pointer ${i||""}`,onClick:t,children:p&&"返回"});We.__docgenInfo={displayName:"BackButton",description:"返回按钮组件",props:{onClick:{name:"onClick",required:!1,description:"点击事件",type:{name:"function",raw:"() => void"}},showText:{name:"showText",required:!1,description:"是否显示文字",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},className:{name:"className",required:!1,description:"自定义类名",type:{name:"string",raw:"string"}},size:{name:"size",required:!1,description:"按钮大小",type:{name:"ButtonSize",raw:'"small" | "middle" | "large"'},defaultValue:{value:'"small"'}},type:{name:"type",required:!1,description:"按钮类型",type:{name:"ButtonType",raw:'"primary" | "default" | "dashed" | "link" | "text"'},defaultValue:{value:'"default"'}}}};const Ke=({removePadding:t=!0,className:p,...i})=>{const s=t?`px-0 h-auto ${p||""}`:p;return u.jsx(ee.Button,{type:"link",...i,className:s,children:i.children})};Ke.__docgenInfo={displayName:"LinkButton",description:"链接样式按钮组件,适用于表格操作列",props:{removePadding:{name:"removePadding",required:!1,description:"是否去除默认内边距",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},children:{name:"children",required:!1,description:"按钮内容",type:{name:"ReactNode",raw:"React.ReactNode"}},onClick:{name:"onClick",required:!1,description:"点击事件",type:{name:"function",raw:"(event: React.MouseEvent<HTMLButtonElement>) => void"}},disabled:{name:"disabled",required:!1,description:"是否禁用",type:{name:"boolean",raw:"boolean"}},className:{name:"className",required:!1,description:"自定义类名",type:{name:"string",raw:"string"}}}};const{Option:ut}=ee.Select,Ue=({columns:t,request:p,searchFields:i=[],showSearch:s=!0,showRefresh:m=!0,defaultPageSize:S=10,pageSizeOptions:q=["10","20","50","100"],autoLoad:$=!0,externalParams:v={},...e})=>{const[T,h]=d.useState([]),[c,r]=d.useState(!1),[n,a]=d.useState({current:1,pageSize:S,total:0}),[o,y]=d.useState({}),[l,w]=d.useState({}),[N]=ee.Form.useForm(),B=d.useRef(n);B.current=n;const E=d.useRef(v);E.current=v;const F=d.useRef(!1),z=d.useMemo(()=>t.map(b=>{const{sortable:f,render:x,...L}=b;return{...L,sorter:f?!0:void 0,render:x||(M=>M)}}),[t]),I=d.useCallback(async(b={})=>{if(p){r(!0);try{const f={page:B.current.current,pageSize:B.current.pageSize,sortField:l.field,sortOrder:l.order,searchParams:{...o,...E.current},...b},x=await p(f);x.success&&(h(x.data),a(L=>({...L,total:x.total,current:f.page||L.current})))}catch(f){console.error("加载数据失败:",f)}finally{r(!1)}}},[p,l,o]),Y=d.useCallback(b=>{y(b),a(f=>({...f,current:1}))},[]),O=d.useCallback(()=>{N.resetFields(),y({}),a(b=>({...b,current:1}))},[N]),te=d.useCallback(()=>{I()},[I]),ie=d.useCallback((b,f,x)=>{const L={current:b.current||1,pageSize:b.pageSize||S,total:b.total||0},M={field:x?.field,order:x?.order};a(L),w(M)},[S]);return d.useEffect(()=>{const b=Object.keys(v).length>0;($&&!F.current||b)&&(I(),F.current=!0)},[$,v,I]),u.jsxs("div",{children:[s&&i.length>0&&u.jsx(ee.Card,{size:"small",style:{marginBottom:16},children:u.jsxs(ee.Form,{form:N,layout:"inline",onFinish:Y,initialValues:i.reduce((b,f)=>(f.defaultValue!==void 0&&(b[f.key]=f.defaultValue),b),{}),children:[i.map(b=>u.jsx(ee.Form.Item,{name:b.key,label:b.label,children:b.type==="input"?u.jsx(ee.Input,{placeholder:b.placeholder||`请输入${b.label}`,style:{width:200}}):u.jsx(ee.Select,{placeholder:b.placeholder||`请选择${b.label}`,style:{width:200},allowClear:!0,children:b.options?.map(f=>u.jsx(ut,{value:f.value,children:f.label},f.value))})},b.key)),u.jsx(ee.Form.Item,{children:u.jsxs(ee.Space,{children:[u.jsx(ee.Button,{type:"primary",htmlType:"submit",icon:u.jsx(ke.SearchOutlined,{}),children:"查询"}),u.jsx(ee.Button,{onClick:O,children:"重置"}),m&&u.jsx(ee.Button,{icon:u.jsx(ke.ReloadOutlined,{}),onClick:te,children:"刷新"})]})})]})}),u.jsx(ee.Table,{...e,columns:z,dataSource:T,loading:c,pagination:{...n,showSizeChanger:!0,showQuickJumper:!0,showTotal:(b,f)=>`第 ${f[0]}-${f[1]} 条/共 ${b} 条`,pageSizeOptions:q},onChange:ie,scroll:{x:"max-content",y:"50vh"}})]})};Ue.__docgenInfo={displayName:"AdvancedTable",description:"高阶表格组件,支持异步请求、搜索、排序等功能",props:{columns:{name:"columns",required:!0,description:"列配置",type:{name:"AdvancedColumnType[]",raw:"AdvancedColumnType<any>[]"}},request:{name:"request",required:!1,description:"异步请求函数",type:{name:"function",raw:"(params: RequestParams) => Promise<RequestResponse>"}},searchFields:{name:"searchFields",required:!1,description:"搜索字段配置",type:{name:"SearchFieldConfig[]",raw:"SearchFieldConfig[]"},defaultValue:{value:"[]"}},showSearch:{name:"showSearch",required:!1,description:"是否显示搜索区域",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},showRefresh:{name:"showRefresh",required:!1,description:"是否显示刷新按钮",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},defaultPageSize:{name:"defaultPageSize",required:!1,description:"默认页面大小",type:{name:"number",raw:"number"},defaultValue:{value:"10"}},pageSizeOptions:{name:"pageSizeOptions",required:!1,description:"页面大小选项",type:{name:"string[]",raw:"string[]"},defaultValue:{value:'["10", "20", "50", "100"]'}},autoLoad:{name:"autoLoad",required:!1,description:"是否自动加载",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},externalParams:{name:"externalParams",required:!1,description:"外部请求参数",type:{name:"Record<string, any>",raw:"Record<string, any>"},defaultValue:{value:"{}"}}}};function Ie(t,p,i){if(!t.current)return;const s=new Set,m={};for(const h of p)h.exclusionGroup&&h.exclusionGroup!=="separator"&&(s.add(h.exclusionGroup),m[h.exclusionGroup]||(m[h.exclusionGroup]=[]),m[h.exclusionGroup].push({type:h.type,key:h.key,exclusionGroup:h.exclusionGroup}));const S={};for(const h of s){S[h]=!1;for(const c of m[h])if(c.type==="upload"&&c.key){if(i[c.key]!==null&&i[c.key]!==void 0){S[h]=!0;break}}else if((c.type==="variable"||c.type==="multi-variable")&&c.key){const r=c.type==="multi-variable"?t.current.querySelectorAll(`[data-type="variable"][data-multi-key="${c.key}"]`):[t.current.querySelector(`[data-type="variable"][data-key="${c.key}"]`)].filter(Boolean);for(const n of r)if(!n.classList.contains("show-placeholder")&&n.innerText.replace(/[\u200B\n]/g,"").trim().length>0){S[h]=!0;break}if(S[h])break}}const q=p.some(h=>h.exclusionGroup==="separator"),v=Object.keys(S).filter(h=>S[h]).length>0;let e=null;if(v&&q){for(const h of p)if(h.exclusionGroup&&h.exclusionGroup!=="separator"&&S[h.exclusionGroup]){e=h.exclusionGroup;break}}for(const h of s){const c=t.current.querySelectorAll(`[data-group="${h}"]`);q&&v&&e?h===e?c.forEach(r=>{r.classList.contains("required-upload-group")?r.style.setProperty("display","inline-flex","important"):(r.classList.contains("exclusion-wrapper"),r.style.setProperty("display","inline-block","important"))}):c.forEach(r=>{r.style.display="none",r.style.setProperty("display","none","important")}):c.forEach(r=>{r.classList.contains("required-upload-group")?r.style.setProperty("display","inline-flex","important"):(r.classList.contains("exclusion-wrapper"),r.style.setProperty("display","inline-block","important"))})}t.current.querySelectorAll('[data-group="separator"]').forEach(h=>{h.style.display=v?"none":"inline"})}function Pe(t,p,i,s){if(!t.current){s(!1);return}const m=[];for(let c=0;c<p.length;c++){const r=p[c];if((r.type==="variable"||r.type==="upload"||r.type==="multi-variable"||r.type==="select"||r.type==="textarea"||r.type==="richtext"||r.type==="datepicker")&&r.required&&r.key){m.push({exclusionGroup:r.exclusionGroup||"",key:r.key,type:r.type==="multi-variable"?"variable":r.type,isMultiVariable:r.type==="multi-variable",minCount:r.type==="multi-variable"||r.type==="upload"&&typeof r.minCount=="number"?r.minCount:void 0,__index:c});continue}if(r.type==="text"&&r.className?.includes("rte-text-required"))if(r.exclusionGroup)for(let n=c+1;n<p.length;n++){const a=p[n];if(a.exclusionGroup===r.exclusionGroup&&(a.type==="variable"||a.type==="upload"||a.type==="select"||a.type==="textarea"||a.type==="richtext"||a.type==="datepicker")&&a.key){m.push({exclusionGroup:r.exclusionGroup,key:a.key,type:a.type,__index:n});break}}else for(let n=c+1;n<p.length;n++){const a=p[n];if((a.type==="variable"||a.type==="upload"||a.type==="select"||a.type==="textarea"||a.type==="richtext"||a.type==="datepicker")&&a.key){m.push({exclusionGroup:a.exclusionGroup||"",key:a.key,type:a.type,__index:n});break}}}const S=p.some(c=>c.exclusionGroup==="separator"),q=[];if(S&&m.length>1){const c=[];p.forEach((r,n)=>{r.exclusionGroup==="separator"&&c.push(n)});for(const r of c){const a=m.filter(l=>typeof l.__index=="number"&&l.__index<r).sort((l,w)=>(w.__index??0)-(l.__index??0))[0],y=m.filter(l=>typeof l.__index=="number"&&l.__index>r).sort((l,w)=>(l.__index??0)-(w.__index??0))[0];a&&y&&q.push([a,y])}}if(m.length===0){if(p.length===0){if(!t.current){s(!1);return}const c=t.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"";s(c.length>0);return}s(!0);return}const $=m.filter(c=>{if(!t.current)return!1;if(c.exclusionGroup){const r=t.current.querySelectorAll(`[data-group="${c.exclusionGroup}"]`);if(r.length>0)return r[0].style.display!=="none"}if(c.type==="upload"&&c.key){const r=t.current.querySelector(`[data-type="upload"][data-key="${c.key}"]`)||t.current.querySelector(`[data-type="upload"][data-batch-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}else if(c.type==="variable"&&c.key)if(c.isMultiVariable){const r=t.current.querySelectorAll(`[data-type="variable"][data-multi-key="${c.key}"]`);if(r.length>0){const n=r[0],a=n.closest("[data-group]")||n.parentElement;return a?a.style.display!=="none":!0}}else{const r=t.current.querySelector(`[data-type="variable"][data-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}else if(c.type==="select"&&c.key){const r=t.current.querySelector(`[data-type="select"][data-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}else if(c.type==="textarea"&&c.key){const r=t.current.querySelector(`[data-type="textarea"][data-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}else if(c.type==="richtext"&&c.key){const r=t.current.querySelector(`[data-type="richtext"][data-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}else if(c.type==="datepicker"&&c.key){const r=t.current.querySelector(`[data-type="datepicker"][data-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}return!1});if($.length===0){s(!0);return}const v=new Set;q.forEach(c=>{c.forEach(r=>{r.key&&v.add(r.key)})});const e=$.filter(c=>!c.key||!v.has(c.key));let T=(q.length===0,!0);for(const c of q){const r=c.filter(a=>{if(!t.current)return!1;if(a.exclusionGroup){const o=t.current.querySelectorAll(`[data-group="${a.exclusionGroup}"]`);if(o.length>0)return o[0].style.display!=="none"}return!0});if(r.length===0)continue;let n=!1;for(const a of r)if(a.type==="upload"&&a.key){if(a.minCount&&a.minCount>0){let o=0;const y=t.current.querySelectorAll(`[data-type="upload"][data-batch-key="${a.key}"]`);if(y.length===0)continue;for(let l=0;l<y.length;l++){const N=y[l].dataset.key;N&&i[N]!=null&&(o+=1)}if(o>=a.minCount){n=!0;break}}else if(i[a.key]!==null&&i[a.key]!==void 0){n=!0;break}}else if(a.type==="variable"&&a.key)if(a.isMultiVariable){const o=t.current.querySelectorAll(`[data-type="variable"][data-multi-key="${a.key}"]`);let y=0;for(const w of Array.from(o)){if(w.classList.contains("show-placeholder"))continue;w.innerText.replace(/[\u200B\n]/g,"").trim().length>0&&(y+=1)}const l=a.minCount&&a.minCount>0?a.minCount:1;if(y>=l){n=!0;break}}else{const o=t.current.querySelector(`[data-type="variable"][data-key="${a.key}"]`);if(o){if(o.classList.contains("show-placeholder"))continue;if(o.innerText.replace(/[\u200B\n]/g,"").trim().length>0){n=!0;break}}}else if(a.type==="select"&&a.key){const o=t.current.querySelector(`[data-type="select"][data-key="${a.key}"]`);if(o&&(o.getAttribute("data-value")||"").trim().length>0){n=!0;break}}else if(a.type==="textarea"&&a.key){const o=t.current.querySelector(`[data-type="textarea"][data-key="${a.key}"]`);if(o&&(o.value||"").trim().length>0){n=!0;break}}else if(a.type==="richtext"&&a.key){const o=t.current.querySelector(`[data-type="richtext"][data-key="${a.key}"]`);if(o&&(o.textContent||"").replace(/[\u200B]/g,"").trim().length>0){n=!0;break}}else if(a.type==="datepicker"&&a.key){const o=t.current.querySelector(`[data-type="datepicker"][data-key="${a.key}"]`);if(o&&(o.getAttribute("data-value")||"").trim().length>0){n=!0;break}}if(!n){T=!1;break}}let h=!0;for(const c of e)if(c.type==="upload"&&c.key){if(c.minCount&&c.minCount>0){let r=0;const n=t.current.querySelectorAll(`[data-type="upload"][data-batch-key="${c.key}"]`);if(n.length===0){h=!1;break}for(let a=0;a<n.length;a++){const y=n[a].dataset.key;y&&i[y]!=null&&(r+=1)}if(r<c.minCount){h=!1;break}}else if(i[c.key]===null||i[c.key]===void 0){h=!1;break}}else if(c.type==="variable"&&c.key)if(c.isMultiVariable){const r=t.current.querySelectorAll(`[data-type="variable"][data-multi-key="${c.key}"]`);let n=0;for(const o of Array.from(r)){if(o.classList.contains("show-placeholder"))continue;o.innerText.replace(/[\u200B\n]/g,"").trim().length>0&&(n+=1)}const a=c.minCount&&c.minCount>0?c.minCount:1;if(n<a){h=!1;break}}else{const r=t.current.querySelector(`[data-type="variable"][data-key="${c.key}"]`);if(!r){h=!1;break}if(r.classList.contains("show-placeholder")){h=!1;break}if(r.innerText.replace(/[\u200B\n]/g,"").trim().length===0){h=!1;break}}else if(c.type==="select"&&c.key){const r=t.current.querySelector(`[data-type="select"][data-key="${c.key}"]`);if(!r||(r.getAttribute("data-value")||"").trim().length===0){h=!1;break}}else if(c.type==="textarea"&&c.key){const r=t.current.querySelector(`[data-type="textarea"][data-key="${c.key}"]`);if(!r||(r.value||"").trim().length===0){h=!1;break}}else if(c.type==="richtext"&&c.key){const r=t.current.querySelector(`[data-type="richtext"][data-key="${c.key}"]`);if(!r||(r.textContent||"").replace(/[\u200B]/g,"").trim().length===0){h=!1;break}}else if(c.type==="datepicker"&&c.key){const r=t.current.querySelector(`[data-type="datepicker"][data-key="${c.key}"]`);if(!r||(r.getAttribute("data-value")||"").trim().length===0){h=!1;break}}s(T&&h)}function Ve(t,p){if(!t.current)return;t.current.querySelectorAll('[data-type="variable"]').forEach(s=>{const m=s.innerText;m.replace(/\u200B/g,"").trim().length===0?(m!==""&&(s.innerText=""),s.classList.add("show-placeholder")):s.classList.remove("show-placeholder")})}const dt=({host:t,onChange:p})=>{const i=t.dataset.key,s=t.dataset.placeholder,m=t.dataset.options?decodeURIComponent(t.dataset.options):"[]",S=t.dataset.required==="true",q=t.dataset.value||"",$=d.useMemo(()=>{try{return JSON.parse(m)}catch{return[]}},[m]),[v,e]=d.useState(q||void 0),[T,h]=d.useState(80),c=n=>{const o=document.createElement("canvas").getContext("2d");return o?(o.font='14px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif',o.measureText(n).width):n.length*14};d.useEffect(()=>{const n=v?$.find(y=>y.value===v)?.label||v:s||"请选择",a=c(n),o=Math.max(64,Math.ceil(a+40));h(o)},[v,$,s]);const r=n=>{e(n),t.setAttribute("data-value",n),p(i,n)};return d.useEffect(()=>{e(q||void 0)},[q]),De.createPortal(u.jsx("div",{className:"rte-select-wrapper",contentEditable:!1,style:{display:"inline-block",minWidth:T,width:T},children:u.jsx(ee.Select,{value:v,onChange:r,placeholder:s||"请选择",style:{width:"100%",minWidth:T},options:$,allowClear:!S,size:"small",dropdownClassName:"rte-select-dropdown",getPopupContainer:()=>document.body,dropdownMatchSelectWidth:!1,suffixIcon:u.jsx("i",{className:"iconfont icon-qiehuan-xiayizhang",style:{fontSize:"10px",color:"#7C3AED"}})})}),t)},pt=t=>{const[p,i]=d.useState([]);return d.useEffect(()=>{const s=t.current;if(!s)return;const m=()=>{const q=s.querySelectorAll(".rte-select-host"),$=[];q.forEach(v=>{const e=v.getAttribute("data-key");e&&$.push(u.jsx(dt,{host:v,onChange:()=>{if(t.current){const T=new Event("input",{bubbles:!0});t.current.dispatchEvent(T)}}},`select-${e}`))}),i($)};m();const S=new MutationObserver(q=>{let $=!1;for(const v of q)if(v.type==="childList"){let e=!1;if(v.addedNodes.forEach(T=>{if(T.nodeType===Node.ELEMENT_NODE){const h=T;(h.classList?.contains("rte-select-host")||h.querySelector?.(".rte-select-host"))&&(e=!0)}}),v.removedNodes.forEach(T=>{if(T.nodeType===Node.ELEMENT_NODE){const h=T;(h.classList?.contains("rte-select-host")||h.querySelector?.(".rte-select-host"))&&(e=!0)}}),e){$=!0;break}}$&&m()});return S.observe(s,{childList:!0,subtree:!0}),()=>S.disconnect()},[t]),p};function ft(t,p,i,s,m,S={},q){if(!t.current)return;let $="",v=0;for(;v<p.length;){const e=p[v],T=v+1<p.length?p[v+1]:null;if(e.type==="text"&&(e.text?.includes("icon-bitian")||e.className==="rte-text-required")&&T){const o=T.type==="upload"&&T.exclusionGroup==="fileInput"&&e.exclusionGroup==="fileInput"&&e.exclusionGroup===T.exclusionGroup,y=T.type==="variable"&&T.exclusionGroup==="textInput"&&e.exclusionGroup==="textInput"&&e.exclusionGroup===T.exclusionGroup;if(o){const l=e.exclusionGroup?`data-group="${e.exclusionGroup}"`:"",w=`<span ${l} class="exclusion-wrapper required-upload-group">`,N="</span>";let B="";e.className?B=`<span class="${e.className}">${e.text??""}</span>`:B=e.text??"";const E=T,F=i[E.key]!==null&&i[E.key]!==void 0,z=F?i[E.key]:null,I=F?i[E.key]?.name:E.text,Y=F?"":"hidden",O=E.tooltip&&!F?"":"hidden",te=F?"has-file":"",ie=F&&I?` data-file-name="${I.replace(/"/g,""")}"`:"";let b="";F&&z?z.type?.startsWith("image/")?b=`<img class="upload-icon-img upload-icon-preview" src="${URL.createObjectURL(z)}" alt="preview" />`:b="<i class='iconfont icon-exlwenjian'></i>":b="<i class='iconfont icon-shangchuan1'></i>";const f=F&&E.text?`<span ${l} contenteditable="false" class="exclusion-wrapper upload-hint">${E.text}</span>`:"",x=`<span contenteditable="false" data-type="upload" data-key="${E.key}" class="upload-chip"><span class="upload-inner-wrapper ${te}"><span class="upload-icon">${b}</span><span class="upload-label"${ie}>${I||E.text}</span>${E.tooltip?`<i contenteditable="false" class="iconfont icon-tishi upload-info-icon ${O}" data-upload-key="${E.key}" data-tooltip="${E.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${Y}" title="移除文件">×</span></span></span>`;$+=w+B+x+N+f,v+=2;continue}if(y){const w=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group">`,N="</span>";let B="";e.className?B=`<span class="${e.className}">${e.text??""}</span>`:B=e.text??"";const E=T,z=(E.key?m[E.key]:void 0)||E.text||"",I=!z,Y=I?"":z,O=I?"show-placeholder":"",te=E.exclusionGroup?` data-group="${E.exclusionGroup}"`:"",ie=E.tooltip?` data-tooltip="${E.tooltip.replace(/"/g,""")}" data-variable-key="${E.key||""}"`:"",b=E.tooltip&&I?"":"hidden",f=`<span contenteditable="true" data-type="variable" data-key="${E.key}" data-placeholder="${E.placeholder||""}"${te}${ie} class="variable-chip ${O}">${Y}${E.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${b}" data-variable-key="${E.key}" data-tooltip="${E.tooltip.replace(/"/g,""")}" title="提示"></i>`:""}</span>`;$+=w+B+f+N,v+=2;continue}}const c=e.exclusionGroup?`data-group="${e.exclusionGroup}"`:"",r=e.exclusionGroup?`<span ${c} class="exclusion-wrapper">`:"",n=e.exclusionGroup?"</span>":"";let a="";if(e.type==="tag"){const y=s||q==="hideTagClose"?"":'<span class="tag-close-btn" title="Clear (ESC)"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6L6 18M6 6l12 12"/></svg></span>',l=s?' data-locked="true"':"",w=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,""")}" data-tag-key="${e.key||""}"`:"";a=`<span contenteditable="false" class="tag-node group"${l}${w}><span class="tag-label">${e.text}</span>${y}</span>`}else if(e.type==="text"){const o=s?' data-locked="true" contenteditable="false"':' contenteditable="false"',l=(e.text??"").replace(/\n/g,"<br/>");e.className?a=`<span data-type="text" class="${e.className}"${o}>${l}</span>`:a=s?`<span data-type="text"${o}>${l}</span>`:`<span data-type="text" contenteditable="false">${l}</span>`}else if(e.type==="variable"&&e.key){const y=m[e.key]||e.text||"",l=!y,w=l?"":y,N=l?"show-placeholder":"",B=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",E=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,""")}" data-variable-key="${e.key||""}"`:"",F=e.tooltip&&l?"":"hidden",z=`<span contenteditable="true" data-type="variable" data-key="${e.key}" data-placeholder="${e.placeholder||""}"${B}${E} class="variable-chip ${N}">${w}${e.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${F}" data-variable-key="${e.key}" data-tooltip="${e.tooltip.replace(/"/g,""")}" title="提示"></i>`:""}</span>`;e.required?a=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${z}</span>`:a=z}else if(e.type==="upload"&&e.key)if(typeof e.maxCount=="number"&&typeof e.minCount=="number"){const y=e.minCount||1,l=e.maxCount||3;let w=0;for(let E=0;E<l;E++){const F=`${e.key}-${E}`;i[F]!=null&&(w+=1)}const N=Math.min(l,Math.max(y,w+(w<l?1:0)));let B="";for(let E=0;E<N;E++){const F=`${e.key}-${E}`,z=i[F]!==null&&i[F]!==void 0,I=z?i[F]:null,Y=z?i[F]?.name:e.text,O=z?"":"hidden",te=e.tooltip&&!z?"":"hidden",ie=z?"has-file":"",b=z&&Y?` data-file-name="${Y.replace(/"/g,""")}"`:"";let f="";z&&I?I.type?.startsWith("image/")?f=`<img class="upload-icon-img upload-icon-preview" src="${URL.createObjectURL(I)}" alt="preview" />`:f="<i class='iconfont icon-exlwenjian'></i>":f="<i class='iconfont icon-shangchuan1'></i>";const x=` data-batch-key="${e.key}"`,L=` data-batch-index="${E}"`,M=`<span contenteditable="false" data-type="upload" data-key="${F}"${x}${L} class="upload-chip upload-chip-batch"><span class="upload-inner-wrapper ${ie}"><span class="upload-icon">${f}</span><span class="upload-label"${b}>${Y||e.text}</span>${e.tooltip?`<i contenteditable="false" class="iconfont icon-tishi upload-info-icon ${te}" data-upload-key="${F}" data-tooltip="${e.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${O}" title="移除文件">×</span></span></span>`;B+=M}e.required?a=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group rte-required-upload-batch"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span><span class="rte-upload-batch-chips">${B}</span></span>`:a=B}else{const y=i[e.key]!==null&&i[e.key]!==void 0,l=y?i[e.key]:null,w=y?i[e.key]?.name:e.text,N=y?"":"hidden",B=e.tooltip&&!y?"":"hidden",E=y?"has-file":"",F=y&&w?` data-file-name="${w.replace(/"/g,""")}"`:"";let z="";y&&l?l.type?.startsWith("image/")?z=`<img class="upload-icon-img upload-icon-preview" src="${URL.createObjectURL(l)}" alt="preview" />`:z="<i class='iconfont icon-exlwenjian'></i>":z="<i class='iconfont icon-shangchuan1'></i>";const I=y&&e.text?`<span ${c} contenteditable="false" class="exclusion-wrapper upload-hint">${e.text}</span>`:"",Y=`<span contenteditable="false" data-type="upload" data-key="${e.key}" class="upload-chip"><span class="upload-inner-wrapper ${E}"><span class="upload-icon">${z}</span><span class="upload-label"${F}>${w||e.text}</span>${e.tooltip?`<i contenteditable="false" class="iconfont icon-tishi upload-info-icon ${B}" data-upload-key="${e.key}" data-tooltip="${e.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${N}" title="移除文件">×</span></span></span>`;e.required?a=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${Y}</span>${I}`:a=Y+I}else if(e.type==="select"&&e.key){const o=m[e.key]||e.defaultValue||"",y=encodeURIComponent(JSON.stringify(e.options||[])),l=e.placeholder?` data-placeholder="${e.placeholder}"`:"",w=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",N=e.required?' data-required="true"':"",B=`<div data-type="select" data-key="${e.key}" data-value="${o}" data-options="${y}"${l}${w}${N} class="rte-select-host"></div>`;e.required?a=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${B}</span>`:a=B}else if(e.type==="textarea"&&e.key){const o=m[e.key]||"",y=e.maxHeight||252,l=e.expandable!==!1,w=e.placeholder?` placeholder="${e.placeholder}"`:"",N=`<textarea data-type="textarea" data-key="${e.key}" class="rte-textarea" data-max-height="${y}" style="max-height:${y}px;"${w}>${o}</textarea>`,B=l?`<button type="button" class="rte-textarea-toggle" data-key="${e.key}" data-expanded="false">展开</button>`:"",E=`<div class="rte-textarea-wrapper" data-key="${e.key}">${N}${B}</div>`;e.required?a=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${E}</span>`:a=E}else if(e.type==="richtext"&&e.key){const o=m[e.key]||e.text||"",y=e.minHeight||140,l=e.placeholder?` data-placeholder="${e.placeholder}"`:"",w=e.expandable!==!1,N=o,B=`<div contenteditable="true" data-type="richtext" data-key="${e.key}" class="rte-richtext"${l} style="min-height:${y}px;">${N}</div>`,E=w?`<button type="button" class="rte-richtext-toggle" data-key="${e.key}" data-expanded="false"><i class="iconfont icon-zhankai2"></i><span class="rte-richtext-toggle-label">展开</span></button>`:"",F=`<div class="rte-richtext-wrapper" data-key="${e.key}">${B}${E}</div>`,z=`<div class="rte-richtext-container" data-key="${e.key}">${F}</div>`;e.required?a=`<div ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group rte-richtext-required"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${z}</div>`:a=z}else if(e.type==="datepicker"&&e.key){const o=m[e.key]||"",y=e.placeholder?` data-placeholder="${e.placeholder}"`:"",l=e.limitRange?` data-limit-range="${e.limitRange}"`:"",w=e.disableFuture?' data-disable-future="true"':"",N=`<div data-type="datepicker" data-key="${e.key}" data-value="${o}" class="rte-datepicker-host"${y}${l}${w}></div>`;e.required?a=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${N}</span>`:a=N}else if(e.type==="multi-variable"&&e.key){const o=e.maxCount||9,y=S[e.key]||1,l=Math.min(y,o);if(e.required){const w=`<span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>`,N=e.exclusionGroup?`data-group="${e.exclusionGroup}"`:"";let B="";for(let E=0;E<l;E++){const F=`${e.key}_${E}`,z=m[F]||"",I=!z,Y=I?"":z,O=I?"show-placeholder":"",te=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,""")}" data-variable-key="${e.key||""}"`:"",ie=e.tooltip&&I?"":"hidden",b=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",f=`<span contenteditable="true" data-type="variable" data-key="${F}" data-multi-key="${e.key}" data-index="${E}" data-placeholder="${e.placeholder||""}"${b}${te} class="variable-chip ${O}">${Y}${e.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${ie}" data-variable-key="${e.key}" data-tooltip="${e.tooltip.replace(/"/g,""")}" title="提示"></i>`:""}</span>`;E===0?B+=`<span ${N} class="exclusion-wrapper required-upload-group required-multi-first">${w}${f}</span>`:B+=f}a=B}else{let w="";for(let N=0;N<l;N++){const B=`${e.key}_${N}`,E=m[B]||"",F=!E,z=F?"":E,I=F?"show-placeholder":"",Y=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,""")}" data-variable-key="${e.key||""}"`:"",O=e.tooltip&&F?"":"hidden",te=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",ie=`<span contenteditable="true" data-type="variable" data-key="${B}" data-multi-key="${e.key}" data-index="${N}" data-placeholder="${e.placeholder||""}"${te}${Y} class="variable-chip ${I}">${z}${e.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${O}" data-variable-key="${e.key}" data-tooltip="${e.tooltip.replace(/"/g,""")}" title="提示"></i>`:""}</span>`;w+=ie}a=w}}$+=r+a+n,v++}t.current&&(t.current.innerHTML=$,setTimeout(()=>{if(!t.current)return;t.current.querySelectorAll('[data-type="variable"]').forEach(T=>{const h=T.innerText.replace(/\n/g,"");h.replace(/\u200B/g,"")?T.classList.remove("show-placeholder"):(h!==""&&(T.innerText=""),T.classList.add("show-placeholder"))})},0))}function yt(t,p,i,s,m={},S,q,$){const v=d.useCallback(()=>{if(!t.current)return;if(p.length===0){t.current.innerHTML="";return}let e={};const h=t.current.__tempVariableValues;if(h?(e=h,setTimeout(()=>{if(t.current){const c=t.current;c.__tempVariableValues===h&&delete c.__tempVariableValues}},100)):(t.current.querySelectorAll('[data-type="variable"]').forEach(y=>{const l=y.dataset.key;if(l){const w=y.innerText.replace(/[\u200B\n]/g,"").trim();w&&(e[l]=w)}}),t.current.querySelectorAll('[data-type="select"]').forEach(y=>{const l=y.dataset.key;if(l){const w=(y.getAttribute("data-value")||"").trim();w&&(e[l]=w)}}),t.current.querySelectorAll('[data-type="textarea"]').forEach(y=>{const l=y.dataset.key;if(l){const w=y.value.replace(/[\u200B]/g,"").trim();w&&(e[l]=w)}}),t.current.querySelectorAll('[data-type="richtext"]').forEach(y=>{const l=y.dataset.key;if(l){const w=(y.textContent||"").replace(/[\u200B]/g,"").trim();w&&(e[l]=w)}}),t.current.querySelectorAll('[data-type="datepicker"]').forEach(y=>{const l=y.dataset.key;if(l){const w=(y.getAttribute("data-value")||"").trim();w&&(e[l]=w)}})),ft(t,p,i,s,e,m,$),S?.current){const{key:c,offset:r}=S.current;setTimeout(()=>{if(!t.current)return;const n=t.current.querySelector(`[data-type="variable"][data-key="${c}"]`);if(n){try{const a=document.createRange(),o=document.createTreeWalker(n,NodeFilter.SHOW_TEXT,null);let y=0,l=null,w=0;for(;o.nextNode();){const N=o.currentNode,B=N.textContent?.length||0;if(y+B>=r){l=N,w=r-y;break}y+=B}if(l){a.setStart(l,Math.min(w,l.textContent?.length||0)),a.collapse(!0);const N=window.getSelection();N&&(N.removeAllRanges(),N.addRange(a),n.focus())}else{a.selectNodeContents(n),a.collapse(!1);const N=window.getSelection();N&&(N.removeAllRanges(),N.addRange(a),n.focus())}}catch{const a=document.createRange();a.selectNodeContents(n),a.collapse(!1);const o=window.getSelection();o&&(o.removeAllRanges(),o.addRange(a),n.focus())}S.current=null}},0)}},[p,i,s,t,m,S,q,$]);d.useEffect(()=>{v()},[v])}function mt(t,p,i,s){d.useEffect(()=>{const m=t.current;if(!m)return;const S=$=>{const v=$.target?.closest(".upload-info-icon");if(v&&v.classList.contains("upload-info-icon")){const T=v.dataset.uploadKey;T&&s({key:T,anchorEl:v,type:"upload"});return}const e=$.target?.closest('[data-type="upload"]');if(e){const T=e.dataset.key;if(T){const h=i[T];h&&h.type&&h.type.startsWith("image/")&&s({key:T,anchorEl:e,type:"upload-preview"})}}},q=$=>{const v=$.target?.closest(".upload-info-icon"),e=$.relatedTarget;if(v&&v.classList.contains("upload-info-icon")){!e||!m.contains(e)?s(null):e.closest(".upload-info-icon")||s(null);return}const T=$.target?.closest('[data-type="upload"]');if(T){const h=e;if(h&&T.contains(h))return;s(null)}};return m.addEventListener("mouseover",S,!0),m.addEventListener("mouseout",q,!0),()=>{m.removeEventListener("mouseover",S,!0),m.removeEventListener("mouseout",q,!0)}},[p,i,t,s])}function ht(t,p,i,s){d.useEffect(()=>{if(!t.current)return;const m=v=>{if(s==="hideTagClose")return;const e=v.currentTarget,T=e.dataset.tooltip,h=e.dataset.tagKey||"";T&&i({key:h,anchorEl:e,type:"tag"})},S=()=>{i(null)};let q;const $=()=>{if(!t.current)return;t.current.querySelectorAll(".tag-node[data-tooltip]").forEach(e=>{e.addEventListener("mouseenter",m),e.addEventListener("mouseleave",S)})};return q=requestAnimationFrame(()=>{q=requestAnimationFrame($)}),()=>{cancelAnimationFrame(q),t.current&&t.current.querySelectorAll(".tag-node[data-tooltip]").forEach(e=>{e.removeEventListener("mouseenter",m),e.removeEventListener("mouseleave",S)})}},[p,t,i,s])}function gt(t,p,i){d.useEffect(()=>{const s=t.current;if(!s)return;const m=q=>{const $=q.target?.closest(".variable-info-icon");if($&&$.classList.contains("variable-info-icon")){const v=$.dataset.variableKey;v&&i({key:v,anchorEl:$,type:"variable"})}},S=q=>{const $=q.target?.closest(".variable-info-icon"),v=q.relatedTarget;$&&$.classList.contains("variable-info-icon")&&(!v||!s.contains(v)?i(null):v.closest(".variable-info-icon")||i(null))};return s.addEventListener("mouseover",m,!0),s.addEventListener("mouseout",S,!0),()=>{s.removeEventListener("mouseover",m,!0),s.removeEventListener("mouseout",S,!0)}},[p,t,i])}function bt(t,p,i,s){d.useEffect(()=>{if(!t.current)return;const m=v=>{const e=v.currentTarget;e.dataset.fileName&&s({key:"",anchorEl:e,type:"upload-label"})},S=()=>{s(null)};let q;const $=()=>{if(!t.current)return;t.current.querySelectorAll(".upload-label[data-file-name]").forEach(e=>{e.addEventListener("mouseenter",m),e.addEventListener("mouseleave",S)})};return q=requestAnimationFrame(()=>{q=requestAnimationFrame($)}),()=>{cancelAnimationFrame(q),t.current&&t.current.querySelectorAll(".upload-label[data-file-name]").forEach(e=>{e.removeEventListener("mouseenter",m),e.removeEventListener("mouseleave",S)})}},[p,i,t,s])}function vt(t,p,i,s){d.useEffect(()=>{const m=setTimeout(()=>{Ie(t,p,i),Pe(t,p,i,s)},0);return()=>clearTimeout(m)},[i,p,t,s])}function xt(t,p){const i=d.useRef(0),s=d.useRef(0);d.useEffect(()=>{if(!t.current)return;let m=!1,S=0;const q=l=>l instanceof HTMLElement?!!(l.closest(".rte-datepicker-wrapper")||l.closest(".rte-datepicker-host")||l.closest(".ant-picker")||l.closest(".ant-picker-dropdown")):!1,$=l=>l instanceof HTMLElement?!!(l.closest(".rte-select-wrapper")||l.closest(".rte-select-host")||l.closest(".ant-select")||l.closest(".ant-select-dropdown")):!1,v=l=>{m=!0,q(l.target)&&(i.current=Date.now(),console.log("[SelectionCtrl] mousedown on datepicker target")),$(l.target)&&(s.current=Date.now(),console.log("[SelectionCtrl] mousedown on select target"))},e=()=>{m=!1,S=Date.now()};let T=!1,h=0;const c=()=>{T=!0},r=()=>{T=!1,h=Date.now()},n=()=>{h=Date.now()},a=l=>{q(l.target)&&(i.current=Date.now(),console.log("[SelectionCtrl] focusin datepicker target")),$(l.target)&&(s.current=Date.now(),console.log("[SelectionCtrl] focusin select target"))},o=()=>{if(Date.now()-i.current<800||Date.now()-s.current<800){console.log("[SelectionCtrl] skip selectionchange due to recent picker/select interaction");return}const l=document.activeElement;if(l&&(l.closest(".rte-datepicker-wrapper")||l.closest(".rte-datepicker-host")||l.closest(".ant-picker-dropdown")||l.tagName==="INPUT"&&l.closest(".ant-picker")||l.closest(".rte-select-wrapper")||l.closest(".rte-select-host")||l.closest(".ant-select")||l.closest(".ant-select-dropdown"))){console.log("[SelectionCtrl] activeElement is picker/select; skip");return}if(!t.current)return;const w=window.getSelection();if(!w||w.rangeCount===0||p.current||m||T||Date.now()-h<500)return;const N=w.getRangeAt(0);if(!N.collapsed)return t.current.contains(N.commonAncestorContainer),void 0;const B=w.anchorNode;if(!B||!t.current.contains(B))return;let E=!1,F=!1;if(B.nodeType===Node.ELEMENT_NODE){const I=B;(I.closest('[data-type="datepicker"]')||I.closest(".rte-datepicker-wrapper")||I.closest(".rte-datepicker-host"))&&(E=!0),(I.closest('[data-type="select"]')||I.closest(".rte-select-wrapper")||I.closest(".rte-select-host"))&&(F=!0)}else if(B.parentElement){const I=B.parentElement;(I.closest('[data-type="datepicker"]')||I.closest(".rte-datepicker-wrapper")||I.closest(".rte-datepicker-host"))&&(E=!0),(I.closest('[data-type="select"]')||I.closest(".rte-select-wrapper")||I.closest(".rte-select-host"))&&(F=!0)}if(E||F)return;let z=null;if(B.nodeType===Node.ELEMENT_NODE?z=B.closest('[data-type="variable"]'):B.nodeType===Node.TEXT_NODE&&B.parentElement&&(z=B.parentElement.closest('[data-type="variable"]')),!z){if(Date.now()-S>500)return;const I=t.current.querySelectorAll('[data-type="variable"]');if(I.length>0){let Y=null;for(const O of Array.from(I))if(O.style.display!=="none"){Y=O;break}if(!Y&&I.length>0&&(Y=I[0]),Y){const O=document.createRange();O.selectNodeContents(Y),O.collapse(!1),w.removeAllRanges(),w.addRange(O),Y.focus()}else w.removeAllRanges()}else w.removeAllRanges()}},y=t.current;return y&&(y.addEventListener("compositionstart",c),y.addEventListener("compositionend",r),y.addEventListener("input",n)),document.addEventListener("mousedown",v),document.addEventListener("mouseup",e),document.addEventListener("focusin",a),document.addEventListener("selectionchange",o),()=>{const l=t.current;l&&(l.removeEventListener("compositionstart",c),l.removeEventListener("compositionend",r),l.removeEventListener("input",n)),document.removeEventListener("mousedown",v),document.removeEventListener("mouseup",e),document.removeEventListener("focusin",a),document.removeEventListener("selectionchange",o)}},[t,p])}function kt(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Te={exports:{}},wt=Te.exports,Xe;function Je(){return Xe||(Xe=1,function(t,p){(function(i,s){t.exports=s()})(wt,function(){var i=1e3,s=6e4,m=36e5,S="millisecond",q="second",$="minute",v="hour",e="day",T="week",h="month",c="quarter",r="year",n="date",a="Invalid Date",o=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,l={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(b){var f=["th","st","nd","rd"],x=b%100;return"["+b+(f[(x-20)%10]||f[x]||f[0])+"]"}},w=function(b,f,x){var L=String(b);return!L||L.length>=f?b:""+Array(f+1-L.length).join(x)+b},N={s:w,z:function(b){var f=-b.utcOffset(),x=Math.abs(f),L=Math.floor(x/60),M=x%60;return(f<=0?"+":"-")+w(L,2,"0")+":"+w(M,2,"0")},m:function b(f,x){if(f.date()<x.date())return-b(x,f);var L=12*(x.year()-f.year())+(x.month()-f.month()),M=f.clone().add(L,h),X=x-M<0,J=f.clone().add(L+(X?-1:1),h);return+(-(L+(x-M)/(X?M-J:J-M))||0)},a:function(b){return b<0?Math.ceil(b)||0:Math.floor(b)},p:function(b){return{M:h,y:r,w:T,d:e,D:n,h:v,m:$,s:q,ms:S,Q:c}[b]||String(b||"").toLowerCase().replace(/s$/,"")},u:function(b){return b===void 0}},B="en",E={};E[B]=l;var F="$isDayjsObject",z=function(b){return b instanceof te||!(!b||!b[F])},I=function b(f,x,L){var M;if(!f)return B;if(typeof f=="string"){var X=f.toLowerCase();E[X]&&(M=X),x&&(E[X]=x,M=X);var J=f.split("-");if(!M&&J.length>1)return b(J[0])}else{var ae=f.name;E[ae]=f,M=ae}return!L&&M&&(B=M),M||!L&&B},Y=function(b,f){if(z(b))return b.clone();var x=typeof f=="object"?f:{};return x.date=b,x.args=arguments,new te(x)},O=N;O.l=I,O.i=z,O.w=function(b,f){return Y(b,{locale:f.$L,utc:f.$u,x:f.$x,$offset:f.$offset})};var te=function(){function b(x){this.$L=I(x.locale,null,!0),this.parse(x),this.$x=this.$x||x.x||{},this[F]=!0}var f=b.prototype;return f.parse=function(x){this.$d=function(L){var M=L.date,X=L.utc;if(M===null)return new Date(NaN);if(O.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var J=M.match(o);if(J){var ae=J[2]-1||0,re=(J[7]||"0").substring(0,3);return X?new Date(Date.UTC(J[1],ae,J[3]||1,J[4]||0,J[5]||0,J[6]||0,re)):new Date(J[1],ae,J[3]||1,J[4]||0,J[5]||0,J[6]||0,re)}}return new Date(M)}(x),this.init()},f.init=function(){var x=this.$d;this.$y=x.getFullYear(),this.$M=x.getMonth(),this.$D=x.getDate(),this.$W=x.getDay(),this.$H=x.getHours(),this.$m=x.getMinutes(),this.$s=x.getSeconds(),this.$ms=x.getMilliseconds()},f.$utils=function(){return O},f.isValid=function(){return this.$d.toString()!==a},f.isSame=function(x,L){var M=Y(x);return this.startOf(L)<=M&&M<=this.endOf(L)},f.isAfter=function(x,L){return Y(x)<this.startOf(L)},f.isBefore=function(x,L){return this.endOf(L)<Y(x)},f.$g=function(x,L,M){return O.u(x)?this[L]:this.set(M,x)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(x,L){var M=this,X=!!O.u(L)||L,J=O.p(x),ae=function(me,ye){var ve=O.w(M.$u?Date.UTC(M.$y,ye,me):new Date(M.$y,ye,me),M);return X?ve:ve.endOf(e)},re=function(me,ye){return O.w(M.toDate()[me].apply(M.toDate("s"),(X?[0,0,0,0]:[23,59,59,999]).slice(ye)),M)},ue=this.$W,pe=this.$M,fe=this.$D,be="set"+(this.$u?"UTC":"");switch(J){case r:return X?ae(1,0):ae(31,11);case h:return X?ae(1,pe):ae(0,pe+1);case T:var Q=this.$locale().weekStart||0,de=(ue<Q?ue+7:ue)-Q;return ae(X?fe-de:fe+(6-de),pe);case e:case n:return re(be+"Hours",0);case v:return re(be+"Minutes",1);case $:return re(be+"Seconds",2);case q:return re(be+"Milliseconds",3);default:return this.clone()}},f.endOf=function(x){return this.startOf(x,!1)},f.$set=function(x,L){var M,X=O.p(x),J="set"+(this.$u?"UTC":""),ae=(M={},M[e]=J+"Date",M[n]=J+"Date",M[h]=J+"Month",M[r]=J+"FullYear",M[v]=J+"Hours",M[$]=J+"Minutes",M[q]=J+"Seconds",M[S]=J+"Milliseconds",M)[X],re=X===e?this.$D+(L-this.$W):L;if(X===h||X===r){var ue=this.clone().set(n,1);ue.$d[ae](re),ue.init(),this.$d=ue.set(n,Math.min(this.$D,ue.daysInMonth())).$d}else ae&&this.$d[ae](re);return this.init(),this},f.set=function(x,L){return this.clone().$set(x,L)},f.get=function(x){return this[O.p(x)]()},f.add=function(x,L){var M,X=this;x=Number(x);var J=O.p(L),ae=function(pe){var fe=Y(X);return O.w(fe.date(fe.date()+Math.round(pe*x)),X)};if(J===h)return this.set(h,this.$M+x);if(J===r)return this.set(r,this.$y+x);if(J===e)return ae(1);if(J===T)return ae(7);var re=(M={},M[$]=s,M[v]=m,M[q]=i,M)[J]||1,ue=this.$d.getTime()+x*re;return O.w(ue,this)},f.subtract=function(x,L){return this.add(-1*x,L)},f.format=function(x){var L=this,M=this.$locale();if(!this.isValid())return M.invalidDate||a;var X=x||"YYYY-MM-DDTHH:mm:ssZ",J=O.z(this),ae=this.$H,re=this.$m,ue=this.$M,pe=M.weekdays,fe=M.months,be=M.meridiem,Q=function(ye,ve,Ee,$e){return ye&&(ye[ve]||ye(L,X))||Ee[ve].slice(0,$e)},de=function(ye){return O.s(ae%12||12,ye,"0")},me=be||function(ye,ve,Ee){var $e=ye<12?"AM":"PM";return Ee?$e.toLowerCase():$e};return X.replace(y,function(ye,ve){return ve||function(Ee){switch(Ee){case"YY":return String(L.$y).slice(-2);case"YYYY":return O.s(L.$y,4,"0");case"M":return ue+1;case"MM":return O.s(ue+1,2,"0");case"MMM":return Q(M.monthsShort,ue,fe,3);case"MMMM":return Q(fe,ue);case"D":return L.$D;case"DD":return O.s(L.$D,2,"0");case"d":return String(L.$W);case"dd":return Q(M.weekdaysMin,L.$W,pe,2);case"ddd":return Q(M.weekdaysShort,L.$W,pe,3);case"dddd":return pe[L.$W];case"H":return String(ae);case"HH":return O.s(ae,2,"0");case"h":return de(1);case"hh":return de(2);case"a":return me(ae,re,!0);case"A":return me(ae,re,!1);case"m":return String(re);case"mm":return O.s(re,2,"0");case"s":return String(L.$s);case"ss":return O.s(L.$s,2,"0");case"SSS":return O.s(L.$ms,3,"0");case"Z":return J}return null}(ye)||J.replace(":","")})},f.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},f.diff=function(x,L,M){var X,J=this,ae=O.p(L),re=Y(x),ue=(re.utcOffset()-this.utcOffset())*s,pe=this-re,fe=function(){return O.m(J,re)};switch(ae){case r:X=fe()/12;break;case h:X=fe();break;case c:X=fe()/3;break;case T:X=(pe-ue)/6048e5;break;case e:X=(pe-ue)/864e5;break;case v:X=pe/m;break;case $:X=pe/s;break;case q:X=pe/i;break;default:X=pe}return M?X:O.a(X)},f.daysInMonth=function(){return this.endOf(h).$D},f.$locale=function(){return E[this.$L]},f.locale=function(x,L){if(!x)return this.$L;var M=this.clone(),X=I(x,L,!0);return X&&(M.$L=X),M},f.clone=function(){return O.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},b}(),ie=te.prototype;return Y.prototype=ie,[["$ms",S],["$s",q],["$m",$],["$H",v],["$W",e],["$M",h],["$y",r],["$D",n]].forEach(function(b){ie[b[1]]=function(f){return this.$g(f,b[0],b[1])}}),Y.extend=function(b,f){return b.$i||(b(f,te,Y),b.$i=!0),Y},Y.locale=I,Y.isDayjs=z,Y.unix=function(b){return Y(1e3*b)},Y.en=E[B],Y.Ls=E,Y.p={},Y})}(Te)),Te.exports}var Et=Je();const qe=kt(Et);var Ne={exports:{}},$t=Ne.exports,Qe;function Ct(){return Qe||(Qe=1,function(t,p){(function(i,s){t.exports=s(Je())})($t,function(i){function s(q){return q&&typeof q=="object"&&"default"in q?q:{default:q}}var m=s(i),S={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(q,$){return $==="W"?q+"周":q+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(q,$){var v=100*q+$;return v<600?"凌晨":v<900?"早上":v<1100?"上午":v<1300?"中午":v<1800?"下午":"晚上"}};return m.default.locale(S,null,!0),S})}(Ne)),Ne.exports}Ct();function Se(t){"@babel/helpers - typeof";return Se=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p},Se(t)}function St(t,p){if(Se(t)!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var s=i.call(t,p);if(Se(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(p==="string"?String:Number)(t)}function Tt(t){var p=St(t,"string");return Se(p)=="symbol"?p:p+""}function qt(t,p,i){return(p=Tt(p))in t?Object.defineProperty(t,p,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[p]=i,t}function Ze(t,p){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);p&&(s=s.filter(function(m){return Object.getOwnPropertyDescriptor(t,m).enumerable})),i.push.apply(i,s)}return i}function Re(t){for(var p=1;p<arguments.length;p++){var i=arguments[p]!=null?arguments[p]:{};p%2?Ze(Object(i),!0).forEach(function(s){qt(t,s,i[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):Ze(Object(i)).forEach(function(s){Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(i,s))})}return t}var Nt={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0},At=Re(Re({},Nt),{},{locale:"zh_CN",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",week:"周",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪",yearFormat:"YYYY年",cellDateFormat:"D",monthBeforeYear:!1});const _t={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},et={lang:Object.assign({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},At),timePickerLocale:Object.assign({},_t)};et.lang.ok="确定",qe.locale("zh-cn");const{RangePicker:Lt}=ee.DatePicker,Mt=({host:t,onChange:p})=>{const i=t.dataset.key,s=t.dataset.value,m=t.dataset.placeholder,S=t.dataset.limitRange?parseInt(t.dataset.limitRange,10):void 0,q=t.dataset.disableFuture==="true",[$,v]=d.useState(()=>{if(!s)return null;const a=s.split(",");return a.length===2&&a[0]&&a[1]?[qe(a[0]),qe(a[1])]:null}),[e,T]=d.useState(null),h=a=>a?q&&a.isAfter(qe(),"day")?!0:!S||!e||!e[0]?!1:Math.abs(a.diff(e[0],"days"))>S:!1,c=a=>{console.log("[DatePicker] onCalendarChange",a?.map(o=>o?.format("YYYY-MM-DD")||null)),T(a)},r=a=>{if(console.log("[DatePicker] onChange",a?.map(o=>o?.format("YYYY-MM-DD")||null)),v(a),T(null),a&&a[0]&&a[1]){const o=`${a[0].format("YYYY-MM-DD")},${a[1].format("YYYY-MM-DD")}`;t.setAttribute("data-value",o),p(i,o)}else t.setAttribute("data-value",""),p(i,"")},n=a=>{console.log("[DatePicker] onOpenChange",a),T(a?$:null)};return De.createPortal(u.jsx("div",{className:"rte-datepicker-wrapper",contentEditable:!1,style:{display:"inline-block",verticalAlign:"middle",width:"240px"},children:u.jsx(Lt,{value:$,disabledDate:h,onCalendarChange:c,onChange:r,onOpenChange:n,placeholder:[m||"开始日期",m||"结束日期"],style:{width:"100%"},size:"small",allowClear:!0,locale:et,getPopupContainer:()=>document.body,popupClassName:"rte-datepicker-dropdown"})}),t)},Dt=t=>{const[p,i]=d.useState([]);return d.useEffect(()=>{const s=t.current;if(!s)return;const m=()=>{const q=s.querySelectorAll(".rte-datepicker-host"),$=[];q.forEach(v=>{const e=v.getAttribute("data-key");e&&$.push(u.jsx(Mt,{host:v,onChange:()=>{if(t.current){const T=new Event("input",{bubbles:!0});t.current.dispatchEvent(T)}}},`datepicker-${e}`))}),i($)};m();const S=new MutationObserver(q=>{let $=!1;for(const v of q)if(v.type==="childList"){let e=!1;if(v.addedNodes.forEach(T=>{if(T.nodeType===Node.ELEMENT_NODE){const h=T;(h.classList?.contains("rte-datepicker-host")||h.querySelector?.(".rte-datepicker-host"))&&(e=!0)}}),v.removedNodes.forEach(T=>{if(T.nodeType===Node.ELEMENT_NODE){const h=T;(h.classList?.contains("rte-datepicker-host")||h.querySelector?.(".rte-datepicker-host"))&&(e=!0)}}),e){$=!0;break}}$&&m()});return S.observe(s,{childList:!0,subtree:!0}),()=>S.disconnect()},[t]),p},tt=({config:t,onSend:p,isProcessing:i=!1,disabled:s=!1,width:m,lockStructure:S=!1,agentOptions:q=[],onAgentSelect:$,onAgentExit:v,loading:e=!1,placeholder:T,border:h,background:c="transparent",hideButtons:r})=>{const n=d.useRef(null),a=d.useRef(null),[o,y]=d.useState({}),[l,w]=d.useState(null),[N,B]=d.useState(null),[E,F]=d.useState(null),z=d.useRef(!1),I=d.useRef(null),[Y,O]=d.useState(!1),te=d.useRef(null),[ie,b]=d.useState(!0),[f,x]=d.useState(()=>{const k={};return t.forEach(g=>{g.type==="multi-variable"&&g.key&&(k[g.key]=1)}),k}),L=d.useRef({}),M=d.useRef({}),X=d.useRef({});d.useEffect(()=>{M.current=o},[o]),d.useEffect(()=>{X.current=f},[f]);const J=d.useCallback(k=>k.find(C=>C.type==="tag")?.text||null,[]),ae=d.useRef(t),re=d.useRef(null);d.useEffect(()=>{const k=J(ae.current),g=J(t);if(k&&k!==g&&n.current){const C={};n.current.querySelectorAll('[data-type="variable"]').forEach(_=>{const K=_.dataset.key;if(K){const V=_.innerText.replace(/[\u200B\n]/g,"").trim();V&&(C[K]=V)}}),n.current.querySelectorAll('[data-type="select"]').forEach(_=>{const K=_.dataset.key;if(K){const V=(_.getAttribute("data-value")||"").trim();V&&(C[K]=V)}}),n.current.querySelectorAll('[data-type="textarea"]').forEach(_=>{const K=_.dataset.key;if(K){const V=_.value.replace(/[\u200B]/g,"").trim();V&&(C[K]=V)}}),L.current[k]={variableValues:C,files:{...M.current},multiVariableCounts:{...X.current}}}if(g&&L.current[g]){const C=L.current[g];re.current=C,y(C.files),x(C.multiVariableCounts)}else if(g){re.current=null;const C={};t.forEach(H=>{H.type==="multi-variable"&&H.key&&(C[H.key]=1)}),x(C),y({})}else re.current=null,x({}),y({});ae.current=t},[t,J]),d.useLayoutEffect(()=>{re.current&&n.current&&(n.current.__tempVariableValues=re.current.variableValues,setTimeout(()=>{re.current&&(re.current=null)},0))}),yt(n,t,o,S,f,te,void 0,r),mt(n,t,o,F),ht(n,t,F,r),bt(n,t,o,F),gt(n,t,F),vt(n,t,o,O),xt(n,z);const ue=pt(n);d.useEffect(()=>{if(!n.current)return;n.current.querySelectorAll(".rte-richtext-toggle").forEach(g=>{const C=g.getAttribute("data-expanded")==="true";g.innerHTML=C?'<i class="iconfont icon-shouqi1"></i><span class="rte-richtext-toggle-label">收起</span>':'<i class="iconfont icon-zhankai2"></i><span class="rte-richtext-toggle-label">展开</span>'})},[t,n]);const pe=Dt(n);d.useEffect(()=>{if(t.length>0){b(!1);return}const k=()=>{if(!n.current){b(!0);return}const C=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"",H=n.current.querySelectorAll('[data-type="variable"]'),A=n.current.querySelectorAll('[data-type="upload"]');let P=!1;H.forEach(K=>{(K.textContent?.replace(/[\u200B\n]/g,"").trim()||"")&&(P=!0)}),A.forEach(K=>{K.querySelector(".upload-inner-wrapper.has-file")&&(P=!0)});const _=!C&&!P;b(_),t.length===0&&O(!_)};k();const g=new MutationObserver(k);return n.current&&g.observe(n.current,{childList:!0,subtree:!0,characterData:!0}),()=>{g.disconnect()}},[t]);const fe=k=>{if(s){k.preventDefault();return}k.preventDefault();const g=k.clipboardData.getData("text/plain"),C=window.getSelection();if(C&&C.rangeCount>0){const H=C.anchorNode;if(H){let A=null;if(H.nodeType===Node.ELEMENT_NODE?A=H.closest('[data-type="variable"]'):H.nodeType===Node.TEXT_NODE&&H.parentElement&&(A=H.parentElement.closest('[data-type="variable"]')),A){const P=A.dataset.multiKey;if(P){const _=/[、,,\s\n\r\t]+/,K=g.split(_).map(V=>V.trim()).filter(V=>V.length>0);if(console.log("[Paste Event] 粘贴的内容:",g),console.log("[Paste Event] 拆分后的值:",K),K.length>1){const V=parseInt(A.dataset.index||"0",10),j=t.find(oe=>oe.type==="multi-variable"&&oe.key===P)?.maxCount||9,U=f[P]||1,D=Math.min(V+K.length,j);D>U&&x(R=>({...R,[P]:D}));const W=[];for(let R=0;R<U;R++){const oe=`${P}_${R}`,ce=n.current.querySelector(`[data-type="variable"][data-key="${oe}"][data-multi-key="${P}"]`);if(ce){const he=ce.innerText.replace(/[\u200B\n]/g,"").trim();W.push(he)}}W.splice(V,1,...K.slice(0,j-V));const Z=W.slice(0,j);Z.length>0&&Z[Z.length-1]!==""&&Z.length<j&&Z.push("");const G=Math.max(Z.length,1),ne={};Z.forEach((R,oe)=>{R&&(ne[`${P}_${oe}`]=R)}),n.current.querySelectorAll('[data-type="variable"]').forEach(R=>{const oe=R.dataset.key,ce=R.dataset.multiKey;if(oe&&ce!==P){const he=R.innerText.replace(/[\u200B\n]/g,"").trim();he&&(ne[oe]=he)}}),n.current.__tempVariableValues=ne,x(R=>({...R,[P]:G})),console.log("[Paste Event] 粘贴完成,已填充到多个输入框,值:",Z);return}else K.length===1&&console.log("[Paste Event] 粘贴单个值,将在失去焦点时检查是否需要拆分")}}}}document.execCommand("insertText",!1,g),$e(),setTimeout(()=>{const H=window.getSelection();if(H&&H.rangeCount>0){const A=H.anchorNode;if(A){let P=null;if(A.nodeType===Node.ELEMENT_NODE?P=A.closest('[data-type="variable"][data-multi-key]'):A.nodeType===Node.TEXT_NODE&&A.parentElement&&(P=A.parentElement.closest('[data-type="variable"][data-multi-key]')),P){const _=P.innerText.replace(/[\u200B\n]/g,"").trim();/[、,,\s]+/.test(_)&&(console.log("[Paste Event] 粘贴后检测到分隔符,内容:",_),console.log("[Paste Event] 提示:失去焦点后将自动拆分"))}}}},0)},be=k=>{if(!k.target.files){k.target&&(k.target.value=""),w(null),B(null);return}if(N&&k.target.files&&k.target.files.length>0){const g=N,C=t.find(H=>H.type==="upload"&&H.key===g);if(C&&typeof C.maxCount=="number"&&typeof C.minCount=="number"){const H=C.maxCount,A=Array.from(k.target.files);let P=0;y(_=>{for(let U=0;U<H;U++){const D=`${g}-${U}`;_[D]&&(P=U+1)}const K=H-P,V=A.slice(0,K),j={..._};return V.forEach((U,D)=>{const W=`${g}-${P+D}`;j[W]=U}),j})}}else if(l&&k.target.files[0]){const g=k.target.files[0],C=l;y(H=>({...H,[C]:g}))}k.target&&(k.target.value=""),w(null),B(null)},Q=k=>{y(g=>{const C={...g};return delete C[k],C})},de=k=>{const g=k.target;if(g.closest(".rte-datepicker-wrapper")||g.closest(".rte-datepicker-host")||g.closest(".rte-select-wrapper")||g.closest(".rte-select-host")||g.closest(".ant-select-dropdown"))return;if(g.closest(".tag-close-btn")){if(k.preventDefault(),k.stopPropagation(),S)return;F(null),v?v():n.current&&(n.current.innerHTML="",n.current.focus());return}if(S){const A=g.closest(".tag-node"),P=g.closest('[data-type="text"]');if(A||P){k.preventDefault(),k.stopPropagation();const _=window.getSelection();_&&_.removeAllRanges();return}}g.closest('[data-type="variable"]')||(I.current={x:k.clientX,y:k.clientY},z.current=!1,g.closest(".file-remove-btn")&&(k.preventDefault(),k.stopPropagation()))},me=k=>{if(!k.target.closest('[data-type="variable"]')&&I.current){const H=Math.abs(k.clientX-I.current.x),A=Math.abs(k.clientY-I.current.y);(H>3||A>3)&&(z.current=!0)}},ye=k=>{if(k.target.closest('[data-type="variable"]')){I.current=null,z.current=!1;return}I.current=null,z.current=!1},ve=k=>{if(s)return;const g=k.target;if(g.closest('[data-type="datepicker"]'))return;if(g.closest(".tag-close-btn")){k.preventDefault(),k.stopPropagation();return}if(t.length===0)return;const A=(D,W)=>{if(!n.current)return;Array.from(n.current.children).forEach(G=>{if(G!==D)if(W)G.dataset.prevDisplay===void 0&&(G.dataset.prevDisplay=G.style.display||""),G.style.setProperty("display","none","important");else if(G.dataset.prevDisplay!==void 0){const ne=G.dataset.prevDisplay;ne?G.style.display=ne:G.style.removeProperty("display"),delete G.dataset.prevDisplay}else G.style.removeProperty("display")})},P=g.closest(".rte-textarea-toggle");if(P){k.preventDefault(),k.stopPropagation();const D=P.closest(".rte-textarea-wrapper"),W=D?.querySelector('[data-type="textarea"]'),G=!(P.getAttribute("data-expanded")==="true");P.setAttribute("data-expanded",String(G)),P.textContent=G?"收起":"展开",D&&D.classList.toggle("rte-textarea-expanded",G);const ne=D?.closest(".rte-textarea-required");if(ne?ne.classList.toggle("rte-textarea-overlay",G):D&&D.classList.toggle("rte-textarea-overlay",G),W)if(G)W.classList.add("rte-textarea-expanded"),W.style.maxHeight="none",W.style.height="100%";else{W.classList.remove("rte-textarea-expanded");const le=W.dataset.maxHeight||"252";W.style.maxHeight=`${le}px`,W.style.height="auto"}n.current&&(G?n.current.classList.add("rte-overlay-active"):n.current.classList.remove("rte-overlay-active"));return}const _=g.closest(".rte-richtext-toggle");if(_){k.preventDefault(),k.stopPropagation();const D=_.closest(".rte-richtext-wrapper"),W=D?.querySelector('[data-type="richtext"]'),G=!(_.getAttribute("data-expanded")==="true");((oe,ce)=>{oe.setAttribute("data-expanded",String(ce)),oe.innerHTML=ce?'<i class="iconfont icon-shouqi1"></i><span class="rte-richtext-toggle-label">收起</span>':'<i class="iconfont icon-zhankai2"></i><span class="rte-richtext-toggle-label">展开</span>'})(_,G);const le=D?.closest(".rte-richtext-required");le?le.classList.toggle("rte-richtext-expanded",G):D&&D.classList.toggle("rte-richtext-expanded",G);const R=D?.closest(".exclusion-wrapper")||D?.parentElement;W&&(G?(W.style.height="100%",W.style.overflow="auto"):(W.style.height="",W.style.overflow="")),R&&(R.classList.toggle("rte-richtext-host-expanded",G),A(R,G)),n.current&&n.current.classList.toggle("rte-richtext-fullscreen-active",G);return}if(g.closest('[data-type="text"]')){k.preventDefault(),k.stopPropagation();const D=window.getSelection();D&&D.removeAllRanges();return}if(S&&g.closest(".tag-node")){k.preventDefault(),k.stopPropagation();const W=window.getSelection();W&&W.removeAllRanges();return}if(g.closest('[data-type="variable"]')){if(z.current)return;setTimeout(()=>{const D=window.getSelection();D&&!D.isCollapsed||Ve(n)},10);return}const j=g.closest(".file-remove-btn");if(j){k.preventDefault(),k.stopPropagation();const D=j.closest('[data-type="upload"]'),W=D?.dataset.key,Z=D?.dataset.batchKey;if(W)if(Z){const G=t.find(ne=>ne.type==="upload"&&ne.key===Z);if(G&&typeof G.maxCount=="number"&&typeof G.minCount=="number"){const ne=G.maxCount;y(le=>{const R={...le},oe=[];for(let ce=0;ce<ne;ce++){const he=`${Z}-${ce}`,xe=R[he];xe!=null&&he!==W&&oe.push(xe)}for(let ce=0;ce<ne;ce++)delete R[`${Z}-${ce}`];return oe.forEach((ce,he)=>{R[`${Z}-${he}`]=ce}),R})}else Q(W)}else Q(W);return}const U=g.closest('[data-type="upload"]');if(U){const D=U.dataset.key,W=U.dataset.batchKey;if(D)if(W){const Z=t.find(G=>G.type==="upload"&&G.key===W);if(Z&&typeof Z.maxCount=="number"&&typeof Z.minCount=="number"){const G=Z.maxCount;let ne=0;for(let le=0;le<G;le++)o[`${W}-${le}`]!=null&&(ne+=1);ne<G&&a.current?(a.current.multiple=!0,B(W),a.current.click()):(a.current&&(a.current.multiple=!1),w(D),a.current?.click())}else a.current&&(a.current.multiple=!1),w(D),a.current?.click()}else a.current&&(a.current.multiple=!1),w(D),a.current?.click();return}},Ee=k=>{const C=k.target.closest('[data-type="variable"]');if(C){const H=window.getSelection();if(H){const A=document.createRange(),P=C.textContent||"";if(P.replace(/\u200B/g,"")){let K=0,V=P.length;P.startsWith("")&&(K=1),P.endsWith("")&&P.length>1&&(V=P.length-1);const j=C.firstChild;j&&j.nodeType===Node.TEXT_NODE?(A.setStart(j,K),A.setEnd(j,V)):A.selectNodeContents(C)}else A.selectNodeContents(C),A.collapse(!0);H.removeAllRanges(),H.addRange(A)}}},$e=()=>{if(t.length===0){if(n.current){const C=!(n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"");b(C),O(!C)}return}if(Ve(n),n.current&&n.current.querySelectorAll('[data-type="variable"]').forEach(C=>{const H=C.querySelector(".variable-info-icon");if(H){let A=!1;const P=document.createTreeWalker(C,NodeFilter.SHOW_TEXT,{acceptNode:_=>H.contains(_)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT});for(;P.nextNode();)if(P.currentNode.textContent?.replace(/[\u200B\n]/g,"").trim()){A=!0;break}A?H.classList.add("hidden"):H.classList.remove("hidden")}}),Ie(n,t,o),Pe(n,t,o,O),!n.current)return;t.filter(g=>g.type==="multi-variable"&&g.key).forEach(g=>{if(!g.key)return;const C=g.maxCount||9,H=f[g.key]||1,A=[];for(let j=0;j<H;j++){const U=`${g.key}_${j}`,D=n.current.querySelector(`[data-type="variable"][data-key="${U}"][data-multi-key="${g.key}"]`);if(D){const W=D.innerText.replace(/[\u200B\n]/g,"").trim();A.push(W)}}const _=(A[A.length-1]||"")==="";let K=!1,V=-1;for(let j=0;j<A.length-1;j++)if(A[j]===""){K=!0,V=j;break}if(K&&V>=0){const j=window.getSelection();if(j&&j.rangeCount>0){const G=j.getRangeAt(0),ne=G.startContainer,le=ne.nodeType===Node.ELEMENT_NODE?ne.closest('[data-type="variable"][data-multi-key]'):ne.parentElement?.closest('[data-type="variable"][data-multi-key]');if(le){const R=le.dataset.key;if(R){const oe=document.createRange();oe.setStartBefore(le),oe.setEnd(G.startContainer,G.startOffset);const ce=oe.toString().length;te.current={key:R,offset:ce}}}}const U=[...A];for(let G=V;G<U.length-1;G++)U[G]=U[G+1];U.pop();const D={};U.forEach((G,ne)=>{G&&(D[`${g.key}_${ne}`]=G)});const W=Math.max(_?U.length:U.length+1,1);n.current.querySelectorAll('[data-type="variable"]').forEach(G=>{const ne=G.dataset.key,le=G.dataset.multiKey;if(ne&&le!==g.key){const R=G.innerText.replace(/[\u200B\n]/g,"").trim();R&&(D[ne]=R)}}),n.current.__tempVariableValues=D,x(G=>({...G,[g.key]:W}));return}if(!_){const j=H-1,U=`${g.key}_${j}`,D=n.current.querySelector(`[data-type="variable"][data-key="${U}"][data-multi-key="${g.key}"]`);if(D&&D.innerText.replace(/[\u200B\n]/g,"").trim().length>0&&H<C){const Z=window.getSelection();if(Z&&Z.rangeCount>0){const G=Z.getRangeAt(0),ne=G.startContainer,le=ne.nodeType===Node.ELEMENT_NODE?ne.closest('[data-type="variable"][data-multi-key]'):ne.parentElement?.closest('[data-type="variable"][data-multi-key]');if(le){const R=le.dataset.key;if(R){const oe=document.createRange();oe.setStartBefore(le),oe.setEnd(G.startContainer,G.startOffset);const ce=oe.toString().length;te.current={key:R,offset:ce}}}}x(G=>({...G,[g.key]:H+1}))}}})};d.useLayoutEffect(()=>{const k=n.current;if(!k)return;const g=new Map,C=P=>{const _=P.target,K=P.relatedTarget;!_||!n.current||!n.current.contains(_)||K&&n.current.contains(K)||setTimeout(()=>{if(n.current){if(t.length===0){const V=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"";O(V.length>0);return}Ve(n),Ie(n,t,o),Pe(n,t,o,O)}},0)};k.addEventListener("blur",C,!0);const H=()=>{if(!n.current)return;g.forEach((K,V)=>{V.removeEventListener("blur",K,!1)}),g.clear();const P=n.current.querySelectorAll('[data-type="variable"][data-multi-key]'),_=K=>{K.stopPropagation(),K.stopImmediatePropagation();const V=K.target;if(!V||!n.current||!n.current.contains(V))return;const j=V.closest('[data-type="variable"][data-multi-key]');if(!j||!n.current.contains(j))return;let U=!1;if(g.forEach((oe,ce)=>{(ce===j||ce.contains(V))&&(U=!0)}),!U)return;const D=j.dataset.multiKey,W=j.dataset.key,Z=j.dataset.index;if(!D||!W||Z===void 0)return;const G=K.relatedTarget;if(!(!G||!n.current.contains(G)))return;const le=j.innerText.replace(/[\u200B\n]/g,"").trim();console.log("[Blur Event] 失去焦点的 multi-variable 输入框:",{multiKey:D,currentKey:W,index:Z,content:le});const R=/[、,,\s]+/;if(R.test(le)){const oe=le.split(R).map(xe=>xe.trim()).filter(xe=>xe.length>0);console.log("[Blur Event] 拆分前的内容:",le),console.log("[Blur Event] 拆分后的部分:",oe);const he=oe.slice(0,9);if(console.log("[Blur Event] 有效的部分(最多9个):",he),he.length>1){const xe=t.find(Ae=>Ae.type==="multi-variable"&&Ae.key===D);if(xe){const Ae=f[D]||1,lt=parseInt(Z,10),it=xe.maxCount||9,_e=[];for(let ge=0;ge<Ae;ge++){const Ce=`${D}_${ge}`,Le=n.current.querySelector(`[data-type="variable"][data-key="${Ce}"][data-multi-key="${D}"]`);if(Le){const Me=Le.innerText.replace(/[\u200B\n]/g,"").trim();_e.push(Me)}}console.log("[Blur Event] 拆分前的所有值:",_e),console.log("[Blur Event] 当前索引:",lt),console.log("[Blur Event] 要插入的值:",he),_e.splice(lt,1,...he);const we=_e.slice(0,it);console.log("[Blur Event] 拆分后的所有值:",we),we.length>0&&we[we.length-1]!==""&&we.length<it&&we.push("");const Yt=Math.max(we.length,1),Oe={};we.forEach((ge,Ce)=>{ge&&(Oe[`${D}_${Ce}`]=ge)}),n.current.querySelectorAll('[data-type="variable"]').forEach(ge=>{const Ce=ge.dataset.key,Le=ge.dataset.multiKey;if(Ce&&Le!==D){const Me=ge.innerText.replace(/[\u200B\n]/g,"").trim();Me&&(Oe[Ce]=Me)}}),n.current.__tempVariableValues=Oe,x(ge=>({...ge,[D]:Yt}))}}}};P.forEach(K=>{K.addEventListener("blur",_,!1),g.set(K,_)})},A=setTimeout(()=>{H()},0);return()=>{clearTimeout(A),k.removeEventListener("blur",C,!0),g.forEach((P,_)=>{_.removeEventListener("blur",P,!1)}),g.clear()}},[t,f,o]);const Gt=k=>{if(s){k.preventDefault();return}if(k.key==="Enter"){k.preventDefault();return}const g=window.getSelection();if(g&&g.rangeCount>0){const C=g.anchorNode;let H=null;if(C&&(C.nodeType===Node.ELEMENT_NODE?H=C.closest('[data-type="text"]'):C.nodeType===Node.TEXT_NODE&&C.parentElement&&(H=C.parentElement.closest('[data-type="text"]'))),H){if(k.preventDefault(),k.stopPropagation(),n.current){const A=n.current.querySelector('[data-type="variable"], [data-type="upload"]');A&&A.focus()}return}}if(S&&g&&g.rangeCount>0){const C=g.anchorNode;let H=null;if(C&&(C.nodeType===Node.ELEMENT_NODE?H=C.closest(".tag-node"):C.nodeType===Node.TEXT_NODE&&C.parentElement&&(H=C.parentElement.closest(".tag-node"))),H){if(k.preventDefault(),k.stopPropagation(),n.current){const A=n.current.querySelector('[data-type="variable"], [data-type="upload"]');A&&A.focus()}return}}if(k.key==="Escape"&&n.current){if(S){k.preventDefault();return}n.current.innerHTML="",n.current.focus()}if(k.key==="Backspace"){const C=window.getSelection();if(C&&C.rangeCount>0){const H=C.getRangeAt(0),A=C.anchorNode;if(S){let _=null,K=null;if(A&&(A.nodeType===Node.ELEMENT_NODE?(_=A.closest(".tag-node"),K=A.closest('[data-type="text"]')):A.nodeType===Node.TEXT_NODE&&A.parentElement&&(_=A.parentElement.closest(".tag-node"),K=A.parentElement.closest('[data-type="text"]'))),(_||K)&&H.collapsed&&H.startOffset===0){k.preventDefault();return}}let P=null;if(A&&(A.nodeType===Node.ELEMENT_NODE?P=A.closest('[data-type="variable"]'):A.nodeType===Node.TEXT_NODE&&A.parentElement&&(P=A.parentElement.closest('[data-type="variable"]'))),P){if(!H.collapsed)return;const _=P.innerText;if(_===""||_===""){k.preventDefault();return}if(H.startOffset===0){k.preventDefault();return}if(_.startsWith("")&&H.startOffset===1){k.preventDefault();return}}}}},Ft=()=>{if(i||s||e||!Y||!n.current)return;if(t.length===0){const P=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"";if(!P)return;p(P,P);return}const k=n.current;let g="";const C={},H=P=>{if(!(P.nodeType===Node.ELEMENT_NODE&&P.style.display==="none")){if(P.nodeType===Node.TEXT_NODE)g+=(P.textContent||"").replace(/\u200B/g,"");else if(P.nodeType===Node.ELEMENT_NODE){const _=P,K=_.dataset.type,V=_.dataset.key;if(K==="variable"&&V){let j="";const U=document.createTreeWalker(_,NodeFilter.SHOW_TEXT,{acceptNode:W=>{const Z=_.querySelector(".variable-info-icon");return Z&&Z.contains(W)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}});for(;U.nextNode();)j+=U.currentNode.textContent||"";const D=j.replace(/[\u200B\n]/g,"").trim();if(D){const W=_.dataset.multiKey;if(W){(!C[W]||!Array.isArray(C[W]))&&(C[W]=[]);const Z=C[W];Z.push(D),Z.length>1&&(g+=" "),g+=D}else C[V]=D,g+=D}}else if(K==="select"&&V){const j=(_.getAttribute("data-value")||"").trim();j&&(C[V]=j,g+=j)}else if(K==="textarea"&&V){const U=(_.value||"").replace(/\u200B/g,"").trim();U&&(C[V]=U,g+=U)}else if(K==="richtext"&&V){const U=(_.textContent||"").replace(/\u200B/g,"").trim();U&&(C[V]=U,g+=U)}else if(K==="datepicker"&&V){const U=(_.getAttribute("data-value")||"").trim();if(U)if(U.includes(",")){const D=U.split(",");D.length===2?(C[V]=D,g+=`[${D[0]}, ${D[1]}]`):(C[V]=U,g+=U)}else C[V]=U,g+=U}else if(K==="upload"&&V){const j=_.dataset.batchKey;if(j){const U=t.find(D=>D.type==="upload"&&D.key===j);if(U&&typeof U.maxCount=="number"&&typeof U.minCount=="number"){const D=[];for(let W=0;W<U.maxCount;W++){const Z=`${j}-${W}`,G=o[Z];G&&D.push(G)}C[j]||(C[j]=D.length>0?D:null,D.length>0&&(g+=` [附带${D.length}个文件: ${D.map(W=>W.name).join(", ")}] `))}else C[V]=o[V]??null,o[V]&&(g+=` [附带文件: ${o[V]?.name}] `)}else C[V]=o[V]??null,o[V]&&(g+=` [附带文件: ${o[V]?.name}] `)}else{if(_.classList.contains("tag-close-btn")||_.classList.contains("file-remove-btn"))return;_.getAttribute("contenteditable")==="false"&&!K&&_.classList.contains("tag-node")?g+=_.innerText:_.childNodes.forEach(H)}}}};if(k.childNodes.forEach(H),g=g.trim(),!g)return;const A=new FormData;A.append("fullPrompt",g),Object.keys(C).forEach(P=>{const _=C[P];_!=null&&(_ instanceof File?A.append(P,_):Array.isArray(_)?t.some(V=>V.type==="multi-variable"&&V.key===P)?_.forEach(V=>{V!=null&&V!==""&&A.append(P,String(V))}):_.forEach((V,j)=>{V!=null&&(V instanceof File?A.append(`${P}[${j}]`,V):typeof V=="string"?A.append(`${P}[${j}]`,V):A.append(`${P}[${j}]`,String(V)))}):typeof _=="string"?A.append(P,_):A.append(P,String(_)))}),p(A,g)},zt={...m?{width:typeof m=="number"?`${m}px`:m}:{},...h?{border:h}:{},...c?{background:c}:{}};return u.jsxs("div",{className:"rich-text-editor",style:zt,"data-disabled":s,children:[u.jsx("div",{ref:n,className:`rte-editor ${t.length===0?"rte-editor-default":""} ${ie&&T?"rte-editor-empty":""}`,contentEditable:t.length===0,suppressContentEditableWarning:!0,"data-placeholder":T,onMouseDown:de,onMouseMove:me,onMouseUp:ye,onClick:ve,onDoubleClick:Ee,onInput:$e,onKeyDown:Gt,onPaste:fe}),u.jsx("input",{type:"file",ref:a,className:"rte-file-input",accept:".csv,.xlsx,.xls,.txt,.pdf,image/*",onChange:be}),u.jsxs("div",{className:"rich-text-editor-footer",children:[u.jsx("div",{className:"rich-text-editor-footer-left",children:u.jsxs("div",{className:"rich-text-editor-brand",children:[u.jsxs("div",{className:"rte-brand-badge",children:[u.jsx("img",{src:"https://oospublic.sealseek.cn/file/website/ball.png",alt:""}),u.jsx("span",{className:"rte-brand-text",children:"SealSeek 1.0"})]}),r!=="hideAgent"&&u.jsx(ee.Dropdown,{placement:"top",menu:{items:q.filter(k=>k.isShowNew!==1).map(k=>({key:k.key,label:u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[k.icon&&u.jsx("i",{className:k.icon}),u.jsx("span",{children:k.label})]}),onClick:()=>{$?.(k)}}))},trigger:["click"],disabled:s||i,children:u.jsxs("div",{className:"rte-agent-badge",style:{cursor:q.length>0?"pointer":"default"},children:[u.jsx("i",{className:"iconfont icon-zhinengti",style:{fontSize:"16px"}}),u.jsx("span",{className:"rte-agent-text",children:"智能体"})]})})]})}),u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(()=>{const k=t.find(C=>C.type==="tag");if(!k||!k.text)return null;const g=q.find(C=>C.label===k.text);return!g||g.points===void 0||g.points===null?null:u.jsxs("div",{className:"rte-points-badge",children:[u.jsx("i",{className:"iconfont icon-jifen",style:{marginRight:"4px"}}),u.jsxs("span",{style:{fontSize:"16px"},children:["-",String(g.points)]})]})})(),u.jsx("button",{type:"button",onClick:Ft,disabled:i||s||e||!Y,className:"rich-text-editor-send-button",children:i||e?u.jsx("span",{className:"rte-send-spinner"}):u.jsx("i",{className:"iconfont icon-fasong"})})]})]}),E?.anchorEl&&(()=>{if(!document.body.contains(E.anchorEl))return null;let k="",g={background:"var(--neutral-800, #262626)"};if(E.type==="upload")k=t.find(A=>A.type==="upload"&&A.key===E.key)?.tooltip||"";else if(E.type==="tag")k=E.anchorEl.dataset.tooltip||"";else if(E.type==="upload-label")k=E.anchorEl.dataset.fileName||"";else if(E.type==="variable")k=E.anchorEl.dataset.tooltip||"";else if(E.type==="upload-preview"){const H=o[E.key];if(H&&H.type&&H.type.startsWith("image/")){const A=URL.createObjectURL(H);k=u.jsx("div",{style:{width:120,height:120,display:"flex",alignItems:"center",justifyContent:"center"},children:u.jsx("img",{src:A,style:{maxWidth:120,maxHeight:120,objectFit:"contain"}})}),g={background:"#fff",padding:4},setTimeout(()=>URL.revokeObjectURL(A),1e3)}else k=""}if(!k)return null;const C=E.type==="upload-preview"?"#0A0A0A":"#fff";return De.createPortal(u.jsx(ee.Tooltip,{arrow:!1,title:u.jsx("div",{style:{maxWidth:"200px",fontSize:"12px",color:C},children:k}),open:!0,placement:"top",getPopupContainer:()=>document.body,overlayInnerStyle:g,children:u.jsx("div",{style:{position:"fixed",left:`${E.anchorEl.getBoundingClientRect().left}px`,top:`${E.anchorEl.getBoundingClientRect().top}px`,width:`${E.anchorEl.offsetWidth}px`,height:`${E.anchorEl.offsetHeight}px`,pointerEvents:"none"}})}),document.body)})(),pe,ue]})};tt.__docgenInfo={displayName:"RichTextEditor",description:"结构化富文本输入组件,支持标签、变量输入块、文件上传以及互斥显示逻辑。",props:{config:{name:"config",required:!0,description:"结构化输入配置节点数组",type:{name:"InputNode[]",raw:"InputNode[]"}},onSend:{name:"onSend",required:!0,description:"点击发送按钮时的回调,返回数据与拼接后的 Prompt",type:{name:"function",raw:"(data: Record<string, any>, fullPrompt: string) => void"}},isProcessing:{name:"isProcessing",required:!1,description:"是否处于处理状态(禁用输入与发送)",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}}}};const nt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFSSURBVHgB3ZTtccIwDIaVXv83I2SDZgSP0BHMBG0naEZhA2boBGQDswHdQJUOGRxjO0Z8HPDe6eJzJD2W4gjgEYSIn2xwK6EIFHqBGysJpMP3ZB0oRbEtmal1NtIxl4OWWsoxEsvqofJ0rgTNASOYq+7SXKDsuYvAcgkq/PWwBLQWqIfdjeRStaBUc4qzgLi9/BzJNmS/sh6bpvmrTfSFacU3scWy1mQryWdSnXiFE8QVUJINLTuyhWzzz/1OZmTN9hEckqtfUOwIGlGCpVRjE+94JFqpMtTeVzO8/UmPxpZU8Qa7aln8Tb9pfwla4WHWrjPvvbbnTBsX7PmLs83EDAH0BxSw1G31+/1FoDg/vPcXR+wocQS1apj4+P92FfhOoLyuBfYlmPgYnGoCjWADzAkzUyJ430awLmphPaxWQVU22BuuApPkHaanjcXSN3t6/QNjTMSJWDcs1QAAAABJRU5ErkJggg==",It=[{label:"5页",value:5},{label:"10页",value:10},{label:"15页",value:15},{label:"30页",value:30}],Pt=({autoLoading:t,batchSize:p,loadingProgress:i,loadIcon:s,onBatchSizeChange:m,onLoadNextPage:S,onStartAutoLoad:q,onStopLoad:$})=>t&&i?u.jsxs("div",{className:"auto_load_progress",children:[s||u.jsx("img",{src:nt,alt:"自动加载",width:14,height:14}),u.jsxs("span",{children:["正在加载第",i.currentPage,"/",i.totalPages,"页"]}),u.jsx(ee.Progress,{percent:i.percentage,type:"line",size:[160,8]}),u.jsx("span",{onClick:$,className:"auto_load_stop_btn",children:"停止加载"})]}):u.jsxs("div",{className:"auto_load_container",children:[u.jsx("div",{onClick:S,className:"auto_load_next_btn",style:{backgroundColor:t?"#f5f5f5":"#2563eb"},children:"加载下一页"}),u.jsxs("div",{className:"right_control_wrap",style:{backgroundColor:t?"#f5f5f5":"#2563eb"},children:[u.jsxs("div",{className:"auto_load_btn",onClick:t?void 0:q,children:[s||u.jsx("img",{src:nt,alt:"自动加载",width:14,height:14}),u.jsx("span",{children:"自动加载"})]}),u.jsx(ee.Select,{value:p,onChange:m,options:It,disabled:t,size:"small",className:"auto_load_select",popupMatchSelectWidth:84})]})]}),Vt=({current:t,loadIcon:p,pageSize:i,total:s,cachedPages:m,loadedCount:S,autoLoading:q=!1,loadingProgress:$,onChange:v,onLoadNextPage:e,onStartAutoLoad:T,onStopLoading:h})=>{const[c,r]=d.useState(5),n=Math.ceil(s/i),a=d.useMemo(()=>m.length>=n,[m,n]),o=()=>Array.from({length:n},(w,N)=>N+1).filter(w=>!m.includes(w)).slice(0,c),y=(l,w,N)=>{const B=m.includes(l);return w==="prev"||w==="next"||w==="jump-prev"||w==="jump-next"?u.jsx("div",{className:"pageBox",children:N}):u.jsxs("div",{className:"pageBox",style:{backgroundColor:t===l?"#2563EB":"#f5f5f5",color:t===l?"#fff":B?"#171717":"#a3a3a3"},children:[l,!B&&u.jsx("span",{className:"unload_spot"})]})};return u.jsxs("div",{className:"pagination_footer",children:[u.jsxs("div",{className:"pagination_leftWrap",children:[u.jsxs("span",{className:"pagination_total",children:[u.jsx(ke.InfoCircleOutlined,{style:{color:"#2563EB",marginRight:"4px"}}),"已加载: ",S,"/",s,"条数据"]}),!a&&u.jsx(Pt,{loadIcon:p||void 0,autoLoading:q,batchSize:c,loadingProgress:$,disabled:!e||!T,onBatchSizeChange:r,onLoadNextPage:()=>e?.(),onStartAutoLoad:()=>{const l=o();T?.(l)},onStopLoad:()=>h?.()})]}),u.jsx(ee.Pagination,{current:t,pageSize:i,total:s,onChange:l=>v(l),showSizeChanger:!1,showQuickJumper:!1,showTotal:(l,w)=>"",itemRender:y})]})},at=t=>{const{loading:p,autoLoading:i,loadingProgress:s,columns:m=[],dataSource:S=[],total:q,current:$,pageSize:v,cachedPages:e,onChangePage:T,onLoadNextPage:h,onStartAutoLoad:c,onStopLoading:r,...n}=t,a=d.useRef(null),o=d.useCallback(y=>{T(y),e.includes(y)&&a.current?.scrollTo({key:`${(y-1)*v+1}`})},[$]);return u.jsxs("div",{className:"flex flex-col",children:[u.jsx(ee.Table,{ref:a,...n,columns:m,dataSource:S,pagination:!1,virtual:!0}),u.jsx(Vt,{loading:p,autoLoading:i,loadingProgress:s,current:$,pageSize:v,total:q,loadedCount:S.length,cachedPages:e,onChange:o,onLoadNextPage:h,onStartAutoLoad:c,onStopLoading:r})]})};at.__docgenInfo={displayName:"VirtualTable",description:"虚拟滚动表格组件,支持分页、数据缓存和自动加载功能。",props:{loading:{description:"加载状态",name:"loading",required:!0,type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},total:{description:"总数据条数",name:"total",required:!0,type:{name:"number",raw:"number"},defaultValue:{value:"0"}},current:{description:"当前页码",name:"current",required:!0,type:{name:"number",raw:"number"},defaultValue:{value:"1"}},pageSize:{description:"每页数据条数",name:"pageSize",required:!0,type:{name:"number",raw:"number"},defaultValue:{value:"10"}},cachedPages:{description:"已缓存的页码数组",name:"cachedPages",required:!0,type:{name:"number[]",raw:"number[]"},defaultValue:{value:"[]"}},dataSource:{description:"数据源",name:"dataSource",required:!0,type:{name:"Array<T>",raw:"Array<T>"},defaultValue:{value:"[]"}},onChangePage:{description:"页码变更回调函数",name:"onChangePage",required:!0,type:{name:"function",raw:"function(page: number): void"},defaultValue:{value:"-"}},autoLoading:{description:"是否正在自动加载",name:"autoLoading",required:!0,type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},loadingProgress:{description:"加载进度信息",name:"loadingProgress",required:!0,type:{name:"object",raw:"{percentage: 0, currentPage: 1, totalPages: 5}"},defaultValue:{value:"-"}},onLoadNextPage:{description:"加载下一页回调函数",name:"onLoadNextPage",required:!1,type:{name:"function",raw:"function(page: number): void"},defaultValue:{value:"-"}},onStartAutoLoad:{description:"开始自动加载回调函数",name:"onStartAutoLoad",required:!1,type:{name:"function",raw:"function(loadNextPages: number[]): void"},defaultValue:{value:"-"}},onStopLoading:{description:"停止加载回调函数",name:"onStopLoading",required:!1,type:{name:"function",raw:"function(): void"},defaultValue:{value:"-"}},columns:{description:"表格列配置",name:"columns",required:!0,type:{name:"Array<object>",raw:"Array<object>"},defaultValue:{value:"[]"}}}};const rt=({texts:t=[],placeholder:p="请输入内容",animationSpeed:i=100,autoPlay:s=!0,value:m,onChange:S,...q})=>{const[$,v]=d.useState(""),[e,T]=d.useState(0),[h,c]=d.useState(!1),[r,n]=d.useState(!1),[a,o]=d.useState(!1),y=d.useRef(void 0),l=d.useRef(void 0),w=d.useRef(t),N=d.useRef(e),B=d.useRef(r),E=d.useRef($);d.useEffect(()=>{w.current=t,N.current=e,B.current=r,E.current=$});const F=d.useCallback((b,f)=>{let x=0;o(!0);const L=()=>{x<b.length?(v(b.slice(0,x+1)),x++,l.current=window.setTimeout(L,i)):(o(!1),f?.())};L()},[i]),z=d.useCallback(b=>{let f=E.current.length;const x=()=>{f>0?(v(E.current.slice(0,f-1)),f--,l.current=window.setTimeout(x,i/2)):b?.()};x()},[i]),I=d.useCallback(()=>{if(w.current.length===0||B.current)return;c(!0);const b=w.current[N.current];E.current?z(()=>{F(b,()=>{y.current=window.setTimeout(()=>{T(f=>(f+1)%w.current.length),c(!1)},2e3)})}):F(b,()=>{y.current=window.setTimeout(()=>{T(f=>(f+1)%w.current.length),c(!1)},2e3)})},[z,F]);d.useEffect(()=>(s&&t.length>0&&!r&&I(),()=>{y.current&&window.clearTimeout(y.current),l.current&&window.clearTimeout(l.current)}),[e,r,s,t.length,I]),d.useEffect(()=>{!h&&s&&t.length>0&&!r&&I()},[e,h,s,t.length,r,I]);const Y=b=>{n(!0),y.current&&window.clearTimeout(y.current),l.current&&window.clearTimeout(l.current),c(!1),o(!1),q.onFocus?.(b)},O=b=>{n(!1),!m&&t.length>0&&(v(""),T(0)),q.onBlur?.(b)},te=b=>{S?.(b.target.value),q.onChange?.(b)},ie=()=>r||m?p:$||p;return u.jsxs("div",{style:{position:"relative"},children:[u.jsx(ee.Input,{...q,value:m,onChange:te,onFocus:Y,onBlur:O,placeholder:ie(),style:{...q.style,position:"relative",zIndex:1}}),!r&&!m&&$&&u.jsxs("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",paddingLeft:11,paddingRight:11,color:"#bfbfbf",pointerEvents:"none",zIndex:2,fontSize:14,fontFamily:"inherit"},children:[u.jsx("span",{children:$}),a&&u.jsx("span",{style:{display:"inline-block",width:1,height:"1.2em",backgroundColor:"#1890ff",marginLeft:2,animation:"blink 1s infinite"}})]}),u.jsx("style",{children:`
|
|
2
2
|
@keyframes blink {
|
|
3
3
|
0%, 50% { opacity: 1; }
|
|
4
4
|
51%, 100% { opacity: 0; }
|
|
5
5
|
}
|
|
6
|
-
`})]})};rt.__docgenInfo={displayName:"DynamicInput",description:"动态文案输入框组件,支持流式文字动画效果",props:{texts:{name:"texts",required:!0,description:"动态展示的文案数组",type:{name:"string[]",raw:"string[]"}},placeholder:{name:"placeholder",required:!1,description:"输入框占位符",type:{name:"string",raw:"string"},defaultValue:{value:'"请输入内容"'}},animationSpeed:{name:"animationSpeed",required:!1,description:"动画速度(毫秒)",type:{name:"number",raw:"number"},defaultValue:{value:"100"}},autoPlay:{name:"autoPlay",required:!1,description:"是否自动播放动画",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},value:{name:"value",required:!1,description:"输入框值",type:{name:"string",raw:"string"}},onChange:{name:"onChange",required:!1,description:"输入框变化回调",type:{name:"function",raw:"(value: string) => void"}}}};const ot=({texts:
|
|
6
|
+
`})]})};rt.__docgenInfo={displayName:"DynamicInput",description:"动态文案输入框组件,支持流式文字动画效果",props:{texts:{name:"texts",required:!0,description:"动态展示的文案数组",type:{name:"string[]",raw:"string[]"}},placeholder:{name:"placeholder",required:!1,description:"输入框占位符",type:{name:"string",raw:"string"},defaultValue:{value:'"请输入内容"'}},animationSpeed:{name:"animationSpeed",required:!1,description:"动画速度(毫秒)",type:{name:"number",raw:"number"},defaultValue:{value:"100"}},autoPlay:{name:"autoPlay",required:!1,description:"是否自动播放动画",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},value:{name:"value",required:!1,description:"输入框值",type:{name:"string",raw:"string"}},onChange:{name:"onChange",required:!1,description:"输入框变化回调",type:{name:"function",raw:"(value: string) => void"}}}};const ot=({texts:t=[],placeholder:p="请输入内容",animationSpeed:i=100,autoPlay:s=!0,value:m="",onChange:S,onSubmit:q,maxLength:$=500,showCount:v=!0,submitText:e="发送",disabled:T=!1,rows:h=4,style:c,...r})=>{const[n,a]=d.useState(""),[o,y]=d.useState(0),[l,w]=d.useState(!1),[N,B]=d.useState(!1),[E,F]=d.useState(!1),[z,I]=d.useState(m||""),Y=d.useRef(void 0),O=d.useRef(void 0),te=d.useRef(t),ie=d.useRef(o),b=d.useRef(N),f=d.useRef(n),x=d.useRef(null);d.useEffect(()=>{te.current=t,ie.current=o,b.current=N,f.current=n});const L=d.useCallback((Q,de)=>{let me=0;F(!0);const ye=()=>{me<Q.length?(a(Q.slice(0,me+1)),me++,O.current=window.setTimeout(ye,i)):(F(!1),de?.())};ye()},[i]),M=d.useCallback(Q=>{let de=f.current.length;const me=()=>{de>0?(a(f.current.slice(0,de-1)),de--,O.current=window.setTimeout(me,i/2)):Q?.()};me()},[i]),X=d.useCallback(()=>{if(te.current.length===0||b.current)return;w(!0);const Q=te.current[ie.current];f.current?M(()=>{L(Q,()=>{Y.current=window.setTimeout(()=>{y(de=>(de+1)%te.current.length),w(!1)},2e3)})}):L(Q,()=>{Y.current=window.setTimeout(()=>{y(de=>(de+1)%te.current.length),w(!1)},2e3)})},[M,L]);d.useEffect(()=>(s&&t.length>0&&!N&&X(),()=>{Y.current&&window.clearTimeout(Y.current),O.current&&window.clearTimeout(O.current)}),[o,N,s,t.length,X]),d.useEffect(()=>{!l&&s&&t.length>0&&!N&&X()},[o,l,s,t.length,N,X]);const J=Q=>{B(!0),Y.current&&window.clearTimeout(Y.current),O.current&&window.clearTimeout(O.current),w(!1),F(!1),r.onFocus?.(Q)},ae=Q=>{B(!1),!m&&t.length>0&&(a(""),y(0)),r.onBlur?.(Q)},re=Q=>{const de=Q.target.value;$&&de.length>$||(S?S(de):I(de),r.onChange?.(Q))},ue=()=>{const Q=S?m:z;Q.trim()&&!T&&(q?.(Q),S||I(""))},pe=Q=>{(Q.ctrlKey||Q.metaKey)&&Q.key==="Enter"&&(Q.preventDefault(),ue()),r.onKeyDown?.(Q)},fe=S?m:z,be=T||!fe.trim()||($?fe.length>$:!1);return u.jsxs("div",{style:{position:"relative",...c},children:[u.jsxs("div",{style:{position:"relative"},children:[u.jsx("textarea",{ref:x,value:S?m:z,onChange:re,onFocus:Q=>{Q.target.style.borderColor="#1890ff",Q.target.style.boxShadow="0 0 0 2px rgba(24, 144, 255, 0.2)",J(Q)},onBlur:Q=>{Q.target.style.borderColor="#d9d9d9",Q.target.style.boxShadow="none",ae(Q)},onKeyDown:pe,placeholder:N||fe?p:"",maxLength:$,rows:h,disabled:T,style:{width:"100%",minHeight:`${h*24+16}px`,padding:"8px 60px 8px 12px",border:"1px solid #d9d9d9",borderRadius:"6px",fontSize:"14px",lineHeight:"1.5",fontFamily:"inherit",resize:"vertical",outline:"none",transition:"border-color 0.3s, box-shadow 0.3s",backgroundColor:"#fff",...r.style},...r}),!N&&!fe&&n&&u.jsxs("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"flex-start",paddingTop:8,paddingLeft:12,paddingRight:12,color:"#bfbfbf",pointerEvents:"none",zIndex:2,fontSize:14,fontFamily:"inherit",lineHeight:"1.5"},children:[u.jsx("span",{children:n}),E&&u.jsx("span",{style:{display:"inline-block",width:1,height:"1.2em",backgroundColor:"#1890ff",marginLeft:2,animation:"blink 1s infinite"}})]}),u.jsx("div",{style:{position:"absolute",bottom:8,right:8,zIndex:3},children:u.jsx(ee.Button,{type:"primary",size:"small",icon:u.jsx(ke.SendOutlined,{}),onClick:ue,disabled:be,style:{borderRadius:6,minWidth:32,height:32,display:"flex",alignItems:"center",justifyContent:"center"},children:e})})]}),v&&u.jsxs("div",{style:{marginTop:4,textAlign:"right",fontSize:"12px",color:"#999"},children:[fe.length,"/",$]}),u.jsx("style",{children:`
|
|
7
7
|
@keyframes blink {
|
|
8
8
|
0%, 50% { opacity: 1; }
|
|
9
9
|
51%, 100% { opacity: 0; }
|
|
10
10
|
}
|
|
11
|
-
`})]})};ot.__docgenInfo={displayName:"DynamicTextArea",description:"动态文案文本域组件,支持流式文字动画效果",props:{texts:{name:"texts",required:!0,description:"动态展示的文案数组",type:{name:"string[]",raw:"string[]"}},placeholder:{name:"placeholder",required:!1,description:"输入框占位符",type:{name:"string",raw:"string"},defaultValue:{value:'"请输入内容"'}},animationSpeed:{name:"animationSpeed",required:!1,description:"动画速度(毫秒)",type:{name:"number",raw:"number"},defaultValue:{value:"100"}},autoPlay:{name:"autoPlay",required:!1,description:"是否自动播放动画",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},value:{name:"value",required:!1,description:"输入框值",type:{name:"string",raw:"string"}},onChange:{name:"onChange",required:!1,description:"输入框变化回调",type:{name:"function",raw:"(value: string) => void"}},onSubmit:{name:"onSubmit",required:!1,description:"提交回调",type:{name:"function",raw:"(value: string) => void"}},maxLength:{name:"maxLength",required:!1,description:"最大输入字数",type:{name:"number",raw:"number"},defaultValue:{value:"500"}},showCount:{name:"showCount",required:!1,description:"是否显示字数统计",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},submitText:{name:"submitText",required:!1,description:"提交按钮文本",type:{name:"string",raw:"string"},defaultValue:{value:'"发送"'}},disabled:{name:"disabled",required:!1,description:"是否禁用提交按钮",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},rows:{name:"rows",required:!1,description:"文本域行数",type:{name:"number",raw:"number"},defaultValue:{value:"4"}}}};const Be=({src:
|
|
11
|
+
`})]})};ot.__docgenInfo={displayName:"DynamicTextArea",description:"动态文案文本域组件,支持流式文字动画效果",props:{texts:{name:"texts",required:!0,description:"动态展示的文案数组",type:{name:"string[]",raw:"string[]"}},placeholder:{name:"placeholder",required:!1,description:"输入框占位符",type:{name:"string",raw:"string"},defaultValue:{value:'"请输入内容"'}},animationSpeed:{name:"animationSpeed",required:!1,description:"动画速度(毫秒)",type:{name:"number",raw:"number"},defaultValue:{value:"100"}},autoPlay:{name:"autoPlay",required:!1,description:"是否自动播放动画",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},value:{name:"value",required:!1,description:"输入框值",type:{name:"string",raw:"string"}},onChange:{name:"onChange",required:!1,description:"输入框变化回调",type:{name:"function",raw:"(value: string) => void"}},onSubmit:{name:"onSubmit",required:!1,description:"提交回调",type:{name:"function",raw:"(value: string) => void"}},maxLength:{name:"maxLength",required:!1,description:"最大输入字数",type:{name:"number",raw:"number"},defaultValue:{value:"500"}},showCount:{name:"showCount",required:!1,description:"是否显示字数统计",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},submitText:{name:"submitText",required:!1,description:"提交按钮文本",type:{name:"string",raw:"string"},defaultValue:{value:'"发送"'}},disabled:{name:"disabled",required:!1,description:"是否禁用提交按钮",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},rows:{name:"rows",required:!1,description:"文本域行数",type:{name:"number",raw:"number"},defaultValue:{value:"4"}}}};const Be=({src:t,poster:p,width:i=300,height:s,videoWidth:m,videoHeight:S,showPlayButton:q=!0,autoPlayOnHover:$=!0,onClick:v,onVideoLoaded:e,onVideoPlay:T,onVideoPause:h,onVideoEnded:c,className:r,style:n,...a})=>{const o=d.useRef(null),[y,l]=d.useState(!1),[w,N]=d.useState(!1),[B,E]=d.useState(!1),F=d.useCallback(()=>{o.current&&(o.current.play(),l(!0),T?.())},[T]),z=d.useCallback(()=>{o.current&&(o.current.pause(),l(!1),h?.())},[h]),I=d.useCallback(L=>{L.stopPropagation(),y?z():F()},[y,F,z]),Y=d.useCallback(()=>{N(!0),$&&!y&&F()},[$,y,F]),O=d.useCallback(()=>{N(!1),$&&y&&z()},[$,y,z]),te=d.useCallback(()=>{E(!0),e?.()},[e]),ie=d.useCallback(()=>{l(!0),T?.()},[T]),b=d.useCallback(()=>{l(!1),h?.()},[h]),f=d.useCallback(()=>{l(!1),c?.()},[c]),x=d.useCallback(L=>{v?.(L)},[v]);return u.jsx(ee.Card,{...a,className:`video-card ${r||""}`,style:{width:i,height:s,padding:0,overflow:"hidden",cursor:v?"pointer":"default",border:"none",borderRadius:0,...n},bordered:!1,onMouseEnter:Y,onMouseLeave:O,onClick:x,children:u.jsxs("div",{className:"video-card-container",children:[u.jsx("video",{ref:o,src:t,poster:p,preload:"metadata",onLoadedData:te,onPlay:ie,onPause:b,onEnded:f,muted:!0,loop:!0}),q&&u.jsx("div",{className:`video-play-button ${w?"hovered":""}`,onClick:I,children:y?u.jsx(ke.PauseCircleOutlined,{className:"play-icon"}):u.jsx(ke.PlayCircleOutlined,{className:"play-icon"})}),!B&&u.jsx("div",{className:"video-loading-mask",children:u.jsx("div",{className:"loading-spinner"})})]})})};Be.__docgenInfo={displayName:"VideoCard",description:"视频卡片组件,支持鼠标悬浮播放控制",props:{src:{name:"src",required:!0,description:"视频源地址",type:{name:"string",raw:"string"}},poster:{name:"poster",required:!1,description:"视频海报图片",type:{name:"string",raw:"string"}},width:{name:"width",required:!1,description:"卡片宽度",type:{name:"number | string",raw:"number | string"},defaultValue:{value:"300"}},height:{name:"height",required:!1,description:"卡片高度",type:{name:"number | string",raw:"number | string"}},videoWidth:{name:"videoWidth",required:!1,description:"视频宽度",type:{name:"number | string",raw:"number | string"},defaultValue:{value:'"100%"'}},videoHeight:{name:"videoHeight",required:!1,description:"视频高度",type:{name:"number | string",raw:"number | string"},defaultValue:{value:'"100%"'}},showPlayButton:{name:"showPlayButton",required:!1,description:"是否显示播放按钮",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},autoPlayOnHover:{name:"autoPlayOnHover",required:!1,description:"是否自动播放(鼠标悬浮时)",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},onClick:{name:"onClick",required:!1,description:"点击事件",type:{name:"function",raw:"(event: React.MouseEvent<HTMLDivElement>) => void"}},onVideoLoaded:{name:"onVideoLoaded",required:!1,description:"视频加载完成事件",type:{name:"function",raw:"() => void"}},onVideoPlay:{name:"onVideoPlay",required:!1,description:"视频播放事件",type:{name:"function",raw:"() => void"}},onVideoPause:{name:"onVideoPause",required:!1,description:"视频暂停事件",type:{name:"function",raw:"() => void"}},onVideoEnded:{name:"onVideoEnded",required:!1,description:"视频结束事件",type:{name:"function",raw:"() => void"}},className:{name:"className",required:!1,description:"自定义样式类名",type:{name:"string",raw:"string"}},style:{name:"style",required:!1,description:"自定义样式",type:{name:"CSSProperties",raw:"React.CSSProperties"}}}};const Bt=t=>[".mp4",".webm",".ogg",".mov",".avi",".wmv",".flv",".mkv"].some(i=>t.toLowerCase().includes(i)),Ot=t=>t.type?t.type:Bt(t.url)?"video":"image",st=({items:t,columns:p,gap:i=0,responsive:s=!0,breakpoints:m={xs:1,sm:2,md:3,lg:4,xl:5,xxl:6},className:S,style:q,onClick:$})=>{const v=d.useRef(null),[e,T]=d.useState(p||m.md||3),h=d.useRef(new Map),c=d.useCallback(()=>{if(!s||p)return p||m.md||3;const o=window.innerWidth;return o<576?m.xs||1:o<768?m.sm||2:o<992?m.md||3:o<1200?m.lg||4:o<1600?m.xl||5:m.xxl||6},[s,p,m]),r=d.useCallback(()=>{if(!v.current)return;const o=e,y=v.current,w=(y.offsetWidth-i*(o-1))/o,N=new Array(o).fill(0);t.forEach((E,F)=>{const z=E.id||F,I=h.current.get(z);if(!I)return;const Y=Math.min(...N),O=N.indexOf(Y),te=O*(w+i),ie=N[O];I.style.position="absolute",I.style.left=`${te}px`,I.style.top=`${ie}px`,I.style.width=`${w}px`,N[O]+=I.offsetHeight+i});const B=Math.max(...N);y.style.height=`${B}px`},[t,e,i]);d.useEffect(()=>{const o=()=>{const y=c();y!==e&&T(y)};if(s)return window.addEventListener("resize",o),o(),()=>window.removeEventListener("resize",o)},[s,c,e]),d.useEffect(()=>{const o=setTimeout(()=>{r()},100);return()=>clearTimeout(o)},[t,e,r]);const n=d.useCallback(()=>{r()},[r]),a=d.useCallback(o=>{$&&$(o),o.onClick?.(o)},[$]);return u.jsx("div",{ref:v,className:`waterfall-container ${S||""}`,style:{position:"relative",width:"100%",...q},children:t.map((o,y)=>{const l=o.id||y,w=Ot(o);return u.jsx("div",{ref:N=>{N?h.current.set(l,N):h.current.delete(l)},className:"waterfall-item",children:w==="video"?u.jsx("div",{style:{width:"100%",position:"relative",paddingBottom:"56.25%",cursor:$||o.onClick?"pointer":"default"},children:u.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%"},children:u.jsx(Be,{src:o.url,poster:o.poster,width:"100%",height:"100%",onClick:()=>a(o),onVideoLoaded:n,autoPlayOnHover:!0,showPlayButton:!1})})}):u.jsx("div",{className:"waterfall-image-wrapper",onClick:()=>a(o),style:{cursor:$||o.onClick?"pointer":"default"},children:u.jsx("img",{src:o.url,alt:`瀑布流图片 ${y+1}`,className:"waterfall-image",onLoad:n,onError:n,style:{display:"block",width:"100%",height:"auto"}})})},l)})})};st.__docgenInfo={displayName:"Waterfall",description:"瀑布流布局组件,支持图片和视频混合展示",props:{items:{name:"items",required:!0,description:"媒体资源数组",type:{name:"WaterfallItem[]",raw:"WaterfallItem[]"}},columns:{name:"columns",required:!1,description:"列数(默认会根据屏幕宽度自动响应)",type:{name:"number",raw:"number"}},gap:{name:"gap",required:!1,description:"间隔大小",type:{name:"number",raw:"number"},defaultValue:{value:"0"}},responsive:{name:"responsive",required:!1,description:"是否启用响应式布局",type:{name:"boolean",raw:"boolean"},defaultValue:{value:"true"}},breakpoints:{name:"breakpoints",required:!1,description:"响应式断点配置",type:{name:"object",raw:"{ xs?: number; sm?: number; md?: number; lg?: number; xl?: number; xxl?: number; }"}},className:{name:"className",required:!1,description:"自定义类名",type:{name:"string",raw:"string"}},style:{name:"style",required:!1,description:"自定义样式",type:{name:"CSSProperties",raw:"React.CSSProperties"}},onClick:{name:"onClick",required:!1,description:"点击回调",type:{name:"function",raw:"(item: any) => void"}}}};const Ht={algorithm:ee.theme.defaultAlgorithm,token:{colorPrimary:"#3b82f6",colorSuccess:"#10b981",colorWarning:"#f59e0b",colorError:"#ef4444",colorInfo:"#3b82f6",colorBgBase:"#ffffff",colorBgContainer:"#ffffff",colorBgElevated:"#ffffff",colorBgLayout:"#f8fafc",colorTextBase:"#1e293b",colorText:"#1e293b",colorTextSecondary:"#64748b",colorTextTertiary:"#94a3b8",colorTextQuaternary:"#cbd5e1",colorBorder:"#e2e8f0",colorBorderSecondary:"#f1f5f9",boxShadow:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",boxShadowSecondary:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",borderRadius:8,borderRadiusLG:12,borderRadiusSM:6,fontFamily:"Inter, system-ui, Arial, sans-serif",fontSize:14,fontSizeLG:16,fontSizeSM:12,padding:16,paddingLG:24,paddingSM:12,paddingXS:8,controlHeight:32,controlHeightLG:40,controlHeightSM:24},components:{Button:{borderRadius:8,controlHeight:32,fontWeight:500},Card:{borderRadiusLG:12,boxShadow:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)"},Input:{borderRadius:8,controlHeight:32},Table:{borderRadiusLG:8,headerBg:"#f8fafc",headerColor:"#374151"}}};se.AdvancedTable=Ue,se.AppModal=Fe,se.BackButton=We,se.Button=He,se.Card=Ge,se.DynamicInput=rt,se.DynamicTextArea=ot,se.EmptyAndSpin=je,se.LinkButton=Ke,se.PageTable=ze,se.RichTextEditor=tt,se.VideoCard=Be,se.VirtualTable=at,se.Waterfall=st,se.XcIcon=Ye,se.lightTheme=Ht,Object.defineProperty(se,Symbol.toStringTag,{value:"Module"})});
|
|
12
12
|
//# sourceMappingURL=index.umd.js.map
|