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) • 2.5 kB
JavaScript
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),o=require("../../../keys-W3DrYQSP.js"),l={install(l){const t=e.ref(!1),a=e.ref(new Map),s=(o,l)=>{let t=()=>{};const a=new Promise((e=>{t=e}));return Object.assign(a,{id:o,ref:null,show(){return this.ref?(this.ref.show(),a):this.set({modelValue:!0})},hide(e){return this.ref?(this.ref.hide(e,!0),a):this.set({modelValue:!1})},toggle(){var e;return this.ref?(this.ref.toggle(),a):this.set({modelValue:!(null==(e=this.get())?void 0:e.modelValue)})},get:()=>l.value.get(o),set(t){var s;const r=l.value.get(o);if(r){const a={...e.toValue(r),...e.toValue(t)};r.modelValue!==a.modelValue&&(null==(s=r["onUpdate:modelValue"])||s.call(r,a.modelValue)),l.value.set(o,{...a,title:e.toValue(a.title),body:e.toValue(a.body),modelValue:e.toValue(a.modelValue)})}return a},async destroy(){var t,a;const s=l.value.get(o);s&&(null==(a=(t=s.promise).stop)||a.call(t),s.modelValue&&await new Promise((o=>{s.modelValue=!1;const l=s.onHidden;s.onHidden=e=>{null==l||l(e),o(e)},e.nextTick((()=>{var e;null==(e=s["onUpdate:modelValue"])||e.call(s,!1)}))})),l.value.delete(o))},async[Symbol.asyncDispose](){await this.destroy()}}),{value:a,resolve:t}},r=(o,l)=>{var r;if(!t.value)throw new Error("The BPopoverOrchestrator component must be mounted to use the popover controller");const{component:u,slots:n}=e.toValue(o);u&&(e.isRef(o)?o.value.component=e.markRaw(u):"object"==typeof o&&(o.component=e.markRaw(u))),n&&(e.isRef(o)?o.value.slots=e.markRaw(n):"object"==typeof o&&(o.slots=e.markRaw(n)));const i=e.toRef(o),d=(null==(r=i.value)?void 0:r.id)||Symbol("Popover controller"),m=s(d,a);return m.stop=e.watch(i,(t=>{const s={...e.toValue(t)},r={...a.value.get(d)||{}};for(const o in s)o.startsWith("on")?r[o]=s[o]:r[o]=e.toValue(s[o]);a.value.set(d,{...r,...void 0===r.modelValue&&{modelValue:!1},"onUpdate:modelValue":l=>{var t;null==(t=s["onUpdate:modelValue"])||t.call(s,l);const{modelValue:u}=e.toValue(o);if(e.isRef(o)&&!e.isRef(u)&&(o.value.modelValue=l),e.isRef(u)&&!e.isReadonly(u)&&(u.value=l),r.modelValue!==l){const e=a.value.get(d);e&&(e.modelValue=l)}},tooltip:l,promise:m})}),{immediate:!0,deep:!0}),e.onScopeDispose((()=>{var e,o;const l=a.value.get(d);l&&(null==(o=(e=l.promise.value).destroy)||o.call(e))}),!0),m.value};l.provide(o.popoverPluginKey,{_isOrchestratorInstalled:t,popovers:a,tooltip:e=>r(e,!0),popover:e=>r(e,!1)})}};exports.popoverPlugin=l;
//# sourceMappingURL=index.umd.js.map
;