bi-components-library 1.0.33 → 1.0.34
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 +1844 -1751
- 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 +1 -1
package/dist/index.umd.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
(function(ae,i){typeof exports=="object"&&typeof module<"u"?i(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"],i):(ae=typeof globalThis<"u"?globalThis:ae||self,i(ae.SealSeekBIComponents={},ae.React,ae.React,ae.antd,ae.AntdIcons,ae.ReactDOM))})(this,function(ae,i,d,R,xe,Oe){"use strict";const He=({variant:t="primary",loading:u=!1,children:l,...s})=>{const p=S=>{switch(S){case"primary":return"primary";case"ghost":return"default";case"dashed":return"dashed";case"link":return"link";case"text":return"text";default:return"primary"}};return i.jsx(R.Button,{...s,type:p(t),loading:u,ghost:t==="ghost",children:l})};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:u,bordered:l=!0,hoverable:s=!1,size:p="default",...S})=>i.jsx(R.Card,{...S,title:t,bordered:l,hoverable:s,size:p,children:u});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,...u})=>{const l=u.footer!==void 0?u.footer:t?(s,{OkBtn:p,CancelBtn:S})=>i.jsxs(i.Fragment,{children:[i.jsx(p,{}),i.jsx(S,{})]}):null;return i.jsx(R.Modal,{...u,footer:l})};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 Ye=({scrollX:t,showPagination:u=!0,defaultPageSize:l=10,...s})=>i.jsx(R.Table,{...s,scroll:{x:t||"max-content",y:"50vh"},pagination:u?{hideOnSinglePage:!0,showSizeChanger:!0,showQuickJumper:!0,defaultPageSize:l,...s.pagination}:!1});Ye.__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"]}),ze=({name:t,size:u,color:l,style:s,...p})=>{const S={fontSize:u,color:l,...s};return i.jsx(ct,{...p,type:t,style:S})};ze.__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:u="暂无数据",className:l,emptyChildren:s,loadingText:p,emptyImage:S})=>t?i.jsxs(R.Flex,{className:`pt-10 w-full ${l||""}`,align:"center",justify:"center",vertical:!0,children:[i.jsx(R.Spin,{size:"large"}),p&&i.jsx("div",{className:"mt-4 text-gray-500",children:p})]}):i.jsx(R.Flex,{className:`pt-10 w-full ${l||""}`,align:"center",justify:"center",children:i.jsx(R.Empty,{image:S,description:u,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:u=!1,className:l,size:s="small",type:p="default"})=>i.jsx(R.Button,{size:s,type:p,icon:i.jsx(xe.LeftOutlined,{}),className:`cursor-pointer ${l||""}`,onClick:t,children:u&&"返回"});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:u,...l})=>{const s=t?`px-0 h-auto ${u||""}`:u;return i.jsx(R.Button,{type:"link",...l,className:s,children:l.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}=R.Select,Ke=({columns:t,request:u,searchFields:l=[],showSearch:s=!0,showRefresh:p=!0,defaultPageSize:S=10,pageSizeOptions:q=["10","20","50","100"],autoLoad:$=!0,externalParams:E={},...e})=>{const[N,h]=d.useState([]),[c,r]=d.useState(!1),[n,o]=d.useState({current:1,pageSize:S,total:0}),[a,m]=d.useState({}),[g,x]=d.useState({}),[w]=R.Form.useForm(),B=d.useRef(n);B.current=n;const C=d.useRef(E);C.current=E;const O=d.useRef(!1),Y=d.useMemo(()=>t.map(y=>{const{sortable:f,render:k,...D}=y;return{...D,sorter:f?!0:void 0,render:k||(A=>A)}}),[t]),z=d.useCallback(async(y={})=>{if(u){r(!0);try{const f={page:B.current.current,pageSize:B.current.pageSize,sortField:g.field,sortOrder:g.order,searchParams:{...a,...C.current},...y},k=await u(f);k.success&&(h(k.data),o(D=>({...D,total:k.total,current:f.page||D.current})))}catch(f){console.error("加载数据失败:",f)}finally{r(!1)}}},[u,g,a]),U=d.useCallback(y=>{m(y),o(f=>({...f,current:1}))},[]),G=d.useCallback(()=>{w.resetFields(),m({}),o(y=>({...y,current:1}))},[w]),Z=d.useCallback(()=>{z()},[z]),ne=d.useCallback((y,f,k)=>{const D={current:y.current||1,pageSize:y.pageSize||S,total:y.total||0},A={field:k?.field,order:k?.order};o(D),x(A)},[S]);return d.useEffect(()=>{const y=Object.keys(E).length>0;($&&!O.current||y)&&(z(),O.current=!0)},[$,E,z]),i.jsxs("div",{children:[s&&l.length>0&&i.jsx(R.Card,{size:"small",style:{marginBottom:16},children:i.jsxs(R.Form,{form:w,layout:"inline",onFinish:U,initialValues:l.reduce((y,f)=>(f.defaultValue!==void 0&&(y[f.key]=f.defaultValue),y),{}),children:[l.map(y=>i.jsx(R.Form.Item,{name:y.key,label:y.label,children:y.type==="input"?i.jsx(R.Input,{placeholder:y.placeholder||`请输入${y.label}`,style:{width:200}}):i.jsx(R.Select,{placeholder:y.placeholder||`请选择${y.label}`,style:{width:200},allowClear:!0,children:y.options?.map(f=>i.jsx(ut,{value:f.value,children:f.label},f.value))})},y.key)),i.jsx(R.Form.Item,{children:i.jsxs(R.Space,{children:[i.jsx(R.Button,{type:"primary",htmlType:"submit",icon:i.jsx(xe.SearchOutlined,{}),children:"查询"}),i.jsx(R.Button,{onClick:G,children:"重置"}),p&&i.jsx(R.Button,{icon:i.jsx(xe.ReloadOutlined,{}),onClick:Z,children:"刷新"})]})})]})}),i.jsx(R.Table,{...e,columns:Y,dataSource:N,loading:c,pagination:{...n,showSizeChanger:!0,showQuickJumper:!0,showTotal:(y,f)=>`第 ${f[0]}-${f[1]} 条/共 ${y} 条`,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 Me(t,u,l){if(!t.current)return;const s=new Set,p={};for(const h of u)h.exclusionGroup&&h.exclusionGroup!=="separator"&&(s.add(h.exclusionGroup),p[h.exclusionGroup]||(p[h.exclusionGroup]=[]),p[h.exclusionGroup].push({type:h.type,key:h.key,exclusionGroup:h.exclusionGroup}));const S={};for(const h of s){S[h]=!1;for(const c of p[h])if(c.type==="upload"&&c.key){if(l[c.key]!==null&&l[c.key]!==void 0){S[h]=!0;break}}else if((c.type==="variable"||c.type==="multi-variable")&&c.key){const r=c.type==="multi-variable"?t.current.querySelectorAll(`[data-type="variable"][data-multi-key="${c.key}"]`):[t.current.querySelector(`[data-type="variable"][data-key="${c.key}"]`)].filter(Boolean);for(const n of r)if(!n.classList.contains("show-placeholder")&&n.innerText.replace(/[\u200B\n]/g,"").trim().length>0){S[h]=!0;break}if(S[h])break}}const q=u.some(h=>h.exclusionGroup==="separator"),E=Object.keys(S).filter(h=>S[h]).length>0;let e=null;if(E&&q){for(const h of u)if(h.exclusionGroup&&h.exclusionGroup!=="separator"&&S[h.exclusionGroup]){e=h.exclusionGroup;break}}for(const h of s){const c=t.current.querySelectorAll(`[data-group="${h}"]`);q&&E&&e?h===e?c.forEach(r=>{r.classList.contains("required-upload-group")?r.style.setProperty("display","inline-flex","important"):(r.classList.contains("exclusion-wrapper"),r.style.setProperty("display","inline-block","important"))}):c.forEach(r=>{r.style.display="none",r.style.setProperty("display","none","important")}):c.forEach(r=>{r.classList.contains("required-upload-group")?r.style.setProperty("display","inline-flex","important"):(r.classList.contains("exclusion-wrapper"),r.style.setProperty("display","inline-block","important"))})}t.current.querySelectorAll('[data-group="separator"]').forEach(h=>{h.style.display=E?"none":"inline"})}function Ie(t,u,l,s){if(!t.current){s(!1);return}const p=[];for(let c=0;c<u.length;c++){const r=u[c];if((r.type==="variable"||r.type==="upload"||r.type==="multi-variable"||r.type==="select"||r.type==="textarea"||r.type==="richtext"||r.type==="datepicker")&&r.required&&r.key){p.push({exclusionGroup:r.exclusionGroup||"",key:r.key,type:r.type==="multi-variable"?"variable":r.type,isMultiVariable:r.type==="multi-variable",minCount:r.type==="multi-variable"?r.minCount:void 0,__index:c});continue}if(r.type==="text"&&r.className?.includes("rte-text-required"))if(r.exclusionGroup)for(let n=c+1;n<u.length;n++){const o=u[n];if(o.exclusionGroup===r.exclusionGroup&&(o.type==="variable"||o.type==="upload"||o.type==="select"||o.type==="textarea"||o.type==="richtext"||o.type==="datepicker")&&o.key){p.push({exclusionGroup:r.exclusionGroup,key:o.key,type:o.type,__index:n});break}}else for(let n=c+1;n<u.length;n++){const o=u[n];if((o.type==="variable"||o.type==="upload"||o.type==="select"||o.type==="textarea"||o.type==="richtext"||o.type==="datepicker")&&o.key){p.push({exclusionGroup:o.exclusionGroup||"",key:o.key,type:o.type,__index:n});break}}}const S=u.some(c=>c.exclusionGroup==="separator"),q=[];if(S&&p.length>1){const c=[];u.forEach((r,n)=>{r.exclusionGroup==="separator"&&c.push(n)});for(const r of c){const o=p.filter(g=>typeof g.__index=="number"&&g.__index<r).sort((g,x)=>(x.__index??0)-(g.__index??0))[0],m=p.filter(g=>typeof g.__index=="number"&&g.__index>r).sort((g,x)=>(g.__index??0)-(x.__index??0))[0];o&&m&&q.push([o,m])}}if(p.length===0){if(u.length===0){if(!t.current){s(!1);return}const c=t.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"";s(c.length>0);return}s(!0);return}const $=p.filter(c=>{if(!t.current)return!1;if(c.exclusionGroup){const r=t.current.querySelectorAll(`[data-group="${c.exclusionGroup}"]`);if(r.length>0)return r[0].style.display!=="none"}if(c.type==="upload"&&c.key){const r=t.current.querySelector(`[data-type="upload"][data-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}else if(c.type==="variable"&&c.key)if(c.isMultiVariable){const r=t.current.querySelectorAll(`[data-type="variable"][data-multi-key="${c.key}"]`);if(r.length>0){const n=r[0],o=n.closest("[data-group]")||n.parentElement;return o?o.style.display!=="none":!0}}else{const r=t.current.querySelector(`[data-type="variable"][data-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}else if(c.type==="select"&&c.key){const r=t.current.querySelector(`[data-type="select"][data-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}else if(c.type==="textarea"&&c.key){const r=t.current.querySelector(`[data-type="textarea"][data-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}else if(c.type==="richtext"&&c.key){const r=t.current.querySelector(`[data-type="richtext"][data-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}else if(c.type==="datepicker"&&c.key){const r=t.current.querySelector(`[data-type="datepicker"][data-key="${c.key}"]`);if(r){const n=r.closest("[data-group]")||r.parentElement;return n?n.style.display!=="none":!0}}return!1});if($.length===0){s(!0);return}const E=new Set;q.forEach(c=>{c.forEach(r=>{r.key&&E.add(r.key)})});const e=$.filter(c=>!c.key||!E.has(c.key));let N=(q.length===0,!0);for(const c of q){const r=c.filter(o=>{if(!t.current)return!1;if(o.exclusionGroup){const a=t.current.querySelectorAll(`[data-group="${o.exclusionGroup}"]`);if(a.length>0)return a[0].style.display!=="none"}return!0});if(r.length===0)continue;let n=!1;for(const o of r)if(o.type==="upload"&&o.key){if(l[o.key]!==null&&l[o.key]!==void 0){n=!0;break}}else if(o.type==="variable"&&o.key)if(o.isMultiVariable){const a=t.current.querySelectorAll(`[data-type="variable"][data-multi-key="${o.key}"]`);let m=0;for(const x of Array.from(a)){if(x.classList.contains("show-placeholder"))continue;x.innerText.replace(/[\u200B\n]/g,"").trim().length>0&&(m+=1)}const g=o.minCount&&o.minCount>0?o.minCount:1;if(m>=g){n=!0;break}}else{const a=t.current.querySelector(`[data-type="variable"][data-key="${o.key}"]`);if(a){if(a.classList.contains("show-placeholder"))continue;if(a.innerText.replace(/[\u200B\n]/g,"").trim().length>0){n=!0;break}}}else if(o.type==="select"&&o.key){const a=t.current.querySelector(`[data-type="select"][data-key="${o.key}"]`);if(a&&(a.value||"").trim().length>0){n=!0;break}}else if(o.type==="textarea"&&o.key){const a=t.current.querySelector(`[data-type="textarea"][data-key="${o.key}"]`);if(a&&(a.value||"").trim().length>0){n=!0;break}}else if(o.type==="richtext"&&o.key){const a=t.current.querySelector(`[data-type="richtext"][data-key="${o.key}"]`);if(a&&(a.textContent||"").replace(/[\u200B]/g,"").trim().length>0){n=!0;break}}else if(o.type==="datepicker"&&o.key){const a=t.current.querySelector(`[data-type="datepicker"][data-key="${o.key}"]`);if(a&&(a.getAttribute("data-value")||"").trim().length>0){n=!0;break}}if(!n){N=!1;break}}let h=!0;for(const c of e)if(c.type==="upload"&&c.key){if(l[c.key]===null||l[c.key]===void 0){h=!1;break}}else if(c.type==="variable"&&c.key)if(c.isMultiVariable){const r=t.current.querySelectorAll(`[data-type="variable"][data-multi-key="${c.key}"]`);let n=0;for(const a of Array.from(r)){if(a.classList.contains("show-placeholder"))continue;a.innerText.replace(/[\u200B\n]/g,"").trim().length>0&&(n+=1)}const o=c.minCount&&c.minCount>0?c.minCount:1;if(n<o){h=!1;break}}else{const r=t.current.querySelector(`[data-type="variable"][data-key="${c.key}"]`);if(!r){h=!1;break}if(r.classList.contains("show-placeholder")){h=!1;break}if(r.innerText.replace(/[\u200B\n]/g,"").trim().length===0){h=!1;break}}else if(c.type==="select"&&c.key){const r=t.current.querySelector(`[data-type="select"][data-key="${c.key}"]`);if(!r||(r.value||"").trim().length===0){h=!1;break}}else if(c.type==="textarea"&&c.key){const r=t.current.querySelector(`[data-type="textarea"][data-key="${c.key}"]`);if(!r||(r.value||"").trim().length===0){h=!1;break}}else if(c.type==="richtext"&&c.key){const r=t.current.querySelector(`[data-type="richtext"][data-key="${c.key}"]`);if(!r||(r.textContent||"").replace(/[\u200B]/g,"").trim().length===0){h=!1;break}}else if(c.type==="datepicker"&&c.key){const r=t.current.querySelector(`[data-type="datepicker"][data-key="${c.key}"]`);if(!r||(r.getAttribute("data-value")||"").trim().length===0){h=!1;break}}s(N&&h)}function Ve(t,u){if(!t.current)return;t.current.querySelectorAll('[data-type="variable"]').forEach(s=>{const p=s.innerText.replace(/\n/g,"");p.replace(/\u200B/g,"")?s.classList.remove("show-placeholder"):(p!==""&&(s.innerText=""),s.classList.add("show-placeholder"))})}function dt(t,u,l,s,p,S={},q){if(!t.current)return;let $="",E=0;for(;E<u.length;){const e=u[E],N=E+1<u.length?u[E+1]:null;if(e.type==="text"&&(e.text?.includes("icon-bitian")||e.className==="rte-text-required")&&N){const a=N.type==="upload"&&N.exclusionGroup==="fileInput"&&e.exclusionGroup==="fileInput"&&e.exclusionGroup===N.exclusionGroup,m=N.type==="variable"&&N.exclusionGroup==="textInput"&&e.exclusionGroup==="textInput"&&e.exclusionGroup===N.exclusionGroup;if(a){const x=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group">`,w="</span>";let B="";e.className?B=`<span class="${e.className}">${e.text??""}</span>`:B=e.text??"";const C=N,O=l[C.key]!==null&&l[C.key]!==void 0,Y=O?l[C.key]:null,z=O?l[C.key]?.name:C.text,U=O?"":"hidden",G=C.tooltip&&!O?"":"hidden",Z=O?"has-file":"",ne=O&&z?` data-file-name="${z.replace(/"/g,""")}"`:"";let y="";O&&Y&&(Y.type?.startsWith("image/")?y=`<img class="upload-icon-img upload-icon-preview" src="${URL.createObjectURL(Y)}" alt="preview" />`:y="<i class='iconfont icon-exlwenjian'></i>");const f=`<span contenteditable="false" data-type="upload" data-key="${C.key}" class="upload-chip"><span class="upload-inner-wrapper ${Z}"><span class="upload-icon">${y}</span><span class="upload-label"${ne}>${z||C.text}</span>${C.tooltip?`<i contenteditable="false" class="iconfont icon-tishi upload-info-icon ${G}" data-upload-key="${C.key}" data-tooltip="${C.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${U}" title="移除文件">×</span></span></span>`;$+=x+B+f+w,E+=2;continue}if(m){const x=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group">`,w="</span>";let B="";e.className?B=`<span class="${e.className}">${e.text??""}</span>`:B=e.text??"";const C=N,Y=(C.key?p[C.key]:void 0)||C.text||"",z=!Y,U=z?"":Y,G=z?"show-placeholder":"",Z=C.exclusionGroup?` data-group="${C.exclusionGroup}"`:"",ne=C.tooltip?` data-tooltip="${C.tooltip.replace(/"/g,""")}" data-variable-key="${C.key||""}"`:"",y=C.tooltip&&z?"":"hidden",f=`<span contenteditable="true" data-type="variable" data-key="${C.key}" data-placeholder="${C.placeholder||""}"${Z}${ne} class="variable-chip ${G}">${U}${C.tooltip?`<i contenteditable="false" class="iconfont icon-tishi variable-info-icon ${y}" data-variable-key="${C.key}" data-tooltip="${C.tooltip.replace(/"/g,""")}" title="提示"></i>`:""}</span>`;$+=x+B+f+w,E+=2;continue}}const c=e.exclusionGroup?`data-group="${e.exclusionGroup}"`:"",r=e.exclusionGroup?`<span ${c} class="exclusion-wrapper">`:"",n=e.exclusionGroup?"</span>":"";let o="";if(e.type==="tag"){const m=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>',g=s?' data-locked="true"':"",x=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,""")}" data-tag-key="${e.key||""}"`:"";o=`<span contenteditable="false" class="tag-node group"${g}${x}><span class="tag-label">${e.text}</span>${m}</span>`}else if(e.type==="text"){const a=s?' data-locked="true" contenteditable="false"':' contenteditable="false"',g=(e.text??"").replace(/\n/g,"<br/>");e.className?o=`<span class="${e.className}"${a}>${g}</span>`:o=s?`<span${a}>${g}</span>`:`<span contenteditable="false">${g}</span>`}else if(e.type==="variable"&&e.key){const m=p[e.key]||e.text||"",g=!m,x=g?"":m,w=g?"show-placeholder":"",B=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",C=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,""")}" data-variable-key="${e.key||""}"`:"",O=e.tooltip&&g?"":"hidden",Y=`<span contenteditable="true" data-type="variable" data-key="${e.key}" data-placeholder="${e.placeholder||""}"${B}${C} class="variable-chip ${w}">${x}${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.required?o=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${Y}</span>`:o=Y}else if(e.type==="upload"&&e.key){const a=l[e.key]!==null&&l[e.key]!==void 0,m=a?l[e.key]:null,g=a?l[e.key]?.name:e.text,x=a?"":"hidden",w=e.tooltip&&!a?"":"hidden",B=a?"has-file":"",C=a&&g?` data-file-name="${g.replace(/"/g,""")}"`:"";let O="";a&&m&&(m.type?.startsWith("image/")?O=`<img class="upload-icon-img upload-icon-preview" src="${URL.createObjectURL(m)}" alt="preview" />`:O="<i class='iconfont icon-exlwenjian'></i>");const Y=`<span contenteditable="false" data-type="upload" data-key="${e.key}" class="upload-chip"><span class="upload-inner-wrapper ${B}"><span class="upload-icon">${O}</span><span class="upload-label"${C}>${g||e.text}</span>${e.tooltip?`<i contenteditable="false" class="iconfont icon-tishi upload-info-icon ${w}" data-upload-key="${e.key}" data-tooltip="${e.tooltip}" title="提示"></i>`:""}<span class="file-remove-btn ${x}" title="移除文件">×</span></span></span>`;e.required?o=`<span ${e.exclusionGroup?`data-group="${e.exclusionGroup}"`:""} class="exclusion-wrapper required-upload-group"><span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>${Y}</span>`:o=Y}else if(e.type==="select"&&e.key){const a=p[e.key]||e.defaultValue||"",m=(e.options||[]).map(w=>{const B=a===w.value?"selected":"";return`<option value="${w.value}" ${B}>${w.label}</option>`}).join(""),g=e.placeholder?`<option value="" ${a?"":"selected"} disabled hidden>${e.placeholder}</option>`:"",x=`<select data-type="select" data-key="${e.key}" class="rte-select">${g}${m}</select>`;e.required?o=`<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>${x}</span>`:o=x}else if(e.type==="textarea"&&e.key){const a=p[e.key]||"",m=e.maxHeight||252,g=e.expandable!==!1,x=e.placeholder?` placeholder="${e.placeholder}"`:"",w=`<textarea data-type="textarea" data-key="${e.key}" class="rte-textarea" data-max-height="${m}" style="max-height:${m}px;"${x}>${a}</textarea>`,B=g?`<button type="button" class="rte-textarea-toggle" data-key="${e.key}" data-expanded="false">展开</button>`:"",C=`<div class="rte-textarea-wrapper" data-key="${e.key}">${w}${B}</div>`;e.required?o=`<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>`:o=C}else if(e.type==="richtext"&&e.key){const a=p[e.key]||e.text||"",m=e.minHeight||140,g=e.placeholder?` data-placeholder="${e.placeholder}"`:"",x=e.expandable!==!1,w=a,B=`<div contenteditable="true" data-type="richtext" data-key="${e.key}" class="rte-richtext"${g} style="min-height:${m}px;">${w}</div>`,C=x?`<button type="button" class="rte-richtext-toggle" data-key="${e.key}" data-expanded="false">展开</button>`:"",O=`<div class="rte-richtext-wrapper" data-key="${e.key}">${B}${C}</div>`,Y=`<div class="rte-richtext-container" data-key="${e.key}">${O}</div>`;e.required?o=`<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>${Y}</div>`:o=Y}else if(e.type==="datepicker"&&e.key){const a=p[e.key]||"",m=e.placeholder?` data-placeholder="${e.placeholder}"`:"",g=e.limitRange?` data-limit-range="${e.limitRange}"`:"",x=e.disableFuture?' data-disable-future="true"':"",w=`<div data-type="datepicker" data-key="${e.key}" data-value="${a}" class="rte-datepicker-host"${m}${g}${x}></div>`;e.required?o=`<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>${w}</span>`:o=w}else if(e.type==="multi-variable"&&e.key){const a=e.maxCount||9,m=S[e.key]||1,g=Math.min(m,a);if(e.required){const x=`<span class="rte-text-required"><i class='iconfont icon-bitian' style='font-size: 10px;'></i></span>`,w=e.exclusionGroup?`data-group="${e.exclusionGroup}"`:"";let B="";for(let C=0;C<g;C++){const O=`${e.key}_${C}`,Y=p[O]||"",z=!Y,U=z?"":Y,G=z?"show-placeholder":"",Z=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,""")}" data-variable-key="${e.key||""}"`:"",ne=e.tooltip&&z?"":"hidden",y=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",f=`<span contenteditable="true" data-type="variable" data-key="${O}" data-multi-key="${e.key}" data-index="${C}" data-placeholder="${e.placeholder||""}"${y}${Z} class="variable-chip ${G}">${U}${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>`;C===0?B+=`<span ${w} class="exclusion-wrapper required-upload-group required-multi-first">${x}${f}</span>`:B+=f}o=B}else{let x="";for(let w=0;w<g;w++){const B=`${e.key}_${w}`,C=p[B]||"",O=!C,Y=O?"":C,z=O?"show-placeholder":"",U=e.tooltip?` data-tooltip="${e.tooltip.replace(/"/g,""")}" data-variable-key="${e.key||""}"`:"",G=e.tooltip&&O?"":"hidden",Z=e.exclusionGroup?` data-group="${e.exclusionGroup}"`:"",ne=`<span contenteditable="true" data-type="variable" data-key="${B}" data-multi-key="${e.key}" data-index="${w}" data-placeholder="${e.placeholder||""}"${Z}${U} class="variable-chip ${z}">${Y}${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>`;x+=ne}o=x}}$+=r+o+n,E++}t.current&&(t.current.innerHTML=$,setTimeout(()=>{if(!t.current)return;t.current.querySelectorAll('[data-type="variable"]').forEach(N=>{const h=N.innerText.replace(/\n/g,"");h.replace(/\u200B/g,"")?N.classList.remove("show-placeholder"):(h!==""&&(N.innerText=""),N.classList.add("show-placeholder"))})},0))}function pt(t,u,l,s,p={},S,q,$){const E=d.useCallback(()=>{if(!t.current)return;if(u.length===0){t.current.innerHTML="";return}let e={};const h=t.current.__tempVariableValues;if(h?(e=h,setTimeout(()=>{if(t.current){const c=t.current;c.__tempVariableValues===h&&delete c.__tempVariableValues}},100)):(t.current.querySelectorAll('[data-type="variable"]').forEach(m=>{const g=m.dataset.key;if(g){const x=m.innerText.replace(/[\u200B\n]/g,"").trim();x&&(e[g]=x)}}),t.current.querySelectorAll('[data-type="select"]').forEach(m=>{const g=m.dataset.key;if(g){const x=m.value.trim();x&&(e[g]=x)}}),t.current.querySelectorAll('[data-type="textarea"]').forEach(m=>{const g=m.dataset.key;if(g){const x=m.value.replace(/[\u200B]/g,"").trim();x&&(e[g]=x)}}),t.current.querySelectorAll('[data-type="richtext"]').forEach(m=>{const g=m.dataset.key;if(g){const x=(m.textContent||"").replace(/[\u200B]/g,"").trim();x&&(e[g]=x)}}),t.current.querySelectorAll('[data-type="datepicker"]').forEach(m=>{const g=m.dataset.key;if(g){const x=(m.getAttribute("data-value")||"").trim();x&&(e[g]=x)}})),dt(t,u,l,s,e,p,$),S?.current){const{key:c,offset:r}=S.current;setTimeout(()=>{if(!t.current)return;const n=t.current.querySelector(`[data-type="variable"][data-key="${c}"]`);if(n){try{const o=document.createRange(),a=document.createTreeWalker(n,NodeFilter.SHOW_TEXT,null);let m=0,g=null,x=0;for(;a.nextNode();){const w=a.currentNode,B=w.textContent?.length||0;if(m+B>=r){g=w,x=r-m;break}m+=B}if(g){o.setStart(g,Math.min(x,g.textContent?.length||0)),o.collapse(!0);const w=window.getSelection();w&&(w.removeAllRanges(),w.addRange(o),n.focus())}else{o.selectNodeContents(n),o.collapse(!1);const w=window.getSelection();w&&(w.removeAllRanges(),w.addRange(o),n.focus())}}catch{const o=document.createRange();o.selectNodeContents(n),o.collapse(!1);const a=window.getSelection();a&&(a.removeAllRanges(),a.addRange(o),n.focus())}S.current=null}},0)}},[u,l,s,t,p,S,q,$]);d.useEffect(()=>{E()},[E])}function ft(t,u,l,s){d.useEffect(()=>{const p=t.current;if(!p)return;const S=$=>{const E=$.target?.closest(".upload-info-icon");if(E&&E.classList.contains("upload-info-icon")){const N=E.dataset.uploadKey;N&&s({key:N,anchorEl:E,type:"upload"});return}const e=$.target?.closest('[data-type="upload"]');if(e){const N=e.dataset.key;if(N){const h=l[N];h&&h.type&&h.type.startsWith("image/")&&s({key:N,anchorEl:e,type:"upload-preview"})}}},q=$=>{const E=$.target?.closest(".upload-info-icon"),e=$.relatedTarget;if(E&&E.classList.contains("upload-info-icon")){!e||!p.contains(e)?s(null):e.closest(".upload-info-icon")||s(null);return}const N=$.target?.closest('[data-type="upload"]');if(N){const h=e;if(h&&N.contains(h))return;s(null)}};return p.addEventListener("mouseover",S,!0),p.addEventListener("mouseout",q,!0),()=>{p.removeEventListener("mouseover",S,!0),p.removeEventListener("mouseout",q,!0)}},[u,l,t,s])}function yt(t,u,l,s){d.useEffect(()=>{if(!t.current)return;const p=E=>{if(s==="hideTagClose")return;const e=E.currentTarget,N=e.dataset.tooltip,h=e.dataset.tagKey||"";N&&l({key:h,anchorEl:e,type:"tag"})},S=()=>{l(null)};let q;const $=()=>{if(!t.current)return;t.current.querySelectorAll(".tag-node[data-tooltip]").forEach(e=>{e.addEventListener("mouseenter",p),e.addEventListener("mouseleave",S)})};return q=requestAnimationFrame(()=>{q=requestAnimationFrame($)}),()=>{cancelAnimationFrame(q),t.current&&t.current.querySelectorAll(".tag-node[data-tooltip]").forEach(e=>{e.removeEventListener("mouseenter",p),e.removeEventListener("mouseleave",S)})}},[u,t,l,s])}function mt(t,u,l){d.useEffect(()=>{const s=t.current;if(!s)return;const p=q=>{const $=q.target?.closest(".variable-info-icon");if($&&$.classList.contains("variable-info-icon")){const E=$.dataset.variableKey;E&&l({key:E,anchorEl:$,type:"variable"})}},S=q=>{const $=q.target?.closest(".variable-info-icon"),E=q.relatedTarget;$&&$.classList.contains("variable-info-icon")&&(!E||!s.contains(E)?l(null):E.closest(".variable-info-icon")||l(null))};return s.addEventListener("mouseover",p,!0),s.addEventListener("mouseout",S,!0),()=>{s.removeEventListener("mouseover",p,!0),s.removeEventListener("mouseout",S,!0)}},[u,t,l])}function ht(t,u,l,s){d.useEffect(()=>{if(!t.current)return;const p=E=>{const e=E.currentTarget;e.dataset.fileName&&s({key:"",anchorEl:e,type:"upload-label"})},S=()=>{s(null)};let q;const $=()=>{if(!t.current)return;t.current.querySelectorAll(".upload-label[data-file-name]").forEach(e=>{e.addEventListener("mouseenter",p),e.addEventListener("mouseleave",S)})};return q=requestAnimationFrame(()=>{q=requestAnimationFrame($)}),()=>{cancelAnimationFrame(q),t.current&&t.current.querySelectorAll(".upload-label[data-file-name]").forEach(e=>{e.removeEventListener("mouseenter",p),e.removeEventListener("mouseleave",S)})}},[u,l,t,s])}function gt(t,u,l,s){d.useEffect(()=>{const p=setTimeout(()=>{Me(t,u,l),Ie(t,u,l,s)},0);return()=>clearTimeout(p)},[l,u,t,s])}function vt(t,u){const l=d.useRef(0);d.useEffect(()=>{if(!t.current)return;let s=!1,p=0;const S=a=>a instanceof HTMLElement?!!(a.closest(".rte-datepicker-wrapper")||a.closest(".rte-datepicker-host")||a.closest(".ant-picker")||a.closest(".ant-picker-dropdown")):!1,q=a=>{s=!0,S(a.target)&&(l.current=Date.now(),console.log("[SelectionCtrl] mousedown on datepicker target"))},$=()=>{s=!1,p=Date.now()};let E=!1,e=0;const N=()=>{E=!0},h=()=>{E=!1,e=Date.now()},c=()=>{e=Date.now()},r=a=>{S(a.target)&&(l.current=Date.now(),console.log("[SelectionCtrl] focusin datepicker target"))},n=()=>{if(Date.now()-l.current<800){console.log("[SelectionCtrl] skip selectionchange due to recent datepicker interaction");return}const a=document.activeElement;if(a&&(a.closest(".rte-datepicker-wrapper")||a.closest(".rte-datepicker-host")||a.closest(".ant-picker-dropdown")||a.tagName==="INPUT"&&a.closest(".ant-picker"))){console.log("[SelectionCtrl] activeElement is datepicker; skip");return}if(!t.current)return;const m=window.getSelection();if(!m||m.rangeCount===0||u.current||s||E||Date.now()-e<500)return;const g=m.getRangeAt(0);if(!g.collapsed)return t.current.contains(g.commonAncestorContainer),void 0;const x=m.anchorNode;if(!x||!t.current.contains(x))return;let w=!1;if(x.nodeType===Node.ELEMENT_NODE){const C=x;(C.closest('[data-type="datepicker"]')||C.closest(".rte-datepicker-wrapper")||C.closest(".rte-datepicker-host"))&&(w=!0)}else if(x.parentElement){const C=x.parentElement;(C.closest('[data-type="datepicker"]')||C.closest(".rte-datepicker-wrapper")||C.closest(".rte-datepicker-host"))&&(w=!0)}if(w)return;let B=null;if(x.nodeType===Node.ELEMENT_NODE?B=x.closest('[data-type="variable"]'):x.nodeType===Node.TEXT_NODE&&x.parentElement&&(B=x.parentElement.closest('[data-type="variable"]')),!B){if(Date.now()-p>500)return;const C=t.current.querySelectorAll('[data-type="variable"]');if(C.length>0){let O=null;for(const Y of Array.from(C))if(Y.style.display!=="none"){O=Y;break}if(!O&&C.length>0&&(O=C[0]),O){const Y=document.createRange();Y.selectNodeContents(O),Y.collapse(!1),m.removeAllRanges(),m.addRange(Y),O.focus()}else m.removeAllRanges()}else m.removeAllRanges()}},o=t.current;return o&&(o.addEventListener("compositionstart",N),o.addEventListener("compositionend",h),o.addEventListener("input",c)),document.addEventListener("mousedown",q),document.addEventListener("mouseup",$),document.addEventListener("focusin",r),document.addEventListener("selectionchange",n),()=>{const a=t.current;a&&(a.removeEventListener("compositionstart",N),a.removeEventListener("compositionend",h),a.removeEventListener("input",c)),document.removeEventListener("mousedown",q),document.removeEventListener("mouseup",$),document.removeEventListener("focusin",r),document.removeEventListener("selectionchange",n)}},[t,u])}function bt(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Te={exports:{}},xt=Te.exports,Xe;function Je(){return Xe||(Xe=1,function(t,u){(function(l,s){t.exports=s()})(xt,function(){var l=1e3,s=6e4,p=36e5,S="millisecond",q="second",$="minute",E="hour",e="day",N="week",h="month",c="quarter",r="year",n="date",o="Invalid Date",a=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|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,g={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(y){var f=["th","st","nd","rd"],k=y%100;return"["+y+(f[(k-20)%10]||f[k]||f[0])+"]"}},x=function(y,f,k){var D=String(y);return!D||D.length>=f?y:""+Array(f+1-D.length).join(k)+y},w={s:x,z:function(y){var f=-y.utcOffset(),k=Math.abs(f),D=Math.floor(k/60),A=k%60;return(f<=0?"+":"-")+x(D,2,"0")+":"+x(A,2,"0")},m:function y(f,k){if(f.date()<k.date())return-y(k,f);var D=12*(k.year()-f.year())+(k.month()-f.month()),A=f.clone().add(D,h),W=k-A<0,j=f.clone().add(D+(W?-1:1),h);return+(-(D+(k-A)/(W?A-j:j-A))||0)},a:function(y){return y<0?Math.ceil(y)||0:Math.floor(y)},p:function(y){return{M:h,y:r,w:N,d:e,D:n,h:E,m:$,s:q,ms:S,Q:c}[y]||String(y||"").toLowerCase().replace(/s$/,"")},u:function(y){return y===void 0}},B="en",C={};C[B]=g;var O="$isDayjsObject",Y=function(y){return y instanceof Z||!(!y||!y[O])},z=function y(f,k,D){var A;if(!f)return B;if(typeof f=="string"){var W=f.toLowerCase();C[W]&&(A=W),k&&(C[W]=k,A=W);var j=f.split("-");if(!A&&j.length>1)return y(j[0])}else{var te=f.name;C[te]=f,A=te}return!D&&A&&(B=A),A||!D&&B},U=function(y,f){if(Y(y))return y.clone();var k=typeof f=="object"?f:{};return k.date=y,k.args=arguments,new Z(k)},G=w;G.l=z,G.i=Y,G.w=function(y,f){return U(y,{locale:f.$L,utc:f.$u,x:f.$x,$offset:f.$offset})};var Z=function(){function y(k){this.$L=z(k.locale,null,!0),this.parse(k),this.$x=this.$x||k.x||{},this[O]=!0}var f=y.prototype;return f.parse=function(k){this.$d=function(D){var A=D.date,W=D.utc;if(A===null)return new Date(NaN);if(G.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(a);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)}(k),this.init()},f.init=function(){var k=this.$d;this.$y=k.getFullYear(),this.$M=k.getMonth(),this.$D=k.getDate(),this.$W=k.getDay(),this.$H=k.getHours(),this.$m=k.getMinutes(),this.$s=k.getSeconds(),this.$ms=k.getMilliseconds()},f.$utils=function(){return G},f.isValid=function(){return this.$d.toString()!==o},f.isSame=function(k,D){var A=U(k);return this.startOf(D)<=A&&A<=this.endOf(D)},f.isAfter=function(k,D){return U(k)<this.startOf(D)},f.isBefore=function(k,D){return this.endOf(D)<U(k)},f.$g=function(k,D,A){return G.u(k)?this[D]:this.set(A,k)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(k,D){var A=this,W=!!G.u(D)||D,j=G.p(k),te=function(ye,pe){var ve=G.w(A.$u?Date.UTC(A.$y,pe,ye):new Date(A.$y,pe,ye),A);return W?ve:ve.endOf(e)},oe=function(ye,pe){return G.w(A.toDate()[ye].apply(A.toDate("s"),(W?[0,0,0,0]:[23,59,59,999]).slice(pe)),A)},ie=this.$W,ue=this.$M,de=this.$D,ge="set"+(this.$u?"UTC":"");switch(j){case r:return W?te(1,0):te(31,11);case h:return W?te(1,ue):te(0,ue+1);case N:var Q=this.$locale().weekStart||0,ce=(ie<Q?ie+7:ie)-Q;return te(W?de-ce:de+(6-ce),ue);case e:case n:return oe(ge+"Hours",0);case E:return oe(ge+"Minutes",1);case $:return oe(ge+"Seconds",2);case q:return oe(ge+"Milliseconds",3);default:return this.clone()}},f.endOf=function(k){return this.startOf(k,!1)},f.$set=function(k,D){var A,W=G.p(k),j="set"+(this.$u?"UTC":""),te=(A={},A[e]=j+"Date",A[n]=j+"Date",A[h]=j+"Month",A[r]=j+"FullYear",A[E]=j+"Hours",A[$]=j+"Minutes",A[q]=j+"Seconds",A[S]=j+"Milliseconds",A)[W],oe=W===e?this.$D+(D-this.$W):D;if(W===h||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},f.set=function(k,D){return this.clone().$set(k,D)},f.get=function(k){return this[G.p(k)]()},f.add=function(k,D){var A,W=this;k=Number(k);var j=G.p(D),te=function(ue){var de=U(W);return G.w(de.date(de.date()+Math.round(ue*k)),W)};if(j===h)return this.set(h,this.$M+k);if(j===r)return this.set(r,this.$y+k);if(j===e)return te(1);if(j===N)return te(7);var oe=(A={},A[$]=s,A[E]=p,A[q]=l,A)[j]||1,ie=this.$d.getTime()+k*oe;return G.w(ie,this)},f.subtract=function(k,D){return this.add(-1*k,D)},f.format=function(k){var D=this,A=this.$locale();if(!this.isValid())return A.invalidDate||o;var W=k||"YYYY-MM-DDTHH:mm:ssZ",j=G.z(this),te=this.$H,oe=this.$m,ie=this.$M,ue=A.weekdays,de=A.months,ge=A.meridiem,Q=function(pe,ve,ke,Ee){return pe&&(pe[ve]||pe(D,W))||ke[ve].slice(0,Ee)},ce=function(pe){return G.s(te%12||12,pe,"0")},ye=ge||function(pe,ve,ke){var Ee=pe<12?"AM":"PM";return ke?Ee.toLowerCase():Ee};return W.replace(m,function(pe,ve){return ve||function(ke){switch(ke){case"YY":return String(D.$y).slice(-2);case"YYYY":return G.s(D.$y,4,"0");case"M":return ie+1;case"MM":return G.s(ie+1,2,"0");case"MMM":return Q(A.monthsShort,ie,de,3);case"MMMM":return Q(de,ie);case"D":return D.$D;case"DD":return G.s(D.$D,2,"0");case"d":return String(D.$W);case"dd":return Q(A.weekdaysMin,D.$W,ue,2);case"ddd":return Q(A.weekdaysShort,D.$W,ue,3);case"dddd":return ue[D.$W];case"H":return String(te);case"HH":return G.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 G.s(oe,2,"0");case"s":return String(D.$s);case"ss":return G.s(D.$s,2,"0");case"SSS":return G.s(D.$ms,3,"0");case"Z":return j}return null}(pe)||j.replace(":","")})},f.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},f.diff=function(k,D,A){var W,j=this,te=G.p(D),oe=U(k),ie=(oe.utcOffset()-this.utcOffset())*s,ue=this-oe,de=function(){return G.m(j,oe)};switch(te){case r:W=de()/12;break;case h:W=de();break;case c:W=de()/3;break;case N:W=(ue-ie)/6048e5;break;case e:W=(ue-ie)/864e5;break;case E:W=ue/p;break;case $:W=ue/s;break;case q:W=ue/l;break;default:W=ue}return A?W:G.a(W)},f.daysInMonth=function(){return this.endOf(h).$D},f.$locale=function(){return C[this.$L]},f.locale=function(k,D){if(!k)return this.$L;var A=this.clone(),W=z(k,D,!0);return W&&(A.$L=W),A},f.clone=function(){return G.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},y}(),ne=Z.prototype;return U.prototype=ne,[["$ms",S],["$s",q],["$m",$],["$H",E],["$W",e],["$M",h],["$y",r],["$D",n]].forEach(function(y){ne[y[1]]=function(f){return this.$g(f,y[0],y[1])}}),U.extend=function(y,f){return y.$i||(y(f,Z,U),y.$i=!0),U},U.locale=z,U.isDayjs=Y,U.unix=function(y){return U(1e3*y)},U.en=C[B],U.Ls=C,U.p={},U})}(Te)),Te.exports}var kt=Je();const qe=bt(kt);var Ne={exports:{}},wt=Ne.exports,Qe;function Et(){return Qe||(Qe=1,function(t,u){(function(l,s){t.exports=s(Je())})(wt,function(l){function s(q){return q&&typeof q=="object"&&"default"in q?q:{default:q}}var p=s(l),S={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(q,$){return $==="W"?q+"周":q+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(q,$){var E=100*q+$;return E<600?"凌晨":E<900?"早上":E<1100?"上午":E<1300?"中午":E<1800?"下午":"晚上"}};return p.default.locale(S,null,!0),S})}(Ne)),Ne.exports}Et();function Se(t){"@babel/helpers - typeof";return Se=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},Se(t)}function $t(t,u){if(Se(t)!="object"||!t)return t;var l=t[Symbol.toPrimitive];if(l!==void 0){var s=l.call(t,u);if(Se(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(u==="string"?String:Number)(t)}function Ct(t){var u=$t(t,"string");return Se(u)=="symbol"?u:u+""}function St(t,u,l){return(u=Ct(u))in t?Object.defineProperty(t,u,{value:l,enumerable:!0,configurable:!0,writable:!0}):t[u]=l,t}function Re(t,u){var l=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);u&&(s=s.filter(function(p){return Object.getOwnPropertyDescriptor(t,p).enumerable})),l.push.apply(l,s)}return l}function Ze(t){for(var u=1;u<arguments.length;u++){var l=arguments[u]!=null?arguments[u]:{};u%2?Re(Object(l),!0).forEach(function(s){St(t,s,l[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(l)):Re(Object(l)).forEach(function(s){Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(l,s))})}return t}var Tt={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0},qt=Ze(Ze({},Tt),{},{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 Nt={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},et={lang:Object.assign({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},qt),timePickerLocale:Object.assign({},Nt)};et.lang.ok="确定",qe.locale("zh-cn");const{RangePicker:At}=R.DatePicker,_t=({host:t,onChange:u})=>{const l=t.dataset.key,s=t.dataset.value,p=t.dataset.placeholder,S=t.dataset.limitRange?parseInt(t.dataset.limitRange,10):void 0,q=t.dataset.disableFuture==="true",[$,E]=d.useState(()=>{if(!s)return null;const o=s.split(",");return o.length===2&&o[0]&&o[1]?[qe(o[0]),qe(o[1])]:null}),[e,N]=d.useState(null),h=o=>o?q&&o.isAfter(qe(),"day")?!0:!S||!e||!e[0]?!1:Math.abs(o.diff(e[0],"days"))>S:!1,c=o=>{console.log("[DatePicker] onCalendarChange",o?.map(a=>a?.format("YYYY-MM-DD")||null)),N(o)},r=o=>{if(console.log("[DatePicker] onChange",o?.map(a=>a?.format("YYYY-MM-DD")||null)),E(o),N(null),o&&o[0]&&o[1]){const a=`${o[0].format("YYYY-MM-DD")},${o[1].format("YYYY-MM-DD")}`;t.setAttribute("data-value",a),u(l,a)}else t.setAttribute("data-value",""),u(l,"")},n=o=>{console.log("[DatePicker] onOpenChange",o),N(o?$:null)};return Oe.createPortal(i.jsx("div",{className:"rte-datepicker-wrapper",contentEditable:!1,style:{display:"inline-block",verticalAlign:"middle",width:"240px"},children:i.jsx(At,{value:$,disabledDate:h,onCalendarChange:c,onChange:r,onOpenChange:n,placeholder:[p||"开始日期",p||"结束日期"],style:{width:"100%"},size:"small",allowClear:!0,locale:et,getPopupContainer:()=>document.body,popupClassName:"rte-datepicker-dropdown"})}),t)},Lt=t=>{const[u,l]=d.useState([]);return d.useEffect(()=>{const s=t.current;if(!s)return;const p=()=>{const q=s.querySelectorAll(".rte-datepicker-host"),$=[];q.forEach(E=>{const e=E.getAttribute("data-key");e&&$.push(i.jsx(_t,{host:E,onChange:()=>{if(t.current){const N=new Event("input",{bubbles:!0});t.current.dispatchEvent(N)}}},`datepicker-${e}`))}),l($)};p();const S=new MutationObserver(q=>{let $=!1;for(const E of q)if(E.type==="childList"){let e=!1;if(E.addedNodes.forEach(N=>{if(N.nodeType===Node.ELEMENT_NODE){const h=N;(h.classList?.contains("rte-datepicker-host")||h.querySelector?.(".rte-datepicker-host"))&&(e=!0)}}),E.removedNodes.forEach(N=>{if(N.nodeType===Node.ELEMENT_NODE){const h=N;(h.classList?.contains("rte-datepicker-host")||h.querySelector?.(".rte-datepicker-host"))&&(e=!0)}}),e){$=!0;break}}$&&p()});return S.observe(s,{childList:!0,subtree:!0}),()=>S.disconnect()},[t]),u},tt=({config:t,onSend:u,isProcessing:l=!1,disabled:s=!1,width:p,lockStructure:S=!1,agentOptions:q=[],onAgentSelect:$,onAgentExit:E,loading:e=!1,placeholder:N,border:h,background:c="transparent",hideButtons:r})=>{const n=d.useRef(null),o=d.useRef(null),[a,m]=d.useState({}),[g,x]=d.useState(null),[w,B]=d.useState(null),C=d.useRef(!1),O=d.useRef(null),[Y,z]=d.useState(!1),U=d.useRef(null),[G,Z]=d.useState(!0),[ne,y]=d.useState(()=>{const b={};return t.forEach(v=>{v.type==="multi-variable"&&v.key&&(b[v.key]=1)}),b}),f=d.useRef({}),k=d.useRef({}),D=d.useRef({});d.useEffect(()=>{k.current=a},[a]),d.useEffect(()=>{D.current=ne},[ne]);const A=d.useCallback(b=>b.find(T=>T.type==="tag")?.text||null,[]),W=d.useRef(t),j=d.useRef(null);d.useEffect(()=>{const b=A(W.current),v=A(t);if(b&&b!==v&&n.current){const T={};n.current.querySelectorAll('[data-type="variable"]').forEach(L=>{const F=L.dataset.key;if(F){const I=L.innerText.replace(/[\u200B\n]/g,"").trim();I&&(T[F]=I)}}),n.current.querySelectorAll('[data-type="select"]').forEach(L=>{const F=L.dataset.key;if(F){const I=L.value.trim();I&&(T[F]=I)}}),n.current.querySelectorAll('[data-type="textarea"]').forEach(L=>{const F=L.dataset.key;if(F){const I=L.value.replace(/[\u200B]/g,"").trim();I&&(T[F]=I)}}),f.current[b]={variableValues:T,files:{...k.current},multiVariableCounts:{...D.current}}}if(v&&f.current[v]){const T=f.current[v];j.current=T,m(T.files),y(T.multiVariableCounts)}else if(v){j.current=null;const T={};t.forEach(V=>{V.type==="multi-variable"&&V.key&&(T[V.key]=1)}),y(T),m({})}else j.current=null,y({}),m({});W.current=t},[t,A]),d.useLayoutEffect(()=>{j.current&&n.current&&(n.current.__tempVariableValues=j.current.variableValues,setTimeout(()=>{j.current&&(j.current=null)},0))}),pt(n,t,a,S,ne,U,void 0,r),ft(n,t,a,B),yt(n,t,B,r),ht(n,t,a,B),mt(n,t,B),gt(n,t,a,z),vt(n,C);const te=Lt(n);d.useEffect(()=>{if(t.length>0){Z(!1);return}const b=()=>{if(!n.current){Z(!0);return}const T=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"",V=n.current.querySelectorAll('[data-type="variable"]'),_=n.current.querySelectorAll('[data-type="upload"]');let M=!1;V.forEach(F=>{(F.textContent?.replace(/[\u200B\n]/g,"").trim()||"")&&(M=!0)}),_.forEach(F=>{F.querySelector(".upload-inner-wrapper.has-file")&&(M=!0)});const L=!T&&!M;Z(L),t.length===0&&z(!L)};b();const v=new MutationObserver(b);return n.current&&v.observe(n.current,{childList:!0,subtree:!0,characterData:!0}),()=>{v.disconnect()}},[t]);const oe=b=>{if(s){b.preventDefault();return}b.preventDefault();const v=b.clipboardData.getData("text/plain"),T=window.getSelection();if(T&&T.rangeCount>0){const V=T.anchorNode;if(V){let _=null;if(V.nodeType===Node.ELEMENT_NODE?_=V.closest('[data-type="variable"]'):V.nodeType===Node.TEXT_NODE&&V.parentElement&&(_=V.parentElement.closest('[data-type="variable"]')),_){const M=_.dataset.multiKey;if(M){const L=/[、,,\s\n\r\t]+/,F=v.split(L).map(I=>I.trim()).filter(I=>I.length>0);if(console.log("[Paste Event] 粘贴的内容:",v),console.log("[Paste Event] 拆分后的值:",F),F.length>1){const I=parseInt(_.dataset.index||"0",10),K=t.find(le=>le.type==="multi-variable"&&le.key===M)?.maxCount||9,X=ne[M]||1,P=Math.min(I+F.length,K);P>X&&y(ee=>({...ee,[M]:P}));const J=[];for(let ee=0;ee<X;ee++){const le=`${M}_${ee}`,me=n.current.querySelector(`[data-type="variable"][data-key="${le}"][data-multi-key="${M}"]`);if(me){const be=me.innerText.replace(/[\u200B\n]/g,"").trim();J.push(be)}}J.splice(I,1,...F.slice(0,K-I));const re=J.slice(0,K);re.length>0&&re[re.length-1]!==""&&re.length<K&&re.push("");const H=Math.max(re.length,1),se={};re.forEach((ee,le)=>{ee&&(se[`${M}_${le}`]=ee)}),n.current.querySelectorAll('[data-type="variable"]').forEach(ee=>{const le=ee.dataset.key,me=ee.dataset.multiKey;if(le&&me!==M){const be=ee.innerText.replace(/[\u200B\n]/g,"").trim();be&&(se[le]=be)}}),n.current.__tempVariableValues=se,y(ee=>({...ee,[M]:H})),console.log("[Paste Event] 粘贴完成,已填充到多个输入框,值:",re);return}else F.length===1&&console.log("[Paste Event] 粘贴单个值,将在失去焦点时检查是否需要拆分")}}}}document.execCommand("insertText",!1,v),pe(),setTimeout(()=>{const V=window.getSelection();if(V&&V.rangeCount>0){const _=V.anchorNode;if(_){let M=null;if(_.nodeType===Node.ELEMENT_NODE?M=_.closest('[data-type="variable"][data-multi-key]'):_.nodeType===Node.TEXT_NODE&&_.parentElement&&(M=_.parentElement.closest('[data-type="variable"][data-multi-key]')),M){const L=M.innerText.replace(/[\u200B\n]/g,"").trim();/[、,,\s]+/.test(L)&&(console.log("[Paste Event] 粘贴后检测到分隔符,内容:",L),console.log("[Paste Event] 提示:失去焦点后将自动拆分"))}}}},0)},ie=b=>{if(b.target.files&&b.target.files[0]&&g){const v=b.target.files[0],T=g;m(V=>({...V,[T]:v}))}b.target&&(b.target.value=""),x(null)},ue=b=>{m(v=>{const T={...v};return delete T[b],T})},de=b=>{const v=b.target;if(v.closest(".rte-datepicker-wrapper")||v.closest(".rte-datepicker-host"))return;if(v.closest(".tag-close-btn")){if(b.preventDefault(),b.stopPropagation(),S)return;B(null),E?E():n.current&&(n.current.innerHTML="",n.current.focus());return}if(S){const _=v.closest(".tag-node"),M=v.closest('[data-type="text"]');if(_||M){b.preventDefault(),b.stopPropagation();const L=window.getSelection();L&&L.removeAllRanges();return}}v.closest('[data-type="variable"]')||(O.current={x:b.clientX,y:b.clientY},C.current=!1,v.closest(".file-remove-btn")&&(b.preventDefault(),b.stopPropagation()))},ge=b=>{if(!b.target.closest('[data-type="variable"]')&&O.current){const V=Math.abs(b.clientX-O.current.x),_=Math.abs(b.clientY-O.current.y);(V>3||_>3)&&(C.current=!0)}},Q=b=>{if(b.target.closest('[data-type="variable"]')){O.current=null,C.current=!1;return}O.current=null,C.current=!1},ce=b=>{if(s)return;const v=b.target;if(v.closest('[data-type="datepicker"]'))return;if(v.closest(".tag-close-btn")){b.preventDefault(),b.stopPropagation();return}if(t.length===0)return;const _=(P,J)=>{if(!n.current)return;Array.from(n.current.children).forEach(H=>{if(H!==P)if(J)H.dataset.prevDisplay===void 0&&(H.dataset.prevDisplay=H.style.display||""),H.style.setProperty("display","none","important");else if(H.dataset.prevDisplay!==void 0){const se=H.dataset.prevDisplay;se?H.style.display=se:H.style.removeProperty("display"),delete H.dataset.prevDisplay}else H.style.removeProperty("display")})},M=v.closest(".rte-textarea-toggle");if(M){b.preventDefault(),b.stopPropagation();const P=M.closest(".rte-textarea-wrapper"),J=P?.querySelector('[data-type="textarea"]'),H=!(M.getAttribute("data-expanded")==="true");M.setAttribute("data-expanded",String(H)),M.textContent=H?"收起":"展开",P&&P.classList.toggle("rte-textarea-expanded",H);const se=P?.closest(".rte-textarea-required");if(se?se.classList.toggle("rte-textarea-overlay",H):P&&P.classList.toggle("rte-textarea-overlay",H),J)if(H)J.classList.add("rte-textarea-expanded"),J.style.maxHeight="none",J.style.height="100%";else{J.classList.remove("rte-textarea-expanded");const fe=J.dataset.maxHeight||"252";J.style.maxHeight=`${fe}px`,J.style.height="auto"}n.current&&(H?n.current.classList.add("rte-overlay-active"):n.current.classList.remove("rte-overlay-active"));return}const L=v.closest(".rte-richtext-toggle");if(L){b.preventDefault(),b.stopPropagation();const P=L.closest(".rte-richtext-wrapper"),J=P?.querySelector('[data-type="richtext"]'),H=!(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,H);const fe=P?.closest(".rte-richtext-required");fe?fe.classList.toggle("rte-richtext-expanded",H):P&&P.classList.toggle("rte-richtext-expanded",H);const ee=P?.closest(".exclusion-wrapper")||P?.parentElement;J&&(H?(J.style.height="100%",J.style.overflow="auto"):(J.style.height="",J.style.overflow="")),ee&&(ee.classList.toggle("rte-richtext-host-expanded",H),_(ee,H)),n.current&&n.current.classList.toggle("rte-richtext-fullscreen-active",H);return}if(v.closest('[data-type="text"]')){b.preventDefault(),b.stopPropagation();const P=window.getSelection();P&&P.removeAllRanges();return}if(S&&v.closest(".tag-node")){b.preventDefault(),b.stopPropagation();const J=window.getSelection();J&&J.removeAllRanges();return}if(v.closest('[data-type="variable"]')){if(C.current)return;setTimeout(()=>{const P=window.getSelection();P&&!P.isCollapsed||Ve(n)},10);return}const K=v.closest(".file-remove-btn");if(K){b.preventDefault(),b.stopPropagation();const J=K.closest('[data-type="upload"]')?.dataset.key;J&&ue(J);return}const X=v.closest('[data-type="upload"]');if(X){const P=X.dataset.key;P&&(x(P),o.current?.click());return}},ye=b=>{const T=b.target.closest('[data-type="variable"]');if(T){const V=window.getSelection();if(V){const _=document.createRange(),M=T.textContent||"";if(M.replace(/\u200B/g,"")){let F=0,I=M.length;M.startsWith("")&&(F=1),M.endsWith("")&&M.length>1&&(I=M.length-1);const K=T.firstChild;K&&K.nodeType===Node.TEXT_NODE?(_.setStart(K,F),_.setEnd(K,I)):_.selectNodeContents(T)}else _.selectNodeContents(T),_.collapse(!0);V.removeAllRanges(),V.addRange(_)}}},pe=()=>{if(t.length===0){if(n.current){const T=!(n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"");Z(T),z(!T)}return}if(Ve(n),n.current&&n.current.querySelectorAll('[data-type="variable"]').forEach(T=>{const V=T.querySelector(".variable-info-icon");if(V){let _=!1;const M=document.createTreeWalker(T,NodeFilter.SHOW_TEXT,{acceptNode:L=>V.contains(L)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT});for(;M.nextNode();)if(M.currentNode.textContent?.replace(/[\u200B\n]/g,"").trim()){_=!0;break}_?V.classList.add("hidden"):V.classList.remove("hidden")}}),Me(n,t,a),Ie(n,t,a,z),!n.current)return;t.filter(v=>v.type==="multi-variable"&&v.key).forEach(v=>{if(!v.key)return;const T=v.maxCount||9,V=ne[v.key]||1,_=[];for(let K=0;K<V;K++){const X=`${v.key}_${K}`,P=n.current.querySelector(`[data-type="variable"][data-key="${X}"][data-multi-key="${v.key}"]`);if(P){const J=P.innerText.replace(/[\u200B\n]/g,"").trim();_.push(J)}}const L=(_[_.length-1]||"")==="";let F=!1,I=-1;for(let K=0;K<_.length-1;K++)if(_[K]===""){F=!0,I=K;break}if(F&&I>=0){const K=window.getSelection();if(K&&K.rangeCount>0){const H=K.getRangeAt(0),se=H.startContainer,fe=se.nodeType===Node.ELEMENT_NODE?se.closest('[data-type="variable"][data-multi-key]'):se.parentElement?.closest('[data-type="variable"][data-multi-key]');if(fe){const ee=fe.dataset.key;if(ee){const le=document.createRange();le.setStartBefore(fe),le.setEnd(H.startContainer,H.startOffset);const me=le.toString().length;U.current={key:ee,offset:me}}}}const X=[..._];for(let H=I;H<X.length-1;H++)X[H]=X[H+1];X.pop();const P={};X.forEach((H,se)=>{H&&(P[`${v.key}_${se}`]=H)});const J=Math.max(L?X.length:X.length+1,1);n.current.querySelectorAll('[data-type="variable"]').forEach(H=>{const se=H.dataset.key,fe=H.dataset.multiKey;if(se&&fe!==v.key){const ee=H.innerText.replace(/[\u200B\n]/g,"").trim();ee&&(P[se]=ee)}}),n.current.__tempVariableValues=P,y(H=>({...H,[v.key]:J}));return}if(!L){const K=V-1,X=`${v.key}_${K}`,P=n.current.querySelector(`[data-type="variable"][data-key="${X}"][data-multi-key="${v.key}"]`);if(P&&P.innerText.replace(/[\u200B\n]/g,"").trim().length>0&&V<T){const re=window.getSelection();if(re&&re.rangeCount>0){const H=re.getRangeAt(0),se=H.startContainer,fe=se.nodeType===Node.ELEMENT_NODE?se.closest('[data-type="variable"][data-multi-key]'):se.parentElement?.closest('[data-type="variable"][data-multi-key]');if(fe){const ee=fe.dataset.key;if(ee){const le=document.createRange();le.setStartBefore(fe),le.setEnd(H.startContainer,H.startOffset);const me=le.toString().length;U.current={key:ee,offset:me}}}}y(H=>({...H,[v.key]:V+1}))}}})};d.useLayoutEffect(()=>{const b=n.current;if(!b)return;const v=new Map,T=M=>{const L=M.target,F=M.relatedTarget;!L||!n.current||!n.current.contains(L)||F&&n.current.contains(F)||setTimeout(()=>{if(n.current){if(t.length===0){const I=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"";z(I.length>0);return}Ve(n),Me(n,t,a),Ie(n,t,a,z)}},0)};b.addEventListener("blur",T,!0);const V=()=>{if(!n.current)return;v.forEach((F,I)=>{I.removeEventListener("blur",F,!1)}),v.clear();const M=n.current.querySelectorAll('[data-type="variable"][data-multi-key]'),L=F=>{F.stopPropagation(),F.stopImmediatePropagation();const I=F.target;if(!I||!n.current||!n.current.contains(I))return;const K=I.closest('[data-type="variable"][data-multi-key]');if(!K||!n.current.contains(K))return;let X=!1;if(v.forEach((le,me)=>{(me===K||me.contains(I))&&(X=!0)}),!X)return;const P=K.dataset.multiKey,J=K.dataset.key,re=K.dataset.index;if(!P||!J||re===void 0)return;const H=F.relatedTarget;if(!(!H||!n.current.contains(H)))return;const fe=K.innerText.replace(/[\u200B\n]/g,"").trim();console.log("[Blur Event] 失去焦点的 multi-variable 输入框:",{multiKey:P,currentKey:J,index:re,content:fe});const ee=/[、,,\s]+/;if(ee.test(fe)){const le=fe.split(ee).map($e=>$e.trim()).filter($e=>$e.length>0);console.log("[Blur Event] 拆分前的内容:",fe),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===P);if($e){const Ae=ne[P]||1,lt=parseInt(re,10),it=$e.maxCount||9,_e=[];for(let he=0;he<Ae;he++){const Ce=`${P}_${he}`,Le=n.current.querySelector(`[data-type="variable"][data-key="${Ce}"][data-multi-key="${P}"]`);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 we=_e.slice(0,it);console.log("[Blur Event] 拆分后的所有值:",we),we.length>0&&we[we.length-1]!==""&&we.length<it&&we.push("");const Ot=Math.max(we.length,1),Pe={};we.forEach((he,Ce)=>{he&&(Pe[`${P}_${Ce}`]=he)}),n.current.querySelectorAll('[data-type="variable"]').forEach(he=>{const Ce=he.dataset.key,Le=he.dataset.multiKey;if(Ce&&Le!==P){const De=he.innerText.replace(/[\u200B\n]/g,"").trim();De&&(Pe[Ce]=De)}}),n.current.__tempVariableValues=Pe,y(he=>({...he,[P]:Ot}))}}}};M.forEach(F=>{F.addEventListener("blur",L,!1),v.set(F,L)})},_=setTimeout(()=>{V()},0);return()=>{clearTimeout(_),b.removeEventListener("blur",T,!0),v.forEach((M,L)=>{L.removeEventListener("blur",M,!1)}),v.clear()}},[t,ne,a]);const ve=b=>{if(s){b.preventDefault();return}const v=window.getSelection();if(v&&v.rangeCount>0){const T=v.anchorNode;let V=null;if(T&&(T.nodeType===Node.ELEMENT_NODE?V=T.closest('[data-type="text"]'):T.nodeType===Node.TEXT_NODE&&T.parentElement&&(V=T.parentElement.closest('[data-type="text"]'))),V){if(b.preventDefault(),b.stopPropagation(),n.current){const _=n.current.querySelector('[data-type="variable"], [data-type="upload"]');_&&_.focus()}return}}if(S&&v&&v.rangeCount>0){const T=v.anchorNode;let V=null;if(T&&(T.nodeType===Node.ELEMENT_NODE?V=T.closest(".tag-node"):T.nodeType===Node.TEXT_NODE&&T.parentElement&&(V=T.parentElement.closest(".tag-node"))),V){if(b.preventDefault(),b.stopPropagation(),n.current){const _=n.current.querySelector('[data-type="variable"], [data-type="upload"]');_&&_.focus()}return}}if(b.key==="Enter"&&!b.shiftKey&&(b.preventDefault(),ke()),b.key==="Escape"&&n.current){if(S){b.preventDefault();return}n.current.innerHTML="",n.current.focus()}if(b.key==="Backspace"){const T=window.getSelection();if(T&&T.rangeCount>0){const V=T.getRangeAt(0),_=T.anchorNode;if(S){let L=null,F=null;if(_&&(_.nodeType===Node.ELEMENT_NODE?(L=_.closest(".tag-node"),F=_.closest('[data-type="text"]')):_.nodeType===Node.TEXT_NODE&&_.parentElement&&(L=_.parentElement.closest(".tag-node"),F=_.parentElement.closest('[data-type="text"]'))),(L||F)&&V.collapsed&&V.startOffset===0){b.preventDefault();return}}let M=null;if(_&&(_.nodeType===Node.ELEMENT_NODE?M=_.closest('[data-type="variable"]'):_.nodeType===Node.TEXT_NODE&&_.parentElement&&(M=_.parentElement.closest('[data-type="variable"]'))),M){if(!V.collapsed)return;const L=M.innerText;if(L===""||L===""){b.preventDefault();return}if(V.startOffset===0){b.preventDefault();return}if(L.startsWith("")&&V.startOffset===1){b.preventDefault();return}}}}},ke=()=>{if(l||s||e||!Y||!n.current)return;if(t.length===0){const M=n.current.textContent?.replace(/[\u200B\n]/g,"").trim()||"";if(!M)return;u(M,M);return}const b=n.current;let v="";const T={},V=M=>{if(!(M.nodeType===Node.ELEMENT_NODE&&M.style.display==="none")){if(M.nodeType===Node.TEXT_NODE)v+=(M.textContent||"").replace(/\u200B/g,"");else if(M.nodeType===Node.ELEMENT_NODE){const L=M,F=L.dataset.type,I=L.dataset.key;if(F==="variable"&&I){let K="";const X=document.createTreeWalker(L,NodeFilter.SHOW_TEXT,{acceptNode:J=>{const re=L.querySelector(".variable-info-icon");return re&&re.contains(J)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}});for(;X.nextNode();)K+=X.currentNode.textContent||"";const P=K.replace(/[\u200B\n]/g,"").trim();if(P){const J=L.dataset.multiKey;if(J){(!T[J]||!Array.isArray(T[J]))&&(T[J]=[]);const re=T[J];re.push(P),re.length>1&&(v+=" "),v+=P}else T[I]=P,v+=P}}else if(F==="select"&&I){const K=L,X=(K.value||"").trim();if(X){T[I]=X;const P=K.selectedOptions?.[0];v+=P?.textContent||X}}else if(F==="textarea"&&I){const X=(L.value||"").replace(/\u200B/g,"").trim();X&&(T[I]=X,v+=X)}else if(F==="richtext"&&I){const X=(L.textContent||"").replace(/\u200B/g,"").trim();X&&(T[I]=X,v+=X)}else if(F==="datepicker"&&I){const X=(L.getAttribute("data-value")||"").trim();if(X)if(X.includes(",")){const P=X.split(",");P.length===2?(T[I]=P,v+=`[${P[0]}, ${P[1]}]`):(T[I]=X,v+=X)}else T[I]=X,v+=X}else if(F==="upload"&&I)T[I]=a[I]??null,a[I]&&(v+=` [附带文件: ${a[I]?.name}] `);else{if(L.classList.contains("tag-close-btn")||L.classList.contains("file-remove-btn"))return;L.getAttribute("contenteditable")==="false"&&!F&&L.classList.contains("tag-node")?v+=L.innerText:L.childNodes.forEach(V)}}}};if(b.childNodes.forEach(V),v=v.trim(),!v)return;const _=new FormData;_.append("fullPrompt",v),Object.keys(T).forEach(M=>{const L=T[M];L!=null&&(L instanceof File?_.append(M,L):Array.isArray(L)?t.some(I=>I.type==="multi-variable"&&I.key===M)?L.forEach(I=>{I!=null&&I!==""&&_.append(M,String(I))}):L.forEach((I,K)=>{I!=null&&(I instanceof File?_.append(`${M}[${K}]`,I):typeof I=="string"?_.append(`${M}[${K}]`,I):_.append(`${M}[${K}]`,String(I)))}):typeof L=="string"?_.append(M,L):_.append(M,String(L)))}),u(_,v)},Ee={...p?{width:typeof p=="number"?`${p}px`:p}:{},...h?{border:h}:{},...c?{background:c}:{}};return i.jsxs("div",{className:"rich-text-editor",style:Ee,"data-disabled":s,children:[i.jsx("div",{ref:n,className:`rte-editor ${t.length===0?"rte-editor-default":""} ${G&&N?"rte-editor-empty":""}`,contentEditable:t.length===0,suppressContentEditableWarning:!0,"data-placeholder":N,onMouseDown:de,onMouseMove:ge,onMouseUp:Q,onClick:ce,onDoubleClick:ye,onInput:pe,onKeyDown:ve,onPaste:oe}),i.jsx("input",{type:"file",ref:o,className:"rte-file-input",accept:".csv,.xlsx,.xls,.txt,.pdf,image/*",onChange:ie}),i.jsxs("div",{className:"rich-text-editor-footer",children:[i.jsx("div",{className:"rich-text-editor-footer-left",children:i.jsxs("div",{className:"rich-text-editor-brand",children:[i.jsxs("div",{className:"rte-brand-badge",children:[i.jsx("img",{src:"https://oospublic.sealseek.cn/file/website/ball.png",alt:""}),i.jsx("span",{className:"rte-brand-text",children:"SealSeek 1.0"})]}),r!=="hideAgent"&&i.jsx(R.Dropdown,{placement:"top",menu:{items:q.map(b=>({key:b.key,label:i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[b.icon&&i.jsx("i",{className:b.icon}),i.jsx("span",{children:b.label})]}),onClick:()=>{$?.(b)}}))},trigger:["click"],disabled:s||l,children:i.jsxs("div",{className:"rte-agent-badge",style:{cursor:q.length>0?"pointer":"default"},children:[i.jsx("i",{className:"iconfont icon-zhinengti"}),i.jsx("span",{className:"rte-agent-text",children:"智能体"})]})})]})}),i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(()=>{const b=t.find(T=>T.type==="tag");if(!b||!b.text)return null;const v=q.find(T=>T.label===b.text);return!v||v.points===void 0||v.points===null?null:i.jsxs("div",{className:"rte-points-badge",children:[i.jsx("i",{className:"iconfont icon-jifen",style:{marginRight:"4px"}}),i.jsxs("span",{style:{fontSize:"16px"},children:["-",String(v.points)]})]})})(),i.jsx("button",{type:"button",onClick:ke,disabled:l||s||e||!Y,className:"rich-text-editor-send-button",children:l||e?i.jsx("span",{className:"rte-send-spinner"}):i.jsx("i",{className:"iconfont icon-fasong"})})]})]}),w?.anchorEl&&(()=>{if(!document.body.contains(w.anchorEl))return null;let b="",v={background:"var(--neutral-800, #262626)"};if(w.type==="upload")b=t.find(_=>_.type==="upload"&&_.key===w.key)?.tooltip||"";else if(w.type==="tag")b=w.anchorEl.dataset.tooltip||"";else if(w.type==="upload-label")b=w.anchorEl.dataset.fileName||"";else if(w.type==="variable")b=w.anchorEl.dataset.tooltip||"";else if(w.type==="upload-preview"){const V=a[w.key];if(V&&V.type&&V.type.startsWith("image/")){const _=URL.createObjectURL(V);b=i.jsx("div",{style:{width:120,height:120,display:"flex",alignItems:"center",justifyContent:"center"},children:i.jsx("img",{src:_,style:{maxWidth:120,maxHeight:120,objectFit:"contain"}})}),v={background:"#fff",padding:4},setTimeout(()=>URL.revokeObjectURL(_),1e3)}else b=""}if(!b)return null;const T=w.type==="upload-preview"?"#0A0A0A":"#fff";return Oe.createPortal(i.jsx(R.Tooltip,{arrow:!1,title:i.jsx("div",{style:{maxWidth:"200px",fontSize:"12px",color:T},children:b}),open:!0,placement:"top",getPopupContainer:()=>document.body,overlayInnerStyle:v,children:i.jsx("div",{style:{position:"fixed",left:`${w.anchorEl.getBoundingClientRect().left}px`,top:`${w.anchorEl.getBoundingClientRect().top}px`,width:`${w.anchorEl.offsetWidth}px`,height:`${w.anchorEl.offsetHeight}px`,pointerEvents:"none"}})}),document.body)})(),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==",Dt=[{label:"5页",value:5},{label:"10页",value:10},{label:"15页",value:15},{label:"30页",value:30}],Mt=({autoLoading:t,batchSize:u,loadingProgress:l,loadIcon:s,onBatchSizeChange:p,onLoadNextPage:S,onStartAutoLoad:q,onStopLoad:$})=>t&&l?i.jsxs("div",{className:"auto_load_progress",children:[s||i.jsx("img",{src:nt,alt:"自动加载",width:14,height:14}),i.jsxs("span",{children:["正在加载第",l.currentPage,"/",l.totalPages,"页"]}),i.jsx(R.Progress,{percent:l.percentage,type:"line",size:[160,8]}),i.jsx("span",{onClick:$,className:"auto_load_stop_btn",children:"停止加载"})]}):i.jsxs("div",{className:"auto_load_container",children:[i.jsx("div",{onClick:S,className:"auto_load_next_btn",style:{backgroundColor:t?"#f5f5f5":"#2563eb"},children:"加载下一页"}),i.jsxs("div",{className:"right_control_wrap",style:{backgroundColor:t?"#f5f5f5":"#2563eb"},children:[i.jsxs("div",{className:"auto_load_btn",onClick:t?void 0:q,children:[s||i.jsx("img",{src:nt,alt:"自动加载",width:14,height:14}),i.jsx("span",{children:"自动加载"})]}),i.jsx(R.Select,{value:u,onChange:p,options:Dt,disabled:t,size:"small",className:"auto_load_select",popupMatchSelectWidth:84})]})]}),It=({current:t,loadIcon:u,pageSize:l,total:s,cachedPages:p,loadedCount:S,autoLoading:q=!1,loadingProgress:$,onChange:E,onLoadNextPage:e,onStartAutoLoad:N,onStopLoading:h})=>{const[c,r]=d.useState(5),n=Math.ceil(s/l),o=d.useMemo(()=>p.length>=n,[p,n]),a=()=>Array.from({length:n},(x,w)=>w+1).filter(x=>!p.includes(x)).slice(0,c),m=(g,x,w)=>{const B=p.includes(g);return x==="prev"||x==="next"||x==="jump-prev"||x==="jump-next"?i.jsx("div",{className:"pageBox",children:w}):i.jsxs("div",{className:"pageBox",style:{backgroundColor:t===g?"#2563EB":"#f5f5f5",color:t===g?"#fff":B?"#171717":"#a3a3a3"},children:[g,!B&&i.jsx("span",{className:"unload_spot"})]})};return i.jsxs("div",{className:"pagination_footer",children:[i.jsxs("div",{className:"pagination_leftWrap",children:[i.jsxs("span",{className:"pagination_total",children:[i.jsx(xe.InfoCircleOutlined,{style:{color:"#2563EB",marginRight:"4px"}}),"已加载: ",S,"/",s,"条数据"]}),!o&&i.jsx(Mt,{loadIcon:u||void 0,autoLoading:q,batchSize:c,loadingProgress:$,disabled:!e||!N,onBatchSizeChange:r,onLoadNextPage:()=>e?.(),onStartAutoLoad:()=>{const g=a();N?.(g)},onStopLoad:()=>h?.()})]}),i.jsx(R.Pagination,{current:t,pageSize:l,total:s,onChange:g=>E(g),showSizeChanger:!1,showQuickJumper:!1,showTotal:(g,x)=>"",itemRender:m})]})},at=t=>{const{loading:u,autoLoading:l,loadingProgress:s,columns:p=[],dataSource:S=[],total:q,current:$,pageSize:E,cachedPages:e,onChangePage:N,onLoadNextPage:h,onStartAutoLoad:c,onStopLoading:r,...n}=t,o=d.useRef(null),a=d.useCallback(m=>{N(m),e.includes(m)&&o.current?.scrollTo({key:`${(m-1)*E+1}`})},[$]);return i.jsxs("div",{className:"flex flex-col",children:[i.jsx(R.Table,{ref:o,...n,columns:p,dataSource:S,pagination:!1,virtual:!0}),i.jsx(It,{loading:u,autoLoading:l,loadingProgress:s,current:$,pageSize:E,total:q,loadedCount:S.length,cachedPages:e,onChange:a,onLoadNextPage:h,onStartAutoLoad:c,onStopLoading:r})]})};at.__docgenInfo={displayName:"VirtualTable",description:"虚拟滚动表格组件,支持分页、数据缓存和自动加载功能。",props:{loading:{description:"加载状态",name:"loading",required:!0,type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},total:{description:"总数据条数",name:"total",required:!0,type:{name:"number",raw:"number"},defaultValue:{value:"0"}},current:{description:"当前页码",name:"current",required:!0,type:{name:"number",raw:"number"},defaultValue:{value:"1"}},pageSize:{description:"每页数据条数",name:"pageSize",required:!0,type:{name:"number",raw:"number"},defaultValue:{value:"10"}},cachedPages:{description:"已缓存的页码数组",name:"cachedPages",required:!0,type:{name:"number[]",raw:"number[]"},defaultValue:{value:"[]"}},dataSource:{description:"数据源",name:"dataSource",required:!0,type:{name:"Array<T>",raw:"Array<T>"},defaultValue:{value:"[]"}},onChangePage:{description:"页码变更回调函数",name:"onChangePage",required:!0,type:{name:"function",raw:"function(page: number): void"},defaultValue:{value:"-"}},autoLoading:{description:"是否正在自动加载",name:"autoLoading",required:!0,type:{name:"boolean",raw:"boolean"},defaultValue:{value:"false"}},loadingProgress:{description:"加载进度信息",name:"loadingProgress",required:!0,type:{name:"object",raw:"{percentage: 0, currentPage: 1, totalPages: 5}"},defaultValue:{value:"-"}},onLoadNextPage:{description:"加载下一页回调函数",name:"onLoadNextPage",required:!1,type:{name:"function",raw:"function(page: number): void"},defaultValue:{value:"-"}},onStartAutoLoad:{description:"开始自动加载回调函数",name:"onStartAutoLoad",required:!1,type:{name:"function",raw:"function(loadNextPages: number[]): void"},defaultValue:{value:"-"}},onStopLoading:{description:"停止加载回调函数",name:"onStopLoading",required:!1,type:{name:"function",raw:"function(): void"},defaultValue:{value:"-"}},columns:{description:"表格列配置",name:"columns",required:!0,type:{name:"Array<object>",raw:"Array<object>"},defaultValue:{value:"[]"}}}};const rt=({texts:t=[],placeholder:u="请输入内容",animationSpeed:l=100,autoPlay:s=!0,value:p,onChange:S,...q})=>{const[$,E]=d.useState(""),[e,N]=d.useState(0),[h,c]=d.useState(!1),[r,n]=d.useState(!1),[o,a]=d.useState(!1),m=d.useRef(void 0),g=d.useRef(void 0),x=d.useRef(t),w=d.useRef(e),B=d.useRef(r),C=d.useRef($);d.useEffect(()=>{x.current=t,w.current=e,B.current=r,C.current=$});const O=d.useCallback((y,f)=>{let k=0;a(!0);const D=()=>{k<y.length?(E(y.slice(0,k+1)),k++,g.current=window.setTimeout(D,l)):(a(!1),f?.())};D()},[l]),Y=d.useCallback(y=>{let f=C.current.length;const k=()=>{f>0?(E(C.current.slice(0,f-1)),f--,g.current=window.setTimeout(k,l/2)):y?.()};k()},[l]),z=d.useCallback(()=>{if(x.current.length===0||B.current)return;c(!0);const y=x.current[w.current];C.current?Y(()=>{O(y,()=>{m.current=window.setTimeout(()=>{N(f=>(f+1)%x.current.length),c(!1)},2e3)})}):O(y,()=>{m.current=window.setTimeout(()=>{N(f=>(f+1)%x.current.length),c(!1)},2e3)})},[Y,O]);d.useEffect(()=>(s&&t.length>0&&!r&&z(),()=>{m.current&&window.clearTimeout(m.current),g.current&&window.clearTimeout(g.current)}),[e,r,s,t.length,z]),d.useEffect(()=>{!h&&s&&t.length>0&&!r&&z()},[e,h,s,t.length,r,z]);const U=y=>{n(!0),m.current&&window.clearTimeout(m.current),g.current&&window.clearTimeout(g.current),c(!1),a(!1),q.onFocus?.(y)},G=y=>{n(!1),!p&&t.length>0&&(E(""),N(0)),q.onBlur?.(y)},Z=y=>{S?.(y.target.value),q.onChange?.(y)},ne=()=>r||p?u:$||u;return i.jsxs("div",{style:{position:"relative"},children:[i.jsx(R.Input,{...q,value:p,onChange:Z,onFocus:U,onBlur:G,placeholder:ne(),style:{...q.style,position:"relative",zIndex:1}}),!r&&!p&&$&&i.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:[i.jsx("span",{children:$}),o&&i.jsx("span",{style:{display:"inline-block",width:1,height:"1.2em",backgroundColor:"#1890ff",marginLeft:2,animation:"blink 1s infinite"}})]}),i.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,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.isShow!==0).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:`
|
|
2
2
|
@keyframes blink {
|
|
3
3
|
0%, 50% { opacity: 1; }
|
|
4
4
|
51%, 100% { opacity: 0; }
|
|
5
5
|
}
|
|
6
|
-
`})]})};
|
|
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:T,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,M]=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 D=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(()=>{D(J,()=>{z.current=window.setTimeout(()=>{v(ce=>(ce+1)%R.current.length),E(!1)},2e3)})}):D(J,()=>{z.current=window.setTimeout(()=>{v(ce=>(ce+1)%R.current.length),E(!1)},2e3)})},[A,D]);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):M(ce),r.onChange?.(J))},ie=()=>{const J=$?f:K;J.trim()&&!S&&(T?.(J),$||M(""))},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:
|
|
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:T=!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]),M=d.useCallback(D=>{D.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(D=>{g?.(D)},[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}),T&&c.jsx("div",{className:`video-play-button ${E?"hovered":""}`,onClick:M,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:T,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,M=y.current.get(K);if(!M)return;const z=Math.min(...C),O=C.indexOf(z),R=O*(E+i),ne=C[O];M.style.position="absolute",M.style.left=`${R}px`,M.style.top=`${ne}px`,M.style.width=`${E}px`,C[O]+=M.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%",...T},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
|