UNPKG

vue-amazing-ui

Version:

An Amazing Vue3 UI Components Library, Using TypeScript.

2 lines (1 loc) 2.93 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),s=require("@ctrl/tinycolor"),v=require("@ant-design/colors"),B=e.defineComponent({__name:"ConfigProvider",props:{theme:{default:()=>({})},abstract:{type:Boolean,default:!0},tag:{default:"div"}},setup(c){const n=c,d=e.reactive({colorPalettes:[],shadowColor:""}),i=e.reactive({Alert:{colorPalettes:[],shadowColor:""},BackTop:{colorPalettes:[],shadowColor:""},Button:{colorPalettes:[],shadowColor:""},Calendar:{colorPalettes:[],shadowColor:""},Carousel:{colorPalettes:[],shadowColor:""},Checkbox:{colorPalettes:[],shadowColor:""},ColorPicker:{colorPalettes:[],shadowColor:""},DatePicker:{colorPalettes:[],shadowColor:""},FloatButton:{colorPalettes:[],shadowColor:""},Image:{colorPalettes:[],shadowColor:""},Input:{colorPalettes:[],shadowColor:""},InputNumber:{colorPalettes:[],shadowColor:""},InputSearch:{colorPalettes:[],shadowColor:""},LoadingBar:{colorPalettes:[],shadowColor:""},Message:{colorPalettes:[],shadowColor:""},Modal:{colorPalettes:[],shadowColor:""},Notification:{colorPalettes:[],shadowColor:""},Pagination:{colorPalettes:[],shadowColor:""},Popconfirm:{colorPalettes:[],shadowColor:""},Progress:{colorPalettes:[],shadowColor:""},Radio:{colorPalettes:[],shadowColor:""},Select:{colorPalettes:[],shadowColor:""},Slider:{colorPalettes:[],shadowColor:""},Spin:{colorPalettes:[],shadowColor:""},Steps:{colorPalettes:[],shadowColor:""},Swiper:{colorPalettes:[],shadowColor:""},Switch:{colorPalettes:[],shadowColor:""},Tabs:{colorPalettes:[],shadowColor:""},Textarea:{colorPalettes:[],shadowColor:""},TextScroll:{colorPalettes:[],shadowColor:""},Upload:{colorPalettes:[],shadowColor:""}});e.provide("common",d),e.provide("components",i);const C=e.computed(()=>"common"in n.theme?n.theme.common:null),g=e.computed(()=>{const o={...n.theme};return"common"in o&&delete o.common,o});e.watch(C,o=>{const t=u(o?.primaryColor||"#1677ff");d.colorPalettes=t,d.shadowColor=m(t[0])},{immediate:!0}),e.watch(g,o=>{Object.keys(o).forEach(t=>{const a=o[t]?.primaryColor||C.value?.primaryColor||"#1677ff",l=u(a);i[t].colorPalettes=l,i[t].shadowColor=m(l[0])})},{immediate:!0});function u(o){return v.generate(o)}function h(o){return o>=0&&o<=255}function m(o,t="#ffffff"){const{r:a,g:l,b:w,a:b}=new s.TinyColor(o).toRgb();if(b<1)return o;const{r:S,g:y,b:T}=new s.TinyColor(t).toRgb();for(let r=.01;r<=1;r+=.01){const P=Math.round((a-S*(1-r))/r),f=Math.round((l-y*(1-r))/r),p=Math.round((w-T*(1-r))/r);if(h(P)&&h(f)&&h(p))return new s.TinyColor({r:P,g:f,b:p,a:Math.round(r*100)/100}).toRgbString()}return new s.TinyColor({r:a,g:l,b:w,a:1}).toRgbString()}return(o,t)=>c.abstract?e.renderSlot(o.$slots,"default",{key:0}):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.tag),{key:1,class:"config-provider-wrap"},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3}))}});exports.default=B;