UNPKG

bootstrap-vue-next

Version:

BootstrapVueNext is an early and lovely component library for Vue 3 & Nuxt 3 based on Bootstrap 5 and Typescript.

3 lines (2 loc) 1.79 kB
"use strict";const e=require("vue"),t=require("./keys-dS8HZUdm.js");function n(t,n){const r=e.getCurrentInstance();if(!r)throw new Error(`[Bvn] ${t} must be called from inside a setup function`);return r}const r=e=>null!==e&&"object"==typeof e&&!Array.isArray(e);function o(e={},t={},n){const u={};for(const r in e)u[r]=e[r];for(const l in t){const s=e[l],i=t[l];r(s)&&r(i)?u[l]=o(s,i,n):Array.isArray(s)&&Array.isArray(i)&&n?u[l]=n(s,i):u[l]=i}return u}const u=(e,t)=>{var n,r;return void 0!==(null==(n=e.props)?void 0:n[t])||void 0!==(null==(r=e.props)?void 0:r[((e="")=>e.replace(/[^a-z]/gi,"-").replace(/\B([A-Z])/g,"-$1").toLowerCase())(t)])};function l(r={},l){const s=e.inject(t.defaultsKey,e.ref({})),i=n("useDefaults");if(!(l=l??i.type.name??i.type.__name))throw new Error("[Bvn] Could not determine component name");const a=e.computed((()=>{var e;return null==(e=s.value)?void 0:e[r._as??l]})),c=new Proxy(r,{get(e,t){var n,r,o,l;const c=Reflect.get(e,t);return"class"===t||"style"===t?[null==(n=a.value)?void 0:n[t],c].filter((e=>null!=e)):"string"!=typeof t||u(i.vnode,t)?c:(null==(r=a.value)?void 0:r[t])??(null==(l=null==(o=s.value)?void 0:o.global)?void 0:l[t])??c}}),v=e.shallowRef();return e.watchEffect((()=>{if(a.value){const e=Object.entries(a.value).filter((([e])=>e.startsWith(e[0].toUpperCase())));v.value=e.length?Object.fromEntries(e):void 0}else v.value=void 0})),{props:c,provideSubDefaults:function(){const r=function(e,t=n("injectSelf")){const{provides:r}=t;if(r&&e in r)return r[e]}(t.defaultsKey,i);e.provide(t.defaultsKey,e.computed((()=>v.value?o((null==r?void 0:r.value)??{},v.value):null==r?void 0:r.value)))}}}exports.useDefaults=function(e,t){const{props:n,provideSubDefaults:r}=l(e,t);return r(),n}; //# sourceMappingURL=useDefaults-DA3S59IE.js.map