bi-components-library 1.0.35 → 1.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bi-components-library.css +1 -1
- package/dist/index.es.js +351 -339
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +3 -3
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/index.umd.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
(function(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,Me){"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:T=["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,...D}=h;return{...D,sorter:m?!0:void 0,render:w||(A=>A)}}),[t]),M=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(D=>({...D,total:w.total,current:m.page||D.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(()=>{M()},[M]),ne=d.useCallback((h,m,w)=>{const D={current:h.current||1,pageSize:h.pageSize||$,total:h.total||0},A={field:w?.field,order:w?.order};a(D),E(A)},[$]);return d.useEffect(()=>{const h=Object.keys(g).length>0;(x&&!G.current||h)&&(M(),G.current=!0)},[x,g,M]),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:T},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 T=p.some(y=>y.exclusionGroup==="separator"),g=Object.keys($).filter(y=>$[y]).length>0;let e=null;if(g&&T){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}"]`);T&&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"),T=[];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&&T.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;T.forEach(u=>{u.forEach(r=>{r.key&&g.add(r.key)})});const e=x.filter(u=>!u.key||!g.has(u.key));let S=(T.length===0,!0);for(const u of T){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.replace(/\n/g,"");f.replace(/\u200B/g,"")?s.classList.remove("show-placeholder"):(f!==""&&(s.innerText=""),s.classList.add("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",T=t.dataset.value||"",x=d.useMemo(()=>{try{return JSON.parse(f)}catch{return[]}},[f]),[g,e]=d.useState(T||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(T||void 0)},[T]),Me.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 T=s.querySelectorAll(".rte-select-host"),x=[];T.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(T=>{let x=!1;for(const g of T)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,$={},T){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,M=G?i[N.key]?.name:N.text,z=G?"":"hidden",O=N.tooltip&&!G?"":"hidden",R=G?"has-file":"",ne=G&&M?` data-file-name="${M.replace(/"/g,""")}"`:"";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}>${M||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||"",M=!K,z=M?"":K,O=M?"show-placeholder":"",R=N.exclusionGroup?` data-group="${N.exclusionGroup}"`:"",ne=N.tooltip?` data-tooltip="${N.tooltip.replace(/"/g,""")}" data-variable-key="${N.key||""}"`:"",h=N.tooltip&&M?"":"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,""")}" 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||T==="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,""")}" 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,""")}" 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,""")}" 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,""")}"`:"";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">展开</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]||"",M=!K,z=M?"":K,O=M?"show-placeholder":"",R=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,""")}" data-variable-key="${e.key||""}"`:"",ne=e.tooltip&&M?"":"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,""")}" 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,M=G?"show-placeholder":"",z=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,""")}" 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 ${M}">${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,""")}" 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={},$,T,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,$,T,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"})}}},T=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",T,!0),()=>{f.removeEventListener("mouseover",$,!0),f.removeEventListener("mouseout",T,!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 T;const x=()=>{if(!t.current)return;t.current.querySelectorAll(".tag-node[data-tooltip]").forEach(e=>{e.addEventListener("mouseenter",f),e.addEventListener("mouseleave",$)})};return T=requestAnimationFrame(()=>{T=requestAnimationFrame(x)}),()=>{cancelAnimationFrame(T),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=T=>{const x=T.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"})}},$=T=>{const x=T.target?.closest(".variable-info-icon"),g=T.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 T;const x=()=>{if(!t.current)return;t.current.querySelectorAll(".upload-label[data-file-name]").forEach(e=>{e.addEventListener("mouseenter",f),e.addEventListener("mouseleave",$)})};return T=requestAnimationFrame(()=>{T=requestAnimationFrame(x)}),()=>{cancelAnimationFrame(T),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 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,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,T(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=>{T(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 M=P;(M.closest('[data-type="datepicker"]')||M.closest(".rte-datepicker-wrapper")||M.closest(".rte-datepicker-host"))&&(N=!0),(M.closest('[data-type="select"]')||M.closest(".rte-select-wrapper")||M.closest(".rte-select-host"))&&(G=!0)}else if(P.parentElement){const M=P.parentElement;(M.closest('[data-type="datepicker"]')||M.closest(".rte-datepicker-wrapper")||M.closest(".rte-datepicker-host"))&&(N=!0),(M.closest('[data-type="select"]')||M.closest(".rte-select-wrapper")||M.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 M=t.current.querySelectorAll('[data-type="variable"]');if(M.length>0){let z=null;for(const O of Array.from(M))if(O.style.display!=="none"){z=O;break}if(!z&&M.length>0&&(z=M[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",T="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 D=String(h);return!D||D.length>=m?h:""+Array(m+1-D.length).join(w)+h},C={s:E,z:function(h){var m=-h.utcOffset(),w=Math.abs(m),D=Math.floor(w/60),A=w%60;return(m<=0?"+":"-")+E(D,2,"0")+":"+E(A,2,"0")},m:function h(m,w){if(m.date()<w.date())return-h(w,m);var D=12*(w.year()-m.year())+(w.month()-m.month()),A=m.clone().add(D,y),W=w-A<0,j=m.clone().add(D+(W?-1:1),y);return+(-(D+(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:T,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])},M=function h(m,w,D){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!D&&A&&(P=A),A||!D&&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=M,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=M(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(D){var A=D.date,W=D.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,D){var A=z(w);return this.startOf(D)<=A&&A<=this.endOf(D)},m.isAfter=function(w,D){return z(w)<this.startOf(D)},m.isBefore=function(w,D){return this.endOf(D)<z(w)},m.$g=function(w,D,A){return O.u(w)?this[D]:this.set(A,w)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(w,D){var A=this,W=!!O.u(D)||D,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 T:return oe(ve+"Milliseconds",3);default:return this.clone()}},m.endOf=function(w){return this.startOf(w,!1)},m.$set=function(w,D){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[T]=j+"Seconds",A[$]=j+"Milliseconds",A)[W],oe=W===e?this.$D+(D-this.$W):D;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,D){return this.clone().$set(w,D)},m.get=function(w){return this[O.p(w)]()},m.add=function(w,D){var A,W=this;w=Number(w);var j=O.p(D),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[T]=i,A)[j]||1,ie=this.$d.getTime()+w*oe;return O.w(ie,this)},m.subtract=function(w,D){return this.add(-1*w,D)},m.format=function(w){var D=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(D,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(D.$y).slice(-2);case"YYYY":return O.s(D.$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 D.$D;case"DD":return O.s(D.$D,2,"0");case"d":return String(D.$W);case"dd":return J(A.weekdaysMin,D.$W,ue,2);case"ddd":return J(A.weekdaysShort,D.$W,ue,3);case"dddd":return ue[D.$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(D.$s);case"ss":return O.s(D.$s,2,"0");case"SSS":return O.s(D.$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,D,A){var W,j=this,te=O.p(D),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 T: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,D){if(!w)return this.$L;var A=this.clone(),W=M(w,D,!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",T],["$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=M,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(T){return T&&typeof T=="object"&&"default"in T?T:{default:T}}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(T,x){return x==="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,x){var g=100*T+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,Dt=({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,T=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?T&&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 Me.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)},Mt=t=>{const[p,i]=d.useState([]);return d.useEffect(()=>{const s=t.current;if(!s)return;const f=()=>{const T=s.querySelectorAll(".rte-datepicker-host"),x=[];T.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)}}},`datepicker-${e}`))}),i(x)};f();const $=new MutationObserver(T=>{let x=!1;for(const g of T)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:T=[],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,M]=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({}),D=d.useRef({});d.useEffect(()=>{w.current=o},[o]),d.useEffect(()=>{D.current=ne},[ne]);const A=d.useCallback(k=>k.find(q=>q.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 q={};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&&(q[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&&(q[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&&(q[Y]=V)}}),m.current[k]={variableValues:q,files:{...w.current},multiVariableCounts:{...D.current}}}if(b&&m.current[b]){const q=m.current[b];j.current=q,v(q.files),h(q.multiVariableCounts)}else if(b){j.current=null;const q={};t.forEach(B=>{B.type==="multi-variable"&&B.key&&(q[B.key]=1)}),h(q),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,M),xt(n,N);const te=pt(n),oe=Mt(n);d.useEffect(()=>{if(t.length>0){R(!1);return}const k=()=>{if(!n.current){R(!0);return}const q=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=!q&&!I;R(L),t.length===0&&M(!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"),q=window.getSelection();if(q&&q.rangeCount>0){const B=q.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],q=l;v(B=>({...B,[q]:b}))}k.target&&(k.target.value=""),E(null)},de=k=>{v(b=>{const q={...b};return delete q[k],q})},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 q=k.target.closest('[data-type="variable"]');if(q){const B=window.getSelection();if(B){const _=document.createRange(),I=q.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=q.firstChild;U&&U.nodeType===Node.TEXT_NODE?(_.setStart(U,Y),_.setEnd(U,V)):_.selectNodeContents(q)}else _.selectNodeContents(q),_.collapse(!0);B.removeAllRanges(),B.addRange(_)}}},ge=()=>{if(t.length===0){if(n.current){const q=!(n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"");R(q),M(!q)}return}if(Ve(n),n.current&&n.current.querySelectorAll('[data-type="variable"]').forEach(q=>{const B=q.querySelector(".variable-info-icon");if(B){let _=!1;const I=document.createTreeWalker(q,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,M),!n.current)return;t.filter(b=>b.type==="multi-variable"&&b.key).forEach(b=>{if(!b.key)return;const q=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<q){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,q=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()||"";M(V.length>0);return}Ve(n),Ie(n,t,o),Pe(n,t,o,M)}},0)};k.addEventListener("blur",q,!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 De=Le.innerText.replace(/[\u200B\n]/g,"").trim();_e.push(De)}}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 De=he.innerText.replace(/[\u200B\n]/g,"").trim();De&&(Oe[Se]=De)}}),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",q,!0),b.forEach((I,L)=>{L.removeEventListener("blur",I,!1)}),b.clear()}},[t,ne,o]);const we=k=>{if(s){k.preventDefault();return}const b=window.getSelection();if(b&&b.rangeCount>0){const q=b.anchorNode;let B=null;if(q&&(q.nodeType===Node.ELEMENT_NODE?B=q.closest('[data-type="text"]'):q.nodeType===Node.TEXT_NODE&&q.parentElement&&(B=q.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 q=b.anchorNode;let B=null;if(q&&(q.nodeType===Node.ELEMENT_NODE?B=q.closest(".tag-node"):q.nodeType===Node.TEXT_NODE&&q.parentElement&&(B=q.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==="Enter"&&!k.shiftKey&&(k.preventDefault(),Ee()),k.key==="Escape"&&n.current){if($){k.preventDefault();return}n.current.innerHTML="",n.current.focus()}if(k.key==="Backspace"){const q=window.getSelection();if(q&&q.rangeCount>0){const B=q.getRangeAt(0),_=q.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 q={},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){(!q[X]||!Array.isArray(q[X]))&&(q[X]=[]);const ae=q[X];ae.push(H),ae.length>1&&(b+=" "),b+=H}else q[V]=H,b+=H}}else if(Y==="select"&&V){const U=(L.getAttribute("data-value")||"").trim();U&&(q[V]=U,b+=U)}else if(Y==="textarea"&&V){const Q=(L.value||"").replace(/\u200B/g,"").trim();Q&&(q[V]=Q,b+=Q)}else if(Y==="richtext"&&V){const Q=(L.textContent||"").replace(/\u200B/g,"").trim();Q&&(q[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?(q[V]=H,b+=`[${H[0]}, ${H[1]}]`):(q[V]=Q,b+=Q)}else q[V]=Q,b+=Q}else if(Y==="upload"&&V)q[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(q).forEach(I=>{const L=q[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:T.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:T.length>0?"pointer":"default"},children:[c.jsx("i",{className:"iconfont icon-zhinengti"}),c.jsx("span",{className:"rte-agent-text",children:"智能体"})]})})]})}),c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(()=>{const k=t.find(q=>q.type==="tag");if(!k||!k.text)return null;const b=T.find(q=>q.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 q=C.type==="upload-preview"?"#0A0A0A":"#fff";return Me.createPortal(c.jsx(Z.Tooltip,{arrow:!1,title:c.jsx("div",{style:{maxWidth:"200px",fontSize:"12px",color:q},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:T,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:T,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:T=!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:T,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:T,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:T,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:$,...T})=>{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 D=()=>{w<h.length?(g(h.slice(0,w+1)),w++,l.current=window.setTimeout(D,i)):(o(!1),m?.())};D()},[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]),M=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&&M(),()=>{v.current&&window.clearTimeout(v.current),l.current&&window.clearTimeout(l.current)}),[e,r,s,t.length,M]),d.useEffect(()=>{!y&&s&&t.length>0&&!r&&M()},[e,y,s,t.length,r,M]);const z=h=>{n(!0),v.current&&window.clearTimeout(v.current),l.current&&window.clearTimeout(l.current),u(!1),o(!1),T.onFocus?.(h)},O=h=>{n(!1),!f&&t.length>0&&(g(""),S(0)),T.onBlur?.(h)},R=h=>{$?.(h.target.value),T.onChange?.(h)},ne=()=>r||f?p:x||p;return c.jsxs("div",{style:{position:"relative"},children:[c.jsx(Z.Input,{...T,value:f,onChange:R,onFocus:z,onBlur:O,placeholder:ne(),style:{...T.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(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,""")}"`:"";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,""")}" 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,""")}" 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,""")}" 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,""")}" 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,""")}" 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,""")}"`:"";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,""")}" 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,""")}" 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,""")}" 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,""")}" 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:`
|
|
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:
|
|
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:`
|
|
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:
|
|
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"})});
|
|
12
12
|
//# sourceMappingURL=index.umd.js.map
|