bi-components-library 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(S,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("react"),require("antd"),require("@ant-design/icons")):typeof define=="function"&&define.amd?define(["exports","react","antd","@ant-design/icons"],t):(S=typeof globalThis<"u"?globalThis:S||self,t(S.SealSeekBIComponents={},S.React,S.antd,S.AntdIcons))})(this,function(S,t,b,X){"use strict";var ee={exports:{}},Q={};/**
1
+ (function(T,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("react"),require("antd"),require("@ant-design/icons")):typeof define=="function"&&define.amd?define(["exports","react","antd","@ant-design/icons"],t):(T=typeof globalThis<"u"?globalThis:T||self,t(T.SealSeekBIComponents={},T.React,T.antd,T.AntdIcons))})(this,function(T,t,w,X){"use strict";var ee={exports:{}},Q={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.js
4
4
  *
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var ne;function he(){if(ne)return Q;ne=1;var r=Symbol.for("react.transitional.element"),l=Symbol.for("react.fragment");function s(c,o,f){var I=null;if(f!==void 0&&(I=""+f),o.key!==void 0&&(I=""+o.key),"key"in o){f={};for(var p in o)p!=="key"&&(f[p]=o[p])}else f=o;return o=f.ref,{$$typeof:r,type:c,key:I,ref:o!==void 0?o:null,props:f}}return Q.Fragment=l,Q.jsx=s,Q.jsxs=s,Q}var Z={};/**
9
+ */var ne;function he(){if(ne)return Q;ne=1;var r=Symbol.for("react.transitional.element"),l=Symbol.for("react.fragment");function i(c,s,f){var _=null;if(f!==void 0&&(_=""+f),s.key!==void 0&&(_=""+s.key),"key"in s){f={};for(var p in s)p!=="key"&&(f[p]=s[p])}else f=s;return s=f.ref,{$$typeof:r,type:c,key:_,ref:s!==void 0?s:null,props:f}}return Q.Fragment=l,Q.jsx=i,Q.jsxs=i,Q}var Z={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -14,20 +14,20 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var re;function be(){return re||(re=1,process.env.NODE_ENV!=="production"&&function(){function r(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===B?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case i:return"Fragment";case h:return"Profiler";case g:return"StrictMode";case D:return"Suspense";case W:return"SuspenseList";case z:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case O:return"Portal";case x:return(e.displayName||"Context")+".Provider";case v:return(e._context.displayName||"Context")+".Consumer";case k:var d=e.render;return e=e.displayName,e||(e=d.displayName||d.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case A:return d=e.displayName||null,d!==null?d:r(e.type)||"Memo";case T:d=e._payload,e=e._init;try{return r(e(d))}catch{}}return null}function l(e){return""+e}function s(e){try{l(e);var d=!1}catch{d=!0}if(d){d=console;var R=d.error,P=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return R.call(d,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",P),l(e)}}function c(e){if(e===i)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===T)return"<...>";try{var d=r(e);return d?"<"+d+">":"<...>"}catch{return"<...>"}}function o(){var e=F.A;return e===null?null:e.getOwner()}function f(){return Error("react-stack-top-frame")}function I(e){if(L.call(e,"key")){var d=Object.getOwnPropertyDescriptor(e,"key").get;if(d&&d.isReactWarning)return!1}return e.key!==void 0}function p(e,d){function R(){u||(u=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",d))}R.isReactWarning=!0,Object.defineProperty(e,"key",{get:R,configurable:!0})}function C(){var e=r(this.type);return E[e]||(E[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function q(e,d,R,P,G,M,$,m){return R=M.ref,e={$$typeof:w,type:e,key:d,props:M,_owner:G},(R!==void 0?R:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:C}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:$}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:m}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function j(e,d,R,P,G,M,$,m){var y=d.children;if(y!==void 0)if(P)if(Y(y)){for(P=0;P<y.length;P++)V(y[P]);Object.freeze&&Object.freeze(y)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else V(y);if(L.call(d,"key")){y=r(e);var H=Object.keys(d).filter(function(Ce){return Ce!=="key"});P=0<H.length?"{key: someKey, "+H.join(": ..., ")+": ...}":"{key: someKey}",J[y+P]||(H=0<H.length?"{"+H.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var re;function be(){return re||(re=1,process.env.NODE_ENV!=="production"&&function(){function r(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===L?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case O:return"Fragment";case y:return"Profiler";case o:return"StrictMode";case D:return"Suspense";case W:return"SuspenseList";case R:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case V:return"Portal";case C:return(e.displayName||"Context")+".Provider";case v:return(e._context.displayName||"Context")+".Consumer";case h:var d=e.render;return e=e.displayName,e||(e=d.displayName||d.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case z:return d=e.displayName||null,d!==null?d:r(e.type)||"Memo";case F:d=e._payload,e=e._init;try{return r(e(d))}catch{}}return null}function l(e){return""+e}function i(e){try{l(e);var d=!1}catch{d=!0}if(d){d=console;var x=d.error,B=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return x.call(d,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",B),l(e)}}function c(e){if(e===O)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===F)return"<...>";try{var d=r(e);return d?"<"+d+">":"<...>"}catch{return"<...>"}}function s(){var e=E.A;return e===null?null:e.getOwner()}function f(){return Error("react-stack-top-frame")}function _(e){if(q.call(e,"key")){var d=Object.getOwnPropertyDescriptor(e,"key").get;if(d&&d.isReactWarning)return!1}return e.key!==void 0}function p(e,d){function x(){u||(u=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",d))}x.isReactWarning=!0,Object.defineProperty(e,"key",{get:x,configurable:!0})}function k(){var e=r(this.type);return S[e]||(S[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function N(e,d,x,B,G,M,$,m){return x=M.ref,e={$$typeof:b,type:e,key:d,props:M,_owner:G},(x!==void 0?x:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:k}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:$}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:m}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function I(e,d,x,B,G,M,$,m){var g=d.children;if(g!==void 0)if(B)if(Y(g)){for(B=0;B<g.length;B++)A(g[B]);Object.freeze&&Object.freeze(g)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else A(g);if(q.call(d,"key")){g=r(e);var H=Object.keys(d).filter(function(Ce){return Ce!=="key"});B=0<H.length?"{key: someKey, "+H.join(": ..., ")+": ...}":"{key: someKey}",J[g+B]||(H=0<H.length?"{"+H.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
18
  let props = %s;
19
19
  <%s {...props} />
20
20
  React keys must be passed directly to JSX without using spread:
21
21
  let props = %s;
22
- <%s key={someKey} {...props} />`,P,y,H,y),J[y+P]=!0)}if(y=null,R!==void 0&&(s(R),y=""+R),I(d)&&(s(d.key),y=""+d.key),"key"in d){R={};for(var K in d)K!=="key"&&(R[K]=d[K])}else R=d;return y&&p(R,typeof e=="function"?e.displayName||e.name||"Unknown":e),q(e,y,M,G,o(),R,$,m)}function V(e){typeof e=="object"&&e!==null&&e.$$typeof===w&&e._store&&(e._store.validated=1)}var _=t,w=Symbol.for("react.transitional.element"),O=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),g=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),v=Symbol.for("react.consumer"),x=Symbol.for("react.context"),k=Symbol.for("react.forward_ref"),D=Symbol.for("react.suspense"),W=Symbol.for("react.suspense_list"),A=Symbol.for("react.memo"),T=Symbol.for("react.lazy"),z=Symbol.for("react.activity"),B=Symbol.for("react.client.reference"),F=_.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L=Object.prototype.hasOwnProperty,Y=Array.isArray,a=console.createTask?console.createTask:function(){return null};_={react_stack_bottom_frame:function(e){return e()}};var u,E={},N=_.react_stack_bottom_frame.bind(_,f)(),U=a(c(f)),J={};Z.Fragment=i,Z.jsx=function(e,d,R,P,G){var M=1e4>F.recentlyCreatedOwnerStacks++;return j(e,d,R,!1,P,G,M?Error("react-stack-top-frame"):N,M?a(c(e)):U)},Z.jsxs=function(e,d,R,P,G){var M=1e4>F.recentlyCreatedOwnerStacks++;return j(e,d,R,!0,P,G,M?Error("react-stack-top-frame"):N,M?a(c(e)):U)}}()),Z}var ae;function we(){return ae||(ae=1,process.env.NODE_ENV==="production"?ee.exports=he():ee.exports=be()),ee.exports}var n=we();const oe=({variant:r="primary",loading:l=!1,children:s,...c})=>{const o=f=>{switch(f){case"primary":return"primary";case"ghost":return"default";case"dashed":return"dashed";case"link":return"link";case"text":return"text";default:return"primary"}};return n.jsx(b.Button,{...c,type:o(r),loading:l,ghost:r==="ghost",children:s})};oe.__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 se=({title:r,children:l,bordered:s=!0,hoverable:c=!1,size:o="default",...f})=>n.jsx(b.Card,{...f,title:r,bordered:s,hoverable:c,size:o,children:l});se.__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 ie=({showDefaultFooter:r=!0,...l})=>{const s=l.footer!==void 0?l.footer:r?(c,{OkBtn:o,CancelBtn:f})=>n.jsxs(n.Fragment,{children:[n.jsx(o,{}),n.jsx(f,{})]}):null;return n.jsx(b.Modal,{...l,footer:s})};ie.__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 le=({scrollX:r,showPagination:l=!0,defaultPageSize:s=10,...c})=>n.jsx(b.Table,{...c,scroll:{x:r||"max-content",y:"50vh"},pagination:l?{hideOnSinglePage:!0,showSizeChanger:!0,showQuickJumper:!0,defaultPageSize:s,...c.pagination}:!1});le.__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 ve=X.createFromIconfontCN({scriptUrl:["https://at.alicdn.com/t/c/font_4968458_eh91gfr4j9e.js"]}),ce=({name:r,size:l,color:s,style:c,...o})=>{const f={fontSize:l,color:s,...c};return n.jsx(ve,{...o,type:r,style:f})};ce.__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 ue=({loading:r,description:l="暂无数据",className:s,emptyChildren:c,loadingText:o,emptyImage:f})=>r?n.jsxs(b.Flex,{className:`pt-10 w-full ${s||""}`,align:"center",justify:"center",vertical:!0,children:[n.jsx(b.Spin,{size:"large"}),o&&n.jsx("div",{className:"mt-4 text-gray-500",children:o})]}):n.jsx(b.Flex,{className:`pt-10 w-full ${s||""}`,align:"center",justify:"center",children:n.jsx(b.Empty,{image:f,description:l,imageStyle:{height:180},children:c})});ue.__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 de=({onClick:r,showText:l=!1,className:s,size:c="small",type:o="default"})=>n.jsx(b.Button,{size:c,type:o,icon:n.jsx(X.LeftOutlined,{}),className:`cursor-pointer ${s||""}`,onClick:r,children:l&&"返回"});de.__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 fe=({removePadding:r=!0,className:l,...s})=>{const c=r?`px-0 h-auto ${l||""}`:l;return n.jsx(b.Button,{type:"link",...s,className:c,children:s.children})};fe.__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:xe}=b.Select,me=({columns:r,request:l,searchFields:s=[],showSearch:c=!0,showRefresh:o=!0,defaultPageSize:f=10,pageSizeOptions:I=["10","20","50","100"],autoLoad:p=!0,externalParams:C={},...q})=>{const[j,V]=t.useState([]),[_,w]=t.useState(!1),[O,i]=t.useState({current:1,pageSize:f,total:0}),[g,h]=t.useState({}),[v,x]=t.useState({}),[k]=b.Form.useForm(),D=t.useRef(O);D.current=O;const W=t.useRef(C);W.current=C;const A=t.useRef(!1),T=t.useMemo(()=>r.map(a=>{const{sortable:u,render:E,...N}=a;return{...N,sorter:u?!0:void 0,render:E||(U=>U)}}),[r]),z=t.useCallback(async(a={})=>{if(l){w(!0);try{const u={page:D.current.current,pageSize:D.current.pageSize,sortField:v.field,sortOrder:v.order,searchParams:{...g,...W.current},...a},E=await l(u);E.success&&(V(E.data),i(N=>({...N,total:E.total,current:u.page||N.current})))}catch(u){console.error("加载数据失败:",u)}finally{w(!1)}}},[l,v,g]),B=t.useCallback(a=>{h(a),i(u=>({...u,current:1}))},[]),F=t.useCallback(()=>{k.resetFields(),h({}),i(a=>({...a,current:1}))},[k]),L=t.useCallback(()=>{z()},[z]),Y=t.useCallback((a,u,E)=>{const N={current:a.current||1,pageSize:a.pageSize||f,total:a.total||0},U={field:E?.field,order:E?.order};i(N),x(U)},[f]);return t.useEffect(()=>{const a=Object.keys(C).length>0;(p&&!A.current||a)&&(z(),A.current=!0)},[p,C,z]),n.jsxs("div",{children:[c&&s.length>0&&n.jsx(b.Card,{size:"small",style:{marginBottom:16},children:n.jsxs(b.Form,{form:k,layout:"inline",onFinish:B,initialValues:s.reduce((a,u)=>(u.defaultValue!==void 0&&(a[u.key]=u.defaultValue),a),{}),children:[s.map(a=>n.jsx(b.Form.Item,{name:a.key,label:a.label,children:a.type==="input"?n.jsx(b.Input,{placeholder:a.placeholder||`请输入${a.label}`,style:{width:200}}):n.jsx(b.Select,{placeholder:a.placeholder||`请选择${a.label}`,style:{width:200},allowClear:!0,children:a.options?.map(u=>n.jsx(xe,{value:u.value,children:u.label},u.value))})},a.key)),n.jsx(b.Form.Item,{children:n.jsxs(b.Space,{children:[n.jsx(b.Button,{type:"primary",htmlType:"submit",icon:n.jsx(X.SearchOutlined,{}),children:"查询"}),n.jsx(b.Button,{onClick:F,children:"重置"}),o&&n.jsx(b.Button,{icon:n.jsx(X.ReloadOutlined,{}),onClick:L,children:"刷新"})]})})]})}),n.jsx(b.Table,{...q,columns:T,dataSource:j,loading:_,pagination:{...O,showSizeChanger:!0,showQuickJumper:!0,showTotal:(a,u)=>`第 ${u[0]}-${u[1]} 条/共 ${a} 条`,pageSizeOptions:I},onChange:Y,scroll:{x:"max-content",y:"50vh"}})]})};me.__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:"{}"}}}};const pe=({texts:r=[],placeholder:l="请输入内容",animationSpeed:s=100,autoPlay:c=!0,value:o,onChange:f,...I})=>{const[p,C]=t.useState(""),[q,j]=t.useState(0),[V,_]=t.useState(!1),[w,O]=t.useState(!1),[i,g]=t.useState(!1),h=t.useRef(void 0),v=t.useRef(void 0),x=t.useRef(r),k=t.useRef(q),D=t.useRef(w),W=t.useRef(p);t.useEffect(()=>{x.current=r,k.current=q,D.current=w,W.current=p});const A=t.useCallback((a,u)=>{let E=0;g(!0);const N=()=>{E<a.length?(C(a.slice(0,E+1)),E++,v.current=window.setTimeout(N,s)):(g(!1),u?.())};N()},[s]),T=t.useCallback(a=>{let u=W.current.length;const E=()=>{u>0?(C(W.current.slice(0,u-1)),u--,v.current=window.setTimeout(E,s/2)):a?.()};E()},[s]),z=t.useCallback(()=>{if(x.current.length===0||D.current)return;_(!0);const a=x.current[k.current];W.current?T(()=>{A(a,()=>{h.current=window.setTimeout(()=>{j(u=>(u+1)%x.current.length),_(!1)},2e3)})}):A(a,()=>{h.current=window.setTimeout(()=>{j(u=>(u+1)%x.current.length),_(!1)},2e3)})},[T,A]);t.useEffect(()=>(c&&r.length>0&&!w&&z(),()=>{h.current&&window.clearTimeout(h.current),v.current&&window.clearTimeout(v.current)}),[q,w,c,r.length,z]),t.useEffect(()=>{!V&&c&&r.length>0&&!w&&z()},[q,V,c,r.length,w,z]);const B=a=>{O(!0),h.current&&window.clearTimeout(h.current),v.current&&window.clearTimeout(v.current),_(!1),g(!1),I.onFocus?.(a)},F=a=>{O(!1),!o&&r.length>0&&(C(""),j(0)),I.onBlur?.(a)},L=a=>{f?.(a.target.value),I.onChange?.(a)},Y=()=>w||o?l:p||l;return n.jsxs("div",{style:{position:"relative"},children:[n.jsx(b.Input,{...I,value:o,onChange:L,onFocus:B,onBlur:F,placeholder:Y(),style:{...I.style,position:"relative",zIndex:1}}),!w&&!o&&p&&n.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:[n.jsx("span",{children:p}),i&&n.jsx("span",{style:{display:"inline-block",width:1,height:"1.2em",backgroundColor:"#1890ff",marginLeft:2,animation:"blink 1s infinite"}})]}),n.jsx("style",{children:`
22
+ <%s key={someKey} {...props} />`,B,g,H,g),J[g+B]=!0)}if(g=null,x!==void 0&&(i(x),g=""+x),_(d)&&(i(d.key),g=""+d.key),"key"in d){x={};for(var K in d)K!=="key"&&(x[K]=d[K])}else x=d;return g&&p(x,typeof e=="function"?e.displayName||e.name||"Unknown":e),N(e,g,M,G,s(),x,$,m)}function A(e){typeof e=="object"&&e!==null&&e.$$typeof===b&&e._store&&(e._store.validated=1)}var P=t,b=Symbol.for("react.transitional.element"),V=Symbol.for("react.portal"),O=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),y=Symbol.for("react.profiler"),v=Symbol.for("react.consumer"),C=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),D=Symbol.for("react.suspense"),W=Symbol.for("react.suspense_list"),z=Symbol.for("react.memo"),F=Symbol.for("react.lazy"),R=Symbol.for("react.activity"),L=Symbol.for("react.client.reference"),E=P.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,q=Object.prototype.hasOwnProperty,Y=Array.isArray,a=console.createTask?console.createTask:function(){return null};P={react_stack_bottom_frame:function(e){return e()}};var u,S={},j=P.react_stack_bottom_frame.bind(P,f)(),U=a(c(f)),J={};Z.Fragment=O,Z.jsx=function(e,d,x,B,G){var M=1e4>E.recentlyCreatedOwnerStacks++;return I(e,d,x,!1,B,G,M?Error("react-stack-top-frame"):j,M?a(c(e)):U)},Z.jsxs=function(e,d,x,B,G){var M=1e4>E.recentlyCreatedOwnerStacks++;return I(e,d,x,!0,B,G,M?Error("react-stack-top-frame"):j,M?a(c(e)):U)}}()),Z}var ae;function we(){return ae||(ae=1,process.env.NODE_ENV==="production"?ee.exports=he():ee.exports=be()),ee.exports}var n=we();const oe=({variant:r="primary",loading:l=!1,children:i,...c})=>{const s=f=>{switch(f){case"primary":return"primary";case"ghost":return"default";case"dashed":return"dashed";case"link":return"link";case"text":return"text";default:return"primary"}};return n.jsx(w.Button,{...c,type:s(r),loading:l,ghost:r==="ghost",children:i})};oe.__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 se=({title:r,children:l,bordered:i=!0,hoverable:c=!1,size:s="default",...f})=>n.jsx(w.Card,{...f,title:r,bordered:i,hoverable:c,size:s,children:l});se.__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 ie=({showDefaultFooter:r=!0,...l})=>{const i=l.footer!==void 0?l.footer:r?(c,{OkBtn:s,CancelBtn:f})=>n.jsxs(n.Fragment,{children:[n.jsx(s,{}),n.jsx(f,{})]}):null;return n.jsx(w.Modal,{...l,footer:i})};ie.__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 le=({scrollX:r,showPagination:l=!0,defaultPageSize:i=10,...c})=>n.jsx(w.Table,{...c,scroll:{x:r||"max-content",y:"50vh"},pagination:l?{hideOnSinglePage:!0,showSizeChanger:!0,showQuickJumper:!0,defaultPageSize:i,...c.pagination}:!1});le.__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 ve=X.createFromIconfontCN({scriptUrl:["https://at.alicdn.com/t/c/font_4968458_eh91gfr4j9e.js"]}),ce=({name:r,size:l,color:i,style:c,...s})=>{const f={fontSize:l,color:i,...c};return n.jsx(ve,{...s,type:r,style:f})};ce.__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 ue=({loading:r,description:l="暂无数据",className:i,emptyChildren:c,loadingText:s,emptyImage:f})=>r?n.jsxs(w.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",vertical:!0,children:[n.jsx(w.Spin,{size:"large"}),s&&n.jsx("div",{className:"mt-4 text-gray-500",children:s})]}):n.jsx(w.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",children:n.jsx(w.Empty,{image:f,description:l,imageStyle:{height:180},children:c})});ue.__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 de=({onClick:r,showText:l=!1,className:i,size:c="small",type:s="default"})=>n.jsx(w.Button,{size:c,type:s,icon:n.jsx(X.LeftOutlined,{}),className:`cursor-pointer ${i||""}`,onClick:r,children:l&&"返回"});de.__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 fe=({removePadding:r=!0,className:l,...i})=>{const c=r?`px-0 h-auto ${l||""}`:l;return n.jsx(w.Button,{type:"link",...i,className:c,children:i.children})};fe.__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:xe}=w.Select,me=({columns:r,request:l,searchFields:i=[],showSearch:c=!0,showRefresh:s=!0,defaultPageSize:f=10,pageSizeOptions:_=["10","20","50","100"],autoLoad:p=!0,externalParams:k={},...N})=>{const[I,A]=t.useState([]),[P,b]=t.useState(!1),[V,O]=t.useState({current:1,pageSize:f,total:0}),[o,y]=t.useState({}),[v,C]=t.useState({}),[h]=w.Form.useForm(),D=t.useRef(V);D.current=V;const W=t.useRef(k);W.current=k;const z=t.useRef(!1),F=t.useMemo(()=>r.map(a=>{const{sortable:u,render:S,...j}=a;return{...j,sorter:u?!0:void 0,render:S||(U=>U)}}),[r]),R=t.useCallback(async(a={})=>{if(l){b(!0);try{const u={page:D.current.current,pageSize:D.current.pageSize,sortField:v.field,sortOrder:v.order,searchParams:{...o,...W.current},...a},S=await l(u);S.success&&(A(S.data),O(j=>({...j,total:S.total,current:u.page||j.current})))}catch(u){console.error("加载数据失败:",u)}finally{b(!1)}}},[l,v,o]),L=t.useCallback(a=>{y(a),O(u=>({...u,current:1}))},[]),E=t.useCallback(()=>{h.resetFields(),y({}),O(a=>({...a,current:1}))},[h]),q=t.useCallback(()=>{R()},[R]),Y=t.useCallback((a,u,S)=>{const j={current:a.current||1,pageSize:a.pageSize||f,total:a.total||0},U={field:S?.field,order:S?.order};O(j),C(U)},[f]);return t.useEffect(()=>{const a=Object.keys(k).length>0;(p&&!z.current||a)&&(R(),z.current=!0)},[p,k,R]),n.jsxs("div",{children:[c&&i.length>0&&n.jsx(w.Card,{size:"small",style:{marginBottom:16},children:n.jsxs(w.Form,{form:h,layout:"inline",onFinish:L,initialValues:i.reduce((a,u)=>(u.defaultValue!==void 0&&(a[u.key]=u.defaultValue),a),{}),children:[i.map(a=>n.jsx(w.Form.Item,{name:a.key,label:a.label,children:a.type==="input"?n.jsx(w.Input,{placeholder:a.placeholder||`请输入${a.label}`,style:{width:200}}):n.jsx(w.Select,{placeholder:a.placeholder||`请选择${a.label}`,style:{width:200},allowClear:!0,children:a.options?.map(u=>n.jsx(xe,{value:u.value,children:u.label},u.value))})},a.key)),n.jsx(w.Form.Item,{children:n.jsxs(w.Space,{children:[n.jsx(w.Button,{type:"primary",htmlType:"submit",icon:n.jsx(X.SearchOutlined,{}),children:"查询"}),n.jsx(w.Button,{onClick:E,children:"重置"}),s&&n.jsx(w.Button,{icon:n.jsx(X.ReloadOutlined,{}),onClick:q,children:"刷新"})]})})]})}),n.jsx(w.Table,{...N,columns:F,dataSource:I,loading:P,pagination:{...V,showSizeChanger:!0,showQuickJumper:!0,showTotal:(a,u)=>`第 ${u[0]}-${u[1]} 条/共 ${a} 条`,pageSizeOptions:_},onChange:Y,scroll:{x:"max-content",y:"50vh"}})]})};me.__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:"{}"}}}};const pe=({texts:r=[],placeholder:l="请输入内容",animationSpeed:i=100,autoPlay:c=!0,value:s,onChange:f,..._})=>{const[p,k]=t.useState(""),[N,I]=t.useState(0),[A,P]=t.useState(!1),[b,V]=t.useState(!1),[O,o]=t.useState(!1),y=t.useRef(void 0),v=t.useRef(void 0),C=t.useRef(r),h=t.useRef(N),D=t.useRef(b),W=t.useRef(p);t.useEffect(()=>{C.current=r,h.current=N,D.current=b,W.current=p});const z=t.useCallback((a,u)=>{let S=0;o(!0);const j=()=>{S<a.length?(k(a.slice(0,S+1)),S++,v.current=window.setTimeout(j,i)):(o(!1),u?.())};j()},[i]),F=t.useCallback(a=>{let u=W.current.length;const S=()=>{u>0?(k(W.current.slice(0,u-1)),u--,v.current=window.setTimeout(S,i/2)):a?.()};S()},[i]),R=t.useCallback(()=>{if(C.current.length===0||D.current)return;P(!0);const a=C.current[h.current];W.current?F(()=>{z(a,()=>{y.current=window.setTimeout(()=>{I(u=>(u+1)%C.current.length),P(!1)},2e3)})}):z(a,()=>{y.current=window.setTimeout(()=>{I(u=>(u+1)%C.current.length),P(!1)},2e3)})},[F,z]);t.useEffect(()=>(c&&r.length>0&&!b&&R(),()=>{y.current&&window.clearTimeout(y.current),v.current&&window.clearTimeout(v.current)}),[N,b,c,r.length,R]),t.useEffect(()=>{!A&&c&&r.length>0&&!b&&R()},[N,A,c,r.length,b,R]);const L=a=>{V(!0),y.current&&window.clearTimeout(y.current),v.current&&window.clearTimeout(v.current),P(!1),o(!1),_.onFocus?.(a)},E=a=>{V(!1),!s&&r.length>0&&(k(""),I(0)),_.onBlur?.(a)},q=a=>{f?.(a.target.value),_.onChange?.(a)},Y=()=>b||s?l:p||l;return n.jsxs("div",{style:{position:"relative"},children:[n.jsx(w.Input,{..._,value:s,onChange:q,onFocus:L,onBlur:E,placeholder:Y(),style:{..._.style,position:"relative",zIndex:1}}),!b&&!s&&p&&n.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:[n.jsx("span",{children:p}),O&&n.jsx("span",{style:{display:"inline-block",width:1,height:"1.2em",backgroundColor:"#1890ff",marginLeft:2,animation:"blink 1s infinite"}})]}),n.jsx("style",{children:`
23
23
  @keyframes blink {
24
24
  0%, 50% { opacity: 1; }
25
25
  51%, 100% { opacity: 0; }
26
26
  }
27
- `})]})};pe.__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 ye=({texts:r=[],placeholder:l="请输入内容",animationSpeed:s=100,autoPlay:c=!0,value:o="",onChange:f,onSubmit:I,maxLength:p=500,showCount:C=!0,submitText:q="发送",disabled:j=!1,rows:V=4,style:_,...w})=>{const[O,i]=t.useState(""),[g,h]=t.useState(0),[v,x]=t.useState(!1),[k,D]=t.useState(!1),[W,A]=t.useState(!1),[T,z]=t.useState(o||""),B=t.useRef(void 0),F=t.useRef(void 0),L=t.useRef(r),Y=t.useRef(g),a=t.useRef(k),u=t.useRef(O),E=t.useRef(null);t.useEffect(()=>{L.current=r,Y.current=g,a.current=k,u.current=O});const N=t.useCallback((m,y)=>{let H=0;A(!0);const K=()=>{H<m.length?(i(m.slice(0,H+1)),H++,F.current=window.setTimeout(K,s)):(A(!1),y?.())};K()},[s]),U=t.useCallback(m=>{let y=u.current.length;const H=()=>{y>0?(i(u.current.slice(0,y-1)),y--,F.current=window.setTimeout(H,s/2)):m?.()};H()},[s]),J=t.useCallback(()=>{if(L.current.length===0||a.current)return;x(!0);const m=L.current[Y.current];u.current?U(()=>{N(m,()=>{B.current=window.setTimeout(()=>{h(y=>(y+1)%L.current.length),x(!1)},2e3)})}):N(m,()=>{B.current=window.setTimeout(()=>{h(y=>(y+1)%L.current.length),x(!1)},2e3)})},[U,N]);t.useEffect(()=>(c&&r.length>0&&!k&&J(),()=>{B.current&&window.clearTimeout(B.current),F.current&&window.clearTimeout(F.current)}),[g,k,c,r.length,J]),t.useEffect(()=>{!v&&c&&r.length>0&&!k&&J()},[g,v,c,r.length,k,J]);const e=m=>{D(!0),B.current&&window.clearTimeout(B.current),F.current&&window.clearTimeout(F.current),x(!1),A(!1),w.onFocus?.(m)},d=m=>{D(!1),!o&&r.length>0&&(i(""),h(0)),w.onBlur?.(m)},R=m=>{const y=m.target.value;p&&y.length>p||(f?f(y):z(y),w.onChange?.(m))},P=()=>{const m=f?o:T;m.trim()&&!j&&(I?.(m),f||z(""))},G=m=>{(m.ctrlKey||m.metaKey)&&m.key==="Enter"&&(m.preventDefault(),P()),w.onKeyDown?.(m)},M=f?o:T,$=j||!M.trim()||(p?M.length>p:!1);return n.jsxs("div",{style:{position:"relative",..._},children:[n.jsxs("div",{style:{position:"relative"},children:[n.jsx("textarea",{ref:E,value:f?o:T,onChange:R,onFocus:m=>{m.target.style.borderColor="#1890ff",m.target.style.boxShadow="0 0 0 2px rgba(24, 144, 255, 0.2)",e(m)},onBlur:m=>{m.target.style.borderColor="#d9d9d9",m.target.style.boxShadow="none",d(m)},onKeyDown:G,placeholder:k||M?l:"",maxLength:p,rows:V,disabled:j,style:{width:"100%",minHeight:`${V*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",...w.style},...w}),!k&&!M&&O&&n.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:[n.jsx("span",{children:O}),W&&n.jsx("span",{style:{display:"inline-block",width:1,height:"1.2em",backgroundColor:"#1890ff",marginLeft:2,animation:"blink 1s infinite"}})]}),n.jsx("div",{style:{position:"absolute",bottom:8,right:8,zIndex:3},children:n.jsx(b.Button,{type:"primary",size:"small",icon:n.jsx(X.SendOutlined,{}),onClick:P,disabled:$,style:{borderRadius:6,minWidth:32,height:32,display:"flex",alignItems:"center",justifyContent:"center"},children:q})})]}),C&&n.jsxs("div",{style:{marginTop:4,textAlign:"right",fontSize:"12px",color:"#999"},children:[M.length,"/",p]}),n.jsx("style",{children:`
27
+ `})]})};pe.__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 ye=({texts:r=[],placeholder:l="请输入内容",animationSpeed:i=100,autoPlay:c=!0,value:s="",onChange:f,onSubmit:_,maxLength:p=500,showCount:k=!0,submitText:N="发送",disabled:I=!1,rows:A=4,style:P,...b})=>{const[V,O]=t.useState(""),[o,y]=t.useState(0),[v,C]=t.useState(!1),[h,D]=t.useState(!1),[W,z]=t.useState(!1),[F,R]=t.useState(s||""),L=t.useRef(void 0),E=t.useRef(void 0),q=t.useRef(r),Y=t.useRef(o),a=t.useRef(h),u=t.useRef(V),S=t.useRef(null);t.useEffect(()=>{q.current=r,Y.current=o,a.current=h,u.current=V});const j=t.useCallback((m,g)=>{let H=0;z(!0);const K=()=>{H<m.length?(O(m.slice(0,H+1)),H++,E.current=window.setTimeout(K,i)):(z(!1),g?.())};K()},[i]),U=t.useCallback(m=>{let g=u.current.length;const H=()=>{g>0?(O(u.current.slice(0,g-1)),g--,E.current=window.setTimeout(H,i/2)):m?.()};H()},[i]),J=t.useCallback(()=>{if(q.current.length===0||a.current)return;C(!0);const m=q.current[Y.current];u.current?U(()=>{j(m,()=>{L.current=window.setTimeout(()=>{y(g=>(g+1)%q.current.length),C(!1)},2e3)})}):j(m,()=>{L.current=window.setTimeout(()=>{y(g=>(g+1)%q.current.length),C(!1)},2e3)})},[U,j]);t.useEffect(()=>(c&&r.length>0&&!h&&J(),()=>{L.current&&window.clearTimeout(L.current),E.current&&window.clearTimeout(E.current)}),[o,h,c,r.length,J]),t.useEffect(()=>{!v&&c&&r.length>0&&!h&&J()},[o,v,c,r.length,h,J]);const e=m=>{D(!0),L.current&&window.clearTimeout(L.current),E.current&&window.clearTimeout(E.current),C(!1),z(!1),b.onFocus?.(m)},d=m=>{D(!1),!s&&r.length>0&&(O(""),y(0)),b.onBlur?.(m)},x=m=>{const g=m.target.value;p&&g.length>p||(f?f(g):R(g),b.onChange?.(m))},B=()=>{const m=f?s:F;m.trim()&&!I&&(_?.(m),f||R(""))},G=m=>{(m.ctrlKey||m.metaKey)&&m.key==="Enter"&&(m.preventDefault(),B()),b.onKeyDown?.(m)},M=f?s:F,$=I||!M.trim()||(p?M.length>p:!1);return n.jsxs("div",{style:{position:"relative",...P},children:[n.jsxs("div",{style:{position:"relative"},children:[n.jsx("textarea",{ref:S,value:f?s:F,onChange:x,onFocus:m=>{m.target.style.borderColor="#1890ff",m.target.style.boxShadow="0 0 0 2px rgba(24, 144, 255, 0.2)",e(m)},onBlur:m=>{m.target.style.borderColor="#d9d9d9",m.target.style.boxShadow="none",d(m)},onKeyDown:G,placeholder:h||M?l:"",maxLength:p,rows:A,disabled:I,style:{width:"100%",minHeight:`${A*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",...b.style},...b}),!h&&!M&&V&&n.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:[n.jsx("span",{children:V}),W&&n.jsx("span",{style:{display:"inline-block",width:1,height:"1.2em",backgroundColor:"#1890ff",marginLeft:2,animation:"blink 1s infinite"}})]}),n.jsx("div",{style:{position:"absolute",bottom:8,right:8,zIndex:3},children:n.jsx(w.Button,{type:"primary",size:"small",icon:n.jsx(X.SendOutlined,{}),onClick:B,disabled:$,style:{borderRadius:6,minWidth:32,height:32,display:"flex",alignItems:"center",justifyContent:"center"},children:N})})]}),k&&n.jsxs("div",{style:{marginTop:4,textAlign:"right",fontSize:"12px",color:"#999"},children:[M.length,"/",p]}),n.jsx("style",{children:`
28
28
  @keyframes blink {
29
29
  0%, 50% { opacity: 1; }
30
30
  51%, 100% { opacity: 0; }
31
31
  }
32
- `})]})};ye.__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 te=({src:r,poster:l,width:s=300,height:c,videoWidth:o,videoHeight:f,showPlayButton:I=!0,autoPlayOnHover:p=!0,onClick:C,onVideoLoaded:q,onVideoPlay:j,onVideoPause:V,onVideoEnded:_,className:w,style:O,...i})=>{const g=t.useRef(null),[h,v]=t.useState(!1),[x,k]=t.useState(!1),[D,W]=t.useState(!1),A=t.useCallback(()=>{g.current&&(g.current.play(),v(!0),j?.())},[j]),T=t.useCallback(()=>{g.current&&(g.current.pause(),v(!1),V?.())},[V]),z=t.useCallback(N=>{N.stopPropagation(),h?T():A()},[h,A,T]),B=t.useCallback(()=>{k(!0),p&&!h&&A()},[p,h,A]),F=t.useCallback(()=>{k(!1),p&&h&&T()},[p,h,T]),L=t.useCallback(()=>{W(!0),q?.()},[q]),Y=t.useCallback(()=>{v(!0),j?.()},[j]),a=t.useCallback(()=>{v(!1),V?.()},[V]),u=t.useCallback(()=>{v(!1),_?.()},[_]),E=t.useCallback(N=>{C?.(N)},[C]);return n.jsx(b.Card,{...i,className:`video-card ${w||""}`,style:{width:s,height:c,padding:0,overflow:"hidden",cursor:C?"pointer":"default",border:"none",borderRadius:0,...O},bordered:!1,onMouseEnter:B,onMouseLeave:F,onClick:E,children:n.jsxs("div",{className:"video-card-container",children:[n.jsx("video",{ref:g,src:r,poster:l,preload:"metadata",onLoadedData:L,onPlay:Y,onPause:a,onEnded:u,muted:!0,loop:!0}),I&&n.jsx("div",{className:`video-play-button ${x?"hovered":""}`,onClick:z,children:h?n.jsx(X.PauseCircleOutlined,{className:"play-icon"}):n.jsx(X.PlayCircleOutlined,{className:"play-icon"})}),!D&&n.jsx("div",{className:"video-loading-mask",children:n.jsx("div",{className:"loading-spinner"})})]})})};te.__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 Re=r=>[".mp4",".webm",".ogg",".mov",".avi",".wmv",".flv",".mkv"].some(s=>r.toLowerCase().includes(s)),Te=r=>r.type?r.type:Re(r.url)?"video":"image",ge=({items:r,columns:l,gap:s=0,responsive:c=!0,breakpoints:o={xs:1,sm:2,md:3,lg:4,xl:5,xxl:6},className:f,style:I})=>{const p=t.useRef(null),[C,q]=t.useState(l||o.md||3),j=t.useRef(new Map),V=t.useCallback(()=>{if(!c||l)return l||o.md||3;const i=window.innerWidth;return i<576?o.xs||1:i<768?o.sm||2:i<992?o.md||3:i<1200?o.lg||4:i<1600?o.xl||5:o.xxl||6},[c,l,o]),_=t.useCallback(()=>{if(!p.current)return;const i=C,g=p.current,v=(g.offsetWidth-s*(i-1))/i,x=new Array(i).fill(0);r.forEach((D,W)=>{const A=D.id||W,T=j.current.get(A);if(!T)return;const z=Math.min(...x),B=x.indexOf(z),F=B*(v+s),L=x[B];T.style.position="absolute",T.style.left=`${F}px`,T.style.top=`${L}px`,T.style.width=`${v}px`,x[B]+=T.offsetHeight+s});const k=Math.max(...x);g.style.height=`${k}px`},[r,C,s]);t.useEffect(()=>{const i=()=>{const g=V();g!==C&&q(g)};if(c)return window.addEventListener("resize",i),i(),()=>window.removeEventListener("resize",i)},[c,V,C]),t.useEffect(()=>{const i=setTimeout(()=>{_()},100);return()=>clearTimeout(i)},[r,C,_]);const w=t.useCallback(()=>{_()},[_]),O=t.useCallback(i=>{i.onClick?.(i)},[]);return n.jsx("div",{ref:p,className:`waterfall-container ${f||""}`,style:{position:"relative",width:"100%",...I},children:r.map((i,g)=>{const h=i.id||g,v=Te(i);return n.jsx("div",{ref:x=>{x?j.current.set(h,x):j.current.delete(h)},className:"waterfall-item",children:v==="video"?n.jsx("div",{style:{width:"100%",position:"relative",paddingBottom:"56.25%"},children:n.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%"},children:n.jsx(te,{src:i.url,poster:i.poster,width:"100%",height:"100%",onClick:()=>O(i),onVideoLoaded:w,autoPlayOnHover:!0,showPlayButton:!1})})}):n.jsx("div",{className:"waterfall-image-wrapper",onClick:()=>O(i),children:n.jsx("img",{src:i.url,alt:`瀑布流图片 ${g+1}`,className:"waterfall-image",onLoad:w,onError:w})})},h)})})};ge.__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"}}}};const Se={algorithm:b.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"}}};S.AdvancedTable=me,S.AppModal=ie,S.BackButton=de,S.Button=oe,S.Card=se,S.DynamicInput=pe,S.DynamicTextArea=ye,S.EmptyAndSpin=ue,S.LinkButton=fe,S.PageTable=le,S.VideoCard=te,S.Waterfall=ge,S.XcIcon=ce,S.lightTheme=Se,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})});
32
+ `})]})};ye.__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 te=({src:r,poster:l,width:i=300,height:c,videoWidth:s,videoHeight:f,showPlayButton:_=!0,autoPlayOnHover:p=!0,onClick:k,onVideoLoaded:N,onVideoPlay:I,onVideoPause:A,onVideoEnded:P,className:b,style:V,...O})=>{const o=t.useRef(null),[y,v]=t.useState(!1),[C,h]=t.useState(!1),[D,W]=t.useState(!1),z=t.useCallback(()=>{o.current&&(o.current.play(),v(!0),I?.())},[I]),F=t.useCallback(()=>{o.current&&(o.current.pause(),v(!1),A?.())},[A]),R=t.useCallback(j=>{j.stopPropagation(),y?F():z()},[y,z,F]),L=t.useCallback(()=>{h(!0),p&&!y&&z()},[p,y,z]),E=t.useCallback(()=>{h(!1),p&&y&&F()},[p,y,F]),q=t.useCallback(()=>{W(!0),N?.()},[N]),Y=t.useCallback(()=>{v(!0),I?.()},[I]),a=t.useCallback(()=>{v(!1),A?.()},[A]),u=t.useCallback(()=>{v(!1),P?.()},[P]),S=t.useCallback(j=>{k?.(j)},[k]);return n.jsx(w.Card,{...O,className:`video-card ${b||""}`,style:{width:i,height:c,padding:0,overflow:"hidden",cursor:k?"pointer":"default",border:"none",borderRadius:0,...V},bordered:!1,onMouseEnter:L,onMouseLeave:E,onClick:S,children:n.jsxs("div",{className:"video-card-container",children:[n.jsx("video",{ref:o,src:r,poster:l,preload:"metadata",onLoadedData:q,onPlay:Y,onPause:a,onEnded:u,muted:!0,loop:!0}),_&&n.jsx("div",{className:`video-play-button ${C?"hovered":""}`,onClick:R,children:y?n.jsx(X.PauseCircleOutlined,{className:"play-icon"}):n.jsx(X.PlayCircleOutlined,{className:"play-icon"})}),!D&&n.jsx("div",{className:"video-loading-mask",children:n.jsx("div",{className:"loading-spinner"})})]})})};te.__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 Re=r=>[".mp4",".webm",".ogg",".mov",".avi",".wmv",".flv",".mkv"].some(i=>r.toLowerCase().includes(i)),Te=r=>r.type?r.type:Re(r.url)?"video":"image",ge=({items:r,columns:l,gap:i=0,responsive:c=!0,breakpoints:s={xs:1,sm:2,md:3,lg:4,xl:5,xxl:6},className:f,style:_,onClick:p})=>{const k=t.useRef(null),[N,I]=t.useState(l||s.md||3),A=t.useRef(new Map),P=t.useCallback(()=>{if(!c||l)return l||s.md||3;const o=window.innerWidth;return o<576?s.xs||1:o<768?s.sm||2:o<992?s.md||3:o<1200?s.lg||4:o<1600?s.xl||5:s.xxl||6},[c,l,s]),b=t.useCallback(()=>{if(!k.current)return;const o=N,y=k.current,C=(y.offsetWidth-i*(o-1))/o,h=new Array(o).fill(0);r.forEach((W,z)=>{const F=W.id||z,R=A.current.get(F);if(!R)return;const L=Math.min(...h),E=h.indexOf(L),q=E*(C+i),Y=h[E];R.style.position="absolute",R.style.left=`${q}px`,R.style.top=`${Y}px`,R.style.width=`${C}px`,h[E]+=R.offsetHeight+i});const D=Math.max(...h);y.style.height=`${D}px`},[r,N,i]);t.useEffect(()=>{const o=()=>{const y=P();y!==N&&I(y)};if(c)return window.addEventListener("resize",o),o(),()=>window.removeEventListener("resize",o)},[c,P,N]),t.useEffect(()=>{const o=setTimeout(()=>{b()},100);return()=>clearTimeout(o)},[r,N,b]);const V=t.useCallback(()=>{b()},[b]),O=t.useCallback(o=>{p&&p(o),o.onClick?.(o)},[p]);return n.jsx("div",{ref:k,className:`waterfall-container ${f||""}`,style:{position:"relative",width:"100%",..._},children:r.map((o,y)=>{const v=o.id||y,C=Te(o);return n.jsx("div",{ref:h=>{h?A.current.set(v,h):A.current.delete(v)},className:"waterfall-item",children:C==="video"?n.jsx("div",{style:{width:"100%",position:"relative",paddingBottom:"56.25%",cursor:p||o.onClick?"pointer":"default"},children:n.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%"},children:n.jsx(te,{src:o.url,poster:o.poster,width:"100%",height:"100%",onClick:()=>O(o),onVideoLoaded:V,autoPlayOnHover:!0,showPlayButton:!1})})}):n.jsx("div",{className:"waterfall-image-wrapper",onClick:()=>O(o),style:{cursor:p||o.onClick?"pointer":"default"},children:n.jsx("img",{src:o.url,alt:`瀑布流图片 ${y+1}`,className:"waterfall-image",onLoad:V,onError:V,style:{display:"block",width:"100%",height:"auto"}})})},v)})})};ge.__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 Se={algorithm:w.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"}}};T.AdvancedTable=me,T.AppModal=ie,T.BackButton=de,T.Button=oe,T.Card=se,T.DynamicInput=pe,T.DynamicTextArea=ye,T.EmptyAndSpin=ue,T.LinkButton=fe,T.PageTable=le,T.VideoCard=te,T.Waterfall=ge,T.XcIcon=ce,T.lightTheme=Se,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
33
33
  //# sourceMappingURL=index.umd.js.map