UNPKG

vue-amazing-ui

Version:

An Amazing Vue3 UI Components Library, Using TypeScript.

2 lines (1 loc) 2.99 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),n=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(g){const d=g,i=e.reactive({colorPalettes:[],shadowColor:""}),h=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",i),e.provide("components",h);const u=e.computed(()=>"common"in d.theme?d.theme.common:null),b=e.computed(()=>{const o={...d.theme};return"common"in o&&delete o.common,o});e.watch(u,o=>{const t=m((o==null?void 0:o.primaryColor)||"#1677ff");i.colorPalettes=t,i.shadowColor=P(t[0])},{immediate:!0}),e.watch(b,o=>{Object.keys(o).forEach(t=>{var a,c;const s=((a=o[t])==null?void 0:a.primaryColor)||((c=u.value)==null?void 0:c.primaryColor)||"#1677ff",l=m(s);h[t].colorPalettes=l,h[t].shadowColor=P(l[0])})},{immediate:!0});function m(o){return v.generate(o)}function C(o){return o>=0&&o<=255}function P(o,t="#ffffff"){const{r:s,g:l,b:a,a:c}=new n.TinyColor(o).toRgb();if(c<1)return o;const{r:S,g:y,b:T}=new n.TinyColor(t).toRgb();for(let r=.01;r<=1;r+=.01){const w=Math.round((s-S*(1-r))/r),f=Math.round((l-y*(1-r))/r),p=Math.round((a-T*(1-r))/r);if(C(w)&&C(f)&&C(p))return new n.TinyColor({r:w,g:f,b:p,a:Math.round(r*100)/100}).toRgbString()}return new n.TinyColor({r:s,g:l,b:a,a:1}).toRgbString()}return(o,t)=>o.abstract?e.renderSlot(o.$slots,"default",{key:0}):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.tag),{key:1,class:"m-config-provider"},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3}))}});exports.default=B;