@vue-interface/btn-dropdown 0.9.14 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/btn-dropdown.es.js +29 -88
- package/dist/btn-dropdown.umd.js +1 -1
- package/index.js +5 -0
- package/package.json +4 -3
- package/src/BtnDropdown.vue +112 -0
- package/src/BtnDropdownAction.vue +38 -0
- package/src/BtnDropdownSingle.vue +43 -0
- package/src/BtnDropdownSplit.vue +73 -0
- package/src/DropdownHandler.js +421 -0
package/dist/btn-dropdown.es.js
CHANGED
|
@@ -774,7 +774,7 @@ function flip(_ref) {
|
|
|
774
774
|
}, []);
|
|
775
775
|
var referenceRect = state.rects.reference;
|
|
776
776
|
var popperRect = state.rects.popper;
|
|
777
|
-
var checksMap = new Map();
|
|
777
|
+
var checksMap = /* @__PURE__ */ new Map();
|
|
778
778
|
var makeFallbackChecks = true;
|
|
779
779
|
var firstFittingPlacement = placements2[0];
|
|
780
780
|
for (var i = 0; i < placements2.length; i++) {
|
|
@@ -1103,8 +1103,8 @@ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
|
|
|
1103
1103
|
};
|
|
1104
1104
|
}
|
|
1105
1105
|
function order(modifiers) {
|
|
1106
|
-
var map = new Map();
|
|
1107
|
-
var visited = new Set();
|
|
1106
|
+
var map = /* @__PURE__ */ new Map();
|
|
1107
|
+
var visited = /* @__PURE__ */ new Set();
|
|
1108
1108
|
var result = [];
|
|
1109
1109
|
modifiers.forEach(function(modifier) {
|
|
1110
1110
|
map.set(modifier.name, modifier);
|
|
@@ -1388,7 +1388,7 @@ var render$5 = function() {
|
|
|
1388
1388
|
}, [_vm._t("default")], 2);
|
|
1389
1389
|
};
|
|
1390
1390
|
var staticRenderFns$5 = [];
|
|
1391
|
-
function normalizeComponent$
|
|
1391
|
+
function normalizeComponent$2(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
|
|
1392
1392
|
var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
|
|
1393
1393
|
if (render2) {
|
|
1394
1394
|
options.render = render2;
|
|
@@ -1439,7 +1439,7 @@ function normalizeComponent$3(scriptExports, render2, staticRenderFns2, function
|
|
|
1439
1439
|
options
|
|
1440
1440
|
};
|
|
1441
1441
|
}
|
|
1442
|
-
const __vue2_script$
|
|
1442
|
+
const __vue2_script$6 = {
|
|
1443
1443
|
name: "Btn",
|
|
1444
1444
|
mixins: [Sizeable$1, Variant],
|
|
1445
1445
|
props: {
|
|
@@ -1470,15 +1470,15 @@ const __vue2_script$5 = {
|
|
|
1470
1470
|
}
|
|
1471
1471
|
}
|
|
1472
1472
|
};
|
|
1473
|
-
const __cssModules$
|
|
1474
|
-
var __component__$
|
|
1475
|
-
function __vue2_injectStyles$
|
|
1476
|
-
for (let o in __cssModules$
|
|
1477
|
-
this[o] = __cssModules$
|
|
1473
|
+
const __cssModules$6 = {};
|
|
1474
|
+
var __component__$6 = /* @__PURE__ */ normalizeComponent$2(__vue2_script$6, render$5, staticRenderFns$5, false, __vue2_injectStyles$6, null, null, null);
|
|
1475
|
+
function __vue2_injectStyles$6(context) {
|
|
1476
|
+
for (let o in __cssModules$6) {
|
|
1477
|
+
this[o] = __cssModules$6[o];
|
|
1478
1478
|
}
|
|
1479
1479
|
}
|
|
1480
1480
|
var Btn = /* @__PURE__ */ function() {
|
|
1481
|
-
return __component__$
|
|
1481
|
+
return __component__$6.exports;
|
|
1482
1482
|
}();
|
|
1483
1483
|
var Sizeable = {
|
|
1484
1484
|
props: {
|
|
@@ -1515,7 +1515,7 @@ var render$2$1 = function() {
|
|
|
1515
1515
|
}, [_vm._t("default")], 2);
|
|
1516
1516
|
};
|
|
1517
1517
|
var staticRenderFns$2$1 = [];
|
|
1518
|
-
function normalizeComponent$
|
|
1518
|
+
function normalizeComponent$1(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
|
|
1519
1519
|
var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
|
|
1520
1520
|
if (render2) {
|
|
1521
1521
|
options.render = render2;
|
|
@@ -1591,7 +1591,7 @@ const __vue2_script$2$1 = {
|
|
|
1591
1591
|
}
|
|
1592
1592
|
};
|
|
1593
1593
|
const __cssModules$2$1 = {};
|
|
1594
|
-
var __component__$2$1 = /* @__PURE__ */ normalizeComponent$
|
|
1594
|
+
var __component__$2$1 = /* @__PURE__ */ normalizeComponent$1(__vue2_script$2$1, render$2$1, staticRenderFns$2$1, false, __vue2_injectStyles$2$1, null, null, null);
|
|
1595
1595
|
function __vue2_injectStyles$2$1(context) {
|
|
1596
1596
|
for (let o in __cssModules$2$1) {
|
|
1597
1597
|
this[o] = __cssModules$2$1[o];
|
|
@@ -1600,7 +1600,7 @@ function __vue2_injectStyles$2$1(context) {
|
|
|
1600
1600
|
var BtnGroup = /* @__PURE__ */ function() {
|
|
1601
1601
|
return __component__$2$1.exports;
|
|
1602
1602
|
}();
|
|
1603
|
-
function normalizeComponent
|
|
1603
|
+
function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
|
|
1604
1604
|
var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
|
|
1605
1605
|
if (render2) {
|
|
1606
1606
|
options.render = render2;
|
|
@@ -1667,13 +1667,11 @@ function wrap(wrapper, fn2) {
|
|
|
1667
1667
|
function listener(vnode, key) {
|
|
1668
1668
|
return vnode.data.on[key] || vnode.componentOptions && vnode.componentOptions.listeners && vnode.componentOptions.listeners[key];
|
|
1669
1669
|
}
|
|
1670
|
-
const __vue2_script$
|
|
1670
|
+
const __vue2_script$5 = {
|
|
1671
1671
|
functional: true,
|
|
1672
1672
|
render(h, context) {
|
|
1673
1673
|
context.children.filter((vnode) => !!vnode.tag).forEach((vnode, i) => {
|
|
1674
|
-
vnode.data = Object.assign({
|
|
1675
|
-
staticClass: void 0
|
|
1676
|
-
}, vnode.data);
|
|
1674
|
+
vnode.data = Object.assign({ staticClass: void 0 }, vnode.data);
|
|
1677
1675
|
if (!vnode.data.on) {
|
|
1678
1676
|
vnode.data.on = {};
|
|
1679
1677
|
}
|
|
@@ -1690,7 +1688,7 @@ const __vue2_script$1$1 = {
|
|
|
1690
1688
|
} else if (vnode.tag === "hr" && !isDropdownDivider) {
|
|
1691
1689
|
vnode.tag = "div";
|
|
1692
1690
|
appendClass(vnode, "dropdown-divider");
|
|
1693
|
-
} else if (!isDropdownItem) {
|
|
1691
|
+
} else if (!isDropdownItem && !isDropdownDivider) {
|
|
1694
1692
|
appendClass(vnode, "dropdown-item");
|
|
1695
1693
|
}
|
|
1696
1694
|
});
|
|
@@ -1698,31 +1696,25 @@ const __vue2_script$1$1 = {
|
|
|
1698
1696
|
}
|
|
1699
1697
|
};
|
|
1700
1698
|
let __vue2_render, __vue2_staticRenderFns;
|
|
1701
|
-
const __cssModules$
|
|
1702
|
-
var __component__$
|
|
1703
|
-
function __vue2_injectStyles$
|
|
1704
|
-
for (let o in __cssModules$
|
|
1705
|
-
this[o] = __cssModules$
|
|
1699
|
+
const __cssModules$5 = {};
|
|
1700
|
+
var __component__$5 = /* @__PURE__ */ normalizeComponent(__vue2_script$5, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$5, null, null, null);
|
|
1701
|
+
function __vue2_injectStyles$5(context) {
|
|
1702
|
+
for (let o in __cssModules$5) {
|
|
1703
|
+
this[o] = __cssModules$5[o];
|
|
1706
1704
|
}
|
|
1707
1705
|
}
|
|
1708
1706
|
var DropdownMenuItems = /* @__PURE__ */ function() {
|
|
1709
|
-
return __component__$
|
|
1707
|
+
return __component__$5.exports;
|
|
1710
1708
|
}();
|
|
1711
1709
|
var render$4 = function() {
|
|
1712
1710
|
var _vm = this;
|
|
1713
1711
|
var _h = _vm.$createElement;
|
|
1714
1712
|
var _c = _vm._self._c || _h;
|
|
1715
|
-
return _c("div", {
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
"show": _vm.show
|
|
1721
|
-
},
|
|
1722
|
-
attrs: {
|
|
1723
|
-
"aria-labelledby": _vm.$attrs.id
|
|
1724
|
-
}
|
|
1725
|
-
}, [_c("dropdown-menu-items", [_vm._t("default")], 2)], 1);
|
|
1713
|
+
return _c("div", { staticClass: "dropdown-menu", class: {
|
|
1714
|
+
"dropdown-menu-left": _vm.align === "left",
|
|
1715
|
+
"dropdown-menu-right": _vm.align === "right",
|
|
1716
|
+
"show": _vm.show
|
|
1717
|
+
}, attrs: { "aria-labelledby": _vm.$attrs.id } }, [_c("dropdown-menu-items", [_vm._t("default")], 2)], 1);
|
|
1726
1718
|
};
|
|
1727
1719
|
var staticRenderFns$4 = [];
|
|
1728
1720
|
const __vue2_script$4 = {
|
|
@@ -1742,7 +1734,7 @@ const __vue2_script$4 = {
|
|
|
1742
1734
|
}
|
|
1743
1735
|
};
|
|
1744
1736
|
const __cssModules$4 = {};
|
|
1745
|
-
var __component__$4 = /* @__PURE__ */ normalizeComponent
|
|
1737
|
+
var __component__$4 = /* @__PURE__ */ normalizeComponent(__vue2_script$4, render$4, staticRenderFns$4, false, __vue2_injectStyles$4, null, null, null);
|
|
1746
1738
|
function __vue2_injectStyles$4(context) {
|
|
1747
1739
|
for (let o in __cssModules$4) {
|
|
1748
1740
|
this[o] = __cssModules$4[o];
|
|
@@ -1758,57 +1750,6 @@ var render$3 = function() {
|
|
|
1758
1750
|
return _c(_vm.is, _vm._b({ tag: "component", attrs: { "id": _vm.id, "aria-haspopup": "true", "aria-expanded": _vm.expanded, "type": _vm.is === "button" ? "button" : void 0 } }, "component", _vm.to ? { to: _vm.to } : { href: _vm.href }, false), [_vm._t("default")], 2);
|
|
1759
1751
|
};
|
|
1760
1752
|
var staticRenderFns$3 = [];
|
|
1761
|
-
function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
|
|
1762
|
-
var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
|
|
1763
|
-
if (render2) {
|
|
1764
|
-
options.render = render2;
|
|
1765
|
-
options.staticRenderFns = staticRenderFns2;
|
|
1766
|
-
options._compiled = true;
|
|
1767
|
-
}
|
|
1768
|
-
if (functionalTemplate) {
|
|
1769
|
-
options.functional = true;
|
|
1770
|
-
}
|
|
1771
|
-
if (scopeId) {
|
|
1772
|
-
options._scopeId = "data-v-" + scopeId;
|
|
1773
|
-
}
|
|
1774
|
-
var hook;
|
|
1775
|
-
if (moduleIdentifier) {
|
|
1776
|
-
hook = function(context) {
|
|
1777
|
-
context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;
|
|
1778
|
-
if (!context && typeof __VUE_SSR_CONTEXT__ !== "undefined") {
|
|
1779
|
-
context = __VUE_SSR_CONTEXT__;
|
|
1780
|
-
}
|
|
1781
|
-
if (injectStyles) {
|
|
1782
|
-
injectStyles.call(this, context);
|
|
1783
|
-
}
|
|
1784
|
-
if (context && context._registeredComponents) {
|
|
1785
|
-
context._registeredComponents.add(moduleIdentifier);
|
|
1786
|
-
}
|
|
1787
|
-
};
|
|
1788
|
-
options._ssrRegister = hook;
|
|
1789
|
-
} else if (injectStyles) {
|
|
1790
|
-
hook = shadowMode ? function() {
|
|
1791
|
-
injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);
|
|
1792
|
-
} : injectStyles;
|
|
1793
|
-
}
|
|
1794
|
-
if (hook) {
|
|
1795
|
-
if (options.functional) {
|
|
1796
|
-
options._injectStyles = hook;
|
|
1797
|
-
var originalRender = options.render;
|
|
1798
|
-
options.render = function renderWithStyleInjection(h, context) {
|
|
1799
|
-
hook.call(context);
|
|
1800
|
-
return originalRender(h, context);
|
|
1801
|
-
};
|
|
1802
|
-
} else {
|
|
1803
|
-
var existing = options.beforeCreate;
|
|
1804
|
-
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
|
1805
|
-
}
|
|
1806
|
-
}
|
|
1807
|
-
return {
|
|
1808
|
-
exports: scriptExports,
|
|
1809
|
-
options
|
|
1810
|
-
};
|
|
1811
|
-
}
|
|
1812
1753
|
const __vue2_script$3 = {
|
|
1813
1754
|
props: {
|
|
1814
1755
|
expanded: {
|
package/dist/btn-dropdown.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(H,O){typeof exports=="object"&&typeof module!="undefined"?O(exports):typeof define=="function"&&define.amd?define(["exports"],O):(H=typeof globalThis!="undefined"?globalThis:H||self,O(H.BtnDropdown={}))})(this,function(H){"use strict";var O="top",A="bottom",D="right",P="left",wt="auto",tt=[O,A,D,P],Y="start",et="end",be="clippingParents",Dt="viewport",rt="popper",_e="reference",Tt=tt.reduce(function(t,e){return t.concat([e+"-"+Y,e+"-"+et])},[]),jt=[].concat(tt,[wt]).reduce(function(t,e){return t.concat([e,e+"-"+Y,e+"-"+et])},[]),ye="beforeRead",we="read",$e="afterRead",xe="beforeMain",Ce="main",Oe="afterMain",ke="beforeWrite",Se="write",Be="afterWrite",Pe=[ye,we,$e,xe,Ce,Oe,ke,Se,Be];function F(t){return t?(t.nodeName||"").toLowerCase():null}function j(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function G(t){var e=j(t).Element;return t instanceof e||t instanceof Element}function T(t){var e=j(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function zt(t){if(typeof ShadowRoot=="undefined")return!1;var e=j(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Ee(t){var e=t.state;Object.keys(e.elements).forEach(function(r){var i=e.styles[r]||{},n=e.attributes[r]||{},s=e.elements[r];!T(s)||!F(s)||(Object.assign(s.style,i),Object.keys(n).forEach(function(o){var f=n[o];f===!1?s.removeAttribute(o):s.setAttribute(o,f===!0?"":f)}))})}function Re(t){var e=t.state,r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,r.popper),e.styles=r,e.elements.arrow&&Object.assign(e.elements.arrow.style,r.arrow),function(){Object.keys(e.elements).forEach(function(i){var n=e.elements[i],s=e.attributes[i]||{},o=Object.keys(e.styles.hasOwnProperty(i)?e.styles[i]:r[i]),f=o.reduce(function(a,l){return a[l]="",a},{});!T(n)||!F(n)||(Object.assign(n.style,f),Object.keys(s).forEach(function(a){n.removeAttribute(a)}))})}}var Ae={name:"applyStyles",enabled:!0,phase:"write",fn:Ee,effect:Re,requires:["computeStyles"]};function L(t){return t.split("-")[0]}var X=Math.max,ct=Math.min,J=Math.round;function K(t,e){e===void 0&&(e=!1);var r=t.getBoundingClientRect(),i=1,n=1;if(T(t)&&e){var s=t.offsetHeight,o=t.offsetWidth;o>0&&(i=J(r.width)/o||1),s>0&&(n=J(r.height)/s||1)}return{width:r.width/i,height:r.height/n,top:r.top/n,right:r.right/i,bottom:r.bottom/n,left:r.left/i,x:r.left/i,y:r.top/n}}function $t(t){var e=K(t),r=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-r)<=1&&(r=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:r,height:i}}function Mt(t,e){var r=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(r&&zt(r)){var i=e;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function W(t){return j(t).getComputedStyle(t)}function De(t){return["table","td","th"].indexOf(F(t))>=0}function N(t){return((G(t)?t.ownerDocument:t.document)||window.document).documentElement}function pt(t){return F(t)==="html"?t:t.assignedSlot||t.parentNode||(zt(t)?t.host:null)||N(t)}function Ft(t){return!T(t)||W(t).position==="fixed"?null:t.offsetParent}function Te(t){var e=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&T(t)){var i=W(t);if(i.position==="fixed")return null}for(var n=pt(t);T(n)&&["html","body"].indexOf(F(n))<0;){var s=W(n);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||e&&s.willChange==="filter"||e&&s.filter&&s.filter!=="none")return n;n=n.parentNode}return null}function nt(t){for(var e=j(t),r=Ft(t);r&&De(r)&&W(r).position==="static";)r=Ft(r);return r&&(F(r)==="html"||F(r)==="body"&&W(r).position==="static")?e:r||Te(t)||e}function xt(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function it(t,e,r){return X(t,ct(e,r))}function je(t,e,r){var i=it(t,e,r);return i>r?r:i}function Lt(){return{top:0,right:0,bottom:0,left:0}}function Wt(t){return Object.assign({},Lt(),t)}function Nt(t,e){return e.reduce(function(r,i){return r[i]=t,r},{})}var ze=function(e,r){return e=typeof e=="function"?e(Object.assign({},r.rects,{placement:r.placement})):e,Wt(typeof e!="number"?e:Nt(e,tt))};function Me(t){var e,r=t.state,i=t.name,n=t.options,s=r.elements.arrow,o=r.modifiersData.popperOffsets,f=L(r.placement),a=xt(f),l=[P,D].indexOf(f)>=0,u=l?"height":"width";if(!(!s||!o)){var d=ze(n.padding,r),c=$t(s),p=a==="y"?O:P,v=a==="y"?A:D,m=r.rects.reference[u]+r.rects.reference[a]-o[a]-r.rects.popper[u],g=o[a]-r.rects.reference[a],y=nt(s),w=y?a==="y"?y.clientHeight||0:y.clientWidth||0:0,$=m/2-g/2,h=d[p],x=w-c[u]-d[v],b=w/2-c[u]/2+$,_=it(h,b,x),C=a;r.modifiersData[i]=(e={},e[C]=_,e.centerOffset=_-b,e)}}function Fe(t){var e=t.state,r=t.options,i=r.element,n=i===void 0?"[data-popper-arrow]":i;n!=null&&(typeof n=="string"&&(n=e.elements.popper.querySelector(n),!n)||!Mt(e.elements.popper,n)||(e.elements.arrow=n))}var Le={name:"arrow",enabled:!0,phase:"main",fn:Me,effect:Fe,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Q(t){return t.split("-")[1]}var We={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ne(t){var e=t.x,r=t.y,i=window,n=i.devicePixelRatio||1;return{x:J(e*n)/n||0,y:J(r*n)/n||0}}function Vt(t){var e,r=t.popper,i=t.popperRect,n=t.placement,s=t.variation,o=t.offsets,f=t.position,a=t.gpuAcceleration,l=t.adaptive,u=t.roundOffsets,d=t.isFixed,c=o.x,p=c===void 0?0:c,v=o.y,m=v===void 0?0:v,g=typeof u=="function"?u({x:p,y:m}):{x:p,y:m};p=g.x,m=g.y;var y=o.hasOwnProperty("x"),w=o.hasOwnProperty("y"),$=P,h=O,x=window;if(l){var b=nt(r),_="clientHeight",C="clientWidth";if(b===j(r)&&(b=N(r),W(b).position!=="static"&&f==="absolute"&&(_="scrollHeight",C="scrollWidth")),b=b,n===O||(n===P||n===D)&&s===et){h=A;var B=d&&x.visualViewport?x.visualViewport.height:b[_];m-=B-i.height,m*=a?1:-1}if(n===P||(n===O||n===A)&&s===et){$=D;var k=d&&x.visualViewport?x.visualViewport.width:b[C];p-=k-i.width,p*=a?1:-1}}var S=Object.assign({position:f},l&&We),z=u===!0?Ne({x:p,y:m}):{x:p,y:m};if(p=z.x,m=z.y,a){var E;return Object.assign({},S,(E={},E[h]=w?"0":"",E[$]=y?"0":"",E.transform=(x.devicePixelRatio||1)<=1?"translate("+p+"px, "+m+"px)":"translate3d("+p+"px, "+m+"px, 0)",E))}return Object.assign({},S,(e={},e[h]=w?m+"px":"",e[$]=y?p+"px":"",e.transform="",e))}function Ve(t){var e=t.state,r=t.options,i=r.gpuAcceleration,n=i===void 0?!0:i,s=r.adaptive,o=s===void 0?!0:s,f=r.roundOffsets,a=f===void 0?!0:f,l={placement:L(e.placement),variation:Q(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:n,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,Vt(Object.assign({},l,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:o,roundOffsets:a})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,Vt(Object.assign({},l,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:a})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}var He={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Ve,data:{}},dt={passive:!0};function Xe(t){var e=t.state,r=t.instance,i=t.options,n=i.scroll,s=n===void 0?!0:n,o=i.resize,f=o===void 0?!0:o,a=j(e.elements.popper),l=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&l.forEach(function(u){u.addEventListener("scroll",r.update,dt)}),f&&a.addEventListener("resize",r.update,dt),function(){s&&l.forEach(function(u){u.removeEventListener("scroll",r.update,dt)}),f&&a.removeEventListener("resize",r.update,dt)}}var qe={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Xe,data:{}},Ue={left:"right",right:"left",bottom:"top",top:"bottom"};function vt(t){return t.replace(/left|right|bottom|top/g,function(e){return Ue[e]})}var Ie={start:"end",end:"start"};function Ht(t){return t.replace(/start|end/g,function(e){return Ie[e]})}function Ct(t){var e=j(t),r=e.pageXOffset,i=e.pageYOffset;return{scrollLeft:r,scrollTop:i}}function Ot(t){return K(N(t)).left+Ct(t).scrollLeft}function Ye(t){var e=j(t),r=N(t),i=e.visualViewport,n=r.clientWidth,s=r.clientHeight,o=0,f=0;return i&&(n=i.width,s=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=i.offsetLeft,f=i.offsetTop)),{width:n,height:s,x:o+Ot(t),y:f}}function Ge(t){var e,r=N(t),i=Ct(t),n=(e=t.ownerDocument)==null?void 0:e.body,s=X(r.scrollWidth,r.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),o=X(r.scrollHeight,r.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),f=-i.scrollLeft+Ot(t),a=-i.scrollTop;return W(n||r).direction==="rtl"&&(f+=X(r.clientWidth,n?n.clientWidth:0)-s),{width:s,height:o,x:f,y:a}}function kt(t){var e=W(t),r=e.overflow,i=e.overflowX,n=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+n+i)}function Xt(t){return["html","body","#document"].indexOf(F(t))>=0?t.ownerDocument.body:T(t)&&kt(t)?t:Xt(pt(t))}function at(t,e){var r;e===void 0&&(e=[]);var i=Xt(t),n=i===((r=t.ownerDocument)==null?void 0:r.body),s=j(i),o=n?[s].concat(s.visualViewport||[],kt(i)?i:[]):i,f=e.concat(o);return n?f:f.concat(at(pt(o)))}function St(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Je(t){var e=K(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}function qt(t,e){return e===Dt?St(Ye(t)):G(e)?Je(e):St(Ge(N(t)))}function Ke(t){var e=at(pt(t)),r=["absolute","fixed"].indexOf(W(t).position)>=0,i=r&&T(t)?nt(t):t;return G(i)?e.filter(function(n){return G(n)&&Mt(n,i)&&F(n)!=="body"}):[]}function Qe(t,e,r){var i=e==="clippingParents"?Ke(t):[].concat(e),n=[].concat(i,[r]),s=n[0],o=n.reduce(function(f,a){var l=qt(t,a);return f.top=X(l.top,f.top),f.right=ct(l.right,f.right),f.bottom=ct(l.bottom,f.bottom),f.left=X(l.left,f.left),f},qt(t,s));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function Ut(t){var e=t.reference,r=t.element,i=t.placement,n=i?L(i):null,s=i?Q(i):null,o=e.x+e.width/2-r.width/2,f=e.y+e.height/2-r.height/2,a;switch(n){case O:a={x:o,y:e.y-r.height};break;case A:a={x:o,y:e.y+e.height};break;case D:a={x:e.x+e.width,y:f};break;case P:a={x:e.x-r.width,y:f};break;default:a={x:e.x,y:e.y}}var l=n?xt(n):null;if(l!=null){var u=l==="y"?"height":"width";switch(s){case Y:a[l]=a[l]-(e[u]/2-r[u]/2);break;case et:a[l]=a[l]+(e[u]/2-r[u]/2);break}}return a}function ot(t,e){e===void 0&&(e={});var r=e,i=r.placement,n=i===void 0?t.placement:i,s=r.boundary,o=s===void 0?be:s,f=r.rootBoundary,a=f===void 0?Dt:f,l=r.elementContext,u=l===void 0?rt:l,d=r.altBoundary,c=d===void 0?!1:d,p=r.padding,v=p===void 0?0:p,m=Wt(typeof v!="number"?v:Nt(v,tt)),g=u===rt?_e:rt,y=t.rects.popper,w=t.elements[c?g:u],$=Qe(G(w)?w:w.contextElement||N(t.elements.popper),o,a),h=K(t.elements.reference),x=Ut({reference:h,element:y,strategy:"absolute",placement:n}),b=St(Object.assign({},y,x)),_=u===rt?b:h,C={top:$.top-_.top+m.top,bottom:_.bottom-$.bottom+m.bottom,left:$.left-_.left+m.left,right:_.right-$.right+m.right},B=t.modifiersData.offset;if(u===rt&&B){var k=B[n];Object.keys(C).forEach(function(S){var z=[D,A].indexOf(S)>=0?1:-1,E=[O,A].indexOf(S)>=0?"y":"x";C[S]+=k[E]*z})}return C}function Ze(t,e){e===void 0&&(e={});var r=e,i=r.placement,n=r.boundary,s=r.rootBoundary,o=r.padding,f=r.flipVariations,a=r.allowedAutoPlacements,l=a===void 0?jt:a,u=Q(i),d=u?f?Tt:Tt.filter(function(v){return Q(v)===u}):tt,c=d.filter(function(v){return l.indexOf(v)>=0});c.length===0&&(c=d);var p=c.reduce(function(v,m){return v[m]=ot(t,{placement:m,boundary:n,rootBoundary:s,padding:o})[L(m)],v},{});return Object.keys(p).sort(function(v,m){return p[v]-p[m]})}function tr(t){if(L(t)===wt)return[];var e=vt(t);return[Ht(t),e,Ht(e)]}function er(t){var e=t.state,r=t.options,i=t.name;if(!e.modifiersData[i]._skip){for(var n=r.mainAxis,s=n===void 0?!0:n,o=r.altAxis,f=o===void 0?!0:o,a=r.fallbackPlacements,l=r.padding,u=r.boundary,d=r.rootBoundary,c=r.altBoundary,p=r.flipVariations,v=p===void 0?!0:p,m=r.allowedAutoPlacements,g=e.options.placement,y=L(g),w=y===g,$=a||(w||!v?[vt(g)]:tr(g)),h=[g].concat($).reduce(function(Z,V){return Z.concat(L(V)===wt?Ze(e,{placement:V,boundary:u,rootBoundary:d,padding:l,flipVariations:v,allowedAutoPlacements:m}):V)},[]),x=e.rects.reference,b=e.rects.popper,_=new Map,C=!0,B=h[0],k=0;k<h.length;k++){var S=h[k],z=L(S),E=Q(S)===Y,st=[O,A].indexOf(z)>=0,lt=st?"width":"height",R=ot(e,{placement:S,boundary:u,rootBoundary:d,altBoundary:c,padding:l}),M=st?E?D:P:E?A:O;x[lt]>b[lt]&&(M=vt(M));var mt=vt(M),q=[];if(s&&q.push(R[z]<=0),f&&q.push(R[M]<=0,R[mt]<=0),q.every(function(Z){return Z})){B=S,C=!1;break}_.set(S,q)}if(C)for(var gt=v?3:1,Pt=function(V){var ut=h.find(function(_t){var U=_.get(_t);if(U)return U.slice(0,V).every(function(Et){return Et})});if(ut)return B=ut,"break"},ft=gt;ft>0;ft--){var bt=Pt(ft);if(bt==="break")break}e.placement!==B&&(e.modifiersData[i]._skip=!0,e.placement=B,e.reset=!0)}}var rr={name:"flip",enabled:!0,phase:"main",fn:er,requiresIfExists:["offset"],data:{_skip:!1}};function It(t,e,r){return r===void 0&&(r={x:0,y:0}),{top:t.top-e.height-r.y,right:t.right-e.width+r.x,bottom:t.bottom-e.height+r.y,left:t.left-e.width-r.x}}function Yt(t){return[O,D,A,P].some(function(e){return t[e]>=0})}function nr(t){var e=t.state,r=t.name,i=e.rects.reference,n=e.rects.popper,s=e.modifiersData.preventOverflow,o=ot(e,{elementContext:"reference"}),f=ot(e,{altBoundary:!0}),a=It(o,i),l=It(f,n,s),u=Yt(a),d=Yt(l);e.modifiersData[r]={referenceClippingOffsets:a,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var ir={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:nr};function ar(t,e,r){var i=L(t),n=[P,O].indexOf(i)>=0?-1:1,s=typeof r=="function"?r(Object.assign({},e,{placement:t})):r,o=s[0],f=s[1];return o=o||0,f=(f||0)*n,[P,D].indexOf(i)>=0?{x:f,y:o}:{x:o,y:f}}function or(t){var e=t.state,r=t.options,i=t.name,n=r.offset,s=n===void 0?[0,0]:n,o=jt.reduce(function(u,d){return u[d]=ar(d,e.rects,s),u},{}),f=o[e.placement],a=f.x,l=f.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=a,e.modifiersData.popperOffsets.y+=l),e.modifiersData[i]=o}var sr={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:or};function lr(t){var e=t.state,r=t.name;e.modifiersData[r]=Ut({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}var fr={name:"popperOffsets",enabled:!0,phase:"read",fn:lr,data:{}};function ur(t){return t==="x"?"y":"x"}function cr(t){var e=t.state,r=t.options,i=t.name,n=r.mainAxis,s=n===void 0?!0:n,o=r.altAxis,f=o===void 0?!1:o,a=r.boundary,l=r.rootBoundary,u=r.altBoundary,d=r.padding,c=r.tether,p=c===void 0?!0:c,v=r.tetherOffset,m=v===void 0?0:v,g=ot(e,{boundary:a,rootBoundary:l,padding:d,altBoundary:u}),y=L(e.placement),w=Q(e.placement),$=!w,h=xt(y),x=ur(h),b=e.modifiersData.popperOffsets,_=e.rects.reference,C=e.rects.popper,B=typeof m=="function"?m(Object.assign({},e.rects,{placement:e.placement})):m,k=typeof B=="number"?{mainAxis:B,altAxis:B}:Object.assign({mainAxis:0,altAxis:0},B),S=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,z={x:0,y:0};if(!!b){if(s){var E,st=h==="y"?O:P,lt=h==="y"?A:D,R=h==="y"?"height":"width",M=b[h],mt=M+g[st],q=M-g[lt],gt=p?-C[R]/2:0,Pt=w===Y?_[R]:C[R],ft=w===Y?-C[R]:-_[R],bt=e.elements.arrow,Z=p&&bt?$t(bt):{width:0,height:0},V=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:Lt(),ut=V[st],_t=V[lt],U=it(0,_[R],Z[R]),Et=$?_[R]/2-gt-U-ut-k.mainAxis:Pt-U-ut-k.mainAxis,Cn=$?-_[R]/2+gt+U+_t+k.mainAxis:ft+U+_t+k.mainAxis,Rt=e.elements.arrow&&nt(e.elements.arrow),On=Rt?h==="y"?Rt.clientTop||0:Rt.clientLeft||0:0,fe=(E=S==null?void 0:S[h])!=null?E:0,kn=M+Et-fe-On,Sn=M+Cn-fe,ue=it(p?ct(mt,kn):mt,M,p?X(q,Sn):q);b[h]=ue,z[h]=ue-M}if(f){var ce,Bn=h==="x"?O:P,Pn=h==="x"?A:D,I=b[x],yt=x==="y"?"height":"width",pe=I+g[Bn],de=I-g[Pn],At=[O,P].indexOf(y)!==-1,ve=(ce=S==null?void 0:S[x])!=null?ce:0,he=At?pe:I-_[yt]-C[yt]-ve+k.altAxis,me=At?I+_[yt]+C[yt]-ve-k.altAxis:de,ge=p&&At?je(he,I,me):it(p?he:pe,I,p?me:de);b[x]=ge,z[x]=ge-I}e.modifiersData[i]=z}}var pr={name:"preventOverflow",enabled:!0,phase:"main",fn:cr,requiresIfExists:["offset"]};function dr(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function vr(t){return t===j(t)||!T(t)?Ct(t):dr(t)}function hr(t){var e=t.getBoundingClientRect(),r=J(e.width)/t.offsetWidth||1,i=J(e.height)/t.offsetHeight||1;return r!==1||i!==1}function mr(t,e,r){r===void 0&&(r=!1);var i=T(e),n=T(e)&&hr(e),s=N(e),o=K(t,n),f={scrollLeft:0,scrollTop:0},a={x:0,y:0};return(i||!i&&!r)&&((F(e)!=="body"||kt(s))&&(f=vr(e)),T(e)?(a=K(e,!0),a.x+=e.clientLeft,a.y+=e.clientTop):s&&(a.x=Ot(s))),{x:o.left+f.scrollLeft-a.x,y:o.top+f.scrollTop-a.y,width:o.width,height:o.height}}function gr(t){var e=new Map,r=new Set,i=[];t.forEach(function(s){e.set(s.name,s)});function n(s){r.add(s.name);var o=[].concat(s.requires||[],s.requiresIfExists||[]);o.forEach(function(f){if(!r.has(f)){var a=e.get(f);a&&n(a)}}),i.push(s)}return t.forEach(function(s){r.has(s.name)||n(s)}),i}function br(t){var e=gr(t);return Pe.reduce(function(r,i){return r.concat(e.filter(function(n){return n.phase===i}))},[])}function _r(t){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(t())})})),e}}function yr(t){var e=t.reduce(function(r,i){var n=r[i.name];return r[i.name]=n?Object.assign({},n,i,{options:Object.assign({},n.options,i.options),data:Object.assign({},n.data,i.data)}):i,r},{});return Object.keys(e).map(function(r){return e[r]})}var Gt={placement:"bottom",modifiers:[],strategy:"absolute"};function Jt(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return!e.some(function(i){return!(i&&typeof i.getBoundingClientRect=="function")})}function wr(t){t===void 0&&(t={});var e=t,r=e.defaultModifiers,i=r===void 0?[]:r,n=e.defaultOptions,s=n===void 0?Gt:n;return function(f,a,l){l===void 0&&(l=s);var u={placement:"bottom",orderedModifiers:[],options:Object.assign({},Gt,s),modifiersData:{},elements:{reference:f,popper:a},attributes:{},styles:{}},d=[],c=!1,p={state:u,setOptions:function(y){var w=typeof y=="function"?y(u.options):y;m(),u.options=Object.assign({},s,u.options,w),u.scrollParents={reference:G(f)?at(f):f.contextElement?at(f.contextElement):[],popper:at(a)};var $=br(yr([].concat(i,u.options.modifiers)));return u.orderedModifiers=$.filter(function(h){return h.enabled}),v(),p.update()},forceUpdate:function(){if(!c){var y=u.elements,w=y.reference,$=y.popper;if(!!Jt(w,$)){u.rects={reference:mr(w,nt($),u.options.strategy==="fixed"),popper:$t($)},u.reset=!1,u.placement=u.options.placement,u.orderedModifiers.forEach(function(k){return u.modifiersData[k.name]=Object.assign({},k.data)});for(var h=0;h<u.orderedModifiers.length;h++){if(u.reset===!0){u.reset=!1,h=-1;continue}var x=u.orderedModifiers[h],b=x.fn,_=x.options,C=_===void 0?{}:_,B=x.name;typeof b=="function"&&(u=b({state:u,options:C,name:B,instance:p})||u)}}}},update:_r(function(){return new Promise(function(g){p.forceUpdate(),g(u)})}),destroy:function(){m(),c=!0}};if(!Jt(f,a))return p;p.setOptions(l).then(function(g){!c&&l.onFirstUpdate&&l.onFirstUpdate(g)});function v(){u.orderedModifiers.forEach(function(g){var y=g.name,w=g.options,$=w===void 0?{}:w,h=g.effect;if(typeof h=="function"){var x=h({state:u,name:y,instance:p,options:$}),b=function(){};d.push(x||b)}})}function m(){d.forEach(function(g){return g()}),d=[]}return p}}var $r=[qe,fr,He,Ae,sr,rr,pr,Le,ir],xr=wr({defaultModifiers:$r}),Cr={props:{size:String,sizePrefix:{type:String,default(){return this.$options.name&&this.$options.name.toLowerCase()}}},computed:{sizeableClassPrefix(){return this.sizePrefix},sizeableClass(){return!this.size||!this.sizeableClassPrefix?"":`${this.sizeableClassPrefix}-${this.size}`}}},Or={props:{variant:String,variantPrefix:{type:String,default(){return this.$options.name&&this.$options.name.toLowerCase()}}},computed:{variantClassPrefix(){return this.variantPrefix},variantClass(){return!this.variant||!this.variantClassPrefix?"":`${this.variantClassPrefix}-${this.variant}`}}},kr=function(){var t=this,e=t.$createElement,r=t._self._c||e;return t.to?r("router-link",{class:t.classes,attrs:{to:t.to,disabled:t.disabled,role:"button"},on:{click:t.onClick}},[t._t("default")],2):t.href?r("a",{class:t.classes,attrs:{href:t.href,disabled:t.disabled,role:"button"},on:{click:t.onClick}},[t._t("default")],2):t.label?r("label",{class:t.classes,attrs:{disabled:t.disabled,role:"button"},on:{click:t.onClick}},[t._t("default")],2):r("button",{class:t.classes,attrs:{type:t.type,disabled:t.disabled},on:{click:t.onClick}},[t._t("default")],2)},Sr=[];function Br(t,e,r,i,n,s,o,f){var a=typeof t=="function"?t.options:t;e&&(a.render=e,a.staticRenderFns=r,a._compiled=!0),i&&(a.functional=!0),s&&(a._scopeId="data-v-"+s);var l;if(o?(l=function(c){c=c||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!c&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(c=__VUE_SSR_CONTEXT__),n&&n.call(this,c),c&&c._registeredComponents&&c._registeredComponents.add(o)},a._ssrRegister=l):n&&(l=f?function(){n.call(this,(a.functional?this.parent:this).$root.$options.shadowRoot)}:n),l)if(a.functional){a._injectStyles=l;var u=a.render;a.render=function(p,v){return l.call(v),u(p,v)}}else{var d=a.beforeCreate;a.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:a}}const Pr={name:"Btn",mixins:[Cr,Or],props:{active:Boolean,block:Boolean,disabled:Boolean,href:String,label:Boolean,outline:Boolean,to:[Object,String],type:String},computed:{variantClassPrefix(){return this.variantPrefix+(this.outline?"-outline":"")},classes(){return["btn",this.variantClass,this.sizeableClass,this.block?"btn-block":"",this.active?"active":""]}},methods:{onClick(t){this.disabled?t.preventDefault():this.$emit("click",t)}}},Kt={};var Er=Br(Pr,kr,Sr,!1,Rr,null,null,null);function Rr(t){for(let e in Kt)this[e]=Kt[e]}var Ar=function(){return Er.exports}(),Dr={props:{size:String,sizePrefix:{type:String,default(){return this.$options.name&&this.$options.name.toLowerCase()}}},computed:{sizeableClassPrefix(){return this.sizePrefix},sizeableClass(){return!this.size||!this.sizeableClassPrefix?"":`${this.sizeableClassPrefix}-${this.size}`}}},Tr=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{class:t.classes,attrs:{"data-toggle":t.toggle?"buttons":!1,role:"group"}},[t._t("default")],2)},jr=[];function zr(t,e,r,i,n,s,o,f){var a=typeof t=="function"?t.options:t;e&&(a.render=e,a.staticRenderFns=r,a._compiled=!0),i&&(a.functional=!0),s&&(a._scopeId="data-v-"+s);var l;if(o?(l=function(c){c=c||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!c&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(c=__VUE_SSR_CONTEXT__),n&&n.call(this,c),c&&c._registeredComponents&&c._registeredComponents.add(o)},a._ssrRegister=l):n&&(l=f?function(){n.call(this,(a.functional?this.parent:this).$root.$options.shadowRoot)}:n),l)if(a.functional){a._injectStyles=l;var u=a.render;a.render=function(p,v){return l.call(v),u(p,v)}}else{var d=a.beforeCreate;a.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:a}}const Mr={name:"BtnGroup",mixins:[Dr],props:{sizePrefix:{type:String,default(){return"btn-group"}},toggle:Boolean,vertical:Boolean},computed:{classes(){return{"btn-group":!this.vertical,"btn-group-toggle":this.toggle,"btn-group-vertical":this.vertical,[this.sizeableClass]:!!this.size}}}},Qt={};var Fr=zr(Mr,Tr,jr,!1,Lr,null,null,null);function Lr(t){for(let e in Qt)this[e]=Qt[e]}var Wr=function(){return Fr.exports}();function Zt(t,e,r,i,n,s,o,f){var a=typeof t=="function"?t.options:t;e&&(a.render=e,a.staticRenderFns=r,a._compiled=!0),i&&(a.functional=!0),s&&(a._scopeId="data-v-"+s);var l;if(o?(l=function(c){c=c||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!c&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(c=__VUE_SSR_CONTEXT__),n&&n.call(this,c),c&&c._registeredComponents&&c._registeredComponents.add(o)},a._ssrRegister=l):n&&(l=f?function(){n.call(this,(a.functional?this.parent:this).$root.$options.shadowRoot)}:n),l)if(a.functional){a._injectStyles=l;var u=a.render;a.render=function(p,v){return l.call(v),u(p,v)}}else{var d=a.beforeCreate;a.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:a}}function Bt(t,e){t.data.staticClass=`${t.data.staticClass||""} ${e}`.trim()}function te(t,e){return r=>{typeof e=="function"&&e(r),r.cancelBubble||t(r)}}function ee(t,e){return t.data.on[e]||t.componentOptions&&t.componentOptions.listeners&&t.componentOptions.listeners[e]}const Nr={functional:!0,render(t,e){return e.children.filter(r=>!!r.tag).forEach((r,i)=>{r.data=Object.assign({staticClass:void 0},r.data),r.data.on||(r.data.on={});const n=r.data.staticClass&&r.data.staticClass.match(/dropdown-item/),s=r.data.staticClass&&r.data.staticClass.match(/dropdown-divider/);r.data.on.click=te(o=>{e.parent.$emit("click-item",o,r)},ee(r,"click")),r.data.on.blur=te(o=>{e.parent.$emit("blur-item",o,r)},ee(r,"blur")),r.tag.match(/^h\d$/)?Bt(r,"dropdown-header"):r.tag==="hr"&&!s?(r.tag="div",Bt(r,"dropdown-divider")):n||Bt(r,"dropdown-item")}),e.children}};let Vr,Hr;const re={};var Xr=Zt(Nr,Vr,Hr,!1,qr,null,null,null);function qr(t){for(let e in re)this[e]=re[e]}var Ur=function(){return Xr.exports}(),Ir=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"dropdown-menu",class:{"dropdown-menu-left":t.align==="left","dropdown-menu-right":t.align==="right",show:t.show},attrs:{"aria-labelledby":t.$attrs.id}},[r("dropdown-menu-items",[t._t("default")],2)],1)},Yr=[];const Gr={name:"DropdownMenu",components:{DropdownMenuItems:Ur},props:{align:{type:String,default:"left",validate(t){return["left","right"].indexOf(t.toLowerCase())!==-1}},show:Boolean}},ne={};var Jr=Zt(Gr,Ir,Yr,!1,Kr,null,null,null);function Kr(t){for(let e in ne)this[e]=ne[e]}var Qr=function(){return Jr.exports}(),Zr=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r(t.is,t._b({tag:"component",attrs:{id:t.id,"aria-haspopup":"true","aria-expanded":t.expanded,type:t.is==="button"?"button":void 0}},"component",t.to?{to:t.to}:{href:t.href},!1),[t._t("default")],2)},tn=[];function ht(t,e,r,i,n,s,o,f){var a=typeof t=="function"?t.options:t;e&&(a.render=e,a.staticRenderFns=r,a._compiled=!0),i&&(a.functional=!0),s&&(a._scopeId="data-v-"+s);var l;if(o?(l=function(c){c=c||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!c&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(c=__VUE_SSR_CONTEXT__),n&&n.call(this,c),c&&c._registeredComponents&&c._registeredComponents.add(o)},a._ssrRegister=l):n&&(l=f?function(){n.call(this,(a.functional?this.parent:this).$root.$options.shadowRoot)}:n),l)if(a.functional){a._injectStyles=l;var u=a.render;a.render=function(p,v){return l.call(v),u(p,v)}}else{var d=a.beforeCreate;a.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:a}}const en={props:{expanded:{type:Boolean,default:!1},id:String,href:String,to:[String,Object]},computed:{is(){return this.to?"router-link":this.href?"a":"button"}}},ie={};var rn=ht(en,Zr,tn,!1,nn,null,null,null);function nn(t){for(let e in ie)this[e]=ie[e]}var an=function(){return rn.exports}(),ae={components:{BtnDropdownAction:an,BtnGroup:Wr,DropdownMenu:Qr},extends:Ar,props:{align:{type:String,default:"left",validate(t){return["left","right"].indexOf(t.toLowerCase())!==-1}},animated:{type:Boolean,default:!0},caret:{type:Boolean,default:!0},dropup:{type:Boolean,default:!1},dropright:{type:Boolean,default:!1},dropleft:{type:Boolean,default:!1},height:String,href:String,nav:Boolean,label:String,offset:{type:Number,default:5},rotate:{type:Boolean,default:!1},split:{type:Boolean,default:!1},to:[String,Object],type:{type:String,default:"button"},width:String},data(){return{popper:null,triggerAnimation:!1,expanded:!1}},computed:{placement(){return this.dropup?"top":this.dropleft?"left":this.dropright?"right":"bottom"},variantClassPrefix(){return"btn"+(this.outline?"-outline":"")},sizeableClassPrefix(){return"btn"},classes(){return{dropdown:this.dropup&&this.dropright&&this.dropleft,dropup:this.dropup,dropright:this.dropright,dropleft:this.dropleft,"icon-only":!this.nav&&!this.split&&!!this.$slots.icon&&!this.$slots.label,"hide-caret":!this.caret,expanded:this.expanded,"rotate-90":!this.nav&&this.split&&this.rotate&&this.expanded}},actionClasses(){return[!this.nav&&"btn",!this.nav&&this.size&&this.sizeableClass,!this.nav&&this.variant&&this.variantClass].filter(t=>!!t).join(" ")},toggleStyle(){return{width:this.width,height:this.height}},toggleClasses(){return[this.nav&&"nav-link",!this.nav&&"btn",!this.nav&&this.variantClass,this.sizeableClass,this.active?"active":"",this.block?"btn-block":"",!this.split&&this.rotate&&this.expanded?"rotate-90":"",!this.nav&&this.split?"dropdown-toggle-split":"","dropdown-toggle"].filter(t=>!!t).join(" ")}},beforeDestroy(){this.popper&&this.popper.destroy()},mounted(){},methods:{focus(){this.$el.querySelector(".dropdown-toggle").focus()},queryFocusable(){return this.$el.querySelector(".dropdown-menu").querySelectorAll('label, input, select, textarea, [tabindex]:not([tabindex="-1"])')},isFocusable(t){const e=this.queryFocusable();for(let r in e)if(t===e[r])return!0;return!1},toggle(t){this.expanded?this.hide():this.show()},show(){this.expanded=!0;const t=this.$refs.split&&this.$refs.split.$el||this.$el;!this.nav&&!this.popper?this.popper=xr(t,this.$refs.menu.$el,{placement:`${this.placement}-${this.align==="left"?"start":"end"}`,onFirstUpdate:()=>{this.triggerAnimation=this.animated},modifiers:[{name:"offset",options:{offset:[0,this.nav?1:this.offset]}}]}):this.popper&&this.popper.update()},hide(){this.expanded=!1},onBlur(t){this.$el.contains(t.relatedTarget)||this.hide()},onClickItem(t){this.isFocusable(t.target)||this.hide()},onClickToggle(t){this.$emit("click-toggle",t),t.defaultPrevented||this.toggle()}},watch:{expanded(t){this.$nextTick(()=>{this.$emit(t?"show":"hide"),this.$emit("toggle",t)})}}},on=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("btn-group",{staticClass:"btn-dropdown-split",class:t.classes,on:{click:t.onClick}},[t.dropleft?t._e():t._t("button",function(){return[t.dropleft?t._e():r("btn-dropdown-action",{ref:"button",class:t.actionClasses,attrs:{id:t.$attrs.id,expanded:t.expanded,href:t.href,to:t.to},nativeOn:{click:function(i){return function(n){return t.$emit("click",n)}.apply(null,arguments)}}},[t._t("icon"),t._t("label",function(){return[t._v(" "+t._s(t.label)+" ")]})],2)]},null,this),r("btn-group",{ref:"split"},[t._t("split",function(){return[t.split?r("button",{class:t.toggleClasses,attrs:{id:t.$attrs.id,type:"button","aria-haspopup":"true","aria-expanded":t.expanded},on:{blur:t.onBlur,click:t.onClickToggle}}):t._e()]},null,this),r("dropdown-menu",{ref:"menu",class:{animated:t.triggerAnimation},attrs:{id:t.$attrs.id,align:t.align,show:t.expanded},on:{"click-item":t.onClickItem,"blur-item":t.onBlur}},[t._t("default")],2)],2),t.dropleft?t._t("button",function(){return[t.dropleft?r("btn-dropdown-action",{ref:"button",class:t.actionClasses,attrs:{id:t.$attrs.id,expanded:t.expanded,href:t.href,to:t.to},nativeOn:{click:function(i){return function(n){return t.$emit("click",n)}.apply(null,arguments)}}},[t._t("icon"),t._t("label",function(){return[t._v(" "+t._s(t.label)+" ")]})],2):t._e()]},null,this):t._e()],2)},sn=[];const ln={mixins:[ae]},oe={};var fn=ht(ln,on,sn,!1,un,null,null,null);function un(t){for(let e in oe)this[e]=oe[e]}var cn=function(){return fn.exports}(),pn=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("btn-group",{class:t.classes},[t._t("button",function(){return[r("btn-dropdown-action",{ref:"button",class:t.toggleClasses,style:t.toggleStyle,attrs:{id:t.$attrs.id,expanded:t.expanded,href:t.href,to:t.to},nativeOn:{blur:function(i){return t.onBlur.apply(null,arguments)},click:function(i){return t.onClickToggle.apply(null,arguments)}}},[t._t("icon"),t._t("label",function(){return[t._v(" "+t._s(t.label)+" ")]})],2)]},null,this),r("dropdown-menu",{ref:"menu",class:{animated:t.triggerAnimation},attrs:{id:t.$attrs.id,align:t.align,show:t.expanded},on:{"blur-item":t.onBlur,"click-item":t.onClickItem}},[t._t("default")],2)],2)},dn=[];const vn={mixins:[ae]},se={};var hn=ht(vn,pn,dn,!1,mn,null,null,null);function mn(t){for(let e in se)this[e]=se[e]}var gn=function(){return hn.exports}(),bn=function(){var t=this,e=this,r=e.$createElement,i=e._self._c||r;return i(e.$attrs.split===void 0||!!e.$attrs.nav?"btn-dropdown-single":"btn-dropdown-split",e._b({tag:"component",staticClass:"btn-dropdown",on:{click:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["click"].concat(s))},"click-toggle":function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["click-toggle"].concat(s))},dropdown:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["dropdown"].concat(s))},show:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["show"].concat(s))},hide:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["hide"].concat(s))},toggle:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["toggle"].concat(s))}},scopedSlots:e._u([{key:"icon",fn:function(){return[e._t("icon")]},proxy:!0},e.$attrs.label||this.$slots.label?{key:"label",fn:function(){return[e._t("label",function(){return[e._v(" "+e._s(e.$attrs.label)+" ")]})]},proxy:!0}:null,{key:"button",fn:function(n){return[e._t("button",null,null,n)]}},{key:"split",fn:function(n){return[e._t("split",null,null,n)]}}],null,!0)},"component",e.$attrs,!1),[e._t("default")],2)},_n=[],En="";const yn={name:"BtnDropdown",components:{BtnDropdownSplit:cn,BtnDropdownSingle:gn},inheritAttrs:!1},le={};var wn=ht(yn,bn,_n,!1,$n,null,null,null);function $n(t){for(let e in le)this[e]=le[e]}var xn=function(){return wn.exports}();H.BtnDropdown=xn,Object.defineProperty(H,"__esModule",{value:!0}),H[Symbol.toStringTag]="Module"});
|
|
1
|
+
(function(H,C){typeof exports=="object"&&typeof module!="undefined"?C(exports):typeof define=="function"&&define.amd?define(["exports"],C):(H=typeof globalThis!="undefined"?globalThis:H||self,C(H.BtnDropdown={}))})(this,function(H){"use strict";var C="top",R="bottom",D="right",P="left",wt="auto",et=[C,R,D,P],Y="start",rt="end",ge="clippingParents",Dt="viewport",nt="popper",be="reference",Tt=et.reduce(function(t,e){return t.concat([e+"-"+Y,e+"-"+rt])},[]),jt=[].concat(et,[wt]).reduce(function(t,e){return t.concat([e,e+"-"+Y,e+"-"+rt])},[]),ye="beforeRead",_e="read",we="afterRead",$e="beforeMain",xe="main",Oe="afterMain",Ce="beforeWrite",ke="write",Se="afterWrite",Be=[ye,_e,we,$e,xe,Oe,Ce,ke,Se];function F(t){return t?(t.nodeName||"").toLowerCase():null}function j(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function G(t){var e=j(t).Element;return t instanceof e||t instanceof Element}function T(t){var e=j(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function zt(t){if(typeof ShadowRoot=="undefined")return!1;var e=j(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Pe(t){var e=t.state;Object.keys(e.elements).forEach(function(r){var i=e.styles[r]||{},n=e.attributes[r]||{},s=e.elements[r];!T(s)||!F(s)||(Object.assign(s.style,i),Object.keys(n).forEach(function(o){var l=n[o];l===!1?s.removeAttribute(o):s.setAttribute(o,l===!0?"":l)}))})}function Ee(t){var e=t.state,r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,r.popper),e.styles=r,e.elements.arrow&&Object.assign(e.elements.arrow.style,r.arrow),function(){Object.keys(e.elements).forEach(function(i){var n=e.elements[i],s=e.attributes[i]||{},o=Object.keys(e.styles.hasOwnProperty(i)?e.styles[i]:r[i]),l=o.reduce(function(a,u){return a[u]="",a},{});!T(n)||!F(n)||(Object.assign(n.style,l),Object.keys(s).forEach(function(a){n.removeAttribute(a)}))})}}var Ae={name:"applyStyles",enabled:!0,phase:"write",fn:Pe,effect:Ee,requires:["computeStyles"]};function L(t){return t.split("-")[0]}var q=Math.max,pt=Math.min,J=Math.round;function K(t,e){e===void 0&&(e=!1);var r=t.getBoundingClientRect(),i=1,n=1;if(T(t)&&e){var s=t.offsetHeight,o=t.offsetWidth;o>0&&(i=J(r.width)/o||1),s>0&&(n=J(r.height)/s||1)}return{width:r.width/i,height:r.height/n,top:r.top/n,right:r.right/i,bottom:r.bottom/n,left:r.left/i,x:r.left/i,y:r.top/n}}function $t(t){var e=K(t),r=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-r)<=1&&(r=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:r,height:i}}function Mt(t,e){var r=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(r&&zt(r)){var i=e;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function W(t){return j(t).getComputedStyle(t)}function Re(t){return["table","td","th"].indexOf(F(t))>=0}function N(t){return((G(t)?t.ownerDocument:t.document)||window.document).documentElement}function dt(t){return F(t)==="html"?t:t.assignedSlot||t.parentNode||(zt(t)?t.host:null)||N(t)}function Ft(t){return!T(t)||W(t).position==="fixed"?null:t.offsetParent}function De(t){var e=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&T(t)){var i=W(t);if(i.position==="fixed")return null}for(var n=dt(t);T(n)&&["html","body"].indexOf(F(n))<0;){var s=W(n);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||e&&s.willChange==="filter"||e&&s.filter&&s.filter!=="none")return n;n=n.parentNode}return null}function it(t){for(var e=j(t),r=Ft(t);r&&Re(r)&&W(r).position==="static";)r=Ft(r);return r&&(F(r)==="html"||F(r)==="body"&&W(r).position==="static")?e:r||De(t)||e}function xt(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function at(t,e,r){return q(t,pt(e,r))}function Te(t,e,r){var i=at(t,e,r);return i>r?r:i}function Lt(){return{top:0,right:0,bottom:0,left:0}}function Wt(t){return Object.assign({},Lt(),t)}function Nt(t,e){return e.reduce(function(r,i){return r[i]=t,r},{})}var je=function(e,r){return e=typeof e=="function"?e(Object.assign({},r.rects,{placement:r.placement})):e,Wt(typeof e!="number"?e:Nt(e,et))};function ze(t){var e,r=t.state,i=t.name,n=t.options,s=r.elements.arrow,o=r.modifiersData.popperOffsets,l=L(r.placement),a=xt(l),u=[P,D].indexOf(l)>=0,f=u?"height":"width";if(!(!s||!o)){var d=je(n.padding,r),c=$t(s),p=a==="y"?C:P,v=a==="y"?R:D,m=r.rects.reference[f]+r.rects.reference[a]-o[a]-r.rects.popper[f],g=o[a]-r.rects.reference[a],_=it(s),w=_?a==="y"?_.clientHeight||0:_.clientWidth||0:0,$=m/2-g/2,h=d[p],x=w-c[f]-d[v],b=w/2-c[f]/2+$,y=at(h,b,x),O=a;r.modifiersData[i]=(e={},e[O]=y,e.centerOffset=y-b,e)}}function Me(t){var e=t.state,r=t.options,i=r.element,n=i===void 0?"[data-popper-arrow]":i;n!=null&&(typeof n=="string"&&(n=e.elements.popper.querySelector(n),!n)||!Mt(e.elements.popper,n)||(e.elements.arrow=n))}var Fe={name:"arrow",enabled:!0,phase:"main",fn:ze,effect:Me,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Q(t){return t.split("-")[1]}var Le={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e=t.x,r=t.y,i=window,n=i.devicePixelRatio||1;return{x:J(e*n)/n||0,y:J(r*n)/n||0}}function Vt(t){var e,r=t.popper,i=t.popperRect,n=t.placement,s=t.variation,o=t.offsets,l=t.position,a=t.gpuAcceleration,u=t.adaptive,f=t.roundOffsets,d=t.isFixed,c=o.x,p=c===void 0?0:c,v=o.y,m=v===void 0?0:v,g=typeof f=="function"?f({x:p,y:m}):{x:p,y:m};p=g.x,m=g.y;var _=o.hasOwnProperty("x"),w=o.hasOwnProperty("y"),$=P,h=C,x=window;if(u){var b=it(r),y="clientHeight",O="clientWidth";if(b===j(r)&&(b=N(r),W(b).position!=="static"&&l==="absolute"&&(y="scrollHeight",O="scrollWidth")),b=b,n===C||(n===P||n===D)&&s===rt){h=R;var B=d&&x.visualViewport?x.visualViewport.height:b[y];m-=B-i.height,m*=a?1:-1}if(n===P||(n===C||n===R)&&s===rt){$=D;var k=d&&x.visualViewport?x.visualViewport.width:b[O];p-=k-i.width,p*=a?1:-1}}var S=Object.assign({position:l},u&&Le),z=f===!0?We({x:p,y:m}):{x:p,y:m};if(p=z.x,m=z.y,a){var E;return Object.assign({},S,(E={},E[h]=w?"0":"",E[$]=_?"0":"",E.transform=(x.devicePixelRatio||1)<=1?"translate("+p+"px, "+m+"px)":"translate3d("+p+"px, "+m+"px, 0)",E))}return Object.assign({},S,(e={},e[h]=w?m+"px":"",e[$]=_?p+"px":"",e.transform="",e))}function Ne(t){var e=t.state,r=t.options,i=r.gpuAcceleration,n=i===void 0?!0:i,s=r.adaptive,o=s===void 0?!0:s,l=r.roundOffsets,a=l===void 0?!0:l,u={placement:L(e.placement),variation:Q(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:n,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,Vt(Object.assign({},u,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:o,roundOffsets:a})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,Vt(Object.assign({},u,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:a})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}var Ve={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Ne,data:{}},vt={passive:!0};function He(t){var e=t.state,r=t.instance,i=t.options,n=i.scroll,s=n===void 0?!0:n,o=i.resize,l=o===void 0?!0:o,a=j(e.elements.popper),u=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&u.forEach(function(f){f.addEventListener("scroll",r.update,vt)}),l&&a.addEventListener("resize",r.update,vt),function(){s&&u.forEach(function(f){f.removeEventListener("scroll",r.update,vt)}),l&&a.removeEventListener("resize",r.update,vt)}}var qe={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:He,data:{}},Xe={left:"right",right:"left",bottom:"top",top:"bottom"};function ht(t){return t.replace(/left|right|bottom|top/g,function(e){return Xe[e]})}var Ie={start:"end",end:"start"};function Ht(t){return t.replace(/start|end/g,function(e){return Ie[e]})}function Ot(t){var e=j(t),r=e.pageXOffset,i=e.pageYOffset;return{scrollLeft:r,scrollTop:i}}function Ct(t){return K(N(t)).left+Ot(t).scrollLeft}function Ue(t){var e=j(t),r=N(t),i=e.visualViewport,n=r.clientWidth,s=r.clientHeight,o=0,l=0;return i&&(n=i.width,s=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=i.offsetLeft,l=i.offsetTop)),{width:n,height:s,x:o+Ct(t),y:l}}function Ye(t){var e,r=N(t),i=Ot(t),n=(e=t.ownerDocument)==null?void 0:e.body,s=q(r.scrollWidth,r.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),o=q(r.scrollHeight,r.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),l=-i.scrollLeft+Ct(t),a=-i.scrollTop;return W(n||r).direction==="rtl"&&(l+=q(r.clientWidth,n?n.clientWidth:0)-s),{width:s,height:o,x:l,y:a}}function kt(t){var e=W(t),r=e.overflow,i=e.overflowX,n=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+n+i)}function qt(t){return["html","body","#document"].indexOf(F(t))>=0?t.ownerDocument.body:T(t)&&kt(t)?t:qt(dt(t))}function ot(t,e){var r;e===void 0&&(e=[]);var i=qt(t),n=i===((r=t.ownerDocument)==null?void 0:r.body),s=j(i),o=n?[s].concat(s.visualViewport||[],kt(i)?i:[]):i,l=e.concat(o);return n?l:l.concat(ot(dt(o)))}function St(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Ge(t){var e=K(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}function Xt(t,e){return e===Dt?St(Ue(t)):G(e)?Ge(e):St(Ye(N(t)))}function Je(t){var e=ot(dt(t)),r=["absolute","fixed"].indexOf(W(t).position)>=0,i=r&&T(t)?it(t):t;return G(i)?e.filter(function(n){return G(n)&&Mt(n,i)&&F(n)!=="body"}):[]}function Ke(t,e,r){var i=e==="clippingParents"?Je(t):[].concat(e),n=[].concat(i,[r]),s=n[0],o=n.reduce(function(l,a){var u=Xt(t,a);return l.top=q(u.top,l.top),l.right=pt(u.right,l.right),l.bottom=pt(u.bottom,l.bottom),l.left=q(u.left,l.left),l},Xt(t,s));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function It(t){var e=t.reference,r=t.element,i=t.placement,n=i?L(i):null,s=i?Q(i):null,o=e.x+e.width/2-r.width/2,l=e.y+e.height/2-r.height/2,a;switch(n){case C:a={x:o,y:e.y-r.height};break;case R:a={x:o,y:e.y+e.height};break;case D:a={x:e.x+e.width,y:l};break;case P:a={x:e.x-r.width,y:l};break;default:a={x:e.x,y:e.y}}var u=n?xt(n):null;if(u!=null){var f=u==="y"?"height":"width";switch(s){case Y:a[u]=a[u]-(e[f]/2-r[f]/2);break;case rt:a[u]=a[u]+(e[f]/2-r[f]/2);break}}return a}function st(t,e){e===void 0&&(e={});var r=e,i=r.placement,n=i===void 0?t.placement:i,s=r.boundary,o=s===void 0?ge:s,l=r.rootBoundary,a=l===void 0?Dt:l,u=r.elementContext,f=u===void 0?nt:u,d=r.altBoundary,c=d===void 0?!1:d,p=r.padding,v=p===void 0?0:p,m=Wt(typeof v!="number"?v:Nt(v,et)),g=f===nt?be:nt,_=t.rects.popper,w=t.elements[c?g:f],$=Ke(G(w)?w:w.contextElement||N(t.elements.popper),o,a),h=K(t.elements.reference),x=It({reference:h,element:_,strategy:"absolute",placement:n}),b=St(Object.assign({},_,x)),y=f===nt?b:h,O={top:$.top-y.top+m.top,bottom:y.bottom-$.bottom+m.bottom,left:$.left-y.left+m.left,right:y.right-$.right+m.right},B=t.modifiersData.offset;if(f===nt&&B){var k=B[n];Object.keys(O).forEach(function(S){var z=[D,R].indexOf(S)>=0?1:-1,E=[C,R].indexOf(S)>=0?"y":"x";O[S]+=k[E]*z})}return O}function Qe(t,e){e===void 0&&(e={});var r=e,i=r.placement,n=r.boundary,s=r.rootBoundary,o=r.padding,l=r.flipVariations,a=r.allowedAutoPlacements,u=a===void 0?jt:a,f=Q(i),d=f?l?Tt:Tt.filter(function(v){return Q(v)===f}):et,c=d.filter(function(v){return u.indexOf(v)>=0});c.length===0&&(c=d);var p=c.reduce(function(v,m){return v[m]=st(t,{placement:m,boundary:n,rootBoundary:s,padding:o})[L(m)],v},{});return Object.keys(p).sort(function(v,m){return p[v]-p[m]})}function Ze(t){if(L(t)===wt)return[];var e=ht(t);return[Ht(t),e,Ht(e)]}function tr(t){var e=t.state,r=t.options,i=t.name;if(!e.modifiersData[i]._skip){for(var n=r.mainAxis,s=n===void 0?!0:n,o=r.altAxis,l=o===void 0?!0:o,a=r.fallbackPlacements,u=r.padding,f=r.boundary,d=r.rootBoundary,c=r.altBoundary,p=r.flipVariations,v=p===void 0?!0:p,m=r.allowedAutoPlacements,g=e.options.placement,_=L(g),w=_===g,$=a||(w||!v?[ht(g)]:Ze(g)),h=[g].concat($).reduce(function(tt,V){return tt.concat(L(V)===wt?Qe(e,{placement:V,boundary:f,rootBoundary:d,padding:u,flipVariations:v,allowedAutoPlacements:m}):V)},[]),x=e.rects.reference,b=e.rects.popper,y=new Map,O=!0,B=h[0],k=0;k<h.length;k++){var S=h[k],z=L(S),E=Q(S)===Y,lt=[C,R].indexOf(z)>=0,ut=lt?"width":"height",A=st(e,{placement:S,boundary:f,rootBoundary:d,altBoundary:c,padding:u}),M=lt?E?D:P:E?R:C;x[ut]>b[ut]&&(M=ht(M));var mt=ht(M),X=[];if(s&&X.push(A[z]<=0),l&&X.push(A[M]<=0,A[mt]<=0),X.every(function(tt){return tt})){B=S,O=!1;break}y.set(S,X)}if(O)for(var gt=v?3:1,Pt=function(V){var ct=h.find(function(yt){var I=y.get(yt);if(I)return I.slice(0,V).every(function(Et){return Et})});if(ct)return B=ct,"break"},ft=gt;ft>0;ft--){var bt=Pt(ft);if(bt==="break")break}e.placement!==B&&(e.modifiersData[i]._skip=!0,e.placement=B,e.reset=!0)}}var er={name:"flip",enabled:!0,phase:"main",fn:tr,requiresIfExists:["offset"],data:{_skip:!1}};function Ut(t,e,r){return r===void 0&&(r={x:0,y:0}),{top:t.top-e.height-r.y,right:t.right-e.width+r.x,bottom:t.bottom-e.height+r.y,left:t.left-e.width-r.x}}function Yt(t){return[C,D,R,P].some(function(e){return t[e]>=0})}function rr(t){var e=t.state,r=t.name,i=e.rects.reference,n=e.rects.popper,s=e.modifiersData.preventOverflow,o=st(e,{elementContext:"reference"}),l=st(e,{altBoundary:!0}),a=Ut(o,i),u=Ut(l,n,s),f=Yt(a),d=Yt(u);e.modifiersData[r]={referenceClippingOffsets:a,popperEscapeOffsets:u,isReferenceHidden:f,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":d})}var nr={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:rr};function ir(t,e,r){var i=L(t),n=[P,C].indexOf(i)>=0?-1:1,s=typeof r=="function"?r(Object.assign({},e,{placement:t})):r,o=s[0],l=s[1];return o=o||0,l=(l||0)*n,[P,D].indexOf(i)>=0?{x:l,y:o}:{x:o,y:l}}function ar(t){var e=t.state,r=t.options,i=t.name,n=r.offset,s=n===void 0?[0,0]:n,o=jt.reduce(function(f,d){return f[d]=ir(d,e.rects,s),f},{}),l=o[e.placement],a=l.x,u=l.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=a,e.modifiersData.popperOffsets.y+=u),e.modifiersData[i]=o}var or={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:ar};function sr(t){var e=t.state,r=t.name;e.modifiersData[r]=It({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}var lr={name:"popperOffsets",enabled:!0,phase:"read",fn:sr,data:{}};function ur(t){return t==="x"?"y":"x"}function fr(t){var e=t.state,r=t.options,i=t.name,n=r.mainAxis,s=n===void 0?!0:n,o=r.altAxis,l=o===void 0?!1:o,a=r.boundary,u=r.rootBoundary,f=r.altBoundary,d=r.padding,c=r.tether,p=c===void 0?!0:c,v=r.tetherOffset,m=v===void 0?0:v,g=st(e,{boundary:a,rootBoundary:u,padding:d,altBoundary:f}),_=L(e.placement),w=Q(e.placement),$=!w,h=xt(_),x=ur(h),b=e.modifiersData.popperOffsets,y=e.rects.reference,O=e.rects.popper,B=typeof m=="function"?m(Object.assign({},e.rects,{placement:e.placement})):m,k=typeof B=="number"?{mainAxis:B,altAxis:B}:Object.assign({mainAxis:0,altAxis:0},B),S=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,z={x:0,y:0};if(!!b){if(s){var E,lt=h==="y"?C:P,ut=h==="y"?R:D,A=h==="y"?"height":"width",M=b[h],mt=M+g[lt],X=M-g[ut],gt=p?-O[A]/2:0,Pt=w===Y?y[A]:O[A],ft=w===Y?-O[A]:-y[A],bt=e.elements.arrow,tt=p&&bt?$t(bt):{width:0,height:0},V=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:Lt(),ct=V[lt],yt=V[ut],I=at(0,y[A],tt[A]),Et=$?y[A]/2-gt-I-ct-k.mainAxis:Pt-I-ct-k.mainAxis,xn=$?-y[A]/2+gt+I+yt+k.mainAxis:ft+I+yt+k.mainAxis,At=e.elements.arrow&&it(e.elements.arrow),On=At?h==="y"?At.clientTop||0:At.clientLeft||0:0,le=(E=S==null?void 0:S[h])!=null?E:0,Cn=M+Et-le-On,kn=M+xn-le,ue=at(p?pt(mt,Cn):mt,M,p?q(X,kn):X);b[h]=ue,z[h]=ue-M}if(l){var fe,Sn=h==="x"?C:P,Bn=h==="x"?R:D,U=b[x],_t=x==="y"?"height":"width",ce=U+g[Sn],pe=U-g[Bn],Rt=[C,P].indexOf(_)!==-1,de=(fe=S==null?void 0:S[x])!=null?fe:0,ve=Rt?ce:U-y[_t]-O[_t]-de+k.altAxis,he=Rt?U+y[_t]+O[_t]-de-k.altAxis:pe,me=p&&Rt?Te(ve,U,he):at(p?ve:ce,U,p?he:pe);b[x]=me,z[x]=me-U}e.modifiersData[i]=z}}var cr={name:"preventOverflow",enabled:!0,phase:"main",fn:fr,requiresIfExists:["offset"]};function pr(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function dr(t){return t===j(t)||!T(t)?Ot(t):pr(t)}function vr(t){var e=t.getBoundingClientRect(),r=J(e.width)/t.offsetWidth||1,i=J(e.height)/t.offsetHeight||1;return r!==1||i!==1}function hr(t,e,r){r===void 0&&(r=!1);var i=T(e),n=T(e)&&vr(e),s=N(e),o=K(t,n),l={scrollLeft:0,scrollTop:0},a={x:0,y:0};return(i||!i&&!r)&&((F(e)!=="body"||kt(s))&&(l=dr(e)),T(e)?(a=K(e,!0),a.x+=e.clientLeft,a.y+=e.clientTop):s&&(a.x=Ct(s))),{x:o.left+l.scrollLeft-a.x,y:o.top+l.scrollTop-a.y,width:o.width,height:o.height}}function mr(t){var e=new Map,r=new Set,i=[];t.forEach(function(s){e.set(s.name,s)});function n(s){r.add(s.name);var o=[].concat(s.requires||[],s.requiresIfExists||[]);o.forEach(function(l){if(!r.has(l)){var a=e.get(l);a&&n(a)}}),i.push(s)}return t.forEach(function(s){r.has(s.name)||n(s)}),i}function gr(t){var e=mr(t);return Be.reduce(function(r,i){return r.concat(e.filter(function(n){return n.phase===i}))},[])}function br(t){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(t())})})),e}}function yr(t){var e=t.reduce(function(r,i){var n=r[i.name];return r[i.name]=n?Object.assign({},n,i,{options:Object.assign({},n.options,i.options),data:Object.assign({},n.data,i.data)}):i,r},{});return Object.keys(e).map(function(r){return e[r]})}var Gt={placement:"bottom",modifiers:[],strategy:"absolute"};function Jt(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return!e.some(function(i){return!(i&&typeof i.getBoundingClientRect=="function")})}function _r(t){t===void 0&&(t={});var e=t,r=e.defaultModifiers,i=r===void 0?[]:r,n=e.defaultOptions,s=n===void 0?Gt:n;return function(l,a,u){u===void 0&&(u=s);var f={placement:"bottom",orderedModifiers:[],options:Object.assign({},Gt,s),modifiersData:{},elements:{reference:l,popper:a},attributes:{},styles:{}},d=[],c=!1,p={state:f,setOptions:function(_){var w=typeof _=="function"?_(f.options):_;m(),f.options=Object.assign({},s,f.options,w),f.scrollParents={reference:G(l)?ot(l):l.contextElement?ot(l.contextElement):[],popper:ot(a)};var $=gr(yr([].concat(i,f.options.modifiers)));return f.orderedModifiers=$.filter(function(h){return h.enabled}),v(),p.update()},forceUpdate:function(){if(!c){var _=f.elements,w=_.reference,$=_.popper;if(!!Jt(w,$)){f.rects={reference:hr(w,it($),f.options.strategy==="fixed"),popper:$t($)},f.reset=!1,f.placement=f.options.placement,f.orderedModifiers.forEach(function(k){return f.modifiersData[k.name]=Object.assign({},k.data)});for(var h=0;h<f.orderedModifiers.length;h++){if(f.reset===!0){f.reset=!1,h=-1;continue}var x=f.orderedModifiers[h],b=x.fn,y=x.options,O=y===void 0?{}:y,B=x.name;typeof b=="function"&&(f=b({state:f,options:O,name:B,instance:p})||f)}}}},update:br(function(){return new Promise(function(g){p.forceUpdate(),g(f)})}),destroy:function(){m(),c=!0}};if(!Jt(l,a))return p;p.setOptions(u).then(function(g){!c&&u.onFirstUpdate&&u.onFirstUpdate(g)});function v(){f.orderedModifiers.forEach(function(g){var _=g.name,w=g.options,$=w===void 0?{}:w,h=g.effect;if(typeof h=="function"){var x=h({state:f,name:_,instance:p,options:$}),b=function(){};d.push(x||b)}})}function m(){d.forEach(function(g){return g()}),d=[]}return p}}var wr=[qe,lr,Ve,Ae,or,er,cr,Fe,nr],$r=_r({defaultModifiers:wr}),xr={props:{size:String,sizePrefix:{type:String,default(){return this.$options.name&&this.$options.name.toLowerCase()}}},computed:{sizeableClassPrefix(){return this.sizePrefix},sizeableClass(){return!this.size||!this.sizeableClassPrefix?"":`${this.sizeableClassPrefix}-${this.size}`}}},Or={props:{variant:String,variantPrefix:{type:String,default(){return this.$options.name&&this.$options.name.toLowerCase()}}},computed:{variantClassPrefix(){return this.variantPrefix},variantClass(){return!this.variant||!this.variantClassPrefix?"":`${this.variantClassPrefix}-${this.variant}`}}},Cr=function(){var t=this,e=t.$createElement,r=t._self._c||e;return t.to?r("router-link",{class:t.classes,attrs:{to:t.to,disabled:t.disabled,role:"button"},on:{click:t.onClick}},[t._t("default")],2):t.href?r("a",{class:t.classes,attrs:{href:t.href,disabled:t.disabled,role:"button"},on:{click:t.onClick}},[t._t("default")],2):t.label?r("label",{class:t.classes,attrs:{disabled:t.disabled,role:"button"},on:{click:t.onClick}},[t._t("default")],2):r("button",{class:t.classes,attrs:{type:t.type,disabled:t.disabled},on:{click:t.onClick}},[t._t("default")],2)},kr=[];function Sr(t,e,r,i,n,s,o,l){var a=typeof t=="function"?t.options:t;e&&(a.render=e,a.staticRenderFns=r,a._compiled=!0),i&&(a.functional=!0),s&&(a._scopeId="data-v-"+s);var u;if(o?(u=function(c){c=c||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!c&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(c=__VUE_SSR_CONTEXT__),n&&n.call(this,c),c&&c._registeredComponents&&c._registeredComponents.add(o)},a._ssrRegister=u):n&&(u=l?function(){n.call(this,(a.functional?this.parent:this).$root.$options.shadowRoot)}:n),u)if(a.functional){a._injectStyles=u;var f=a.render;a.render=function(p,v){return u.call(v),f(p,v)}}else{var d=a.beforeCreate;a.beforeCreate=d?[].concat(d,u):[u]}return{exports:t,options:a}}const Br={name:"Btn",mixins:[xr,Or],props:{active:Boolean,block:Boolean,disabled:Boolean,href:String,label:Boolean,outline:Boolean,to:[Object,String],type:String},computed:{variantClassPrefix(){return this.variantPrefix+(this.outline?"-outline":"")},classes(){return["btn",this.variantClass,this.sizeableClass,this.block?"btn-block":"",this.active?"active":""]}},methods:{onClick(t){this.disabled?t.preventDefault():this.$emit("click",t)}}},Kt={};var Pr=Sr(Br,Cr,kr,!1,Er,null,null,null);function Er(t){for(let e in Kt)this[e]=Kt[e]}var Ar=function(){return Pr.exports}(),Rr={props:{size:String,sizePrefix:{type:String,default(){return this.$options.name&&this.$options.name.toLowerCase()}}},computed:{sizeableClassPrefix(){return this.sizePrefix},sizeableClass(){return!this.size||!this.sizeableClassPrefix?"":`${this.sizeableClassPrefix}-${this.size}`}}},Dr=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{class:t.classes,attrs:{"data-toggle":t.toggle?"buttons":!1,role:"group"}},[t._t("default")],2)},Tr=[];function jr(t,e,r,i,n,s,o,l){var a=typeof t=="function"?t.options:t;e&&(a.render=e,a.staticRenderFns=r,a._compiled=!0),i&&(a.functional=!0),s&&(a._scopeId="data-v-"+s);var u;if(o?(u=function(c){c=c||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!c&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(c=__VUE_SSR_CONTEXT__),n&&n.call(this,c),c&&c._registeredComponents&&c._registeredComponents.add(o)},a._ssrRegister=u):n&&(u=l?function(){n.call(this,(a.functional?this.parent:this).$root.$options.shadowRoot)}:n),u)if(a.functional){a._injectStyles=u;var f=a.render;a.render=function(p,v){return u.call(v),f(p,v)}}else{var d=a.beforeCreate;a.beforeCreate=d?[].concat(d,u):[u]}return{exports:t,options:a}}const zr={name:"BtnGroup",mixins:[Rr],props:{sizePrefix:{type:String,default(){return"btn-group"}},toggle:Boolean,vertical:Boolean},computed:{classes(){return{"btn-group":!this.vertical,"btn-group-toggle":this.toggle,"btn-group-vertical":this.vertical,[this.sizeableClass]:!!this.size}}}},Qt={};var Mr=jr(zr,Dr,Tr,!1,Fr,null,null,null);function Fr(t){for(let e in Qt)this[e]=Qt[e]}var Lr=function(){return Mr.exports}();function Z(t,e,r,i,n,s,o,l){var a=typeof t=="function"?t.options:t;e&&(a.render=e,a.staticRenderFns=r,a._compiled=!0),i&&(a.functional=!0),s&&(a._scopeId="data-v-"+s);var u;if(o?(u=function(c){c=c||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!c&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(c=__VUE_SSR_CONTEXT__),n&&n.call(this,c),c&&c._registeredComponents&&c._registeredComponents.add(o)},a._ssrRegister=u):n&&(u=l?function(){n.call(this,(a.functional?this.parent:this).$root.$options.shadowRoot)}:n),u)if(a.functional){a._injectStyles=u;var f=a.render;a.render=function(p,v){return u.call(v),f(p,v)}}else{var d=a.beforeCreate;a.beforeCreate=d?[].concat(d,u):[u]}return{exports:t,options:a}}function Bt(t,e){t.data.staticClass=`${t.data.staticClass||""} ${e}`.trim()}function Zt(t,e){return r=>{typeof e=="function"&&e(r),r.cancelBubble||t(r)}}function te(t,e){return t.data.on[e]||t.componentOptions&&t.componentOptions.listeners&&t.componentOptions.listeners[e]}const Wr={functional:!0,render(t,e){return e.children.filter(r=>!!r.tag).forEach((r,i)=>{r.data=Object.assign({staticClass:void 0},r.data),r.data.on||(r.data.on={});const n=r.data.staticClass&&r.data.staticClass.match(/dropdown-item/),s=r.data.staticClass&&r.data.staticClass.match(/dropdown-divider/);r.data.on.click=Zt(o=>{e.parent.$emit("click-item",o,r)},te(r,"click")),r.data.on.blur=Zt(o=>{e.parent.$emit("blur-item",o,r)},te(r,"blur")),r.tag.match(/^h\d$/)?Bt(r,"dropdown-header"):r.tag==="hr"&&!s?(r.tag="div",Bt(r,"dropdown-divider")):!n&&!s&&Bt(r,"dropdown-item")}),e.children}};let Nr,Vr;const ee={};var Hr=Z(Wr,Nr,Vr,!1,qr,null,null,null);function qr(t){for(let e in ee)this[e]=ee[e]}var Xr=function(){return Hr.exports}(),Ir=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"dropdown-menu",class:{"dropdown-menu-left":t.align==="left","dropdown-menu-right":t.align==="right",show:t.show},attrs:{"aria-labelledby":t.$attrs.id}},[r("dropdown-menu-items",[t._t("default")],2)],1)},Ur=[];const Yr={name:"DropdownMenu",components:{DropdownMenuItems:Xr},props:{align:{type:String,default:"left",validate(t){return["left","right"].indexOf(t.toLowerCase())!==-1}},show:Boolean}},re={};var Gr=Z(Yr,Ir,Ur,!1,Jr,null,null,null);function Jr(t){for(let e in re)this[e]=re[e]}var Kr=function(){return Gr.exports}(),Qr=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r(t.is,t._b({tag:"component",attrs:{id:t.id,"aria-haspopup":"true","aria-expanded":t.expanded,type:t.is==="button"?"button":void 0}},"component",t.to?{to:t.to}:{href:t.href},!1),[t._t("default")],2)},Zr=[];const tn={props:{expanded:{type:Boolean,default:!1},id:String,href:String,to:[String,Object]},computed:{is(){return this.to?"router-link":this.href?"a":"button"}}},ne={};var en=Z(tn,Qr,Zr,!1,rn,null,null,null);function rn(t){for(let e in ne)this[e]=ne[e]}var nn=function(){return en.exports}(),ie={components:{BtnDropdownAction:nn,BtnGroup:Lr,DropdownMenu:Kr},extends:Ar,props:{align:{type:String,default:"left",validate(t){return["left","right"].indexOf(t.toLowerCase())!==-1}},animated:{type:Boolean,default:!0},caret:{type:Boolean,default:!0},dropup:{type:Boolean,default:!1},dropright:{type:Boolean,default:!1},dropleft:{type:Boolean,default:!1},height:String,href:String,nav:Boolean,label:String,offset:{type:Number,default:5},rotate:{type:Boolean,default:!1},split:{type:Boolean,default:!1},to:[String,Object],type:{type:String,default:"button"},width:String},data(){return{popper:null,triggerAnimation:!1,expanded:!1}},computed:{placement(){return this.dropup?"top":this.dropleft?"left":this.dropright?"right":"bottom"},variantClassPrefix(){return"btn"+(this.outline?"-outline":"")},sizeableClassPrefix(){return"btn"},classes(){return{dropdown:this.dropup&&this.dropright&&this.dropleft,dropup:this.dropup,dropright:this.dropright,dropleft:this.dropleft,"icon-only":!this.nav&&!this.split&&!!this.$slots.icon&&!this.$slots.label,"hide-caret":!this.caret,expanded:this.expanded,"rotate-90":!this.nav&&this.split&&this.rotate&&this.expanded}},actionClasses(){return[!this.nav&&"btn",!this.nav&&this.size&&this.sizeableClass,!this.nav&&this.variant&&this.variantClass].filter(t=>!!t).join(" ")},toggleStyle(){return{width:this.width,height:this.height}},toggleClasses(){return[this.nav&&"nav-link",!this.nav&&"btn",!this.nav&&this.variantClass,this.sizeableClass,this.active?"active":"",this.block?"btn-block":"",!this.split&&this.rotate&&this.expanded?"rotate-90":"",!this.nav&&this.split?"dropdown-toggle-split":"","dropdown-toggle"].filter(t=>!!t).join(" ")}},beforeDestroy(){this.popper&&this.popper.destroy()},mounted(){},methods:{focus(){this.$el.querySelector(".dropdown-toggle").focus()},queryFocusable(){return this.$el.querySelector(".dropdown-menu").querySelectorAll('label, input, select, textarea, [tabindex]:not([tabindex="-1"])')},isFocusable(t){const e=this.queryFocusable();for(let r in e)if(t===e[r])return!0;return!1},toggle(t){this.expanded?this.hide():this.show()},show(){this.expanded=!0;const t=this.$refs.split&&this.$refs.split.$el||this.$el;!this.nav&&!this.popper?this.popper=$r(t,this.$refs.menu.$el,{placement:`${this.placement}-${this.align==="left"?"start":"end"}`,onFirstUpdate:()=>{this.triggerAnimation=this.animated},modifiers:[{name:"offset",options:{offset:[0,this.nav?1:this.offset]}}]}):this.popper&&this.popper.update()},hide(){this.expanded=!1},onBlur(t){this.$el.contains(t.relatedTarget)||this.hide()},onClickItem(t){this.isFocusable(t.target)||this.hide()},onClickToggle(t){this.$emit("click-toggle",t),t.defaultPrevented||this.toggle()}},watch:{expanded(t){this.$nextTick(()=>{this.$emit(t?"show":"hide"),this.$emit("toggle",t)})}}},an=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("btn-group",{staticClass:"btn-dropdown-split",class:t.classes,on:{click:t.onClick}},[t.dropleft?t._e():t._t("button",function(){return[t.dropleft?t._e():r("btn-dropdown-action",{ref:"button",class:t.actionClasses,attrs:{id:t.$attrs.id,expanded:t.expanded,href:t.href,to:t.to},nativeOn:{click:function(i){return function(n){return t.$emit("click",n)}.apply(null,arguments)}}},[t._t("icon"),t._t("label",function(){return[t._v(" "+t._s(t.label)+" ")]})],2)]},null,this),r("btn-group",{ref:"split"},[t._t("split",function(){return[t.split?r("button",{class:t.toggleClasses,attrs:{id:t.$attrs.id,type:"button","aria-haspopup":"true","aria-expanded":t.expanded},on:{blur:t.onBlur,click:t.onClickToggle}}):t._e()]},null,this),r("dropdown-menu",{ref:"menu",class:{animated:t.triggerAnimation},attrs:{id:t.$attrs.id,align:t.align,show:t.expanded},on:{"click-item":t.onClickItem,"blur-item":t.onBlur}},[t._t("default")],2)],2),t.dropleft?t._t("button",function(){return[t.dropleft?r("btn-dropdown-action",{ref:"button",class:t.actionClasses,attrs:{id:t.$attrs.id,expanded:t.expanded,href:t.href,to:t.to},nativeOn:{click:function(i){return function(n){return t.$emit("click",n)}.apply(null,arguments)}}},[t._t("icon"),t._t("label",function(){return[t._v(" "+t._s(t.label)+" ")]})],2):t._e()]},null,this):t._e()],2)},on=[];const sn={mixins:[ie]},ae={};var ln=Z(sn,an,on,!1,un,null,null,null);function un(t){for(let e in ae)this[e]=ae[e]}var fn=function(){return ln.exports}(),cn=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("btn-group",{class:t.classes},[t._t("button",function(){return[r("btn-dropdown-action",{ref:"button",class:t.toggleClasses,style:t.toggleStyle,attrs:{id:t.$attrs.id,expanded:t.expanded,href:t.href,to:t.to},nativeOn:{blur:function(i){return t.onBlur.apply(null,arguments)},click:function(i){return t.onClickToggle.apply(null,arguments)}}},[t._t("icon"),t._t("label",function(){return[t._v(" "+t._s(t.label)+" ")]})],2)]},null,this),r("dropdown-menu",{ref:"menu",class:{animated:t.triggerAnimation},attrs:{id:t.$attrs.id,align:t.align,show:t.expanded},on:{"blur-item":t.onBlur,"click-item":t.onClickItem}},[t._t("default")],2)],2)},pn=[];const dn={mixins:[ie]},oe={};var vn=Z(dn,cn,pn,!1,hn,null,null,null);function hn(t){for(let e in oe)this[e]=oe[e]}var mn=function(){return vn.exports}(),gn=function(){var t=this,e=this,r=e.$createElement,i=e._self._c||r;return i(e.$attrs.split===void 0||!!e.$attrs.nav?"btn-dropdown-single":"btn-dropdown-split",e._b({tag:"component",staticClass:"btn-dropdown",on:{click:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["click"].concat(s))},"click-toggle":function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["click-toggle"].concat(s))},dropdown:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["dropdown"].concat(s))},show:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["show"].concat(s))},hide:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["hide"].concat(s))},toggle:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];return(n=t).$emit.apply(n,["toggle"].concat(s))}},scopedSlots:e._u([{key:"icon",fn:function(){return[e._t("icon")]},proxy:!0},e.$attrs.label||this.$slots.label?{key:"label",fn:function(){return[e._t("label",function(){return[e._v(" "+e._s(e.$attrs.label)+" ")]})]},proxy:!0}:null,{key:"button",fn:function(n){return[e._t("button",null,null,n)]}},{key:"split",fn:function(n){return[e._t("split",null,null,n)]}}],null,!0)},"component",e.$attrs,!1),[e._t("default")],2)},bn=[],Pn="";const yn={name:"BtnDropdown",components:{BtnDropdownSplit:fn,BtnDropdownSingle:mn},inheritAttrs:!1},se={};var _n=Z(yn,gn,bn,!1,wn,null,null,null);function wn(t){for(let e in se)this[e]=se[e]}var $n=function(){return _n.exports}();H.BtnDropdown=$n,Object.defineProperty(H,"__esModule",{value:!0}),H[Symbol.toStringTag]="Module"});
|
package/index.js
ADDED
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vue-interface/btn-dropdown",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "A Vue button dropdown component.",
|
|
5
5
|
"files": [
|
|
6
|
+
"index.js",
|
|
6
7
|
"dist",
|
|
7
|
-
"
|
|
8
|
+
"src"
|
|
8
9
|
],
|
|
9
10
|
"main": "./dist/btn-dropdown.umd.js",
|
|
10
|
-
"module": "./
|
|
11
|
+
"module": "./index.js",
|
|
11
12
|
"browserslist": "last 2 versions, > 0.5%, ie >= 11",
|
|
12
13
|
"scripts": {
|
|
13
14
|
"dev": "vite",
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<component
|
|
3
|
+
:is="$attrs.split === undefined || !!$attrs.nav ? 'btn-dropdown-single' : 'btn-dropdown-split'"
|
|
4
|
+
class="btn-dropdown"
|
|
5
|
+
v-bind="$attrs"
|
|
6
|
+
@click="(...args) => this.$emit('click', ...args)"
|
|
7
|
+
@click-toggle="(...args) => this.$emit('click-toggle', ...args)"
|
|
8
|
+
@dropdown="(...args) => this.$emit('dropdown', ...args)"
|
|
9
|
+
@show="(...args) => this.$emit('show', ...args)"
|
|
10
|
+
@hide="(...args) => this.$emit('hide', ...args)"
|
|
11
|
+
@toggle="(...args) => this.$emit('toggle', ...args)">
|
|
12
|
+
<template #icon>
|
|
13
|
+
<slot name="icon" />
|
|
14
|
+
</template>
|
|
15
|
+
<template v-if="$attrs.label || this.$slots.label" #label>
|
|
16
|
+
<slot name="label">
|
|
17
|
+
{{ $attrs.label }}
|
|
18
|
+
</slot>
|
|
19
|
+
</template>
|
|
20
|
+
<template #button="slot">
|
|
21
|
+
<slot name="button" v-bind="slot" />
|
|
22
|
+
</template>
|
|
23
|
+
<template #split="slot">
|
|
24
|
+
<slot name="split" v-bind="slot" />
|
|
25
|
+
</template>
|
|
26
|
+
<slot />
|
|
27
|
+
</component>
|
|
28
|
+
</template>
|
|
29
|
+
|
|
30
|
+
<script>
|
|
31
|
+
import BtnDropdownSplit from './BtnDropdownSplit.vue';
|
|
32
|
+
import BtnDropdownSingle from './BtnDropdownSingle.vue';
|
|
33
|
+
|
|
34
|
+
export default {
|
|
35
|
+
|
|
36
|
+
name: 'BtnDropdown',
|
|
37
|
+
|
|
38
|
+
components: {
|
|
39
|
+
BtnDropdownSplit,
|
|
40
|
+
BtnDropdownSingle
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
inheritAttrs: false
|
|
44
|
+
|
|
45
|
+
};
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
<style>
|
|
49
|
+
@keyframes btnDropdownZoomIn {
|
|
50
|
+
from {
|
|
51
|
+
opacity: 0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
to {
|
|
55
|
+
opacity: 1;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
.btn-dropdown {
|
|
61
|
+
position: relative;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.btn-dropdown .dropdown-toggle {
|
|
65
|
+
display: flex;
|
|
66
|
+
transition: all 125ms ease-in;
|
|
67
|
+
align-items: center;
|
|
68
|
+
justify-content: center;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.nav-item .btn-group,
|
|
72
|
+
.nav-item .btn-dropdown .dropdown-toggle {
|
|
73
|
+
display: block;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.btn-dropdown.rounded-circle > .btn:last-child,
|
|
77
|
+
.btn-dropdown.rounded-circle > .btn-group:last-child .dropdown-toggle {
|
|
78
|
+
border-top-right-radius: 100%;
|
|
79
|
+
border-bottom-right-radius: 100%;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.btn-dropdown.rounded-circle > .btn:first-child,
|
|
83
|
+
.btn-dropdown.rounded-circle > .btn-group:first-child .dropdown-toggle {
|
|
84
|
+
border-top-left-radius: 100%;
|
|
85
|
+
border-bottom-left-radius: 100%;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.btn-dropdown .rounded-circle {
|
|
89
|
+
border-radius: 100%;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.btn-dropdown .rotate-90 {
|
|
93
|
+
transform: rotate(90deg);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.btn-dropdown.hide-caret .dropdown-toggle::after,
|
|
97
|
+
.btn-dropdown.icon-only .dropdown-toggle::after,
|
|
98
|
+
.btn-dropdown.hide-caret .dropdown-toggle::before,
|
|
99
|
+
.btn-dropdown.icon-only .dropdown-toggle::before {
|
|
100
|
+
display: none;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.btn-dropdown .dropdown-menu {
|
|
104
|
+
animation-timing-function: ease-in-out;
|
|
105
|
+
animation-duration: 200ms;
|
|
106
|
+
animation-fill-mode: both;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.btn-dropdown .dropdown-menu.animated {
|
|
110
|
+
animation-name: btnDropdownZoomIn;
|
|
111
|
+
}
|
|
112
|
+
</style>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<component
|
|
3
|
+
:is="is"
|
|
4
|
+
:id="id"
|
|
5
|
+
v-bind="to ? { to } : { href }"
|
|
6
|
+
aria-haspopup="true"
|
|
7
|
+
:aria-expanded="expanded"
|
|
8
|
+
:type="is === 'button' ? 'button': undefined">
|
|
9
|
+
<slot />
|
|
10
|
+
</component>
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<script>
|
|
14
|
+
export default {
|
|
15
|
+
props: {
|
|
16
|
+
expanded: {
|
|
17
|
+
type: Boolean,
|
|
18
|
+
default: false
|
|
19
|
+
},
|
|
20
|
+
id: String,
|
|
21
|
+
href: String,
|
|
22
|
+
to: [String, Object]
|
|
23
|
+
},
|
|
24
|
+
computed: {
|
|
25
|
+
is() {
|
|
26
|
+
if(this.to) {
|
|
27
|
+
return 'router-link';
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if(this.href) {
|
|
31
|
+
return 'a';
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return 'button';
|
|
35
|
+
},
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
</script>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<btn-group :class="classes">
|
|
3
|
+
<slot name="button" v-bind="this">
|
|
4
|
+
<btn-dropdown-action
|
|
5
|
+
:id="$attrs.id"
|
|
6
|
+
ref="button"
|
|
7
|
+
:expanded="expanded"
|
|
8
|
+
:href="href"
|
|
9
|
+
:to="to"
|
|
10
|
+
:style="toggleStyle"
|
|
11
|
+
:class="toggleClasses"
|
|
12
|
+
@blur.native="onBlur"
|
|
13
|
+
@click.native="onClickToggle">
|
|
14
|
+
<slot name="icon" />
|
|
15
|
+
<slot name="label">
|
|
16
|
+
{{ label }}
|
|
17
|
+
</slot>
|
|
18
|
+
</btn-dropdown-action>
|
|
19
|
+
</slot>
|
|
20
|
+
<dropdown-menu
|
|
21
|
+
:id="$attrs.id"
|
|
22
|
+
ref="menu"
|
|
23
|
+
:align="align"
|
|
24
|
+
:show="expanded"
|
|
25
|
+
:class="{animated: triggerAnimation}"
|
|
26
|
+
@blur-item="onBlur"
|
|
27
|
+
@click-item="onClickItem">
|
|
28
|
+
<slot />
|
|
29
|
+
</dropdown-menu>
|
|
30
|
+
</btn-group>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
<script>
|
|
34
|
+
import DropdownHandler from './DropdownHandler';
|
|
35
|
+
|
|
36
|
+
export default {
|
|
37
|
+
|
|
38
|
+
mixins: [
|
|
39
|
+
DropdownHandler
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
};
|
|
43
|
+
</script>
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<btn-group :class="classes" class="btn-dropdown-split" @click="onClick">
|
|
3
|
+
<slot v-if="!dropleft" name="button" v-bind="this">
|
|
4
|
+
<btn-dropdown-action
|
|
5
|
+
v-if="!dropleft"
|
|
6
|
+
:id="$attrs.id"
|
|
7
|
+
ref="button"
|
|
8
|
+
:expanded="expanded"
|
|
9
|
+
:href="href"
|
|
10
|
+
:to="to"
|
|
11
|
+
:class="actionClasses"
|
|
12
|
+
@click.native="e => $emit('click', e)">
|
|
13
|
+
<slot name="icon" />
|
|
14
|
+
<slot name="label">
|
|
15
|
+
{{ label }}
|
|
16
|
+
</slot>
|
|
17
|
+
</btn-dropdown-action>
|
|
18
|
+
</slot>
|
|
19
|
+
|
|
20
|
+
<btn-group ref="split">
|
|
21
|
+
<slot name="split" v-bind="this">
|
|
22
|
+
<button
|
|
23
|
+
v-if="split"
|
|
24
|
+
:id="$attrs.id"
|
|
25
|
+
type="button"
|
|
26
|
+
aria-haspopup="true"
|
|
27
|
+
:aria-expanded="expanded"
|
|
28
|
+
:class="toggleClasses"
|
|
29
|
+
@blur="onBlur"
|
|
30
|
+
@click="onClickToggle" />
|
|
31
|
+
</slot>
|
|
32
|
+
|
|
33
|
+
<dropdown-menu
|
|
34
|
+
:id="$attrs.id"
|
|
35
|
+
ref="menu"
|
|
36
|
+
:align="align"
|
|
37
|
+
:show="expanded"
|
|
38
|
+
:class="{animated: triggerAnimation}"
|
|
39
|
+
@click-item="onClickItem"
|
|
40
|
+
@blur-item="onBlur">
|
|
41
|
+
<slot />
|
|
42
|
+
</dropdown-menu>
|
|
43
|
+
</btn-group>
|
|
44
|
+
<slot v-if="dropleft" name="button" v-bind="this">
|
|
45
|
+
<btn-dropdown-action
|
|
46
|
+
v-if="dropleft"
|
|
47
|
+
:id="$attrs.id"
|
|
48
|
+
ref="button"
|
|
49
|
+
:expanded="expanded"
|
|
50
|
+
:href="href"
|
|
51
|
+
:to="to"
|
|
52
|
+
:class="actionClasses"
|
|
53
|
+
@click.native="e => $emit('click', e)">
|
|
54
|
+
<slot name="icon" />
|
|
55
|
+
<slot name="label">
|
|
56
|
+
{{ label }}
|
|
57
|
+
</slot>
|
|
58
|
+
</btn-dropdown-action>
|
|
59
|
+
</slot>
|
|
60
|
+
</btn-group>
|
|
61
|
+
</template>
|
|
62
|
+
|
|
63
|
+
<script>
|
|
64
|
+
import DropdownHandler from './DropdownHandler';
|
|
65
|
+
|
|
66
|
+
export default {
|
|
67
|
+
|
|
68
|
+
mixins: [
|
|
69
|
+
DropdownHandler
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
};
|
|
73
|
+
</script>
|
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
import { createPopper } from '@popperjs/core';
|
|
2
|
+
import { Btn } from '@vue-interface/btn';
|
|
3
|
+
import { BtnGroup } from '@vue-interface/btn-group';
|
|
4
|
+
import { DropdownMenu } from '@vue-interface/dropdown-menu';
|
|
5
|
+
import BtnDropdownAction from './BtnDropdownAction.vue';
|
|
6
|
+
|
|
7
|
+
const TAB_KEYCODE = 9;
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
|
|
11
|
+
components: {
|
|
12
|
+
BtnDropdownAction,
|
|
13
|
+
BtnGroup,
|
|
14
|
+
DropdownMenu
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
extends: Btn,
|
|
18
|
+
|
|
19
|
+
props: {
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Display the dropdown menu aligned left or right
|
|
23
|
+
*
|
|
24
|
+
* @property String
|
|
25
|
+
*/
|
|
26
|
+
align: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: 'left',
|
|
29
|
+
validate(value) {
|
|
30
|
+
return ['left', 'right'].indexOf(value.toLowerCase()) !== -1;
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Should animate the dropdown opening.
|
|
36
|
+
*
|
|
37
|
+
* @property {Boolean}
|
|
38
|
+
*/
|
|
39
|
+
animated: {
|
|
40
|
+
type: Boolean,
|
|
41
|
+
default: true
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
// buttonClass: String,
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Show the caret.
|
|
48
|
+
*
|
|
49
|
+
* @property {Boolean}
|
|
50
|
+
*/
|
|
51
|
+
caret: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: true
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Should display the toggle button as a circle.
|
|
58
|
+
*
|
|
59
|
+
* @property Boolean
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
// circle: {
|
|
63
|
+
// type: Boolean,
|
|
64
|
+
// default: false
|
|
65
|
+
// },
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Display as a dropup instead of a dropdown.
|
|
69
|
+
*
|
|
70
|
+
* @property Boolean
|
|
71
|
+
*/
|
|
72
|
+
dropup: {
|
|
73
|
+
type: Boolean,
|
|
74
|
+
default: false
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Display as a dropright instead of a dropdown.
|
|
79
|
+
*
|
|
80
|
+
* @property Boolean
|
|
81
|
+
*/
|
|
82
|
+
dropright: {
|
|
83
|
+
type: Boolean,
|
|
84
|
+
default: false
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Display as a dropleft instead of a dropdown.
|
|
89
|
+
*
|
|
90
|
+
* @property Boolean
|
|
91
|
+
*/
|
|
92
|
+
dropleft: {
|
|
93
|
+
type: Boolean,
|
|
94
|
+
default: false
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* The action height.
|
|
99
|
+
*
|
|
100
|
+
* @property {String}
|
|
101
|
+
*/
|
|
102
|
+
height: String,
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* The href action.
|
|
106
|
+
*
|
|
107
|
+
* @property {String}
|
|
108
|
+
*/
|
|
109
|
+
href: String,
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Is the dropdown a nav item?
|
|
113
|
+
*
|
|
114
|
+
* @property {Boolean}
|
|
115
|
+
*/
|
|
116
|
+
nav: Boolean,
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* The toggle button's label. If not defined as an attribute,
|
|
120
|
+
* you can override with the component's slot (inner html).
|
|
121
|
+
*
|
|
122
|
+
* @property {String}
|
|
123
|
+
*/
|
|
124
|
+
label: String,
|
|
125
|
+
|
|
126
|
+
offset: {
|
|
127
|
+
type: Number,
|
|
128
|
+
default: 5,
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Should rotate the toggle button when opened.
|
|
133
|
+
*
|
|
134
|
+
* @property {Boolean}
|
|
135
|
+
*/
|
|
136
|
+
rotate: {
|
|
137
|
+
type: Boolean,
|
|
138
|
+
default: false
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Display the dropdown button with a split toggle button.
|
|
143
|
+
*
|
|
144
|
+
* @property {Boolean}
|
|
145
|
+
*/
|
|
146
|
+
split: {
|
|
147
|
+
type: Boolean,
|
|
148
|
+
default: false
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* The "to" path, used for vue-router.
|
|
153
|
+
*
|
|
154
|
+
* @property {String|Object}
|
|
155
|
+
*/
|
|
156
|
+
to: [String, Object],
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* The button type attribute.
|
|
160
|
+
*
|
|
161
|
+
* @property {String}
|
|
162
|
+
*/
|
|
163
|
+
type: {
|
|
164
|
+
type: String,
|
|
165
|
+
default: 'button'
|
|
166
|
+
},
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* The action width.
|
|
170
|
+
*
|
|
171
|
+
* @property {String}
|
|
172
|
+
*/
|
|
173
|
+
width: String,
|
|
174
|
+
|
|
175
|
+
},
|
|
176
|
+
|
|
177
|
+
data() {
|
|
178
|
+
return {
|
|
179
|
+
popper: null,
|
|
180
|
+
triggerAnimation: false,
|
|
181
|
+
expanded: false
|
|
182
|
+
};
|
|
183
|
+
},
|
|
184
|
+
|
|
185
|
+
computed: {
|
|
186
|
+
placement() {
|
|
187
|
+
if(this.dropup) {
|
|
188
|
+
return 'top';
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if(this.dropleft) {
|
|
192
|
+
return 'left';
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
if(this.dropright) {
|
|
196
|
+
return 'right';
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
return 'bottom';
|
|
200
|
+
},
|
|
201
|
+
|
|
202
|
+
variantClassPrefix() {
|
|
203
|
+
return 'btn' + (this.outline ? '-outline' : '');
|
|
204
|
+
},
|
|
205
|
+
|
|
206
|
+
sizeableClassPrefix() {
|
|
207
|
+
return 'btn';
|
|
208
|
+
},
|
|
209
|
+
|
|
210
|
+
classes() {
|
|
211
|
+
return {
|
|
212
|
+
'dropdown': this.dropup && this.dropright && this.dropleft,
|
|
213
|
+
'dropup': this.dropup,
|
|
214
|
+
'dropright': this.dropright,
|
|
215
|
+
'dropleft': this.dropleft,
|
|
216
|
+
'icon-only': !this.nav && !this.split && !!this.$slots.icon && !this.$slots.label,
|
|
217
|
+
'hide-caret': !this.caret,
|
|
218
|
+
'expanded': this.expanded,
|
|
219
|
+
// 'rounded-circle': !this.nav && this.split && this.circle,
|
|
220
|
+
'rotate-90': !this.nav && this.split && this.rotate && this.expanded,
|
|
221
|
+
};
|
|
222
|
+
},
|
|
223
|
+
|
|
224
|
+
actionClasses() {
|
|
225
|
+
return [
|
|
226
|
+
!this.nav && 'btn',
|
|
227
|
+
!this.nav && this.size && this.sizeableClass,
|
|
228
|
+
!this.nav && this.variant && this.variantClass,
|
|
229
|
+
]
|
|
230
|
+
.filter(value => !!value)
|
|
231
|
+
.join(' ');
|
|
232
|
+
},
|
|
233
|
+
|
|
234
|
+
toggleStyle() {
|
|
235
|
+
return {
|
|
236
|
+
width: this.width,
|
|
237
|
+
height: this.height,
|
|
238
|
+
};
|
|
239
|
+
},
|
|
240
|
+
|
|
241
|
+
toggleClasses() {
|
|
242
|
+
return [
|
|
243
|
+
// this.buttonClass,
|
|
244
|
+
this.nav && 'nav-link',
|
|
245
|
+
!this.nav && 'btn',
|
|
246
|
+
!this.nav && this.variantClass,
|
|
247
|
+
this.sizeableClass,
|
|
248
|
+
this.active ? 'active' : '',
|
|
249
|
+
this.block ? 'btn-block' : '',
|
|
250
|
+
// !this.split && this.circle ? 'rounded-circle p-0' : '',
|
|
251
|
+
!this.split && this.rotate && this.expanded ? 'rotate-90' : '',
|
|
252
|
+
!this.nav && this.split ? 'dropdown-toggle-split' : '',
|
|
253
|
+
'dropdown-toggle',
|
|
254
|
+
]
|
|
255
|
+
.filter(value => !!value)
|
|
256
|
+
.join(' ');
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
|
|
260
|
+
beforeDestroy() {
|
|
261
|
+
this.popper && this.popper.destroy();
|
|
262
|
+
},
|
|
263
|
+
|
|
264
|
+
mounted() {
|
|
265
|
+
// const toggle = this.$el.querySelector('.dropdown-toggle');
|
|
266
|
+
|
|
267
|
+
// toggle.addEventListener('click', () => {
|
|
268
|
+
// if(!this.expanded) {
|
|
269
|
+
// toggle.blur();
|
|
270
|
+
// }
|
|
271
|
+
// });
|
|
272
|
+
|
|
273
|
+
// toggle.addEventListener('blur', this.onBlurItem);
|
|
274
|
+
|
|
275
|
+
// const menu = this.$el.querySelector('.dropdown-menu');
|
|
276
|
+
|
|
277
|
+
// menu.addEventListener('click', e => {
|
|
278
|
+
// if(e.target === menu) {
|
|
279
|
+
// toggle.focus();
|
|
280
|
+
// }
|
|
281
|
+
// });
|
|
282
|
+
},
|
|
283
|
+
|
|
284
|
+
methods: {
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Focus on the the dropdown toggle button
|
|
288
|
+
*
|
|
289
|
+
* @return void
|
|
290
|
+
*/
|
|
291
|
+
focus() {
|
|
292
|
+
this.$el.querySelector('.dropdown-toggle').focus();
|
|
293
|
+
},
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Focus on the the dropdown toggle button
|
|
297
|
+
*
|
|
298
|
+
* @return void
|
|
299
|
+
*/
|
|
300
|
+
queryFocusable() {
|
|
301
|
+
return this.$el.querySelector('.dropdown-menu').querySelectorAll('label, input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
302
|
+
},
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Method to check if the given element is focusable.
|
|
306
|
+
*
|
|
307
|
+
* @return void
|
|
308
|
+
*/
|
|
309
|
+
isFocusable(element) {
|
|
310
|
+
const nodes = this.queryFocusable();
|
|
311
|
+
|
|
312
|
+
for(let i in nodes) {
|
|
313
|
+
if(element === nodes[i]) {
|
|
314
|
+
return true;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
return false;
|
|
319
|
+
},
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Toggle the dropdown menu
|
|
323
|
+
*
|
|
324
|
+
* @return void
|
|
325
|
+
*/
|
|
326
|
+
toggle(e) {
|
|
327
|
+
!this.expanded ? this.show() : this.hide();
|
|
328
|
+
},
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Show the dropdown menu
|
|
332
|
+
*
|
|
333
|
+
* @return void
|
|
334
|
+
*/
|
|
335
|
+
show() {
|
|
336
|
+
this.expanded = true;
|
|
337
|
+
|
|
338
|
+
const target = this.$refs.split && this.$refs.split.$el || this.$el;
|
|
339
|
+
|
|
340
|
+
// Hack for popper for align="right"
|
|
341
|
+
// this.$refs.menu.$el.style.left = 'auto';
|
|
342
|
+
// this.$refs.menu.$el.style.right = 'auto';
|
|
343
|
+
|
|
344
|
+
if(!this.nav && !this.popper) {
|
|
345
|
+
this.popper = createPopper(target, this.$refs.menu.$el, {
|
|
346
|
+
placement: `${this.placement}-${this.align === 'left' ? 'start' : 'end'}`,
|
|
347
|
+
onFirstUpdate: () => {
|
|
348
|
+
this.triggerAnimation = this.animated;
|
|
349
|
+
},
|
|
350
|
+
modifiers: [
|
|
351
|
+
{
|
|
352
|
+
name: 'offset',
|
|
353
|
+
options: {
|
|
354
|
+
offset: [0, !this.nav ? this.offset : 1]
|
|
355
|
+
// offset: ['.125rem', !this.nav ? 4 : 1],
|
|
356
|
+
},
|
|
357
|
+
},
|
|
358
|
+
]
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
else if(this.popper) {
|
|
362
|
+
this.popper.update();
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* Hide the dropdown menu
|
|
368
|
+
*
|
|
369
|
+
* @return void
|
|
370
|
+
*/
|
|
371
|
+
hide() {
|
|
372
|
+
this.expanded = false;
|
|
373
|
+
},
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* A callback function for the `blur-item` event.
|
|
377
|
+
*
|
|
378
|
+
* @return void
|
|
379
|
+
*/
|
|
380
|
+
onBlur(e) {
|
|
381
|
+
if(!this.$el.contains(e.relatedTarget)) {
|
|
382
|
+
this.hide();
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* A callback function for the `click-item` event.
|
|
388
|
+
*
|
|
389
|
+
* @return void
|
|
390
|
+
*/
|
|
391
|
+
onClickItem(e) {
|
|
392
|
+
if(!this.isFocusable(e.target)) {
|
|
393
|
+
this.hide();
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* A callback function for the `click-toggle` event.
|
|
399
|
+
*
|
|
400
|
+
* @return void
|
|
401
|
+
*/
|
|
402
|
+
onClickToggle(e) {
|
|
403
|
+
this.$emit('click-toggle', e);
|
|
404
|
+
|
|
405
|
+
if(!e.defaultPrevented) {
|
|
406
|
+
this.toggle();
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
},
|
|
411
|
+
|
|
412
|
+
watch: {
|
|
413
|
+
expanded(value) {
|
|
414
|
+
this.$nextTick(() => {
|
|
415
|
+
this.$emit(value ? 'show' : 'hide');
|
|
416
|
+
this.$emit('toggle', value);
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
};
|