bi-components-library 1.0.42 → 1.0.43

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/index.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(le,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):(le=typeof globalThis<"u"?globalThis:le||self,u(le.SealSeekBIComponents={},le.React,le.React,le.antd,le.AntdIcons,le.ReactDOM))})(this,function(le,u,d,ee,ke,De){"use strict";const He=({variant:t="primary",loading:f=!1,children:i,...s})=>{const p=C=>{switch(C){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:p(t),loading:f,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:f,bordered:i=!0,hoverable:s=!1,size:p="default",...C})=>u.jsx(ee.Card,{...C,title:t,bordered:i,hoverable:s,size:p,children:f});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,...f})=>{const i=f.footer!==void 0?f.footer:t?(s,{OkBtn:p,CancelBtn:C})=>u.jsxs(u.Fragment,{children:[u.jsx(p,{}),u.jsx(C,{})]}):null;return u.jsx(ee.Modal,{...f,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:f=!0,defaultPageSize:i=10,...s})=>u.jsx(ee.Table,{...s,scroll:{x:t||"max-content",y:"50vh"},pagination:f?{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 ut=ke.createFromIconfontCN({scriptUrl:["//at.alicdn.com/t/c/font_5037819_a72xy7yjoj.js"]}),Ye=({name:t,size:f,color:i,style:s,...p})=>{const C={fontSize:f,color:i,...s};return u.jsx(ut,{...p,type:t,style:C})};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:f="暂无数据",className:i,emptyChildren:s,loadingText:p,emptyImage:C})=>t?u.jsxs(ee.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",vertical:!0,children:[u.jsx(ee.Spin,{size:"large"}),p&&u.jsx("div",{className:"mt-4 text-gray-500",children:p})]}):u.jsx(ee.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",children:u.jsx(ee.Empty,{image:C,description:f,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:f=!1,className:i,size:s="small",type:p="default"})=>u.jsx(ee.Button,{size:s,type:p,icon:u.jsx(ke.LeftOutlined,{}),className:`cursor-pointer ${i||""}`,onClick:t,children:f&&"返回"});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:f,...i})=>{const s=t?`px-0 h-auto ${f||""}`:f;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:dt}=ee.Select,Ue=({columns:t,request:f,searchFields:i=[],showSearch:s=!0,showRefresh:p=!0,defaultPageSize:C=10,pageSizeOptions:q=["10","20","50","100"],autoLoad:k=!0,externalParams:v={},...e})=>{const[T,h]=d.useState([]),[c,r]=d.useState(!1),[n,a]=d.useState({current:1,pageSize:C,total:0}),[o,y]=d.useState({}),[l,w]=d.useState({}),[_]=ee.Form.useForm(),O=d.useRef(n);O.current=n;const $=d.useRef(v);$.current=v;const F=d.useRef(!1),z=d.useMemo(()=>t.map(b=>{const{sortable:m,render:E,...N}=b;return{...N,sorter:m?!0:void 0,render:E||(A=>A)}}),[t]),I=d.useCallback(async(b={})=>{if(f){r(!0);try{const m={page:O.current.current,pageSize:O.current.pageSize,sortField:l.field,sortOrder:l.order,searchParams:{...o,...$.current},...b},E=await f(m);E.success&&(h(E.data),a(N=>({...N,total:E.total,current:m.page||N.current})))}catch(m){console.error("加载数据失败:",m)}finally{r(!1)}}},[f,l,o]),Y=d.useCallback(b=>{y(b),a(m=>({...m,current:1}))},[]),B=d.useCallback(()=>{_.resetFields(),y({}),a(b=>({...b,current:1}))},[_]),te=d.useCallback(()=>{I()},[I]),se=d.useCallback((b,m,E)=>{const N={current:b.current||1,pageSize:b.pageSize||C,total:b.total||0},A={field:E?.field,order:E?.order};a(N),w(A)},[C]);return d.useEffect(()=>{const b=Object.keys(v).length>0;(k&&!F.current||b)&&(I(),F.current=!0)},[k,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:_,layout:"inline",onFinish:Y,initialValues:i.reduce((b,m)=>(m.defaultValue!==void 0&&(b[m.key]=m.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(m=>u.jsx(dt,{value:m.value,children:m.label},m.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:B,children:"重置"}),p&&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,m)=>`第 ${m[0]}-${m[1]} 条/共 ${b} 条`,pageSizeOptions:q},onChange:se,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,f,i){if(!t.current)return;const s=new Set,p={};for(const h of f)h.exclusionGroup&&h.exclusionGroup!=="separator"&&(s.add(h.exclusionGroup),p[h.exclusionGroup]||(p[h.exclusionGroup]=[]),p[h.exclusionGroup].push({type:h.type,key:h.key,exclusionGroup:h.exclusionGroup}));const C={};for(const h of s){C[h]=!1;for(const c of p[h])if(c.type==="upload"&&c.key){if(i[c.key]!==null&&i[c.key]!==void 0){C[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){C[h]=!0;break}if(C[h])break}}const q=f.some(h=>h.exclusionGroup==="separator"),v=Object.keys(C).filter(h=>C[h]).length>0;let e=null;if(v&&q){for(const h of f)if(h.exclusionGroup&&h.exclusionGroup!=="separator"&&C[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,f,i,s){if(!t.current){s(!1);return}const p=[];for(let c=0;c<f.length;c++){const r=f[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){p.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<f.length;n++){const a=f[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){p.push({exclusionGroup:r.exclusionGroup,key:a.key,type:a.type,__index:n});break}}else for(let n=c+1;n<f.length;n++){const a=f[n];if((a.type==="variable"||a.type==="upload"||a.type==="select"||a.type==="textarea"||a.type==="richtext"||a.type==="datepicker")&&a.key){p.push({exclusionGroup:a.exclusionGroup||"",key:a.key,type:a.type,__index:n});break}}}const C=f.some(c=>c.exclusionGroup==="separator"),q=[];if(C&&p.length>1){const c=[];f.forEach((r,n)=>{r.exclusionGroup==="separator"&&c.push(n)});for(const r of c){const a=p.filter(l=>typeof l.__index=="number"&&l.__index<r).sort((l,w)=>(w.__index??0)-(l.__index??0))[0],y=p.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(p.length===0){if(f.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 k=p.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(k.length===0){s(!0);return}const v=new Set;q.forEach(c=>{c.forEach(r=>{r.key&&v.add(r.key)})});const e=k.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 _=y[l].dataset.key;_&&i[_]!=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,f){if(!t.current)return;t.current.querySelectorAll('[data-type="variable"]').forEach(s=>{const p=s.innerText;p.replace(/\u200B/g,"").trim().length===0?(p!=="​"&&(s.innerText="​"),s.classList.add("show-placeholder")):s.classList.remove("show-placeholder")})}const pt=({host:t,onChange:f})=>{const i=t.dataset.key,s=t.dataset.placeholder,p=t.dataset.options?decodeURIComponent(t.dataset.options):"[]",C=t.dataset.required==="true",q=t.dataset.value||"",k=d.useMemo(()=>{try{return JSON.parse(p)}catch{return[]}},[p]),[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?k.find(y=>y.value===v)?.label||v:s||"请选择",a=c(n),o=Math.max(64,Math.ceil(a+40));h(o)},[v,k,s]);const r=n=>{e(n),t.setAttribute("data-value",n),f(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:k,allowClear:!C,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)},ft=t=>{const[f,i]=d.useState([]);return d.useEffect(()=>{const s=t.current;if(!s)return;const p=()=>{const q=s.querySelectorAll(".rte-select-host"),k=[];q.forEach(v=>{const e=v.getAttribute("data-key");e&&k.push(u.jsx(pt,{host:v,onChange:()=>{if(t.current){const T=new Event("input",{bubbles:!0});t.current.dispatchEvent(T)}}},`select-${e}`))}),i(k)};p();const C=new MutationObserver(q=>{let k=!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){k=!0;break}}k&&p()});return C.observe(s,{childList:!0,subtree:!0}),()=>C.disconnect()},[t]),f};function yt(t,f,i,s,p,C={},q){if(!t.current)return;let k="",v=0;for(;v<f.length;){const e=f[v],T=v+1<f.length?f[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">`,_="</span>";let O="";e.className?O=`<span class="${e.className}">${e.text??""}</span>`:O=e.text??"";const $=T,F=i[$.key]!==null&&i[$.key]!==void 0,z=F?i[$.key]:null,I=F?i[$.key]?.name:$.text,Y=F?"":"hidden",B=$.tooltip&&!F?"":"hidden",te=F?"has-file":"",se=F&&I?` data-file-name="${I.replace(/"/g,"&quot;")}"`:"";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 m=($.text||"").trim(),N=F&&m.length>=12?`<span ${l} contenteditable="false" class="exclusion-wrapper upload-hint">${m}</span>`:"",A=`<span contenteditable="false" data-type="upload" data-key="${$.key}" class="upload-chip"><span class="upload-inner-wrapper ${te}"><span class="upload-icon">${b}</span><span class="upload-label"${se}>${I||$.text}</span>${$.tooltip?`<i contenteditable="false" class="iconfont icon-tishi upload-info-icon ${B}" data-upload-key="${$.key}" data-tooltip="${$.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${Y}" title="移除文件">×</span></span></span>`;k+=w+O+A+_+N,v+=2;continue}if(y){const w=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group">`,_="</span>";let O="";e.className?O=`<span class="${e.className}">${e.text??""}</span>`:O=e.text??"";const $=T,z=($.key?p[$.key]:void 0)||$.text||"",I=!z,Y=I?"​":z,B=I?"show-placeholder":"",te=$.exclusionGroup?` data-group="${$.exclusionGroup}"`:"",se=$.tooltip?` data-tooltip="${$.tooltip.replace(/"/g,"&quot;")}" data-variable-key="${$.key||""}"`:"",b=$.tooltip&&I?"":"hidden",m=`<span contenteditable="true" data-type="variable" data-key="${$.key}" data-placeholder="${$.placeholder||""}"${te}${se} class="variable-chip ${B}">${Y}${$.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${b}" data-variable-key="${$.key}" data-tooltip="${$.tooltip.replace(/"/g,"&quot;")}" title="提示"></i>`:""}</span>`;k+=w+O+m+_,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,"&quot;")}" 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=p[e.key]||e.text||"",l=!y,w=l?"​":y,_=l?"show-placeholder":"",O=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",$=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,"&quot;")}" 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||""}"${O}${$} class="variable-chip ${_}">${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,"&quot;")}" 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"&&e.maxCount>1){const y=e.minCount||1,l=e.maxCount||3;let w=0;for(let $=0;$<l;$++){const F=`${e.key}-${$}`;i[F]!=null&&(w+=1)}const _=Math.min(l,Math.max(y,w+(w<l?1:0)));let O="";for(let $=0;$<_;$++){const F=`${e.key}-${$}`,z=i[F]!==null&&i[F]!==void 0,I=z?i[F]:null,Y=z?i[F]?.name:e.text,B=z?"":"hidden",te=e.tooltip&&!z?"":"hidden",se=z?"has-file":"",b=z&&Y?` data-file-name="${Y.replace(/"/g,"&quot;")}"`:"";let m="";z&&I?I.type?.startsWith("image/")?m=`<img class="upload-icon-img upload-icon-preview" src="${URL.createObjectURL(I)}" alt="preview" />`:m="<i class='iconfont icon-exlwenjian'></i>":m="<i class='iconfont icon-shangchuan1'></i>";const E=` data-batch-key="${e.key}"`,N=` data-batch-index="${$}"`,A=`<span contenteditable="false" data-type="upload" data-key="${F}"${E}${N} class="upload-chip upload-chip-batch"><span class="upload-inner-wrapper ${se}"><span class="upload-icon">${m}</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 ${B}" title="移除文件">×</span></span></span>`;O+=A}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">${O}</span></span>`:a=O}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,_=y?"":"hidden",O=e.tooltip&&!y?"":"hidden",$=y?"has-file":"",F=y&&w?` data-file-name="${w.replace(/"/g,"&quot;")}"`:"";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=(e.text||"").trim(),B=y&&I.length>=12?`<span ${c} contenteditable="false" class="exclusion-wrapper upload-hint">${I}</span>`:"",te=`<span contenteditable="false" data-type="upload" data-key="${e.key}" class="upload-chip"><span class="upload-inner-wrapper ${$}"><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 ${O}" data-upload-key="${e.key}" data-tooltip="${e.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${_}" 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>${te}</span>${B}`:a=te+B}else if(e.type==="select"&&e.key){const o=p[e.key]||e.defaultValue||"",y=encodeURIComponent(JSON.stringify(e.options||[])),l=e.placeholder?` data-placeholder="${e.placeholder}"`:"",w=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",_=e.required?' data-required="true"':"",O=`<div data-type="select" data-key="${e.key}" data-value="${o}" data-options="${y}"${l}${w}${_} 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>${O}</span>`:a=O}else if(e.type==="textarea"&&e.key){const o=p[e.key]||"",y=e.maxHeight||252,l=e.expandable!==!1,w=e.placeholder?` placeholder="${e.placeholder}"`:"",_=`<textarea data-type="textarea" data-key="${e.key}" class="rte-textarea" data-max-height="${y}" style="max-height:${y}px;"${w}>${o}</textarea>`,O=l?`<button type="button" class="rte-textarea-toggle" data-key="${e.key}" data-expanded="false">展开</button>`:"",$=`<div class="rte-textarea-wrapper" data-key="${e.key}">${_}${O}</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>${$}</span>`:a=$}else if(e.type==="richtext"&&e.key){const o=p[e.key]||e.text||"",y=typeof e.minHeight=="number"?e.minHeight:40,l=typeof e.maxHeight=="number"?e.maxHeight:160,w=Math.max(l,y),_=e.placeholder?` data-placeholder="${e.placeholder}"`:"",O=e.expandable!==!1,$=o,F=`<div contenteditable="true" data-type="richtext" data-key="${e.key}" class="rte-richtext"${_} style="min-height:${y}px;max-height:${w}px;overflow:auto;">${$}</div>`,z=O?`<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>`:"",I=`<div class="rte-richtext-wrapper" data-key="${e.key}">${F}${z}</div>`,Y=`<div class="rte-richtext-container" data-key="${e.key}">${I}</div>`;e.required?a=`<div ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper rte-richtext-required">${Y}</div>`:a=Y}else if(e.type==="datepicker"&&e.key){const o=p[e.key]||"",y=e.placeholder?` data-placeholder="${e.placeholder}"`:"",l=e.limitRange?` data-limit-range="${e.limitRange}"`:"",w=e.disableFuture?' data-disable-future="true"':"",_=`<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>${_}</span>`:a=_}else if(e.type==="multi-variable"&&e.key){const o=e.maxCount||9,y=C[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>`,_=e.exclusionGroup?`data-group="${e.exclusionGroup}"`:"";let O="";for(let $=0;$<l;$++){const F=`${e.key}_${$}`,z=p[F]||"",I=!z,Y=I?"​":z,B=I?"show-placeholder":"",te=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,"&quot;")}" data-variable-key="${e.key||""}"`:"",se=e.tooltip&&I?"":"hidden",b=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",m=`<span contenteditable="true" data-type="variable" data-key="${F}" data-multi-key="${e.key}" data-index="${$}" data-placeholder="${e.placeholder||""}"${b}${te} class="variable-chip ${B}">${Y}${e.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${se}" data-variable-key="${e.key}" data-tooltip="${e.tooltip.replace(/"/g,"&quot;")}" title="提示"></i>`:""}</span>`;$===0?O+=`<span ${_} class="exclusion-wrapper required-upload-group required-multi-first">${w}${m}</span>`:O+=m}a=O}else{let w="";for(let _=0;_<l;_++){const O=`${e.key}_${_}`,$=p[O]||"",F=!$,z=F?"​":$,I=F?"show-placeholder":"",Y=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,"&quot;")}" data-variable-key="${e.key||""}"`:"",B=e.tooltip&&F?"":"hidden",te=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",se=`<span contenteditable="true" data-type="variable" data-key="${O}" data-multi-key="${e.key}" data-index="${_}" data-placeholder="${e.placeholder||""}"${te}${Y} class="variable-chip ${I}">${z}${e.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${B}" data-variable-key="${e.key}" data-tooltip="${e.tooltip.replace(/"/g,"&quot;")}" title="提示"></i>`:""}</span>`;w+=se}a=w}}k+=r+a+n,v++}t.current&&(t.current.innerHTML=k,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 mt(t,f,i,s,p={},C,q,k){const v=d.useCallback(()=>{if(!t.current)return;if(f.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)}})),yt(t,f,i,s,e,p,k),C?.current){const{key:c,offset:r}=C.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 _=o.currentNode,O=_.textContent?.length||0;if(y+O>=r){l=_,w=r-y;break}y+=O}if(l){a.setStart(l,Math.min(w,l.textContent?.length||0)),a.collapse(!0);const _=window.getSelection();_&&(_.removeAllRanges(),_.addRange(a),n.focus())}else{a.selectNodeContents(n),a.collapse(!1);const _=window.getSelection();_&&(_.removeAllRanges(),_.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())}C.current=null}},0)}},[f,i,s,t,p,C,q,k]);d.useEffect(()=>{v()},[v])}function ht(t,f,i,s){d.useEffect(()=>{const p=t.current;if(!p)return;const C=k=>{const v=k.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=k.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=k=>{const v=k.target?.closest(".upload-info-icon"),e=k.relatedTarget;if(v&&v.classList.contains("upload-info-icon")){!e||!p.contains(e)?s(null):e.closest(".upload-info-icon")||s(null);return}const T=k.target?.closest('[data-type="upload"]');if(T){const h=e;if(h&&T.contains(h))return;s(null)}};return p.addEventListener("mouseover",C,!0),p.addEventListener("mouseout",q,!0),()=>{p.removeEventListener("mouseover",C,!0),p.removeEventListener("mouseout",q,!0)}},[f,i,t,s])}function gt(t,f,i,s){d.useEffect(()=>{if(!t.current)return;const p=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"})},C=()=>{i(null)};let q;const k=()=>{if(!t.current)return;t.current.querySelectorAll(".tag-node[data-tooltip]").forEach(e=>{e.addEventListener("mouseenter",p),e.addEventListener("mouseleave",C)})};return q=requestAnimationFrame(()=>{q=requestAnimationFrame(k)}),()=>{cancelAnimationFrame(q),t.current&&t.current.querySelectorAll(".tag-node[data-tooltip]").forEach(e=>{e.removeEventListener("mouseenter",p),e.removeEventListener("mouseleave",C)})}},[f,t,i,s])}function bt(t,f,i){d.useEffect(()=>{const s=t.current;if(!s)return;const p=q=>{const k=q.target?.closest(".variable-info-icon");if(k&&k.classList.contains("variable-info-icon")){const v=k.dataset.variableKey;v&&i({key:v,anchorEl:k,type:"variable"})}},C=q=>{const k=q.target?.closest(".variable-info-icon"),v=q.relatedTarget;k&&k.classList.contains("variable-info-icon")&&(!v||!s.contains(v)?i(null):v.closest(".variable-info-icon")||i(null))};return s.addEventListener("mouseover",p,!0),s.addEventListener("mouseout",C,!0),()=>{s.removeEventListener("mouseover",p,!0),s.removeEventListener("mouseout",C,!0)}},[f,t,i])}function vt(t,f,i,s){d.useEffect(()=>{if(!t.current)return;const p=v=>{const e=v.currentTarget;e.dataset.fileName&&s({key:"",anchorEl:e,type:"upload-label"})},C=()=>{s(null)};let q;const k=()=>{if(!t.current)return;t.current.querySelectorAll(".upload-label[data-file-name]").forEach(e=>{e.addEventListener("mouseenter",p),e.addEventListener("mouseleave",C)})};return q=requestAnimationFrame(()=>{q=requestAnimationFrame(k)}),()=>{cancelAnimationFrame(q),t.current&&t.current.querySelectorAll(".upload-label[data-file-name]").forEach(e=>{e.removeEventListener("mouseenter",p),e.removeEventListener("mouseleave",C)})}},[f,i,t,s])}function xt(t,f,i,s){d.useEffect(()=>{const p=t.current;if(!p)return;const C=()=>{Ie(t,f,i),Pe(t,f,i,s)},q=setTimeout(C,0),k=()=>{setTimeout(C,0)},v=()=>{setTimeout(C,0)};return p.addEventListener("input",k,!0),p.addEventListener("blur",v,!0),()=>{clearTimeout(q),p.removeEventListener("input",k,!0),p.removeEventListener("blur",v,!0)}},[i,f,t,s])}function kt(t,f){const i=d.useRef(0),s=d.useRef(0);d.useEffect(()=>{if(!t.current)return;let p=!1,C=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,k=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=>{p=!0,q(l.target)&&(i.current=Date.now(),console.log("[SelectionCtrl] mousedown on datepicker target")),k(l.target)&&(s.current=Date.now(),console.log("[SelectionCtrl] mousedown on select target"))},e=()=>{p=!1,C=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")),k(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||f.current||p||T||Date.now()-h<500)return;const _=w.getRangeAt(0);if(!_.collapsed)return t.current.contains(_.commonAncestorContainer),void 0;const O=w.anchorNode;if(!O||!t.current.contains(O))return;let $=!1,F=!1;if(O.nodeType===Node.ELEMENT_NODE){const I=O;(I.closest('[data-type="datepicker"]')||I.closest(".rte-datepicker-wrapper")||I.closest(".rte-datepicker-host"))&&($=!0),(I.closest('[data-type="select"]')||I.closest(".rte-select-wrapper")||I.closest(".rte-select-host"))&&(F=!0)}else if(O.parentElement){const I=O.parentElement;(I.closest('[data-type="datepicker"]')||I.closest(".rte-datepicker-wrapper")||I.closest(".rte-datepicker-host"))&&($=!0),(I.closest('[data-type="select"]')||I.closest(".rte-select-wrapper")||I.closest(".rte-select-host"))&&(F=!0)}if($||F)return;let z=null;if(O.nodeType===Node.ELEMENT_NODE?z=O.closest('[data-type="variable"]'):O.nodeType===Node.TEXT_NODE&&O.parentElement&&(z=O.parentElement.closest('[data-type="variable"]')),!z){if(Date.now()-C>500)return;const I=t.current.querySelectorAll('[data-type="variable"]');if(I.length>0){let Y=null;for(const B of Array.from(I))if(B.style.display!=="none"){Y=B;break}if(!Y&&I.length>0&&(Y=I[0]),Y){const B=document.createRange();B.selectNodeContents(Y),B.collapse(!1),w.removeAllRanges(),w.addRange(B),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,f])}function wt(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Te={exports:{}},Et=Te.exports,Xe;function Je(){return Xe||(Xe=1,function(t,f){(function(i,s){t.exports=s()})(Et,function(){var i=1e3,s=6e4,p=36e5,C="millisecond",q="second",k="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 m=["th","st","nd","rd"],E=b%100;return"["+b+(m[(E-20)%10]||m[E]||m[0])+"]"}},w=function(b,m,E){var N=String(b);return!N||N.length>=m?b:""+Array(m+1-N.length).join(E)+b},_={s:w,z:function(b){var m=-b.utcOffset(),E=Math.abs(m),N=Math.floor(E/60),A=E%60;return(m<=0?"+":"-")+w(N,2,"0")+":"+w(A,2,"0")},m:function b(m,E){if(m.date()<E.date())return-b(E,m);var N=12*(E.year()-m.year())+(E.month()-m.month()),A=m.clone().add(N,h),X=E-A<0,J=m.clone().add(N+(X?-1:1),h);return+(-(N+(E-A)/(X?A-J:J-A))||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:k,s:q,ms:C,Q:c}[b]||String(b||"").toLowerCase().replace(/s$/,"")},u:function(b){return b===void 0}},O="en",$={};$[O]=l;var F="$isDayjsObject",z=function(b){return b instanceof te||!(!b||!b[F])},I=function b(m,E,N){var A;if(!m)return O;if(typeof m=="string"){var X=m.toLowerCase();$[X]&&(A=X),E&&($[X]=E,A=X);var J=m.split("-");if(!A&&J.length>1)return b(J[0])}else{var ae=m.name;$[ae]=m,A=ae}return!N&&A&&(O=A),A||!N&&O},Y=function(b,m){if(z(b))return b.clone();var E=typeof m=="object"?m:{};return E.date=b,E.args=arguments,new te(E)},B=_;B.l=I,B.i=z,B.w=function(b,m){return Y(b,{locale:m.$L,utc:m.$u,x:m.$x,$offset:m.$offset})};var te=function(){function b(E){this.$L=I(E.locale,null,!0),this.parse(E),this.$x=this.$x||E.x||{},this[F]=!0}var m=b.prototype;return m.parse=function(E){this.$d=function(N){var A=N.date,X=N.utc;if(A===null)return new Date(NaN);if(B.u(A))return new Date;if(A instanceof Date)return new Date(A);if(typeof A=="string"&&!/Z$/i.test(A)){var J=A.match(o);if(J){var ae=J[2]-1||0,ie=(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,ie)):new Date(J[1],ae,J[3]||1,J[4]||0,J[5]||0,J[6]||0,ie)}}return new Date(A)}(E),this.init()},m.init=function(){var E=this.$d;this.$y=E.getFullYear(),this.$M=E.getMonth(),this.$D=E.getDate(),this.$W=E.getDay(),this.$H=E.getHours(),this.$m=E.getMinutes(),this.$s=E.getSeconds(),this.$ms=E.getMilliseconds()},m.$utils=function(){return B},m.isValid=function(){return this.$d.toString()!==a},m.isSame=function(E,N){var A=Y(E);return this.startOf(N)<=A&&A<=this.endOf(N)},m.isAfter=function(E,N){return Y(E)<this.startOf(N)},m.isBefore=function(E,N){return this.endOf(N)<Y(E)},m.$g=function(E,N,A){return B.u(E)?this[N]:this.set(A,E)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(E,N){var A=this,X=!!B.u(N)||N,J=B.p(E),ae=function(me,ye){var ve=B.w(A.$u?Date.UTC(A.$y,ye,me):new Date(A.$y,ye,me),A);return X?ve:ve.endOf(e)},ie=function(me,ye){return B.w(A.toDate()[me].apply(A.toDate("s"),(X?[0,0,0,0]:[23,59,59,999]).slice(ye)),A)},re=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=(re<Q?re+7:re)-Q;return ae(X?fe-de:fe+(6-de),pe);case e:case n:return ie(be+"Hours",0);case v:return ie(be+"Minutes",1);case k:return ie(be+"Seconds",2);case q:return ie(be+"Milliseconds",3);default:return this.clone()}},m.endOf=function(E){return this.startOf(E,!1)},m.$set=function(E,N){var A,X=B.p(E),J="set"+(this.$u?"UTC":""),ae=(A={},A[e]=J+"Date",A[n]=J+"Date",A[h]=J+"Month",A[r]=J+"FullYear",A[v]=J+"Hours",A[k]=J+"Minutes",A[q]=J+"Seconds",A[C]=J+"Milliseconds",A)[X],ie=X===e?this.$D+(N-this.$W):N;if(X===h||X===r){var re=this.clone().set(n,1);re.$d[ae](ie),re.init(),this.$d=re.set(n,Math.min(this.$D,re.daysInMonth())).$d}else ae&&this.$d[ae](ie);return this.init(),this},m.set=function(E,N){return this.clone().$set(E,N)},m.get=function(E){return this[B.p(E)]()},m.add=function(E,N){var A,X=this;E=Number(E);var J=B.p(N),ae=function(pe){var fe=Y(X);return B.w(fe.date(fe.date()+Math.round(pe*E)),X)};if(J===h)return this.set(h,this.$M+E);if(J===r)return this.set(r,this.$y+E);if(J===e)return ae(1);if(J===T)return ae(7);var ie=(A={},A[k]=s,A[v]=p,A[q]=i,A)[J]||1,re=this.$d.getTime()+E*ie;return B.w(re,this)},m.subtract=function(E,N){return this.add(-1*E,N)},m.format=function(E){var N=this,A=this.$locale();if(!this.isValid())return A.invalidDate||a;var X=E||"YYYY-MM-DDTHH:mm:ssZ",J=B.z(this),ae=this.$H,ie=this.$m,re=this.$M,pe=A.weekdays,fe=A.months,be=A.meridiem,Q=function(ye,ve,Ee,$e){return ye&&(ye[ve]||ye(N,X))||Ee[ve].slice(0,$e)},de=function(ye){return B.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(N.$y).slice(-2);case"YYYY":return B.s(N.$y,4,"0");case"M":return re+1;case"MM":return B.s(re+1,2,"0");case"MMM":return Q(A.monthsShort,re,fe,3);case"MMMM":return Q(fe,re);case"D":return N.$D;case"DD":return B.s(N.$D,2,"0");case"d":return String(N.$W);case"dd":return Q(A.weekdaysMin,N.$W,pe,2);case"ddd":return Q(A.weekdaysShort,N.$W,pe,3);case"dddd":return pe[N.$W];case"H":return String(ae);case"HH":return B.s(ae,2,"0");case"h":return de(1);case"hh":return de(2);case"a":return me(ae,ie,!0);case"A":return me(ae,ie,!1);case"m":return String(ie);case"mm":return B.s(ie,2,"0");case"s":return String(N.$s);case"ss":return B.s(N.$s,2,"0");case"SSS":return B.s(N.$ms,3,"0");case"Z":return J}return null}(ye)||J.replace(":","")})},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(E,N,A){var X,J=this,ae=B.p(N),ie=Y(E),re=(ie.utcOffset()-this.utcOffset())*s,pe=this-ie,fe=function(){return B.m(J,ie)};switch(ae){case r:X=fe()/12;break;case h:X=fe();break;case c:X=fe()/3;break;case T:X=(pe-re)/6048e5;break;case e:X=(pe-re)/864e5;break;case v:X=pe/p;break;case k:X=pe/s;break;case q:X=pe/i;break;default:X=pe}return A?X:B.a(X)},m.daysInMonth=function(){return this.endOf(h).$D},m.$locale=function(){return $[this.$L]},m.locale=function(E,N){if(!E)return this.$L;var A=this.clone(),X=I(E,N,!0);return X&&(A.$L=X),A},m.clone=function(){return B.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},b}(),se=te.prototype;return Y.prototype=se,[["$ms",C],["$s",q],["$m",k],["$H",v],["$W",e],["$M",h],["$y",r],["$D",n]].forEach(function(b){se[b[1]]=function(m){return this.$g(m,b[0],b[1])}}),Y.extend=function(b,m){return b.$i||(b(m,te,Y),b.$i=!0),Y},Y.locale=I,Y.isDayjs=z,Y.unix=function(b){return Y(1e3*b)},Y.en=$[O],Y.Ls=$,Y.p={},Y})}(Te)),Te.exports}var $t=Je();const qe=wt($t);var Ne={exports:{}},Ct=Ne.exports,Qe;function St(){return Qe||(Qe=1,function(t,f){(function(i,s){t.exports=s(Je())})(Ct,function(i){function s(q){return q&&typeof q=="object"&&"default"in q?q:{default:q}}var p=s(i),C={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,k){return k==="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,k){var v=100*q+k;return v<600?"凌晨":v<900?"早上":v<1100?"上午":v<1300?"中午":v<1800?"下午":"晚上"}};return p.default.locale(C,null,!0),C})}(Ne)),Ne.exports}St();function Se(t){"@babel/helpers - typeof";return Se=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(f){return typeof f}:function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f},Se(t)}function Tt(t,f){if(Se(t)!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var s=i.call(t,f);if(Se(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(f==="string"?String:Number)(t)}function qt(t){var f=Tt(t,"string");return Se(f)=="symbol"?f:f+""}function Nt(t,f,i){return(f=qt(f))in t?Object.defineProperty(t,f,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[f]=i,t}function Ze(t,f){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);f&&(s=s.filter(function(p){return Object.getOwnPropertyDescriptor(t,p).enumerable})),i.push.apply(i,s)}return i}function Re(t){for(var f=1;f<arguments.length;f++){var i=arguments[f]!=null?arguments[f]:{};f%2?Ze(Object(i),!0).forEach(function(s){Nt(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 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="确定",qe.locale("zh-cn");const{RangePicker:Mt}=ee.DatePicker,Dt=({host:t,onChange:f})=>{const i=t.dataset.key,s=t.dataset.value,p=t.dataset.placeholder,C=t.dataset.limitRange?parseInt(t.dataset.limitRange,10):void 0,q=t.dataset.disableFuture==="true",[k,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:!C||!e||!e[0]?!1:Math.abs(a.diff(e[0],"days"))>C:!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),f(i,o)}else t.setAttribute("data-value",""),f(i,"")},n=a=>{console.log("[DatePicker] onOpenChange",a),T(a?k:null)};return De.createPortal(u.jsx("div",{className:"rte-datepicker-wrapper",contentEditable:!1,style:{display:"inline-block",verticalAlign:"middle",width:"240px"},children:u.jsx(Mt,{value:k,disabledDate:h,onCalendarChange:c,onChange:r,onOpenChange:n,placeholder:[p||"开始日期",p||"结束日期"],style:{width:"100%"},size:"small",allowClear:!0,locale:et,getPopupContainer:()=>document.body,popupClassName:"rte-datepicker-dropdown"})}),t)},It=t=>{const[f,i]=d.useState([]);return d.useEffect(()=>{const s=t.current;if(!s)return;const p=()=>{const q=s.querySelectorAll(".rte-datepicker-host"),k=[];q.forEach(v=>{const e=v.getAttribute("data-key");e&&k.push(u.jsx(Dt,{host:v,onChange:()=>{if(t.current){const T=new Event("input",{bubbles:!0});t.current.dispatchEvent(T)}}},`datepicker-${e}`))}),i(k)};p();const C=new MutationObserver(q=>{let k=!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){k=!0;break}}k&&p()});return C.observe(s,{childList:!0,subtree:!0}),()=>C.disconnect()},[t]),f},tt=({config:t,onSend:f,isProcessing:i=!1,disabled:s=!1,width:p,lockStructure:C=!1,agentOptions:q=[],onAgentSelect:k,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),[_,O]=d.useState(null),[$,F]=d.useState(null),z=d.useRef(!1),I=d.useRef(null),[Y,B]=d.useState(!1),te=d.useRef(null),[se,b]=d.useState(!0),m=d.useRef(0),[E,N]=d.useState(()=>{const x={};return t.forEach(g=>{g.type==="multi-variable"&&g.key&&(x[g.key]=1)}),x}),A=d.useRef({}),X=d.useRef({}),J=d.useRef({});d.useEffect(()=>{X.current=o},[o]),d.useEffect(()=>{J.current=E},[E]);const ae=d.useCallback(x=>x.find(S=>S.type==="tag")?.text||null,[]),ie=d.useRef(t),re=d.useRef(null);d.useEffect(()=>{const x=ae(ie.current),g=ae(t);if(x&&x!==g&&n.current){const S={};n.current.querySelectorAll('[data-type="variable"]').forEach(M=>{const K=M.dataset.key;if(K){const V=M.innerText.replace(/[\u200B\n]/g,"").trim();V&&(S[K]=V)}}),n.current.querySelectorAll('[data-type="select"]').forEach(M=>{const K=M.dataset.key;if(K){const V=(M.getAttribute("data-value")||"").trim();V&&(S[K]=V)}}),n.current.querySelectorAll('[data-type="textarea"]').forEach(M=>{const K=M.dataset.key;if(K){const V=M.value.replace(/[\u200B]/g,"").trim();V&&(S[K]=V)}}),A.current[x]={variableValues:S,files:{...X.current},multiVariableCounts:{...J.current}}}if(g&&A.current[g]){const S=A.current[g];re.current=S,y(S.files),N(S.multiVariableCounts)}else if(g){re.current=null;const S={};t.forEach(H=>{H.type==="multi-variable"&&H.key&&(S[H.key]=1)}),N(S),y({})}else re.current=null,N({}),y({});ie.current=t},[t,ae]),d.useLayoutEffect(()=>{re.current&&n.current&&(n.current.__tempVariableValues=re.current.variableValues,setTimeout(()=>{re.current&&(re.current=null)},0))}),mt(n,t,o,C,E,te,void 0,r),ht(n,t,o,F),gt(n,t,F,r),vt(n,t,o,F),bt(n,t,F),xt(n,t,o,B),kt(n,z);const pe=ft(n);d.useEffect(()=>{if(!n.current)return;n.current.querySelectorAll(".rte-richtext-toggle").forEach(g=>{const S=g.getAttribute("data-expanded")==="true";g.innerHTML=S?'<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 fe=It(n);d.useEffect(()=>{if(t.length>0){b(!1);return}const x=()=>{if(!n.current){b(!0);return}const S=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"",H=n.current.querySelectorAll('[data-type="variable"]'),L=n.current.querySelectorAll('[data-type="upload"]');let P=!1;H.forEach(K=>{(K.textContent?.replace(/[\u200B\n]/g,"").trim()||"")&&(P=!0)}),L.forEach(K=>{K.querySelector(".upload-inner-wrapper.has-file")&&(P=!0)});const M=!S&&!P;b(M),t.length===0&&B(!M)};x();const g=new MutationObserver(x);return n.current&&g.observe(n.current,{childList:!0,subtree:!0,characterData:!0}),()=>{g.disconnect()}},[t]);const be=x=>{if(s){x.preventDefault();return}x.preventDefault();const g=x.clipboardData.getData("text/plain"),S=window.getSelection();if(S&&S.rangeCount>0){const H=S.anchorNode;if(H){let L=null;if(H.nodeType===Node.ELEMENT_NODE?L=H.closest('[data-type="variable"]'):H.nodeType===Node.TEXT_NODE&&H.parentElement&&(L=H.parentElement.closest('[data-type="variable"]')),L){const P=L.dataset.multiKey;if(P){const M=/[、,,\s\n\r\t]+/,K=g.split(M).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(L.dataset.index||"0",10),j=t.find(oe=>oe.type==="multi-variable"&&oe.key===P)?.maxCount||9,U=E[P]||1,D=Math.min(V+K.length,j);D>U&&N(R=>({...R,[P]:D}));const W=[];for(let R=0;R<U;R++){const oe=`${P}_${R}`,ue=n.current.querySelector(`[data-type="variable"][data-key="${oe}"][data-multi-key="${P}"]`);if(ue){const he=ue.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,ue=R.dataset.multiKey;if(oe&&ue!==P){const he=R.innerText.replace(/[\u200B\n]/g,"").trim();he&&(ne[oe]=he)}}),n.current.__tempVariableValues=ne,N(R=>({...R,[P]:G})),console.log("[Paste Event] 粘贴完成,已填充到多个输入框,值:",Z);return}else K.length===1&&console.log("[Paste Event] 粘贴单个值,将在失去焦点时检查是否需要拆分")}}}}document.execCommand("insertText",!1,g),lt(),setTimeout(()=>{const H=window.getSelection();if(H&&H.rangeCount>0){const L=H.anchorNode;if(L){let P=null;if(L.nodeType===Node.ELEMENT_NODE?P=L.closest('[data-type="variable"][data-multi-key]'):L.nodeType===Node.TEXT_NODE&&L.parentElement&&(P=L.parentElement.closest('[data-type="variable"][data-multi-key]')),P){const M=P.innerText.replace(/[\u200B\n]/g,"").trim();/[、,,\s]+/.test(M)&&(console.log("[Paste Event] 粘贴后检测到分隔符,内容:",M),console.log("[Paste Event] 提示:失去焦点后将自动拆分"))}}}},0)},Q=x=>{if(!x.target.files){x.target&&(x.target.value=""),w(null),O(null);return}if(_&&x.target.files&&x.target.files.length>0){const g=_,S=t.find(H=>H.type==="upload"&&H.key===g);if(S&&typeof S.maxCount=="number"&&typeof S.minCount=="number"){const H=S.maxCount,L=Array.from(x.target.files);let P=0;y(M=>{for(let U=0;U<H;U++){const D=`${g}-${U}`;M[D]&&(P=U+1)}const K=H-P,V=L.slice(0,K),j={...M};return V.forEach((U,D)=>{const W=`${g}-${P+D}`;j[W]=U}),j})}}else if(l&&x.target.files[0]){const g=x.target.files[0],S=l;y(H=>({...H,[S]:g}))}x.target&&(x.target.value=""),w(null),O(null)},de=x=>{y(g=>{const S={...g};return delete S[x],S})},me=x=>{const g=x.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(x.preventDefault(),x.stopPropagation(),C)return;F(null),v?v():n.current&&(n.current.innerHTML="",n.current.focus());return}if(C){const L=g.closest(".tag-node"),P=g.closest('[data-type="text"]');if(L||P){x.preventDefault(),x.stopPropagation();const M=window.getSelection();M&&M.removeAllRanges();return}}g.closest('[data-type="variable"]')||(I.current={x:x.clientX,y:x.clientY},z.current=!1,g.closest(".file-remove-btn")&&(x.preventDefault(),x.stopPropagation()))},ye=x=>{if(!x.target.closest('[data-type="variable"]')&&I.current){const H=Math.abs(x.clientX-I.current.x),L=Math.abs(x.clientY-I.current.y);(H>3||L>3)&&(z.current=!0)}},ve=x=>{if(x.target.closest('[data-type="variable"]')){I.current=null,z.current=!1;return}I.current=null,z.current=!1},Ee=x=>{if(s)return;const g=x.target;if(g.closest('[data-type="datepicker"]'))return;if(g.closest(".tag-close-btn")){x.preventDefault(),x.stopPropagation();return}if(t.length===0)return;const L=(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){x.preventDefault(),x.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 ce=W.dataset.maxHeight||"252";W.style.maxHeight=`${ce}px`,W.style.height="auto"}n.current&&(G?n.current.classList.add("rte-overlay-active"):n.current.classList.remove("rte-overlay-active"));return}const M=g.closest(".rte-richtext-toggle");if(M){x.preventDefault(),x.stopPropagation();const D=M.closest(".rte-richtext-wrapper"),W=D?.querySelector('[data-type="richtext"]'),G=!(M.getAttribute("data-expanded")==="true");((oe,ue)=>{oe.setAttribute("data-expanded",String(ue)),oe.innerHTML=ue?'<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>'})(M,G);const ce=D?.closest(".rte-richtext-required");ce?ce.classList.toggle("rte-richtext-expanded",G):D&&D.classList.toggle("rte-richtext-expanded",G);const R=D?.closest(".exclusion-wrapper")||D?.parentElement;if(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),L(R,G)),n.current)if(n.current.classList.toggle("rte-richtext-fullscreen-active",G),G)m.current=n.current.scrollTop||0,setTimeout(()=>{n.current&&(n.current.scrollTop=0,n.current.scrollLeft=0)},0);else{const oe=m.current||0;setTimeout(()=>{n.current&&(n.current.scrollTop=oe)},0)}return}if(g.closest('[data-type="text"]')){x.preventDefault(),x.stopPropagation();const D=window.getSelection();D&&D.removeAllRanges();return}if(C&&g.closest(".tag-node")){x.preventDefault(),x.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){x.preventDefault(),x.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(ce=>{const R={...ce},oe=[];for(let ue=0;ue<ne;ue++){const he=`${Z}-${ue}`,xe=R[he];xe!=null&&he!==W&&oe.push(xe)}for(let ue=0;ue<ne;ue++)delete R[`${Z}-${ue}`];return oe.forEach((ue,he)=>{R[`${Z}-${he}`]=ue}),R})}else de(W)}else de(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 ce=0;ce<G;ce++)o[`${W}-${ce}`]!=null&&(ne+=1);ne<G&&a.current?(a.current.multiple=!0,O(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}},$e=x=>{const S=x.target.closest('[data-type="variable"]');if(S){const H=window.getSelection();if(H){const L=document.createRange(),P=S.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=S.firstChild;j&&j.nodeType===Node.TEXT_NODE?(L.setStart(j,K),L.setEnd(j,V)):L.selectNodeContents(S)}else L.selectNodeContents(S),L.collapse(!0);H.removeAllRanges(),H.addRange(L)}}},lt=()=>{if(t.length===0){if(n.current){const S=!(n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"");b(S),B(!S)}return}if(Ve(n),n.current&&n.current.querySelectorAll('[data-type="variable"]').forEach(S=>{const H=S.querySelector(".variable-info-icon");if(H){let L=!1;const P=document.createTreeWalker(S,NodeFilter.SHOW_TEXT,{acceptNode:M=>H.contains(M)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT});for(;P.nextNode();)if(P.currentNode.textContent?.replace(/[\u200B\n]/g,"").trim()){L=!0;break}L?H.classList.add("hidden"):H.classList.remove("hidden")}}),Ie(n,t,o),Pe(n,t,o,B),!n.current)return;t.filter(g=>g.type==="multi-variable"&&g.key).forEach(g=>{if(!g.key)return;const S=g.maxCount||9,H=E[g.key]||1,L=[];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();L.push(W)}}const M=(L[L.length-1]||"")==="";let K=!1,V=-1;for(let j=0;j<L.length-1;j++)if(L[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,ce=ne.nodeType===Node.ELEMENT_NODE?ne.closest('[data-type="variable"][data-multi-key]'):ne.parentElement?.closest('[data-type="variable"][data-multi-key]');if(ce){const R=ce.dataset.key;if(R){const oe=document.createRange();oe.setStartBefore(ce),oe.setEnd(G.startContainer,G.startOffset);const ue=oe.toString().length;te.current={key:R,offset:ue}}}}const U=[...L];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(M?U.length:U.length+1,1);n.current.querySelectorAll('[data-type="variable"]').forEach(G=>{const ne=G.dataset.key,ce=G.dataset.multiKey;if(ne&&ce!==g.key){const R=G.innerText.replace(/[\u200B\n]/g,"").trim();R&&(D[ne]=R)}}),n.current.__tempVariableValues=D,N(G=>({...G,[g.key]:W}));return}if(!M){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<S){const Z=window.getSelection();if(Z&&Z.rangeCount>0){const G=Z.getRangeAt(0),ne=G.startContainer,ce=ne.nodeType===Node.ELEMENT_NODE?ne.closest('[data-type="variable"][data-multi-key]'):ne.parentElement?.closest('[data-type="variable"][data-multi-key]');if(ce){const R=ce.dataset.key;if(R){const oe=document.createRange();oe.setStartBefore(ce),oe.setEnd(G.startContainer,G.startOffset);const ue=oe.toString().length;te.current={key:R,offset:ue}}}}N(G=>({...G,[g.key]:H+1}))}}})};d.useLayoutEffect(()=>{const x=n.current;if(!x)return;const g=new Map,S=P=>{const M=P.target,K=P.relatedTarget;!M||!n.current||!n.current.contains(M)||K&&n.current.contains(K)||setTimeout(()=>{if(n.current){if(t.length===0){const V=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"";B(V.length>0);return}Ve(n),Ie(n,t,o),Pe(n,t,o,B)}},0)};x.addEventListener("blur",S,!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]'),M=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,ue)=>{(ue===j||ue.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 ce=j.innerText.replace(/[\u200B\n]/g,"").trim();console.log("[Blur Event] 失去焦点的 multi-variable 输入框:",{multiKey:D,currentKey:W,index:Z,content:ce});const R=/[、,,\s]+/;if(R.test(ce)){const oe=ce.split(R).map(xe=>xe.trim()).filter(xe=>xe.length>0);console.log("[Blur Event] 拆分前的内容:",ce),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=E[D]||1,it=parseInt(Z,10),ct=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] 当前索引:",it),console.log("[Blur Event] 要插入的值:",he),_e.splice(it,1,...he);const we=_e.slice(0,ct);console.log("[Blur Event] 拆分后的所有值:",we),we.length>0&&we[we.length-1]!==""&&we.length<ct&&we.push("");const jt=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,N(ge=>({...ge,[D]:jt}))}}}};P.forEach(K=>{K.addEventListener("blur",M,!1),g.set(K,M)})},L=setTimeout(()=>{H()},0);return()=>{clearTimeout(L),x.removeEventListener("blur",S,!0),g.forEach((P,M)=>{M.removeEventListener("blur",P,!1)}),g.clear()}},[t,E,o]);const Ft=x=>{if(s){x.preventDefault();return}if(x.key==="Enter"){x.preventDefault();return}const g=window.getSelection();if(g&&g.rangeCount>0){const S=g.anchorNode;let H=null;if(S&&(S.nodeType===Node.ELEMENT_NODE?H=S.closest('[data-type="text"]'):S.nodeType===Node.TEXT_NODE&&S.parentElement&&(H=S.parentElement.closest('[data-type="text"]'))),H){if(x.preventDefault(),x.stopPropagation(),n.current){const L=n.current.querySelector('[data-type="variable"], [data-type="upload"]');L&&L.focus()}return}}if(C&&g&&g.rangeCount>0){const S=g.anchorNode;let H=null;if(S&&(S.nodeType===Node.ELEMENT_NODE?H=S.closest(".tag-node"):S.nodeType===Node.TEXT_NODE&&S.parentElement&&(H=S.parentElement.closest(".tag-node"))),H){if(x.preventDefault(),x.stopPropagation(),n.current){const L=n.current.querySelector('[data-type="variable"], [data-type="upload"]');L&&L.focus()}return}}if(x.key==="Escape"&&n.current){if(C){x.preventDefault();return}n.current.innerHTML="",n.current.focus()}if(x.key==="Backspace"){const S=window.getSelection();if(S&&S.rangeCount>0){const H=S.getRangeAt(0),L=S.anchorNode;if(C){let M=null,K=null;if(L&&(L.nodeType===Node.ELEMENT_NODE?(M=L.closest(".tag-node"),K=L.closest('[data-type="text"]')):L.nodeType===Node.TEXT_NODE&&L.parentElement&&(M=L.parentElement.closest(".tag-node"),K=L.parentElement.closest('[data-type="text"]'))),(M||K)&&H.collapsed&&H.startOffset===0){x.preventDefault();return}}let P=null;if(L&&(L.nodeType===Node.ELEMENT_NODE?P=L.closest('[data-type="variable"]'):L.nodeType===Node.TEXT_NODE&&L.parentElement&&(P=L.parentElement.closest('[data-type="variable"]'))),P){if(!H.collapsed)return;const M=P.innerText;if(M==="​"||M===""){x.preventDefault();return}if(H.startOffset===0){x.preventDefault();return}if(M.startsWith("​")&&H.startOffset===1){x.preventDefault();return}}}}},zt=()=>{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;f(P,P);return}const x=n.current;let g="";const S={},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 M=P,K=M.dataset.type,V=M.dataset.key;if(K==="variable"&&V){let j="";const U=document.createTreeWalker(M,NodeFilter.SHOW_TEXT,{acceptNode:W=>{const Z=M.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=M.dataset.multiKey;if(W){(!S[W]||!Array.isArray(S[W]))&&(S[W]=[]);const Z=S[W];Z.push(D),Z.length>1&&(g+=" "),g+=D}else S[V]=D,g+=D}}else if(K==="select"&&V){const j=(M.getAttribute("data-value")||"").trim();j&&(S[V]=j,g+=j)}else if(K==="textarea"&&V){const U=(M.value||"").replace(/\u200B/g,"").trim();U&&(S[V]=U,g+=U)}else if(K==="richtext"&&V){const U=(M.textContent||"").replace(/\u200B/g,"").trim();U&&(S[V]=U,g+=U)}else if(K==="datepicker"&&V){const U=(M.getAttribute("data-value")||"").trim();if(U)if(U.includes(",")){const D=U.split(",");D.length===2?(S[V]=D,g+=`[${D[0]}, ${D[1]}]`):(S[V]=U,g+=U)}else S[V]=U,g+=U}else if(K==="upload"&&V){const j=M.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)}S[j]||(S[j]=D.length>0?D:null,D.length>0&&(g+=` [附带${D.length}个文件: ${D.map(W=>W.name).join(", ")}] `))}else S[V]=o[V]??null,o[V]&&(g+=` [附带文件: ${o[V]?.name}] `)}else S[V]=o[V]??null,o[V]&&(g+=` [附带文件: ${o[V]?.name}] `)}else{if(M.classList.contains("tag-close-btn")||M.classList.contains("file-remove-btn"))return;M.getAttribute("contenteditable")==="false"&&!K&&M.classList.contains("tag-node")?g+=M.innerText:M.childNodes.forEach(H)}}}};if(x.childNodes.forEach(H),g=g.trim(),!g)return;const L=new FormData;L.append("fullPrompt",g),Object.keys(S).forEach(P=>{const M=S[P];M!=null&&(M instanceof File?L.append(P,M):Array.isArray(M)?t.some(V=>V.type==="multi-variable"&&V.key===P)?M.forEach(V=>{V!=null&&V!==""&&L.append(P,String(V))}):M.forEach((V,j)=>{V!=null&&(V instanceof File?L.append(`${P}[${j}]`,V):typeof V=="string"?L.append(`${P}[${j}]`,V):L.append(`${P}[${j}]`,String(V)))}):typeof M=="string"?L.append(P,M):L.append(P,String(M)))}),f(L,g)},Yt={...p?{width:typeof p=="number"?`${p}px`:p}:{},...h?{border:h}:{},...c?{background:c}:{}};return u.jsxs("div",{className:"rich-text-editor",style:Yt,"data-disabled":s,children:[u.jsx("div",{ref:n,className:`rte-editor ${t.length===0?"rte-editor-default":""} ${se&&T?"rte-editor-empty":""}`,contentEditable:t.length===0,suppressContentEditableWarning:!0,"data-placeholder":T,onMouseDown:me,onMouseMove:ye,onMouseUp:ve,onClick:Ee,onDoubleClick:$e,onInput:lt,onKeyDown:Ft,onPaste:be}),u.jsx("input",{type:"file",ref:a,className:"rte-file-input",accept:".csv,.xlsx,.xls,.txt,.pdf,image/*",onChange:Q}),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(x=>x.isShowNew!==1).map(x=>({key:x.key,label:u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[x.icon&&u.jsx("i",{className:x.icon}),u.jsx("span",{children:x.label})]}),onClick:()=>{k?.(x)}}))},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 x=t.find(S=>S.type==="tag");if(!x||!x.text)return null;const g=q.find(S=>S.label===x.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:zt,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"})})]})]}),$?.anchorEl&&(()=>{if(!document.body.contains($.anchorEl))return null;let x="",g={background:"var(--neutral-800, #262626)"};if($.type==="upload")x=t.find(L=>L.type==="upload"&&L.key===$.key)?.tooltip||"";else if($.type==="tag")x=$.anchorEl.dataset.tooltip||"";else if($.type==="upload-label")x=$.anchorEl.dataset.fileName||"";else if($.type==="variable")x=$.anchorEl.dataset.tooltip||"";else if($.type==="upload-preview"){const H=o[$.key];if(H&&H.type&&H.type.startsWith("image/")){const L=URL.createObjectURL(H);x=u.jsx("div",{style:{width:120,height:120,display:"flex",alignItems:"center",justifyContent:"center"},children:u.jsx("img",{src:L,style:{maxWidth:120,maxHeight:120,objectFit:"contain"}})}),g={background:"#fff",padding:4},setTimeout(()=>URL.revokeObjectURL(L),1e3)}else x=""}if(!x)return null;const S=$.type==="upload-preview"?"#0A0A0A":"#fff";return De.createPortal(u.jsx(ee.Tooltip,{arrow:!1,title:u.jsx("div",{style:{maxWidth:"200px",fontSize:"12px",color:S},children:x}),open:!0,placement:"top",getPopupContainer:()=>document.body,overlayInnerStyle:g,children:u.jsx("div",{style:{position:"fixed",left:`${$.anchorEl.getBoundingClientRect().left}px`,top:`${$.anchorEl.getBoundingClientRect().top}px`,width:`${$.anchorEl.offsetWidth}px`,height:`${$.anchorEl.offsetHeight}px`,pointerEvents:"none"}})}),document.body)})(),fe,pe]})};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:t,batchSize:f,loadingProgress:i,loadIcon:s,onBatchSizeChange:p,onLoadNextPage:C,onStartAutoLoad:q,onStopLoad:k})=>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:k,className:"auto_load_stop_btn",children:"停止加载"})]}):u.jsxs("div",{className:"auto_load_container",children:[u.jsx("div",{onClick:C,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:f,onChange:p,options:Pt,disabled:t,size:"small",className:"auto_load_select",popupMatchSelectWidth:84})]})]}),Bt=({current:t,loadIcon:f,pageSize:i,total:s,cachedPages:p,loadedCount:C,autoLoading:q=!1,loadingProgress:k,onChange:v,onLoadNextPage:e,onStartAutoLoad:T,onStopLoading:h})=>{const[c,r]=d.useState(5),n=Math.ceil(s/i),a=d.useMemo(()=>p.length>=n,[p,n]),o=()=>Array.from({length:n},(w,_)=>_+1).filter(w=>!p.includes(w)).slice(0,c),y=(l,w,_)=>{const O=p.includes(l);return w==="prev"||w==="next"||w==="jump-prev"||w==="jump-next"?u.jsx("div",{className:"pageBox",children:_}):u.jsxs("div",{className:"pageBox",style:{backgroundColor:t===l?"#2563EB":"#f5f5f5",color:t===l?"#fff":O?"#171717":"#a3a3a3"},children:[l,!O&&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"}}),"已加载: ",C,"/",s,"条数据"]}),!a&&u.jsx(Vt,{loadIcon:f||void 0,autoLoading:q,batchSize:c,loadingProgress:k,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:f,autoLoading:i,loadingProgress:s,columns:p=[],dataSource:C=[],total:q,current:k,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}`})},[k]);return u.jsxs("div",{className:"flex flex-col",children:[u.jsx(ee.Table,{ref:a,...n,columns:p,dataSource:C,pagination:!1,virtual:!0}),u.jsx(Bt,{loading:f,autoLoading:i,loadingProgress:s,current:k,pageSize:v,total:q,loadedCount:C.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:f="请输入内容",animationSpeed:i=100,autoPlay:s=!0,value:p,onChange:C,...q})=>{const[k,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),_=d.useRef(e),O=d.useRef(r),$=d.useRef(k);d.useEffect(()=>{w.current=t,_.current=e,O.current=r,$.current=k});const F=d.useCallback((b,m)=>{let E=0;o(!0);const N=()=>{E<b.length?(v(b.slice(0,E+1)),E++,l.current=window.setTimeout(N,i)):(o(!1),m?.())};N()},[i]),z=d.useCallback(b=>{let m=$.current.length;const E=()=>{m>0?(v($.current.slice(0,m-1)),m--,l.current=window.setTimeout(E,i/2)):b?.()};E()},[i]),I=d.useCallback(()=>{if(w.current.length===0||O.current)return;c(!0);const b=w.current[_.current];$.current?z(()=>{F(b,()=>{y.current=window.setTimeout(()=>{T(m=>(m+1)%w.current.length),c(!1)},2e3)})}):F(b,()=>{y.current=window.setTimeout(()=>{T(m=>(m+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)},B=b=>{n(!1),!p&&t.length>0&&(v(""),T(0)),q.onBlur?.(b)},te=b=>{C?.(b.target.value),q.onChange?.(b)},se=()=>r||p?f:k||f;return u.jsxs("div",{style:{position:"relative"},children:[u.jsx(ee.Input,{...q,value:p,onChange:te,onFocus:Y,onBlur:B,placeholder:se(),style:{...q.style,position:"relative",zIndex:1}}),!r&&!p&&k&&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:k}),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:`
1
+ (function(le,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):(le=typeof globalThis<"u"?globalThis:le||self,u(le.SealSeekBIComponents={},le.React,le.React,le.antd,le.AntdIcons,le.ReactDOM))})(this,function(le,u,d,ee,ke,De){"use strict";const He=({variant:t="primary",loading:f=!1,children:i,...s})=>{const p=C=>{switch(C){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:p(t),loading:f,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:f,bordered:i=!0,hoverable:s=!1,size:p="default",...C})=>u.jsx(ee.Card,{...C,title:t,bordered:i,hoverable:s,size:p,children:f});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,...f})=>{const i=f.footer!==void 0?f.footer:t?(s,{OkBtn:p,CancelBtn:C})=>u.jsxs(u.Fragment,{children:[u.jsx(p,{}),u.jsx(C,{})]}):null;return u.jsx(ee.Modal,{...f,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:f=!0,defaultPageSize:i=10,...s})=>u.jsx(ee.Table,{...s,scroll:{x:t||"max-content",y:"50vh"},pagination:f?{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 ut=ke.createFromIconfontCN({scriptUrl:["//at.alicdn.com/t/c/font_5037819_a72xy7yjoj.js"]}),Ye=({name:t,size:f,color:i,style:s,...p})=>{const C={fontSize:f,color:i,...s};return u.jsx(ut,{...p,type:t,style:C})};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:f="暂无数据",className:i,emptyChildren:s,loadingText:p,emptyImage:C})=>t?u.jsxs(ee.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",vertical:!0,children:[u.jsx(ee.Spin,{size:"large"}),p&&u.jsx("div",{className:"mt-4 text-gray-500",children:p})]}):u.jsx(ee.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",children:u.jsx(ee.Empty,{image:C,description:f,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:f=!1,className:i,size:s="small",type:p="default"})=>u.jsx(ee.Button,{size:s,type:p,icon:u.jsx(ke.LeftOutlined,{}),className:`cursor-pointer ${i||""}`,onClick:t,children:f&&"返回"});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:f,...i})=>{const s=t?`px-0 h-auto ${f||""}`:f;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:dt}=ee.Select,Ue=({columns:t,request:f,searchFields:i=[],showSearch:s=!0,showRefresh:p=!0,defaultPageSize:C=10,pageSizeOptions:q=["10","20","50","100"],autoLoad:k=!0,externalParams:v={},...e})=>{const[T,h]=d.useState([]),[c,r]=d.useState(!1),[n,a]=d.useState({current:1,pageSize:C,total:0}),[o,y]=d.useState({}),[l,w]=d.useState({}),[_]=ee.Form.useForm(),O=d.useRef(n);O.current=n;const $=d.useRef(v);$.current=v;const F=d.useRef(!1),z=d.useMemo(()=>t.map(b=>{const{sortable:m,render:E,...N}=b;return{...N,sorter:m?!0:void 0,render:E||(A=>A)}}),[t]),I=d.useCallback(async(b={})=>{if(f){r(!0);try{const m={page:O.current.current,pageSize:O.current.pageSize,sortField:l.field,sortOrder:l.order,searchParams:{...o,...$.current},...b},E=await f(m);E.success&&(h(E.data),a(N=>({...N,total:E.total,current:m.page||N.current})))}catch(m){console.error("加载数据失败:",m)}finally{r(!1)}}},[f,l,o]),Y=d.useCallback(b=>{y(b),a(m=>({...m,current:1}))},[]),B=d.useCallback(()=>{_.resetFields(),y({}),a(b=>({...b,current:1}))},[_]),te=d.useCallback(()=>{I()},[I]),se=d.useCallback((b,m,E)=>{const N={current:b.current||1,pageSize:b.pageSize||C,total:b.total||0},A={field:E?.field,order:E?.order};a(N),w(A)},[C]);return d.useEffect(()=>{const b=Object.keys(v).length>0;(k&&!F.current||b)&&(I(),F.current=!0)},[k,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:_,layout:"inline",onFinish:Y,initialValues:i.reduce((b,m)=>(m.defaultValue!==void 0&&(b[m.key]=m.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(m=>u.jsx(dt,{value:m.value,children:m.label},m.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:B,children:"重置"}),p&&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,m)=>`第 ${m[0]}-${m[1]} 条/共 ${b} 条`,pageSizeOptions:q},onChange:se,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,f,i){if(!t.current)return;const s=new Set,p={};for(const h of f)h.exclusionGroup&&h.exclusionGroup!=="separator"&&(s.add(h.exclusionGroup),p[h.exclusionGroup]||(p[h.exclusionGroup]=[]),p[h.exclusionGroup].push({type:h.type,key:h.key,exclusionGroup:h.exclusionGroup}));const C={};for(const h of s){C[h]=!1;for(const c of p[h])if(c.type==="upload"&&c.key){if(i[c.key]!==null&&i[c.key]!==void 0){C[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){C[h]=!0;break}if(C[h])break}}const q=f.some(h=>h.exclusionGroup==="separator"),v=Object.keys(C).filter(h=>C[h]).length>0;let e=null;if(v&&q){for(const h of f)if(h.exclusionGroup&&h.exclusionGroup!=="separator"&&C[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,f,i,s){if(!t.current){s(!1);return}const p=[];for(let c=0;c<f.length;c++){const r=f[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){p.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<f.length;n++){const a=f[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){p.push({exclusionGroup:r.exclusionGroup,key:a.key,type:a.type,__index:n});break}}else for(let n=c+1;n<f.length;n++){const a=f[n];if((a.type==="variable"||a.type==="upload"||a.type==="select"||a.type==="textarea"||a.type==="richtext"||a.type==="datepicker")&&a.key){p.push({exclusionGroup:a.exclusionGroup||"",key:a.key,type:a.type,__index:n});break}}}const C=f.some(c=>c.exclusionGroup==="separator"),q=[];if(C&&p.length>1){const c=[];f.forEach((r,n)=>{r.exclusionGroup==="separator"&&c.push(n)});for(const r of c){const a=p.filter(l=>typeof l.__index=="number"&&l.__index<r).sort((l,w)=>(w.__index??0)-(l.__index??0))[0],y=p.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(p.length===0){if(f.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 k=p.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(k.length===0){s(!0);return}const v=new Set;q.forEach(c=>{c.forEach(r=>{r.key&&v.add(r.key)})});const e=k.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 _=y[l].dataset.key;_&&i[_]!=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,f){if(!t.current)return;t.current.querySelectorAll('[data-type="variable"]').forEach(s=>{const p=s.innerText;p.replace(/\u200B/g,"").trim().length===0?(p!=="​"&&(s.innerText="​"),s.classList.add("show-placeholder")):s.classList.remove("show-placeholder")})}const pt=({host:t,onChange:f})=>{const i=t.dataset.key,s=t.dataset.placeholder,p=t.dataset.options?decodeURIComponent(t.dataset.options):"[]",C=t.dataset.required==="true",q=t.dataset.value||"",k=d.useMemo(()=>{try{return JSON.parse(p)}catch{return[]}},[p]),[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?k.find(y=>y.value===v)?.label||v:s||"请选择",a=c(n),o=Math.max(64,Math.ceil(a+40));h(o)},[v,k,s]);const r=n=>{e(n),t.setAttribute("data-value",n),f(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:k,allowClear:!C,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)},ft=t=>{const[f,i]=d.useState([]);return d.useEffect(()=>{const s=t.current;if(!s)return;const p=()=>{const q=s.querySelectorAll(".rte-select-host"),k=[];q.forEach(v=>{const e=v.getAttribute("data-key");e&&k.push(u.jsx(pt,{host:v,onChange:()=>{if(t.current){const T=new Event("input",{bubbles:!0});t.current.dispatchEvent(T)}}},`select-${e}`))}),i(k)};p();const C=new MutationObserver(q=>{let k=!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){k=!0;break}}k&&p()});return C.observe(s,{childList:!0,subtree:!0}),()=>C.disconnect()},[t]),f};function yt(t,f,i,s,p,C={},q){if(!t.current)return;let k="",v=0;for(;v<f.length;){const e=f[v],T=v+1<f.length?f[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">`,_="</span>";let O="";e.className?O=`<span class="${e.className}">${e.text??""}</span>`:O=e.text??"";const $=T,F=i[$.key]!==null&&i[$.key]!==void 0,z=F?i[$.key]:null,I=F?i[$.key]?.name:$.text,Y=F?"":"hidden",B=$.tooltip&&!F?"":"hidden",te=F?"has-file":"",se=F&&I?` data-file-name="${I.replace(/"/g,"&quot;")}"`:"";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 m=($.text||"").trim(),N=F&&m.length>=12?`<span ${l} contenteditable="false" class="exclusion-wrapper upload-hint">${m}</span>`:"",A=`<span contenteditable="false" data-type="upload" data-key="${$.key}" class="upload-chip"><span class="upload-inner-wrapper ${te}"><span class="upload-icon">${b}</span><span class="upload-label"${se}>${I||$.text}</span>${$.tooltip?`<i contenteditable="false" class="iconfont icon-tishi upload-info-icon ${B}" data-upload-key="${$.key}" data-tooltip="${$.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${Y}" title="移除文件">×</span></span></span>`;k+=w+O+A+_+N,v+=2;continue}if(y){const w=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group">`,_="</span>";let O="";e.className?O=`<span class="${e.className}">${e.text??""}</span>`:O=e.text??"";const $=T,z=($.key?p[$.key]:void 0)||$.text||"",I=!z,Y=I?"​":z,B=I?"show-placeholder":"",te=$.exclusionGroup?` data-group="${$.exclusionGroup}"`:"",se=$.tooltip?` data-tooltip="${$.tooltip.replace(/"/g,"&quot;")}" data-variable-key="${$.key||""}"`:"",b=$.tooltip&&I?"":"hidden",m=`<span contenteditable="true" data-type="variable" data-key="${$.key}" data-placeholder="${$.placeholder||""}"${te}${se} class="variable-chip ${B}">${Y}${$.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${b}" data-variable-key="${$.key}" data-tooltip="${$.tooltip.replace(/"/g,"&quot;")}" title="提示"></i>`:""}</span>`;k+=w+O+m+_,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,"&quot;")}" 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=p[e.key]||e.text||"",l=!y,w=l?"​":y,_=l?"show-placeholder":"",O=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",$=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,"&quot;")}" 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||""}"${O}${$} class="variable-chip ${_}">${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,"&quot;")}" 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"&&e.maxCount>1){const y=e.minCount||1,l=e.maxCount||3;let w=0;for(let $=0;$<l;$++){const F=`${e.key}-${$}`;i[F]!=null&&(w+=1)}const _=Math.min(l,Math.max(y,w+(w<l?1:0)));let O="";for(let $=0;$<_;$++){const F=`${e.key}-${$}`,z=i[F]!==null&&i[F]!==void 0,I=z?i[F]:null,Y=z?i[F]?.name:e.text,B=z?"":"hidden",te=e.tooltip&&!z?"":"hidden",se=z?"has-file":"",b=z&&Y?` data-file-name="${Y.replace(/"/g,"&quot;")}"`:"";let m="";z&&I?I.type?.startsWith("image/")?m=`<img class="upload-icon-img upload-icon-preview" src="${URL.createObjectURL(I)}" alt="preview" />`:m="<i class='iconfont icon-exlwenjian'></i>":m="<i class='iconfont icon-shangchuan1'></i>";const E=` data-batch-key="${e.key}"`,N=` data-batch-index="${$}"`,A=`<span contenteditable="false" data-type="upload" data-key="${F}"${E}${N} class="upload-chip upload-chip-batch"><span class="upload-inner-wrapper ${se}"><span class="upload-icon">${m}</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 ${B}" title="移除文件">×</span></span></span>`;O+=A}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">${O}</span></span>`:a=O}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,_=y?"":"hidden",O=e.tooltip&&!y?"":"hidden",$=y?"has-file":"",F=y&&w?` data-file-name="${w.replace(/"/g,"&quot;")}"`:"";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=(e.text||"").trim(),B=y&&e.showHint===!0&&I.length>=12?`<span ${c} contenteditable="false" class="exclusion-wrapper upload-hint">${I}</span>`:"",te=`<span contenteditable="false" data-type="upload" data-key="${e.key}" class="upload-chip"><span class="upload-inner-wrapper ${$}"><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 ${O}" data-upload-key="${e.key}" data-tooltip="${e.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${_}" 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>${te}</span>${B}`:a=te+B}else if(e.type==="select"&&e.key){const o=p[e.key]||e.defaultValue||"",y=encodeURIComponent(JSON.stringify(e.options||[])),l=e.placeholder?` data-placeholder="${e.placeholder}"`:"",w=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",_=e.required?' data-required="true"':"",O=`<div data-type="select" data-key="${e.key}" data-value="${o}" data-options="${y}"${l}${w}${_} 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>${O}</span>`:a=O}else if(e.type==="textarea"&&e.key){const o=p[e.key]||"",y=e.maxHeight||252,l=e.expandable!==!1,w=e.placeholder?` placeholder="${e.placeholder}"`:"",_=`<textarea data-type="textarea" data-key="${e.key}" class="rte-textarea" data-max-height="${y}" style="max-height:${y}px;"${w}>${o}</textarea>`,O=l?`<button type="button" class="rte-textarea-toggle" data-key="${e.key}" data-expanded="false">展开</button>`:"",$=`<div class="rte-textarea-wrapper" data-key="${e.key}">${_}${O}</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>${$}</span>`:a=$}else if(e.type==="richtext"&&e.key){const o=p[e.key]||e.text||"",y=typeof e.minHeight=="number"?e.minHeight:40,l=typeof e.maxHeight=="number"?e.maxHeight:160,w=Math.max(l,y),_=e.placeholder?` data-placeholder="${e.placeholder}"`:"",O=e.expandable!==!1,$=o,F=`<div contenteditable="true" data-type="richtext" data-key="${e.key}" class="rte-richtext"${_} style="min-height:${y}px;max-height:${w}px;overflow:auto;">${$}</div>`,z=O?`<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>`:"",I=`<div class="rte-richtext-wrapper" data-key="${e.key}">${F}${z}</div>`,Y=`<div class="rte-richtext-container" data-key="${e.key}">${I}</div>`;e.required?a=`<div ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper rte-richtext-required">${Y}</div>`:a=Y}else if(e.type==="datepicker"&&e.key){const o=p[e.key]||"",y=e.placeholder?` data-placeholder="${e.placeholder}"`:"",l=e.limitRange?` data-limit-range="${e.limitRange}"`:"",w=e.disableFuture?' data-disable-future="true"':"",_=`<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>${_}</span>`:a=_}else if(e.type==="multi-variable"&&e.key){const o=e.maxCount||9,y=C[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>`,_=e.exclusionGroup?`data-group="${e.exclusionGroup}"`:"";let O="";for(let $=0;$<l;$++){const F=`${e.key}_${$}`,z=p[F]||"",I=!z,Y=I?"​":z,B=I?"show-placeholder":"",te=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,"&quot;")}" data-variable-key="${e.key||""}"`:"",se=e.tooltip&&I?"":"hidden",b=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",m=`<span contenteditable="true" data-type="variable" data-key="${F}" data-multi-key="${e.key}" data-index="${$}" data-placeholder="${e.placeholder||""}"${b}${te} class="variable-chip ${B}">${Y}${e.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${se}" data-variable-key="${e.key}" data-tooltip="${e.tooltip.replace(/"/g,"&quot;")}" title="提示"></i>`:""}</span>`;$===0?O+=`<span ${_} class="exclusion-wrapper required-upload-group required-multi-first">${w}${m}</span>`:O+=m}a=O}else{let w="";for(let _=0;_<l;_++){const O=`${e.key}_${_}`,$=p[O]||"",F=!$,z=F?"​":$,I=F?"show-placeholder":"",Y=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,"&quot;")}" data-variable-key="${e.key||""}"`:"",B=e.tooltip&&F?"":"hidden",te=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",se=`<span contenteditable="true" data-type="variable" data-key="${O}" data-multi-key="${e.key}" data-index="${_}" data-placeholder="${e.placeholder||""}"${te}${Y} class="variable-chip ${I}">${z}${e.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${B}" data-variable-key="${e.key}" data-tooltip="${e.tooltip.replace(/"/g,"&quot;")}" title="提示"></i>`:""}</span>`;w+=se}a=w}}k+=r+a+n,v++}t.current&&(t.current.innerHTML=k,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 mt(t,f,i,s,p={},C,q,k){const v=d.useCallback(()=>{if(!t.current)return;if(f.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)}})),yt(t,f,i,s,e,p,k),C?.current){const{key:c,offset:r}=C.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 _=o.currentNode,O=_.textContent?.length||0;if(y+O>=r){l=_,w=r-y;break}y+=O}if(l){a.setStart(l,Math.min(w,l.textContent?.length||0)),a.collapse(!0);const _=window.getSelection();_&&(_.removeAllRanges(),_.addRange(a),n.focus())}else{a.selectNodeContents(n),a.collapse(!1);const _=window.getSelection();_&&(_.removeAllRanges(),_.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())}C.current=null}},0)}},[f,i,s,t,p,C,q,k]);d.useEffect(()=>{v()},[v])}function ht(t,f,i,s){d.useEffect(()=>{const p=t.current;if(!p)return;const C=k=>{const v=k.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=k.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=k=>{const v=k.target?.closest(".upload-info-icon"),e=k.relatedTarget;if(v&&v.classList.contains("upload-info-icon")){!e||!p.contains(e)?s(null):e.closest(".upload-info-icon")||s(null);return}const T=k.target?.closest('[data-type="upload"]');if(T){const h=e;if(h&&T.contains(h))return;s(null)}};return p.addEventListener("mouseover",C,!0),p.addEventListener("mouseout",q,!0),()=>{p.removeEventListener("mouseover",C,!0),p.removeEventListener("mouseout",q,!0)}},[f,i,t,s])}function gt(t,f,i,s){d.useEffect(()=>{if(!t.current)return;const p=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"})},C=()=>{i(null)};let q;const k=()=>{if(!t.current)return;t.current.querySelectorAll(".tag-node[data-tooltip]").forEach(e=>{e.addEventListener("mouseenter",p),e.addEventListener("mouseleave",C)})};return q=requestAnimationFrame(()=>{q=requestAnimationFrame(k)}),()=>{cancelAnimationFrame(q),t.current&&t.current.querySelectorAll(".tag-node[data-tooltip]").forEach(e=>{e.removeEventListener("mouseenter",p),e.removeEventListener("mouseleave",C)})}},[f,t,i,s])}function bt(t,f,i){d.useEffect(()=>{const s=t.current;if(!s)return;const p=q=>{const k=q.target?.closest(".variable-info-icon");if(k&&k.classList.contains("variable-info-icon")){const v=k.dataset.variableKey;v&&i({key:v,anchorEl:k,type:"variable"})}},C=q=>{const k=q.target?.closest(".variable-info-icon"),v=q.relatedTarget;k&&k.classList.contains("variable-info-icon")&&(!v||!s.contains(v)?i(null):v.closest(".variable-info-icon")||i(null))};return s.addEventListener("mouseover",p,!0),s.addEventListener("mouseout",C,!0),()=>{s.removeEventListener("mouseover",p,!0),s.removeEventListener("mouseout",C,!0)}},[f,t,i])}function vt(t,f,i,s){d.useEffect(()=>{if(!t.current)return;const p=v=>{const e=v.currentTarget;e.dataset.fileName&&s({key:"",anchorEl:e,type:"upload-label"})},C=()=>{s(null)};let q;const k=()=>{if(!t.current)return;t.current.querySelectorAll(".upload-label[data-file-name]").forEach(e=>{e.addEventListener("mouseenter",p),e.addEventListener("mouseleave",C)})};return q=requestAnimationFrame(()=>{q=requestAnimationFrame(k)}),()=>{cancelAnimationFrame(q),t.current&&t.current.querySelectorAll(".upload-label[data-file-name]").forEach(e=>{e.removeEventListener("mouseenter",p),e.removeEventListener("mouseleave",C)})}},[f,i,t,s])}function xt(t,f,i,s){d.useEffect(()=>{const p=t.current;if(!p)return;const C=()=>{Ie(t,f,i),Pe(t,f,i,s)},q=setTimeout(C,0),k=()=>{setTimeout(C,0)},v=()=>{setTimeout(C,0)};return p.addEventListener("input",k,!0),p.addEventListener("blur",v,!0),()=>{clearTimeout(q),p.removeEventListener("input",k,!0),p.removeEventListener("blur",v,!0)}},[i,f,t,s])}function kt(t,f){const i=d.useRef(0),s=d.useRef(0);d.useEffect(()=>{if(!t.current)return;let p=!1,C=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,k=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=>{p=!0,q(l.target)&&(i.current=Date.now(),console.log("[SelectionCtrl] mousedown on datepicker target")),k(l.target)&&(s.current=Date.now(),console.log("[SelectionCtrl] mousedown on select target"))},e=()=>{p=!1,C=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")),k(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||f.current||p||T||Date.now()-h<500)return;const _=w.getRangeAt(0);if(!_.collapsed)return t.current.contains(_.commonAncestorContainer),void 0;const O=w.anchorNode;if(!O||!t.current.contains(O))return;let $=!1,F=!1;if(O.nodeType===Node.ELEMENT_NODE){const I=O;(I.closest('[data-type="datepicker"]')||I.closest(".rte-datepicker-wrapper")||I.closest(".rte-datepicker-host"))&&($=!0),(I.closest('[data-type="select"]')||I.closest(".rte-select-wrapper")||I.closest(".rte-select-host"))&&(F=!0)}else if(O.parentElement){const I=O.parentElement;(I.closest('[data-type="datepicker"]')||I.closest(".rte-datepicker-wrapper")||I.closest(".rte-datepicker-host"))&&($=!0),(I.closest('[data-type="select"]')||I.closest(".rte-select-wrapper")||I.closest(".rte-select-host"))&&(F=!0)}if($||F)return;let z=null;if(O.nodeType===Node.ELEMENT_NODE?z=O.closest('[data-type="variable"]'):O.nodeType===Node.TEXT_NODE&&O.parentElement&&(z=O.parentElement.closest('[data-type="variable"]')),!z){if(Date.now()-C>500)return;const I=t.current.querySelectorAll('[data-type="variable"]');if(I.length>0){let Y=null;for(const B of Array.from(I))if(B.style.display!=="none"){Y=B;break}if(!Y&&I.length>0&&(Y=I[0]),Y){const B=document.createRange();B.selectNodeContents(Y),B.collapse(!1),w.removeAllRanges(),w.addRange(B),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,f])}function wt(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Te={exports:{}},Et=Te.exports,Xe;function Je(){return Xe||(Xe=1,function(t,f){(function(i,s){t.exports=s()})(Et,function(){var i=1e3,s=6e4,p=36e5,C="millisecond",q="second",k="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 m=["th","st","nd","rd"],E=b%100;return"["+b+(m[(E-20)%10]||m[E]||m[0])+"]"}},w=function(b,m,E){var N=String(b);return!N||N.length>=m?b:""+Array(m+1-N.length).join(E)+b},_={s:w,z:function(b){var m=-b.utcOffset(),E=Math.abs(m),N=Math.floor(E/60),A=E%60;return(m<=0?"+":"-")+w(N,2,"0")+":"+w(A,2,"0")},m:function b(m,E){if(m.date()<E.date())return-b(E,m);var N=12*(E.year()-m.year())+(E.month()-m.month()),A=m.clone().add(N,h),X=E-A<0,J=m.clone().add(N+(X?-1:1),h);return+(-(N+(E-A)/(X?A-J:J-A))||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:k,s:q,ms:C,Q:c}[b]||String(b||"").toLowerCase().replace(/s$/,"")},u:function(b){return b===void 0}},O="en",$={};$[O]=l;var F="$isDayjsObject",z=function(b){return b instanceof te||!(!b||!b[F])},I=function b(m,E,N){var A;if(!m)return O;if(typeof m=="string"){var X=m.toLowerCase();$[X]&&(A=X),E&&($[X]=E,A=X);var J=m.split("-");if(!A&&J.length>1)return b(J[0])}else{var ae=m.name;$[ae]=m,A=ae}return!N&&A&&(O=A),A||!N&&O},Y=function(b,m){if(z(b))return b.clone();var E=typeof m=="object"?m:{};return E.date=b,E.args=arguments,new te(E)},B=_;B.l=I,B.i=z,B.w=function(b,m){return Y(b,{locale:m.$L,utc:m.$u,x:m.$x,$offset:m.$offset})};var te=function(){function b(E){this.$L=I(E.locale,null,!0),this.parse(E),this.$x=this.$x||E.x||{},this[F]=!0}var m=b.prototype;return m.parse=function(E){this.$d=function(N){var A=N.date,X=N.utc;if(A===null)return new Date(NaN);if(B.u(A))return new Date;if(A instanceof Date)return new Date(A);if(typeof A=="string"&&!/Z$/i.test(A)){var J=A.match(o);if(J){var ae=J[2]-1||0,ie=(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,ie)):new Date(J[1],ae,J[3]||1,J[4]||0,J[5]||0,J[6]||0,ie)}}return new Date(A)}(E),this.init()},m.init=function(){var E=this.$d;this.$y=E.getFullYear(),this.$M=E.getMonth(),this.$D=E.getDate(),this.$W=E.getDay(),this.$H=E.getHours(),this.$m=E.getMinutes(),this.$s=E.getSeconds(),this.$ms=E.getMilliseconds()},m.$utils=function(){return B},m.isValid=function(){return this.$d.toString()!==a},m.isSame=function(E,N){var A=Y(E);return this.startOf(N)<=A&&A<=this.endOf(N)},m.isAfter=function(E,N){return Y(E)<this.startOf(N)},m.isBefore=function(E,N){return this.endOf(N)<Y(E)},m.$g=function(E,N,A){return B.u(E)?this[N]:this.set(A,E)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(E,N){var A=this,X=!!B.u(N)||N,J=B.p(E),ae=function(me,ye){var ve=B.w(A.$u?Date.UTC(A.$y,ye,me):new Date(A.$y,ye,me),A);return X?ve:ve.endOf(e)},ie=function(me,ye){return B.w(A.toDate()[me].apply(A.toDate("s"),(X?[0,0,0,0]:[23,59,59,999]).slice(ye)),A)},re=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=(re<Q?re+7:re)-Q;return ae(X?fe-de:fe+(6-de),pe);case e:case n:return ie(be+"Hours",0);case v:return ie(be+"Minutes",1);case k:return ie(be+"Seconds",2);case q:return ie(be+"Milliseconds",3);default:return this.clone()}},m.endOf=function(E){return this.startOf(E,!1)},m.$set=function(E,N){var A,X=B.p(E),J="set"+(this.$u?"UTC":""),ae=(A={},A[e]=J+"Date",A[n]=J+"Date",A[h]=J+"Month",A[r]=J+"FullYear",A[v]=J+"Hours",A[k]=J+"Minutes",A[q]=J+"Seconds",A[C]=J+"Milliseconds",A)[X],ie=X===e?this.$D+(N-this.$W):N;if(X===h||X===r){var re=this.clone().set(n,1);re.$d[ae](ie),re.init(),this.$d=re.set(n,Math.min(this.$D,re.daysInMonth())).$d}else ae&&this.$d[ae](ie);return this.init(),this},m.set=function(E,N){return this.clone().$set(E,N)},m.get=function(E){return this[B.p(E)]()},m.add=function(E,N){var A,X=this;E=Number(E);var J=B.p(N),ae=function(pe){var fe=Y(X);return B.w(fe.date(fe.date()+Math.round(pe*E)),X)};if(J===h)return this.set(h,this.$M+E);if(J===r)return this.set(r,this.$y+E);if(J===e)return ae(1);if(J===T)return ae(7);var ie=(A={},A[k]=s,A[v]=p,A[q]=i,A)[J]||1,re=this.$d.getTime()+E*ie;return B.w(re,this)},m.subtract=function(E,N){return this.add(-1*E,N)},m.format=function(E){var N=this,A=this.$locale();if(!this.isValid())return A.invalidDate||a;var X=E||"YYYY-MM-DDTHH:mm:ssZ",J=B.z(this),ae=this.$H,ie=this.$m,re=this.$M,pe=A.weekdays,fe=A.months,be=A.meridiem,Q=function(ye,ve,Ee,$e){return ye&&(ye[ve]||ye(N,X))||Ee[ve].slice(0,$e)},de=function(ye){return B.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(N.$y).slice(-2);case"YYYY":return B.s(N.$y,4,"0");case"M":return re+1;case"MM":return B.s(re+1,2,"0");case"MMM":return Q(A.monthsShort,re,fe,3);case"MMMM":return Q(fe,re);case"D":return N.$D;case"DD":return B.s(N.$D,2,"0");case"d":return String(N.$W);case"dd":return Q(A.weekdaysMin,N.$W,pe,2);case"ddd":return Q(A.weekdaysShort,N.$W,pe,3);case"dddd":return pe[N.$W];case"H":return String(ae);case"HH":return B.s(ae,2,"0");case"h":return de(1);case"hh":return de(2);case"a":return me(ae,ie,!0);case"A":return me(ae,ie,!1);case"m":return String(ie);case"mm":return B.s(ie,2,"0");case"s":return String(N.$s);case"ss":return B.s(N.$s,2,"0");case"SSS":return B.s(N.$ms,3,"0");case"Z":return J}return null}(ye)||J.replace(":","")})},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(E,N,A){var X,J=this,ae=B.p(N),ie=Y(E),re=(ie.utcOffset()-this.utcOffset())*s,pe=this-ie,fe=function(){return B.m(J,ie)};switch(ae){case r:X=fe()/12;break;case h:X=fe();break;case c:X=fe()/3;break;case T:X=(pe-re)/6048e5;break;case e:X=(pe-re)/864e5;break;case v:X=pe/p;break;case k:X=pe/s;break;case q:X=pe/i;break;default:X=pe}return A?X:B.a(X)},m.daysInMonth=function(){return this.endOf(h).$D},m.$locale=function(){return $[this.$L]},m.locale=function(E,N){if(!E)return this.$L;var A=this.clone(),X=I(E,N,!0);return X&&(A.$L=X),A},m.clone=function(){return B.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},b}(),se=te.prototype;return Y.prototype=se,[["$ms",C],["$s",q],["$m",k],["$H",v],["$W",e],["$M",h],["$y",r],["$D",n]].forEach(function(b){se[b[1]]=function(m){return this.$g(m,b[0],b[1])}}),Y.extend=function(b,m){return b.$i||(b(m,te,Y),b.$i=!0),Y},Y.locale=I,Y.isDayjs=z,Y.unix=function(b){return Y(1e3*b)},Y.en=$[O],Y.Ls=$,Y.p={},Y})}(Te)),Te.exports}var $t=Je();const qe=wt($t);var Ne={exports:{}},Ct=Ne.exports,Qe;function St(){return Qe||(Qe=1,function(t,f){(function(i,s){t.exports=s(Je())})(Ct,function(i){function s(q){return q&&typeof q=="object"&&"default"in q?q:{default:q}}var p=s(i),C={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,k){return k==="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,k){var v=100*q+k;return v<600?"凌晨":v<900?"早上":v<1100?"上午":v<1300?"中午":v<1800?"下午":"晚上"}};return p.default.locale(C,null,!0),C})}(Ne)),Ne.exports}St();function Se(t){"@babel/helpers - typeof";return Se=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(f){return typeof f}:function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f},Se(t)}function Tt(t,f){if(Se(t)!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var s=i.call(t,f);if(Se(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(f==="string"?String:Number)(t)}function qt(t){var f=Tt(t,"string");return Se(f)=="symbol"?f:f+""}function Nt(t,f,i){return(f=qt(f))in t?Object.defineProperty(t,f,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[f]=i,t}function Ze(t,f){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);f&&(s=s.filter(function(p){return Object.getOwnPropertyDescriptor(t,p).enumerable})),i.push.apply(i,s)}return i}function Re(t){for(var f=1;f<arguments.length;f++){var i=arguments[f]!=null?arguments[f]:{};f%2?Ze(Object(i),!0).forEach(function(s){Nt(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 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="确定",qe.locale("zh-cn");const{RangePicker:Mt}=ee.DatePicker,Dt=({host:t,onChange:f})=>{const i=t.dataset.key,s=t.dataset.value,p=t.dataset.placeholder,C=t.dataset.limitRange?parseInt(t.dataset.limitRange,10):void 0,q=t.dataset.disableFuture==="true",[k,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:!C||!e||!e[0]?!1:Math.abs(a.diff(e[0],"days"))>C:!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),f(i,o)}else t.setAttribute("data-value",""),f(i,"")},n=a=>{console.log("[DatePicker] onOpenChange",a),T(a?k:null)};return De.createPortal(u.jsx("div",{className:"rte-datepicker-wrapper",contentEditable:!1,style:{display:"inline-block",verticalAlign:"middle",width:"240px"},children:u.jsx(Mt,{value:k,disabledDate:h,onCalendarChange:c,onChange:r,onOpenChange:n,placeholder:[p||"开始日期",p||"结束日期"],style:{width:"100%"},size:"small",allowClear:!0,locale:et,getPopupContainer:()=>document.body,popupClassName:"rte-datepicker-dropdown"})}),t)},It=t=>{const[f,i]=d.useState([]);return d.useEffect(()=>{const s=t.current;if(!s)return;const p=()=>{const q=s.querySelectorAll(".rte-datepicker-host"),k=[];q.forEach(v=>{const e=v.getAttribute("data-key");e&&k.push(u.jsx(Dt,{host:v,onChange:()=>{if(t.current){const T=new Event("input",{bubbles:!0});t.current.dispatchEvent(T)}}},`datepicker-${e}`))}),i(k)};p();const C=new MutationObserver(q=>{let k=!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){k=!0;break}}k&&p()});return C.observe(s,{childList:!0,subtree:!0}),()=>C.disconnect()},[t]),f},tt=({config:t,onSend:f,isProcessing:i=!1,disabled:s=!1,width:p,lockStructure:C=!1,agentOptions:q=[],onAgentSelect:k,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),[_,O]=d.useState(null),[$,F]=d.useState(null),z=d.useRef(!1),I=d.useRef(null),[Y,B]=d.useState(!1),te=d.useRef(null),[se,b]=d.useState(!0),m=d.useRef(0),[E,N]=d.useState(()=>{const x={};return t.forEach(g=>{g.type==="multi-variable"&&g.key&&(x[g.key]=1)}),x}),A=d.useRef({}),X=d.useRef({}),J=d.useRef({});d.useEffect(()=>{X.current=o},[o]),d.useEffect(()=>{J.current=E},[E]);const ae=d.useCallback(x=>x.find(S=>S.type==="tag")?.text||null,[]),ie=d.useRef(t),re=d.useRef(null);d.useEffect(()=>{const x=ae(ie.current),g=ae(t);if(x&&x!==g&&n.current){const S={};n.current.querySelectorAll('[data-type="variable"]').forEach(M=>{const K=M.dataset.key;if(K){const V=M.innerText.replace(/[\u200B\n]/g,"").trim();V&&(S[K]=V)}}),n.current.querySelectorAll('[data-type="select"]').forEach(M=>{const K=M.dataset.key;if(K){const V=(M.getAttribute("data-value")||"").trim();V&&(S[K]=V)}}),n.current.querySelectorAll('[data-type="textarea"]').forEach(M=>{const K=M.dataset.key;if(K){const V=M.value.replace(/[\u200B]/g,"").trim();V&&(S[K]=V)}}),A.current[x]={variableValues:S,files:{...X.current},multiVariableCounts:{...J.current}}}if(g&&A.current[g]){const S=A.current[g];re.current=S,y(S.files),N(S.multiVariableCounts)}else if(g){re.current=null;const S={};t.forEach(H=>{H.type==="multi-variable"&&H.key&&(S[H.key]=1)}),N(S),y({})}else re.current=null,N({}),y({});ie.current=t},[t,ae]),d.useLayoutEffect(()=>{re.current&&n.current&&(n.current.__tempVariableValues=re.current.variableValues,setTimeout(()=>{re.current&&(re.current=null)},0))}),mt(n,t,o,C,E,te,void 0,r),ht(n,t,o,F),gt(n,t,F,r),vt(n,t,o,F),bt(n,t,F),xt(n,t,o,B),kt(n,z);const pe=ft(n);d.useEffect(()=>{if(!n.current)return;n.current.querySelectorAll(".rte-richtext-toggle").forEach(g=>{const S=g.getAttribute("data-expanded")==="true";g.innerHTML=S?'<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 fe=It(n);d.useEffect(()=>{if(t.length>0){b(!1);return}const x=()=>{if(!n.current){b(!0);return}const S=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"",H=n.current.querySelectorAll('[data-type="variable"]'),L=n.current.querySelectorAll('[data-type="upload"]');let P=!1;H.forEach(K=>{(K.textContent?.replace(/[\u200B\n]/g,"").trim()||"")&&(P=!0)}),L.forEach(K=>{K.querySelector(".upload-inner-wrapper.has-file")&&(P=!0)});const M=!S&&!P;b(M),t.length===0&&B(!M)};x();const g=new MutationObserver(x);return n.current&&g.observe(n.current,{childList:!0,subtree:!0,characterData:!0}),()=>{g.disconnect()}},[t]);const be=x=>{if(s){x.preventDefault();return}x.preventDefault();const g=x.clipboardData.getData("text/plain"),S=window.getSelection();if(S&&S.rangeCount>0){const H=S.anchorNode;if(H){let L=null;if(H.nodeType===Node.ELEMENT_NODE?L=H.closest('[data-type="variable"]'):H.nodeType===Node.TEXT_NODE&&H.parentElement&&(L=H.parentElement.closest('[data-type="variable"]')),L){const P=L.dataset.multiKey;if(P){const M=/[、,,\s\n\r\t]+/,K=g.split(M).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(L.dataset.index||"0",10),j=t.find(oe=>oe.type==="multi-variable"&&oe.key===P)?.maxCount||9,U=E[P]||1,D=Math.min(V+K.length,j);D>U&&N(R=>({...R,[P]:D}));const W=[];for(let R=0;R<U;R++){const oe=`${P}_${R}`,ue=n.current.querySelector(`[data-type="variable"][data-key="${oe}"][data-multi-key="${P}"]`);if(ue){const he=ue.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,ue=R.dataset.multiKey;if(oe&&ue!==P){const he=R.innerText.replace(/[\u200B\n]/g,"").trim();he&&(ne[oe]=he)}}),n.current.__tempVariableValues=ne,N(R=>({...R,[P]:G})),console.log("[Paste Event] 粘贴完成,已填充到多个输入框,值:",Z);return}else K.length===1&&console.log("[Paste Event] 粘贴单个值,将在失去焦点时检查是否需要拆分")}}}}document.execCommand("insertText",!1,g),lt(),setTimeout(()=>{const H=window.getSelection();if(H&&H.rangeCount>0){const L=H.anchorNode;if(L){let P=null;if(L.nodeType===Node.ELEMENT_NODE?P=L.closest('[data-type="variable"][data-multi-key]'):L.nodeType===Node.TEXT_NODE&&L.parentElement&&(P=L.parentElement.closest('[data-type="variable"][data-multi-key]')),P){const M=P.innerText.replace(/[\u200B\n]/g,"").trim();/[、,,\s]+/.test(M)&&(console.log("[Paste Event] 粘贴后检测到分隔符,内容:",M),console.log("[Paste Event] 提示:失去焦点后将自动拆分"))}}}},0)},Q=x=>{if(!x.target.files){x.target&&(x.target.value=""),w(null),O(null);return}if(_&&x.target.files&&x.target.files.length>0){const g=_,S=t.find(H=>H.type==="upload"&&H.key===g);if(S&&typeof S.maxCount=="number"&&typeof S.minCount=="number"){const H=S.maxCount,L=Array.from(x.target.files);let P=0;y(M=>{for(let U=0;U<H;U++){const D=`${g}-${U}`;M[D]&&(P=U+1)}const K=H-P,V=L.slice(0,K),j={...M};return V.forEach((U,D)=>{const W=`${g}-${P+D}`;j[W]=U}),j})}}else if(l&&x.target.files[0]){const g=x.target.files[0],S=l;y(H=>({...H,[S]:g}))}x.target&&(x.target.value=""),w(null),O(null)},de=x=>{y(g=>{const S={...g};return delete S[x],S})},me=x=>{const g=x.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(x.preventDefault(),x.stopPropagation(),C)return;F(null),v?v():n.current&&(n.current.innerHTML="",n.current.focus());return}if(C){const L=g.closest(".tag-node"),P=g.closest('[data-type="text"]');if(L||P){x.preventDefault(),x.stopPropagation();const M=window.getSelection();M&&M.removeAllRanges();return}}g.closest('[data-type="variable"]')||(I.current={x:x.clientX,y:x.clientY},z.current=!1,g.closest(".file-remove-btn")&&(x.preventDefault(),x.stopPropagation()))},ye=x=>{if(!x.target.closest('[data-type="variable"]')&&I.current){const H=Math.abs(x.clientX-I.current.x),L=Math.abs(x.clientY-I.current.y);(H>3||L>3)&&(z.current=!0)}},ve=x=>{if(x.target.closest('[data-type="variable"]')){I.current=null,z.current=!1;return}I.current=null,z.current=!1},Ee=x=>{if(s)return;const g=x.target;if(g.closest('[data-type="datepicker"]'))return;if(g.closest(".tag-close-btn")){x.preventDefault(),x.stopPropagation();return}if(t.length===0)return;const L=(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){x.preventDefault(),x.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 ce=W.dataset.maxHeight||"252";W.style.maxHeight=`${ce}px`,W.style.height="auto"}n.current&&(G?n.current.classList.add("rte-overlay-active"):n.current.classList.remove("rte-overlay-active"));return}const M=g.closest(".rte-richtext-toggle");if(M){x.preventDefault(),x.stopPropagation();const D=M.closest(".rte-richtext-wrapper"),W=D?.querySelector('[data-type="richtext"]'),G=!(M.getAttribute("data-expanded")==="true");((oe,ue)=>{oe.setAttribute("data-expanded",String(ue)),oe.innerHTML=ue?'<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>'})(M,G);const ce=D?.closest(".rte-richtext-required");ce?ce.classList.toggle("rte-richtext-expanded",G):D&&D.classList.toggle("rte-richtext-expanded",G);const R=D?.closest(".exclusion-wrapper")||D?.parentElement;if(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),L(R,G)),n.current)if(n.current.classList.toggle("rte-richtext-fullscreen-active",G),G)m.current=n.current.scrollTop||0,setTimeout(()=>{n.current&&(n.current.scrollTop=0,n.current.scrollLeft=0)},0);else{const oe=m.current||0;setTimeout(()=>{n.current&&(n.current.scrollTop=oe)},0)}return}if(g.closest('[data-type="text"]')){x.preventDefault(),x.stopPropagation();const D=window.getSelection();D&&D.removeAllRanges();return}if(C&&g.closest(".tag-node")){x.preventDefault(),x.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){x.preventDefault(),x.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(ce=>{const R={...ce},oe=[];for(let ue=0;ue<ne;ue++){const he=`${Z}-${ue}`,xe=R[he];xe!=null&&he!==W&&oe.push(xe)}for(let ue=0;ue<ne;ue++)delete R[`${Z}-${ue}`];return oe.forEach((ue,he)=>{R[`${Z}-${he}`]=ue}),R})}else de(W)}else de(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 ce=0;ce<G;ce++)o[`${W}-${ce}`]!=null&&(ne+=1);ne<G&&a.current?(a.current.multiple=!0,O(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}},$e=x=>{const S=x.target.closest('[data-type="variable"]');if(S){const H=window.getSelection();if(H){const L=document.createRange(),P=S.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=S.firstChild;j&&j.nodeType===Node.TEXT_NODE?(L.setStart(j,K),L.setEnd(j,V)):L.selectNodeContents(S)}else L.selectNodeContents(S),L.collapse(!0);H.removeAllRanges(),H.addRange(L)}}},lt=()=>{if(t.length===0){if(n.current){const S=!(n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"");b(S),B(!S)}return}if(Ve(n),n.current&&n.current.querySelectorAll('[data-type="variable"]').forEach(S=>{const H=S.querySelector(".variable-info-icon");if(H){let L=!1;const P=document.createTreeWalker(S,NodeFilter.SHOW_TEXT,{acceptNode:M=>H.contains(M)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT});for(;P.nextNode();)if(P.currentNode.textContent?.replace(/[\u200B\n]/g,"").trim()){L=!0;break}L?H.classList.add("hidden"):H.classList.remove("hidden")}}),Ie(n,t,o),Pe(n,t,o,B),!n.current)return;t.filter(g=>g.type==="multi-variable"&&g.key).forEach(g=>{if(!g.key)return;const S=g.maxCount||9,H=E[g.key]||1,L=[];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();L.push(W)}}const M=(L[L.length-1]||"")==="";let K=!1,V=-1;for(let j=0;j<L.length-1;j++)if(L[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,ce=ne.nodeType===Node.ELEMENT_NODE?ne.closest('[data-type="variable"][data-multi-key]'):ne.parentElement?.closest('[data-type="variable"][data-multi-key]');if(ce){const R=ce.dataset.key;if(R){const oe=document.createRange();oe.setStartBefore(ce),oe.setEnd(G.startContainer,G.startOffset);const ue=oe.toString().length;te.current={key:R,offset:ue}}}}const U=[...L];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(M?U.length:U.length+1,1);n.current.querySelectorAll('[data-type="variable"]').forEach(G=>{const ne=G.dataset.key,ce=G.dataset.multiKey;if(ne&&ce!==g.key){const R=G.innerText.replace(/[\u200B\n]/g,"").trim();R&&(D[ne]=R)}}),n.current.__tempVariableValues=D,N(G=>({...G,[g.key]:W}));return}if(!M){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<S){const Z=window.getSelection();if(Z&&Z.rangeCount>0){const G=Z.getRangeAt(0),ne=G.startContainer,ce=ne.nodeType===Node.ELEMENT_NODE?ne.closest('[data-type="variable"][data-multi-key]'):ne.parentElement?.closest('[data-type="variable"][data-multi-key]');if(ce){const R=ce.dataset.key;if(R){const oe=document.createRange();oe.setStartBefore(ce),oe.setEnd(G.startContainer,G.startOffset);const ue=oe.toString().length;te.current={key:R,offset:ue}}}}N(G=>({...G,[g.key]:H+1}))}}})};d.useLayoutEffect(()=>{const x=n.current;if(!x)return;const g=new Map,S=P=>{const M=P.target,K=P.relatedTarget;!M||!n.current||!n.current.contains(M)||K&&n.current.contains(K)||setTimeout(()=>{if(n.current){if(t.length===0){const V=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"";B(V.length>0);return}Ve(n),Ie(n,t,o),Pe(n,t,o,B)}},0)};x.addEventListener("blur",S,!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]'),M=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,ue)=>{(ue===j||ue.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 ce=j.innerText.replace(/[\u200B\n]/g,"").trim();console.log("[Blur Event] 失去焦点的 multi-variable 输入框:",{multiKey:D,currentKey:W,index:Z,content:ce});const R=/[、,,\s]+/;if(R.test(ce)){const oe=ce.split(R).map(xe=>xe.trim()).filter(xe=>xe.length>0);console.log("[Blur Event] 拆分前的内容:",ce),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=E[D]||1,it=parseInt(Z,10),ct=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] 当前索引:",it),console.log("[Blur Event] 要插入的值:",he),_e.splice(it,1,...he);const we=_e.slice(0,ct);console.log("[Blur Event] 拆分后的所有值:",we),we.length>0&&we[we.length-1]!==""&&we.length<ct&&we.push("");const jt=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,N(ge=>({...ge,[D]:jt}))}}}};P.forEach(K=>{K.addEventListener("blur",M,!1),g.set(K,M)})},L=setTimeout(()=>{H()},0);return()=>{clearTimeout(L),x.removeEventListener("blur",S,!0),g.forEach((P,M)=>{M.removeEventListener("blur",P,!1)}),g.clear()}},[t,E,o]);const Ft=x=>{if(s){x.preventDefault();return}if(x.key==="Enter"){x.preventDefault();return}const g=window.getSelection();if(g&&g.rangeCount>0){const S=g.anchorNode;let H=null;if(S&&(S.nodeType===Node.ELEMENT_NODE?H=S.closest('[data-type="text"]'):S.nodeType===Node.TEXT_NODE&&S.parentElement&&(H=S.parentElement.closest('[data-type="text"]'))),H){if(x.preventDefault(),x.stopPropagation(),n.current){const L=n.current.querySelector('[data-type="variable"], [data-type="upload"]');L&&L.focus()}return}}if(C&&g&&g.rangeCount>0){const S=g.anchorNode;let H=null;if(S&&(S.nodeType===Node.ELEMENT_NODE?H=S.closest(".tag-node"):S.nodeType===Node.TEXT_NODE&&S.parentElement&&(H=S.parentElement.closest(".tag-node"))),H){if(x.preventDefault(),x.stopPropagation(),n.current){const L=n.current.querySelector('[data-type="variable"], [data-type="upload"]');L&&L.focus()}return}}if(x.key==="Escape"&&n.current){if(C){x.preventDefault();return}n.current.innerHTML="",n.current.focus()}if(x.key==="Backspace"){const S=window.getSelection();if(S&&S.rangeCount>0){const H=S.getRangeAt(0),L=S.anchorNode;if(C){let M=null,K=null;if(L&&(L.nodeType===Node.ELEMENT_NODE?(M=L.closest(".tag-node"),K=L.closest('[data-type="text"]')):L.nodeType===Node.TEXT_NODE&&L.parentElement&&(M=L.parentElement.closest(".tag-node"),K=L.parentElement.closest('[data-type="text"]'))),(M||K)&&H.collapsed&&H.startOffset===0){x.preventDefault();return}}let P=null;if(L&&(L.nodeType===Node.ELEMENT_NODE?P=L.closest('[data-type="variable"]'):L.nodeType===Node.TEXT_NODE&&L.parentElement&&(P=L.parentElement.closest('[data-type="variable"]'))),P){if(!H.collapsed)return;const M=P.innerText;if(M==="​"||M===""){x.preventDefault();return}if(H.startOffset===0){x.preventDefault();return}if(M.startsWith("​")&&H.startOffset===1){x.preventDefault();return}}}}},zt=()=>{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;f(P,P);return}const x=n.current;let g="";const S={},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 M=P,K=M.dataset.type,V=M.dataset.key;if(K==="variable"&&V){let j="";const U=document.createTreeWalker(M,NodeFilter.SHOW_TEXT,{acceptNode:W=>{const Z=M.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=M.dataset.multiKey;if(W){(!S[W]||!Array.isArray(S[W]))&&(S[W]=[]);const Z=S[W];Z.push(D),Z.length>1&&(g+=" "),g+=D}else S[V]=D,g+=D}}else if(K==="select"&&V){const j=(M.getAttribute("data-value")||"").trim();j&&(S[V]=j,g+=j)}else if(K==="textarea"&&V){const U=(M.value||"").replace(/\u200B/g,"").trim();U&&(S[V]=U,g+=U)}else if(K==="richtext"&&V){const U=(M.textContent||"").replace(/\u200B/g,"").trim();U&&(S[V]=U,g+=U)}else if(K==="datepicker"&&V){const U=(M.getAttribute("data-value")||"").trim();if(U)if(U.includes(",")){const D=U.split(",");D.length===2?(S[V]=D,g+=`[${D[0]}, ${D[1]}]`):(S[V]=U,g+=U)}else S[V]=U,g+=U}else if(K==="upload"&&V){const j=M.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)}S[j]||(S[j]=D.length>0?D:null,D.length>0&&(g+=` [附带${D.length}个文件: ${D.map(W=>W.name).join(", ")}] `))}else S[V]=o[V]??null,o[V]&&(g+=` [附带文件: ${o[V]?.name}] `)}else S[V]=o[V]??null,o[V]&&(g+=` [附带文件: ${o[V]?.name}] `)}else{if(M.classList.contains("tag-close-btn")||M.classList.contains("file-remove-btn"))return;M.getAttribute("contenteditable")==="false"&&!K&&M.classList.contains("tag-node")?g+=M.innerText:M.childNodes.forEach(H)}}}};if(x.childNodes.forEach(H),g=g.trim(),!g)return;const L=new FormData;L.append("fullPrompt",g),Object.keys(S).forEach(P=>{const M=S[P];M!=null&&(M instanceof File?L.append(P,M):Array.isArray(M)?t.some(V=>V.type==="multi-variable"&&V.key===P)?M.forEach(V=>{V!=null&&V!==""&&L.append(P,String(V))}):M.forEach((V,j)=>{V!=null&&(V instanceof File?L.append(`${P}[${j}]`,V):typeof V=="string"?L.append(`${P}[${j}]`,V):L.append(`${P}[${j}]`,String(V)))}):typeof M=="string"?L.append(P,M):L.append(P,String(M)))}),f(L,g)},Yt={...p?{width:typeof p=="number"?`${p}px`:p}:{},...h?{border:h}:{},...c?{background:c}:{}};return u.jsxs("div",{className:"rich-text-editor",style:Yt,"data-disabled":s,children:[u.jsx("div",{ref:n,className:`rte-editor ${t.length===0?"rte-editor-default":""} ${se&&T?"rte-editor-empty":""}`,contentEditable:t.length===0,suppressContentEditableWarning:!0,"data-placeholder":T,onMouseDown:me,onMouseMove:ye,onMouseUp:ve,onClick:Ee,onDoubleClick:$e,onInput:lt,onKeyDown:Ft,onPaste:be}),u.jsx("input",{type:"file",ref:a,className:"rte-file-input",accept:".csv,.xlsx,.xls,.txt,.pdf,image/*",onChange:Q}),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(x=>x.isShowNew!==1).map(x=>({key:x.key,label:u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[x.icon&&u.jsx("i",{className:x.icon}),u.jsx("span",{children:x.label})]}),onClick:()=>{k?.(x)}}))},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 x=t.find(S=>S.type==="tag");if(!x||!x.text)return null;const g=q.find(S=>S.label===x.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:zt,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"})})]})]}),$?.anchorEl&&(()=>{if(!document.body.contains($.anchorEl))return null;let x="",g={background:"var(--neutral-800, #262626)"};if($.type==="upload")x=t.find(L=>L.type==="upload"&&L.key===$.key)?.tooltip||"";else if($.type==="tag")x=$.anchorEl.dataset.tooltip||"";else if($.type==="upload-label")x=$.anchorEl.dataset.fileName||"";else if($.type==="variable")x=$.anchorEl.dataset.tooltip||"";else if($.type==="upload-preview"){const H=o[$.key];if(H&&H.type&&H.type.startsWith("image/")){const L=URL.createObjectURL(H);x=u.jsx("div",{style:{width:120,height:120,display:"flex",alignItems:"center",justifyContent:"center"},children:u.jsx("img",{src:L,style:{maxWidth:120,maxHeight:120,objectFit:"contain"}})}),g={background:"#fff",padding:4},setTimeout(()=>URL.revokeObjectURL(L),1e3)}else x=""}if(!x)return null;const S=$.type==="upload-preview"?"#0A0A0A":"#fff";return De.createPortal(u.jsx(ee.Tooltip,{arrow:!1,title:u.jsx("div",{style:{maxWidth:"200px",fontSize:"12px",color:S},children:x}),open:!0,placement:"top",getPopupContainer:()=>document.body,overlayInnerStyle:g,children:u.jsx("div",{style:{position:"fixed",left:`${$.anchorEl.getBoundingClientRect().left}px`,top:`${$.anchorEl.getBoundingClientRect().top}px`,width:`${$.anchorEl.offsetWidth}px`,height:`${$.anchorEl.offsetHeight}px`,pointerEvents:"none"}})}),document.body)})(),fe,pe]})};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:t,batchSize:f,loadingProgress:i,loadIcon:s,onBatchSizeChange:p,onLoadNextPage:C,onStartAutoLoad:q,onStopLoad:k})=>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:k,className:"auto_load_stop_btn",children:"停止加载"})]}):u.jsxs("div",{className:"auto_load_container",children:[u.jsx("div",{onClick:C,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:f,onChange:p,options:Pt,disabled:t,size:"small",className:"auto_load_select",popupMatchSelectWidth:84})]})]}),Bt=({current:t,loadIcon:f,pageSize:i,total:s,cachedPages:p,loadedCount:C,autoLoading:q=!1,loadingProgress:k,onChange:v,onLoadNextPage:e,onStartAutoLoad:T,onStopLoading:h})=>{const[c,r]=d.useState(5),n=Math.ceil(s/i),a=d.useMemo(()=>p.length>=n,[p,n]),o=()=>Array.from({length:n},(w,_)=>_+1).filter(w=>!p.includes(w)).slice(0,c),y=(l,w,_)=>{const O=p.includes(l);return w==="prev"||w==="next"||w==="jump-prev"||w==="jump-next"?u.jsx("div",{className:"pageBox",children:_}):u.jsxs("div",{className:"pageBox",style:{backgroundColor:t===l?"#2563EB":"#f5f5f5",color:t===l?"#fff":O?"#171717":"#a3a3a3"},children:[l,!O&&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"}}),"已加载: ",C,"/",s,"条数据"]}),!a&&u.jsx(Vt,{loadIcon:f||void 0,autoLoading:q,batchSize:c,loadingProgress:k,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:f,autoLoading:i,loadingProgress:s,columns:p=[],dataSource:C=[],total:q,current:k,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}`})},[k]);return u.jsxs("div",{className:"flex flex-col",children:[u.jsx(ee.Table,{ref:a,...n,columns:p,dataSource:C,pagination:!1,virtual:!0}),u.jsx(Bt,{loading:f,autoLoading:i,loadingProgress:s,current:k,pageSize:v,total:q,loadedCount:C.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:f="请输入内容",animationSpeed:i=100,autoPlay:s=!0,value:p,onChange:C,...q})=>{const[k,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),_=d.useRef(e),O=d.useRef(r),$=d.useRef(k);d.useEffect(()=>{w.current=t,_.current=e,O.current=r,$.current=k});const F=d.useCallback((b,m)=>{let E=0;o(!0);const N=()=>{E<b.length?(v(b.slice(0,E+1)),E++,l.current=window.setTimeout(N,i)):(o(!1),m?.())};N()},[i]),z=d.useCallback(b=>{let m=$.current.length;const E=()=>{m>0?(v($.current.slice(0,m-1)),m--,l.current=window.setTimeout(E,i/2)):b?.()};E()},[i]),I=d.useCallback(()=>{if(w.current.length===0||O.current)return;c(!0);const b=w.current[_.current];$.current?z(()=>{F(b,()=>{y.current=window.setTimeout(()=>{T(m=>(m+1)%w.current.length),c(!1)},2e3)})}):F(b,()=>{y.current=window.setTimeout(()=>{T(m=>(m+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)},B=b=>{n(!1),!p&&t.length>0&&(v(""),T(0)),q.onBlur?.(b)},te=b=>{C?.(b.target.value),q.onChange?.(b)},se=()=>r||p?f:k||f;return u.jsxs("div",{style:{position:"relative"},children:[u.jsx(ee.Input,{...q,value:p,onChange:te,onFocus:Y,onBlur:B,placeholder:se(),style:{...q.style,position:"relative",zIndex:1}}),!r&&!p&&k&&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:k}),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; }