bi-components-library 1.0.0 → 1.0.1
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 -0
- package/dist/index.es.js +852 -504
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +6 -6
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/index.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(
|
|
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={};/**
|
|
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
|
|
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={};/**
|
|
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
|
|
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:
|
|
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} />`,x,m,P,m),X[m+x]=!0)}if(m=null,y!==void 0&&(i(y),m=""+y),S(o)&&(i(o.key),m=""+o.key),"key"in o){y={};for(var J in o)J!=="key"&&(y[J]=o[J])}else y=o;return m&&g(y,typeof e=="function"?e.displayName||e.name||"Unknown":e),Y(e,m,T,H,l(),y,$,c)}function W(e){typeof e=="object"&&e!==null&&e.$$typeof===b&&e._store&&(e._store.validated=1)}var I=t,b=Symbol.for("react.transitional.element"),A=Symbol.for("react.portal"),C=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),k=Symbol.for("react.profiler"),E=Symbol.for("react.consumer"),_=Symbol.for("react.context"),R=Symbol.for("react.forward_ref"),D=Symbol.for("react.suspense"),M=Symbol.for("react.suspense_list"),z=Symbol.for("react.memo"),L=Symbol.for("react.lazy"),j=Symbol.for("react.activity"),B=Symbol.for("react.client.reference"),N=I.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,q=Object.prototype.hasOwnProperty,U=Array.isArray,n=console.createTask?console.createTask:function(){return null};I={react_stack_bottom_frame:function(e){return e()}};var s,w={},v=I.react_stack_bottom_frame.bind(I,d)(),G=n(u(d)),X={};Z.Fragment=C,Z.jsx=function(e,o,y,x,H){var T=1e4>N.recentlyCreatedOwnerStacks++;return V(e,o,y,!1,x,H,T?Error("react-stack-top-frame"):v,T?n(u(e)):G)},Z.jsxs=function(e,o,y,x,H){var T=1e4>N.recentlyCreatedOwnerStacks++;return V(e,o,y,!0,x,H,T?Error("react-stack-top-frame"):v,T?n(u(e)):G)}}()),Z}var re;function be(){return re||(re=1,process.env.NODE_ENV==="production"?ee.exports=ye():ee.exports=ge()),ee.exports}var r=be();const ae=({variant:a="primary",loading:f=!1,children:i,...u})=>{const l=d=>{switch(d){case"primary":return"primary";case"ghost":return"default";case"dashed":return"dashed";case"link":return"link";case"text":return"text";default:return"primary"}};return r.jsx(p.Button,{...u,type:l(a),loading:f,ghost:a==="ghost",children:i})};ae.__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 oe=({title:a,children:f,bordered:i=!0,hoverable:u=!1,size:l="default",...d})=>r.jsx(p.Card,{...d,title:a,bordered:i,hoverable:u,size:l,children:f});oe.__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 se=({showDefaultFooter:a=!0,...f})=>{const i=f.footer!==void 0?f.footer:a?(u,{OkBtn:l,CancelBtn:d})=>r.jsxs(r.Fragment,{children:[r.jsx(l,{}),r.jsx(d,{})]}):null;return r.jsx(p.Modal,{...f,footer:i})};se.__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 ie=({scrollX:a,showPagination:f=!0,defaultPageSize:i=10,...u})=>r.jsx(p.Table,{...u,scroll:{x:a||"max-content",y:"50vh"},pagination:f?{hideOnSinglePage:!0,showSizeChanger:!0,showQuickJumper:!0,defaultPageSize:i,...u.pagination}:!1});ie.__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 he=K.createFromIconfontCN({scriptUrl:["https://at.alicdn.com/t/c/font_4968458_eh91gfr4j9e.js"]}),le=({name:a,size:f,color:i,style:u,...l})=>{const d={fontSize:f,color:i,...u};return r.jsx(he,{...l,type:a,style:d})};le.__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 ce=({loading:a,description:f="暂无数据",className:i,emptyChildren:u,loadingText:l,emptyImage:d})=>a?r.jsxs(p.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",vertical:!0,children:[r.jsx(p.Spin,{size:"large"}),l&&r.jsx("div",{className:"mt-4 text-gray-500",children:l})]}):r.jsx(p.Flex,{className:`pt-10 w-full ${i||""}`,align:"center",justify:"center",children:r.jsx(p.Empty,{image:d,description:f,imageStyle:{height:180},children:u})});ce.__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 ue=({onClick:a,showText:f=!1,className:i,size:u="small",type:l="default"})=>r.jsx(p.Button,{size:u,type:l,icon:r.jsx(K.LeftOutlined,{}),className:`cursor-pointer ${i||""}`,onClick:a,children:f&&"返回"});ue.__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 de=({removePadding:a=!0,className:f,...i})=>{const u=a?`px-0 h-auto ${f||""}`:f;return r.jsx(p.Button,{type:"link",...i,className:u,children:i.children})};de.__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:we}=p.Select,fe=({columns:a,request:f,searchFields:i=[],showSearch:u=!0,showRefresh:l=!0,defaultPageSize:d=10,pageSizeOptions:S=["10","20","50","100"],autoLoad:g=!0,externalParams:F={},...Y})=>{const[V,W]=t.useState([]),[I,b]=t.useState(!1),[A,C]=t.useState({current:1,pageSize:d,total:0}),[O,k]=t.useState({}),[E,_]=t.useState({}),[R]=p.Form.useForm(),D=t.useRef(A);D.current=A;const M=t.useRef(F);M.current=F;const z=t.useRef(!1),L=t.useMemo(()=>a.map(n=>{const{sortable:s,render:w,...v}=n;return{...v,sorter:s?!0:void 0,render:w||(G=>G)}}),[a]),j=t.useCallback(async(n={})=>{if(f){b(!0);try{const s={page:D.current.current,pageSize:D.current.pageSize,sortField:E.field,sortOrder:E.order,searchParams:{...O,...M.current},...n},w=await f(s);w.success&&(W(w.data),C(v=>({...v,total:w.total,current:s.page||v.current})))}catch(s){console.error("加载数据失败:",s)}finally{b(!1)}}},[f,E,O]),B=t.useCallback(n=>{k(n),C(s=>({...s,current:1}))},[]),N=t.useCallback(()=>{R.resetFields(),k({}),C(n=>({...n,current:1}))},[R]),q=t.useCallback(()=>{j()},[j]),U=t.useCallback((n,s,w)=>{const v={current:n.current||1,pageSize:n.pageSize||d,total:n.total||0},G={field:w?.field,order:w?.order};C(v),_(G)},[d]);return t.useEffect(()=>{const n=Object.keys(F).length>0;(g&&!z.current||n)&&(j(),z.current=!0)},[g,F,j]),r.jsxs("div",{children:[u&&i.length>0&&r.jsx(p.Card,{size:"small",style:{marginBottom:16},children:r.jsxs(p.Form,{form:R,layout:"inline",onFinish:B,initialValues:i.reduce((n,s)=>(s.defaultValue!==void 0&&(n[s.key]=s.defaultValue),n),{}),children:[i.map(n=>r.jsx(p.Form.Item,{name:n.key,label:n.label,children:n.type==="input"?r.jsx(p.Input,{placeholder:n.placeholder||`请输入${n.label}`,style:{width:200}}):r.jsx(p.Select,{placeholder:n.placeholder||`请选择${n.label}`,style:{width:200},allowClear:!0,children:n.options?.map(s=>r.jsx(we,{value:s.value,children:s.label},s.value))})},n.key)),r.jsx(p.Form.Item,{children:r.jsxs(p.Space,{children:[r.jsx(p.Button,{type:"primary",htmlType:"submit",icon:r.jsx(K.SearchOutlined,{}),children:"查询"}),r.jsx(p.Button,{onClick:N,children:"重置"}),l&&r.jsx(p.Button,{icon:r.jsx(K.ReloadOutlined,{}),onClick:q,children:"刷新"})]})})]})}),r.jsx(p.Table,{...Y,columns:L,dataSource:V,loading:I,pagination:{...A,showSizeChanger:!0,showQuickJumper:!0,showTotal:(n,s)=>`第 ${s[0]}-${s[1]} 条/共 ${n} 条`,pageSizeOptions:S},onChange:U,scroll:{x:"max-content",y:"50vh"}})]})};fe.__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 me=({texts:a=[],placeholder:f="请输入内容",animationSpeed:i=100,autoPlay:u=!0,value:l,onChange:d,...S})=>{const[g,F]=t.useState(""),[Y,V]=t.useState(0),[W,I]=t.useState(!1),[b,A]=t.useState(!1),[C,O]=t.useState(!1),k=t.useRef(void 0),E=t.useRef(void 0),_=t.useRef(a),R=t.useRef(Y),D=t.useRef(b),M=t.useRef(g);t.useEffect(()=>{_.current=a,R.current=Y,D.current=b,M.current=g});const z=t.useCallback((n,s)=>{let w=0;O(!0);const v=()=>{w<n.length?(F(n.slice(0,w+1)),w++,E.current=window.setTimeout(v,i)):(O(!1),s?.())};v()},[i]),L=t.useCallback(n=>{let s=M.current.length;const w=()=>{s>0?(F(M.current.slice(0,s-1)),s--,E.current=window.setTimeout(w,i/2)):n?.()};w()},[i]),j=t.useCallback(()=>{if(_.current.length===0||D.current)return;I(!0);const n=_.current[R.current];M.current?L(()=>{z(n,()=>{k.current=window.setTimeout(()=>{V(s=>(s+1)%_.current.length),I(!1)},2e3)})}):z(n,()=>{k.current=window.setTimeout(()=>{V(s=>(s+1)%_.current.length),I(!1)},2e3)})},[L,z]);t.useEffect(()=>(u&&a.length>0&&!b&&j(),()=>{k.current&&window.clearTimeout(k.current),E.current&&window.clearTimeout(E.current)}),[Y,b,u,a.length,j]),t.useEffect(()=>{!W&&u&&a.length>0&&!b&&j()},[Y,W,u,a.length,b,j]);const B=n=>{A(!0),k.current&&window.clearTimeout(k.current),E.current&&window.clearTimeout(E.current),I(!1),O(!1),S.onFocus?.(n)},N=n=>{A(!1),!l&&a.length>0&&(F(""),V(0)),S.onBlur?.(n)},q=n=>{d?.(n.target.value),S.onChange?.(n)},U=()=>b||l?f:g||f;return r.jsxs("div",{style:{position:"relative"},children:[r.jsx(p.Input,{...S,value:l,onChange:q,onFocus:B,onBlur:N,placeholder:U(),style:{...S.style,position:"relative",zIndex:1}}),!b&&!l&&g&&r.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:[r.jsx("span",{children:g}),C&&r.jsx("span",{style:{display:"inline-block",width:1,height:"1.2em",backgroundColor:"#1890ff",marginLeft:2,animation:"blink 1s infinite"}})]}),r.jsx("style",{children:`
|
|
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:`
|
|
23
23
|
@keyframes blink {
|
|
24
24
|
0%, 50% { opacity: 1; }
|
|
25
25
|
51%, 100% { opacity: 0; }
|
|
26
26
|
}
|
|
27
|
-
`})]})};
|
|
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:`
|
|
28
28
|
@keyframes blink {
|
|
29
29
|
0%, 50% { opacity: 1; }
|
|
30
30
|
51%, 100% { opacity: 0; }
|
|
31
31
|
}
|
|
32
|
-
`})]})};
|
|
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"})});
|
|
33
33
|
//# sourceMappingURL=index.umd.js.map
|