UNPKG

bootstrap-vue-next

Version:

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

1 lines 3.22 kB
{"version":3,"file":"index.mjs","sources":["../../../../src/plugins/tooltip/index.ts"],"sourcesContent":["import {markRaw, type Plugin, ref, toRef, watch} from 'vue'\nimport {tooltipPluginKey} from '../../utils/keys'\nimport type {\n PrivateOrchestratedTooltip,\n TooltipOrchestratorMapValue,\n TooltipOrchestratorShowParam,\n} from '../../types/ComponentOrchestratorTypes'\n\nexport const tooltipPlugin: Plugin = {\n install(app) {\n const tooltips = ref(new Map<symbol, TooltipOrchestratorMapValue>())\n\n /**\n * @returns {symbol} A symbol that corresponds to its unique id. You can pass this id to the hide function to force a Toast to hide\n */\n const show = (obj: TooltipOrchestratorShowParam): symbol => {\n const resolvedProps = toRef(obj.props)\n\n const _self = Symbol()\n\n watch(\n obj.ref,\n (newValue) => {\n if (!newValue) {\n tooltips.value.delete(_self)\n } else {\n tooltips.value.set(_self, {\n component: !obj.component ? undefined : markRaw(obj.component),\n props: {...resolvedProps.value, _modelValue: false, _reference: newValue},\n })\n }\n },\n {\n immediate: true,\n }\n )\n\n watch(resolvedProps, (newValue) => {\n const previous = tooltips.value.get(_self)\n if (!previous) return\n tooltips.value.set(_self, {\n component: !obj.component ? undefined : markRaw(obj.component),\n props: {...previous.props, ...newValue},\n })\n })\n\n return _self\n }\n\n /**\n * You can get the symbol param from the return value from the show method\n */\n const remove = (self: symbol) => {\n tooltips.value.delete(self)\n }\n\n const set = (self: symbol, val: Partial<PrivateOrchestratedTooltip>) => {\n const tip = tooltips.value.get(self)\n if (!tip?.props) return\n tip.props = {\n ...tip.props,\n ...val,\n }\n }\n\n app.provide(tooltipPluginKey, {\n tooltips,\n show,\n remove,\n set,\n })\n },\n}\n"],"names":[],"mappings":";;AAQO,MAAM,gBAAwB;AAAA,EACnC,QAAQ,KAAK;AACX,UAAM,WAAW,IAAQ,oBAAA,IAA0C,CAAA;AAK7D,UAAA,OAAO,CAAC,QAA8C;AACpD,YAAA,gBAAgB,MAAM,IAAI,KAAK;AAErC,YAAM,QAAQ;AAEd;AAAA,QACE,IAAI;AAAA,QACJ,CAAC,aAAa;AACZ,cAAI,CAAC,UAAU;AACJ,qBAAA,MAAM,OAAO,KAAK;AAAA,UAAA,OACtB;AACI,qBAAA,MAAM,IAAI,OAAO;AAAA,cACxB,WAAW,CAAC,IAAI,YAAY,SAAY,QAAQ,IAAI,SAAS;AAAA,cAC7D,OAAO,EAAC,GAAG,cAAc,OAAO,aAAa,OAAO,YAAY,SAAQ;AAAA,YAAA,CACzE;AAAA,UACH;AAAA,QACF;AAAA,QACA;AAAA,UACE,WAAW;AAAA,QACb;AAAA,MAAA;AAGI,YAAA,eAAe,CAAC,aAAa;AACjC,cAAM,WAAW,SAAS,MAAM,IAAI,KAAK;AACzC,YAAI,CAAC,SAAU;AACN,iBAAA,MAAM,IAAI,OAAO;AAAA,UACxB,WAAW,CAAC,IAAI,YAAY,SAAY,QAAQ,IAAI,SAAS;AAAA,UAC7D,OAAO,EAAC,GAAG,SAAS,OAAO,GAAG,SAAQ;AAAA,QAAA,CACvC;AAAA,MAAA,CACF;AAEM,aAAA;AAAA,IAAA;AAMH,UAAA,SAAS,CAAC,SAAiB;AACtB,eAAA,MAAM,OAAO,IAAI;AAAA,IAAA;AAGtB,UAAA,MAAM,CAAC,MAAc,QAA6C;AACtE,YAAM,MAAM,SAAS,MAAM,IAAI,IAAI;AAC/B,UAAA,EAAC,2BAAK,OAAO;AACjB,UAAI,QAAQ;AAAA,QACV,GAAG,IAAI;AAAA,QACP,GAAG;AAAA,MAAA;AAAA,IACL;AAGF,QAAI,QAAQ,kBAAkB;AAAA,MAC5B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD;AAAA,EACH;AACF;"}