bi-components-library 1.0.38 → 1.0.40

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