UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 1.38 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),g=require("../constants.js"),k=require("./use-locale.js"),y=require("./use-namespace.js"),q=require("./use-token.js"),l=require("lodash-unified"),b=require("../../design-token/constants.js"),T=require("@emotion/css"),x=require("../../utils/cssinjs/utils.js"),f=o=>Object.keys(o),a=e.ref();function p(o,n=void 0){const r=e.getCurrentInstance()?e.inject(g.configProviderContextKey,a):a;return o?e.computed(()=>r.value?.[o]??n):r}const K=(o,n,r=!1)=>{const c=!!e.getCurrentInstance(),t=c?p():void 0,u=n?.provide??(c?e.provide:void 0);if(!u)return;const s=e.computed(()=>{const i=e.unref(o);return t?.value?j(t.value,i):i});u(g.configProviderContextKey,s),u(k.localeContextKey,e.computed(()=>s.value.aplusLocale)),u(y.namespaceContextKey,s.value.namespace);const d=e.computed(()=>({...l.merge(l.cloneDeep(b.defaultToken),s.value.aplusToken||{})})),m=e.computed(()=>l.omit(d.value,["components"])),v=e.ref();return e.watch(()=>m.value,i=>{const C=x.generateCssVar(i);v.value=T.css(C)},{deep:!0,immediate:!0}),u(q.designTokenContextKey,{token:d,rootCls:v}),(r||!a.value)&&(a.value=s.value),s},j=(o,n)=>{const r=[...new Set([...f(o),...f(n)])],c={};for(const t of r)c[t]=n[t]!==void 0?n[t]:o[t];return c};exports.keysOf=f;exports.provideGlobalConfig=K;exports.useGlobalConfig=p;