@ctc-front/components-ui-next 0.2.0 → 0.3.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 CHANGED
@@ -9,12 +9,13 @@
9
9
  - Element Plus 原生表格属性类型、滚动方法与 `elTableRef` 原生实例入口
10
10
  - `app.use(CtcComponentsUi, options)` 团队默认配置
11
11
  - `CtcReport` 报表布局:工具栏、查询区、标题、统计区、表格前后区域组合,完整类型和表格实例入口
12
+ - `CtcVideoPlayer` 视频播放器:支持 mpegts.js 流媒体播放、时间轴、工具栏与 seek 模拟
12
13
  - 白色、黑色、蓝色大屏三套主题,适配原生控件、弹层、状态提示和空状态
13
14
 
14
15
  ## 安装
15
16
 
16
17
  ```bash
17
- pnpm add @ctc-front/components-ui-next@0.2.0 element-plus vue @element-plus/icons-vue
18
+ pnpm add @ctc-front/components-ui-next@0.3.0 element-plus vue @element-plus/icons-vue
18
19
  ```
19
20
 
20
21
  ## 使用
@@ -81,23 +82,26 @@ applyTheme('blue')
81
82
 
82
83
  详细属性、插槽、分页和主题说明见[开始使用](./docs/guide/getting-started.md)。各个已发布版本的功能点见[更新日志](./CHANGELOG.md)和[版本说明](./docs/guide/releases.md)。
83
84
 
85
+ 项目的 GitLab 校验、文档部署、npm 发布和回滚说明见 [CI/CD 文档](./deploy/CI-CD.md)。
86
+
84
87
  ## 版本说明
85
88
 
86
- 当前为 `0.2.0`,适用于 Vue 3 项目。Vue 2 / Element UI 项目请继续使用原组件库。
89
+ 当前为 `0.3.0`,适用于 Vue 3 项目。Vue 2 / Element UI 项目请继续使用原组件库。
87
90
 
88
91
  ## 文档与本地演示
89
92
 
90
93
  ```bash
91
- pnpm dev # 开发与审查:http://127.0.0.1:4173,支持热更新
94
+ pnpm dev # 组件 Playground:http://127.0.0.1:5173,草稿页不进版本库
95
+ pnpm docs:dev # VitePress 文档站:http://127.0.0.1:4173,支持热更新
92
96
  pnpm docs:preview # 构建产物验收:http://localhost:4174
93
97
  pnpm docs:sync # 同步源码契约、API 页和 AI 阅读文件
94
98
  pnpm docs:check # 检查契约覆盖及生成文档是否过期
95
99
  pnpm release:check
96
100
  ```
97
101
 
98
- 日常修改和审查使用 `pnpm dev`。`docs:preview` 会先构建,再启动静态预览;预览期间重新构建后,需要停止并重新运行该命令,让服务读取新的资源清单。
102
+ `pnpm dev` 首次启动会从 `play/app.example.vue` 生成 `play/src/App.vue`;该文件及 `play/src/` 下的其它草稿均被忽略,不会提交。删除 `App.vue` 后重新运行即可恢复模板。
99
103
 
100
- 所有示例位于 `docs/examples/`,由 `manifest.json` 登记并嵌入 Markdown,无需维护独立 Playground 应用。
104
+ 组件调试使用 `pnpm dev`;文档与正式示例使用 `pnpm docs:dev`,示例位于 `docs/examples/`,由 `manifest.json` 登记并嵌入 Markdown。
101
105
 
102
106
  - 人工使用:[组件目录](./docs/components/index.md) · [方法实战](./docs/components/table/methods.md) · [业务场景](./docs/patterns/index.md)
103
107
  - AI 读取:[llms.txt](./llms.txt) · [读取约定](./docs/guide/ai.md) · [契约源](./docs/reference/components.json)
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=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;
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:`ArrowDown`,__name:`arrow-down`,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:`M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z`})]))}}),a=(0,e.defineComponent)({name:`ArrowRight`,__name:`arrow-right`,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:`M340.864 149.312a30.59 30.59 0 0 0 0 42.752L652.736 512 340.864 831.872a30.59 30.59 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z`})]))}}),o=(0,e.defineComponent)({name:`Bell`,__name:`bell`,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:`M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64`}),(0,e.createElementVNode)(`path`,{fill:`currentColor`,d:`M256 768h512V448a256 256 0 1 0-512 0zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320`}),(0,e.createElementVNode)(`path`,{fill:`currentColor`,d:`M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32m352 128h128a64 64 0 0 1-128 0`})]))}}),s=(0,e.defineComponent)({name:`Camera`,__name:`camera`,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:`M896 256H128v576h768zm-199.424-64-32.064-64h-304.96l-32 64zM96 192h160l46.336-92.608A64 64 0 0 1 359.552 64h304.96a64 64 0 0 1 57.216 35.328L768.192 192H928a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32m416 512a160 160 0 1 0 0-320 160 160 0 0 0 0 320m0 64a224 224 0 1 1 0-448 224 224 0 0 1 0 448`})]))}}),c=(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`})]))}}),l=(0,e.defineComponent)({name:`Fold`,__name:`fold`,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:`M896 192H128v128h768zm0 256H384v128h512zm0 256H128v128h768zM320 384 128 512l192 128z`})]))}}),u=(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`})]))}}),d=(0,e.defineComponent)({name:`Loading`,__name:`loading`,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:`M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0`})]))}}),f=(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`})]))}}),p=(0,e.defineComponent)({name:`MuteNotification`,__name:`mute-notification`,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:`m241.216 832 63.616-64H768V448c0-42.368-10.24-82.304-28.48-117.504l46.912-47.232C815.36 331.392 832 387.84 832 448v320h96a32 32 0 1 1 0 64zm-90.24 0H96a32 32 0 1 1 0-64h96V448a320.13 320.13 0 0 1 256-313.6V128a64 64 0 1 1 128 0v6.4a319.55 319.55 0 0 1 171.648 97.088l-45.184 45.44A256 256 0 0 0 256 448v278.336L151.04 832zM448 896h128a64 64 0 0 1-128 0`}),(0,e.createElementVNode)(`path`,{fill:`currentColor`,d:`M150.72 859.072a32 32 0 0 1-45.44-45.056l704-708.544a32 32 0 0 1 45.44 45.056z`})]))}}),m=(0,e.defineComponent)({name:`Mute`,__name:`mute`,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:`m412.16 592.128-45.44 45.44A191.23 191.23 0 0 1 320 512V256a192 192 0 1 1 384 0v44.352l-64 64V256a128 128 0 1 0-256 0v256c0 30.336 10.56 58.24 28.16 80.128m51.968 38.592A128 128 0 0 0 640 512v-57.152l64-64V512a192 192 0 0 1-287.68 166.528zM314.88 779.968l46.144-46.08A223 223 0 0 0 480 768h64a224 224 0 0 0 224-224v-32a32 32 0 1 1 64 0v32a288 288 0 0 1-288 288v64h64a32 32 0 1 1 0 64H416a32 32 0 1 1 0-64h64v-64c-61.44 0-118.4-19.2-165.12-52.032M266.752 737.6A286.98 286.98 0 0 1 192 544v-32a32 32 0 0 1 64 0v32c0 56.832 21.184 108.8 56.064 148.288z`}),(0,e.createElementVNode)(`path`,{fill:`currentColor`,d:`M150.72 859.072a32 32 0 0 1-45.44-45.056l704-708.544a32 32 0 0 1 45.44 45.056z`})]))}}),h=(0,e.defineComponent)({name:`Refresh`,__name:`refresh`,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:`M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z`})]))}}),g=(0,e.defineComponent)({name:`Search`,__name:`search`,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:`m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704`})]))}}),_=(0,e.defineComponent)({name:`VideoCamera`,__name:`video-camera`,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:`M704 768V256H128v512zm64-416 192-96v512l-192-96v128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32zm0 71.552v176.896l128 64V359.552zM192 320h192v64H192z`})]))}}),v=(0,e.defineComponent)({name:`VideoPause`,__name:`video-pause`,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:`M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768m-96-544q32 0 32 32v256q0 32-32 32t-32-32V384q0-32 32-32m192 0q32 0 32 32v256q0 32-32 32t-32-32V384q0-32 32-32`})]))}}),y=(0,e.defineComponent)({name:`VideoPlay`,__name:`video-play`,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:`M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768m-48-247.616L668.608 512 464 375.616zm10.624-342.656 249.472 166.336a48 48 0 0 1 0 79.872L474.624 718.272A48 48 0 0 1 400 678.336V345.6a48 48 0 0 1 74.624-39.936z`})]))}}),b=(0,e.defineComponent)({name:`Warning`,__name:`warning`,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:`M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768m48-176a48 48 0 1 1-96 0 48 48 0 0 1 96 0m-48-464a32 32 0 0 1 32 32v288a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32`})]))}});function x(t,n){let r=(0,e.computed)(()=>t.fullscreen??!1);function i(){n(`update:fullscreen`,!r.value)}return{isFullscreen:r,toggleFullscreen:i}}function S(e,t,n){return Math.min(Math.max(e,t),n)}function C(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 c=s.getBoundingClientRect(),l=t.minWidth??400,u=t.minHeight??240,d=Math.max(l,window.innerWidth-c.left-32),f=Math.max(u,window.innerHeight-c.top-32),p=e.clientX,m=e.clientY;function h(e){let t=Math.round(S(c.width+e.clientX-p,l,d)),a=Math.round(S(c.height+e.clientY-m,u,f));r.value=!0,i.value={height:`${a}px`,width:`${t}px`},n(`resize`,{width:t,height:a})}function g(){o()}window.addEventListener(`pointermove`,h),window.addEventListener(`pointerup`,g,{once:!0}),a=()=>{window.removeEventListener(`pointermove`,h),window.removeEventListener(`pointerup`,g)}}return(0,e.onBeforeUnmount)(o),{isResized:r,resizeStyle:i,startResize:s}}var w={class:`ctc-dialog__header-content`},T={class:`ctc-dialog__title`},E={class:`ctc-dialog__header-actions`},D=[`aria-label`,`title`],O={class:`ctc-dialog__content`},k=(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:i}){let a=n,o=i,s=(0,e.useAttrs)(),l=(0,e.useSlots)(),d=r(),{isFullscreen:p,toggleFullscreen:m}=x(a,o),{isResized:h,resizeStyle:g,startResize:_}=C(a,o),v=(0,e.computed)(()=>p.value?{}:g.value),y=(0,e.computed)(()=>h.value&&!p.value),b=(0,e.computed)(()=>a.closeOnClickModal??d.dialog?.closeOnClickModal??!1);function S(e){o(`update:modelValue`,e)}function k(){if(a.beforeClose){a.beforeClose(e=>{e||o(`update:modelValue`,!1)});return}o(`update:modelValue`,!1)}return(r,i)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElDialog),(0,e.mergeProps)((0,e.unref)(s),{class:[`ctc-dialog`,{"ctc-dialog--content-fill":n.contentFill,"ctc-dialog--resizable":n.resizable,"ctc-dialog--resized":y.value}],style:v.value,"model-value":n.modelValue,fullscreen:(0,e.unref)(p),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":b.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":S,onOpen:i[2]||=e=>o(`open`),onOpened:i[3]||=e=>o(`opened`),onClose:i[4]||=e=>o(`close`),onClosed:i[5]||=e=>o(`closed`)}),(0,e.createSlots)({header:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,w,[(0,e.renderSlot)(r.$slots,`header`,{},()=>[(0,e.createElementVNode)(`span`,T,(0,e.toDisplayString)(n.title),1)])]),(0,e.createElementVNode)(`div`,E,[n.showFullscreen?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,class:`ctc-dialog__fullscreen-toggle`,type:`button`,"aria-label":(0,e.unref)(p)?`退出全屏`:`全屏显示`,title:(0,e.unref)(p)?`退出全屏`:`全屏显示`,"data-ctc-fullscreen-toggle":``,onClick:i[0]||=(...t)=>(0,e.unref)(m)&&(0,e.unref)(m)(...t)},[(0,e.createVNode)((0,e.unref)(t.ElIcon),{"aria-hidden":`true`},{default:(0,e.withCtx)(()=>[(0,e.unref)(p)?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(f),{key:0})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(u),{key:1}))]),_:1})],8,D)):(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)(c))]),_:1})])):(0,e.createCommentVNode)(``,!0)])]),default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,O,[(0,e.renderSlot)(r.$slots,`default`)]),n.resizable&&!(0,e.unref)(p)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`ctc-dialog__resize-handle`,"aria-hidden":`true`,"data-ctc-resize-handle":``,onPointerdown:i[1]||=(...t)=>(0,e.unref)(_)&&(0,e.unref)(_)(...t)},null,32)):(0,e.createCommentVNode)(``,!0)]),_:2},[(0,e.unref)(l).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`]))}}),A={class:`ctc-drawer__header-content`},j={class:`ctc-drawer__title`},M={class:`ctc-drawer__header-actions`},N=[`aria-label`,`title`],P={class:`ctc-drawer__content`},F={key:0,class:`ctc-drawer__footer`},I=(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 i=n,a=r,o=(0,e.useAttrs)(),s=(0,e.useSlots)(),{isFullscreen:l,toggleFullscreen:d}=x(i,a),p=(0,e.computed)(()=>l.value?`100%`:i.size);function m(e){a(`update:modelValue`,e)}function h(){if(i.beforeClose){i.beforeClose(e=>{e||a(`update:modelValue`,!1)});return}a(`update:modelValue`,!1)}return(r,i)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElDrawer),(0,e.mergeProps)((0,e.unref)(o),{class:[`ctc-drawer`,{"is-fullscreen":(0,e.unref)(l)}],"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:p.value,"z-index":n.zIndex,"header-class":`ctc-drawer__header`,"body-class":`ctc-drawer__body`,"onUpdate:modelValue":m,onOpen:i[1]||=e=>a(`open`),onOpened:i[2]||=e=>a(`opened`),onClose:i[3]||=e=>a(`close`),onClosed:i[4]||=e=>a(`closed`)}),{header:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,A,[(0,e.renderSlot)(r.$slots,`header`,{},()=>[(0,e.createElementVNode)(`span`,j,(0,e.toDisplayString)(n.title),1)])]),(0,e.createElementVNode)(`div`,M,[n.showFullscreen?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,class:`ctc-drawer__fullscreen-toggle`,type:`button`,"aria-label":(0,e.unref)(l)?`退出全屏`:`全屏显示`,title:(0,e.unref)(l)?`退出全屏`:`全屏显示`,"data-ctc-fullscreen-toggle":``,onClick:i[0]||=(...t)=>(0,e.unref)(d)&&(0,e.unref)(d)(...t)},[(0,e.createVNode)((0,e.unref)(t.ElIcon),{"aria-hidden":`true`},{default:(0,e.withCtx)(()=>[(0,e.unref)(l)?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(f),{key:0})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(u),{key:1}))]),_:1})],8,N)):(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:h},[(0,e.createVNode)((0,e.unref)(t.ElIcon),{"aria-hidden":`true`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(c))]),_: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)(s).footer}])},[(0,e.createElementVNode)(`div`,P,[(0,e.renderSlot)(r.$slots,`default`)]),(0,e.unref)(s).footer?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,F,[(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`]))}}),L=(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))}}),R=new Set([`selection`,`index`,`expand`]),z=new Map,B=(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=z.get(t);return n||(n=t.replace(/\[(?:'([^']*)'|"([^"]*)"|([^\]]+))\]/g,`.$1$2$3`).split(`.`).filter(Boolean),z.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?R.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 V(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 ee(e,t,n){return n.every(n=>Object.is(V(e,n),V(t,n)))}function H(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&&ee(e[r-1],o,a.by))return{rowspan:0,colspan:0};let s=1;for(;r+s<e.length&&ee(o,e[r+s],a.by);)s+=1;return{rowspan:s,colspan:1}}}var U={key:0,class:`ctc-table__pagination`},W=(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 H(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)(B,{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`,U,[(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))}}),te={key:0,class:`ctc-report__bar-left`},ne={key:1,class:`ctc-report__bar-right`},G=(0,e.defineComponent)({__name:`ReportBar`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(L),{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`,te,[(0,e.renderSlot)(t.$slots,`left`)])):(0,e.createCommentVNode)(``,!0),t.$slots.right?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ne,[(0,e.renderSlot)(t.$slots,`right`)])):(0,e.createCommentVNode)(``,!0)])]),_:3}))}}),re={key:0,class:`ctc-report__container-top`},ie={key:0,class:`ctc-report__table-bar`},ae={key:0,class:`ctc-report__title`},K={key:1,class:`ctc-report__before`},oe={key:2,class:`ctc-report__after`},se=(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)(L),{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)(G,{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)(G,{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)(L),{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`,re,[(0,e.renderSlot)(t.$slots,`container-top`)])):(0,e.createCommentVNode)(``,!0),(0,e.createVNode)((0,e.unref)(L),{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`,ie,[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`,ae,[(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)(G,{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`,K,[(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)(W),(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`,oe,[(0,e.renderSlot)(t.$slots,`append-table`)])):(0,e.createCommentVNode)(``,!0)]),_:3})]),_:3},8,[`style`])]),_:3},8,[`class`,`style`]))}});function q(e){return String(e).padStart(2,`0`)}function ce(e){return`${e.getFullYear()}-${q(e.getMonth()+1)}-${q(e.getDate())} ${q(e.getHours())}:${q(e.getMinutes())}:${q(e.getSeconds())}`}function le(){let e=new Date;return e.setHours(0,0,0,0),ce(e)}function J(e){let t=/(?:^|\s)(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?/.exec(e||``);return t?Number(t[1])+Number(t[2]??0)/60+Number(t[3]??0)/3600:0}function Y(e){let t=/^(\d{4})-(\d{2})-(\d{2})\s+(.*)$/.exec(e||``);if(t){let[,e,n,r,i]=t;return Date.UTC(Number(e),Number(n)-1,Number(r))/864e5*24+J(i??``)}return J(e)}function ue(e,t){let n=Y(t)-Y(e);return n>0?n:n<0?n+24:0}function de(e){let t=Math.max(0,Math.round(e*3600));return`${q(Math.floor(t/3600))}:${q(Math.floor(t%3600/60))}:${q(t%60)}`}function fe(e,t){let n=e||`00:00`,r=Math.max(0,Math.round((t-Y(n))*36e5));return n.split(` `)[0]?ce(new Date(new Date(n.replace(` `,`T`)).getTime()+r)):de((J(n)*36e5+r)%864e5/36e5)}function pe(){return Y(ce(new Date))}var me=2e4,he=6e4;function ge(e,t){let n=e,r=n?.response?.data??n,i=String(r?.msg??r?.message??``).trim();if(i)return/network error/i.test(i)?`网络异常,请检查网络后重试`:/timeout/i.test(i)?`请求超时,请重试`:i;let a=n?.response?.status;return typeof a==`number`&&a>=400?`${t}(HTTP ${a})`:t}var _e=null;function ve(){return _e||=import(`@brid9e/mpegts.js`).then(e=>e.default),_e}function ye(t){let n=(0,e.ref)(),r=(0,e.ref)(!1),i=(0,e.ref)(!1),a=(0,e.ref)(``),o=(0,e.ref)(!1),s=(0,e.ref)(!1),c=(0,e.ref)([]),l=(0,e.ref)(0),u=(0,e.ref)(``),d=null,f=null,p=null,m=0,h=(0,e.computed)(()=>c.value[l.value]);function g(){_(),p=setTimeout(()=>{p=null,r.value&&(r.value=!1,i.value=!0,a.value=`视频加载超时,请重试`)},me)}function _(){p&&=(clearTimeout(p),null)}function v(){f&&=(clearTimeout(f),null)}function y(){i.value=!1,a.value=``}function b(e,n){i.value=!0,a.value=e,r.value=!1,_(),t.onError?.({channel:t.channel(),error:n??Error(e),mode:t.mode()})}function x(e){r.value=!0,s.value=e,g()}function S(){if(v(),_(),d){let e=d;d=null,e.pause(),e.unload(),e.detachMediaElement(),e.destroy()}let e=n.value;e&&(e.removeAttribute(`src`),e.load())}async function C(t,i,a){let o=await ve();if(a!==m)return;if(!o.isSupported()){b(`当前浏览器不支持 flv 播放`);return}if(S(),n.value||await(0,e.nextTick)(),a!==m)return;if(!n.value){b(`视频容器尚未就绪`);return}let s=o.createPlayer({type:`flv`,url:t,isLive:i},i?{enableWorker:!1,enableStashBuffer:!1,stashInitialSize:128,lazyLoad:!1,autoCleanupSourceBuffer:!0,autoDisableAudioOnUnsupportedCodec:!0,autoDisableAudioTimeout:1e3}:{enableWorker:!1,lazyLoad:!1,seekType:`range`,enableStashBuffer:!0,stashInitialSize:8192,autoCleanupSourceBuffer:!0,autoCleanupMaxBackwardDuration:120,autoCleanupMinBackwardDuration:60,autoDisableAudioOnUnsupportedCodec:!0,autoDisableAudioTimeout:1e3});s.attachMediaElement(n.value),s.on(o.Events.ERROR,()=>{a===m&&b(`视频流播放中断,请重试`)}),s.load();let c=s.play();c&&typeof c.catch==`function`&&c.catch(()=>{}),d=s,r.value&&g()}async function w(e){let n=t.source?.();return n?.live?n.live(e):e.liveUrl?{url:e.liveUrl}:null}async function T(e,n,r){let i=t.source?.();return i?.playback?i.playback(e,{beginTime:n,endTime:r}):e.playbackUrl?{url:e.playbackUrl}:null}async function E(e=!0){let n=t.channel();if(!n)return;let r=++m;s.value=!1,e&&x(!1),y();try{let e=await w(n);if(r!==m||t.channel()?.id!==n.id)return;if(!e?.url){b(`未获取到拉流地址`);return}await C(e.url,!0,r),r===m&&k(e.expireTime,r)}catch(e){r===m&&b(ge(e,`视频加载失败,请切换其他通道`),e)}}async function D(e=!0,n=!1){let r=t.channel();if(!r)return;let i=++m;s.value=!1,n||(u.value=t.beginTime()),e&&x(!1),y();try{let e=await T(r,u.value||t.beginTime(),t.endTime());if(i!==m||t.channel()?.id!==r.id)return;let n=e?.segments??[];if(c.value=n,n.length>0)l.value=0,await C(n[0].url,!1,i);else if(e?.url)c.value=[],await C(e.url,!1,i);else{b(`该时段无录像`);return}i===m&&k(e?.expireTime,i)}catch(e){i===m&&b(ge(e,`录像获取失败,请切换其他时段`),e)}}async function O(e){if(t.mode()!==`playback`)return;let n=t.channel();if(!n)return;let i=++m;y(),x(!0);try{u.value=fe(t.beginTime(),e);let r=await T(n,u.value,t.endTime());if(i!==m||t.channel()?.id!==n.id)return;let a=r?.segments??[];if(c.value=a,a.length>0)l.value=0,await C(a[0].url,!1,i);else if(r?.url)c.value=[],await C(r.url,!1,i);else{b(`该时段无录像`);return}i===m&&k(r?.expireTime,i)}catch{r.value=!1,s.value=!1,_()}}function k(e,n){if(v(),!e)return;let r=new Date(e.replace(/-/g,`/`)).getTime()-Date.now()-he;r<=0||(f=setTimeout(()=>{f=null,!(n!==m||!t.channel())&&(t.mode()===`playback`?D(!1,!0):E(!1))},r))}function A(){r.value=!1,s.value=!1,_()}function j(){o.value=!1}function M(){o.value=!0}function N(){let e=n.value;!e||t.mode()!==`playback`||(e.paused?e.play().catch(()=>{}):e.pause())}function P(){if(t.mode()!==`playback`)return;let e=l.value+1;if(c.value.length>0&&e<c.value.length){l.value=e;let t=c.value[e];t&&C(t.url,!1,m);return}t.onPlaybackEnded?.({channel:t.channel(),mode:t.mode()})}function F(){if(t.mode()!==`playback`)return NaN;let e=n.value,r=h.value,i=Y(u.value||t.beginTime()||`00:00`);if(!e||!r)return NaN;let a=c.value.slice(0,l.value).reduce((e,t)=>e+ue(t.segmentBeginTime??``,t.segmentEndTime??``),0),o=e.currentTime>0?e.currentTime/3600:0;return i+a+o}function I(){r.value||!t.channel()||(t.mode()===`live`?E(!0):h.value?O(F()):D(!0,!0))}function L(){m++,S(),r.value=!1,i.value=!1,a.value=``,o.value=!1,s.value=!1,c.value=[],l.value=0,u.value=t.beginTime()}function R(){let e=t.channel();L(),e&&(t.mode()===`live`?E(!0):D(!0))}return(0,e.watch)([()=>t.channel()?.id,()=>t.mode()],()=>R(),{immediate:!0}),(0,e.watch)([()=>t.beginTime(),()=>t.endTime()],()=>{t.mode()===`playback`&&R()}),(0,e.onBeforeUnmount)(()=>{m++,S(),v()}),{clearWatchdog:_,cursorHour:F,currentSegment:h,destroy:S,error:i,errorText:a,isPaused:o,isSeekReload:s,loading:r,onEnded:P,onPause:M,onPlay:j,onPlaying:A,playbackBeginTime:u,reload:I,segmentIndex:l,segments:c,seekTo:O,togglePause:N,videoEl:n}}var be={none:()=>!0,alt:e=>e.altKey,ctrl:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};function X(e,t){return typeof window>`u`?t:getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t}function xe(t){let n=(0,e.ref)(),r=(0,e.ref)(0),i=(0,e.ref)(!1),a=(0,e.ref)(-1),o=(0,e.ref)(0),s=null,c=null,l=!1,u=null,d=null,f=t.axisRange??(0,e.ref)({start:0,end:24}),p=(0,e.computed)(()=>f.value.start),m=(0,e.computed)(()=>f.value.end),h=(0,e.computed)(()=>Math.max(m.value-p.value,1e-4)),g=(0,e.computed)(()=>Math.min(m.value,t.availableEndHour?.()??m.value)),_=(0,e.computed)(()=>g.value<m.value-1e-6),v=(0,e.ref)(h.value),y=(0,e.ref)(p.value),b=(0,e.computed)(()=>Math.min(y.value+v.value,m.value)),x=[1/12,.25,.5,1,2,4,6,8,12,24,48],S=(0,e.computed)(()=>{let e=v.value/20;for(let t of x)if(t>=e)return t;return x[x.length-1]??48}),C=(0,e.computed)(()=>(o.value,{alarm:X(`--el-color-danger`,`#f56c6c`),forbidden:X(`--ctc-color-text-placeholder`,`#94969e`),hoverBox:X(`--ctc-color-surface-elevated`,`#282a32`),hoverHint:X(`--ctc-color-text-secondary`,`#b8bcc6`),hoverLinePlayed:X(`--ctc-color-on-primary`,`#ffffff`),hoverLineRest:X(`--ctc-color-primary`,`#1f5eff`),hoverText:X(`--ctc-color-text`,`#e5e7eb`),labelPlayed:X(`--ctc-color-on-primary`,`#ffffff`),labelRest:X(`--ctc-color-text-secondary`,`#b8bcc6`),played:X(`--ctc-color-primary`,`#1f5eff`),tickPlayed:X(`--ctc-color-on-primary`,`#ffffff`),tickRest:X(`--ctc-color-text-placeholder`,`#98a2b3`),track:X(`--ctc-color-fill`,`#2e3039`)}));function w(e,t,n,r=!1){let i=n-t,a=new Date(Math.floor(e/24)*864e5),o=`${String(a.getUTCMonth()+1).padStart(2,`0`)}-${String(a.getUTCDate()).padStart(2,`0`)}`;if(r){let t=Math.floor((e%24+24)%24*3600);return`${o} ${String(Math.floor(t/3600)).padStart(2,`0`)}:${String(Math.floor(t%3600/60)).padStart(2,`0`)}:${String(t%60).padStart(2,`0`)}`}let s=Math.round((e%24+24)%24*60),c=`${String(Math.floor(s/60)).padStart(2,`0`)}:${String(s%60).padStart(2,`0`)}`;return Math.floor(t/24)===Math.floor(n/24)?c:i>=168?o:`${o} ${c}`}let T=(0,e.computed)(()=>{let e=p.value+r.value*h.value,t=(e%24+24)%24*3600,n=`${String(Math.floor(t/3600)).padStart(2,`0`)}:${String(Math.floor(t%3600/60)).padStart(2,`0`)}:${String(Math.floor(t%60)).padStart(2,`0`)}`;if(Math.floor(p.value/24)!==Math.floor(m.value/24)){let t=new Date(Math.floor(e/24)*864e5);return`${String(t.getUTCMonth()+1).padStart(2,`0`)}-${String(t.getUTCDate()).padStart(2,`0`)} ${n}`}return n});function E(e){let t=Y(e);return/^\d{4}-\d{2}-\d{2}/.test(e)?t:Math.floor(p.value/24)*24+t}let D=(0,e.computed)(()=>{let e=p.value+r.value*h.value;return t.alarms.value.filter(t=>e>=E(t.startTime)&&e<=E(t.endTime))});function O(){if(t.getCursorHour){let e=t.getCursorHour();if(Number.isFinite(e))return e}let e=t.videoRef.value,n=e?.duration;return e&&n&&Number.isFinite(n)?p.value+e.currentTime/n*h.value:p.value+r.value*h.value}function k(){let e=v.value,t=p.value+r.value*h.value,n=y.value,i=Math.min(n+e,m.value),a=e*.15;t<n+a&&n>p.value?y.value=Math.max(p.value,t-a):t>i-a&&i<m.value&&(y.value=Math.min(m.value-e,t-e+a))}function A(){let e=t.videoRef.value,a=n.value;if(!e||!a||e.paused||i.value){c=null;return}r.value=Math.max(0,Math.min(1,(O()-p.value)/h.value)),k(),j(),c=requestAnimationFrame(A)}function j(){let e=n.value;if(!e)return;let o=e.getContext(`2d`);if(!o)return;let s=e.getBoundingClientRect();if(s.width<=0||s.height<=0)return;let c=window.devicePixelRatio||1;e.width=s.width*c,e.height=s.height*c,o.scale(c,c),o.clearRect(0,0,s.width,s.height);let l=o,u=C.value,d=s.width,f=s.height,m=f/2,v=y.value,x=b.value,T=p.value+r.value*h.value,D=e=>(e-v)/(x-v)*d,O=e=>Math.max(0,Math.min(d,e)),k=e=>Math.max(10,Math.min(d-10,e));l.fillStyle=u.track,l.fillRect(0,0,d,f);let A=O(D(p.value)),j=O(D(T));l.fillStyle=u.played,l.fillRect(A,0,Math.max(j-A,0),f);for(let e of t.alarms.value){let t=E(e.startTime),n=E(e.endTime);if(n<v||t>x)continue;let r=O(D(t)),i=O(D(n));i-r<1||(l.globalAlpha=.85,l.fillStyle=u.alarm,l.fillRect(r,0,i-r,f),l.globalAlpha=1)}l.lineWidth=1,l.textAlign=`left`,l.textBaseline=`middle`;let M=S.value,N=x-v,P=N>=168||Math.floor(v/24)===Math.floor(x/24)?34:52,F=Math.max(M,(P+8)/d*N),I=Math.max(1,Math.ceil(F/M));function L(e,t){l.strokeStyle=e,l.fillStyle=t,l.font=M<.5?`8px sans-serif`:`9px sans-serif`;let n=Math.ceil(v/M)*M,r=0;for(;n<=x+1e-6;){let e=D(n);e>=0&&e<=d&&(l.globalAlpha=.55,l.beginPath(),l.moveTo(e,0),l.lineTo(e,f/2),l.stroke(),l.globalAlpha=1,r%I===0&&l.fillText(w(n,v,x),k(e+4),m)),n+=M,r++}}function R(e,t,n,r){t-e<=0||(l.save(),l.beginPath(),l.rect(e,0,t-e,f),l.clip(),L(n,r),l.restore())}if(R(0,j,u.tickPlayed,u.labelPlayed),R(j,d,u.tickRest,u.labelRest),_.value&&g.value<x){let e=O(D(g.value)),t=O(D(x));t-e>=1&&(l.globalAlpha=.32,l.fillStyle=u.forbidden,l.fillRect(e,0,t-e,f),l.globalAlpha=1)}if(a.value>=0&&!i.value){let e=v+a.value*(x-v),t=D(e),n=t>=A&&t<=j,r=e>g.value+1e-6;l.strokeStyle=n?u.hoverLinePlayed:u.hoverLineRest,l.lineWidth=1,l.setLineDash([3,3]),l.beginPath(),l.moveTo(t,0),l.lineTo(t,f),l.stroke(),l.setLineDash([]),l.font=`bold 9px sans-serif`;let i=w(e,v,x,!0),o=`(还未生成回放)`,s=Math.max(l.measureText(i).width,l.measureText(o).width),c=k(t),d=s+10,p=r?28:14,h=m-p/2;l.globalAlpha=.95,l.fillStyle=u.hoverBox,l.fillRect(c-d/2,h,d,p),l.globalAlpha=1,l.fillStyle=u.hoverText,l.textAlign=`center`,l.textBaseline=`middle`,r?(l.fillText(i,c,m-7),l.fillStyle=u.hoverHint,l.fillText(o,c,m+7)):l.fillText(i,c,m)}}function M(e){let a=n.value;if(!a)return;let o=a.getBoundingClientRect(),s=Math.max(0,Math.min(1,(e.clientX-o.left)/o.width)),u=y.value+s*v.value,d=Math.min(u,g.value);if(r.value=Math.max(0,Math.min(1,(d-p.value)/h.value)),t.onSeekHour?l=!0:t.videoRef.value?.duration&&Number.isFinite(t.videoRef.value.duration)&&(t.videoRef.value.currentTime=r.value*t.videoRef.value.duration,t.mode.value===`playback`&&t.videoRef.value.paused&&t.videoRef.value.play()),k(),j(),!i.value){let e=t.videoRef.value;e&&!e.paused&&t.mode.value===`playback`&&!c&&A()}}function N(e){i.value=!0,M(e)}function P(e){i.value&&M(e)}function F(){if(i.value=!1,t.onSeekHour&&l){l=!1;let e=p.value+r.value*h.value;t.onSeekHour(Math.max(p.value,Math.min(g.value,e)))}let e=t.videoRef.value;e&&!e.paused&&t.mode.value===`playback`&&!c&&A()}function I(e){let t=n.value;if(!t)return;let r=t.getBoundingClientRect();a.value=Math.max(0,Math.min(1,(e.clientX-r.left)/r.width)),s&&cancelAnimationFrame(s),s=requestAnimationFrame(j)}function L(){a.value=-1,s&&cancelAnimationFrame(s),s=requestAnimationFrame(j)}function R(e){if(!be[t.zoomModifier?.()??`none`](e))return;e.preventDefault();let n=Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX;if(Math.abs(n)<1)return;let r=v.value,i=n>0?1.5:1/1.5,a=Math.max(.25,Math.min(h.value,r*i));a!==r&&(v.value=a)}function z(){!t.videoRef.value||i.value||(r.value=Math.max(0,Math.min(1,(O()-p.value)/h.value)),j())}function B(){t.mode.value===`playback`&&!c&&A()}function V(){a.value=-1,s&&=(cancelAnimationFrame(s),null),c&&=(cancelAnimationFrame(c),null),i.value=!1,l=!1,r.value=0,v.value=h.value,y.value=p.value,(0,e.nextTick)(j)}return(0,e.onMounted)(()=>{document.addEventListener(`mousemove`,P),document.addEventListener(`mouseup`,F),d=new MutationObserver(()=>{o.value++,(0,e.nextTick)(j)}),d.observe(document.documentElement,{attributeFilter:[`class`,`data-ctc-theme`,`data-ctc-theme-mode`,`style`],attributes:!0}),(0,e.nextTick)(j)}),(0,e.onUnmounted)(()=>{document.removeEventListener(`mousemove`,P),document.removeEventListener(`mouseup`,F),s&&cancelAnimationFrame(s),c&&cancelAnimationFrame(c),u?.disconnect(),d?.disconnect()}),(0,e.watch)(n,t=>{u?.disconnect(),!(!t||typeof ResizeObserver>`u`)&&(u=new ResizeObserver(()=>j()),u.observe(t),(0,e.nextTick)(j))},{immediate:!0}),(0,e.watch)(v,()=>{let t=p.value+r.value*h.value,n=v.value;y.value=Math.max(p.value,Math.min(m.value-n,t-n/2)),(0,e.nextTick)(j)}),(0,e.watch)(f,t=>{v.value=Math.max(.1,t.end-t.start),y.value=t.start,(0,e.nextTick)(j)}),(0,e.watch)(y,()=>(0,e.nextTick)(j)),(0,e.watch)(t.mode,()=>{t.mode.value===`playback`&&(0,e.nextTick)(j)}),{cursorPercent:r,cursorTimeText:T,currentAlarms:D,drawTimeline:j,onCanvasMouseLeave:L,onCanvasMouseMove:I,onTimelineMouseDown:N,onTimelineWheel:R,onVideoTimeUpdate:z,resetTimeline:V,startSync:B,timelineCanvas:n}}var Z={class:`ctc-video__sidebar`},Q={class:`ctc-video__sidebar-toolbar`},Se=[`onClick`],$={class:`ctc-video__channel-label`},Ce={key:0,class:`ctc-video__empty`},we=(0,e.defineComponent)({name:`CtcVideoChannelNav`,__name:`VideoChannelNav`,props:{activeChannel:{},channels:{},emptyText:{},tree:{}},emits:[`select`,`toggle-collapsed`],setup(n,{expose:r,emit:o}){let s=n,c=o,u=(0,e.ref)(``),d=(0,e.ref)(new Set);function f(e,t=new Set){for(let n of e)n.children?.length&&(t.add(n.key),f(n.children,t));return t}(0,e.watch)(()=>s.tree,e=>{d.value=e?.length?f(e):new Set},{immediate:!0});let p=(0,e.computed)(()=>{let e=s.tree;if(!e?.length)return[];let t=u.value.trim().toLowerCase();if(!t)return e;function n(e){return e.flatMap(e=>{let r=e.children?n(e.children):[];return e.label.toLowerCase().includes(t)||r.length>0?[{...e,children:r}]:[]})}return n(e)}),m=(0,e.computed)(()=>{if(!s.tree?.length){let e=u.value.trim().toLowerCase();return s.channels.filter(t=>!e||t.name.toLowerCase().includes(e)).map(e=>({channel:e,depth:0,hasChildren:!1,key:e.id,label:e.name,online:e.online,open:!1,value:e.id}))}let e=[];function t(n,r){for(let i of n){let n=!!i.children?.length,a=n&&d.value.has(i.key);e.push({channel:i.value?s.channels.find(e=>e.id===i.value):void 0,depth:r,hasChildren:n,key:i.key,label:i.label,node:i,online:i.online,open:a,value:i.value}),n&&a&&t(i.children,r+1)}}return t(p.value,0),e});function h(e){let t=new Set(d.value);t.has(e)?t.delete(e):t.add(e),d.value=t}function v(e){if(e.hasChildren){h(e.key);return}e.value&&c(`select`,e.value)}return r({keyword:u}),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`aside`,Z,[(0,e.createElementVNode)(`div`,Q,[(0,e.createVNode)((0,e.unref)(t.ElInput),{modelValue:u.value,"onUpdate:modelValue":r[0]||=e=>u.value=e,size:`small`,clearable:``,placeholder:`搜索通道`,class:`ctc-video__search`},{prefix:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.ElIcon),null,{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(g))]),_:1})]),_:1},8,[`modelValue`]),(0,e.createElementVNode)(`button`,{type:`button`,class:`ctc-video__icon-button`,title:`收起通道列表`,onClick:r[1]||=e=>c(`toggle-collapsed`)},[(0,e.createVNode)((0,e.unref)(t.ElIcon),null,{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(l))]),_:1})])]),(0,e.createVNode)((0,e.unref)(t.ElScrollbar),{class:`ctc-video__sidebar-body`},{default:(0,e.withCtx)(()=>[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(m.value,r=>((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:r.key,type:`button`,class:(0,e.normalizeClass)([`ctc-video__channel`,{"is-active":r.value===s.activeChannel,"is-parent":r.hasChildren}]),style:(0,e.normalizeStyle)({paddingLeft:`calc(var(--ctc-video-space) + ${r.depth} * var(--ctc-video-tree-indent))`}),onClick:e=>v(r)},[(0,e.renderSlot)(n.$slots,`channel`,{channel:r.channel,node:r.node,row:r,active:r.value===s.activeChannel,depth:r.depth,online:r.online,hasChildren:r.hasChildren},()=>[r.hasChildren?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElIcon),{key:0,class:`ctc-video__channel-caret`},{default:(0,e.withCtx)(()=>[r.open?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(i),{key:0})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(a),{key:1}))]),_:2},1024)):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElIcon),{key:1,class:`ctc-video__channel-icon`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(_))]),_:1})),(0,e.createElementVNode)(`span`,$,(0,e.toDisplayString)(r.label),1),r.online===void 0?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{key:2,class:(0,e.normalizeClass)([`ctc-video__dot`,{"is-online":r.online}])},null,2))])],14,Se))),128)),m.value.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ce,(0,e.toDisplayString)(s.emptyText),1)):(0,e.createCommentVNode)(``,!0)]),_:3})]))}}),Te={class:`ctc-video__toolbar`},Ee={key:0,class:`ctc-video__record-timer`},De={type:`button`,class:`ctc-video__tool-button ctc-video__rate-button`,title:`播放速度`},Oe=[`onClick`],ke={type:`button`,class:`ctc-video__tool-button`,disabled:``},Ae=150,je=5,Me=(0,e.defineComponent)({name:`CtcVideoToolbar`,__name:`VideoToolbar`,props:{channelName:{},fullscreenTarget:{},mode:{},video:{}},emits:[`notice`,`reload`],setup(n,{emit:r}){let i=n,a=r,c=[.5,1,1.5,2,4],l=(0,e.ref)(0),d=(0,e.ref)(50),f=(0,e.ref)(!1),g=(0,e.ref)(!1),y=(0,e.ref)(1),b=(0,e.ref)(!1),x=(0,e.ref)(!1),S=(0,e.ref)(0),C=null,w=null,T=null,E=null,D=[],O=0,k=`video/webm`,A=(0,e.computed)(()=>l.value===0?p:o),j=(0,e.computed)(()=>{let e=Math.floor(S.value/60);return`${String(e).padStart(2,`0`)}:${String(S.value%60).padStart(2,`0`)}`});function M(e){a(`notice`,e)}function N(e){e.volume=l.value/100,e.muted=l.value===0}function P(e){e.playbackRate=y.value}function F(){C&&clearTimeout(C),f.value=!0}function I(){C&&clearTimeout(C),C=setTimeout(()=>{f.value=!1,C=null},Ae)}function L(){l.value>0?(d.value=l.value,l.value=0):l.value=d.value||50}function R(){w&&clearTimeout(w),g.value=!0}function z(){w&&clearTimeout(w),w=setTimeout(()=>{g.value=!1,w=null},Ae)}function B(e){y.value=e,g.value=!1,i.video&&P(i.video)}function V(e,t){let n=i.channelName||`视频`,r=new Date().toISOString().replace(/[.:]/g,`-`),a=URL.createObjectURL(e),o=document.createElement(`a`);o.href=a,o.download=`${n}_${r}.${t}`,o.click(),URL.revokeObjectURL(a)}function ee(){let e=i.video;if(!e?.videoWidth){M(`视频未加载,无法截屏`);return}try{let t=document.createElement(`canvas`);t.width=e.videoWidth,t.height=e.videoHeight,t.getContext(`2d`)?.drawImage(e,0,0,t.width,t.height),t.toBlob(e=>{e?V(e,`png`):M(`截屏失败`)},`image/png`)}catch{M(`截屏失败`)}}function H(){return[`video/mp4;codecs=avc1`,`video/mp4;codecs=h264`,`video/mp4`,`video/webm;codecs=vp9`,`video/webm;codecs=vp8`,`video/webm`].find(e=>MediaRecorder.isTypeSupported?.(e))??`video/webm`}function U(){let e=i.video,t=e?.captureStream?.bind(e);if(!e||!t||typeof MediaRecorder>`u`){M(`当前浏览器不支持录屏`);return}try{D=[],k=H(),E=new MediaRecorder(t(),{mimeType:k}),E.addEventListener(`dataavailable`,e=>{e.data.size>0&&D.push(e.data)}),E.addEventListener(`stop`,()=>{if(Date.now()-O<je*1e3)M(`录制时长不足 ${je} 秒,已取消保存`);else if(D.length>0){let e=k.startsWith(`video/mp4`)?`mp4`:`webm`;V(new Blob(D,{type:k}),e)}D=[],E=null}),E.start(),O=Date.now(),S.value=0,T=setInterval(()=>{S.value=Math.floor((Date.now()-O)/1e3)},1e3),x.value=!0}catch{M(`录屏启动失败`)}}function W(){E?.stop(),x.value=!1,T&&=(clearInterval(T),null)}function te(){x.value?W():U()}function ne(){b.value=document.fullscreenElement===i.fullscreenTarget}function G(){let e=i.fullscreenTarget??i.video?.parentElement;e&&(document.fullscreenElement?document.exitFullscreen():e.requestFullscreen())}return(0,e.watch)(l,()=>{i.video&&N(i.video)}),(0,e.watch)(()=>i.video,e=>{e&&(N(e),P(e))},{immediate:!0}),(0,e.watch)(()=>i.channelName,()=>{y.value=1,i.video&&P(i.video),x.value&&W()}),(0,e.onMounted)(()=>{document.addEventListener(`fullscreenchange`,ne)}),(0,e.onBeforeUnmount)(()=>{document.removeEventListener(`fullscreenchange`,ne),x.value&&W(),C&&clearTimeout(C),w&&clearTimeout(w)}),(r,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Te,[(0,e.createElementVNode)(`div`,{class:`ctc-video__tool`,onMouseenter:F,onMouseleave:I},[(0,e.createVNode)((0,e.unref)(t.ElTooltip),{content:l.value===0?`取消静音`:`静音`,placement:`top`,"show-arrow":!1,teleported:!1,disabled:f.value},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`button`,{type:`button`,class:`ctc-video__tool-button`,onClick:L},[(0,e.createVNode)((0,e.unref)(t.ElIcon),null,{default:(0,e.withCtx)(()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(A.value)))]),_:1})])]),_:1},8,[`content`,`disabled`]),(0,e.withDirectives)((0,e.createElementVNode)(`div`,{class:`ctc-video__popup`,onMouseenter:F,onMouseleave:I},[(0,e.createVNode)((0,e.unref)(t.ElSlider),{modelValue:l.value,"onUpdate:modelValue":i[0]||=e=>l.value=e,vertical:``,height:`80px`,"show-tooltip":!1},null,8,[`modelValue`])],544),[[e.vShow,f.value]])],32),(0,e.createVNode)((0,e.unref)(t.ElTooltip),{content:`截屏`,placement:`top`,"show-arrow":!1,teleported:!1},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`button`,{type:`button`,class:`ctc-video__tool-button`,onClick:ee},[(0,e.createVNode)((0,e.unref)(t.ElIcon),null,{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(s))]),_:1})])]),_:1}),(0,e.createVNode)((0,e.unref)(t.ElTooltip),{content:x.value?`停止录屏`:`录屏`,placement:`top`,"show-arrow":!1,teleported:!1},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`button`,{type:`button`,class:(0,e.normalizeClass)([`ctc-video__tool-button`,{"is-recording":x.value}]),onClick:te},[(0,e.createVNode)((0,e.unref)(t.ElIcon),null,{default:(0,e.withCtx)(()=>[x.value?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(v),{key:0})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(_),{key:1}))]),_:1})],2)]),_:1},8,[`content`]),x.value?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Ee,(0,e.toDisplayString)(j.value),1)):(0,e.createCommentVNode)(``,!0),n.mode===`playback`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,class:`ctc-video__tool`,onMouseenter:R,onMouseleave:z},[(0,e.createElementVNode)(`button`,De,(0,e.toDisplayString)(y.value)+`x `,1),(0,e.withDirectives)((0,e.createElementVNode)(`div`,{class:`ctc-video__popup ctc-video__rate-popup`,onMouseenter:R,onMouseleave:z},[((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(c,t=>(0,e.createElementVNode)(`button`,{key:t,type:`button`,class:(0,e.normalizeClass)([`ctc-video__rate-option`,{"is-active":t===y.value}]),onClick:e=>B(t)},(0,e.toDisplayString)(t)+`x `,11,Oe)),64))],544),[[e.vShow,g.value]])],32)):(0,e.createCommentVNode)(``,!0),n.mode===`live`?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElTooltip),{key:2,content:`语音喊话(暂未开放)`,placement:`top`,"show-arrow":!1,teleported:!1},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`button`,ke,[(0,e.createVNode)((0,e.unref)(t.ElIcon),null,{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(m))]),_:1})])]),_:1})):(0,e.createCommentVNode)(``,!0),(0,e.createVNode)((0,e.unref)(t.ElTooltip),{content:b.value?`退出全屏`:`全屏`,placement:`top`,"show-arrow":!1,teleported:!1},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`button`,{type:`button`,class:`ctc-video__tool-button`,onClick:G},[(0,e.createVNode)((0,e.unref)(t.ElIcon),null,{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(u))]),_:1})])]),_:1},8,[`content`]),(0,e.createVNode)((0,e.unref)(t.ElTooltip),{content:`刷新`,placement:`top`,"show-arrow":!1,teleported:!1},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`button`,{type:`button`,class:`ctc-video__tool-button`,onClick:i[1]||=e=>a(`reload`)},[(0,e.createVNode)((0,e.unref)(t.ElIcon),null,{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(h))]),_:1})])]),_:1})]))}}),Ne={key:0,class:`ctc-video__header`},Pe={class:`ctc-video__header-title`},Fe={key:2,class:`ctc-video__header-name`},Ie={key:2,class:`ctc-video__meta`},Le={class:`ctc-video__meta-label`},Re=[`title`],ze={class:`ctc-video__header-extra`},Be={class:`ctc-video__body`},Ve={class:`ctc-video__stage`},He={class:`ctc-video__screen`},Ue=[`autoplay`,`loop`,`muted`],We={key:0,class:`ctc-video__overlay`},Ge={key:1,class:`ctc-video__hint`},Ke={key:2,class:`ctc-video__rec`},qe={key:3,class:`ctc-video__stage-tip`},Je={class:`ctc-video__stage-empty`},Ye=640,Xe=480,Ze=(0,e.defineComponent)({name:`CtcVideoPlayer`,__name:`index`,props:{activeChannel:{default:``},alwaysShowSidebar:{type:Boolean,default:!1},alarms:{default:()=>[]},beginTime:{default:``},channels:{default:()=>[]},compact:{type:Boolean,default:!1},emptyText:{default:`暂无视频通道`},endTime:{default:``},headerFields:{default:()=>[`outlet`,`mp`,`channel`,`location`]},mode:{default:`live`},showHeader:{type:Boolean,default:!1},showModeSwitch:{type:Boolean,default:!1},showSidebar:{type:Boolean,default:!0},showTimeline:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},source:{},timelineZoomModifier:{default:`none`},tree:{}},emits:[`update:activeChannel`,`update:beginTime`,`update:endTime`,`update:mode`,`channel-change`,`playback-ended`,`seek`,`source-error`],setup(n,{expose:r,emit:i}){let o=n,s=i,c=(0,e.useSlots)(),l=(0,e.ref)(o.activeChannel);(0,e.watch)(()=>o.activeChannel,e=>{e!==l.value&&(l.value=e)}),(0,e.watch)(l,e=>s(`update:activeChannel`,e)),(0,e.watch)(()=>o.channels,e=>{e.length&&(e.some(e=>e.id===l.value)||(l.value=e[0].id))},{immediate:!0});let u=(0,e.computed)(()=>o.channels.find(e=>e.id===l.value));(0,e.watch)(u,e=>s(`channel-change`,e));let f=(0,e.ref)(o.mode);(0,e.watch)(()=>o.mode,e=>{e!==f.value&&(f.value=e)}),(0,e.watch)(f,e=>s(`update:mode`,e));let p=[{label:`实时监控`,value:`live`},{label:`历史回放`,value:`playback`}],m=(0,e.computed)({get:()=>f.value,set:e=>{f.value=e===`playback`?`playback`:`live`}}),h=(0,e.ref)(o.beginTime||(o.showModeSwitch?le():``)),g=(0,e.ref)(o.endTime||(o.showModeSwitch?ce(new Date):``));(0,e.watch)([()=>o.beginTime,()=>o.endTime],([e,t])=>{h.value=e,g.value=t}),(0,e.watch)(h,e=>s(`update:beginTime`,e)),(0,e.watch)(g,e=>s(`update:endTime`,e));let v=(0,e.computed)({get:()=>h.value&&g.value?[h.value.slice(0,10),g.value.slice(0,10)]:null,set:e=>{e&&(h.value=`${e[0]} 00:00:00`,g.value=`${e[1]} 23:59:59`)}});function x(e){let t=null;return e instanceof Date?t=e:typeof e?.toDate==`function`&&(t=e.toDate()),t&&!Number.isNaN(t.getTime())?t:null}function S(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()}function C(e){let t=x(e);return t?S(t)>S(new Date):!1}let w={channel:`通道`,location:`位置`,mp:`监测点`,outlet:`排放口`},T=(0,e.computed)(()=>o.headerFields.flatMap(e=>{let t=u.value,n=e===`channel`?t?.name:e===`location`?t?.location:e===`mp`?t?.mpName:t?.outletName;return n?[{label:w[e],value:n}]:[]})),E=(0,e.computed)(()=>o.showModeSwitch&&o.channels.length>0),D=(0,e.computed)(()=>o.showHeader||E.value||!!c.title||!!c.extra||!!c.header),O=(0,e.computed)(()=>o.showSidebar&&(o.channels.length>1||o.alwaysShowSidebar||!!o.tree?.length)),k=(0,e.ref)(!1),A=(0,e.ref)(!1),j=(0,e.computed)(()=>O.value&&!k.value),M=!1,N=0,P=0,F=null;function I(){k.value=!0}function L(){if(!N||!P)return;let e=P<Ye||N<Xe;e!==A.value&&(A.value=e,e?k.value||=(M=!0,!0):M&&(M=!1,k.value=!1))}function R(){P=window.innerWidth,L()}let z=(0,e.ref)({start:Y(h.value||`00:00`),end:Y(g.value||`24:00`)});(0,e.watch)([h,g],()=>{z.value={start:Y(h.value||`00:00`),end:Y(g.value||`24:00`)}});let{cursorHour:B,error:V,errorText:ee,isSeekReload:H,loading:U,onEnded:W,onPause:te,onPlay:ne,onPlaying:G,reload:re,seekTo:ie,togglePause:ae,videoEl:K}=ye({beginTime:()=>h.value,channel:()=>u.value,endTime:()=>g.value,mode:()=>f.value,onError:e=>s(`source-error`,e),onPlaybackEnded:e=>s(`playback-ended`,e),source:()=>o.source}),oe=(0,e.ref)();function se(){let e=oe.value,t=K.value;if(e){if(!t?.videoWidth){e.width=0,e.height=0;return}e.width=t.videoWidth,e.height=t.videoHeight,e.getContext(`2d`)?.drawImage(t,0,0,e.width,e.height)}}function q(e){se(),ie(e),s(`seek`,{hour:e,beginTime:fe(h.value||`00:00`,e)})}let{drawTimeline:J,onCanvasMouseLeave:ue,onCanvasMouseMove:de,onTimelineMouseDown:me,onTimelineWheel:he,onVideoTimeUpdate:ge,resetTimeline:_e,startSync:ve,timelineCanvas:be}=xe({alarms:(0,e.computed)(()=>o.alarms),axisRange:z,availableEndHour:pe,getCursorHour:B,mode:f,onSeekHour:q,videoRef:K,zoomModifier:()=>o.timelineZoomModifier});(0,e.watch)([l,f],()=>{_e(),(0,e.nextTick)(J)}),(0,e.watch)(be,t=>{t&&(0,e.nextTick)(J)});let X=(0,e.computed)(()=>ee.value||(f.value===`playback`?`该时段无录像`:`视频加载失败,请切换其他通道`)),Z=(0,e.ref)(``),Q=null;function Se(e){Z.value=e,Q&&clearTimeout(Q),Q=setTimeout(()=>{Z.value=``,Q=null},2e3)}let $=(0,e.ref)(),Ce=new Set([`A`,`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`]);function Te(e){if(e.code!==`Space`||e.repeat||f.value!==`playback`||U.value||V.value)return;let t=e.target;t?.tagName&&(t.isContentEditable||Ce.has(t.tagName)||$.value?.getClientRects().length&&(e.preventDefault(),ae()))}function Ee(){ne(),f.value===`playback`&&ve()}function De(){G(),f.value===`playback`&&(0,e.nextTick)(ve)}function Oe(){f.value!==`playback`||U.value||V.value||ae()}function ke(e){o.channels.some(t=>t.id===e)&&(l.value=e),A.value&&I()}return(0,e.onMounted)(()=>{document.addEventListener(`keydown`,Te);let e=$.value;e&&(P=window.innerWidth,N=e.clientWidth,L(),window.addEventListener(`resize`,R),!(typeof ResizeObserver>`u`)&&(F=new ResizeObserver(t=>{N=t[0]?.contentRect.width??e.clientWidth,L()}),F.observe(e)))}),(0,e.onBeforeUnmount)(()=>{document.removeEventListener(`keydown`,Te),window.removeEventListener(`resize`,R),Q&&clearTimeout(Q),F?.disconnect(),F=null}),r({reload:re,seek:q,videoRef:K}),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`ctc-video`,{"is-compact":o.compact,"is-narrow":A.value}])},[(0,e.createElementVNode)(`div`,{ref_key:`panelRef`,ref:$,class:`ctc-video__panel`},[D.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ne,[(0,e.unref)(c).header?(0,e.renderSlot)(n.$slots,`header`,{channel:u.value,mode:f.value},void 0,void 0,0):((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[(0,e.createElementVNode)(`div`,Pe,[(0,e.renderSlot)(n.$slots,`title`,{},()=>[f.value===`playback`?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElTag),{key:0,type:`primary`,size:`small`,effect:`plain`,"disable-transitions":``},{default:(0,e.withCtx)(()=>[...r[11]||=[(0,e.createTextVNode)(` 回放 `,-1)]]),_:1})):u.value?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElTag),{key:1,type:u.value.online?`success`:`danger`,size:`small`,effect:`plain`,"disable-transitions":``},{default:(0,e.withCtx)(()=>[(0,e.createTextVNode)((0,e.toDisplayString)(u.value.online?`在线`:`离线`),1)]),_:1},8,[`type`])):(0,e.createCommentVNode)(``,!0),u.value?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Fe,(0,e.toDisplayString)(u.value.name),1)):(0,e.createCommentVNode)(``,!0)])]),E.value?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElSegmented),{key:0,modelValue:m.value,"onUpdate:modelValue":r[0]||=e=>m.value=e,options:p,size:`small`,class:`ctc-video__mode-switch`},null,8,[`modelValue`])):(0,e.createCommentVNode)(``,!0),E.value&&f.value===`playback`?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.ElDatePicker),{key:1,modelValue:v.value,"onUpdate:modelValue":r[1]||=e=>v.value=e,type:`daterange`,size:`small`,"value-format":`YYYY-MM-DD`,"range-separator":`至`,"start-placeholder":`开始日期`,"end-placeholder":`结束日期`,clearable:!1,"disabled-date":C,class:`ctc-video__range`},null,8,[`modelValue`])):(0,e.createCommentVNode)(``,!0),T.value.length>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ie,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(T.value,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{key:t.label,class:`ctc-video__meta-item`},[(0,e.createElementVNode)(`span`,Le,(0,e.toDisplayString)(t.label)+`:`,1),(0,e.createElementVNode)(`span`,{class:`ctc-video__meta-value`,title:t.value},(0,e.toDisplayString)(t.value),9,Re)]))),128))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,ze,[(0,e.renderSlot)(n.$slots,`extra`)])],64))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,Be,[A.value&&j.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`ctc-video__sidebar-backdrop`,onClick:I})):(0,e.createCommentVNode)(``,!0),O.value&&!k.value?((0,e.openBlock)(),(0,e.createBlock)(we,{key:1,"active-channel":l.value,channels:o.channels,"empty-text":o.emptyText,tree:o.tree,onSelect:ke,onToggleCollapsed:r[2]||=e=>k.value=!0},(0,e.createSlots)({_:2},[(0,e.unref)(c).channel?{name:`channel`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`channel`,(0,e.normalizeProps)((0,e.guardReactiveProps)(t)))]),key:`0`}:void 0]),1032,[`active-channel`,`channels`,`empty-text`,`tree`])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,Ve,[O.value&&k.value?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,class:`ctc-video__sidebar-reopen`,title:`展开通道列表`,onClick:r[3]||=e=>k.value=!1},[(0,e.createVNode)((0,e.unref)(t.ElIcon),null,{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(a))]),_:1})])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,He,[u.value?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:0},[((0,e.openBlock)(),(0,e.createElementBlock)(`video`,{ref_key:`videoEl`,ref:K,key:u.value.id,class:`ctc-video__video`,autoplay:f.value!==`playback`,loop:f.value!==`playback`,muted:f.value!==`playback`,playsinline:``,preload:`metadata`,onClick:Oe,onEnded:r[4]||=(...t)=>(0,e.unref)(W)&&(0,e.unref)(W)(...t),onPause:r[5]||=(...t)=>(0,e.unref)(te)&&(0,e.unref)(te)(...t),onPlay:Ee,onPlaying:De,onTimeupdate:r[6]||=(...t)=>(0,e.unref)(ge)&&(0,e.unref)(ge)(...t)},null,40,Ue)),(0,e.createElementVNode)(`canvas`,{ref_key:`seekFrameCanvas`,ref:oe,class:(0,e.normalizeClass)([`ctc-video__video ctc-video__seek-frame`,{"is-visible":(0,e.unref)(H)&&(0,e.unref)(U)}])},null,2),(0,e.unref)(U)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,We,[(0,e.createVNode)((0,e.unref)(t.ElIcon),{class:`is-loading`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(d))]),_:1}),r[12]||=(0,e.createTextVNode)(` 正在加载视频... `,-1)])):(0,e.unref)(V)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ge,[(0,e.createVNode)((0,e.unref)(t.ElIcon),null,{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(b))]),_:1}),(0,e.createTextVNode)(` `+(0,e.toDisplayString)(X.value),1)])):(0,e.createCommentVNode)(``,!0),f.value===`live`&&!(0,e.unref)(U)&&!(0,e.unref)(V)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ke,` REC `)):(0,e.createCommentVNode)(``,!0),Z.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,qe,(0,e.toDisplayString)(Z.value),1)):(0,e.createCommentVNode)(``,!0),o.showToolbar&&!(0,e.unref)(U)&&!(0,e.unref)(V)?((0,e.openBlock)(),(0,e.createBlock)(Me,{key:4,"channel-name":u.value.name,"fullscreen-target":$.value,mode:f.value,video:(0,e.unref)(K),onNotice:Se,onReload:(0,e.unref)(re)},null,8,[`channel-name`,`fullscreen-target`,`mode`,`video`,`onReload`])):(0,e.createCommentVNode)(``,!0)],64)):(0,e.renderSlot)(n.$slots,`empty`,{},()=>[(0,e.createElementVNode)(`div`,Je,[(0,e.createVNode)((0,e.unref)(t.ElIcon),null,{default:(0,e.withCtx)(()=>[f.value===`live`?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(_),{key:0})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(y),{key:1}))]),_:1}),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(o.emptyText),1)])],void 0,1)]),o.showTimeline&&f.value===`playback`&&u.value&&!(0,e.unref)(V)&&(!(0,e.unref)(U)||(0,e.unref)(H))?((0,e.openBlock)(),(0,e.createElementBlock)(`canvas`,{key:1,ref_key:`timelineCanvas`,ref:be,class:`ctc-video__timeline`,onMousedown:r[7]||=(...t)=>(0,e.unref)(me)&&(0,e.unref)(me)(...t),onMousemove:r[8]||=(...t)=>(0,e.unref)(de)&&(0,e.unref)(de)(...t),onMouseleave:r[9]||=(...t)=>(0,e.unref)(ue)&&(0,e.unref)(ue)(...t),onWheel:r[10]||=(...t)=>(0,e.unref)(he)&&(0,e.unref)(he)(...t)},null,544)):(0,e.createCommentVNode)(``,!0)])])],512)],2))}}),Qe=[k,I,L,W,se,Ze],$e={install(e,t={}){e.provide(n,t),Qe.forEach(t=>{e.component(t.name??``,t)})}};exports.CtcComponentsUi=$e,exports.default=$e,exports.CtcDialog=k,exports.CtcDrawer=I,exports.CtcFlex=L,exports.CtcReport=se,exports.CtcTable=W,exports.CtcVideoPlayer=Ze;
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ import { ExtractPropTypes } from 'vue';
7
7
  import { Plugin as Plugin_2 } from 'vue';
8
8
  import { PropType } from 'vue';
9
9
  import { PublicProps } from 'vue';
10
+ import { Ref } from 'vue';
10
11
  import { Slot } from 'vue';
11
12
  import { SlotsType } from 'vue';
12
13
  import { TableInstance } from 'element-plus';
@@ -347,6 +348,52 @@ grow: number | string;
347
348
  align: string;
348
349
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
349
350
 
351
+ declare const __VLS_component_4: DefineComponent<CtcVideoPlayerProps, {
352
+ reload: () => void;
353
+ seek: typeof handleSeek;
354
+ videoRef: Ref<HTMLVideoElement | undefined, HTMLVideoElement | undefined>;
355
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
356
+ "update:activeChannel": (value: string) => any;
357
+ "update:beginTime": (value: string) => any;
358
+ "update:endTime": (value: string) => any;
359
+ "update:mode": (value: CtcVideoMode) => any;
360
+ "channel-change": (channel: CtcVideoChannel | undefined) => any;
361
+ "playback-ended": (payload: CtcVideoPlaybackEndedPayload) => any;
362
+ seek: (payload: CtcVideoSeekPayload) => any;
363
+ "source-error": (payload: CtcVideoErrorPayload) => any;
364
+ }, string, PublicProps, Readonly<CtcVideoPlayerProps> & Readonly<{
365
+ "onUpdate:activeChannel"?: ((value: string) => any) | undefined;
366
+ "onUpdate:beginTime"?: ((value: string) => any) | undefined;
367
+ "onUpdate:endTime"?: ((value: string) => any) | undefined;
368
+ "onUpdate:mode"?: ((value: CtcVideoMode) => any) | undefined;
369
+ "onChannel-change"?: ((channel: CtcVideoChannel | undefined) => any) | undefined;
370
+ "onPlayback-ended"?: ((payload: CtcVideoPlaybackEndedPayload) => any) | undefined;
371
+ onSeek?: ((payload: CtcVideoSeekPayload) => any) | undefined;
372
+ "onSource-error"?: ((payload: CtcVideoErrorPayload) => any) | undefined;
373
+ }>, {
374
+ compact: boolean;
375
+ mode: CtcVideoMode;
376
+ showHeader: boolean;
377
+ emptyText: string;
378
+ activeChannel: string;
379
+ channels: CtcVideoChannel[];
380
+ alwaysShowSidebar: boolean;
381
+ alarms: CtcVideoAlarm[];
382
+ beginTime: string;
383
+ endTime: string;
384
+ headerFields: CtcVideoHeaderField[];
385
+ showModeSwitch: boolean;
386
+ showSidebar: boolean;
387
+ showTimeline: boolean;
388
+ showToolbar: boolean;
389
+ timelineZoomModifier: CtcVideoZoomModifier;
390
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {
391
+ panelRef: HTMLDivElement;
392
+ videoEl: HTMLVideoElement;
393
+ seekFrameCanvas: HTMLCanvasElement;
394
+ timelineCanvas: HTMLCanvasElement;
395
+ }, HTMLDivElement>;
396
+
350
397
  declare function __VLS_template(): {
351
398
  attrs: Partial<{}>;
352
399
  slots: {
@@ -378,12 +425,43 @@ declare function __VLS_template_3(): {
378
425
  rootEl: HTMLDivElement;
379
426
  };
380
427
 
428
+ declare function __VLS_template_4(): {
429
+ attrs: Partial<{}>;
430
+ slots: {
431
+ header?(_: {
432
+ channel: CtcVideoChannel | undefined;
433
+ mode: CtcVideoMode;
434
+ }): any;
435
+ title?(_: {}): any;
436
+ extra?(_: {}): any;
437
+ channel?(_: {
438
+ channel: CtcVideoChannel | undefined;
439
+ node: CtcVideoTreeNode | undefined;
440
+ row: CtcVideoChannelRow;
441
+ active: boolean;
442
+ depth: number;
443
+ online: boolean | undefined;
444
+ hasChildren: boolean;
445
+ }): any;
446
+ empty?(_: {}): any;
447
+ };
448
+ refs: {
449
+ panelRef: HTMLDivElement;
450
+ videoEl: HTMLVideoElement;
451
+ seekFrameCanvas: HTMLCanvasElement;
452
+ timelineCanvas: HTMLCanvasElement;
453
+ };
454
+ rootEl: HTMLDivElement;
455
+ };
456
+
381
457
  declare type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
382
458
 
383
459
  declare type __VLS_TemplateResult_2 = ReturnType<typeof __VLS_template_2>;
384
460
 
385
461
  declare type __VLS_TemplateResult_3 = ReturnType<typeof __VLS_template_3>;
386
462
 
463
+ declare type __VLS_TemplateResult_4 = ReturnType<typeof __VLS_template_4>;
464
+
387
465
  declare type __VLS_WithTemplateSlots<T, S> = T & {
388
466
  new (): {
389
467
  $slots: S;
@@ -402,6 +480,12 @@ declare type __VLS_WithTemplateSlots_3<T, S> = T & {
402
480
  };
403
481
  };
404
482
 
483
+ declare type __VLS_WithTemplateSlots_4<T, S> = T & {
484
+ new (): {
485
+ $slots: S;
486
+ };
487
+ };
488
+
405
489
  declare const CtcComponentsUi: Plugin_2<[options?: CtcComponentsUiOptions]>;
406
490
  export { CtcComponentsUi }
407
491
  export default CtcComponentsUi;
@@ -695,4 +779,118 @@ declare interface CtcTableTooltipFormatterScope<Row extends object = Record<stri
695
779
  cellValue: unknown;
696
780
  }
697
781
 
782
+ export declare interface CtcVideoAlarm {
783
+ title: string;
784
+ startTime: string;
785
+ endTime: string;
786
+ description: string;
787
+ }
788
+
789
+ export declare interface CtcVideoChannel {
790
+ id: string;
791
+ name: string;
792
+ online?: boolean;
793
+ location?: string;
794
+ mpName?: string;
795
+ outletName?: string;
796
+ liveUrl?: string;
797
+ playbackUrl?: string;
798
+ }
799
+
800
+ /** 通道栏当前渲染的行,平铺通道与分组节点共用。 */
801
+ export declare interface CtcVideoChannelRow {
802
+ channel?: CtcVideoChannel;
803
+ depth: number;
804
+ hasChildren: boolean;
805
+ key: string;
806
+ label: string;
807
+ node?: CtcVideoTreeNode;
808
+ online?: boolean;
809
+ open: boolean;
810
+ value?: string;
811
+ }
812
+
813
+ export declare interface CtcVideoErrorPayload {
814
+ channel?: CtcVideoChannel;
815
+ mode: CtcVideoMode;
816
+ error: unknown;
817
+ }
818
+
819
+ export declare type CtcVideoHeaderField = 'channel' | 'location' | 'mp' | 'outlet';
820
+
821
+ export declare type CtcVideoMode = 'live' | 'playback';
822
+
823
+ export declare interface CtcVideoPlaybackEndedPayload {
824
+ channel?: CtcVideoChannel;
825
+ mode: CtcVideoMode;
826
+ }
827
+
828
+ export declare interface CtcVideoPlaybackSource {
829
+ url?: string;
830
+ segments?: CtcVideoSegment[];
831
+ expireTime?: string;
832
+ }
833
+
834
+ export declare const CtcVideoPlayer: __VLS_WithTemplateSlots_4<typeof __VLS_component_4, __VLS_TemplateResult_4["slots"]>;
835
+
836
+ export declare interface CtcVideoPlayerProps {
837
+ activeChannel?: string;
838
+ alwaysShowSidebar?: boolean;
839
+ alarms?: CtcVideoAlarm[];
840
+ beginTime?: string;
841
+ channels?: CtcVideoChannel[];
842
+ compact?: boolean;
843
+ emptyText?: string;
844
+ endTime?: string;
845
+ headerFields?: CtcVideoHeaderField[];
846
+ mode?: CtcVideoMode;
847
+ showHeader?: boolean;
848
+ showModeSwitch?: boolean;
849
+ showSidebar?: boolean;
850
+ showTimeline?: boolean;
851
+ showToolbar?: boolean;
852
+ source?: CtcVideoSource;
853
+ timelineZoomModifier?: CtcVideoZoomModifier;
854
+ tree?: CtcVideoTreeNode[];
855
+ }
856
+
857
+ export declare interface CtcVideoSeekPayload {
858
+ hour: number;
859
+ beginTime: string;
860
+ }
861
+
862
+ export declare interface CtcVideoSegment {
863
+ url: string;
864
+ segmentBeginTime?: string;
865
+ segmentEndTime?: string;
866
+ expireTime?: string;
867
+ }
868
+
869
+ export declare interface CtcVideoSource {
870
+ live?: (channel: CtcVideoChannel) => Promise<CtcVideoStream | null>;
871
+ playback?: (channel: CtcVideoChannel, range: CtcVideoTimeRange) => Promise<CtcVideoPlaybackSource | null>;
872
+ }
873
+
874
+ export declare interface CtcVideoStream {
875
+ url: string;
876
+ expireTime?: string;
877
+ }
878
+
879
+ export declare interface CtcVideoTimeRange {
880
+ beginTime: string;
881
+ endTime: string;
882
+ }
883
+
884
+ export declare interface CtcVideoTreeNode {
885
+ key: string;
886
+ label: string;
887
+ value?: string;
888
+ online?: boolean;
889
+ children?: CtcVideoTreeNode[];
890
+ }
891
+
892
+ export declare type CtcVideoZoomModifier = 'alt' | 'ctrl' | 'meta' | 'none' | 'shift';
893
+
894
+ declare function handleSeek(hour: number): void;
895
+
698
896
  export { }