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.72 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../constants-B1zBgSOo.js"),t=require("vue"),r=require("../../../utils-CWuL--vJ.js"),o=require("../../../keys-D59bcWpQ.js"),s=(t,r)=>{const{modifiers:o,arg:s,value:i}=t,a=Object.keys(o||{}),n="string"==typeof i?i.split(e.RX_SPACE_SPLIT):i;if("a"===r.tagName.toLowerCase()){const t=r.getAttribute("href")||"";e.RX_HASH_ID.test(t)&&a.push(t.replace(e.RX_HASH,""))}return Array.prototype.concat.apply([],[s,n]).forEach(e=>"string"==typeof e&&a.push(e)),a.filter((e,t,r)=>e&&r.indexOf(e)===t)},i=(e,i,a)=>{const n=s(i,e);if(0===n.length)return;const l=r.findProvides(i,a),c=l[o.showHideRegistryKey]?.values;if(e.dataset.bvtoggle){const r=(e.dataset.bvtoggle||"").split(" ");if(0===r.length)return;for(const o of r){const r=c?.value.get(o);r&&(n.includes(o)||t.toValue(r).unregisterTrigger("click",e,!1))}}e.dataset.bvtoggle=n.join(" "),n.forEach(async r=>{let o=0;for(;o<5;){const s=c?.value.get(r);if(!s){if(o++,await new Promise(e=>setTimeout(e,100)),o<4)continue;console.warn(`[v-b-toggle] Target with ID ${r} not found`);break}t.toValue(s).unregisterTrigger("click",e,!1),t.toValue(s).registerTrigger("click",e);break}}),e.setAttribute("aria-controls",n.join(" "))},a={mounted:i,updated:i,unmounted:(e,i,a)=>{const n=s(i,e);if(0===n.length)return;const l=r.findProvides(i,a),c=l[o.showHideRegistryKey]?.values;n.forEach(r=>{const o=c?.value.get(r);o&&t.toValue(o).unregisterTrigger("click",e,!1)}),e.removeAttribute("aria-controls"),e.removeAttribute("aria-expanded"),e.classList.remove("collapsed"),e.classList.remove("not-collapsed"),delete e.dataset.bvtoggle}};exports.vBToggle=a;
//# sourceMappingURL=index.umd.js.map