common_component_library_vue 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-lib/common-component-library-vue.css +1 -1
- package/dist-lib/common-component-library-vue.mjs +705 -254
- package/dist-lib/common-component-library-vue.umd.js +2 -1
- package/dist-lib/types/components/Chart/CcBarChart.vue.d.ts +32 -0
- package/dist-lib/types/components/Chart/CcLineChart.vue.d.ts +35 -0
- package/dist-lib/types/components/Chart/CcPieChart.vue.d.ts +30 -0
- package/dist-lib/types/components/Chart/common.d.ts +32 -0
- package/dist-lib/types/components/Chart/useECharts.d.ts +18 -0
- package/dist-lib/types/components/ThemeProvider/CcThemeProvider.vue.d.ts +27 -0
- package/dist-lib/types/index.d.ts +148 -3
- package/dist-lib/types/theme.d.ts +32 -0
- package/package.json +10 -4
- package/src/styles/themes/linear.css +47 -0
- package/src/styles/themes/notion.css +47 -0
- package/src/styles/themes/raycast.css +47 -0
- package/src/styles/themes/vercel.css +47 -0
|
@@ -1 +1,2 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vue")):typeof define==`function`&&define.amd?define([`exports`,`vue`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.CommonComponentLibraryVue={},e.Vue))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var n=[`width`,`height`],r=(0,t.defineComponent)({__name:`CcSpinner`,props:{size:{default:20},color:{default:`var(--cc-primary)`}},setup(e){return(0,t.useCssVars)(e=>({f2187a8a:e.color})),(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:`cc-spinner`,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,role:`status`,"aria-label":`loading`},[...i[0]||=[(0,t.createElementVNode)(`circle`,{class:`cc-spinner__track`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-opacity":`0.15`,"stroke-width":`3`},null,-1),(0,t.createElementVNode)(`path`,{class:`cc-spinner__arc`,d:`M12 2a10 10 0 0 1 10 10`,stroke:`currentColor`,"stroke-width":`3`,"stroke-linecap":`round`},null,-1)]],8,n))}}),i=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},a=i(r,[[`__scopeId`,`data-v-00c109fa`]]),o={key:0,class:`cc-btn__spinner`},s={class:`cc-btn__content`},c=i((0,t.defineComponent)({__name:`CcButton`,props:{variant:{default:`primary`},size:{default:`md`},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},href:{default:void 0},target:{default:void 0},block:{type:Boolean,default:!1},type:{default:`button`},ariaLabel:{default:void 0}},emits:[`click`],setup(e,{emit:n}){let r=e,i=n,c=(0,t.computed)(()=>r.variant===`primary`||r.variant===`on-dark`?`var(--cc-on-primary)`:`var(--cc-primary)`);function l(e){if(r.disabled||r.loading){e.preventDefault();return}i(`click`,e)}return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.href?`a`:`button`),{class:(0,t.normalizeClass)([`cc-btn`,[`cc-btn--${e.variant}`,`cc-btn--${e.size}`,{"cc-btn--block":e.block,"cc-btn--loading":e.loading}]]),href:e.href||void 0,target:e.href?e.target:void 0,type:e.href?void 0:e.type,disabled:e.href?void 0:e.disabled||e.loading,"aria-label":e.ariaLabel,"aria-busy":e.loading,onClick:l},{default:(0,t.withCtx)(()=>[e.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,o,[(0,t.createVNode)(a,{size:e.size===`sm`?14:16,color:c.value},null,8,[`size`,`color`])])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,s,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])]),_:3},8,[`class`,`href`,`target`,`type`,`disabled`,`aria-label`,`aria-busy`]))}}),[[`__scopeId`,`data-v-deb42261`]]),l=[`for`],u={key:0,class:`cc-input__prefix tnum`},d=[`id`,`type`,`value`,`name`,`placeholder`,`disabled`,`readonly`,`autocomplete`,`inputmode`,`min`,`max`,`step`,`aria-invalid`],f={key:1,class:`cc-input__message cc-input__message--error`},p={key:2,class:`cc-input__message`},m=i((0,t.defineComponent)({__name:`CcInput`,props:{modelValue:{default:``},label:{default:void 0},placeholder:{default:void 0},type:{default:`text`},name:{default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},error:{default:void 0},hint:{default:void 0},prefix:{default:void 0},autocomplete:{default:void 0},inputmode:{default:void 0},min:{default:void 0},max:{default:void 0},step:{default:void 0}},emits:[`update:modelValue`,`focus`,`blur`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>!!r.error);function o(e){i(`update:modelValue`,e.target.value)}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`cc-input`,{"cc-input--error":a.value,"cc-input--disabled":e.disabled}])},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,class:`cc-input__label`,for:e.name},(0,t.toDisplayString)(e.label),9,l)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`cc-input__field`,{"cc-input__field--prefix":e.prefix}])},[e.prefix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,u,(0,t.toDisplayString)(e.prefix),1)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{id:e.name,class:`cc-input__control tnum`,type:e.type,value:e.modelValue,name:e.name,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,autocomplete:e.autocomplete,inputmode:e.inputmode,min:e.min,max:e.max,step:e.step,"aria-invalid":a.value||void 0,onInput:o,onFocus:r[0]||=e=>i(`focus`,e),onBlur:r[1]||=e=>i(`blur`,e),onChange:r[2]||=e=>i(`change`,e)},null,40,d)],2),e.error?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,f,(0,t.toDisplayString)(e.error),1)):e.hint?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,p,(0,t.toDisplayString)(e.hint),1)):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-4b6c01de`]]),h=[`for`],g=[`id`,`value`,`name`,`rows`,`placeholder`,`disabled`,`readonly`,`autocomplete`,`aria-invalid`],_={key:1,class:`cc-textarea__message cc-textarea__message--error`},v={key:2,class:`cc-textarea__message`},y=i((0,t.defineComponent)({__name:`CcTextarea`,props:{modelValue:{default:``},label:{default:void 0},placeholder:{default:void 0},name:{default:void 0},rows:{default:4},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},error:{default:void 0},hint:{default:void 0},autocomplete:{default:void 0}},emits:[`update:modelValue`,`focus`,`blur`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>!!r.error);function o(e){i(`update:modelValue`,e.target.value)}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`cc-textarea`,{"cc-textarea--error":a.value,"cc-textarea--disabled":e.disabled}])},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,class:`cc-textarea__label`,for:e.name},(0,t.toDisplayString)(e.label),9,h)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`textarea`,{id:e.name,class:`cc-textarea__control`,value:e.modelValue,name:e.name,rows:e.rows,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,autocomplete:e.autocomplete,"aria-invalid":a.value||void 0,onInput:o,onFocus:r[0]||=e=>i(`focus`,e),onBlur:r[1]||=e=>i(`blur`,e)},null,40,g),e.error?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,_,(0,t.toDisplayString)(e.error),1)):e.hint?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,v,(0,t.toDisplayString)(e.hint),1)):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-9840d15e`]]),b=[`for`],x={class:`cc-select__wrap`},S=[`id`,`value`,`name`,`disabled`,`aria-invalid`],C={key:0,value:``,disabled:``,selected:``},w=[`value`,`disabled`],T={key:1,class:`cc-select__message cc-select__message--error`},E={key:2,class:`cc-select__message`},D=i((0,t.defineComponent)({__name:`CcSelect`,props:{modelValue:{default:``},options:{default:()=>[]},label:{default:void 0},placeholder:{default:void 0},name:{default:void 0},disabled:{type:Boolean,default:!1},error:{default:void 0},hint:{default:void 0}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>!!r.error);function o(e){let t=e.target;i(`update:modelValue`,t.value),i(`change`,e)}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`cc-select`,{"cc-select--error":a.value,"cc-select--disabled":e.disabled}])},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,class:`cc-select__label`,for:e.name},(0,t.toDisplayString)(e.label),9,b)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,x,[(0,t.createElementVNode)(`select`,{id:e.name,class:`cc-select__control`,value:e.modelValue,name:e.name,disabled:e.disabled,"aria-invalid":a.value||void 0,onChange:o},[e.placeholder?((0,t.openBlock)(),(0,t.createElementBlock)(`option`,C,(0,t.toDisplayString)(e.placeholder),1)):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.options,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`option`,{key:String(e.value),value:e.value,disabled:e.disabled},(0,t.toDisplayString)(e.label),9,w))),128))],40,S),r[0]||=(0,t.createElementVNode)(`svg`,{class:`cc-select__chevron`,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M4 6l4 4 4-4`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]),e.error?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,T,(0,t.toDisplayString)(e.error),1)):e.hint?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,E,(0,t.toDisplayString)(e.hint),1)):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-0e1871e6`]]),O=[`aria-checked`,`aria-label`,`disabled`],k={key:0,class:`cc-switch__label`},A=i((0,t.defineComponent)({__name:`CcSwitch`,props:(0,t.mergeModels)({label:{default:void 0},disabled:{type:Boolean,default:!1},size:{default:`md`}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.useModel)(e,`modelValue`),r=e;function i(){r.disabled||(n.value=!n.value)}return(r,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)([`cc-switch`,[`cc-switch--${e.size}`,{"cc-switch--checked":n.value,"cc-switch--disabled":e.disabled}]]),role:`switch`,"aria-checked":n.value,"aria-label":e.label||`switch`,disabled:e.disabled,onClick:i},[a[0]||=(0,t.createElementVNode)(`span`,{class:`cc-switch__track`},[(0,t.createElementVNode)(`span`,{class:`cc-switch__knob`})],-1),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,k,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],10,O))}}),[[`__scopeId`,`data-v-cb8ad6ea`]]),j=[`disabled`],M={key:0,class:`cc-checkbox__label`},N=i((0,t.defineComponent)({__name:`CcCheckbox`,props:(0,t.mergeModels)({label:{default:void 0},disabled:{type:Boolean,default:!1}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.useModel)(e,`modelValue`);return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{class:(0,t.normalizeClass)([`cc-checkbox`,{"cc-checkbox--disabled":e.disabled}])},[(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":i[0]||=e=>n.value=e,type:`checkbox`,class:`cc-checkbox__native`,disabled:e.disabled},null,8,j),[[t.vModelCheckbox,n.value]]),i[1]||=(0,t.createElementVNode)(`span`,{class:`cc-checkbox__box`,"aria-hidden":`true`},[(0,t.createElementVNode)(`svg`,{class:`cc-checkbox__check`,width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`none`},[(0,t.createElementVNode)(`path`,{d:`M2.5 6.2l2.4 2.4 4.6-5`,stroke:`currentColor`,"stroke-width":`1.8`,"stroke-linecap":`round`,"stroke-linejoin":`round`})])],-1),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,M,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(r.$slots,`default`,{},void 0,!0)],2))}}),[[`__scopeId`,`data-v-bf838053`]]),P=[`value`,`disabled`],F={key:0,class:`cc-radio__label`},I=i((0,t.defineComponent)({__name:`CcRadio`,props:(0,t.mergeModels)({value:{},label:{default:void 0},disabled:{type:Boolean,default:!1}},{modelValue:{default:``},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.useModel)(e,`modelValue`);return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{class:(0,t.normalizeClass)([`cc-radio`,{"cc-radio--disabled":e.disabled}])},[(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":i[0]||=e=>n.value=e,type:`radio`,class:`cc-radio__native`,value:e.value,disabled:e.disabled},null,8,P),[[t.vModelRadio,n.value]]),i[1]||=(0,t.createElementVNode)(`span`,{class:`cc-radio__dot`,"aria-hidden":`true`},null,-1),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,F,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(r.$slots,`default`,{},void 0,!0)],2))}}),[[`__scopeId`,`data-v-0a6c4d47`]]),L={key:0,class:`cc-card__header`},R={key:0,class:`cc-card__title`},z={key:1,class:`cc-card__desc`},B={class:`cc-card__body`},V={key:0,class:`cc-card__footer`},H=i((0,t.defineComponent)({__name:`CcCard`,props:{variant:{default:`feature`},title:{default:void 0},description:{default:void 0},flush:{type:Boolean,default:!1}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`article`,{class:(0,t.normalizeClass)([`cc-card`,[`cc-card--${e.variant}`,{"cc-card--flush":e.flush}]])},[(0,t.renderSlot)(n.$slots,`header`,{},()=>[e.title||e.description?((0,t.openBlock)(),(0,t.createElementBlock)(`header`,L,[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`h3`,R,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),e.description?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,z,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)],!0),(0,t.createElementVNode)(`div`,B,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]),n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`footer`,V,[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-7f39ac3e`]]),U={key:0,class:`cc-tag__dot`},W=i((0,t.defineComponent)({__name:`CcTag`,props:{variant:{default:`soft`},size:{default:`md`},dot:{type:Boolean,default:!1},closable:{type:Boolean,default:!1}},emits:[`close`],setup(e,{emit:n}){let r=n;return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)([`cc-tag`,[`cc-tag--${e.variant}`,`cc-tag--${e.size}`]])},[e.dot?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,U)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0),e.closable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`cc-tag__close`,"aria-label":`close tag`,onClick:i[0]||=(0,t.withModifiers)(e=>r(`close`,e),[`stop`])},[...i[1]||=[(0,t.createElementVNode)(`svg`,{width:`10`,height:`10`,viewBox:`0 0 10 10`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M1 1l8 8M9 1l-8 8`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`})],-1)]])):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-858b2086`]]),G={class:`cc-badge__text tnum`},K=i((0,t.defineComponent)({__name:`CcBadge`,props:{count:{default:0},max:{default:99},variant:{default:`soft`},dot:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.computed)(()=>{if(n.dot)return``;let e=Number(n.count);return Number.isNaN(e)?String(n.count):e>n.max?`${n.max}+`:String(e)});return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)([`cc-badge`,[`cc-badge--${e.variant}`,{"cc-badge--dot-only":e.dot}]])},[(0,t.createElementVNode)(`span`,G,(0,t.toDisplayString)(r.value),1)],2))}}),[[`__scopeId`,`data-v-466a4bd0`]]),ee={class:`cc-alert__content`},te={key:0,class:`cc-alert__title`},ne={key:1,class:`cc-alert__desc`},q=i((0,t.defineComponent)({__name:`CcAlert`,props:{variant:{default:`info`},title:{default:void 0},description:{default:void 0},closable:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.ref)(!0),i=(0,t.computed)(()=>{switch(n.variant){case`success`:return`var(--cc-success)`;case`warning`:return`var(--cc-warning)`;case`error`:return`var(--cc-error)`;default:return`var(--cc-primary)`}});return(n,a)=>r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`cc-alert`,`cc-alert--${e.variant}`]),role:`alert`},[(0,t.createElementVNode)(`span`,{class:`cc-alert__icon`,style:(0,t.normalizeStyle)({color:i.value}),"aria-hidden":`true`},[...a[1]||=[(0,t.createElementVNode)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},[(0,t.createElementVNode)(`path`,{d:`M8 1.5l6.5 11.25H1.5L8 1.5z`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linejoin":`round`}),(0,t.createElementVNode)(`path`,{d:`M8 6v3.2`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`}),(0,t.createElementVNode)(`circle`,{cx:`8`,cy:`11.2`,r:`0.9`,fill:`currentColor`})],-1)]],4),(0,t.createElementVNode)(`div`,ee,[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,te,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),e.description||n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,ne,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.description),1)],!0)])):(0,t.createCommentVNode)(``,!0)]),e.closable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`cc-alert__close`,"aria-label":`dismiss`,onClick:a[0]||=e=>r.value=!1},[...a[2]||=[(0,t.createElementVNode)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 10 10`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M1 1l8 8M9 1l-8 8`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`})],-1)]])):(0,t.createCommentVNode)(``,!0)],2)):(0,t.createCommentVNode)(``,!0)}}),[[`__scopeId`,`data-v-8671adaf`]]),re=[`aria-label`],ie={class:`cc-modal__header`},ae={key:0,class:`cc-modal__title`},oe={class:`cc-modal__body`},se={key:0,class:`cc-modal__footer`},J=i((0,t.defineComponent)({__name:`CcModal`,props:{visible:{type:Boolean,default:!1},title:{default:void 0},width:{default:`480px`},closable:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0},footer:{type:Boolean,default:!0}},emits:[`update:visible`,`open`,`close`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null);function o(){i(`update:visible`,!1),i(`close`)}function s(e){e.key===`Escape`&&r.visible&&r.closable&&o()}function c(e){r.maskClosable&&e.target===e.currentTarget&&o()}return(0,t.watch)(()=>r.visible,async e=>{e?(i(`open`),await(0,t.nextTick)(),a.value?.focus(),document.body.style.overflow=`hidden`):document.body.style.overflow=``}),(0,t.onMounted)(()=>{document.addEventListener(`keydown`,s)}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`keydown`,s),document.body.style.overflow=``}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`cc-modal`},{default:(0,t.withCtx)(()=>[e.visible?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`cc-modal`,onClick:(0,t.withModifiers)(c,[`self`])},[(0,t.createElementVNode)(`div`,{ref_key:`panel`,ref:a,class:`cc-modal__panel`,style:(0,t.normalizeStyle)({maxWidth:e.width}),role:`dialog`,"aria-modal":`true`,"aria-label":e.title||`dialog`,tabindex:`-1`},[(0,t.createElementVNode)(`header`,ie,[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`h3`,ae,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),e.closable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`cc-modal__close`,"aria-label":`close`,onClick:o},[...r[0]||=[(0,t.createElementVNode)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 10 10`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M1 1l8 8M9 1l-8 8`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`})],-1)]])):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,oe,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]),n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`footer`,se,[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],12,re)])):(0,t.createCommentVNode)(``,!0)]),_:3})]))}}),[[`__scopeId`,`data-v-d2a6d4fd`]]),Y=i((0,t.defineComponent)({__name:`CcTooltip`,props:{content:{default:void 0},placement:{default:`top`},delay:{default:0}},setup(e){let n=e,r=(0,t.ref)(!1),i=null,a=(0,t.computed)(()=>r.value);function o(){n.delay>0?i=setTimeout(()=>r.value=!0,n.delay):r.value=!0}function s(){i&&clearTimeout(i),r.value=!1}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`cc-tooltip`,onMouseenter:o,onMouseleave:s,onFocusin:o,onFocusout:s},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0),a.value&&(e.content||n.$slots.tip)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)([`cc-tooltip__bubble`,`cc-tooltip--${e.placement}`]),role:`tooltip`},[(0,t.renderSlot)(n.$slots,`tip`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.content),1)],!0)],2)):(0,t.createCommentVNode)(``,!0)],32))}}),[[`__scopeId`,`data-v-2befb04b`]]),ce={key:0,class:`cc-divider__label`},X=i((0,t.defineComponent)({__name:`CcDivider`,props:{orientation:{default:`horizontal`},height:{default:`1em`}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`cc-divider`,[`cc-divider--${e.orientation}`]]),role:`separator`,style:(0,t.normalizeStyle)(e.orientation===`vertical`?{height:e.height}:void 0)},[n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ce,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],6))}}),[[`__scopeId`,`data-v-c42961cd`]]),le={class:`cc-table`},ue={class:`cc-table__toolbar`},de={class:`cc-table__filters`},fe={key:0,class:`cc-table__filter`},pe={class:`cc-table__filter-label`},me=[`onUpdate:modelValue`],he=[`value`],ge={key:1,class:`cc-table__filter`},_e={class:`cc-table__filter-label`},ve=[`onUpdate:modelValue`,`placeholder`],ye={class:`cc-table__settings`},be={class:`cc-table__settings-panel`},xe={class:`cc-table__settings-section`},Se={class:`cc-table__density`},Ce=[`onClick`],we={class:`cc-table__settings-section`},Te={class:`cc-table__settings-cols`},Ee=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],De=[`checked`,`indeterminate`],Oe={key:1,class:`cc-table__th-title`},ke={key:0,class:`cc-table__drag-handle`,width:`10`,height:`14`,viewBox:`0 0 10 14`,fill:`none`,"aria-hidden":`true`},Ae={key:0},je=[`colspan`],Me=[`checked`,`aria-label`,`onChange`],Ne={class:`cc-table__footer`},Pe={class:`cc-table__total`},Fe={class:`cc-table__pager`},Ie=[`value`],Le=[`disabled`],Re=[`onClick`],ze={key:1,class:`cc-table__page-ellipsis`},Be=[`disabled`],Ve=`__selection__`,Z=48,Q=i((0,t.defineComponent)({__name:`CcTable`,props:(0,t.mergeModels)({columns:{},data:{},rowKey:{default:`id`},tableKey:{default:`default`},showSelection:{type:Boolean,default:!0},pageSizeOptions:{default:()=>[10,20,50]},defaultDensity:{default:`medium`},emptyText:{default:`暂无数据`},maxHeight:{default:void 0}},{selectedKeys:{default:()=>[]},selectedKeysModifiers:{}}),emits:(0,t.mergeModels)([`selection-change`],[`update:selectedKeys`]),setup(e,{emit:n}){let r=e,i=(0,t.useModel)(e,`selectedKeys`),a=n,o=[{label:`大`,value:`large`},{label:`中`,value:`medium`},{label:`小`,value:`small`}],s=(0,t.computed)(()=>`cc-table:${r.tableKey}`),l=(0,t.ref)([]),u=(0,t.reactive)({}),d=(0,t.ref)(r.defaultDensity),f=(0,t.ref)(!1);function p(){let e=null;try{let t=localStorage.getItem(s.value);t&&(e=JSON.parse(t))}catch{e=null}let t=r.columns.map(e=>e.key),n=(e?.order??[]).filter(e=>t.includes(e));l.value=[...n,...t.filter(e=>!n.includes(e))];for(let n of t)u[n]=e?.visibility?.[n]??!0;e?.density&&o.some(t=>t.value===e.density)&&(d.value=e.density)}function m(){let e={v:1,order:l.value,visibility:{...u},density:d.value};try{localStorage.setItem(s.value,JSON.stringify(e))}catch{}}function h(){l.value=r.columns.map(e=>e.key);for(let e of r.columns.map(e=>e.key))u[e]=!0;d.value=r.defaultDensity,f.value=!1}(0,t.watch)([l,u,d],m,{deep:!0}),(0,t.watch)(()=>r.columns.map(e=>e.key),e=>{for(let t of e)l.value.includes(t)||l.value.push(t),u[t]===void 0&&(u[t]=!0)});function g(e){return e.width??140}let _=(0,t.computed)(()=>r.columns.filter(e=>!e.fixed)),v=(0,t.computed)(()=>{let e=new Map(l.value.map((e,t)=>[e,t]));return r.columns.filter(e=>!e.fixed).filter(e=>u[e.key]!==!1).sort((t,n)=>(e.get(t.key)??0)-(e.get(n.key)??0))}),y=(0,t.computed)(()=>{let e=[],t=e=>({key:e.key,title:e.title,width:g(e),slot:e.slot??``,align:e.align??`left`,fixed:e.fixed,filterable:e.filterable,filterType:e.filterType??`text`,filterOptions:e.filterOptions,formatter:e.formatter});r.showSelection&&e.push({key:Ve,title:``,width:Z,slot:``,align:`center`,left:0,isSelection:!0});let n=r.columns.filter(e=>e.fixed===`left`),i=r.showSelection?Z:0;n.forEach((r,a)=>{e.push({...t(r),left:i,isLastLeftFixed:a===n.length-1}),i+=g(r)});for(let n of v.value)e.push(t(n));let a=r.columns.filter(e=>e.fixed===`right`),o=0,s=new Map;for(let e=a.length-1;e>=0;e--)s.set(a[e].key,o),o+=g(a[e]);for(let n of a)e.push({...t(n),right:s.get(n.key)});return e}),b=(0,t.ref)(null),x=(0,t.ref)(null);function S(e){return!e.fixed&&!e.isSelection}function C(e,t){S(e)&&(b.value=e.key,x.value=null,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(`text/plain`,e.key)))}function w(e,t){b.value&&e.key!==b.value&&S(e)&&(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`),x.value=e.key)}function T(e,t){t.preventDefault();let n=b.value;if(!n||n===e.key)return;let i=v.value.map(e=>e.key),a=i.indexOf(n),o=i.indexOf(e.key);if(a<0||o<0)return;let s=[...i];s.splice(a,1);let c=a<o?o-1:o;s.splice(c,0,n);let u=r.columns.filter(e=>e.fixed===`left`).map(e=>e.key),d=r.columns.filter(e=>e.fixed===`right`).map(e=>e.key);l.value=[...u,...s,...d],x.value=null}function E(){b.value=null,x.value=null}let D=(0,t.reactive)({}),O=(0,t.computed)(()=>y.value.filter(e=>e.filterable&&!e.isSelection)),k=(0,t.computed)(()=>Object.values(D).some(e=>e!==``)),A=(0,t.computed)(()=>{let e=Object.entries(D).filter(([,e])=>e!==``);return e.length?r.data.filter(t=>e.every(([e,n])=>{let i=t[e];return i==null?!1:r.columns.find(t=>t.key===e)?.filterType===`select`?String(i)===n:String(i).toLowerCase().includes(n.toLowerCase())})):r.data});function j(){for(let e of Object.keys(D))D[e]=``;P.value=1}let M=(0,t.ref)(r.pageSizeOptions[0]??10),P=(0,t.ref)(1),F=(0,t.computed)(()=>Math.max(1,Math.ceil(A.value.length/M.value))),I=(0,t.computed)(()=>A.value.slice((P.value-1)*M.value,P.value*M.value)),L=(0,t.computed)(()=>{let e=F.value,t=P.value;if(e<=7)return Array.from({length:e},(e,t)=>t+1);let n=[...new Set([1,e,t-1,t,t+1])].filter(t=>t>=1&&t<=e).sort((e,t)=>e-t),r=[],i=0;for(let e of n)e-i>1&&r.push(`…`),r.push(e),i=e;return r});(0,t.watch)([A,M],()=>{P.value>F.value&&(P.value=F.value)});function R(e){P.value=Math.min(Math.max(1,e),F.value)}function z(e){let t=e[r.rowKey];return t==null?JSON.stringify(e):String(t)}function B(e){return i.value.includes(z(e))}function V(e){let t=z(e);i.value.includes(t)?i.value=i.value.filter(e=>e!==t):i.value=[...i.value,t]}let H=(0,t.computed)(()=>I.value.length>0&&I.value.every(e=>B(e))),U=(0,t.computed)(()=>!H.value&&I.value.some(e=>B(e)));function W(){if(H.value){let e=new Set(I.value.map(e=>z(e)));i.value=i.value.filter(t=>!e.has(t))}else{let e=new Set(i.value);for(let t of I.value)e.add(z(t));i.value=[...e]}}(0,t.watch)(i,e=>{let t=e.map(e=>r.data.find(t=>z(t)===e)).filter(e=>!!e);a(`selection-change`,e,t)},{deep:!0});function G(e,t){let n=t[e.key];return n==null?`—`:e.formatter?e.formatter(n,t):String(n)}return(0,t.onMounted)(p),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,le,[(0,t.createElementVNode)(`div`,ue,[(0,t.createElementVNode)(`div`,de,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(O.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:e.key},[e.filterType===`select`?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,fe,[(0,t.createElementVNode)(`span`,pe,(0,t.toDisplayString)(e.title),1),(0,t.withDirectives)((0,t.createElementVNode)(`select`,{"onUpdate:modelValue":t=>D[e.key]=t,class:`cc-table__filter-control`},[r[5]||=(0,t.createElementVNode)(`option`,{value:``},`全部`,-1),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.filterOptions,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`option`,{key:String(e.value),value:String(e.value)},(0,t.toDisplayString)(e.label),9,he))),128))],8,me),[[t.vModelSelect,D[e.key]]])])):((0,t.openBlock)(),(0,t.createElementBlock)(`label`,ge,[(0,t.createElementVNode)(`span`,_e,(0,t.toDisplayString)(e.title),1),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":t=>D[e.key]=t,class:`cc-table__filter-control`,type:`text`,placeholder:`搜索${e.title}`},null,8,ve),[[t.vModelText,D[e.key]]])]))],64))),128)),k.value?((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,size:`sm`,variant:`ghost`,onClick:j},{default:(0,t.withCtx)(()=>[...r[6]||=[(0,t.createTextVNode)(` 重置 `,-1)]]),_:1})):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,ye,[(0,t.createVNode)(c,{size:`sm`,variant:`secondary`,onClick:r[0]||=e=>f.value=!f.value},{default:(0,t.withCtx)(()=>[...r[7]||=[(0,t.createTextVNode)(` 列设置 `,-1)]]),_:1}),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`div`,{class:`cc-table__backdrop`,onClick:r[1]||=e=>f.value=!1}),(0,t.createElementVNode)(`div`,be,[(0,t.createElementVNode)(`div`,xe,[r[8]||=(0,t.createElementVNode)(`div`,{class:`cc-table__settings-title`},`表格密度`,-1),(0,t.createElementVNode)(`div`,Se,[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o,e=>(0,t.createElementVNode)(`button`,{key:e.value,type:`button`,class:(0,t.normalizeClass)([`cc-table__density-btn`,{"cc-table__density-btn--active":d.value===e.value}]),onClick:t=>d.value=e.value},(0,t.toDisplayString)(e.label),11,Ce)),64))])]),(0,t.createElementVNode)(`div`,we,[r[9]||=(0,t.createElementVNode)(`div`,{class:`cc-table__settings-title`},`显示列`,-1),(0,t.createElementVNode)(`div`,Te,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(_.value,e=>((0,t.openBlock)(),(0,t.createBlock)(N,{key:e.key,modelValue:u[e.key],"onUpdate:modelValue":t=>u[e.key]=t},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`]))),128))])]),(0,t.createElementVNode)(`button`,{type:`button`,class:`cc-table__settings-reset`,onClick:h},`恢复默认`)])],64)):(0,t.createCommentVNode)(``,!0)])]),(0,t.createElementVNode)(`div`,{class:`cc-table__scroll`,style:(0,t.normalizeStyle)({maxHeight:e.maxHeight})},[(0,t.createElementVNode)(`table`,{class:(0,t.normalizeClass)([`cc-table__table`,`cc-table--${d.value}`])},[(0,t.createElementVNode)(`colgroup`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(y.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`col`,{key:e.key,style:(0,t.normalizeStyle)({width:`${e.width}px`})},null,4))),128))]),(0,t.createElementVNode)(`thead`,null,[(0,t.createElementVNode)(`tr`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(y.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`th`,{key:e.key,class:(0,t.normalizeClass)([`cc-table__th`,[`cc-table__cell--${e.align}`,{"cc-table__th--fixed-left":e.fixed===`left`||e.isSelection},{"cc-table__th--fixed-left-end":e.isLastLeftFixed},{"cc-table__th--fixed-right":e.fixed===`right`},{"cc-table__th--draggable":S(e)},{"cc-table__th--dragging":b.value===e.key},{"cc-table__th--drop-target":x.value===e.key}]]),style:(0,t.normalizeStyle)({left:e.left==null?void 0:`${e.left}px`,right:e.right==null?void 0:`${e.right}px`}),draggable:S(e),onDragstart:t=>C(e,t),onDragover:t=>w(e,t),onDrop:t=>T(e,t),onDragend:E},[e.isSelection?((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:0,type:`checkbox`,class:`cc-table__check`,checked:H.value,indeterminate:U.value,"aria-label":`选择本页全部`,onChange:W},null,40,De)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Oe,[(0,t.createTextVNode)((0,t.toDisplayString)(e.title)+` `,1),S(e)?((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,ke,[...r[10]||=[(0,t.createStaticVNode)(`<circle cx="3" cy="2.5" r="1" fill="currentColor" data-v-e1238af3></circle><circle cx="7" cy="2.5" r="1" fill="currentColor" data-v-e1238af3></circle><circle cx="3" cy="7" r="1" fill="currentColor" data-v-e1238af3></circle><circle cx="7" cy="7" r="1" fill="currentColor" data-v-e1238af3></circle><circle cx="3" cy="11.5" r="1" fill="currentColor" data-v-e1238af3></circle><circle cx="7" cy="11.5" r="1" fill="currentColor" data-v-e1238af3></circle>`,6)]])):(0,t.createCommentVNode)(``,!0)]))],46,Ee))),128))])]),(0,t.createElementVNode)(`tbody`,null,[I.value.length?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,Ae,[(0,t.createElementVNode)(`td`,{class:`cc-table__empty`,colspan:y.value.length},(0,t.toDisplayString)(e.emptyText),9,je)])),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(I.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,{key:z(e),class:`cc-table__row`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(y.value,r=>((0,t.openBlock)(),(0,t.createElementBlock)(`td`,{key:r.key,class:(0,t.normalizeClass)([`cc-table__td`,[`cc-table__cell--${r.align}`,{"cc-table__td--fixed-left":r.fixed===`left`||r.isSelection},{"cc-table__td--fixed-left-end":r.isLastLeftFixed},{"cc-table__td--fixed-right":r.fixed===`right`}]]),style:(0,t.normalizeStyle)({left:r.left==null?void 0:`${r.left}px`,right:r.right==null?void 0:`${r.right}px`})},[r.isSelection?((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:0,type:`checkbox`,class:`cc-table__check`,checked:B(e),"aria-label":`选择第 ${z(e)} 行`,onChange:t=>V(e)},null,40,Me)):r.slot?(0,t.renderSlot)(n.$slots,r.slot,{row:e,value:e[r.key]},void 0,!0,1):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createTextVNode)((0,t.toDisplayString)(G(r,e)),1)],64))],6))),128))]))),128))])],2)],4),(0,t.createElementVNode)(`div`,Ne,[(0,t.createElementVNode)(`span`,Pe,`共 `+(0,t.toDisplayString)(A.value.length)+` 条`,1),(0,t.createElementVNode)(`div`,Fe,[r[13]||=(0,t.createElementVNode)(`span`,{class:`cc-table__pager-size`},`每页`,-1),(0,t.withDirectives)((0,t.createElementVNode)(`select`,{"onUpdate:modelValue":r[2]||=e=>M.value=e,class:`cc-table__pagesize`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.pageSizeOptions,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`option`,{key:e,value:e},(0,t.toDisplayString)(e),9,Ie))),128))],512),[[t.vModelSelect,M.value,void 0,{number:!0}]]),r[14]||=(0,t.createElementVNode)(`span`,{class:`cc-table__pager-size`},`条`,-1),(0,t.createElementVNode)(`button`,{type:`button`,class:`cc-table__page-btn`,disabled:P.value<=1,"aria-label":`上一页`,onClick:r[3]||=e=>R(P.value-1)},[...r[11]||=[(0,t.createElementVNode)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M10 4l-4 4 4 4`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]],8,Le),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(L.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:`${e}-${n}`},[e===`…`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ze,`…`)):((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:(0,t.normalizeClass)([`cc-table__page-btn cc-table__page-btn--num`,{"cc-table__page-btn--active":P.value===e}]),onClick:t=>R(e)},(0,t.toDisplayString)(e),11,Re))],64))),128)),(0,t.createElementVNode)(`button`,{type:`button`,class:`cc-table__page-btn`,disabled:P.value>=F.value,"aria-label":`下一页`,onClick:r[4]||=e=>R(P.value+1)},[...r[12]||=[(0,t.createElementVNode)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M6 4l4 4-4 4`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]],8,Be)])])]))}}),[[`__scopeId`,`data-v-e1238af3`]]);function $(e){let t=[[`CcButton`,c],[`CcInput`,m],[`CcTextarea`,y],[`CcSelect`,D],[`CcSwitch`,A],[`CcCheckbox`,N],[`CcRadio`,I],[`CcCard`,H],[`CcTag`,W],[`CcBadge`,K],[`CcAlert`,q],[`CcModal`,J],[`CcTooltip`,Y],[`CcSpinner`,a],[`CcDivider`,X],[`CcTable`,Q]];for(let[n,r]of t)e.component(n,r)}var He={install:$,CcButton:c,CcInput:m,CcTextarea:y,CcSelect:D,CcSwitch:A,CcCheckbox:N,CcRadio:I,CcCard:H,CcTag:W,CcBadge:K,CcAlert:q,CcModal:J,CcTooltip:Y,CcSpinner:a,CcDivider:X,CcTable:Q};e.CcAlert=q,e.CcBadge=K,e.CcButton=c,e.CcCard=H,e.CcCheckbox=N,e.CcDivider=X,e.CcInput=m,e.CcModal=J,e.CcRadio=I,e.CcSelect=D,e.CcSpinner=a,e.CcSwitch=A,e.CcTable=Q,e.CcTag=W,e.CcTextarea=y,e.CcTooltip=Y,e.default=He,e.install=$});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vue"),require("echarts/core"),require("echarts/charts"),require("echarts/components"),require("echarts/renderers")):typeof define==`function`&&define.amd?define([`exports`,`vue`,`echarts/core`,`echarts/charts`,`echarts/components`,`echarts/renderers`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.CommonComponentLibraryVue={},e.Vue,e.echarts,e.echarts,e.echarts,e.echarts))})(this,function(e,t,n,r,i,a){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var o=Object.create,s=Object.defineProperty,c=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,u=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty,ee=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=l(t),a=0,o=i.length,u;a<o;a++)u=i[a],!d.call(e,u)&&u!==n&&s(e,u,{get:(e=>t[e]).bind(null,u),enumerable:!(r=c(t,u))||r.enumerable});return e};n=((e,t,n)=>(n=e==null?{}:o(u(e)),ee(t||!e||!e.__esModule||!d.call(e,`default`)?s(n,`default`,{value:e,enumerable:!0}):n,e)))(n,1);var te=[`width`,`height`],ne=(0,t.defineComponent)({__name:`CcSpinner`,props:{size:{default:20},color:{default:`var(--cc-primary)`}},setup(e){return(0,t.useCssVars)(e=>({f2187a8a:e.color})),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:`cc-spinner`,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,role:`status`,"aria-label":`loading`},[...r[0]||=[(0,t.createElementVNode)(`circle`,{class:`cc-spinner__track`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-opacity":`0.15`,"stroke-width":`3`},null,-1),(0,t.createElementVNode)(`path`,{class:`cc-spinner__arc`,d:`M12 2a10 10 0 0 1 10 10`,stroke:`currentColor`,"stroke-width":`3`,"stroke-linecap":`round`},null,-1)]],8,te))}}),f=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},p=f(ne,[[`__scopeId`,`data-v-00c109fa`]]),m={key:0,class:`cc-btn__spinner`},h={class:`cc-btn__content`},g=f((0,t.defineComponent)({__name:`CcButton`,props:{variant:{default:`primary`},size:{default:`md`},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},href:{default:void 0},target:{default:void 0},block:{type:Boolean,default:!1},type:{default:`button`},ariaLabel:{default:void 0}},emits:[`click`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>r.variant===`primary`||r.variant===`on-dark`?`var(--cc-on-primary)`:`var(--cc-primary)`);function o(e){if(r.disabled||r.loading){e.preventDefault();return}i(`click`,e)}return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.href?`a`:`button`),{class:(0,t.normalizeClass)([`cc-btn`,[`cc-btn--${e.variant}`,`cc-btn--${e.size}`,{"cc-btn--block":e.block,"cc-btn--loading":e.loading}]]),href:e.href||void 0,target:e.href?e.target:void 0,type:e.href?void 0:e.type,disabled:e.href?void 0:e.disabled||e.loading,"aria-label":e.ariaLabel,"aria-busy":e.loading,onClick:o},{default:(0,t.withCtx)(()=>[e.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,m,[(0,t.createVNode)(p,{size:e.size===`sm`?14:16,color:a.value},null,8,[`size`,`color`])])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,h,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])]),_:3},8,[`class`,`href`,`target`,`type`,`disabled`,`aria-label`,`aria-busy`]))}}),[[`__scopeId`,`data-v-deb42261`]]),_=[`for`],v={key:0,class:`cc-input__prefix tnum`},y=[`id`,`type`,`value`,`name`,`placeholder`,`disabled`,`readonly`,`autocomplete`,`inputmode`,`min`,`max`,`step`,`aria-invalid`],re={key:1,class:`cc-input__message cc-input__message--error`},ie={key:2,class:`cc-input__message`},b=f((0,t.defineComponent)({__name:`CcInput`,props:{modelValue:{default:``},label:{default:void 0},placeholder:{default:void 0},type:{default:`text`},name:{default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},error:{default:void 0},hint:{default:void 0},prefix:{default:void 0},autocomplete:{default:void 0},inputmode:{default:void 0},min:{default:void 0},max:{default:void 0},step:{default:void 0}},emits:[`update:modelValue`,`focus`,`blur`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>!!r.error);function o(e){i(`update:modelValue`,e.target.value)}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`cc-input`,{"cc-input--error":a.value,"cc-input--disabled":e.disabled}])},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,class:`cc-input__label`,for:e.name},(0,t.toDisplayString)(e.label),9,_)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`cc-input__field`,{"cc-input__field--prefix":e.prefix}])},[e.prefix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,v,(0,t.toDisplayString)(e.prefix),1)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{id:e.name,class:`cc-input__control tnum`,type:e.type,value:e.modelValue,name:e.name,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,autocomplete:e.autocomplete,inputmode:e.inputmode,min:e.min,max:e.max,step:e.step,"aria-invalid":a.value||void 0,onInput:o,onFocus:r[0]||=e=>i(`focus`,e),onBlur:r[1]||=e=>i(`blur`,e),onChange:r[2]||=e=>i(`change`,e)},null,40,y)],2),e.error?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,re,(0,t.toDisplayString)(e.error),1)):e.hint?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,ie,(0,t.toDisplayString)(e.hint),1)):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-4b6c01de`]]),x=[`for`],S=[`id`,`value`,`name`,`rows`,`placeholder`,`disabled`,`readonly`,`autocomplete`,`aria-invalid`],ae={key:1,class:`cc-textarea__message cc-textarea__message--error`},oe={key:2,class:`cc-textarea__message`},C=f((0,t.defineComponent)({__name:`CcTextarea`,props:{modelValue:{default:``},label:{default:void 0},placeholder:{default:void 0},name:{default:void 0},rows:{default:4},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},error:{default:void 0},hint:{default:void 0},autocomplete:{default:void 0}},emits:[`update:modelValue`,`focus`,`blur`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>!!r.error);function o(e){i(`update:modelValue`,e.target.value)}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`cc-textarea`,{"cc-textarea--error":a.value,"cc-textarea--disabled":e.disabled}])},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,class:`cc-textarea__label`,for:e.name},(0,t.toDisplayString)(e.label),9,x)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`textarea`,{id:e.name,class:`cc-textarea__control`,value:e.modelValue,name:e.name,rows:e.rows,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,autocomplete:e.autocomplete,"aria-invalid":a.value||void 0,onInput:o,onFocus:r[0]||=e=>i(`focus`,e),onBlur:r[1]||=e=>i(`blur`,e)},null,40,S),e.error?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,ae,(0,t.toDisplayString)(e.error),1)):e.hint?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,oe,(0,t.toDisplayString)(e.hint),1)):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-9840d15e`]]),se=[`for`],w={class:`cc-select__wrap`},T=[`id`,`value`,`name`,`disabled`,`aria-invalid`],E={key:0,value:``,disabled:``,selected:``},D=[`value`,`disabled`],ce={key:1,class:`cc-select__message cc-select__message--error`},O={key:2,class:`cc-select__message`},k=f((0,t.defineComponent)({__name:`CcSelect`,props:{modelValue:{default:``},options:{default:()=>[]},label:{default:void 0},placeholder:{default:void 0},name:{default:void 0},disabled:{type:Boolean,default:!1},error:{default:void 0},hint:{default:void 0}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>!!r.error);function o(e){let t=e.target;i(`update:modelValue`,t.value),i(`change`,e)}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`cc-select`,{"cc-select--error":a.value,"cc-select--disabled":e.disabled}])},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,class:`cc-select__label`,for:e.name},(0,t.toDisplayString)(e.label),9,se)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,w,[(0,t.createElementVNode)(`select`,{id:e.name,class:`cc-select__control`,value:e.modelValue,name:e.name,disabled:e.disabled,"aria-invalid":a.value||void 0,onChange:o},[e.placeholder?((0,t.openBlock)(),(0,t.createElementBlock)(`option`,E,(0,t.toDisplayString)(e.placeholder),1)):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.options,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`option`,{key:String(e.value),value:e.value,disabled:e.disabled},(0,t.toDisplayString)(e.label),9,D))),128))],40,T),r[0]||=(0,t.createElementVNode)(`svg`,{class:`cc-select__chevron`,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M4 6l4 4 4-4`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]),e.error?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,ce,(0,t.toDisplayString)(e.error),1)):e.hint?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,O,(0,t.toDisplayString)(e.hint),1)):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-0e1871e6`]]),A=[`aria-checked`,`aria-label`,`disabled`],le={key:0,class:`cc-switch__label`},j=f((0,t.defineComponent)({__name:`CcSwitch`,props:(0,t.mergeModels)({label:{default:void 0},disabled:{type:Boolean,default:!1},size:{default:`md`}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.useModel)(e,`modelValue`),r=e;function i(){r.disabled||(n.value=!n.value)}return(r,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)([`cc-switch`,[`cc-switch--${e.size}`,{"cc-switch--checked":n.value,"cc-switch--disabled":e.disabled}]]),role:`switch`,"aria-checked":n.value,"aria-label":e.label||`switch`,disabled:e.disabled,onClick:i},[a[0]||=(0,t.createElementVNode)(`span`,{class:`cc-switch__track`},[(0,t.createElementVNode)(`span`,{class:`cc-switch__knob`})],-1),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,le,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],10,A))}}),[[`__scopeId`,`data-v-cb8ad6ea`]]),ue=[`disabled`],de={key:0,class:`cc-checkbox__label`},M=f((0,t.defineComponent)({__name:`CcCheckbox`,props:(0,t.mergeModels)({label:{default:void 0},disabled:{type:Boolean,default:!1}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.useModel)(e,`modelValue`);return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{class:(0,t.normalizeClass)([`cc-checkbox`,{"cc-checkbox--disabled":e.disabled}])},[(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":i[0]||=e=>n.value=e,type:`checkbox`,class:`cc-checkbox__native`,disabled:e.disabled},null,8,ue),[[t.vModelCheckbox,n.value]]),i[1]||=(0,t.createElementVNode)(`span`,{class:`cc-checkbox__box`,"aria-hidden":`true`},[(0,t.createElementVNode)(`svg`,{class:`cc-checkbox__check`,width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`none`},[(0,t.createElementVNode)(`path`,{d:`M2.5 6.2l2.4 2.4 4.6-5`,stroke:`currentColor`,"stroke-width":`1.8`,"stroke-linecap":`round`,"stroke-linejoin":`round`})])],-1),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,de,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(r.$slots,`default`,{},void 0,!0)],2))}}),[[`__scopeId`,`data-v-bf838053`]]),fe=[`value`,`disabled`],pe={key:0,class:`cc-radio__label`},N=f((0,t.defineComponent)({__name:`CcRadio`,props:(0,t.mergeModels)({value:{},label:{default:void 0},disabled:{type:Boolean,default:!1}},{modelValue:{default:``},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.useModel)(e,`modelValue`);return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{class:(0,t.normalizeClass)([`cc-radio`,{"cc-radio--disabled":e.disabled}])},[(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":i[0]||=e=>n.value=e,type:`radio`,class:`cc-radio__native`,value:e.value,disabled:e.disabled},null,8,fe),[[t.vModelRadio,n.value]]),i[1]||=(0,t.createElementVNode)(`span`,{class:`cc-radio__dot`,"aria-hidden":`true`},null,-1),e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,pe,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(r.$slots,`default`,{},void 0,!0)],2))}}),[[`__scopeId`,`data-v-0a6c4d47`]]),me={key:0,class:`cc-card__header`},he={key:0,class:`cc-card__title`},ge={key:1,class:`cc-card__desc`},_e={class:`cc-card__body`},ve={key:0,class:`cc-card__footer`},P=f((0,t.defineComponent)({__name:`CcCard`,props:{variant:{default:`feature`},title:{default:void 0},description:{default:void 0},flush:{type:Boolean,default:!1}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`article`,{class:(0,t.normalizeClass)([`cc-card`,[`cc-card--${e.variant}`,{"cc-card--flush":e.flush}]])},[(0,t.renderSlot)(n.$slots,`header`,{},()=>[e.title||e.description?((0,t.openBlock)(),(0,t.createElementBlock)(`header`,me,[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`h3`,he,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),e.description?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,ge,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)],!0),(0,t.createElementVNode)(`div`,_e,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]),n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`footer`,ve,[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-7f39ac3e`]]),ye={key:0,class:`cc-tag__dot`},F=f((0,t.defineComponent)({__name:`CcTag`,props:{variant:{default:`soft`},size:{default:`md`},dot:{type:Boolean,default:!1},closable:{type:Boolean,default:!1}},emits:[`close`],setup(e,{emit:n}){let r=n;return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)([`cc-tag`,[`cc-tag--${e.variant}`,`cc-tag--${e.size}`]])},[e.dot?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ye)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0),e.closable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`cc-tag__close`,"aria-label":`close tag`,onClick:i[0]||=(0,t.withModifiers)(e=>r(`close`,e),[`stop`])},[...i[1]||=[(0,t.createElementVNode)(`svg`,{width:`10`,height:`10`,viewBox:`0 0 10 10`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M1 1l8 8M9 1l-8 8`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`})],-1)]])):(0,t.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-858b2086`]]),be={class:`cc-badge__text tnum`},I=f((0,t.defineComponent)({__name:`CcBadge`,props:{count:{default:0},max:{default:99},variant:{default:`soft`},dot:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.computed)(()=>{if(n.dot)return``;let e=Number(n.count);return Number.isNaN(e)?String(n.count):e>n.max?`${n.max}+`:String(e)});return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)([`cc-badge`,[`cc-badge--${e.variant}`,{"cc-badge--dot-only":e.dot}]])},[(0,t.createElementVNode)(`span`,be,(0,t.toDisplayString)(r.value),1)],2))}}),[[`__scopeId`,`data-v-466a4bd0`]]),xe={class:`cc-alert__content`},Se={key:0,class:`cc-alert__title`},Ce={key:1,class:`cc-alert__desc`},L=f((0,t.defineComponent)({__name:`CcAlert`,props:{variant:{default:`info`},title:{default:void 0},description:{default:void 0},closable:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.ref)(!0),i=(0,t.computed)(()=>{switch(n.variant){case`success`:return`var(--cc-success)`;case`warning`:return`var(--cc-warning)`;case`error`:return`var(--cc-error)`;default:return`var(--cc-primary)`}});return(n,a)=>r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`cc-alert`,`cc-alert--${e.variant}`]),role:`alert`},[(0,t.createElementVNode)(`span`,{class:`cc-alert__icon`,style:(0,t.normalizeStyle)({color:i.value}),"aria-hidden":`true`},[...a[1]||=[(0,t.createElementVNode)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`},[(0,t.createElementVNode)(`path`,{d:`M8 1.5l6.5 11.25H1.5L8 1.5z`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linejoin":`round`}),(0,t.createElementVNode)(`path`,{d:`M8 6v3.2`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`}),(0,t.createElementVNode)(`circle`,{cx:`8`,cy:`11.2`,r:`0.9`,fill:`currentColor`})],-1)]],4),(0,t.createElementVNode)(`div`,xe,[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,Se,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),e.description||n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,Ce,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.description),1)],!0)])):(0,t.createCommentVNode)(``,!0)]),e.closable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`cc-alert__close`,"aria-label":`dismiss`,onClick:a[0]||=e=>r.value=!1},[...a[2]||=[(0,t.createElementVNode)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 10 10`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M1 1l8 8M9 1l-8 8`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`})],-1)]])):(0,t.createCommentVNode)(``,!0)],2)):(0,t.createCommentVNode)(``,!0)}}),[[`__scopeId`,`data-v-8671adaf`]]),we=[`aria-label`],Te={class:`cc-modal__header`},Ee={key:0,class:`cc-modal__title`},De={class:`cc-modal__body`},Oe={key:0,class:`cc-modal__footer`},R=f((0,t.defineComponent)({__name:`CcModal`,props:{visible:{type:Boolean,default:!1},title:{default:void 0},width:{default:`480px`},closable:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0},footer:{type:Boolean,default:!0}},emits:[`update:visible`,`open`,`close`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null);function o(){i(`update:visible`,!1),i(`close`)}function s(e){e.key===`Escape`&&r.visible&&r.closable&&o()}function c(e){r.maskClosable&&e.target===e.currentTarget&&o()}return(0,t.watch)(()=>r.visible,async e=>{e?(i(`open`),await(0,t.nextTick)(),a.value?.focus(),document.body.style.overflow=`hidden`):document.body.style.overflow=``}),(0,t.onMounted)(()=>{document.addEventListener(`keydown`,s)}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`keydown`,s),document.body.style.overflow=``}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`cc-modal`},{default:(0,t.withCtx)(()=>[e.visible?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`cc-modal`,onClick:(0,t.withModifiers)(c,[`self`])},[(0,t.createElementVNode)(`div`,{ref_key:`panel`,ref:a,class:`cc-modal__panel`,style:(0,t.normalizeStyle)({maxWidth:e.width}),role:`dialog`,"aria-modal":`true`,"aria-label":e.title||`dialog`,tabindex:`-1`},[(0,t.createElementVNode)(`header`,Te,[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`h3`,Ee,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),e.closable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`cc-modal__close`,"aria-label":`close`,onClick:o},[...r[0]||=[(0,t.createElementVNode)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 10 10`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M1 1l8 8M9 1l-8 8`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`})],-1)]])):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,De,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]),n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`footer`,Oe,[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],12,we)])):(0,t.createCommentVNode)(``,!0)]),_:3})]))}}),[[`__scopeId`,`data-v-d2a6d4fd`]]),z=f((0,t.defineComponent)({__name:`CcTooltip`,props:{content:{default:void 0},placement:{default:`top`},delay:{default:0}},setup(e){let n=e,r=(0,t.ref)(!1),i=null,a=(0,t.computed)(()=>r.value);function o(){n.delay>0?i=setTimeout(()=>r.value=!0,n.delay):r.value=!0}function s(){i&&clearTimeout(i),r.value=!1}return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`cc-tooltip`,onMouseenter:o,onMouseleave:s,onFocusin:o,onFocusout:s},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0),a.value&&(e.content||n.$slots.tip)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)([`cc-tooltip__bubble`,`cc-tooltip--${e.placement}`]),role:`tooltip`},[(0,t.renderSlot)(n.$slots,`tip`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.content),1)],!0)],2)):(0,t.createCommentVNode)(``,!0)],32))}}),[[`__scopeId`,`data-v-2befb04b`]]),ke={key:0,class:`cc-divider__label`},B=f((0,t.defineComponent)({__name:`CcDivider`,props:{orientation:{default:`horizontal`},height:{default:`1em`}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`cc-divider`,[`cc-divider--${e.orientation}`]]),role:`separator`,style:(0,t.normalizeStyle)(e.orientation===`vertical`?{height:e.height}:void 0)},[n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ke,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],6))}}),[[`__scopeId`,`data-v-c42961cd`]]),Ae={class:`cc-table`},je={class:`cc-table__toolbar`},Me={class:`cc-table__filters`},Ne={key:0,class:`cc-table__filter`},Pe={class:`cc-table__filter-label`},Fe=[`onUpdate:modelValue`],Ie=[`value`],Le={key:1,class:`cc-table__filter`},Re={class:`cc-table__filter-label`},ze=[`onUpdate:modelValue`,`placeholder`],Be={class:`cc-table__settings`},Ve={class:`cc-table__settings-panel`},He={class:`cc-table__settings-section`},Ue={class:`cc-table__density`},We=[`onClick`],Ge={class:`cc-table__settings-section`},Ke={class:`cc-table__settings-cols`},qe=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],Je=[`checked`,`indeterminate`],Ye={key:1,class:`cc-table__th-title`},Xe={key:0,class:`cc-table__drag-handle`,width:`10`,height:`14`,viewBox:`0 0 10 14`,fill:`none`,"aria-hidden":`true`},Ze={key:0},Qe=[`colspan`],$e=[`checked`,`aria-label`,`onChange`],et={class:`cc-table__footer`},tt={class:`cc-table__total`},nt={class:`cc-table__pager`},rt=[`value`],it=[`disabled`],at=[`onClick`],ot={key:1,class:`cc-table__page-ellipsis`},st=[`disabled`],ct=`__selection__`,lt=48,V=f((0,t.defineComponent)({__name:`CcTable`,props:(0,t.mergeModels)({columns:{},data:{},rowKey:{default:`id`},tableKey:{default:`default`},showSelection:{type:Boolean,default:!0},pageSizeOptions:{default:()=>[10,20,50]},defaultDensity:{default:`medium`},emptyText:{default:`暂无数据`},maxHeight:{default:void 0}},{selectedKeys:{default:()=>[]},selectedKeysModifiers:{}}),emits:(0,t.mergeModels)([`selection-change`],[`update:selectedKeys`]),setup(e,{emit:n}){let r=e,i=(0,t.useModel)(e,`selectedKeys`),a=n,o=[{label:`大`,value:`large`},{label:`中`,value:`medium`},{label:`小`,value:`small`}],s=(0,t.computed)(()=>`cc-table:${r.tableKey}`),c=(0,t.ref)([]),l=(0,t.reactive)({}),u=(0,t.ref)(r.defaultDensity),d=(0,t.ref)(!1);function ee(){let e=null;try{let t=localStorage.getItem(s.value);t&&(e=JSON.parse(t))}catch{e=null}let t=r.columns.map(e=>e.key),n=(e?.order??[]).filter(e=>t.includes(e));c.value=[...n,...t.filter(e=>!n.includes(e))];for(let n of t)l[n]=e?.visibility?.[n]??!0;e?.density&&o.some(t=>t.value===e.density)&&(u.value=e.density)}function te(){let e={v:1,order:c.value,visibility:{...l},density:u.value};try{localStorage.setItem(s.value,JSON.stringify(e))}catch{}}function ne(){c.value=r.columns.map(e=>e.key);for(let e of r.columns.map(e=>e.key))l[e]=!0;u.value=r.defaultDensity,d.value=!1}(0,t.watch)([c,l,u],te,{deep:!0}),(0,t.watch)(()=>r.columns.map(e=>e.key),e=>{for(let t of e)c.value.includes(t)||c.value.push(t),l[t]===void 0&&(l[t]=!0)});function f(e){return e.width??140}let p=(0,t.computed)(()=>r.columns.filter(e=>!e.fixed)),m=(0,t.computed)(()=>{let e=new Map(c.value.map((e,t)=>[e,t]));return r.columns.filter(e=>!e.fixed).filter(e=>l[e.key]!==!1).sort((t,n)=>(e.get(t.key)??0)-(e.get(n.key)??0))}),h=(0,t.computed)(()=>{let e=[],t=e=>({key:e.key,title:e.title,width:f(e),slot:e.slot??``,align:e.align??`left`,fixed:e.fixed,filterable:e.filterable,filterType:e.filterType??`text`,filterOptions:e.filterOptions,formatter:e.formatter});r.showSelection&&e.push({key:ct,title:``,width:lt,slot:``,align:`center`,left:0,isSelection:!0});let n=r.columns.filter(e=>e.fixed===`left`),i=r.showSelection?lt:0;n.forEach((r,a)=>{e.push({...t(r),left:i,isLastLeftFixed:a===n.length-1}),i+=f(r)});for(let n of m.value)e.push(t(n));let a=r.columns.filter(e=>e.fixed===`right`),o=0,s=new Map;for(let e=a.length-1;e>=0;e--)s.set(a[e].key,o),o+=f(a[e]);for(let n of a)e.push({...t(n),right:s.get(n.key)});return e}),_=(0,t.ref)(null),v=(0,t.ref)(null);function y(e){return!e.fixed&&!e.isSelection}function re(e,t){y(e)&&(_.value=e.key,v.value=null,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(`text/plain`,e.key)))}function ie(e,t){_.value&&e.key!==_.value&&y(e)&&(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`),v.value=e.key)}function b(e,t){t.preventDefault();let n=_.value;if(!n||n===e.key)return;let i=m.value.map(e=>e.key),a=i.indexOf(n),o=i.indexOf(e.key);if(a<0||o<0)return;let s=[...i];s.splice(a,1);let l=a<o?o-1:o;s.splice(l,0,n);let u=r.columns.filter(e=>e.fixed===`left`).map(e=>e.key),d=r.columns.filter(e=>e.fixed===`right`).map(e=>e.key);c.value=[...u,...s,...d],v.value=null}function x(){_.value=null,v.value=null}let S=(0,t.reactive)({}),ae=(0,t.computed)(()=>h.value.filter(e=>e.filterable&&!e.isSelection)),oe=(0,t.computed)(()=>Object.values(S).some(e=>e!==``)),C=(0,t.computed)(()=>{let e=Object.entries(S).filter(([,e])=>e!==``);return e.length?r.data.filter(t=>e.every(([e,n])=>{let i=t[e];return i==null?!1:r.columns.find(t=>t.key===e)?.filterType===`select`?String(i)===n:String(i).toLowerCase().includes(n.toLowerCase())})):r.data});function se(){for(let e of Object.keys(S))S[e]=``;T.value=1}let w=(0,t.ref)(r.pageSizeOptions[0]??10),T=(0,t.ref)(1),E=(0,t.computed)(()=>Math.max(1,Math.ceil(C.value.length/w.value))),D=(0,t.computed)(()=>C.value.slice((T.value-1)*w.value,T.value*w.value)),ce=(0,t.computed)(()=>{let e=E.value,t=T.value;if(e<=7)return Array.from({length:e},(e,t)=>t+1);let n=[...new Set([1,e,t-1,t,t+1])].filter(t=>t>=1&&t<=e).sort((e,t)=>e-t),r=[],i=0;for(let e of n)e-i>1&&r.push(`…`),r.push(e),i=e;return r});(0,t.watch)([C,w],()=>{T.value>E.value&&(T.value=E.value)});function O(e){T.value=Math.min(Math.max(1,e),E.value)}function k(e){let t=e[r.rowKey];return t==null?JSON.stringify(e):String(t)}function A(e){return i.value.includes(k(e))}function le(e){let t=k(e);i.value.includes(t)?i.value=i.value.filter(e=>e!==t):i.value=[...i.value,t]}let j=(0,t.computed)(()=>D.value.length>0&&D.value.every(e=>A(e))),ue=(0,t.computed)(()=>!j.value&&D.value.some(e=>A(e)));function de(){if(j.value){let e=new Set(D.value.map(e=>k(e)));i.value=i.value.filter(t=>!e.has(t))}else{let e=new Set(i.value);for(let t of D.value)e.add(k(t));i.value=[...e]}}(0,t.watch)(i,e=>{let t=e.map(e=>r.data.find(t=>k(t)===e)).filter(e=>!!e);a(`selection-change`,e,t)},{deep:!0});function fe(e,t){let n=t[e.key];return n==null?`—`:e.formatter?e.formatter(n,t):String(n)}return(0,t.onMounted)(ee),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ae,[(0,t.createElementVNode)(`div`,je,[(0,t.createElementVNode)(`div`,Me,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(ae.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:e.key},[e.filterType===`select`?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,Ne,[(0,t.createElementVNode)(`span`,Pe,(0,t.toDisplayString)(e.title),1),(0,t.withDirectives)((0,t.createElementVNode)(`select`,{"onUpdate:modelValue":t=>S[e.key]=t,class:`cc-table__filter-control`},[r[5]||=(0,t.createElementVNode)(`option`,{value:``},`全部`,-1),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.filterOptions,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`option`,{key:String(e.value),value:String(e.value)},(0,t.toDisplayString)(e.label),9,Ie))),128))],8,Fe),[[t.vModelSelect,S[e.key]]])])):((0,t.openBlock)(),(0,t.createElementBlock)(`label`,Le,[(0,t.createElementVNode)(`span`,Re,(0,t.toDisplayString)(e.title),1),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":t=>S[e.key]=t,class:`cc-table__filter-control`,type:`text`,placeholder:`搜索${e.title}`},null,8,ze),[[t.vModelText,S[e.key]]])]))],64))),128)),oe.value?((0,t.openBlock)(),(0,t.createBlock)(g,{key:0,size:`sm`,variant:`ghost`,onClick:se},{default:(0,t.withCtx)(()=>[...r[6]||=[(0,t.createTextVNode)(` 重置 `,-1)]]),_:1})):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,Be,[(0,t.createVNode)(g,{size:`sm`,variant:`secondary`,onClick:r[0]||=e=>d.value=!d.value},{default:(0,t.withCtx)(()=>[...r[7]||=[(0,t.createTextVNode)(` 列设置 `,-1)]]),_:1}),d.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`div`,{class:`cc-table__backdrop`,onClick:r[1]||=e=>d.value=!1}),(0,t.createElementVNode)(`div`,Ve,[(0,t.createElementVNode)(`div`,He,[r[8]||=(0,t.createElementVNode)(`div`,{class:`cc-table__settings-title`},`表格密度`,-1),(0,t.createElementVNode)(`div`,Ue,[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o,e=>(0,t.createElementVNode)(`button`,{key:e.value,type:`button`,class:(0,t.normalizeClass)([`cc-table__density-btn`,{"cc-table__density-btn--active":u.value===e.value}]),onClick:t=>u.value=e.value},(0,t.toDisplayString)(e.label),11,We)),64))])]),(0,t.createElementVNode)(`div`,Ge,[r[9]||=(0,t.createElementVNode)(`div`,{class:`cc-table__settings-title`},`显示列`,-1),(0,t.createElementVNode)(`div`,Ke,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(p.value,e=>((0,t.openBlock)(),(0,t.createBlock)(M,{key:e.key,modelValue:l[e.key],"onUpdate:modelValue":t=>l[e.key]=t},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`]))),128))])]),(0,t.createElementVNode)(`button`,{type:`button`,class:`cc-table__settings-reset`,onClick:ne},`恢复默认`)])],64)):(0,t.createCommentVNode)(``,!0)])]),(0,t.createElementVNode)(`div`,{class:`cc-table__scroll`,style:(0,t.normalizeStyle)({maxHeight:e.maxHeight})},[(0,t.createElementVNode)(`table`,{class:(0,t.normalizeClass)([`cc-table__table`,`cc-table--${u.value}`])},[(0,t.createElementVNode)(`colgroup`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(h.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`col`,{key:e.key,style:(0,t.normalizeStyle)({width:`${e.width}px`})},null,4))),128))]),(0,t.createElementVNode)(`thead`,null,[(0,t.createElementVNode)(`tr`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(h.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`th`,{key:e.key,class:(0,t.normalizeClass)([`cc-table__th`,[`cc-table__cell--${e.align}`,{"cc-table__th--fixed-left":e.fixed===`left`||e.isSelection},{"cc-table__th--fixed-left-end":e.isLastLeftFixed},{"cc-table__th--fixed-right":e.fixed===`right`},{"cc-table__th--draggable":y(e)},{"cc-table__th--dragging":_.value===e.key},{"cc-table__th--drop-target":v.value===e.key}]]),style:(0,t.normalizeStyle)({left:e.left==null?void 0:`${e.left}px`,right:e.right==null?void 0:`${e.right}px`}),draggable:y(e),onDragstart:t=>re(e,t),onDragover:t=>ie(e,t),onDrop:t=>b(e,t),onDragend:x},[e.isSelection?((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:0,type:`checkbox`,class:`cc-table__check`,checked:j.value,indeterminate:ue.value,"aria-label":`选择本页全部`,onChange:de},null,40,Je)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ye,[(0,t.createTextVNode)((0,t.toDisplayString)(e.title)+` `,1),y(e)?((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,Xe,[...r[10]||=[(0,t.createStaticVNode)(`<circle cx="3" cy="2.5" r="1" fill="currentColor" data-v-e1238af3></circle><circle cx="7" cy="2.5" r="1" fill="currentColor" data-v-e1238af3></circle><circle cx="3" cy="7" r="1" fill="currentColor" data-v-e1238af3></circle><circle cx="7" cy="7" r="1" fill="currentColor" data-v-e1238af3></circle><circle cx="3" cy="11.5" r="1" fill="currentColor" data-v-e1238af3></circle><circle cx="7" cy="11.5" r="1" fill="currentColor" data-v-e1238af3></circle>`,6)]])):(0,t.createCommentVNode)(``,!0)]))],46,qe))),128))])]),(0,t.createElementVNode)(`tbody`,null,[D.value.length?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,Ze,[(0,t.createElementVNode)(`td`,{class:`cc-table__empty`,colspan:h.value.length},(0,t.toDisplayString)(e.emptyText),9,Qe)])),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(D.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,{key:k(e),class:`cc-table__row`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(h.value,r=>((0,t.openBlock)(),(0,t.createElementBlock)(`td`,{key:r.key,class:(0,t.normalizeClass)([`cc-table__td`,[`cc-table__cell--${r.align}`,{"cc-table__td--fixed-left":r.fixed===`left`||r.isSelection},{"cc-table__td--fixed-left-end":r.isLastLeftFixed},{"cc-table__td--fixed-right":r.fixed===`right`}]]),style:(0,t.normalizeStyle)({left:r.left==null?void 0:`${r.left}px`,right:r.right==null?void 0:`${r.right}px`})},[r.isSelection?((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:0,type:`checkbox`,class:`cc-table__check`,checked:A(e),"aria-label":`选择第 ${k(e)} 行`,onChange:t=>le(e)},null,40,$e)):r.slot?(0,t.renderSlot)(n.$slots,r.slot,{row:e,value:e[r.key]},void 0,!0,1):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createTextVNode)((0,t.toDisplayString)(fe(r,e)),1)],64))],6))),128))]))),128))])],2)],4),(0,t.createElementVNode)(`div`,et,[(0,t.createElementVNode)(`span`,tt,`共 `+(0,t.toDisplayString)(C.value.length)+` 条`,1),(0,t.createElementVNode)(`div`,nt,[r[13]||=(0,t.createElementVNode)(`span`,{class:`cc-table__pager-size`},`每页`,-1),(0,t.withDirectives)((0,t.createElementVNode)(`select`,{"onUpdate:modelValue":r[2]||=e=>w.value=e,class:`cc-table__pagesize`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.pageSizeOptions,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`option`,{key:e,value:e},(0,t.toDisplayString)(e),9,rt))),128))],512),[[t.vModelSelect,w.value,void 0,{number:!0}]]),r[14]||=(0,t.createElementVNode)(`span`,{class:`cc-table__pager-size`},`条`,-1),(0,t.createElementVNode)(`button`,{type:`button`,class:`cc-table__page-btn`,disabled:T.value<=1,"aria-label":`上一页`,onClick:r[3]||=e=>O(T.value-1)},[...r[11]||=[(0,t.createElementVNode)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M10 4l-4 4 4 4`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]],8,it),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(ce.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:`${e}-${n}`},[e===`…`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ot,`…`)):((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:(0,t.normalizeClass)([`cc-table__page-btn cc-table__page-btn--num`,{"cc-table__page-btn--active":T.value===e}]),onClick:t=>O(e)},(0,t.toDisplayString)(e),11,at))],64))),128)),(0,t.createElementVNode)(`button`,{type:`button`,class:`cc-table__page-btn`,disabled:T.value>=E.value,"aria-label":`下一页`,onClick:r[4]||=e=>O(T.value+1)},[...r[12]||=[(0,t.createElementVNode)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[(0,t.createElementVNode)(`path`,{d:`M6 4l4 4-4 4`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]],8,st)])])]))}}),[[`__scopeId`,`data-v-e1238af3`]]),H=[`#533afd`,`#635bff`,`#00d4ff`,`#00c48a`,`#f6a609`,`#ff5c8a`,`#8a6bff`,`#22d3ee`],U=[`#635bff`,`#00d4ff`,`#00c48a`,`#f6a609`,`#ff5c8a`,`#a78bfa`,`#22d3ee`,`#f472b6`],ut=`#5b6472`,dt=`#9aa3b5`,ft=`rgba(28, 30, 84, 0.96)`;function W(e){return{backgroundColor:e?ft:`#ffffff`,borderColor:e?`rgba(255, 255, 255, 0.12)`:`#e6e8ef`,borderWidth:1,padding:[8,12],textStyle:{color:e?`#f4f5fa`:`#0d253d`,fontSize:12},extraCssText:`box-shadow: 0 8px 24px rgba(13, 37, 61, 0.12); border-radius: 10px;`}}function G(e){return{show:!0,top:0,icon:`circle`,itemWidth:8,itemHeight:8,itemGap:14,textStyle:{color:e?dt:ut,fontSize:12}}}function pt(e){return{lineStyle:{color:e?`rgba(255, 255, 255, 0.14)`:`#e6e8ef`},axisLabel:{color:e?dt:ut},splitLine:{lineStyle:{color:e?`rgba(255, 255, 255, 0.07)`:`#eef0f5`}}}}n.use([r.BarChart,r.LineChart,r.PieChart,i.GridComponent,i.LegendComponent,i.TooltipComponent,a.CanvasRenderer]);function K(e){let r=(0,t.shallowRef)(void 0),i;(0,t.onMounted)(()=>{e.value&&(r.value=n.init(e.value),i=new ResizeObserver(()=>{r.value?.resize()}),i.observe(e.value))});function a(e){r.value&&r.value.setOption(e,{notMerge:!0})}return(0,t.onBeforeUnmount)(()=>{i?.disconnect(),r.value?.dispose(),r.value=void 0}),{chart:r,setOption:a}}var q=f((0,t.defineComponent)({__name:`CcBarChart`,props:{categories:{},series:{},height:{default:320},horizontal:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1},rounded:{type:Boolean,default:!0},showLegend:{type:Boolean,default:!0},colors:{default:void 0},dark:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.ref)(),{setOption:i}=K(r),a=(0,t.computed)(()=>{let e=n.colors??(n.dark?U:H),t=pt(n.dark),r={...t,type:`value`,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{color:n.dark?`rgba(255, 255, 255, 0.07)`:`#eef0f5`}}},i={...t,type:`category`,data:n.categories,axisTick:{show:!1},splitLine:{show:!1}};return{color:e,backgroundColor:`transparent`,animationDuration:500,grid:{left:8,right:12,top:n.showLegend?38:14,bottom:6,containLabel:!0},legend:n.showLegend?G(n.dark):{show:!1},tooltip:{...W(n.dark),trigger:`axis`,axisPointer:{type:`shadow`,shadowStyle:{color:n.dark?`rgba(255,255,255,0.04)`:`rgba(83,58,253,0.05)`}}},xAxis:n.horizontal?r:i,yAxis:n.horizontal?i:r,series:n.series.map(e=>({name:e.name,type:`bar`,data:e.data,stack:n.stacked?`total`:void 0,barMaxWidth:n.horizontal?22:36,itemStyle:{borderRadius:n.rounded?n.horizontal?[0,4,4,0]:[4,4,0,0]:0},emphasis:{itemStyle:{shadowBlur:8,shadowColor:`rgba(13, 37, 61, 0.18)`}}}))}});return(0,t.watch)(a,e=>i(e),{deep:!0}),(0,t.onMounted)(()=>i(a.value)),(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`cc-chart cc-chart--bar`,style:(0,t.normalizeStyle)({height:`${e.height}px`})},[(0,t.createElementVNode)(`div`,{ref_key:`chartEl`,ref:r,class:`cc-chart__canvas`},null,512)],4))}}),[[`__scopeId`,`data-v-f3347dd9`]]),J=f((0,t.defineComponent)({__name:`CcPieChart`,props:{data:{},height:{default:320},donut:{type:Boolean,default:!1},rose:{type:Boolean,default:!1},showLegend:{type:Boolean,default:!0},showLabels:{type:Boolean,default:!1},colors:{default:void 0},dark:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.ref)(),{setOption:i}=K(r),a=(0,t.computed)(()=>{let e=n.colors??(n.dark?U:H),t=n.showLegend?G(n.dark):{show:!1};return{color:e,backgroundColor:`transparent`,animationDuration:600,legend:n.showLegend?{...t,bottom:0,top:void 0}:{show:!1},tooltip:{...W(n.dark),trigger:`item`,valueFormatter:e=>String(e)},series:[{name:`占比`,type:`pie`,radius:n.donut?[`46%`,`70%`]:n.rose?[`16%`,`72%`]:`72%`,roseType:n.rose?`radius`:void 0,center:[`50%`,n.showLegend?`44%`:`50%`],itemStyle:{borderRadius:5,borderColor:n.dark?`#121430`:`#ffffff`,borderWidth:2},label:{show:n.showLabels,color:n.dark?`#f4f5fa`:`#0d253d`,fontSize:12,formatter:`{b}
|
|
2
|
+
{d}%`},labelLine:n.showLabels?{length:12,length2:8}:void 0,emphasis:{scaleSize:6,itemStyle:{shadowBlur:12,shadowColor:`rgba(13, 37, 61, 0.2)`}},data:n.data}]}});return(0,t.watch)(a,e=>i(e),{deep:!0}),(0,t.onMounted)(()=>i(a.value)),(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`cc-chart cc-chart--pie`,style:(0,t.normalizeStyle)({height:`${e.height}px`})},[(0,t.createElementVNode)(`div`,{ref_key:`chartEl`,ref:r,class:`cc-chart__canvas`},null,512)],4))}}),[[`__scopeId`,`data-v-7fe37b76`]]),Y=f((0,t.defineComponent)({__name:`CcLineChart`,props:{categories:{},series:{},height:{default:320},smooth:{type:Boolean,default:!0},area:{type:Boolean,default:!1},showDots:{type:Boolean,default:!1},showLegend:{type:Boolean,default:!0},showGrid:{type:Boolean,default:!0},colors:{default:void 0},dark:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.ref)(),{setOption:i}=K(r),a=(0,t.computed)(()=>{let e=n.colors??(n.dark?U:H),t=pt(n.dark);return{color:e,backgroundColor:`transparent`,animationDuration:600,grid:{left:8,right:12,top:n.showLegend?38:14,bottom:6,containLabel:!0},legend:n.showLegend?G(n.dark):{show:!1},tooltip:{...W(n.dark),trigger:`axis`,axisPointer:{type:`line`,lineStyle:{color:n.dark?`rgba(255,255,255,0.2)`:`rgba(13,37,61,0.18)`,type:`dashed`}}},xAxis:{...t,type:`category`,boundaryGap:!1,data:n.categories,axisTick:{show:!1},splitLine:{show:!1}},yAxis:{...t,type:`value`,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:n.showGrid,lineStyle:{color:n.dark?`rgba(255, 255, 255, 0.07)`:`#eef0f5`}}},series:n.series.map(e=>({name:e.name,type:`line`,data:e.data,smooth:n.smooth,showSymbol:n.showDots,symbol:`circle`,symbolSize:6,lineStyle:{width:2.5},areaStyle:n.area?{opacity:.08}:void 0,emphasis:{focus:`series`,lineStyle:{width:3}}}))}});return(0,t.watch)(a,e=>i(e),{deep:!0}),(0,t.onMounted)(()=>i(a.value)),(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`cc-chart cc-chart--line`,style:(0,t.normalizeStyle)({height:`${e.height}px`})},[(0,t.createElementVNode)(`div`,{ref_key:`chartEl`,ref:r,class:`cc-chart__canvas`},null,512)],4))}}),[[`__scopeId`,`data-v-5300a86d`]]),mt=[`stripe`,`linear`,`vercel`,`notion`,`raycast`],ht={stripe:`Stripe · 经典紫`,linear:`Linear · 深色薰衣草`,vercel:`Vercel · 黑白极简`,notion:`Notion · 纸张笔记`,raycast:`Raycast · 暗夜白键`},X=`data-cc-theme`,gt=Symbol(`cc-theme`),_t=`stripe`;function Z(e){return typeof e==`string`&&mt.includes(e)}function vt(e){if(typeof document>`u`)return;let t=document.documentElement;if(e===`stripe`){t.removeAttribute(X);return}t.setAttribute(X,e)}function yt(){if(typeof document>`u`)return _t;let e=document.documentElement.getAttribute(X);return Z(e)?e:_t}function bt(){typeof document>`u`||document.documentElement.removeAttribute(X)}var Q=(0,t.defineComponent)({__name:`CcThemeProvider`,props:{theme:{default:`stripe`},persist:{type:Boolean,default:!1}},emits:[`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(r.theme);(0,t.provide)(gt,a);function o(){if(!r.persist)return r.theme;try{let e=localStorage.getItem(`cc-library-theme`);if(Z(e))return e}catch{}return r.theme}function s(e){if(a.value=e,vt(e),r.persist)try{localStorage.setItem(`cc-library-theme`,e)}catch{}i(`change`,e)}return(0,t.onMounted)(()=>{s(o())}),(0,t.watch)(()=>r.theme,e=>{Z(e)&&s(e)}),(e,n)=>(0,t.renderSlot)(e.$slots,`default`)}});function $(e){let t=[[`CcButton`,g],[`CcInput`,b],[`CcTextarea`,C],[`CcSelect`,k],[`CcSwitch`,j],[`CcCheckbox`,M],[`CcRadio`,N],[`CcCard`,P],[`CcTag`,F],[`CcBadge`,I],[`CcAlert`,L],[`CcModal`,R],[`CcTooltip`,z],[`CcSpinner`,p],[`CcDivider`,B],[`CcTable`,V],[`CcBarChart`,q],[`CcPieChart`,J],[`CcLineChart`,Y],[`CcThemeProvider`,Q]];for(let[n,r]of t)e.component(n,r)}var xt={install:$,CcButton:g,CcInput:b,CcTextarea:C,CcSelect:k,CcSwitch:j,CcCheckbox:M,CcRadio:N,CcCard:P,CcTag:F,CcBadge:I,CcAlert:L,CcModal:R,CcTooltip:z,CcSpinner:p,CcDivider:B,CcTable:V,CcBarChart:q,CcPieChart:J,CcLineChart:Y,CcThemeProvider:Q};e.CC_THEMES=mt,e.CC_THEME_LABELS=ht,e.CcAlert=L,e.CcBadge=I,e.CcBarChart=q,e.CcButton=g,e.CcCard=P,e.CcCheckbox=M,e.CcDivider=B,e.CcInput=b,e.CcLineChart=Y,e.CcModal=R,e.CcPieChart=J,e.CcRadio=N,e.CcSelect=k,e.CcSpinner=p,e.CcSwitch=j,e.CcTable=V,e.CcTag=F,e.CcTextarea=C,e.CcThemeProvider=Q,e.CcTooltip=z,e.default=xt,e.getTheme=yt,e.install=$,e.resetTheme=bt,e.setTheme=vt});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type CcChartSeries } from './common';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
/** X 轴(或横向时 Y 轴)类目。 */
|
|
4
|
+
categories: string[];
|
|
5
|
+
/** 一个或多个系列数据。 */
|
|
6
|
+
series: CcChartSeries[];
|
|
7
|
+
/** 图表高度(px),默认 320。 */
|
|
8
|
+
height?: number;
|
|
9
|
+
/** 横向柱状图(类目在 Y 轴)。 */
|
|
10
|
+
horizontal?: boolean;
|
|
11
|
+
/** 多系列堆叠。 */
|
|
12
|
+
stacked?: boolean;
|
|
13
|
+
/** 柱顶圆角,默认开启。 */
|
|
14
|
+
rounded?: boolean;
|
|
15
|
+
/** 是否显示图例。 */
|
|
16
|
+
showLegend?: boolean;
|
|
17
|
+
/** 自定义色板。 */
|
|
18
|
+
colors?: string[];
|
|
19
|
+
/** 深色模式(适配 dashboard 深色底)。 */
|
|
20
|
+
dark?: boolean;
|
|
21
|
+
};
|
|
22
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
23
|
+
height: number;
|
|
24
|
+
dark: boolean;
|
|
25
|
+
horizontal: boolean;
|
|
26
|
+
stacked: boolean;
|
|
27
|
+
rounded: boolean;
|
|
28
|
+
showLegend: boolean;
|
|
29
|
+
colors: string[];
|
|
30
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
31
|
+
declare const _default: typeof __VLS_export;
|
|
32
|
+
export default _default;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type CcChartSeries } from './common';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
/** X 轴类目。 */
|
|
4
|
+
categories: string[];
|
|
5
|
+
/** 一个或多个系列数据。 */
|
|
6
|
+
series: CcChartSeries[];
|
|
7
|
+
/** 图表高度(px),默认 320。 */
|
|
8
|
+
height?: number;
|
|
9
|
+
/** 平滑曲线,默认开启。 */
|
|
10
|
+
smooth?: boolean;
|
|
11
|
+
/** 面积填充。 */
|
|
12
|
+
area?: boolean;
|
|
13
|
+
/** 是否显示数据点。 */
|
|
14
|
+
showDots?: boolean;
|
|
15
|
+
/** 是否显示图例。 */
|
|
16
|
+
showLegend?: boolean;
|
|
17
|
+
/** 是否显示网格分割线。 */
|
|
18
|
+
showGrid?: boolean;
|
|
19
|
+
/** 自定义色板。 */
|
|
20
|
+
colors?: string[];
|
|
21
|
+
/** 深色模式(适配 dashboard 深色底)。 */
|
|
22
|
+
dark?: boolean;
|
|
23
|
+
};
|
|
24
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
25
|
+
area: boolean;
|
|
26
|
+
height: number;
|
|
27
|
+
dark: boolean;
|
|
28
|
+
showLegend: boolean;
|
|
29
|
+
colors: string[];
|
|
30
|
+
smooth: boolean;
|
|
31
|
+
showDots: boolean;
|
|
32
|
+
showGrid: boolean;
|
|
33
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
34
|
+
declare const _default: typeof __VLS_export;
|
|
35
|
+
export default _default;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type CcPieDatum } from './common';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
/** 饼图数据项。 */
|
|
4
|
+
data: CcPieDatum[];
|
|
5
|
+
/** 图表高度(px),默认 320。 */
|
|
6
|
+
height?: number;
|
|
7
|
+
/** 环形图(中心挖空)。 */
|
|
8
|
+
donut?: boolean;
|
|
9
|
+
/** 玫瑰图(半径随数值变化)。 */
|
|
10
|
+
rose?: boolean;
|
|
11
|
+
/** 是否显示图例。 */
|
|
12
|
+
showLegend?: boolean;
|
|
13
|
+
/** 是否显示数据标签(默认隐藏,hover 高亮时显示)。 */
|
|
14
|
+
showLabels?: boolean;
|
|
15
|
+
/** 自定义色板。 */
|
|
16
|
+
colors?: string[];
|
|
17
|
+
/** 深色模式(适配 dashboard 深色底)。 */
|
|
18
|
+
dark?: boolean;
|
|
19
|
+
};
|
|
20
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
21
|
+
height: number;
|
|
22
|
+
dark: boolean;
|
|
23
|
+
showLegend: boolean;
|
|
24
|
+
colors: string[];
|
|
25
|
+
donut: boolean;
|
|
26
|
+
rose: boolean;
|
|
27
|
+
showLabels: boolean;
|
|
28
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
|
+
declare const _default: typeof __VLS_export;
|
|
30
|
+
export default _default;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chart 组件共享类型与默认配置。
|
|
3
|
+
* 色板取自 Stripe 风格设计令牌(--cc-primary 等),保证与 DESIGN.md 视觉语言一致。
|
|
4
|
+
*/
|
|
5
|
+
/** 图表系列数据:name 为系列名,data 为与类目一一对应的数值(null 表示断点)。 */
|
|
6
|
+
export interface CcChartSeries {
|
|
7
|
+
name: string;
|
|
8
|
+
data: (number | string | null)[];
|
|
9
|
+
}
|
|
10
|
+
/** 饼图数据项。 */
|
|
11
|
+
export interface CcPieDatum {
|
|
12
|
+
name: string;
|
|
13
|
+
value: number;
|
|
14
|
+
}
|
|
15
|
+
/** 浅色模式默认色板(Stripe 品牌紫为主)。 */
|
|
16
|
+
export declare const CC_CHART_PALETTE: string[];
|
|
17
|
+
/** 深色模式默认色板(亮化版本,适配 dashboard 深色底)。 */
|
|
18
|
+
export declare const CC_CHART_PALETTE_DARK: string[];
|
|
19
|
+
/** 轴标签文字颜色。 */
|
|
20
|
+
export declare const CC_CHART_TEXT_LIGHT = "#5b6472";
|
|
21
|
+
export declare const CC_CHART_TEXT_DARK = "#9aa3b5";
|
|
22
|
+
/** 轴线 / 分割线颜色。 */
|
|
23
|
+
export declare const CC_CHART_SPLIT_LIGHT = "#e6e8ef";
|
|
24
|
+
export declare const CC_CHART_SPLIT_DARK = "rgba(255, 255, 255, 0.09)";
|
|
25
|
+
/** 深色模式 tooltip 底色(对应 --cc-brand-dark-900)。 */
|
|
26
|
+
export declare const CC_CHART_TOOLTIP_DARK = "rgba(28, 30, 84, 0.96)";
|
|
27
|
+
/** 深色/浅色模式共用的 tooltip 样式。 */
|
|
28
|
+
export declare function tooltipStyle(dark: boolean): Record<string, unknown>;
|
|
29
|
+
/** 深色/浅色模式共用的图例样式。 */
|
|
30
|
+
export declare function legendStyle(dark: boolean): Record<string, unknown>;
|
|
31
|
+
/** 轴线 / 分割线样式。 */
|
|
32
|
+
export declare function axisLineStyle(dark: boolean): Record<string, unknown>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useECharts — 图表组件共享的 ECharts 生命周期封装。
|
|
3
|
+
* 按需注册 Bar / Line / Pie 三类图表与必要组件,控制打包体积。
|
|
4
|
+
*/
|
|
5
|
+
import { type Ref } from 'vue';
|
|
6
|
+
import * as echarts from 'echarts/core';
|
|
7
|
+
import type { BarSeriesOption, LineSeriesOption, PieSeriesOption } from 'echarts/charts';
|
|
8
|
+
import type { GridComponentOption, LegendComponentOption, TooltipComponentOption } from 'echarts/components';
|
|
9
|
+
/** 当前组件库用到的 ECharts 配置类型组合。 */
|
|
10
|
+
export type ECOption = echarts.ComposeOption<BarSeriesOption | LineSeriesOption | PieSeriesOption | GridComponentOption | LegendComponentOption | TooltipComponentOption>;
|
|
11
|
+
/**
|
|
12
|
+
* 初始化图表并处理尺寸自适应与销毁。
|
|
13
|
+
* 用法:const chartEl = ref<HTMLElement>();const { setOption } = useECharts(chartEl)。
|
|
14
|
+
*/
|
|
15
|
+
export declare function useECharts(containerRef: Ref<HTMLElement | undefined>): {
|
|
16
|
+
chart: import("vue").ShallowRef<echarts.ECharts | undefined, echarts.ECharts | undefined>;
|
|
17
|
+
setOption: (option: ECOption) => void;
|
|
18
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type CcTheme } from '../../theme';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
/** 目标主题名,默认 stripe。 */
|
|
4
|
+
theme?: CcTheme;
|
|
5
|
+
/** 是否把主题持久化到 localStorage(key: cc-library-theme)。 */
|
|
6
|
+
persist?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare var __VLS_1: {};
|
|
9
|
+
type __VLS_Slots = {} & {
|
|
10
|
+
default?: (props: typeof __VLS_1) => any;
|
|
11
|
+
};
|
|
12
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
13
|
+
change: (theme: CcTheme) => any;
|
|
14
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
15
|
+
onChange?: ((theme: CcTheme) => any) | undefined;
|
|
16
|
+
}>, {
|
|
17
|
+
theme: CcTheme;
|
|
18
|
+
persist: boolean;
|
|
19
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
21
|
+
declare const _default: typeof __VLS_export;
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
24
|
+
new (): {
|
|
25
|
+
$slots: S;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Common Component Library
|
|
2
|
+
* Common Component Library 鈥?Vue 3 + TypeScript
|
|
3
3
|
* Design language: Stripe-inspired, defined in /DESIGN.md
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
@@ -25,12 +25,24 @@ import CcTooltip from './components/Tooltip/CcTooltip.vue';
|
|
|
25
25
|
import CcSpinner from './components/Spinner/CcSpinner.vue';
|
|
26
26
|
import CcDivider from './components/Divider/CcDivider.vue';
|
|
27
27
|
import CcTable from './components/Table/CcTable.vue';
|
|
28
|
-
|
|
28
|
+
import CcBarChart from './components/Chart/CcBarChart.vue';
|
|
29
|
+
import CcPieChart from './components/Chart/CcPieChart.vue';
|
|
30
|
+
import CcLineChart from './components/Chart/CcLineChart.vue';
|
|
31
|
+
import CcThemeProvider from './components/ThemeProvider/CcThemeProvider.vue';
|
|
32
|
+
export { CcButton, CcInput, CcTextarea, CcSelect, CcSwitch, CcCheckbox, CcRadio, CcCard, CcTag, CcBadge, CcAlert, CcModal, CcTooltip, CcSpinner, CcDivider, CcTable, CcBarChart, CcPieChart, CcLineChart, CcThemeProvider, };
|
|
29
33
|
export type { CcSelectOption } from './components/Select/CcSelect.vue';
|
|
30
34
|
export type { CcTableColumn, CcTableDensity } from './components/Table/CcTable.vue';
|
|
31
|
-
|
|
35
|
+
export type { CcChartSeries, CcPieDatum } from './components/Chart/common';
|
|
36
|
+
export type { CcTheme } from './theme';
|
|
37
|
+
export { CC_THEMES, CC_THEME_LABELS, setTheme, getTheme, resetTheme } from './theme';
|
|
38
|
+
/** Design tokens (CSS custom properties) 鈥?import once in your app entry */
|
|
32
39
|
import './styles/tokens.css';
|
|
33
40
|
import './styles/base.css';
|
|
41
|
+
/** Multi-theme: Linear / Vercel / Notion / Raycast (default Stripe is in tokens.css) */
|
|
42
|
+
import './styles/themes/linear.css';
|
|
43
|
+
import './styles/themes/vercel.css';
|
|
44
|
+
import './styles/themes/notion.css';
|
|
45
|
+
import './styles/themes/raycast.css';
|
|
34
46
|
/** Optional plugin for `app.use()` registration */
|
|
35
47
|
export declare function install(app: App): void;
|
|
36
48
|
declare const _default: {
|
|
@@ -819,6 +831,139 @@ declare const _default: {
|
|
|
819
831
|
}) => any) | undefined;
|
|
820
832
|
};
|
|
821
833
|
});
|
|
834
|
+
CcBarChart: import("vue").DefineComponent<{
|
|
835
|
+
categories: string[];
|
|
836
|
+
series: import("./index.ts").CcChartSeries[];
|
|
837
|
+
height?: number;
|
|
838
|
+
horizontal?: boolean;
|
|
839
|
+
stacked?: boolean;
|
|
840
|
+
rounded?: boolean;
|
|
841
|
+
showLegend?: boolean;
|
|
842
|
+
colors?: string[];
|
|
843
|
+
dark?: boolean;
|
|
844
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
845
|
+
categories: string[];
|
|
846
|
+
series: import("./index.ts").CcChartSeries[];
|
|
847
|
+
height?: number;
|
|
848
|
+
horizontal?: boolean;
|
|
849
|
+
stacked?: boolean;
|
|
850
|
+
rounded?: boolean;
|
|
851
|
+
showLegend?: boolean;
|
|
852
|
+
colors?: string[];
|
|
853
|
+
dark?: boolean;
|
|
854
|
+
}> & Readonly<{}>, {
|
|
855
|
+
height: number;
|
|
856
|
+
dark: boolean;
|
|
857
|
+
horizontal: boolean;
|
|
858
|
+
stacked: boolean;
|
|
859
|
+
rounded: boolean;
|
|
860
|
+
showLegend: boolean;
|
|
861
|
+
colors: string[];
|
|
862
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
863
|
+
CcPieChart: import("vue").DefineComponent<{
|
|
864
|
+
data: import("./index.ts").CcPieDatum[];
|
|
865
|
+
height?: number;
|
|
866
|
+
donut?: boolean;
|
|
867
|
+
rose?: boolean;
|
|
868
|
+
showLegend?: boolean;
|
|
869
|
+
showLabels?: boolean;
|
|
870
|
+
colors?: string[];
|
|
871
|
+
dark?: boolean;
|
|
872
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
873
|
+
data: import("./index.ts").CcPieDatum[];
|
|
874
|
+
height?: number;
|
|
875
|
+
donut?: boolean;
|
|
876
|
+
rose?: boolean;
|
|
877
|
+
showLegend?: boolean;
|
|
878
|
+
showLabels?: boolean;
|
|
879
|
+
colors?: string[];
|
|
880
|
+
dark?: boolean;
|
|
881
|
+
}> & Readonly<{}>, {
|
|
882
|
+
height: number;
|
|
883
|
+
dark: boolean;
|
|
884
|
+
showLegend: boolean;
|
|
885
|
+
colors: string[];
|
|
886
|
+
donut: boolean;
|
|
887
|
+
rose: boolean;
|
|
888
|
+
showLabels: boolean;
|
|
889
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
890
|
+
CcLineChart: import("vue").DefineComponent<{
|
|
891
|
+
categories: string[];
|
|
892
|
+
series: import("./index.ts").CcChartSeries[];
|
|
893
|
+
height?: number;
|
|
894
|
+
smooth?: boolean;
|
|
895
|
+
area?: boolean;
|
|
896
|
+
showDots?: boolean;
|
|
897
|
+
showLegend?: boolean;
|
|
898
|
+
showGrid?: boolean;
|
|
899
|
+
colors?: string[];
|
|
900
|
+
dark?: boolean;
|
|
901
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
902
|
+
categories: string[];
|
|
903
|
+
series: import("./index.ts").CcChartSeries[];
|
|
904
|
+
height?: number;
|
|
905
|
+
smooth?: boolean;
|
|
906
|
+
area?: boolean;
|
|
907
|
+
showDots?: boolean;
|
|
908
|
+
showLegend?: boolean;
|
|
909
|
+
showGrid?: boolean;
|
|
910
|
+
colors?: string[];
|
|
911
|
+
dark?: boolean;
|
|
912
|
+
}> & Readonly<{}>, {
|
|
913
|
+
area: boolean;
|
|
914
|
+
height: number;
|
|
915
|
+
dark: boolean;
|
|
916
|
+
showLegend: boolean;
|
|
917
|
+
colors: string[];
|
|
918
|
+
smooth: boolean;
|
|
919
|
+
showDots: boolean;
|
|
920
|
+
showGrid: boolean;
|
|
921
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
922
|
+
CcThemeProvider: {
|
|
923
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
|
|
924
|
+
theme?: import("./theme").CcTheme;
|
|
925
|
+
persist?: boolean;
|
|
926
|
+
}> & Readonly<{
|
|
927
|
+
onChange?: ((theme: import("./theme").CcTheme) => any) | undefined;
|
|
928
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
929
|
+
change: (theme: import("./theme").CcTheme) => any;
|
|
930
|
+
}, import("vue").PublicProps, {
|
|
931
|
+
theme: import("./theme").CcTheme;
|
|
932
|
+
persist: boolean;
|
|
933
|
+
}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
934
|
+
P: {};
|
|
935
|
+
B: {};
|
|
936
|
+
D: {};
|
|
937
|
+
C: {};
|
|
938
|
+
M: {};
|
|
939
|
+
Defaults: {};
|
|
940
|
+
}, Readonly<{
|
|
941
|
+
theme?: import("./theme").CcTheme;
|
|
942
|
+
persist?: boolean;
|
|
943
|
+
}> & Readonly<{
|
|
944
|
+
onChange?: ((theme: import("./theme").CcTheme) => any) | undefined;
|
|
945
|
+
}>, {}, {}, {}, {}, {
|
|
946
|
+
theme: import("./theme").CcTheme;
|
|
947
|
+
persist: boolean;
|
|
948
|
+
}>;
|
|
949
|
+
__isFragment?: never;
|
|
950
|
+
__isTeleport?: never;
|
|
951
|
+
__isSuspense?: never;
|
|
952
|
+
} & import("vue").ComponentOptionsBase<Readonly<{
|
|
953
|
+
theme?: import("./theme").CcTheme;
|
|
954
|
+
persist?: boolean;
|
|
955
|
+
}> & Readonly<{
|
|
956
|
+
onChange?: ((theme: import("./theme").CcTheme) => any) | undefined;
|
|
957
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
958
|
+
change: (theme: import("./theme").CcTheme) => any;
|
|
959
|
+
}, string, {
|
|
960
|
+
theme: import("./theme").CcTheme;
|
|
961
|
+
persist: boolean;
|
|
962
|
+
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
|
|
963
|
+
$slots: {
|
|
964
|
+
default?: (props: {}) => any;
|
|
965
|
+
};
|
|
966
|
+
});
|
|
822
967
|
install: typeof install;
|
|
823
968
|
};
|
|
824
969
|
export default _default;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 多主题系统 — 组件库公开的主题切换 API。
|
|
3
|
+
*
|
|
4
|
+
* 用法(三种方式等效):
|
|
5
|
+
* 1. 声明式:<CcThemeProvider theme="linear"> <App/> </CcThemeProvider>
|
|
6
|
+
* 2. 命令式:import { setTheme } from 'common_component_library_vue'; setTheme('linear')
|
|
7
|
+
* 3. HTML: <html data-cc-theme="linear">
|
|
8
|
+
*
|
|
9
|
+
* 主题实际生效于 CSS 选择器 [data-cc-theme="xxx"],作用于 <html> 根节点,
|
|
10
|
+
* 覆盖 :root 中的默认(Stripe)令牌,切换即时生效、无需刷新。
|
|
11
|
+
*/
|
|
12
|
+
/** 组件库支持的设计风格。stripe 为默认风格(无需任何主题文件)。 */
|
|
13
|
+
export type CcTheme = 'stripe' | 'linear' | 'vercel' | 'notion' | 'raycast';
|
|
14
|
+
/** 全部可用主题。 */
|
|
15
|
+
export declare const CC_THEMES: readonly CcTheme[];
|
|
16
|
+
/** 主题中文标签(演示与选择器展示用),value 保持英文主题名不变。 */
|
|
17
|
+
export declare const CC_THEME_LABELS: Record<CcTheme, string>;
|
|
18
|
+
/** <html> 上的主题属性名。 */
|
|
19
|
+
export declare const CC_THEME_ATTR = "data-cc-theme";
|
|
20
|
+
/** inject/provide 当前主题的注入键(可读取响应式主题)。 */
|
|
21
|
+
export declare const CC_THEME_KEY: unique symbol;
|
|
22
|
+
/** 校验是否为合法的内置主题名。 */
|
|
23
|
+
export declare function isCcTheme(value: unknown): value is CcTheme;
|
|
24
|
+
/**
|
|
25
|
+
* 切换组件库主题。
|
|
26
|
+
* @param theme 目标主题名;传入 'stripe' 或移除主题时恢复默认。
|
|
27
|
+
*/
|
|
28
|
+
export declare function setTheme(theme: CcTheme): void;
|
|
29
|
+
/** 读取当前生效的主题名。 */
|
|
30
|
+
export declare function getTheme(): CcTheme;
|
|
31
|
+
/** 恢复默认主题(Stripe)。 */
|
|
32
|
+
export declare function resetTheme(): void;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "common_component_library_vue",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Vue 3 + TypeScript + Vite 通用组件库,视觉规范由 DESIGN.md(Stripe
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"description": "Vue 3 + TypeScript + Vite 通用组件库,视觉规范由 DESIGN.md(Stripe 风格)定义,包含表格、图表与 15 个基础组件",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist-lib/common-component-library-vue.umd.js",
|
|
7
7
|
"module": "./dist-lib/common-component-library-vue.mjs",
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
"require": "./dist-lib/common-component-library-vue.umd.js"
|
|
14
14
|
},
|
|
15
15
|
"./style.css": "./dist-lib/common-component-library-vue.css",
|
|
16
|
+
"./themes/linear.css": "./src/styles/themes/linear.css",
|
|
17
|
+
"./themes/vercel.css": "./src/styles/themes/vercel.css",
|
|
18
|
+
"./themes/notion.css": "./src/styles/themes/notion.css",
|
|
19
|
+
"./themes/raycast.css": "./src/styles/themes/raycast.css",
|
|
16
20
|
"./dist-lib/*": "./dist-lib/*",
|
|
17
21
|
"./styles/tokens.css": "./src/styles/tokens.css",
|
|
18
22
|
"./styles/base.css": "./src/styles/base.css",
|
|
@@ -58,16 +62,18 @@
|
|
|
58
62
|
"prepublishOnly": "npm run build:lib"
|
|
59
63
|
},
|
|
60
64
|
"dependencies": {
|
|
61
|
-
"vue": "^3.
|
|
65
|
+
"vue": "^3.4.0"
|
|
62
66
|
},
|
|
63
67
|
"peerDependencies": {
|
|
64
|
-
"vue": "^3.4.0"
|
|
68
|
+
"vue": "^3.4.0",
|
|
69
|
+
"echarts": "^5.5.0 || ^6.0.0"
|
|
65
70
|
},
|
|
66
71
|
"devDependencies": {
|
|
67
72
|
"@fontsource/inter": "^5.3.0",
|
|
68
73
|
"@types/node": "^24.13.3",
|
|
69
74
|
"@vitejs/plugin-vue": "^6.0.8",
|
|
70
75
|
"@vue/tsconfig": "^0.9.1",
|
|
76
|
+
"echarts": "^6.1.0",
|
|
71
77
|
"typescript": "~6.0.2",
|
|
72
78
|
"vite": "^8.2.2",
|
|
73
79
|
"vue-tsc": "^3.3.11"
|