@ctc-front/components-ui-next 0.1.4 → 0.2.0
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/README.md +38 -7
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +60 -0
- package/dist/index.js +340 -129
- package/dist/style-with-element-plus.css +1 -1
- package/dist/style.css +1 -1
- package/package.json +8 -5
package/README.md
CHANGED
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
- 配置化 `CtcTable`:多级表头、插槽、render 函数、受控分页、行合并
|
|
9
9
|
- Element Plus 原生表格属性类型、滚动方法与 `elTableRef` 原生实例入口
|
|
10
10
|
- `app.use(CtcComponentsUi, options)` 团队默认配置
|
|
11
|
-
-
|
|
11
|
+
- `CtcReport` 报表布局:工具栏、查询区、标题、统计区、表格前后区域组合,完整类型和表格实例入口
|
|
12
|
+
- 白色、黑色、蓝色大屏三套主题,适配原生控件、弹层、状态提示和空状态
|
|
12
13
|
|
|
13
14
|
## 安装
|
|
14
15
|
|
|
15
16
|
```bash
|
|
16
|
-
pnpm add @ctc-front/components-ui-next element-plus vue
|
|
17
|
+
pnpm add @ctc-front/components-ui-next@0.2.0 element-plus vue @element-plus/icons-vue
|
|
17
18
|
```
|
|
18
19
|
|
|
19
20
|
## 使用
|
|
@@ -21,6 +22,8 @@ pnpm add @ctc-front/components-ui-next element-plus vue
|
|
|
21
22
|
```ts
|
|
22
23
|
import { createApp } from 'vue'
|
|
23
24
|
import ElementPlus from 'element-plus'
|
|
25
|
+
import 'element-plus/dist/index.css'
|
|
26
|
+
import 'element-plus/theme-chalk/dark/css-vars.css'
|
|
24
27
|
import '@ctc-front/components-ui-next/style.css'
|
|
25
28
|
import CtcComponentsUi from '@ctc-front/components-ui-next'
|
|
26
29
|
import App from './App.vue'
|
|
@@ -31,6 +34,7 @@ createApp(App).use(ElementPlus).use(CtcComponentsUi).mount('#app')
|
|
|
31
34
|
如果宿主使用 Element Plus 按需加载,请改用包含 Element Plus 基础样式的入口:
|
|
32
35
|
|
|
33
36
|
```ts
|
|
37
|
+
import 'element-plus/theme-chalk/dark/css-vars.css'
|
|
34
38
|
import '@ctc-front/components-ui-next/style-with-element-plus.css'
|
|
35
39
|
```
|
|
36
40
|
|
|
@@ -39,7 +43,7 @@ import '@ctc-front/components-ui-next/style-with-element-plus.css'
|
|
|
39
43
|
也可以按组件导入:
|
|
40
44
|
|
|
41
45
|
```ts
|
|
42
|
-
import { CtcDialog, CtcTable } from '@ctc-front/components-ui-next'
|
|
46
|
+
import { CtcDialog, CtcTable, CtcReport } from '@ctc-front/components-ui-next'
|
|
43
47
|
```
|
|
44
48
|
|
|
45
49
|
## CtcTable 行合并
|
|
@@ -58,18 +62,45 @@ import { CtcDialog, CtcTable } from '@ctc-front/components-ui-next'
|
|
|
58
62
|
/>
|
|
59
63
|
```
|
|
60
64
|
|
|
61
|
-
只有相邻行的 `by` 字段全部相同,目标列才会纵向合并。`selection`、`index`、`expand` 特殊列不参与配置合并;原生 `span-method`
|
|
65
|
+
只有相邻行的 `by` 字段全部相同,目标列才会纵向合并。`selection`、`index`、`expand` 特殊列不参与配置合并;原生 `span-method` 传入后优先使用。merge 配置仅支持纵向合并;横向合并可使用原生 span-method。
|
|
62
66
|
|
|
63
67
|
## 主题
|
|
64
68
|
|
|
65
|
-
|
|
69
|
+
默认启用 CTC 白色主题;黑色与蓝色大屏同时使用 Element Plus 官方暗色基础变量。主题标记放在 html,让传送到 body 的弹层也能同步:
|
|
66
70
|
|
|
67
71
|
```ts
|
|
68
|
-
|
|
72
|
+
function applyTheme(theme: 'light' | 'dark' | 'blue') {
|
|
73
|
+
document.documentElement.classList.toggle('dark', theme !== 'light')
|
|
74
|
+
document.documentElement.dataset.ctcTheme = theme
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
applyTheme('blue')
|
|
69
78
|
```
|
|
70
79
|
|
|
80
|
+
若需要沿用宿主自己的品牌色,使用 `data-ctc-theme-mode="inherit"`,详见[主题与大屏模式](./docs/guide/theme.md)。
|
|
81
|
+
|
|
71
82
|
详细属性、插槽、分页和主题说明见[开始使用](./docs/guide/getting-started.md)。各个已发布版本的功能点见[更新日志](./CHANGELOG.md)和[版本说明](./docs/guide/releases.md)。
|
|
72
83
|
|
|
73
84
|
## 版本说明
|
|
74
85
|
|
|
75
|
-
当前为 `0.
|
|
86
|
+
当前为 `0.2.0`,适用于 Vue 3 项目。Vue 2 / Element UI 项目请继续使用原组件库。
|
|
87
|
+
|
|
88
|
+
## 文档与本地演示
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
pnpm dev # 开发与审查:http://127.0.0.1:4173,支持热更新
|
|
92
|
+
pnpm docs:preview # 构建产物验收:http://localhost:4174
|
|
93
|
+
pnpm docs:sync # 同步源码契约、API 页和 AI 阅读文件
|
|
94
|
+
pnpm docs:check # 检查契约覆盖及生成文档是否过期
|
|
95
|
+
pnpm release:check
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
日常修改和审查使用 `pnpm dev`。`docs:preview` 会先构建,再启动静态预览;预览期间重新构建后,需要停止并重新运行该命令,让服务读取新的资源清单。
|
|
99
|
+
|
|
100
|
+
所有示例位于 `docs/examples/`,由 `manifest.json` 登记并嵌入 Markdown,无需维护独立 Playground 应用。
|
|
101
|
+
|
|
102
|
+
- 人工使用:[组件目录](./docs/components/index.md) · [方法实战](./docs/components/table/methods.md) · [业务场景](./docs/patterns/index.md)
|
|
103
|
+
- AI 读取:[llms.txt](./llms.txt) · [读取约定](./docs/guide/ai.md) · [契约源](./docs/reference/components.json)
|
|
104
|
+
- 维护规范:[文档与示例贡献](./docs/guide/contributing.md)
|
|
105
|
+
|
|
106
|
+
文档站同时输出 `/llms.txt`、`/llms-full.txt`、`/api/components.json` 与 `/markdown/`。本站描述当前源码,尚未发布的能力以发布记录为准。
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let e=require("vue"),t=require("element-plus");var n=Symbol(`CtcComponentsUiConfig`);function r(){return(0,e.inject)(n,{})}var i=(0,e.defineComponent)({name:`Close`,__name:`close`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[(0,e.createElementVNode)(`path`,{fill:`currentColor`,d:`M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z`})]))}}),a=(0,e.defineComponent)({name:`FullScreen`,__name:`full-screen`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[(0,e.createElementVNode)(`path`,{fill:`currentColor`,d:`m160 96.064 192 .192a32 32 0 0 1 0 64l-192-.192V352a32 32 0 0 1-64 0V96h64zm0 831.872V928H96V672a32 32 0 1 1 64 0v191.936l192-.192a32 32 0 1 1 0 64zM864 96.064V96h64v256a32 32 0 1 1-64 0V160.064l-192 .192a32 32 0 1 1 0-64zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64z`})]))}}),o=(0,e.defineComponent)({name:`Minus`,__name:`minus`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[(0,e.createElementVNode)(`path`,{fill:`currentColor`,d:`M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64`})]))}});function s(t,n){let r=(0,e.computed)(()=>t.fullscreen??!1);function i(){n(`update:fullscreen`,!r.value)}return{isFullscreen:r,toggleFullscreen:i}}function c(e,t,n){return Math.min(Math.max(e,t),n)}function l(t,n){let r=(0,e.ref)(!1),i=(0,e.ref)({}),a=()=>{};function o(){a(),a=()=>{}}function s(e){if(!t.resizable||e.button!==0)return;let s=e.currentTarget.closest(`.ctc-dialog`);if(!s)return;e.preventDefault(),o();let l=s.getBoundingClientRect(),u=t.minWidth??400,d=t.minHeight??240,f=Math.max(u,window.innerWidth-l.left-32),p=Math.max(d,window.innerHeight-l.top-32),m=e.clientX,h=e.clientY;function g(e){let t=Math.round(c(l.width+e.clientX-m,u,f)),a=Math.round(c(l.height+e.clientY-h,d,p));r.value=!0,i.value={height:`${a}px`,width:`${t}px`},n(`resize`,{width:t,height:a})}function _(){o()}window.addEventListener(`pointermove`,g),window.addEventListener(`pointerup`,_,{once:!0}),a=()=>{window.removeEventListener(`pointermove`,g),window.removeEventListener(`pointerup`,_)}}return(0,e.onBeforeUnmount)(o),{isResized:r,resizeStyle:i,startResize:s}}var u={class:`ctc-dialog__header-content`},d={class:`ctc-dialog__title`},f={class:`ctc-dialog__header-actions`},p=[`aria-label`,`title`],m={class:`ctc-dialog__content`},h=(0,e.defineComponent)({name:`CtcDialog`,inheritAttrs:!1,__name:`index`,props:{modelValue:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},showFullscreen:{type:Boolean,default:!1},resizable:{type:Boolean,default:!1},minWidth:{type:Number,default:400},minHeight:{type:Number,default:240},title:{type:String,default:``},width:{type:[String,Number],default:`640px`},alignCenter:Boolean,appendTo:{type:[String,Object],default:void 0},beforeClose:{type:Function,default:void 0},closeDelay:Number,closeOnClickModal:{type:Boolean,default:void 0},closeOnPressEscape:Boolean,contentFill:{type:Boolean,default:!1},destroyOnClose:Boolean,draggable:Boolean,lockScroll:Boolean,modal:{type:Boolean,default:!0},modalClass:{type:[String,Array,Object],default:void 0},openDelay:Number,overflow:Boolean,showClose:{type:Boolean,default:!0},top:String,trapFocus:Boolean,zIndex:Number},emits:[`update:modelValue`,`update:fullscreen`,`resize`,`open`,`opened`,`close`,`closed`],setup(n,{emit:c}){let h=n,g=c,_=(0,e.useAttrs)(),v=(0,e.useSlots)(),y=r(),{isFullscreen:b,toggleFullscreen:x}=s(h,g),{isResized:S,resizeStyle:C,startResize:w}=l(h,g),T=(0,e.computed)(()=>b.value?{}:C.value),E=(0,e.computed)(()=>S.value&&!b.value),D=(0,e.computed)(()=>h.closeOnClickModal??y.dialog?.closeOnClickModal??!1);function O(e){g(`update:modelValue`,e)}function k(){if(h.beforeClose){h.beforeClose(e=>{e||g(`update:modelValue`,!1)});return}g(`update:modelValue`,!1)}return(r,s)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElDialog),(0,e.mergeProps)((0,e.unref)(_),{class:[`ctc-dialog`,{"ctc-dialog--content-fill":n.contentFill,"ctc-dialog--resizable":n.resizable,"ctc-dialog--resized":E.value}],style:T.value,"model-value":n.modelValue,fullscreen:(0,e.unref)(b),title:n.title,width:n.width,"align-center":n.alignCenter,"append-to":n.appendTo,"before-close":n.beforeClose,"close-delay":n.closeDelay,"close-on-click-modal":D.value,"close-on-press-escape":n.closeOnPressEscape,"destroy-on-close":n.destroyOnClose,draggable:n.draggable,"lock-scroll":n.lockScroll,modal:n.modal,"modal-class":n.modalClass,"open-delay":n.openDelay,overflow:n.overflow,"show-close":!1,top:n.top,"trap-focus":n.trapFocus,"z-index":n.zIndex,"header-class":`ctc-dialog__header`,"body-class":`ctc-dialog__body`,"footer-class":`ctc-dialog__footer`,"onUpdate:modelValue":O,onOpen:s[2]||=e=>g(`open`),onOpened:s[3]||=e=>g(`opened`),onClose:s[4]||=e=>g(`close`),onClosed:s[5]||=e=>g(`closed`)}),(0,e.createSlots)({header:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,u,[(0,e.renderSlot)(r.$slots,`header`,{},()=>[(0,e.createElementVNode)(`span`,d,(0,e.toDisplayString)(n.title),1)])]),(0,e.createElementVNode)(`div`,f,[n.showFullscreen?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,class:`ctc-dialog__fullscreen-toggle`,type:`button`,"aria-label":(0,e.unref)(b)?`退出全屏`:`全屏显示`,title:(0,e.unref)(b)?`退出全屏`:`全屏显示`,"data-ctc-fullscreen-toggle":``,onClick:s[0]||=(...t)=>(0,e.unref)(x)&&(0,e.unref)(x)(...t)},[(0,e.createVNode)((0,e.unref)(t.ElIcon),{"aria-hidden":`true`},{default:(0,e.withCtx)(()=>[(0,e.unref)(b)?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(o),{key:0})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(a),{key:1}))]),_:1})],8,p)):(0,e.createCommentVNode)(``,!0),n.showClose?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,class:`ctc-dialog__close`,type:`button`,"aria-label":`关闭弹窗`,title:`关闭`,"data-ctc-close":``,onClick:k},[(0,e.createVNode)((0,e.unref)(t.ElIcon),{"aria-hidden":`true`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(i))]),_:1})])):(0,e.createCommentVNode)(``,!0)])]),default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,m,[(0,e.renderSlot)(r.$slots,`default`)]),n.resizable&&!(0,e.unref)(b)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`ctc-dialog__resize-handle`,"aria-hidden":`true`,"data-ctc-resize-handle":``,onPointerdown:s[1]||=(...t)=>(0,e.unref)(w)&&(0,e.unref)(w)(...t)},null,32)):(0,e.createCommentVNode)(``,!0)]),_:2},[(0,e.unref)(v).footer?{name:`footer`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(r.$slots,`footer`)]),key:`0`}:void 0]),1040,[`class`,`style`,`model-value`,`fullscreen`,`title`,`width`,`align-center`,`append-to`,`before-close`,`close-delay`,`close-on-click-modal`,`close-on-press-escape`,`destroy-on-close`,`draggable`,`lock-scroll`,`modal`,`modal-class`,`open-delay`,`overflow`,`top`,`trap-focus`,`z-index`]))}}),g={class:`ctc-drawer__header-content`},_={class:`ctc-drawer__title`},v={class:`ctc-drawer__header-actions`},y=[`aria-label`,`title`],b={class:`ctc-drawer__content`},x={key:0,class:`ctc-drawer__footer`},S=(0,e.defineComponent)({name:`CtcDrawer`,inheritAttrs:!1,__name:`index`,props:{modelValue:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},showFullscreen:{type:Boolean,default:!1},title:{type:String,default:``},size:{type:[String,Number],default:`480px`},direction:{type:String,default:`rtl`},appendTo:{type:[String,Object],default:void 0},beforeClose:{type:Function,default:void 0},closeOnClickModal:Boolean,closeOnPressEscape:Boolean,destroyOnClose:Boolean,lockScroll:Boolean,modal:{type:Boolean,default:!0},modalClass:{type:[String,Array,Object],default:void 0},showClose:{type:Boolean,default:!0},zIndex:Number},emits:[`update:modelValue`,`update:fullscreen`,`open`,`opened`,`close`,`closed`],setup(n,{emit:r}){let c=n,l=r,u=(0,e.useAttrs)(),d=(0,e.useSlots)(),{isFullscreen:f,toggleFullscreen:p}=s(c,l),m=(0,e.computed)(()=>f.value?`100%`:c.size);function h(e){l(`update:modelValue`,e)}function S(){if(c.beforeClose){c.beforeClose(e=>{e||l(`update:modelValue`,!1)});return}l(`update:modelValue`,!1)}return(r,s)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElDrawer),(0,e.mergeProps)((0,e.unref)(u),{class:[`ctc-drawer`,{"is-fullscreen":(0,e.unref)(f)}],"model-value":n.modelValue,"append-to":n.appendTo,"before-close":n.beforeClose,"close-on-click-modal":n.closeOnClickModal,"close-on-press-escape":n.closeOnPressEscape,"destroy-on-close":n.destroyOnClose,direction:n.direction,"lock-scroll":n.lockScroll,modal:n.modal,"modal-class":n.modalClass,"show-close":!1,size:m.value,"z-index":n.zIndex,"header-class":`ctc-drawer__header`,"body-class":`ctc-drawer__body`,"onUpdate:modelValue":h,onOpen:s[1]||=e=>l(`open`),onOpened:s[2]||=e=>l(`opened`),onClose:s[3]||=e=>l(`close`),onClosed:s[4]||=e=>l(`closed`)}),{header:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,g,[(0,e.renderSlot)(r.$slots,`header`,{},()=>[(0,e.createElementVNode)(`span`,_,(0,e.toDisplayString)(n.title),1)])]),(0,e.createElementVNode)(`div`,v,[n.showFullscreen?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,class:`ctc-drawer__fullscreen-toggle`,type:`button`,"aria-label":(0,e.unref)(f)?`退出全屏`:`全屏显示`,title:(0,e.unref)(f)?`退出全屏`:`全屏显示`,"data-ctc-fullscreen-toggle":``,onClick:s[0]||=(...t)=>(0,e.unref)(p)&&(0,e.unref)(p)(...t)},[(0,e.createVNode)((0,e.unref)(t.ElIcon),{"aria-hidden":`true`},{default:(0,e.withCtx)(()=>[(0,e.unref)(f)?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(o),{key:0})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(a),{key:1}))]),_:1})],8,y)):(0,e.createCommentVNode)(``,!0),n.showClose?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,class:`ctc-drawer__close`,type:`button`,"aria-label":`关闭抽屉`,title:`关闭`,"data-ctc-close":``,onClick:S},[(0,e.createVNode)((0,e.unref)(t.ElIcon),{"aria-hidden":`true`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(i))]),_:1})])):(0,e.createCommentVNode)(``,!0)])]),default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`ctc-drawer__layout`,{"has-footer":(0,e.unref)(d).footer}])},[(0,e.createElementVNode)(`div`,b,[(0,e.renderSlot)(r.$slots,`default`)]),(0,e.unref)(d).footer?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,x,[(0,e.renderSlot)(r.$slots,`footer`)])):(0,e.createCommentVNode)(``,!0)],2)]),_:3},16,[`class`,`model-value`,`append-to`,`before-close`,`close-on-click-modal`,`close-on-press-escape`,`destroy-on-close`,`direction`,`lock-scroll`,`modal`,`modal-class`,`size`,`z-index`]))}}),C=(0,e.defineComponent)({name:`CtcFlex`,__name:`index`,props:{direction:{default:`column`},fill:{type:Boolean,default:!1},grow:{default:1},justify:{default:`flex-start`},align:{default:`stretch`},gap:{default:0},scroll:{type:[Boolean,String],default:!1}},setup(t){let n=t,r=(0,e.computed)(()=>{let e={alignItems:n.align,flexDirection:n.direction,justifyContent:n.justify};return n.gap!==0&&n.gap!==``&&(e.gap=typeof n.gap==`number`?`${n.gap}px`:n.gap),n.fill&&(e.flex=n.grow),n.direction===`column`?e.minHeight=`0`:e.minWidth=`0`,n.scroll===`x`?(e.overflowX=`auto`,e.overflowY=`hidden`):n.scroll===`y`?(e.overflowX=`hidden`,e.overflowY=`auto`):n.scroll&&(e.overflow=`auto`),e});return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`ctc-flex`,style:(0,e.normalizeStyle)(r.value)},[(0,e.renderSlot)(t.$slots,`default`)],4))}}),w=new Set([`selection`,`index`,`expand`]),T=new Map,E=(0,e.defineComponent)({name:`CtcTableColumn`,props:{column:{type:Object,required:!0},slots:{type:Object,required:!0}},setup(n){let r=e=>e.slot??e.prop,i=(e,t)=>{if(!t)return;let n=T.get(t);return n||(n=t.replace(/\[(?:'([^']*)'|"([^"]*)"|([^\]]+))\]/g,`.$1$2$3`).split(`.`).filter(Boolean),T.set(t,n)),n.reduce((e,t)=>{if(!(typeof e!=`object`||!e))return e[t]},e)},a=(e,t)=>{let a=r(e),o=a?n.slots[a]:void 0;if(o)return o({...t,config:e});if(e.renderCell)return e.renderCell(t);if(e.formatter){let n=i(t.row,e.prop??e.property);return e.formatter(t.row,t.column,n,t.$index)}},o=(e,t)=>{let r=e.headerSlot?n.slots[e.headerSlot]:void 0;return r?r({...t,config:e}):e.renderHeader?.(t)},s=r=>{let{children:i,slot:c,headerSlot:l,renderCell:u,renderHeader:d,formatter:f,...p}=r,m=!!i?.length,h=c??r.prop,g=!!(h&&n.slots[h]||u||f),_=!!(l&&n.slots[l]||d),v=r.type?w.has(r.type):!1;return(0,e.h)(t.ElTableColumn,p,{default:m?()=>i?.map(s):g&&!v?e=>a(r,e):void 0,header:_?e=>o(r,e):void 0})};return()=>s(n.column)}});function D(e,t){return t.replace(/\[(?:'([^']*)'|"([^"]*)"|([^\]]+))\]/g,`.$1$2$3`).split(`.`).filter(Boolean).reduce((e,t)=>{if(!(typeof e!=`object`||!e))return e[t]},e)}function O(e,t,n){return n.every(n=>Object.is(D(e,n),D(t,n)))}function k(e,t){let n=new Map(t.filter(e=>e.prop&&e.by.length>0).map(e=>[e.prop,e]));return({column:t,rowIndex:r})=>{if(t.type===`selection`||t.type===`index`||t.type===`expand`)return;let i=t.property,a=i?n.get(i):void 0;if(!a)return;let o=e[r];if(!o)return;if(r>0&&O(e[r-1],o,a.by))return{rowspan:0,colspan:0};let s=1;for(;r+s<e.length&&O(o,e[r+s],a.by);)s+=1;return{rowspan:s,colspan:1}}}var A={key:0,class:`ctc-table__pagination`},j=(0,e.defineComponent)({name:`CtcTable`,inheritAttrs:!1,__name:`index`,props:{autoHeight:{type:Boolean,default:!1},columns:{default:()=>[]},currentPage:{default:1},data:{default:()=>[]},height:{},loading:{type:Boolean,default:!1},merge:{default:()=>[]},pageSize:{},pagination:{type:Boolean,default:!1},paginationProps:{default:()=>({})},total:{default:0}},emits:[`update:currentPage`,`update:pageSize`,`current-change`,`page-change`,`page-size-change`,`prev-click`,`next-click`],setup(n,{expose:i,emit:a}){let o=n,s=a,c=(0,e.useAttrs)(),l=(0,e.useSlots)(),u=r(),d=(0,e.useTemplateRef)(`tableRef`),f=new Set(`currentPage.pageSize.total.layout.pageSizes.pagerCount.background.disabled.hideOnSinglePage.small.prevText.nextText.prevIcon.nextIcon.popperClass.popperStyle.teleported.appendSizeTo.pageCount.defaultCurrentPage.defaultPageSize.onUpdate:currentPage.onUpdate:pageSize.onCurrentChange.onSizeChange.onPrevClick.onNextClick`.split(`.`)),p=(0,e.computed)(()=>{let e=Object.fromEntries(Object.entries(c).filter(([e])=>!f.has(e)&&e!==`height`&&e!==`spanMethod`)),t={};return!(`border`in c)&&u.table?.border!==void 0&&(t.border=u.table.border),!(`stripe`in c)&&u.table?.stripe!==void 0&&(t.stripe=u.table.stripe),{...t,...e}}),m=(0,e.computed)(()=>o.pageSize??u.table?.pageSize??10),h=(0,e.computed)(()=>({...u.table?.paginationProps,...o.paginationProps})),g=(0,e.computed)(()=>{if(typeof o.height==`string`||typeof o.height==`number`)return o.height}),_=(0,e.computed)(()=>o.autoHeight&&g.value===void 0),v=(0,e.computed)(()=>g.value??(_.value?`100%`:void 0)),y=(0,e.computed)(()=>{if(typeof c.spanMethod==`function`)return c.spanMethod;if(o.merge.length!==0)return k(o.data,o.merge)});function b(e,t){s(`current-change`,e,t)}return i({elTableRef:d,clearSelection:()=>d.value?.clearSelection(),toggleRowSelection:(e,t)=>d.value?.toggleRowSelection(e,t),toggleAllSelection:()=>d.value?.toggleAllSelection(),toggleRowExpansion:(e,t)=>d.value?.toggleRowExpansion(e,t),setCurrentRow:e=>d.value?.setCurrentRow(e),clearSort:()=>d.value?.clearSort(),clearFilter:e=>d.value?.clearFilter(e),doLayout:()=>d.value?.doLayout(),sort:(e,t)=>d.value?.sort(e,t),scrollTo:(e,t)=>d.value?.scrollTo(e,t),setScrollTop:e=>d.value?.setScrollTop(e),setScrollLeft:e=>d.value?.setScrollLeft(e)}),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`ctc-table`,{"ctc-table--auto-height":_.value}])},[(0,e.withDirectives)(((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElTable),(0,e.mergeProps)({ref_key:`tableRef`,ref:d},p.value,{data:o.data,height:v.value,"span-method":y.value,onCurrentChange:b}),(0,e.createSlots)({default:(0,e.withCtx)(()=>[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(o.columns,(t,n)=>((0,e.openBlock)(),(0,e.createBlock)(E,{key:t.prop??t.property??t.label??n,column:t,slots:(0,e.unref)(l)},null,8,[`column`,`slots`]))),128))]),_:2},[(0,e.unref)(l).empty?{name:`empty`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(n.$slots,`empty`)]),key:`0`}:void 0,(0,e.unref)(l).append?{name:`append`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(n.$slots,`append`)]),key:`1`}:void 0]),1040,[`data`,`height`,`span-method`])),[[(0,e.unref)(t.vLoading),o.loading]]),o.pagination?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,A,[(0,e.createVNode)((0,e.unref)(t.ElPagination),(0,e.mergeProps)(h.value,{"current-page":o.currentPage,"page-size":m.value,total:o.total,"onUpdate:currentPage":r[0]||=e=>s(`update:currentPage`,e),"onUpdate:pageSize":r[1]||=e=>s(`update:pageSize`,e),onCurrentChange:r[2]||=e=>s(`page-change`,e),onSizeChange:r[3]||=e=>s(`page-size-change`,e),onPrevClick:r[4]||=e=>s(`prev-click`,e),onNextClick:r[5]||=e=>s(`next-click`,e)}),null,16,[`current-page`,`page-size`,`total`]),(0,e.renderSlot)(n.$slots,`pagination`)])):(0,e.createCommentVNode)(``,!0)],2))}}),M=[h,S,C,j],N={install(e,t={}){e.provide(n,t),M.forEach(t=>{e.component(t.name??``,t)})}};exports.CtcComponentsUi=N,exports.default=N,exports.CtcDialog=h,exports.CtcDrawer=S,exports.CtcFlex=C,exports.CtcTable=j;
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let e=require("vue"),t=require("element-plus");var n=Symbol(`CtcComponentsUiConfig`);function r(){return(0,e.inject)(n,{})}var i=(0,e.defineComponent)({name:`Close`,__name:`close`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[(0,e.createElementVNode)(`path`,{fill:`currentColor`,d:`M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z`})]))}}),a=(0,e.defineComponent)({name:`FullScreen`,__name:`full-screen`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[(0,e.createElementVNode)(`path`,{fill:`currentColor`,d:`m160 96.064 192 .192a32 32 0 0 1 0 64l-192-.192V352a32 32 0 0 1-64 0V96h64zm0 831.872V928H96V672a32 32 0 1 1 64 0v191.936l192-.192a32 32 0 1 1 0 64zM864 96.064V96h64v256a32 32 0 1 1-64 0V160.064l-192 .192a32 32 0 1 1 0-64zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64z`})]))}}),o=(0,e.defineComponent)({name:`Minus`,__name:`minus`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[(0,e.createElementVNode)(`path`,{fill:`currentColor`,d:`M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64`})]))}});function s(t,n){let r=(0,e.computed)(()=>t.fullscreen??!1);function i(){n(`update:fullscreen`,!r.value)}return{isFullscreen:r,toggleFullscreen:i}}function c(e,t,n){return Math.min(Math.max(e,t),n)}function l(t,n){let r=(0,e.ref)(!1),i=(0,e.ref)({}),a=()=>{};function o(){a(),a=()=>{}}function s(e){if(!t.resizable||e.button!==0)return;let s=e.currentTarget.closest(`.ctc-dialog`);if(!s)return;e.preventDefault(),o();let l=s.getBoundingClientRect(),u=t.minWidth??400,d=t.minHeight??240,f=Math.max(u,window.innerWidth-l.left-32),p=Math.max(d,window.innerHeight-l.top-32),m=e.clientX,h=e.clientY;function g(e){let t=Math.round(c(l.width+e.clientX-m,u,f)),a=Math.round(c(l.height+e.clientY-h,d,p));r.value=!0,i.value={height:`${a}px`,width:`${t}px`},n(`resize`,{width:t,height:a})}function _(){o()}window.addEventListener(`pointermove`,g),window.addEventListener(`pointerup`,_,{once:!0}),a=()=>{window.removeEventListener(`pointermove`,g),window.removeEventListener(`pointerup`,_)}}return(0,e.onBeforeUnmount)(o),{isResized:r,resizeStyle:i,startResize:s}}var u={class:`ctc-dialog__header-content`},d={class:`ctc-dialog__title`},f={class:`ctc-dialog__header-actions`},p=[`aria-label`,`title`],m={class:`ctc-dialog__content`},h=(0,e.defineComponent)({name:`CtcDialog`,inheritAttrs:!1,__name:`index`,props:{modelValue:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},showFullscreen:{type:Boolean,default:!1},resizable:{type:Boolean,default:!1},minWidth:{type:Number,default:400},minHeight:{type:Number,default:240},title:{type:String,default:``},width:{type:[String,Number],default:`640px`},alignCenter:Boolean,appendTo:{type:[String,Object],default:void 0},beforeClose:{type:Function,default:void 0},closeDelay:Number,closeOnClickModal:{type:Boolean,default:void 0},closeOnPressEscape:Boolean,contentFill:{type:Boolean,default:!1},destroyOnClose:Boolean,draggable:Boolean,lockScroll:Boolean,modal:{type:Boolean,default:!0},modalClass:{type:[String,Array,Object],default:void 0},openDelay:Number,overflow:Boolean,showClose:{type:Boolean,default:!0},top:String,trapFocus:Boolean,zIndex:Number},emits:[`update:modelValue`,`update:fullscreen`,`resize`,`open`,`opened`,`close`,`closed`],setup(n,{emit:c}){let h=n,g=c,_=(0,e.useAttrs)(),v=(0,e.useSlots)(),y=r(),{isFullscreen:b,toggleFullscreen:x}=s(h,g),{isResized:S,resizeStyle:C,startResize:w}=l(h,g),T=(0,e.computed)(()=>b.value?{}:C.value),E=(0,e.computed)(()=>S.value&&!b.value),D=(0,e.computed)(()=>h.closeOnClickModal??y.dialog?.closeOnClickModal??!1);function O(e){g(`update:modelValue`,e)}function k(){if(h.beforeClose){h.beforeClose(e=>{e||g(`update:modelValue`,!1)});return}g(`update:modelValue`,!1)}return(r,s)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElDialog),(0,e.mergeProps)((0,e.unref)(_),{class:[`ctc-dialog`,{"ctc-dialog--content-fill":n.contentFill,"ctc-dialog--resizable":n.resizable,"ctc-dialog--resized":E.value}],style:T.value,"model-value":n.modelValue,fullscreen:(0,e.unref)(b),title:n.title,width:n.width,"align-center":n.alignCenter,"append-to":n.appendTo,"before-close":n.beforeClose,"close-delay":n.closeDelay,"close-on-click-modal":D.value,"close-on-press-escape":n.closeOnPressEscape,"destroy-on-close":n.destroyOnClose,draggable:n.draggable,"lock-scroll":n.lockScroll,modal:n.modal,"modal-class":n.modalClass,"open-delay":n.openDelay,overflow:n.overflow,"show-close":!1,top:n.top,"trap-focus":n.trapFocus,"z-index":n.zIndex,"header-class":`ctc-dialog__header`,"body-class":`ctc-dialog__body`,"footer-class":`ctc-dialog__footer`,"onUpdate:modelValue":O,onOpen:s[2]||=e=>g(`open`),onOpened:s[3]||=e=>g(`opened`),onClose:s[4]||=e=>g(`close`),onClosed:s[5]||=e=>g(`closed`)}),(0,e.createSlots)({header:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,u,[(0,e.renderSlot)(r.$slots,`header`,{},()=>[(0,e.createElementVNode)(`span`,d,(0,e.toDisplayString)(n.title),1)])]),(0,e.createElementVNode)(`div`,f,[n.showFullscreen?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,class:`ctc-dialog__fullscreen-toggle`,type:`button`,"aria-label":(0,e.unref)(b)?`退出全屏`:`全屏显示`,title:(0,e.unref)(b)?`退出全屏`:`全屏显示`,"data-ctc-fullscreen-toggle":``,onClick:s[0]||=(...t)=>(0,e.unref)(x)&&(0,e.unref)(x)(...t)},[(0,e.createVNode)((0,e.unref)(t.ElIcon),{"aria-hidden":`true`},{default:(0,e.withCtx)(()=>[(0,e.unref)(b)?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(o),{key:0})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(a),{key:1}))]),_:1})],8,p)):(0,e.createCommentVNode)(``,!0),n.showClose?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,class:`ctc-dialog__close`,type:`button`,"aria-label":`关闭弹窗`,title:`关闭`,"data-ctc-close":``,onClick:k},[(0,e.createVNode)((0,e.unref)(t.ElIcon),{"aria-hidden":`true`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(i))]),_:1})])):(0,e.createCommentVNode)(``,!0)])]),default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,m,[(0,e.renderSlot)(r.$slots,`default`)]),n.resizable&&!(0,e.unref)(b)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`ctc-dialog__resize-handle`,"aria-hidden":`true`,"data-ctc-resize-handle":``,onPointerdown:s[1]||=(...t)=>(0,e.unref)(w)&&(0,e.unref)(w)(...t)},null,32)):(0,e.createCommentVNode)(``,!0)]),_:2},[(0,e.unref)(v).footer?{name:`footer`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(r.$slots,`footer`)]),key:`0`}:void 0]),1040,[`class`,`style`,`model-value`,`fullscreen`,`title`,`width`,`align-center`,`append-to`,`before-close`,`close-delay`,`close-on-click-modal`,`close-on-press-escape`,`destroy-on-close`,`draggable`,`lock-scroll`,`modal`,`modal-class`,`open-delay`,`overflow`,`top`,`trap-focus`,`z-index`]))}}),g={class:`ctc-drawer__header-content`},_={class:`ctc-drawer__title`},v={class:`ctc-drawer__header-actions`},y=[`aria-label`,`title`],b={class:`ctc-drawer__content`},x={key:0,class:`ctc-drawer__footer`},S=(0,e.defineComponent)({name:`CtcDrawer`,inheritAttrs:!1,__name:`index`,props:{modelValue:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},showFullscreen:{type:Boolean,default:!1},title:{type:String,default:``},size:{type:[String,Number],default:`480px`},direction:{type:String,default:`rtl`},appendTo:{type:[String,Object],default:void 0},beforeClose:{type:Function,default:void 0},closeOnClickModal:Boolean,closeOnPressEscape:Boolean,destroyOnClose:Boolean,lockScroll:Boolean,modal:{type:Boolean,default:!0},modalClass:{type:[String,Array,Object],default:void 0},showClose:{type:Boolean,default:!0},zIndex:Number},emits:[`update:modelValue`,`update:fullscreen`,`open`,`opened`,`close`,`closed`],setup(n,{emit:r}){let c=n,l=r,u=(0,e.useAttrs)(),d=(0,e.useSlots)(),{isFullscreen:f,toggleFullscreen:p}=s(c,l),m=(0,e.computed)(()=>f.value?`100%`:c.size);function h(e){l(`update:modelValue`,e)}function S(){if(c.beforeClose){c.beforeClose(e=>{e||l(`update:modelValue`,!1)});return}l(`update:modelValue`,!1)}return(r,s)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElDrawer),(0,e.mergeProps)((0,e.unref)(u),{class:[`ctc-drawer`,{"is-fullscreen":(0,e.unref)(f)}],"model-value":n.modelValue,"append-to":n.appendTo,"before-close":n.beforeClose,"close-on-click-modal":n.closeOnClickModal,"close-on-press-escape":n.closeOnPressEscape,"destroy-on-close":n.destroyOnClose,direction:n.direction,"lock-scroll":n.lockScroll,modal:n.modal,"modal-class":n.modalClass,"show-close":!1,size:m.value,"z-index":n.zIndex,"header-class":`ctc-drawer__header`,"body-class":`ctc-drawer__body`,"onUpdate:modelValue":h,onOpen:s[1]||=e=>l(`open`),onOpened:s[2]||=e=>l(`opened`),onClose:s[3]||=e=>l(`close`),onClosed:s[4]||=e=>l(`closed`)}),{header:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,g,[(0,e.renderSlot)(r.$slots,`header`,{},()=>[(0,e.createElementVNode)(`span`,_,(0,e.toDisplayString)(n.title),1)])]),(0,e.createElementVNode)(`div`,v,[n.showFullscreen?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,class:`ctc-drawer__fullscreen-toggle`,type:`button`,"aria-label":(0,e.unref)(f)?`退出全屏`:`全屏显示`,title:(0,e.unref)(f)?`退出全屏`:`全屏显示`,"data-ctc-fullscreen-toggle":``,onClick:s[0]||=(...t)=>(0,e.unref)(p)&&(0,e.unref)(p)(...t)},[(0,e.createVNode)((0,e.unref)(t.ElIcon),{"aria-hidden":`true`},{default:(0,e.withCtx)(()=>[(0,e.unref)(f)?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(o),{key:0})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(a),{key:1}))]),_:1})],8,y)):(0,e.createCommentVNode)(``,!0),n.showClose?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,class:`ctc-drawer__close`,type:`button`,"aria-label":`关闭抽屉`,title:`关闭`,"data-ctc-close":``,onClick:S},[(0,e.createVNode)((0,e.unref)(t.ElIcon),{"aria-hidden":`true`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(i))]),_:1})])):(0,e.createCommentVNode)(``,!0)])]),default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`ctc-drawer__layout`,{"has-footer":(0,e.unref)(d).footer}])},[(0,e.createElementVNode)(`div`,b,[(0,e.renderSlot)(r.$slots,`default`)]),(0,e.unref)(d).footer?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,x,[(0,e.renderSlot)(r.$slots,`footer`)])):(0,e.createCommentVNode)(``,!0)],2)]),_:3},16,[`class`,`model-value`,`append-to`,`before-close`,`close-on-click-modal`,`close-on-press-escape`,`destroy-on-close`,`direction`,`lock-scroll`,`modal`,`modal-class`,`size`,`z-index`]))}}),C=(0,e.defineComponent)({name:`CtcFlex`,__name:`index`,props:{direction:{default:`column`},fill:{type:Boolean,default:!1},grow:{default:1},justify:{default:`flex-start`},align:{default:`stretch`},gap:{default:0},scroll:{type:[Boolean,String],default:!1}},setup(t){let n=t,r=(0,e.computed)(()=>{let e={alignItems:n.align,flexDirection:n.direction,justifyContent:n.justify};return n.gap!==0&&n.gap!==``&&(e.gap=typeof n.gap==`number`?`${n.gap}px`:n.gap),n.fill&&(e.flex=n.grow),n.direction===`column`?e.minHeight=`0`:e.minWidth=`0`,n.scroll===`x`?(e.overflowX=`auto`,e.overflowY=`hidden`):n.scroll===`y`?(e.overflowX=`hidden`,e.overflowY=`auto`):n.scroll&&(e.overflow=`auto`),e});return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`ctc-flex`,style:(0,e.normalizeStyle)(r.value)},[(0,e.renderSlot)(t.$slots,`default`)],4))}}),w=new Set([`selection`,`index`,`expand`]),T=new Map,E=(0,e.defineComponent)({name:`CtcTableColumn`,props:{column:{type:Object,required:!0},slots:{type:Object,required:!0}},setup(n){let r=e=>e.slot??e.prop,i=(e,t)=>{if(!t)return;let n=T.get(t);return n||(n=t.replace(/\[(?:'([^']*)'|"([^"]*)"|([^\]]+))\]/g,`.$1$2$3`).split(`.`).filter(Boolean),T.set(t,n)),n.reduce((e,t)=>{if(!(typeof e!=`object`||!e))return e[t]},e)},a=(e,t)=>{let a=r(e),o=a?n.slots[a]:void 0;if(o)return o({...t,config:e});if(e.renderCell)return e.renderCell(t);if(e.formatter){let n=i(t.row,e.prop??e.property);return e.formatter(t.row,t.column,n,t.$index)}},o=(e,t)=>{let r=e.headerSlot?n.slots[e.headerSlot]:void 0;return r?r({...t,config:e}):e.renderHeader?.(t)},s=r=>{let{children:i,slot:c,headerSlot:l,renderCell:u,renderHeader:d,formatter:f,...p}=r,m=!!i?.length,h=c??r.prop,g=!!(h&&n.slots[h]||u||f),_=!!(l&&n.slots[l]||d),v=r.type?w.has(r.type):!1;return(0,e.h)(t.ElTableColumn,p,{default:m?()=>i?.map(s):g&&!v?e=>a(r,e):void 0,header:_?e=>o(r,e):void 0})};return()=>s(n.column)}});function D(e,t){return t.replace(/\[(?:'([^']*)'|"([^"]*)"|([^\]]+))\]/g,`.$1$2$3`).split(`.`).filter(Boolean).reduce((e,t)=>{if(!(typeof e!=`object`||!e))return e[t]},e)}function O(e,t,n){return n.every(n=>Object.is(D(e,n),D(t,n)))}function k(e,t){let n=new Map(t.filter(e=>e.prop&&e.by.length>0).map(e=>[e.prop,e]));return({column:t,rowIndex:r})=>{if(t.type===`selection`||t.type===`index`||t.type===`expand`)return;let i=t.property,a=i?n.get(i):void 0;if(!a)return;let o=e[r];if(!o)return;if(r>0&&O(e[r-1],o,a.by))return{rowspan:0,colspan:0};let s=1;for(;r+s<e.length&&O(o,e[r+s],a.by);)s+=1;return{rowspan:s,colspan:1}}}var A={key:0,class:`ctc-table__pagination`},j=(0,e.defineComponent)({name:`CtcTable`,inheritAttrs:!1,__name:`index`,props:{autoHeight:{type:Boolean,default:!1},columns:{default:()=>[]},currentPage:{default:1},data:{default:()=>[]},height:{},loading:{type:Boolean,default:!1},merge:{default:()=>[]},pageSize:{},pagination:{type:Boolean,default:!1},paginationProps:{default:()=>({})},total:{default:0}},emits:[`update:currentPage`,`update:pageSize`,`current-change`,`page-change`,`page-size-change`,`prev-click`,`next-click`],setup(n,{expose:i,emit:a}){let o=t.ElTable,s=n,c=a,l=(0,e.useAttrs)(),u=(0,e.useSlots)(),d=r(),f=(0,e.useTemplateRef)(`tableRef`),p=new Set(`currentPage.pageSize.total.layout.pageSizes.pagerCount.background.disabled.hideOnSinglePage.small.prevText.nextText.prevIcon.nextIcon.popperClass.popperStyle.teleported.appendSizeTo.pageCount.defaultCurrentPage.defaultPageSize.onUpdate:currentPage.onUpdate:pageSize.onCurrentChange.onSizeChange.onPrevClick.onNextClick`.split(`.`)),m=(0,e.computed)(()=>{let e=Object.fromEntries(Object.entries(l).filter(([e])=>!p.has(e)&&e!==`height`&&e!==`spanMethod`&&e!==`span-method`)),t={};return!(`border`in l)&&d.table?.border!==void 0&&(t.border=d.table.border),!(`stripe`in l)&&d.table?.stripe!==void 0&&(t.stripe=d.table.stripe),{...t,...e}}),h=(0,e.computed)(()=>s.pageSize??d.table?.pageSize??10),g=(0,e.computed)(()=>({...d.table?.paginationProps,...s.paginationProps})),_=(0,e.computed)(()=>{if(typeof s.height==`string`||typeof s.height==`number`)return s.height}),v=(0,e.computed)(()=>s.autoHeight&&_.value===void 0),y=(0,e.computed)(()=>_.value??(v.value?`100%`:void 0)),b=(0,e.computed)(()=>{let e=l.spanMethod??l[`span-method`];if(typeof e==`function`)return e;if(s.merge.length!==0)return k(s.data,s.merge)});function x(e,t){c(`current-change`,e,t)}return i({elTableRef:f,clearSelection:()=>f.value?.clearSelection(),toggleRowSelection:(e,t)=>f.value?.toggleRowSelection(e,t),toggleAllSelection:()=>f.value?.toggleAllSelection(),toggleRowExpansion:(e,t)=>f.value?.toggleRowExpansion(e,t),setCurrentRow:e=>f.value?.setCurrentRow(e),clearSort:()=>f.value?.clearSort(),clearFilter:e=>f.value?.clearFilter(e),doLayout:()=>f.value?.doLayout(),sort:(e,t)=>f.value?.sort(e,t),scrollTo:(e,t)=>f.value?.scrollTo(e,t),setScrollTop:e=>f.value?.setScrollTop(e),setScrollLeft:e=>f.value?.setScrollLeft(e)}),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`ctc-table`,{"ctc-table--auto-height":v.value}])},[(0,e.withDirectives)(((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(o),(0,e.mergeProps)({ref_key:`tableRef`,ref:f},m.value,{data:s.data,height:y.value,"span-method":b.value,onCurrentChange:x}),(0,e.createSlots)({default:(0,e.withCtx)(()=>[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(s.columns,(t,n)=>((0,e.openBlock)(),(0,e.createBlock)(E,{key:t.prop??t.property??t.label??n,column:t,slots:(0,e.unref)(u)},null,8,[`column`,`slots`]))),128))]),_:2},[(0,e.unref)(u).empty?{name:`empty`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(n.$slots,`empty`)]),key:`0`}:void 0,(0,e.unref)(u).append?{name:`append`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(n.$slots,`append`)]),key:`1`}:void 0]),1040,[`data`,`height`,`span-method`])),[[(0,e.unref)(t.vLoading),s.loading]]),s.pagination?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,A,[(0,e.createVNode)((0,e.unref)(t.ElPagination),(0,e.mergeProps)(g.value,{"current-page":s.currentPage,"page-size":h.value,total:s.total,"onUpdate:currentPage":r[0]||=e=>c(`update:currentPage`,e),"onUpdate:pageSize":r[1]||=e=>c(`update:pageSize`,e),onCurrentChange:r[2]||=e=>c(`page-change`,e),onSizeChange:r[3]||=e=>c(`page-size-change`,e),onPrevClick:r[4]||=e=>c(`prev-click`,e),onNextClick:r[5]||=e=>c(`next-click`,e)}),null,16,[`current-page`,`page-size`,`total`]),(0,e.renderSlot)(n.$slots,`pagination`)])):(0,e.createCommentVNode)(``,!0)],2))}}),M={key:0,class:`ctc-report__bar-left`},N={key:1,class:`ctc-report__bar-right`},P=(0,e.defineComponent)({__name:`ReportBar`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(C),{class:`ctc-report__bar`,direction:`row`,align:`center`,justify:`space-between`},{default:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`default`,{},()=>[t.$slots.left?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,M,[(0,e.renderSlot)(t.$slots,`left`)])):(0,e.createCommentVNode)(``,!0),t.$slots.right?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,N,[(0,e.renderSlot)(t.$slots,`right`)])):(0,e.createCommentVNode)(``,!0)])]),_:3}))}}),F={key:0,class:`ctc-report__container-top`},I={key:0,class:`ctc-report__table-bar`},L={key:0,class:`ctc-report__title`},R={key:1,class:`ctc-report__before`},z={key:2,class:`ctc-report__after`},B=(0,e.defineComponent)({name:`CtcReport`,inheritAttrs:!1,__name:`index`,props:{title:{default:``},autoHeight:{type:Boolean,default:!0},height:{},margin:{default:0},padding:{default:0},containerMargin:{default:0},containerPadding:{default:`var(--ctc-space-4)`}},emits:[`update:currentPage`,`update:pageSize`,`current-change`,`page-change`,`page-size-change`,`prev-click`,`next-click`],setup(t,{expose:n,emit:r}){let i=t,a=r,o=(0,e.useSlots)(),s=(0,e.useAttrs)(),c=(0,e.useTemplateRef)(`tableRef`),l=new Set([`custom-tool-bar`,`tool-bar`,`tool-bar-left`,`tool-bar-right`,`search-bar`,`search-bar-left`,`search-bar-right`,`container-top`,`table-bar`,`table-title`,`table-info-left`,`table-info-right`,`default`,`table-empty`,`append-table`]);function u(e){return typeof e==`number`?`${e}px`:typeof e==`string`?e:e.map(e=>`${e}px`).join(` `)}let d=(0,e.computed)(()=>({margin:u(i.margin),padding:u(i.padding)})),f=(0,e.computed)(()=>({margin:u(i.containerMargin),padding:u(i.containerPadding)}));function p(){return Object.fromEntries(Object.entries(s).filter(([e])=>e!==`class`&&e!==`style`))}function m(){return Object.keys(o).filter(e=>!l.has(e)&&!(e===`empty`&&o[`table-empty`]))}function h(e,t){a(`current-change`,e,t)}return n({tableRef:c,clearSelection:()=>c.value?.clearSelection(),toggleRowSelection:(e,t)=>c.value?.toggleRowSelection(e,t),toggleAllSelection:()=>c.value?.toggleAllSelection(),toggleRowExpansion:(e,t)=>c.value?.toggleRowExpansion(e,t),setCurrentRow:e=>c.value?.setCurrentRow(e),clearSort:()=>c.value?.clearSort(),clearFilter:e=>c.value?.clearFilter(e),doLayout:()=>c.value?.doLayout(),sort:(e,t)=>c.value?.sort(e,t),scrollTo:(e,t)=>c.value?.scrollTo(e,t),setScrollTop:e=>c.value?.setScrollTop(e),setScrollLeft:e=>c.value?.setScrollLeft(e)}),(t,n)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(C),{class:(0,e.normalizeClass)([`ctc-report`,(0,e.unref)(s).class]),style:(0,e.normalizeStyle)((0,e.unref)(s).style)},{default:(0,e.withCtx)(()=>[o[`custom-tool-bar`]||o[`tool-bar`]||o[`tool-bar-left`]||o[`tool-bar-right`]||o[`search-bar`]||o[`search-bar-left`]||o[`search-bar-right`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`ctc-report__header`,style:(0,e.normalizeStyle)(d.value)},[o[`custom-tool-bar`]?(0,e.renderSlot)(t.$slots,`custom-tool-bar`,{},void 0,void 0,0):o[`tool-bar`]||o[`tool-bar-left`]||o[`tool-bar-right`]?((0,e.openBlock)(),(0,e.createBlock)(P,{key:1,class:`ctc-report__toolbar`},(0,e.createSlots)({_:2},[o[`tool-bar`]?{name:`default`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`tool-bar`)]),key:`0`}:void 0,o[`tool-bar-left`]?{name:`left`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`tool-bar-left`)]),key:`1`}:void 0,o[`tool-bar-right`]?{name:`right`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`tool-bar-right`)]),key:`2`}:void 0]),1024)):(0,e.createCommentVNode)(``,!0),o[`search-bar`]||o[`search-bar-left`]||o[`search-bar-right`]?((0,e.openBlock)(),(0,e.createBlock)(P,{key:2,class:`ctc-report__search`},(0,e.createSlots)({_:2},[o[`search-bar`]?{name:`default`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`search-bar`)]),key:`0`}:void 0,o[`search-bar-left`]?{name:`left`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`search-bar-left`)]),key:`1`}:void 0,o[`search-bar-right`]?{name:`right`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`search-bar-right`)]),key:`2`}:void 0]),1024)):(0,e.createCommentVNode)(``,!0)],4)):(0,e.createCommentVNode)(``,!0),(0,e.createVNode)((0,e.unref)(C),{class:`ctc-report__container`,fill:``,style:(0,e.normalizeStyle)(f.value)},{default:(0,e.withCtx)(()=>[o[`container-top`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,F,[(0,e.renderSlot)(t.$slots,`container-top`)])):(0,e.createCommentVNode)(``,!0),(0,e.createVNode)((0,e.unref)(C),{class:`ctc-report__body`,fill:``},{default:(0,e.withCtx)(()=>[o[`table-bar`]||o[`table-title`]||i.title||o[`table-info-left`]||o[`table-info-right`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,I,[o[`table-bar`]?(0,e.renderSlot)(t.$slots,`table-bar`,{},void 0,void 0,0):((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[o[`table-title`]||i.title?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,L,[(0,e.renderSlot)(t.$slots,`table-title`,{},()=>[(0,e.createElementVNode)(`h2`,null,(0,e.toDisplayString)(i.title),1)])])):(0,e.createCommentVNode)(``,!0),o[`table-info-left`]||o[`table-info-right`]?((0,e.openBlock)(),(0,e.createBlock)(P,{key:1,class:`ctc-report__info`},(0,e.createSlots)({_:2},[o[`table-info-left`]?{name:`left`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`table-info-left`)]),key:`0`}:void 0,o[`table-info-right`]?{name:`right`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`table-info-right`)]),key:`1`}:void 0]),1024)):(0,e.createCommentVNode)(``,!0)],64))])):(0,e.createCommentVNode)(``,!0),o.default?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,R,[(0,e.renderSlot)(t.$slots,`default`)])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`ctc-report__table`,{"ctc-report__table--auto-height":i.autoHeight&&i.height===void 0}])},[(0,e.createVNode)((0,e.unref)(j),(0,e.mergeProps)({ref_key:`tableRef`,ref:c},p(),{"auto-height":i.autoHeight,height:i.height,"onUpdate:currentPage":n[0]||=e=>a(`update:currentPage`,e),"onUpdate:pageSize":n[1]||=e=>a(`update:pageSize`,e),onCurrentChange:h,onPageChange:n[2]||=e=>a(`page-change`,e),onPageSizeChange:n[3]||=e=>a(`page-size-change`,e),onPrevClick:n[4]||=e=>a(`prev-click`,e),onNextClick:n[5]||=e=>a(`next-click`,e)}),(0,e.createSlots)({_:2},[o[`table-empty`]?{name:`empty`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`table-empty`)]),key:`0`}:void 0,(0,e.renderList)(m(),n=>({name:n,fn:(0,e.withCtx)(r=>[(0,e.renderSlot)(t.$slots,n,(0,e.normalizeProps)((0,e.guardReactiveProps)(r)))])}))]),1040,[`auto-height`,`height`])],2),o[`append-table`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,z,[(0,e.renderSlot)(t.$slots,`append-table`)])):(0,e.createCommentVNode)(``,!0)]),_:3})]),_:3},8,[`style`])]),_:3},8,[`class`,`style`]))}}),V=[h,S,C,j,B],H={install(e,t={}){e.provide(n,t),V.forEach(t=>{e.component(t.name??``,t)})}};exports.CtcComponentsUi=H,exports.default=H,exports.CtcDialog=h,exports.CtcDrawer=S,exports.CtcFlex=C,exports.CtcReport=B,exports.CtcTable=j;
|
package/dist/index.d.ts
CHANGED
|
@@ -2,10 +2,13 @@ import { ComponentOptionsMixin } from 'vue';
|
|
|
2
2
|
import { ComponentProvideOptions } from 'vue';
|
|
3
3
|
import { DefineComponent } from 'vue';
|
|
4
4
|
import { EmitsOptions } from 'vue';
|
|
5
|
+
import { EmitsToProps } from 'vue';
|
|
5
6
|
import { ExtractPropTypes } from 'vue';
|
|
6
7
|
import { Plugin as Plugin_2 } from 'vue';
|
|
7
8
|
import { PropType } from 'vue';
|
|
8
9
|
import { PublicProps } from 'vue';
|
|
10
|
+
import { Slot } from 'vue';
|
|
11
|
+
import { SlotsType } from 'vue';
|
|
9
12
|
import { TableInstance } from 'element-plus';
|
|
10
13
|
import { TableProps } from 'element-plus';
|
|
11
14
|
import { VNode } from 'vue';
|
|
@@ -485,6 +488,63 @@ export declare interface CtcFlexProps {
|
|
|
485
488
|
|
|
486
489
|
export declare type CtcFlexScroll = boolean | 'x' | 'y';
|
|
487
490
|
|
|
491
|
+
export declare const CtcReport: CtcReportComponent;
|
|
492
|
+
|
|
493
|
+
declare type CtcReportComponent = DefineComponent<CtcReportPublicProps, CtcReportInstance, {}, {}, {}, {}, {}, CtcTableEmits, string, PublicProps, CtcReportPublicProps & EmitsToProps<CtcTableEmits>, {}, SlotsType<CtcReportSlots>>;
|
|
494
|
+
|
|
495
|
+
export declare interface CtcReportInstance {
|
|
496
|
+
tableRef: CtcTableInstance | null;
|
|
497
|
+
clearSelection: () => void;
|
|
498
|
+
toggleRowSelection: (row: Record<string, unknown>, selected?: boolean) => void;
|
|
499
|
+
toggleAllSelection: () => void;
|
|
500
|
+
toggleRowExpansion: (row: Record<string, unknown>, expanded?: boolean) => void;
|
|
501
|
+
setCurrentRow: (row?: Record<string, unknown>) => void;
|
|
502
|
+
clearSort: () => void;
|
|
503
|
+
clearFilter: (columnKey?: string) => void;
|
|
504
|
+
doLayout: () => void;
|
|
505
|
+
sort: (prop: string, order: 'ascending' | 'descending') => void;
|
|
506
|
+
scrollTo: (options: ScrollToOptions | number, yCoord?: number) => void;
|
|
507
|
+
setScrollTop: (top: number) => void;
|
|
508
|
+
setScrollLeft: (left: number) => void;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
export declare interface CtcReportProps {
|
|
512
|
+
title?: string;
|
|
513
|
+
autoHeight?: boolean;
|
|
514
|
+
height?: string | number;
|
|
515
|
+
margin?: CtcReportSpacing;
|
|
516
|
+
padding?: CtcReportSpacing;
|
|
517
|
+
containerMargin?: CtcReportSpacing;
|
|
518
|
+
containerPadding?: CtcReportSpacing;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
export declare type CtcReportPublicProps = CtcReportProps & CtcTablePublicProps;
|
|
522
|
+
|
|
523
|
+
export declare interface CtcReportSlots {
|
|
524
|
+
'custom-tool-bar'?: Slot;
|
|
525
|
+
'tool-bar'?: Slot;
|
|
526
|
+
'tool-bar-left'?: Slot;
|
|
527
|
+
'tool-bar-right'?: Slot;
|
|
528
|
+
'search-bar'?: Slot;
|
|
529
|
+
'search-bar-left'?: Slot;
|
|
530
|
+
'search-bar-right'?: Slot;
|
|
531
|
+
'container-top'?: Slot;
|
|
532
|
+
'table-bar'?: Slot;
|
|
533
|
+
'table-title'?: Slot;
|
|
534
|
+
'table-info-left'?: Slot;
|
|
535
|
+
'table-info-right'?: Slot;
|
|
536
|
+
default?: Slot;
|
|
537
|
+
/** @deprecated 推荐直接使用 empty 插槽 */
|
|
538
|
+
'table-empty'?: Slot;
|
|
539
|
+
'append-table'?: Slot;
|
|
540
|
+
empty?: Slot;
|
|
541
|
+
append?: Slot;
|
|
542
|
+
pagination?: Slot;
|
|
543
|
+
[name: string]: Slot | undefined;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
export declare type CtcReportSpacing = number | string | readonly [number] | readonly [number, number] | readonly [number, number, number] | readonly [number, number, number, number];
|
|
547
|
+
|
|
488
548
|
export declare const CtcTable: CtcTableComponent;
|
|
489
549
|
|
|
490
550
|
export declare interface CtcTableCellScope<Row extends object = Record<string, unknown>> {
|