===========================================================
                                      .___ __  __   
          _________________  __ __  __| _/|__|/  |_ 
         / ___\_` __ \__  \ |  |  \/ __ | | \\_  __\
        / /_/  >  | \// __ \|  |  / /_/ | |  ||  |  
        \___  /|__|  (____  /____/\____ | |__||__|  
       /_____/            \/           \/           
              grep rough audit - static analysis tool
                  v2.8 written by @Wireghoul
=================================[justanotherhacker.com]===
orthanc-dicomweb-1.3+dfsg/Resources/Orthanc/CMake/Compiler.cmake-227-  message("Building using Emscripten (for WebAssembly or asm.js targets)")
orthanc-dicomweb-1.3+dfsg/Resources/Orthanc/CMake/Compiler.cmake:228:  include(${CMAKE_CURRENT_LIST_DIR}/EmscriptenParameters.cmake)
orthanc-dicomweb-1.3+dfsg/Resources/Orthanc/CMake/Compiler.cmake-229-  
##############################################
orthanc-dicomweb-1.3+dfsg/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake-426-  include(FindPythonInterp)
orthanc-dicomweb-1.3+dfsg/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake:427:  include(${CMAKE_CURRENT_LIST_DIR}/Compiler.cmake)
orthanc-dicomweb-1.3+dfsg/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake:428:  include(${CMAKE_CURRENT_LIST_DIR}/DownloadPackage.cmake)
orthanc-dicomweb-1.3+dfsg/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake:429:  include(${CMAKE_CURRENT_LIST_DIR}/AutoGeneratedCode.cmake)
orthanc-dicomweb-1.3+dfsg/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake-430-  set(EMBED_RESOURCES_PYTHON ${CMAKE_CURRENT_LIST_DIR}/EmbedResources.py)
##############################################
orthanc-dicomweb-1.3+dfsg/Resources/RunCppCheck.sh-44-            -D__linux__ \
orthanc-dicomweb-1.3+dfsg/Resources/RunCppCheck.sh:45:            -DEM_ASM \
orthanc-dicomweb-1.3+dfsg/Resources/RunCppCheck.sh-46-            -UNDEBUG \
##############################################
orthanc-dicomweb-1.3+dfsg/Resources/Samples/Proxy/nginx.local.conf-24-    # types {
orthanc-dicomweb-1.3+dfsg/Resources/Samples/Proxy/nginx.local.conf:25:    #    application/wasm                      wasm; 
orthanc-dicomweb-1.3+dfsg/Resources/Samples/Proxy/nginx.local.conf-26-    # }
##############################################
orthanc-dicomweb-1.3+dfsg/Resources/holy-build-box-compile.sh-24-
orthanc-dicomweb-1.3+dfsg/Resources/holy-build-box-compile.sh:25:ROOT_DIR=`dirname $(readlink -f $0)`/..
orthanc-dicomweb-1.3+dfsg/Resources/holy-build-box-compile.sh-26-
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/babel-polyfill/polyfill.min.js-2-119:[function(t,n,r){var e=t(28);n.exports=function(t){return Object(e(t))}},{28:28}],120:[function(t,n,r){var e=t(51);n.exports=function(t,n){if(!e(t))return t;var r,i;if(n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;if("function"==typeof(r=t.valueOf)&&!e(i=r.call(t)))return i;if(!n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},{51:51}],121:[function(t,n,r){"use strict";if(t(29)){var e=t(60),i=t(40),o=t(35),u=t(33),c=t(123),a=t(122),f=t(25),s=t(6),l=t(92),h=t(42),v=t(93),p=t(116),d=t(118),y=t(115),g=t(114),m=t(120),b=t(41),x=t(17),S=t(51),w=t(119),_=t(48),E=t(71),O=t(79),P=t(77).f,M=t(129),F=t(124),I=t(128),A=t(12),k=t(11),N=t(104),j=t(141),T=t(58),R=t(56),L=t(100),G=t(9),D=t(8),C=t(72),W=t(75),U=C.f,B=W.f,V=i.RangeError,z=i.TypeError,q=i.Uint8Array,K=Array.prototype,Y=a.ArrayBuffer,J=a.DataView,H=A(0),X=A(2),$=A(3),Z=A(4),Q=A(5),tt=A(6),nt=k(!0),rt=k(!1),et=j.values,it=j.keys,ot=j.entries,ut=K.lastIndexOf,ct=K.reduce,at=K.reduceRight,ft=K.join,st=K.sort,lt=K.slice,ht=K.toString,vt=K.toLocaleString,pt=I("iterator"),dt=I("toStringTag"),yt=F("typed_constructor"),gt=F("def_constructor"),mt=c.CONSTR,bt=c.TYPED,xt=c.VIEW,St=A(1,function(t,n){return Pt(N(t,t[gt]),n)}),wt=o(function(){return 1===new q(new Uint16Array([1]).buffer)[0]}),_t=!!q&&!!q.prototype.set&&o(function(){new q(1).set({})}),Et=function(t,n){var r=p(t);if(r<0||r%n)throw V("Wrong offset!");return r},Ot=function(t){if(S(t)&&bt in t)return t;throw z(t+" is not a typed array!")},Pt=function(t,n){if(!(S(t)&&yt in t))throw z("It is not a typed array constructor!");return new t(n)},Mt=function(t,n){return Ft(N(t,t[gt]),n)},Ft=function(t,n){for(var r=0,e=n.length,i=Pt(t,e);e>r;)i[r]=n[r++];return i},It=function(t,n,r){U(t,n,{get:function(){return this._d[r]}})},At=function from(t){var n,r,e,i,o,u,c=w(t),a=arguments.length,s=a>1?arguments[1]:void 0,l=void 0!==s,h=M(c);if(void 0!=h&&!_(h)){for(u=h.call(c),e=[],n=0;!(o=u.next()).done;n++)e.push(o.value);c=e}for(l&&a>2&&(s=f(s,arguments[2],2)),n=0,r=d(c.length),i=Pt(this,r);r>n;n++)i[n]=l?s(c[n],n):c[n];return i},kt=function of(){for(var t=0,n=arguments.length,r=Pt(this,n);n>t;)r[t]=arguments[t++];return r},Nt=!!q&&o(function(){vt.call(new q(1))}),jt=function toLocaleString(){return vt.apply(Nt?lt.call(Ot(this)):Ot(this),arguments)},Tt={copyWithin:function copyWithin(t,n){return D.call(Ot(this),t,n,arguments.length>2?arguments[2]:void 0)},every:function every(t){return Z(Ot(this),t,arguments.length>1?arguments[1]:void 0)},fill:function fill(t){return G.apply(Ot(this),arguments)},filter:function filter(t){return Mt(this,X(Ot(this),t,arguments.length>1?arguments[1]:void 0))},find:function find(t){return Q(Ot(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function findIndex(t){return tt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function forEach(t){H(Ot(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function indexOf(t){return rt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},includes:function includes(t){return nt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},join:function join(t){return ft.apply(Ot(this),arguments)},lastIndexOf:function lastIndexOf(t){return ut.apply(Ot(this),arguments)},map:function map(t){return St(Ot(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function reduce(t){return ct.apply(Ot(this),arguments)},reduceRight:function reduceRight(t){return at.apply(Ot(this),arguments)},reverse:function reverse(){for(var t,n=this,r=Ot(n).length,e=Math.floor(r/2),i=0;i<e;)t=n[i],n[i++]=n[--r],n[r]=t;return n},some:function some(t){return $(Ot(this),t,arguments.length>1?arguments[1]:void 0)},sort:function sort(t){return st.call(Ot(this),t)},subarray:function subarray(t,n){var r=Ot(this),e=r.length,i=g(t,e);return new(N(r,r[gt]))(r.buffer,r.byteOffset+i*r.BYTES_PER_ELEMENT,d((void 0===n?e:g(n,e))-i))}},Rt=function slice(t,n){return Mt(this,lt.call(Ot(this),t,n))},Lt=function set(t){Ot(this);var n=Et(arguments[1],1),r=this.length,e=w(t),i=d(e.length),o=0;if(i+n>r)throw V("Wrong length!");for(;o<i;)this[n+o]=e[o++]},Gt={entries:function entries(){return ot.call(Ot(this))},keys:function keys(){return it.call(Ot(this))},values:function values(){return et.call(Ot(this))}},Dt=function(t,n){return S(t)&&t[bt]&&"symbol"!=typeof n&&n in t&&String(+n)==String(n)},Ct=function getOwnPropertyDescriptor(t,n){return Dt(t,n=m(n,!0))?l(2,t[n]):B(t,n)},Wt=function defineProperty(t,n,r){return!(Dt(t,n=m(n,!0))&&S(r)&&b(r,"value"))||b(r,"get")||b(r,"set")||r.configurable||b(r,"writable")&&!r.writable||b(r,"enumerable")&&!r.enumerable?U(t,n,r):(t[n]=r.value,t)};mt||(W.f=Ct,C.f=Wt),u(u.S+u.F*!mt,"Object",{getOwnPropertyDescriptor:Ct,defineProperty:Wt}),o(function(){ht.call({})})&&(ht=vt=function toString(){return ft.call(this)});var Ut=v({},Tt);v(Ut,Gt),h(Ut,pt,Gt.values),v(Ut,{slice:Rt,set:Lt,constructor:function(){},toString:ht,toLocaleString:jt}),It(Ut,"buffer","b"),It(Ut,"byteOffset","o"),It(Ut,"byteLength","l"),It(Ut,"length","e"),U(Ut,dt,{get:function(){return this[bt]}}),n.exports=function(t,n,r,a){a=!!a;var f=t+(a?"Clamped":"")+"Array",l="get"+t,v="set"+t,p=i[f],g=p||{},m=p&&O(p),b=!p||!c.ABV,w={},_=p&&p.prototype,M=function(t,r){var e=t._d;return e.v[l](r*n+e.o,wt)},F=function(t,r,e){var i=t._d;a&&(e=(e=Math.round(e))<0?0:e>255?255:255&e),i.v[v](r*n+i.o,e,wt)},I=function(t,n){U(t,n,{get:function(){return M(this,n)},set:function(t){return F(this,n,t)},enumerable:!0})};b?(p=r(function(t,r,e,i){s(t,p,f,"_d");var o,u,c,a,l=0,v=0;if(S(r)){if(!(r instanceof Y||"ArrayBuffer"==(a=x(r))||"SharedArrayBuffer"==a))return bt in r?Ft(p,r):At.call(p,r);o=r,v=Et(e,n);var g=r.byteLength;if(void 0===i){if(g%n)throw V("Wrong length!");if((u=g-v)<0)throw V("Wrong length!")}else if((u=d(i)*n)+v>g)throw V("Wrong length!");c=u/n}else c=y(r),u=c*n,o=new Y(u);for(h(t,"_d",{b:o,o:v,l:u,e:c,v:new J(o)});l<c;)I(t,l++)}),_=p.prototype=E(Ut),h(_,"constructor",p)):o(function(){p(1)})&&o(function(){new p(-1)})&&R(function(t){new p,new p(null),new p(1.5),new p(t)},!0)||(p=r(function(t,r,e,i){s(t,p,f);var o;return S(r)?r instanceof Y||"ArrayBuffer"==(o=x(r))||"SharedArrayBuffer"==o?void 0!==i?new g(r,Et(e,n),i):void 0!==e?new g(r,Et(e,n)):new g(r):bt in r?Ft(p,r):At.call(p,r):new g(y(r))}),H(m!==Function.prototype?P(g).concat(P(m)):P(g),function(t){t in p||h(p,t,g[t])}),p.prototype=_,e||(_.constructor=p));var A=_[pt],k=!!A&&("values"==A.name||void 0==A.name),N=Gt.values;h(p,yt,!0),h(_,bt,f),h(_,xt,!0),h(_,gt,p),(a?new p(1)[dt]==f:dt in _)||U(_,dt,{get:function(){return f}}),w[f]=p,u(u.G+u.W+u.F*(p!=g),w),u(u.S,f,{BYTES_PER_ELEMENT:n}),u(u.S+u.F*o(function(){g.of.call(p,1)}),f,{from:At,of:kt}),"BYTES_PER_ELEMENT"in _||h(_,"BYTES_PER_ELEMENT",n),u(u.P,f,Tt),L(f),u(u.P+u.F*_t,f,{set:Lt}),u(u.P+u.F*!k,f,Gt),e||_.toString==ht||(_.toString=ht),u(u.P+u.F*o(function(){new p(1).slice()}),f,{slice:Rt}),u(u.P+u.F*(o(function(){return[1,2].toLocaleString()!=new p([1,2]).toLocaleString()})||!o(function(){_.toLocaleString.call([1,2])})),f,{toLocaleString:jt}),T[f]=k?A:N,e||k||h(_,pt,N)}}else n.exports=function(){}},{100:100,104:104,11:11,114:114,115:115,116:116,118:118,119:119,12:12,120:120,122:122,123:123,124:124,128:128,129:129,141:141,17:17,25:25,29:29,33:33,35:35,40:40,41:41,42:42,48:48,51:51,56:56,58:58,6:6,60:60,71:71,72:72,75:75,77:77,79:79,8:8,9:9,92:92,93:93}],122:[function(t,n,r){"use strict";function packIEEE754(t,n,r){var e,i,o,u=Array(r),c=8*r-n-1,a=(1<<c)-1,f=a>>1,s=23===n?M(2,-24)-M(2,-77):0,l=0,h=t<0||0===t&&1/t<0?1:0;for(t=P(t),t!=t||t===E?(i=t!=t?1:0,e=a):(e=F(I(t)/A),t*(o=M(2,-e))<1&&(e--,o*=2),t+=e+f>=1?s/o:s*M(2,1-f),t*o>=2&&(e++,o/=2),e+f>=a?(i=0,e=a):e+f>=1?(i=(t*o-1)*M(2,n),e+=f):(i=t*M(2,f-1)*M(2,n),e=0));n>=8;u[l++]=255&i,i/=256,n-=8);for(e=e<<n|i,c+=n;c>0;u[l++]=255&e,e/=256,c-=8);return u[--l]|=128*h,u}function unpackIEEE754(t,n,r){var e,i=8*r-n-1,o=(1<<i)-1,u=o>>1,c=i-7,a=r-1,f=t[a--],s=127&f;for(f>>=7;c>0;s=256*s+t[a],a--,c-=8);for(e=s&(1<<-c)-1,s>>=-c,c+=n;c>0;e=256*e+t[a],a--,c-=8);if(0===s)s=1-u;else{if(s===o)return e?NaN:f?-E:E;e+=M(2,n),s-=u}return(f?-1:1)*e*M(2,s-n)}function unpackI32(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function packI8(t){return[255&t]}function packI16(t){return[255&t,t>>8&255]}function packI32(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function packF64(t){return packIEEE754(t,52,8)}function packF32(t){return packIEEE754(t,23,4)}function addGetter(t,n,r){d(t[m],n,{get:function(){return this[r]}})}function get(t,n,r,e){var i=+r,o=v(i);if(o+n>t[N])throw _(b);var u=t[k]._b,c=o+t[j],a=u.slice(c,c+n);return e?a:a.reverse()}function set(t,n,r,e,i,o){var u=+r,c=v(u);if(c+n>t[N])throw _(b);for(var a=t[k]._b,f=c+t[j],s=e(+i),l=0;l<n;l++)a[f+l]=s[o?l:n-l-1]}var e=t(40),i=t(29),o=t(60),u=t(123),c=t(42),a=t(93),f=t(35),s=t(6),l=t(116),h=t(118),v=t(115),p=t(77).f,d=t(72).f,y=t(9),g=t(101),m="prototype",b="Wrong index!",x=e.ArrayBuffer,S=e.DataView,w=e.Math,_=e.RangeError,E=e.Infinity,O=x,P=w.abs,M=w.pow,F=w.floor,I=w.log,A=w.LN2,k=i?"_b":"buffer",N=i?"_l":"byteLength",j=i?"_o":"byteOffset";if(u.ABV){if(!f(function(){x(1)})||!f(function(){new x(-1)})||f(function(){return new x,new x(1.5),new x(NaN),"ArrayBuffer"!=x.name})){x=function ArrayBuffer(t){return s(this,x),new O(v(t))};for(var T,R=x[m]=O[m],L=p(O),G=0;L.length>G;)(T=L[G++])in x||c(x,T,O[T]);o||(R.constructor=x)}var D=new S(new x(2)),C=S[m].setInt8;D.setInt8(0,2147483648),D.setInt8(1,2147483649),!D.getInt8(0)&&D.getInt8(1)||a(S[m],{setInt8:function setInt8(t,n){C.call(this,t,n<<24>>24)},setUint8:function setUint8(t,n){C.call(this,t,n<<24>>24)}},!0)}else x=function ArrayBuffer(t){s(this,x,"ArrayBuffer");var n=v(t);this._b=y.call(Array(n),0),this[N]=n},S=function DataView(t,n,r){s(this,S,"DataView"),s(t,x,"DataView");var e=t[N],i=l(n);if(i<0||i>e)throw _("Wrong offset!");if(r=void 0===r?e-i:h(r),i+r>e)throw _("Wrong length!");this[k]=t,this[j]=i,this[N]=r},i&&(addGetter(x,"byteLength","_l"),addGetter(S,"buffer","_b"),addGetter(S,"byteLength","_l"),addGetter(S,"byteOffset","_o")),a(S[m],{getInt8:function getInt8(t){return get(this,1,t)[0]<<24>>24},getUint8:function getUint8(t){return get(this,1,t)[0]},getInt16:function getInt16(t){var n=get(this,2,t,arguments[1]);return(n[1]<<8|n[0])<<16>>16},getUint16:function getUint16(t){var n=get(this,2,t,arguments[1]);return n[1]<<8|n[0]},getInt32:function getInt32(t){return unpackI32(get(this,4,t,arguments[1]))},getUint32:function getUint32(t){return unpackI32(get(this,4,t,arguments[1]))>>>0},getFloat32:function getFloat32(t){return unpackIEEE754(get(this,4,t,arguments[1]),23,4)},getFloat64:function getFloat64(t){return unpackIEEE754(get(this,8,t,arguments[1]),52,8)},setInt8:function setInt8(t,n){set(this,1,t,packI8,n)},setUint8:function setUint8(t,n){set(this,1,t,packI8,n)},setInt16:function setInt16(t,n){set(this,2,t,packI16,n,arguments[2])},setUint16:function setUint16(t,n){set(this,2,t,packI16,n,arguments[2])},setInt32:function setInt32(t,n){set(this,4,t,packI32,n,arguments[2])},setUint32:function setUint32(t,n){set(this,4,t,packI32,n,arguments[2])},setFloat32:function setFloat32(t,n){set(this,4,t,packF32,n,arguments[2])},setFloat64:function setFloat64(t,n){set(this,8,t,packF64,n,arguments[2])}});g(x,"ArrayBuffer"),g(S,"DataView"),c(S[m],u.VIEW,!0),r.ArrayBuffer=x,r.DataView=S},{101:101,115:115,116:116,118:118,123:123,29:29,35:35,40:40,42:42,6:6,60:60,72:72,77:77,9:9,93:93}],123:[function(t,n,r){for(var e,i=t(40),o=t(42),u=t(124),c=u("typed_array"),a=u("view"),f=!(!i.ArrayBuffer||!i.DataView),s=f,l=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(e=i[h[l++]])?(o(e.prototype,c,!0),o(e.prototype,a,!0)):s=!1;n.exports={ABV:f,CONSTR:s,TYPED:c,VIEW:a}},{124:124,40:40,42:42}],124:[function(t,n,r){var e=0,i=Math.random();n.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+i).toString(36))}},{}],125:[function(t,n,r){var e=t(51);n.exports=function(t,n){if(!e(t)||t._t!==n)throw TypeError("Incompatible receiver, "+n+" required!");return t}},{51:51}],126:[function(t,n,r){var e=t(40),i=t(23),o=t(60),u=t(127),c=t(72).f;n.exports=function(t){var n=i.Symbol||(i.Symbol=o?{}:e.Symbol||{});"_"==t.charAt(0)||t in n||c(n,t,{value:u.f(t)})}},{127:127,23:23,40:40,60:60,72:72}],127:[function(t,n,r){r.f=t(128)},{128:128}],128:[function(t,n,r){var e=t(103)("wks"),i=t(124),o=t(40).Symbol,u="function"==typeof o;(n.exports=function(t){return e[t]||(e[t]=u&&o[t]||(u?o:i)("Symbol."+t))}).store=e},{103:103,124:124,40:40}],129:[function(t,n,r){var e=t(17),i=t(128)("iterator"),o=t(58);n.exports=t(23).getIteratorMethod=function(t){if(void 0!=t)return t[i]||t["@@iterator"]||o[e(t)]}},{128:128,17:17,23:23,58:58}],130:[function(t,n,r){var e=t(33),i=t(95)(/[\\^$*+?.()|[\]{}]/g,"\\$&");e(e.S,"RegExp",{escape:function escape(t){return i(t)}})},{33:33,95:95}],131:[function(t,n,r){var e=t(33);e(e.P,"Array",{copyWithin:t(8)}),t(5)("copyWithin")},{33:33,5:5,8:8}],132:[function(t,n,r){"use strict";var e=t(33),i=t(12)(4);e(e.P+e.F*!t(105)([].every,!0),"Array",{every:function every(t){return i(this,t,arguments[1])}})},{105:105,12:12,33:33}],133:[function(t,n,r){var e=t(33);e(e.P,"Array",{fill:t(9)}),t(5)("fill")},{33:33,5:5,9:9}],134:[function(t,n,r){"use strict";var e=t(33),i=t(12)(2);e(e.P+e.F*!t(105)([].filter,!0),"Array",{filter:function filter(t){return i(this,t,arguments[1])}})},{105:105,12:12,33:33}],135:[function(t,n,r){"use strict";var e=t(33),i=t(12)(6),o="findIndex",u=!0;o in[]&&Array(1)[o](function(){u=!1}),e(e.P+e.F*u,"Array",{findIndex:function findIndex(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),t(5)(o)},{12:12,33:33,5:5}],136:[function(t,n,r){"use strict";var e=t(33),i=t(12)(5),o=!0;"find"in[]&&Array(1).find(function(){o=!1}),e(e.P+e.F*o,"Array",{find:function find(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),t(5)("find")},{12:12,33:33,5:5}],137:[function(t,n,r){"use strict";var e=t(33),i=t(12)(0),o=t(105)([].forEach,!0);e(e.P+e.F*!o,"Array",{forEach:function forEach(t){return i(this,t,arguments[1])}})},{105:105,12:12,33:33}],138:[function(t,n,r){"use strict";var e=t(25),i=t(33),o=t(119),u=t(53),c=t(48),a=t(118),f=t(24),s=t(129);i(i.S+i.F*!t(56)(function(t){Array.from(t)}),"Array",{from:function from(t){var n,r,i,l,h=o(t),v="function"==typeof this?this:Array,p=arguments.length,d=p>1?arguments[1]:void 0,y=void 0!==d,g=0,m=s(h);if(y&&(d=e(d,p>2?arguments[2]:void 0,2)),void 0==m||v==Array&&c(m))for(n=a(h.length),r=new v(n);n>g;g++)f(r,g,y?d(h[g],g):h[g]);else for(l=m.call(h),r=new v;!(i=l.next()).done;g++)f(r,g,y?u(l,d,[i.value,g],!0):i.value);return r.length=g,r}})},{118:118,119:119,129:129,24:24,25:25,33:33,48:48,53:53,56:56}],139:[function(t,n,r){"use strict";var e=t(33),i=t(11)(!1),o=[].indexOf,u=!!o&&1/[1].indexOf(1,-0)<0;e(e.P+e.F*(u||!t(105)(o)),"Array",{indexOf:function indexOf(t){return u?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},{105:105,11:11,33:33}],140:[function(t,n,r){var e=t(33);e(e.S,"Array",{isArray:t(49)})},{33:33,49:49}],141:[function(t,n,r){"use strict";var e=t(5),i=t(57),o=t(58),u=t(117);n.exports=t(55)(Array,"Array",function(t,n){this._t=u(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,i(1)):"keys"==n?i(0,r):"values"==n?i(0,t[r]):i(0,[r,t[r]])},"values"),o.Arguments=o.Array,e("keys"),e("values"),e("entries")},{117:117,5:5,55:55,57:57,58:58}],142:[function(t,n,r){"use strict";var e=t(33),i=t(117),o=[].join;e(e.P+e.F*(t(47)!=Object||!t(105)(o)),"Array",{join:function join(t){return o.call(i(this),void 0===t?",":t)}})},{105:105,117:117,33:33,47:47}],143:[function(t,n,r){"use strict";var e=t(33),i=t(117),o=t(116),u=t(118),c=[].lastIndexOf,a=!!c&&1/[1].lastIndexOf(1,-0)<0;e(e.P+e.F*(a||!t(105)(c)),"Array",{lastIndexOf:function lastIndexOf(t){if(a)return c.apply(this,arguments)||0;var n=i(this),r=u(n.length),e=r-1;for(arguments.length>1&&(e=Math.min(e,o(arguments[1]))),e<0&&(e=r+e);e>=0;e--)if(e in n&&n[e]===t)return e||0;return-1}})},{105:105,116:116,117:117,118:118,33:33}],144:[function(t,n,r){"use strict";var e=t(33),i=t(12)(1);e(e.P+e.F*!t(105)([].map,!0),"Array",{map:function map(t){return i(this,t,arguments[1])}})},{105:105,12:12,33:33}],145:[function(t,n,r){"use strict";var e=t(33),i=t(24);e(e.S+e.F*t(35)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var t=0,n=arguments.length,r=new("function"==typeof this?this:Array)(n);n>t;)i(r,t,arguments[t++]);return r.length=n,r}})},{24:24,33:33,35:35}],146:[function(t,n,r){"use strict";var e=t(33),i=t(13);e(e.P+e.F*!t(105)([].reduceRight,!0),"Array",{reduceRight:function reduceRight(t){return i(this,t,arguments.length,arguments[1],!0)}})},{105:105,13:13,33:33}],147:[function(t,n,r){"use strict";var e=t(33),i=t(13);e(e.P+e.F*!t(105)([].reduce,!0),"Array",{reduce:function reduce(t){return i(this,t,arguments.length,arguments[1],!1)}})},{105:105,13:13,33:33}],148:[function(t,n,r){"use strict";var e=t(33),i=t(43),o=t(18),u=t(114),c=t(118),a=[].slice;e(e.P+e.F*t(35)(function(){i&&a.call(i)}),"Array",{slice:function slice(t,n){var r=c(this.length),e=o(this);if(n=void 0===n?r:n,"Array"==e)return a.call(this,t,n);for(var i=u(t,r),f=u(n,r),s=c(f-i),l=Array(s),h=0;h<s;h++)l[h]="String"==e?this.charAt(i+h):this[i+h];return l}})},{114:114,118:118,18:18,33:33,35:35,43:43}],149:[function(t,n,r){"use strict";var e=t(33),i=t(12)(3);e(e.P+e.F*!t(105)([].some,!0),"Array",{some:function some(t){return i(this,t,arguments[1])}})},{105:105,12:12,33:33}],150:[function(t,n,r){"use strict";var e=t(33),i=t(3),o=t(119),u=t(35),c=[].sort,a=[1,2,3];e(e.P+e.F*(u(function(){a.sort(void 0)})||!u(function(){a.sort(null)})||!t(105)(c)),"Array",{sort:function sort(t){return void 0===t?c.call(o(this)):c.call(o(this),i(t))}})},{105:105,119:119,3:3,33:33,35:35}],151:[function(t,n,r){t(100)("Array")},{100:100}],152:[function(t,n,r){var e=t(33);e(e.S,"Date",{now:function(){return(new Date).getTime()}})},{33:33}],153:[function(t,n,r){var e=t(33),i=t(26);e(e.P+e.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},{26:26,33:33}],154:[function(t,n,r){"use strict";var e=t(33),i=t(119),o=t(120);e(e.P+e.F*t(35)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function toJSON(t){var n=i(this),r=o(n);return"number"!=typeof r||isFinite(r)?n.toISOString():null}})},{119:119,120:120,33:33,35:35}],155:[function(t,n,r){var e=t(128)("toPrimitive"),i=Date.prototype;e in i||t(42)(i,e,t(27))},{128:128,27:27,42:42}],156:[function(t,n,r){var e=Date.prototype,i=e.toString,o=e.getTime;new Date(NaN)+""!="Invalid Date"&&t(94)(e,"toString",function toString(){var t=o.call(this);return t===t?i.call(this):"Invalid Date"})},{94:94}],157:[function(t,n,r){var e=t(33);e(e.P,"Function",{bind:t(16)})},{16:16,33:33}],158:[function(t,n,r){"use strict";var e=t(51),i=t(79),o=t(128)("hasInstance"),u=Function.prototype;o in u||t(72).f(u,o,{value:function(t){if("function"!=typeof this||!e(t))return!1;if(!e(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},{128:128,51:51,72:72,79:79}],159:[function(t,n,r){var e=t(72).f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||t(29)&&e(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},{29:29,72:72}],160:[function(t,n,r){"use strict";var e=t(19),i=t(125);n.exports=t(22)("Map",function(t){return function Map(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function get(t){var n=e.getEntry(i(this,"Map"),t);return n&&n.v},set:function set(t,n){return e.def(i(this,"Map"),0===t?0:t,n)}},e,!0)},{125:125,19:19,22:22}],161:[function(t,n,r){var e=t(33),i=t(63),o=Math.sqrt,u=Math.acosh;e(e.S+e.F*!(u&&710==Math.floor(u(Number.MAX_VALUE))&&u(1/0)==1/0),"Math",{acosh:function acosh(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},{33:33,63:63}],162:[function(t,n,r){function asinh(t){return isFinite(t=+t)&&0!=t?t<0?-asinh(-t):Math.log(t+Math.sqrt(t*t+1)):t}var e=t(33),i=Math.asinh;e(e.S+e.F*!(i&&1/i(0)>0),"Math",{asinh:asinh})},{33:33}],163:[function(t,n,r){var e=t(33),i=Math.atanh;e(e.S+e.F*!(i&&1/i(-0)<0),"Math",{atanh:function atanh(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},{33:33}],164:[function(t,n,r){var e=t(33),i=t(65);e(e.S,"Math",{cbrt:function cbrt(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},{33:33,65:65}],165:[function(t,n,r){var e=t(33);e(e.S,"Math",{clz32:function clz32(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},{33:33}],166:[function(t,n,r){var e=t(33),i=Math.exp;e(e.S,"Math",{cosh:function cosh(t){return(i(t=+t)+i(-t))/2}})},{33:33}],167:[function(t,n,r){var e=t(33),i=t(61);e(e.S+e.F*(i!=Math.expm1),"Math",{expm1:i})},{33:33,61:61}],168:[function(t,n,r){var e=t(33);e(e.S,"Math",{fround:t(62)})},{33:33,62:62}],169:[function(t,n,r){var e=t(33),i=Math.abs;e(e.S,"Math",{hypot:function hypot(t,n){for(var r,e,o=0,u=0,c=arguments.length,a=0;u<c;)r=i(arguments[u++]),a<r?(e=a/r,o=o*e*e+1,a=r):r>0?(e=r/a,o+=e*e):o+=r;return a===1/0?1/0:a*Math.sqrt(o)}})},{33:33}],170:[function(t,n,r){var e=t(33),i=Math.imul;e(e.S+e.F*t(35)(function(){return-5!=i(4294967295,5)||2!=i.length}),"Math",{imul:function imul(t,n){var r=+t,e=+n,i=65535&r,o=65535&e;return 0|i*o+((65535&r>>>16)*o+i*(65535&e>>>16)<<16>>>0)}})},{33:33,35:35}],171:[function(t,n,r){var e=t(33);e(e.S,"Math",{log10:function log10(t){return Math.log(t)*Math.LOG10E}})},{33:33}],172:[function(t,n,r){var e=t(33);e(e.S,"Math",{log1p:t(63)})},{33:33,63:63}],173:[function(t,n,r){var e=t(33);e(e.S,"Math",{log2:function log2(t){return Math.log(t)/Math.LN2}})},{33:33}],174:[function(t,n,r){var e=t(33);e(e.S,"Math",{sign:t(65)})},{33:33,65:65}],175:[function(t,n,r){var e=t(33),i=t(61),o=Math.exp;e(e.S+e.F*t(35)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function sinh(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},{33:33,35:35,61:61}],176:[function(t,n,r){var e=t(33),i=t(61),o=Math.exp;e(e.S,"Math",{tanh:function tanh(t){var n=i(t=+t),r=i(-t);return n==1/0?1:r==1/0?-1:(n-r)/(o(t)+o(-t))}})},{33:33,61:61}],177:[function(t,n,r){var e=t(33);e(e.S,"Math",{trunc:function trunc(t){return(t>0?Math.floor:Math.ceil)(t)}})},{33:33}],178:[function(t,n,r){"use strict";var e=t(40),i=t(41),o=t(18),u=t(45),c=t(120),a=t(35),f=t(77).f,s=t(75).f,l=t(72).f,h=t(111).trim,v=e.Number,p=v,d=v.prototype,y="Number"==o(t(71)(d)),g="trim"in String.prototype,m=function(t){var n=c(t,!1);if("string"==typeof n&&n.length>2){n=g?n.trim():h(n,3);var r,e,i,o=n.charCodeAt(0);if(43===o||45===o){if(88===(r=n.charCodeAt(2))||120===r)return NaN}else if(48===o){switch(n.charCodeAt(1)){case 66:case 98:e=2,i=49;break;case 79:case 111:e=8,i=55;break;default:return+n}for(var u,a=n.slice(2),f=0,s=a.length;f<s;f++)if((u=a.charCodeAt(f))<48||u>i)return NaN;return parseInt(a,e)}}return+n};if(!v(" 0o1")||!v("0b1")||v("+0x1")){v=function Number(t){var n=arguments.length<1?0:t,r=this;return r instanceof v&&(y?a(function(){d.valueOf.call(r)}):"Number"!=o(r))?u(new p(m(n)),r,v):m(n)};for(var b,x=t(29)?f(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),S=0;x.length>S;S++)i(p,b=x[S])&&!i(v,b)&&l(v,b,s(p,b));v.prototype=d,d.constructor=v,t(94)(e,"Number",v)}},{111:111,120:120,18:18,29:29,35:35,40:40,41:41,45:45,71:71,72:72,75:75,77:77,94:94}],179:[function(t,n,r){var e=t(33);e(e.S,"Number",{EPSILON:Math.pow(2,-52)})},{33:33}],180:[function(t,n,r){var e=t(33),i=t(40).isFinite;e(e.S,"Number",{isFinite:function isFinite(t){return"number"==typeof t&&i(t)}})},{33:33,40:40}],181:[function(t,n,r){var e=t(33);e(e.S,"Number",{isInteger:t(50)})},{33:33,50:50}],182:[function(t,n,r){var e=t(33);e(e.S,"Number",{isNaN:function isNaN(t){return t!=t}})},{33:33}],183:[function(t,n,r){var e=t(33),i=t(50),o=Math.abs;e(e.S,"Number",{isSafeInteger:function isSafeInteger(t){return i(t)&&o(t)<=9007199254740991}})},{33:33,50:50}],184:[function(t,n,r){var e=t(33);e(e.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{33:33}],185:[function(t,n,r){var e=t(33);e(e.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},{33:33}],186:[function(t,n,r){var e=t(33),i=t(86);e(e.S+e.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},{33:33,86:86}],187:[function(t,n,r){var e=t(33),i=t(87);e(e.S+e.F*(Number.parseInt!=i),"Number",{parseInt:i})},{33:33,87:87}],188:[function(t,n,r){"use strict";var e=t(33),i=t(116),o=t(4),u=t(110),c=1..toFixed,a=Math.floor,f=[0,0,0,0,0,0],s="Number.toFixed: incorrect invocation!",l=function(t,n){for(var r=-1,e=n;++r<6;)e+=t*f[r],f[r]=e%1e7,e=a(e/1e7)},h=function(t){for(var n=6,r=0;--n>=0;)r+=f[n],f[n]=a(r/t),r=r%t*1e7},v=function(){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==f[t]){var r=String(f[t]);n=""===n?r:n+u.call("0",7-r.length)+r}return n},p=function(t,n,r){return 0===n?r:n%2==1?p(t,n-1,r*t):p(t*t,n/2,r)},d=function(t){for(var n=0,r=t;r>=4096;)n+=12,r/=4096;for(;r>=2;)n+=1,r/=2;return n};e(e.P+e.F*(!!c&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!t(35)(function(){c.call({})})),"Number",{toFixed:function toFixed(t){var n,r,e,c,a=o(this,s),f=i(t),y="",g="0";if(f<0||f>20)throw RangeError(s);if(a!=a)return"NaN";if(a<=-1e21||a>=1e21)return String(a);if(a<0&&(y="-",a=-a),a>1e-21)if(n=d(a*p(2,69,1))-69,r=n<0?a*p(2,-n,1):a/p(2,n,1),r*=4503599627370496,(n=52-n)>0){for(l(0,r),e=f;e>=7;)l(1e7,0),e-=7;for(l(p(10,e,1),0),e=n-1;e>=23;)h(1<<23),e-=23;h(1<<e),l(1,1),h(2),g=v()}else l(0,r),l(1<<-n,0),g=v()+u.call("0",f);return f>0?(c=g.length,g=y+(c<=f?"0."+u.call("0",f-c)+g:g.slice(0,c-f)+"."+g.slice(c-f))):g=y+g,g}})},{110:110,116:116,33:33,35:35,4:4}],189:[function(t,n,r){"use strict";var e=t(33),i=t(35),o=t(4),u=1..toPrecision;e(e.P+e.F*(i(function(){return"1"!==u.call(1,void 0)})||!i(function(){u.call({})})),"Number",{toPrecision:function toPrecision(t){var n=o(this,"Number#toPrecision: incorrect invocation!");return void 0===t?u.call(n):u.call(n,t)}})},{33:33,35:35,4:4}],190:[function(t,n,r){var e=t(33);e(e.S+e.F,"Object",{assign:t(70)})},{33:33,70:70}],191:[function(t,n,r){var e=t(33);e(e.S,"Object",{create:t(71)})},{33:33,71:71}],192:[function(t,n,r){var e=t(33);e(e.S+e.F*!t(29),"Object",{defineProperties:t(73)})},{29:29,33:33,73:73}],193:[function(t,n,r){var e=t(33);e(e.S+e.F*!t(29),"Object",{defineProperty:t(72).f})},{29:29,33:33,72:72}],194:[function(t,n,r){var e=t(51),i=t(66).onFreeze;t(83)("freeze",function(t){return function freeze(n){return t&&e(n)?t(i(n)):n}})},{51:51,66:66,83:83}],195:[function(t,n,r){var e=t(117),i=t(75).f;t(83)("getOwnPropertyDescriptor",function(){return function getOwnPropertyDescriptor(t,n){return i(e(t),n)}})},{117:117,75:75,83:83}],196:[function(t,n,r){t(83)("getOwnPropertyNames",function(){return t(76).f})},{76:76,83:83}],197:[function(t,n,r){var e=t(119),i=t(79);t(83)("getPrototypeOf",function(){return function getPrototypeOf(t){return i(e(t))}})},{119:119,79:79,83:83}],198:[function(t,n,r){var e=t(51);t(83)("isExtensible",function(t){return function isExtensible(n){return!!e(n)&&(!t||t(n))}})},{51:51,83:83}],199:[function(t,n,r){var e=t(51);t(83)("isFrozen",function(t){return function isFrozen(n){return!e(n)||!!t&&t(n)}})},{51:51,83:83}],200:[function(t,n,r){var e=t(51);t(83)("isSealed",function(t){return function isSealed(n){return!e(n)||!!t&&t(n)}})},{51:51,83:83}],201:[function(t,n,r){var e=t(33);e(e.S,"Object",{is:t(96)})},{33:33,96:96}],202:[function(t,n,r){var e=t(119),i=t(81);t(83)("keys",function(){return function keys(t){return i(e(t))}})},{119:119,81:81,83:83}],203:[function(t,n,r){var e=t(51),i=t(66).onFreeze;t(83)("preventExtensions",function(t){return function preventExtensions(n){return t&&e(n)?t(i(n)):n}})},{51:51,66:66,83:83}],204:[function(t,n,r){var e=t(51),i=t(66).onFreeze;t(83)("seal",function(t){return function seal(n){return t&&e(n)?t(i(n)):n}})},{51:51,66:66,83:83}],205:[function(t,n,r){var e=t(33);e(e.S,"Object",{setPrototypeOf:t(99).set})},{33:33,99:99}],206:[function(t,n,r){"use strict";var e=t(17),i={};i[t(128)("toStringTag")]="z",i+""!="[object z]"&&t(94)(Object.prototype,"toString",function toString(){return"[object "+e(this)+"]"},!0)},{128:128,17:17,94:94}],207:[function(t,n,r){var e=t(33),i=t(86);e(e.G+e.F*(parseFloat!=i),{parseFloat:i})},{33:33,86:86}],208:[function(t,n,r){var e=t(33),i=t(87);e(e.G+e.F*(parseInt!=i),{parseInt:i})},{33:33,87:87}],209:[function(t,n,r){"use strict";var e,i,o,u,c=t(60),a=t(40),f=t(25),s=t(17),l=t(33),h=t(51),v=t(3),p=t(6),d=t(39),y=t(104),g=t(113).set,m=t(68)(),b=t(69),x=t(90),S=t(91),w=a.TypeError,_=a.process,E=a.Promise,O="process"==s(_),P=function(){},M=i=b.f,F=!!function(){try{var n=E.resolve(1),r=(n.constructor={})[t(128)("species")]=function(t){t(P,P)};return(O||"function"==typeof PromiseRejectionEvent)&&n.then(P)instanceof r}catch(t){}}(),I=c?function(t,n){return t===n||t===E&&n===u}:function(t,n){return t===n},A=function(t){var n;return!(!h(t)||"function"!=typeof(n=t.then))&&n},k=function(t,n){if(!t._n){t._n=!0;var r=t._c;m(function(){for(var e=t._v,i=1==t._s,o=0;r.length>o;)!function(n){var r,o,u=i?n.ok:n.fail,c=n.resolve,a=n.reject,f=n.domain;try{u?(i||(2==t._h&&T(t),t._h=1),!0===u?r=e:(f&&f.enter(),r=u(e),f&&f.exit()),r===n.promise?a(w("Promise-chain cycle")):(o=A(r))?o.call(r,c,a):c(r)):a(e)}catch(t){a(t)}}(r[o++]);t._c=[],t._n=!1,n&&!t._h&&N(t)})}},N=function(t){g.call(a,function(){var n,r,e,i=t._v,o=j(t);if(o&&(n=x(function(){O?_.emit("unhandledRejection",i,t):(r=a.onunhandledrejection)?r({promise:t,reason:i}):(e=a.console)&&e.error&&e.error("Unhandled promise rejection",i)}),t._h=O||j(t)?2:1),t._a=void 0,o&&n.e)throw n.v})},j=function(t){if(1==t._h)return!1;for(var n,r=t._a||t._c,e=0;r.length>e;)if(n=r[e++],n.fail||!j(n.promise))return!1;return!0},T=function(t){g.call(a,function(){var n;O?_.emit("rejectionHandled",t):(n=a.onrejectionhandled)&&n({promise:t,reason:t._v})})},R=function(t){var n=this;n._d||(n._d=!0,n=n._w||n,n._v=t,n._s=2,n._a||(n._a=n._c.slice()),k(n,!0))},L=function(t){var n,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===t)throw w("Promise can't be resolved itself");(n=A(t))?m(function(){var e={_w:r,_d:!1};try{n.call(t,f(L,e,1),f(R,e,1))}catch(t){R.call(e,t)}}):(r._v=t,r._s=1,k(r,!1))}catch(t){R.call({_w:r,_d:!1},t)}}};F||(E=function Promise(t){p(this,E,"Promise","_h"),v(t),e.call(this);try{t(f(L,this,1),f(R,this,1))}catch(t){R.call(this,t)}},e=function Promise(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},e.prototype=t(93)(E.prototype,{then:function then(t,n){var r=M(y(this,E));return r.ok="function"!=typeof t||t,r.fail="function"==typeof n&&n,r.domain=O?_.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&k(this,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new e;this.promise=t,this.resolve=f(L,t,1),this.reject=f(R,t,1)},b.f=M=function(t){return I(E,t)?new o(t):i(t)}),l(l.G+l.W+l.F*!F,{Promise:E}),t(101)(E,"Promise"),t(100)("Promise"),u=t(23).Promise,l(l.S+l.F*!F,"Promise",{reject:function reject(t){var n=M(this);return(0,n.reject)(t),n.promise}}),l(l.S+l.F*(c||!F),"Promise",{resolve:function resolve(t){return t instanceof E&&I(t.constructor,this)?t:S(this,t)}}),l(l.S+l.F*!(F&&t(56)(function(t){E.all(t).catch(P)})),"Promise",{all:function all(t){var n=this,r=M(n),e=r.resolve,i=r.reject,o=x(function(){var r=[],o=0,u=1;d(t,!1,function(t){var c=o++,a=!1;r.push(void 0),u++,n.resolve(t).then(function(t){a||(a=!0,r[c]=t,--u||e(r))},i)}),--u||e(r)});return o.e&&i(o.v),r.promise},race:function race(t){var n=this,r=M(n),e=r.reject,i=x(function(){d(t,!1,function(t){n.resolve(t).then(r.resolve,e)})});return i.e&&e(i.v),r.promise}})},{100:100,101:101,104:104,113:113,128:128,17:17,23:23,25:25,
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/babel-polyfill/polyfill.min.js:3:3:3,33:33,39:39,40:40,51:51,56:56,6:6,60:60,68:68,69:69,90:90,91:91,93:93}],210:[function(t,n,r){var e=t(33),i=t(3),o=t(7),u=(t(40).Reflect||{}).apply,c=Function.apply;e(e.S+e.F*!t(35)(function(){u(function(){})}),"Reflect",{apply:function apply(t,n,r){var e=i(t),a=o(r);return u?u(e,n,a):c.call(e,n,a)}})},{3:3,33:33,35:35,40:40,7:7}],211:[function(t,n,r){var e=t(33),i=t(71),o=t(3),u=t(7),c=t(51),a=t(35),f=t(16),s=(t(40).Reflect||{}).construct,l=a(function(){function F(){}return!(s(function(){},[],F)instanceof F)}),h=!a(function(){s(function(){})});e(e.S+e.F*(l||h),"Reflect",{construct:function construct(t,n){o(t),u(n);var r=arguments.length<3?t:o(arguments[2]);if(h&&!l)return s(t,n,r);if(t==r){switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3])}var e=[null];return e.push.apply(e,n),new(f.apply(t,e))}var a=r.prototype,v=i(c(a)?a:Object.prototype),p=Function.apply.call(t,v,n);return c(p)?p:v}})},{16:16,3:3,33:33,35:35,40:40,51:51,7:7,71:71}],212:[function(t,n,r){var e=t(72),i=t(33),o=t(7),u=t(120);i(i.S+i.F*t(35)(function(){Reflect.defineProperty(e.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(t,n,r){o(t),n=u(n,!0),o(r);try{return e.f(t,n,r),!0}catch(t){return!1}}})},{120:120,33:33,35:35,7:7,72:72}],213:[function(t,n,r){var e=t(33),i=t(75).f,o=t(7);e(e.S,"Reflect",{deleteProperty:function deleteProperty(t,n){var r=i(o(t),n);return!(r&&!r.configurable)&&delete t[n]}})},{33:33,7:7,75:75}],214:[function(t,n,r){"use strict";var e=t(33),i=t(7),o=function(t){this._t=i(t),this._i=0;var n,r=this._k=[];for(n in t)r.push(n)};t(54)(o,"Object",function(){var t,n=this,r=n._k;do{if(n._i>=r.length)return{value:void 0,done:!0}}while(!((t=r[n._i++])in n._t));return{value:t,done:!1}}),e(e.S,"Reflect",{enumerate:function enumerate(t){return new o(t)}})},{33:33,54:54,7:7}],215:[function(t,n,r){var e=t(75),i=t(33),o=t(7);i(i.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(t,n){return e.f(o(t),n)}})},{33:33,7:7,75:75}],216:[function(t,n,r){var e=t(33),i=t(79),o=t(7);e(e.S,"Reflect",{getPrototypeOf:function getPrototypeOf(t){return i(o(t))}})},{33:33,7:7,79:79}],217:[function(t,n,r){function get(t,n){var r,u,f=arguments.length<3?t:arguments[2];return a(t)===f?t[n]:(r=e.f(t,n))?o(r,"value")?r.value:void 0!==r.get?r.get.call(f):void 0:c(u=i(t))?get(u,n,f):void 0}var e=t(75),i=t(79),o=t(41),u=t(33),c=t(51),a=t(7);u(u.S,"Reflect",{get:get})},{33:33,41:41,51:51,7:7,75:75,79:79}],218:[function(t,n,r){var e=t(33);e(e.S,"Reflect",{has:function has(t,n){return n in t}})},{33:33}],219:[function(t,n,r){var e=t(33),i=t(7),o=Object.isExtensible;e(e.S,"Reflect",{isExtensible:function isExtensible(t){return i(t),!o||o(t)}})},{33:33,7:7}],220:[function(t,n,r){var e=t(33);e(e.S,"Reflect",{ownKeys:t(85)})},{33:33,85:85}],221:[function(t,n,r){var e=t(33),i=t(7),o=Object.preventExtensions;e(e.S,"Reflect",{preventExtensions:function preventExtensions(t){i(t);try{return o&&o(t),!0}catch(t){return!1}}})},{33:33,7:7}],222:[function(t,n,r){var e=t(33),i=t(99);i&&e(e.S,"Reflect",{setPrototypeOf:function setPrototypeOf(t,n){i.check(t,n);try{return i.set(t,n),!0}catch(t){return!1}}})},{33:33,99:99}],223:[function(t,n,r){function set(t,n,r){var c,l,h=arguments.length<4?t:arguments[3],v=i.f(f(t),n);if(!v){if(s(l=o(t)))return set(l,n,r,h);v=a(0)}return u(v,"value")?!(!1===v.writable||!s(h))&&(c=i.f(h,n)||a(0),c.value=r,e.f(h,n,c),!0):void 0!==v.set&&(v.set.call(h,r),!0)}var e=t(72),i=t(75),o=t(79),u=t(41),c=t(33),a=t(92),f=t(7),s=t(51);c(c.S,"Reflect",{set:set})},{33:33,41:41,51:51,7:7,72:72,75:75,79:79,92:92}],224:[function(t,n,r){var e=t(40),i=t(45),o=t(72).f,u=t(77).f,c=t(52),a=t(37),f=e.RegExp,s=f,l=f.prototype,h=/a/g,v=/a/g,p=new f(h)!==h;if(t(29)&&(!p||t(35)(function(){return v[t(128)("match")]=!1,f(h)!=h||f(v)==v||"/a/i"!=f(h,"i")}))){f=function RegExp(t,n){var r=this instanceof f,e=c(t),o=void 0===n;return!r&&e&&t.constructor===f&&o?t:i(p?new s(e&&!o?t.source:t,n):s((e=t instanceof f)?t.source:t,e&&o?a.call(t):n),r?this:l,f)};for(var d=u(s),y=0;d.length>y;)!function(t){t in f||o(f,t,{configurable:!0,get:function(){return s[t]},set:function(n){s[t]=n}})}(d[y++]);l.constructor=f,f.prototype=l,t(94)(e,"RegExp",f)}t(100)("RegExp")},{100:100,128:128,29:29,35:35,37:37,40:40,45:45,52:52,72:72,77:77,94:94}],225:[function(t,n,r){t(29)&&"g"!=/./g.flags&&t(72).f(RegExp.prototype,"flags",{configurable:!0,get:t(37)})},{29:29,37:37,72:72}],226:[function(t,n,r){t(36)("match",1,function(t,n,r){return[function match(r){"use strict";var e=t(this),i=void 0==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},r]})},{36:36}],227:[function(t,n,r){t(36)("replace",2,function(t,n,r){return[function replace(e,i){"use strict";var o=t(this),u=void 0==e?void 0:e[n];return void 0!==u?u.call(e,o,i):r.call(String(o),e,i)},r]})},{36:36}],228:[function(t,n,r){t(36)("search",1,function(t,n,r){return[function search(r){"use strict";var e=t(this),i=void 0==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},r]})},{36:36}],229:[function(t,n,r){t(36)("split",2,function(n,r,e){"use strict";var i=t(52),o=e,u=[].push,c="length";if("c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1)[c]||2!="ab".split(/(?:ab)*/)[c]||4!=".".split(/(.?)(.?)/)[c]||".".split(/()()/)[c]>1||"".split(/.?/)[c]){var a=void 0===/()??/.exec("")[1];e=function(t,n){var r=String(this);if(void 0===t&&0===n)return[];if(!i(t))return o.call(r,t,n);var e,f,s,l,h,v=[],p=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),d=0,y=void 0===n?4294967295:n>>>0,g=new RegExp(t.source,p+"g");for(a||(e=new RegExp("^"+g.source+"$(?!\\s)",p));(f=g.exec(r))&&!((s=f.index+f[0][c])>d&&(v.push(r.slice(d,f.index)),!a&&f[c]>1&&f[0].replace(e,function(){for(h=1;h<arguments[c]-2;h++)void 0===arguments[h]&&(f[h]=void 0)}),f[c]>1&&f.index<r[c]&&u.apply(v,f.slice(1)),l=f[0][c],d=s,v[c]>=y));)g.lastIndex===f.index&&g.lastIndex++;return d===r[c]?!l&&g.test("")||v.push(""):v.push(r.slice(d)),v[c]>y?v.slice(0,y):v}}else"0".split(void 0,0)[c]&&(e=function(t,n){return void 0===t&&0===n?[]:o.call(this,t,n)});return[function split(t,i){var o=n(this),u=void 0==t?void 0:t[r];return void 0!==u?u.call(t,o,i):e.call(String(o),t,i)},e]})},{36:36,52:52}],230:[function(t,n,r){"use strict";t(225);var e=t(7),i=t(37),o=t(29),u=/./.toString,c=function(n){t(94)(RegExp.prototype,"toString",n,!0)};t(35)(function(){return"/a/b"!=u.call({source:"a",flags:"b"})})?c(function toString(){var t=e(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)}):"toString"!=u.name&&c(function toString(){return u.call(this)})},{225:225,29:29,35:35,37:37,7:7,94:94}],231:[function(t,n,r){"use strict";var e=t(19),i=t(125);n.exports=t(22)("Set",function(t){return function Set(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function add(t){return e.def(i(this,"Set"),t=0===t?0:t,t)}},e)},{125:125,19:19,22:22}],232:[function(t,n,r){"use strict";t(108)("anchor",function(t){return function anchor(n){return t(this,"a","name",n)}})},{108:108}],233:[function(t,n,r){"use strict";t(108)("big",function(t){return function big(){return t(this,"big","","")}})},{108:108}],234:[function(t,n,r){"use strict";t(108)("blink",function(t){return function blink(){return t(this,"blink","","")}})},{108:108}],235:[function(t,n,r){"use strict";t(108)("bold",function(t){return function bold(){return t(this,"b","","")}})},{108:108}],236:[function(t,n,r){"use strict";var e=t(33),i=t(106)(!1);e(e.P,"String",{codePointAt:function codePointAt(t){return i(this,t)}})},{106:106,33:33}],237:[function(t,n,r){"use strict";var e=t(33),i=t(118),o=t(107),u="".endsWith;e(e.P+e.F*t(34)("endsWith"),"String",{endsWith:function endsWith(t){var n=o(this,t,"endsWith"),r=arguments.length>1?arguments[1]:void 0,e=i(n.length),c=void 0===r?e:Math.min(i(r),e),a=String(t);return u?u.call(n,a,c):n.slice(c-a.length,c)===a}})},{107:107,118:118,33:33,34:34}],238:[function(t,n,r){"use strict";t(108)("fixed",function(t){return function fixed(){return t(this,"tt","","")}})},{108:108}],239:[function(t,n,r){"use strict";t(108)("fontcolor",function(t){return function fontcolor(n){return t(this,"font","color",n)}})},{108:108}],240:[function(t,n,r){"use strict";t(108)("fontsize",function(t){return function fontsize(n){return t(this,"font","size",n)}})},{108:108}],241:[function(t,n,r){var e=t(33),i=t(114),o=String.fromCharCode,u=String.fromCodePoint;e(e.S+e.F*(!!u&&1!=u.length),"String",{fromCodePoint:function fromCodePoint(t){for(var n,r=[],e=arguments.length,u=0;e>u;){if(n=+arguments[u++],i(n,1114111)!==n)throw RangeError(n+" is not a valid code point");r.push(n<65536?o(n):o(55296+((n-=65536)>>10),n%1024+56320))}return r.join("")}})},{114:114,33:33}],242:[function(t,n,r){"use strict";var e=t(33),i=t(107);e(e.P+e.F*t(34)("includes"),"String",{includes:function includes(t){return!!~i(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},{107:107,33:33,34:34}],243:[function(t,n,r){"use strict";t(108)("italics",function(t){return function italics(){return t(this,"i","","")}})},{108:108}],244:[function(t,n,r){"use strict";var e=t(106)(!0);t(55)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})})},{106:106,55:55}],245:[function(t,n,r){"use strict";t(108)("link",function(t){return function link(n){return t(this,"a","href",n)}})},{108:108}],246:[function(t,n,r){var e=t(33),i=t(117),o=t(118);e(e.S,"String",{raw:function raw(t){for(var n=i(t.raw),r=o(n.length),e=arguments.length,u=[],c=0;r>c;)u.push(String(n[c++])),c<e&&u.push(String(arguments[c]));return u.join("")}})},{117:117,118:118,33:33}],247:[function(t,n,r){var e=t(33);e(e.P,"String",{repeat:t(110)})},{110:110,33:33}],248:[function(t,n,r){"use strict";t(108)("small",function(t){return function small(){return t(this,"small","","")}})},{108:108}],249:[function(t,n,r){"use strict";var e=t(33),i=t(118),o=t(107),u="".startsWith;e(e.P+e.F*t(34)("startsWith"),"String",{startsWith:function startsWith(t){var n=o(this,t,"startsWith"),r=i(Math.min(arguments.length>1?arguments[1]:void 0,n.length)),e=String(t);return u?u.call(n,e,r):n.slice(r,r+e.length)===e}})},{107:107,118:118,33:33,34:34}],250:[function(t,n,r){"use strict";t(108)("strike",function(t){return function strike(){return t(this,"strike","","")}})},{108:108}],251:[function(t,n,r){"use strict";t(108)("sub",function(t){return function sub(){return t(this,"sub","","")}})},{108:108}],252:[function(t,n,r){"use strict";t(108)("sup",function(t){return function sup(){return t(this,"sup","","")}})},{108:108}],253:[function(t,n,r){"use strict";t(111)("trim",function(t){return function trim(){return t(this,3)}})},{111:111}],254:[function(t,n,r){"use strict";var e=t(40),i=t(41),o=t(29),u=t(33),c=t(94),a=t(66).KEY,f=t(35),s=t(103),l=t(101),h=t(124),v=t(128),p=t(127),d=t(126),y=t(59),g=t(32),m=t(49),b=t(7),x=t(117),S=t(120),w=t(92),_=t(71),E=t(76),O=t(75),P=t(72),M=t(81),F=O.f,I=P.f,A=E.f,k=e.Symbol,N=e.JSON,j=N&&N.stringify,T=v("_hidden"),R=v("toPrimitive"),L={}.propertyIsEnumerable,G=s("symbol-registry"),D=s("symbols"),C=s("op-symbols"),W=Object.prototype,U="function"==typeof k,B=e.QObject,V=!B||!B.prototype||!B.prototype.findChild,z=o&&f(function(){return 7!=_(I({},"a",{get:function(){return I(this,"a",{value:7}).a}})).a})?function(t,n,r){var e=F(W,n);e&&delete W[n],I(t,n,r),e&&t!==W&&I(W,n,e)}:I,q=function(t){var n=D[t]=_(k.prototype);return n._k=t,n},K=U&&"symbol"==typeof k.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof k},Y=function defineProperty(t,n,r){return t===W&&Y(C,n,r),b(t),n=S(n,!0),b(r),i(D,n)?(r.enumerable?(i(t,T)&&t[T][n]&&(t[T][n]=!1),r=_(r,{enumerable:w(0,!1)})):(i(t,T)||I(t,T,w(1,{})),t[T][n]=!0),z(t,n,r)):I(t,n,r)},J=function defineProperties(t,n){b(t);for(var r,e=g(n=x(n)),i=0,o=e.length;o>i;)Y(t,r=e[i++],n[r]);return t},H=function create(t,n){return void 0===n?_(t):J(_(t),n)},X=function propertyIsEnumerable(t){var n=L.call(this,t=S(t,!0));return!(this===W&&i(D,t)&&!i(C,t))&&(!(n||!i(this,t)||!i(D,t)||i(this,T)&&this[T][t])||n)},$=function getOwnPropertyDescriptor(t,n){if(t=x(t),n=S(n,!0),t!==W||!i(D,n)||i(C,n)){var r=F(t,n);return!r||!i(D,n)||i(t,T)&&t[T][n]||(r.enumerable=!0),r}},Z=function getOwnPropertyNames(t){for(var n,r=A(x(t)),e=[],o=0;r.length>o;)i(D,n=r[o++])||n==T||n==a||e.push(n);return e},Q=function getOwnPropertySymbols(t){for(var n,r=t===W,e=A(r?C:x(t)),o=[],u=0;e.length>u;)!i(D,n=e[u++])||r&&!i(W,n)||o.push(D[n]);return o};U||(k=function Symbol(){if(this instanceof k)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),n=function(r){this===W&&n.call(C,r),i(this,T)&&i(this[T],t)&&(this[T][t]=!1),z(this,t,w(1,r))};return o&&V&&z(W,t,{configurable:!0,set:n}),q(t)},c(k.prototype,"toString",function toString(){return this._k}),O.f=$,P.f=Y,t(77).f=E.f=Z,t(82).f=X,t(78).f=Q,o&&!t(60)&&c(W,"propertyIsEnumerable",X,!0),p.f=function(t){return q(v(t))}),u(u.G+u.W+u.F*!U,{Symbol:k});for(var tt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;tt.length>nt;)v(tt[nt++]);for(var rt=M(v.store),et=0;rt.length>et;)d(rt[et++]);u(u.S+u.F*!U,"Symbol",{for:function(t){return i(G,t+="")?G[t]:G[t]=k(t)},keyFor:function keyFor(t){if(K(t))return y(G,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){V=!0},useSimple:function(){V=!1}}),u(u.S+u.F*!U,"Object",{create:H,defineProperty:Y,defineProperties:J,getOwnPropertyDescriptor:$,getOwnPropertyNames:Z,getOwnPropertySymbols:Q}),N&&u(u.S+u.F*(!U||f(function(){var t=k();return"[null]"!=j([t])||"{}"!=j({a:t})||"{}"!=j(Object(t))})),"JSON",{stringify:function stringify(t){if(void 0!==t&&!K(t)){for(var n,r,e=[t],i=1;arguments.length>i;)e.push(arguments[i++]);return n=e[1],"function"==typeof n&&(r=n),!r&&m(n)||(n=function(t,n){if(r&&(n=r.call(this,t,n)),!K(n))return n}),e[1]=n,j.apply(N,e)}}}),k.prototype[R]||t(42)(k.prototype,R,k.prototype.valueOf),l(k,"Symbol"),l(Math,"Math",!0),l(e.JSON,"JSON",!0)},{101:101,103:103,117:117,120:120,124:124,126:126,127:127,128:128,29:29,32:32,33:33,35:35,40:40,41:41,42:42,49:49,59:59,60:60,66:66,7:7,71:71,72:72,75:75,76:76,77:77,78:78,81:81,82:82,92:92,94:94}],255:[function(t,n,r){"use strict";var e=t(33),i=t(123),o=t(122),u=t(7),c=t(114),a=t(118),f=t(51),s=t(40).ArrayBuffer,l=t(104),h=o.ArrayBuffer,v=o.DataView,p=i.ABV&&s.isView,d=h.prototype.slice,y=i.VIEW;e(e.G+e.W+e.F*(s!==h),{ArrayBuffer:h}),e(e.S+e.F*!i.CONSTR,"ArrayBuffer",{isView:function isView(t){return p&&p(t)||f(t)&&y in t}}),e(e.P+e.U+e.F*t(35)(function(){return!new h(2).slice(1,void 0).byteLength}),"ArrayBuffer",{slice:function slice(t,n){if(void 0!==d&&void 0===n)return d.call(u(this),t);for(var r=u(this).byteLength,e=c(t,r),i=c(void 0===n?r:n,r),o=new(l(this,h))(a(i-e)),f=new v(this),s=new v(o),p=0;e<i;)s.setUint8(p++,f.getUint8(e++));return o}}),t(100)("ArrayBuffer")},{100:100,104:104,114:114,118:118,122:122,123:123,33:33,35:35,40:40,51:51,7:7}],256:[function(t,n,r){var e=t(33);e(e.G+e.W+e.F*!t(123).ABV,{DataView:t(122).DataView})},{122:122,123:123,33:33}],257:[function(t,n,r){t(121)("Float32",4,function(t){return function Float32Array(n,r,e){return t(this,n,r,e)}})},{121:121}],258:[function(t,n,r){t(121)("Float64",8,function(t){return function Float64Array(n,r,e){return t(this,n,r,e)}})},{121:121}],259:[function(t,n,r){t(121)("Int16",2,function(t){return function Int16Array(n,r,e){return t(this,n,r,e)}})},{121:121}],260:[function(t,n,r){t(121)("Int32",4,function(t){return function Int32Array(n,r,e){return t(this,n,r,e)}})},{121:121}],261:[function(t,n,r){t(121)("Int8",1,function(t){return function Int8Array(n,r,e){return t(this,n,r,e)}})},{121:121}],262:[function(t,n,r){t(121)("Uint16",2,function(t){return function Uint16Array(n,r,e){return t(this,n,r,e)}})},{121:121}],263:[function(t,n,r){t(121)("Uint32",4,function(t){return function Uint32Array(n,r,e){return t(this,n,r,e)}})},{121:121}],264:[function(t,n,r){t(121)("Uint8",1,function(t){return function Uint8Array(n,r,e){return t(this,n,r,e)}})},{121:121}],265:[function(t,n,r){t(121)("Uint8",1,function(t){return function Uint8ClampedArray(n,r,e){return t(this,n,r,e)}},!0)},{121:121}],266:[function(t,n,r){"use strict";var e,i=t(12)(0),o=t(94),u=t(66),c=t(70),a=t(21),f=t(51),s=t(35),l=t(125),h=u.getWeak,v=Object.isExtensible,p=a.ufstore,d={},y=function(t){return function WeakMap(){return t(this,arguments.length>0?arguments[0]:void 0)}},g={get:function get(t){if(f(t)){var n=h(t);return!0===n?p(l(this,"WeakMap")).get(t):n?n[this._i]:void 0}},set:function set(t,n){return a.def(l(this,"WeakMap"),t,n)}},m=n.exports=t(22)("WeakMap",y,g,a,!0,!0);s(function(){return 7!=(new m).set((Object.freeze||Object)(d),7).get(d)})&&(e=a.getConstructor(y,"WeakMap"),c(e.prototype,g),u.NEED=!0,i(["delete","has","get","set"],function(t){var n=m.prototype,r=n[t];o(n,t,function(n,i){if(f(n)&&!v(n)){this._f||(this._f=new e);var o=this._f[t](n,i);return"set"==t?this:o}return r.call(this,n,i)})}))},{12:12,125:125,21:21,22:22,35:35,51:51,66:66,70:70,94:94}],267:[function(t,n,r){"use strict";var e=t(21),i=t(125);t(22)("WeakSet",function(t){return function WeakSet(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function add(t){return e.def(i(this,"WeakSet"),t,!0)}},e,!1,!0)},{125:125,21:21,22:22}],268:[function(t,n,r){"use strict";var e=t(33),i=t(38),o=t(119),u=t(118),c=t(3),a=t(15);e(e.P,"Array",{flatMap:function flatMap(t){var n,r,e=o(this);return c(t),n=u(e.length),r=a(e,0),i(r,e,e,n,0,1,t,arguments[1]),r}}),t(5)("flatMap")},{118:118,119:119,15:15,3:3,33:33,38:38,5:5}],269:[function(t,n,r){"use strict";var e=t(33),i=t(38),o=t(119),u=t(118),c=t(116),a=t(15);e(e.P,"Array",{flatten:function flatten(){var t=arguments[0],n=o(this),r=u(n.length),e=a(n,0);return i(e,n,n,r,0,void 0===t?1:c(t)),e}}),t(5)("flatten")},{116:116,118:118,119:119,15:15,33:33,38:38,5:5}],270:[function(t,n,r){"use strict";var e=t(33),i=t(11)(!0);e(e.P,"Array",{includes:function includes(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),t(5)("includes")},{11:11,33:33,5:5}],271:[function(t,n,r){var e=t(33),i=t(68)(),o=t(40).process,u="process"==t(18)(o);e(e.G,{asap:function asap(t){var n=u&&o.domain;i(n?n.bind(t):t)}})},{18:18,33:33,40:40,68:68}],272:[function(t,n,r){var e=t(33),i=t(18);e(e.S,"Error",{isError:function isError(t){return"Error"===i(t)}})},{18:18,33:33}],273:[function(t,n,r){var e=t(33);e(e.G,{global:t(40)})},{33:33,40:40}],274:[function(t,n,r){t(97)("Map")},{97:97}],275:[function(t,n,r){t(98)("Map")},{98:98}],276:[function(t,n,r){var e=t(33);e(e.P+e.R,"Map",{toJSON:t(20)("Map")})},{20:20,33:33}],277:[function(t,n,r){var e=t(33);e(e.S,"Math",{clamp:function clamp(t,n,r){return Math.min(r,Math.max(n,t))}})},{33:33}],278:[function(t,n,r){var e=t(33);e(e.S,"Math",{DEG_PER_RAD:Math.PI/180})},{33:33}],279:[function(t,n,r){var e=t(33),i=180/Math.PI;e(e.S,"Math",{degrees:function degrees(t){return t*i}})},{33:33}],280:[function(t,n,r){var e=t(33),i=t(64),o=t(62);e(e.S,"Math",{fscale:function fscale(t,n,r,e,u){return o(i(t,n,r,e,u))}})},{33:33,62:62,64:64}],281:[function(t,n,r){var e=t(33);e(e.S,"Math",{iaddh:function iaddh(t,n,r,e){var i=t>>>0,o=n>>>0,u=r>>>0;return o+(e>>>0)+((i&u|(i|u)&~(i+u>>>0))>>>31)|0}})},{33:33}],282:[function(t,n,r){var e=t(33);e(e.S,"Math",{imulh:function imulh(t,n){var r=+t,e=+n,i=65535&r,o=65535&e,u=r>>16,c=e>>16,a=(u*o>>>0)+(i*o>>>16);return u*c+(a>>16)+((i*c>>>0)+(65535&a)>>16)}})},{33:33}],283:[function(t,n,r){var e=t(33);e(e.S,"Math",{isubh:function isubh(t,n,r,e){var i=t>>>0,o=n>>>0,u=r>>>0;return o-(e>>>0)-((~i&u|~(i^u)&i-u>>>0)>>>31)|0}})},{33:33}],284:[function(t,n,r){var e=t(33);e(e.S,"Math",{RAD_PER_DEG:180/Math.PI})},{33:33}],285:[function(t,n,r){var e=t(33),i=Math.PI/180;e(e.S,"Math",{radians:function radians(t){return t*i}})},{33:33}],286:[function(t,n,r){var e=t(33);e(e.S,"Math",{scale:t(64)})},{33:33,64:64}],287:[function(t,n,r){var e=t(33);e(e.S,"Math",{signbit:function signbit(t){return(t=+t)!=t?t:0==t?1/t==1/0:t>0}})},{33:33}],288:[function(t,n,r){var e=t(33);e(e.S,"Math",{umulh:function umulh(t,n){var r=+t,e=+n,i=65535&r,o=65535&e,u=r>>>16,c=e>>>16,a=(u*o>>>0)+(i*o>>>16);return u*c+(a>>>16)+((i*c>>>0)+(65535&a)>>>16)}})},{33:33}],289:[function(t,n,r){"use strict";var e=t(33),i=t(119),o=t(3),u=t(72);t(29)&&e(e.P+t(74),"Object",{__defineGetter__:function __defineGetter__(t,n){u.f(i(this),t,{get:o(n),enumerable:!0,configurable:!0})}})},{119:119,29:29,3:3,33:33,72:72,74:74}],290:[function(t,n,r){"use strict";var e=t(33),i=t(119),o=t(3),u=t(72);t(29)&&e(e.P+t(74),"Object",{__defineSetter__:function __defineSetter__(t,n){u.f(i(this),t,{set:o(n),enumerable:!0,configurable:!0})}})},{119:119,29:29,3:3,33:33,72:72,74:74}],291:[function(t,n,r){var e=t(33),i=t(84)(!0);e(e.S,"Object",{entries:function entries(t){return i(t)}})},{33:33,84:84}],292:[function(t,n,r){var e=t(33),i=t(85),o=t(117),u=t(75),c=t(24);e(e.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(t){for(var n,r,e=o(t),a=u.f,f=i(e),s={},l=0;f.length>l;)void 0!==(r=a(e,n=f[l++]))&&c(s,n,r);return s}})},{117:117,24:24,33:33,75:75,85:85}],293:[function(t,n,r){"use strict";var e=t(33),i=t(119),o=t(120),u=t(79),c=t(75).f;t(29)&&e(e.P+t(74),"Object",{__lookupGetter__:function __lookupGetter__(t){var n,r=i(this),e=o(t,!0);do{if(n=c(r,e))return n.get}while(r=u(r))}})},{119:119,120:120,29:29,33:33,74:74,75:75,79:79}],294:[function(t,n,r){"use strict";var e=t(33),i=t(119),o=t(120),u=t(79),c=t(75).f;t(29)&&e(e.P+t(74),"Object",{__lookupSetter__:function __lookupSetter__(t){var n,r=i(this),e=o(t,!0);do{if(n=c(r,e))return n.set}while(r=u(r))}})},{119:119,120:120,29:29,33:33,74:74,75:75,79:79}],295:[function(t,n,r){var e=t(33),i=t(84)(!1);e(e.S,"Object",{values:function values(t){return i(t)}})},{33:33,84:84}],296:[function(t,n,r){"use strict";var e=t(33),i=t(40),o=t(23),u=t(68)(),c=t(128)("observable"),a=t(3),f=t(7),s=t(6),l=t(93),h=t(42),v=t(39),p=v.RETURN,d=function(t){return null==t?void 0:a(t)},y=function(t){var n=t._c;n&&(t._c=void 0,n())},g=function(t){return void 0===t._o},m=function(t){g(t)||(t._o=void 0,y(t))},b=function(t,n){f(t),this._c=void 0,this._o=t,t=new x(this);try{var r=n(t),e=r;null!=r&&("function"==typeof r.unsubscribe?r=function(){e.unsubscribe()}:a(r),this._c=r)}catch(n){return void t.error(n)}g(this)&&y(this)};b.prototype=l({},{unsubscribe:function unsubscribe(){m(this)}});var x=function(t){this._s=t};x.prototype=l({},{next:function next(t){var n=this._s;if(!g(n)){var r=n._o;try{var e=d(r.next);if(e)return e.call(r,t)}catch(t){try{m(n)}finally{throw t}}}},error:function error(t){var n=this._s;if(g(n))throw t;var r=n._o;n._o=void 0;try{var e=d(r.error);if(!e)throw t;t=e.call(r,t)}catch(t){try{y(n)}finally{throw t}}return y(n),t},complete:function complete(t){var n=this._s;if(!g(n)){var r=n._o;n._o=void 0;try{var e=d(r.complete);t=e?e.call(r,t):void 0}catch(t){try{y(n)}finally{throw t}}return y(n),t}}});var S=function Observable(t){s(this,S,"Observable","_f")._f=a(t)};l(S.prototype,{subscribe:function subscribe(t){return new b(t,this._f)},forEach:function forEach(t){var n=this;return new(o.Promise||i.Promise)(function(r,e){a(t);var i=n.subscribe({next:function(n){try{return t(n)}catch(t){e(t),i.unsubscribe()}},error:e,complete:r})})}}),l(S,{from:function from(t){var n="function"==typeof this?this:S,r=d(f(t)[c]);if(r){var e=f(r.call(t));return e.constructor===n?e:new n(function(t){return e.subscribe(t)})}return new n(function(n){var r=!1;return u(function(){if(!r){try{if(v(t,!1,function(t){if(n.next(t),r)return p})===p)return}catch(t){if(r)throw t;return void n.error(t)}n.complete()}}),function(){r=!0}})},of:function of(){for(var t=0,n=arguments.length,r=Array(n);t<n;)r[t]=arguments[t++];return new("function"==typeof this?this:S)(function(t){var n=!1;return u(function(){if(!n){for(var e=0;e<r.length;++e)if(t.next(r[e]),n)return;t.complete()}}),function(){n=!0}})}}),h(S.prototype,c,function(){return this}),e(e.G,{Observable:S}),t(100)("Observable")},{100:100,128:128,23:23,3:3,33:33,39:39,40:40,42:42,6:6,68:68,7:7,93:93}],297:[function(t,n,r){"use strict";var e=t(33),i=t(23),o=t(40),u=t(104),c=t(91);e(e.P+e.R,"Promise",{finally:function(t){var n=u(this,i.Promise||o.Promise),r="function"==typeof t;return this.then(r?function(r){return c(n,t()).then(function(){return r})}:t,r?function(r){return c(n,t()).then(function(){throw r})}:t)}})},{104:104,23:23,33:33,40:40,91:91}],298:[function(t,n,r){"use strict";var e=t(33),i=t(69),o=t(90);e(e.S,"Promise",{try:function(t){var n=i.f(this),r=o(t);return(r.e?n.reject:n.resolve)(r.v),n.promise}})},{33:33,69:69,90:90}],299:[function(t,n,r){var e=t(67),i=t(7),o=e.key,u=e.set;e.exp({defineMetadata:function defineMetadata(t,n,r,e){u(t,n,i(r),o(e))}})},{67:67,7:7}],300:[function(t,n,r){var e=t(67),i=t(7),o=e.key,u=e.map,c=e.store;e.exp({deleteMetadata:function deleteMetadata(t,n){var r=arguments.length<3?void 0:o(arguments[2]),e=u(i(n),r,!1);if(void 0===e||!e.delete(t))return!1;if(e.size)return!0;var a=c.get(n);return a.delete(r),!!a.size||c.delete(n)}})},{67:67,7:7}],301:[function(t,n,r){var e=t(231),i=t(10),o=t(67),u=t(7),c=t(79),a=o.keys,f=o.key,s=function(t,n){var r=a(t,n),o=c(t);if(null===o)return r;var u=s(o,n);return u.length?r.length?i(new e(r.concat(u))):u:r};o.exp({getMetadataKeys:function getMetadataKeys(t){return s(u(t),arguments.length<2?void 0:f(arguments[1]))}})},{10:10,231:231,67:67,7:7,79:79}],302:[function(t,n,r){var e=t(67),i=t(7),o=t(79),u=e.has,c=e.get,a=e.key,f=function(t,n,r){if(u(t,n,r))return c(t,n,r);var e=o(n);return null!==e?f(t,e,r):void 0};e.exp({getMetadata:function getMetadata(t,n){return f(t,i(n),arguments.length<3?void 0:a(arguments[2]))}})},{67:67,7:7,79:79}],303:[function(t,n,r){var e=t(67),i=t(7),o=e.keys,u=e.key;e.exp({getOwnMetadataKeys:function getOwnMetadataKeys(t){return o(i(t),arguments.length<2?void 0:u(arguments[1]))}})},{67:67,7:7}],304:[function(t,n,r){var e=t(67),i=t(7),o=e.get,u=e.key;e.exp({getOwnMetadata:function getOwnMetadata(t,n){return o(t,i(n),arguments.length<3?void 0:u(arguments[2]))}})},{67:67,7:7}],305:[function(t,n,r){var e=t(67),i=t(7),o=t(79),u=e.has,c=e.key,a=function(t,n,r){if(u(t,n,r))return!0;var e=o(n);return null!==e&&a(t,e,r)};e.exp({hasMetadata:function hasMetadata(t,n){return a(t,i(n),arguments.length<3?void 0:c(arguments[2]))}})},{67:67,7:7,79:79}],306:[function(t,n,r){var e=t(67),i=t(7),o=e.has,u=e.key;e.exp({hasOwnMetadata:function hasOwnMetadata(t,n){return o(t,i(n),arguments.length<3?void 0:u(arguments[2]))}})},{67:67,7:7}],307:[function(t,n,r){var e=t(67),i=t(7),o=t(3),u=e.key,c=e.set;e.exp({metadata:function metadata(t,n){return function decorator(r,e){c(t,n,(void 0!==e?i:o)(r),u(e))}}})},{3:3,67:67,7:7}],308:[function(t,n,r){t(97)("Set")},{97:97}],309:[function(t,n,r){t(98)("Set")},{98:98}],310:[function(t,n,r){var e=t(33);e(e.P+e.R,"Set",{toJSON:t(20)("Set")})},{20:20,33:33}],311:[function(t,n,r){"use strict";var e=t(33),i=t(106)(!0);e(e.P,"String",{at:function at(t){return i(this,t)}})},{106:106,33:33}],312:[function(t,n,r){"use strict";var e=t(33),i=t(28),o=t(118),u=t(52),c=t(37),a=RegExp.prototype,f=function(t,n){this._r=t,this._s=n};t(54)(f,"RegExp String",function next(){var t=this._r.exec(this._s);return{value:t,done:null===t}}),e(e.P,"String",{matchAll:function matchAll(t){if(i(this),!u(t))throw TypeError(t+" is not a regexp!");var n=String(this),r="flags"in a?String(t.flags):c.call(t),e=new RegExp(t.source,~r.indexOf("g")?r:"g"+r);return e.lastIndex=o(t.lastIndex),new f(e,n)}})},{118:118,28:28,33:33,37:37,52:52,54:54}],313:[function(t,n,r){"use strict";var e=t(33),i=t(109);e(e.P,"String",{padEnd:function padEnd(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!1)}})},{109:109,33:33}],314:[function(t,n,r){"use strict";var e=t(33),i=t(109);e(e.P,"String",{padStart:function padStart(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},{109:109,33:33}],315:[function(t,n,r){"use strict";t(111)("trimLeft",function(t){return function trimLeft(){return t(this,1)}},"trimStart")},{111:111}],316:[function(t,n,r){"use strict";t(111)("trimRight",function(t){return function trimRight(){return t(this,2)}},"trimEnd")},{111:111}],317:[function(t,n,r){t(126)("asyncIterator")},{126:126}],318:[function(t,n,r){t(126)("observable")},{126:126}],319:[function(t,n,r){var e=t(33);e(e.S,"System",{global:t(40)})},{33:33,40:40}],320:[function(t,n,r){t(97)("WeakMap")},{97:97}],321:[function(t,n,r){t(98)("WeakMap")},{98:98}],322:[function(t,n,r){t(97)("WeakSet")},{97:97}],323:[function(t,n,r){t(98)("WeakSet")},{98:98}],324:[function(t,n,r){for(var e=t(141),i=t(81),o=t(94),u=t(40),c=t(42),a=t(58),f=t(128),s=f("iterator"),l=f("toStringTag"),h=a.Array,v={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},p=i(v),d=0;d<p.length;d++){var y,g=p[d],m=v[g],b=u[g],x=b&&b.prototype;if(x&&(x[s]||c(x,s,h),x[l]||c(x,l,g),a[g]=h,m))for(y in e)x[y]||o(x,y,e[y],!0)}},{128:128,141:141,40:40,42:42,58:58,81:81,94:94}],325:[function(t,n,r){var e=t(33),i=t(113);e(e.G+e.B,{setImmediate:i.set,clearImmediate:i.clear})},{113:113,33:33}],326:[function(t,n,r){var e=t(40),i=t(33),o=t(46),u=t(88),c=e.navigator,a=!!c&&/MSIE .\./.test(c.userAgent),f=function(t){return a?function(n,r){return t(o(u,[].slice.call(arguments,2),"function"==typeof n?n:Function(n)),r)}:t};i(i.G+i.B+i.F*a,{setTimeout:f(e.setTimeout),setInterval:f(e.setInterval)})},{33:33,40:40,46:46,88:88}],327:[function(t,n,r){t(254),t(191),t(193),t(192),t(195),t(197),t(202),t(196),t(194),t(204),t(203),t(199),t(200),t(198),t(190),t(201),t(205),t(206),t(157),t(159),t(158),t(208),t(207),t(178),t(188),t(189),t(179),t(180),t(181),t(182),t(183),t(184),t(185),t(186),t(187),t(161),t(162),t(163),t(164),t(165),t(166),t(167),t(168),t(169),t(170),t(171),t(172),t(173),t(174),t(175),t(176),t(177),t(241),t(246),t(253),t(244),t(236),t(237),t(242),t(247),t(249),t(232),t(233),t(234),t(235),t(238),t(239),t(240),t(243),t(245),t(248),t(250),t(251),t(252),t(152),t(154),t(153),t(156),t(155),t(140),t(138),t(145),t(142),t(148),t(150),t(137),t(144),t(134),t(149),t(132),t(147),t(146),t(139),t(143),t(131),t(133),t(136),t(135),t(151),t(141),t(224),t(230),t(225),t(226),t(227),t(228),t(229),t(209),t(160),t(231),t(266),t(267),t(255),t(256),t(261),t(264),t(265),t(259),t(262),t(260),t(263),t(257),t(258),t(210),t(211),t(212),t(213),t(214),t(217),t(215),t(216),t(218),t(219),t(220),t(221),t(223),t(222),t(270),t(268),t(269),t(311),t(314),t(313),t(315),t(316),t(312),t(317),t(318),t(292),t(295),t(291),t(289),t(290),t(293),t(294),t(276),t(310),t(275),t(309),t(321),t(323),t(274),t(308),t(320),t(322),t(273),t(319),t(272),t(277),t(278),t(279),t(280),t(281),t(283),t(282),t(284),t(285),t(286),t(288),t(287),t(297),t(298),t(299),t(300),t(302),t(301),t(304),t(303),t(305),t(306),t(307),t(271),t(296),t(326),t(325),t(324),n.exports=t(23)},{131:131,132:132,133:133,134:134,135:135,136:136,137:137,138:138,139:139,140:140,141:141,142:142,143:143,144:144,145:145,146:146,147:147,148:148,149:149,150:150,151:151,152:152,153:153,154:154,155:155,156:156,157:157,158:158,159:159,160:160,161:161,162:162,163:163,164:164,165:165,166:166,167:167,168:168,169:169,170:170,171:171,172:172,173:173,174:174,175:175,176:176,177:177,178:178,179:179,180:180,181:181,182:182,183:183,184:184,185:185,
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/babel-polyfill/polyfill.min.js-4-186:186,187:187,188:188,189:189,190:190,191:191,192:192,193:193,194:194,195:195,196:196,197:197,198:198,199:199,200:200,201:201,202:202,203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,216:216,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,23:23,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,292:292,293:293,294:294,295:295,296:296,297:297,298:298,299:299,300:300,301:301,302:302,303:303,304:304,305:305,306:306,307:307,308:308,309:309,310:310,311:311,312:312,313:313,314:314,315:315,316:316,317:317,318:318,319:319,320:320,321:321,322:322,323:323,324:324,325:325,326:326}],328:[function(t,n,r){(function(t){!function(t){"use strict";function wrap(t,n,r,e){var i=n&&n.prototype instanceof Generator?n:Generator,o=Object.create(i.prototype),u=new Context(e||[]);return o._invoke=makeInvokeMethod(t,r,u),o}function tryCatch(t,n,r){try{return{type:"normal",arg:t.call(n,r)}}catch(t){return{type:"throw",arg:t}}}function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}function defineIteratorMethods(t){["next","throw","return"].forEach(function(n){t[n]=function(t){return this._invoke(n,t)}})}function AsyncIterator(n){function invoke(t,r,e,o){var u=tryCatch(n[t],n,r);if("throw"!==u.type){var c=u.arg,a=c.value;return a&&"object"==typeof a&&i.call(a,"__await")?Promise.resolve(a.__await).then(function(t){invoke("next",t,e,o)},function(t){invoke("throw",t,e,o)}):Promise.resolve(a).then(function(t){c.value=t,e(c)},o)}o(u.arg)}function enqueue(t,n){function callInvokeWithMethodAndArg(){return new Promise(function(r,e){invoke(t,n,r,e)})}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}"object"==typeof t.process&&t.process.domain&&(invoke=t.process.domain.bind(invoke));var r;this._invoke=enqueue}function makeInvokeMethod(t,n,r){var e=l;return function invoke(i,o){if(e===v)throw new Error("Generator is already running");if(e===p){if("throw"===i)throw o;return doneResult()}for(r.method=i,r.arg=o;;){var u=r.delegate;if(u){var c=maybeInvokeDelegate(u,r);if(c){if(c===d)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(e===l)throw e=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);e=v;var a=tryCatch(t,n,r);if("normal"===a.type){if(e=r.done?p:h,a.arg===d)continue;return{value:a.arg,done:r.done}}"throw"===a.type&&(e=p,r.method="throw",r.arg=a.arg)}}}function maybeInvokeDelegate(t,n){var e=t.iterator[n.method];if(e===r){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=r,maybeInvokeDelegate(t,n),"throw"===n.method))return d;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var i=tryCatch(e,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,d;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=r),n.delegate=null,d):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,d)}function pushTryEntry(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function resetTryEntry(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(t){if(t){var n=t[u];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var e=-1,o=function next(){for(;++e<t.length;)if(i.call(t,e))return next.value=t[e],next.done=!1,next;return next.value=r,next.done=!0,next};return o.next=o}}return{next:doneResult}}function doneResult(){return{value:r,done:!0}}var r,e=Object.prototype,i=e.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},u=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag",f="object"==typeof n,s=t.regeneratorRuntime;if(s)return void(f&&(n.exports=s));s=t.regeneratorRuntime=f?n.exports:{},s.wrap=wrap;var l="suspendedStart",h="suspendedYield",v="executing",p="completed",d={},y={};y[u]=function(){return this};var g=Object.getPrototypeOf,m=g&&g(g(values([])));m&&m!==e&&i.call(m,u)&&(y=m);var b=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(y);GeneratorFunction.prototype=b.constructor=GeneratorFunctionPrototype,GeneratorFunctionPrototype.constructor=GeneratorFunction,GeneratorFunctionPrototype[a]=GeneratorFunction.displayName="GeneratorFunction",s.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===GeneratorFunction||"GeneratorFunction"===(n.displayName||n.name))},s.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,a in t||(t[a]="GeneratorFunction")),t.prototype=Object.create(b),t},s.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),AsyncIterator.prototype[c]=function(){return this},s.AsyncIterator=AsyncIterator,s.async=function(t,n,r,e){var i=new AsyncIterator(wrap(t,n,r,e));return s.isGeneratorFunction(n)?i:i.next().then(function(t){return t.done?t.value:i.next()})},defineIteratorMethods(b),b[a]="Generator",b[u]=function(){return this},b.toString=function(){return"[object Generator]"},s.keys=function(t){var n=[];for(var r in t)n.push(r);return n.reverse(),function next(){for(;n.length;){var r=n.pop();if(r in t)return next.value=r,next.done=!1,next}return next.done=!0,next}},s.values=values,Context.prototype={constructor:Context,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=r,this.done=!1,this.delegate=null,this.method="next",this.arg=r,this.tryEntries.forEach(resetTryEntry),!t)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=r)},stop:function(){this.done=!0;var t=this.tryEntries[0],n=t.completion;if("throw"===n.type)throw n.arg;return this.rval},dispatchException:function(t){function handle(e,i){return u.type="throw",u.arg=t,n.next=e,i&&(n.method="next",n.arg=r),!!i}if(this.done)throw t;for(var n=this,e=this.tryEntries.length-1;e>=0;--e){var o=this.tryEntries[e],u=o.completion;if("root"===o.tryLoc)return handle("end");if(o.tryLoc<=this.prev){var c=i.call(o,"catchLoc"),a=i.call(o,"finallyLoc");if(c&&a){if(this.prev<o.catchLoc)return handle(o.catchLoc,!0);if(this.prev<o.finallyLoc)return handle(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return handle(o.catchLoc,!0)}else{if(!a)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return handle(o.finallyLoc)}}}},abrupt:function(t,n){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc<=this.prev&&i.call(e,"finallyLoc")&&this.prev<e.finallyLoc){var o=e;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=n&&n<=o.finallyLoc&&(o=null);var u=o?o.completion:{};return u.type=t,u.arg=n,o?(this.method="next",this.next=o.finallyLoc,d):this.complete(u)},complete:function(t,n){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&n&&(this.next=n),d},finish:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),d}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc===t){var e=r.completion;if("throw"===e.type){var i=e.arg;resetTryEntry(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,e){return this.delegate={iterator:values(t),resultName:n,nextLoc:e},"next"===this.method&&(this.arg=r),d}}}("object"==typeof t?t:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]);
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.css.map:1:{"version":3,"sources":["bootstrap-vue.css","../scripts/build.scss","../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../src/_utilities.scss","../src/components/card/_card-img.scss","../node_modules/bootstrap/scss/mixins/_border-radius.scss","../node_modules/bootstrap/scss/_variables.scss","../src/components/dropdown/_dropdown.scss","../src/components/dropdown/_dropdown-form.scss","../src/components/dropdown/_dropdown-text.scss","../src/components/input-group/_input-group.scss","../src/components/form-input/_form-input.scss","../node_modules/bootstrap/scss/mixins/_transition.scss","../src/components/modal/_modal.scss","../src/components/popover/_popover.scss","../node_modules/bootstrap/scss/_functions.scss","../src/components/table/_table.scss","../src/_variables.scss","../src/components/toast/_toast.scss","../src/components/toast/_toaster.scss","../src/components/toast/_toaster-transition.scss","../src/components/tooltip/_tooltip.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB;;EDGE;AEsEE;EC9DE;IACE,wBAAwB;EHL9B;AACF;;AEiEI;EC9DE;IACE,wBAAwB;EHC9B;AACF;;AE2DI;EC9DE;IACE,wBAAwB;EHO9B;AACF;;AEqDI;EC9DE;IACE,wBAAwB;EHa9B;AACF;;AGfM;EACE,wBAAwB;AHkBhC;;AI9BA;ECmCI,2CCqxBoF;EDpxBpF,8CCoxBoF;ANrxBxF;;AI/BA;ECiBI,4CCmyBoF;EDlyBpF,+CCkyBoF;ANhxBxF;;AO/BE;EAIQ,wBAAwB;AP+BlC;;AOnCE;EAaQ,wBAAwB;AP0BlC;;AQxCE;EAEI,qBAAqB;EACrB,uBF2vBoC;EE1vBpC,WAAW;EACX,WAAW;EACX,gBF6Q2B;ANnOjC;;AQhDE;EAcM,8BAA8B;EAC9B,qDAAqD;ARsC7D;;AQrDE;EAoBM,qBAAqB;EACrB,cFhBU;EEiBV,oBAAoB;ARqC5B;;AS3DE;EACE,qBAAqB;EACrB,uBH4vBsC;EG3vBtC,gBAAgB;EAChB,WAAW;EACX,WAAW;EACX,oBH2QiC;AN7MrC;;AUnEE;;;EAKM,0BAA0B;EAC1B,6BAA6B;AVoErC;;AU1EE;;;EAcM,yBAAyB;EACzB,4BAA4B;AVkEpC;;AWrFI;;EAIE,2DAA6D;AXsFnE;;AW/EA;EACE,mCL6d2H;EK3d3H,yBAA4D;AXiF9D;;AW9EA;;EAEE,kCLudqI;EKrdrI,yBAA4D;AXgF9D;;AW7EA;;EAEE,gCLidqI;EKhdrI,yBAA4D;AXgF9D;;AW7EA;EAEE,yBLzBgB;EK0BhB,aLyY+B;AN1TjC;;AW3EA;EAEI,kBAAkB;EAClB,cAAc;EACd,SAAS;EACT,gBAAgB;AX6EpB;;AWlFA;;;;;EAYM,iBLiL2B;ANnGjC;;AW1FA;;;;;EAsBM,iBLuK2B;AN3FjC;;AWlGA;EA2BI,UAAU;AX2Ed;;AWtGA;ENrBI,0BMqDgC;ENpDhC,6BMoDgC;AX2EpC;;AW3GA;ENPI,yBM0C+B;ENzC/B,4BMyC+B;AX6EnC;;AWhHA;EAwCI,mCL4ZyH;EK3ZzH,kBL4SgC;EK3ShC,sBL7EW;EK8EX,4BAA4B;EAC5B,yBL3Ec;EK4Ed,mCLuZyH;EKpZvH,sBLgJ8B;EMpO9B,wEN4e4F;AN7UlG;;AY1JI;ED+BJ;IC9BM,gBAAgB;EZ8JpB;AACF;;AWjIA;EA2DM,cLvFY;EKwFZ,sBL/FS;EKgGT,qBLyXoE;EKxXpE,UAAU;EAIR,gDLxES;AN+IjB;;AWzIA;EAwEM,yBLzGY;AN8KlB;;AWhEA;EACE,gCLwXqI;EKvXrI,eLqRgC;EDzY9B,qBCsO+B;AN9CnC;;AWhEA;EACE,kCLiXqI;EKhXrI,iBL0QiC;EDpY/B,qBCuO+B;ANzCnC;;AW5DI;EAEE,qBL9FW;AN4JjB;;AWhEI;EAKI,qBLjGS;EKkGT,gDLlGS;ANiKjB;;AWzDI;EAKM,gDAAiF;AXwD3F;;AW7DI;EAQM,gDAAiF;AXyD3F;;AWjEI;EAWM,gDAAiF;AX0D3F;;AWrEI;EAgBI,yBLxHS;EKyHT,sBAAsB;AXyD9B;;AW1EI;EAoBM,yBAAsC;EACtC,sBAAsB;AX0DhC;;AW/EI;EA0BI,yCLlIS;AN2LjB;;AWnFI;EA8BI,yBLtIS;EKuIT,sBAAsB;AXyD9B;;AWxFI;EAkCM,yBAAsC;EACtC,sBAAsB;AX0DhC;;AW7FI;EAwCI,mCLhJS;ANyMjB;;AWjGI;;;EA6CI,cAAc;AX0DtB;;AWvGI;EAiDI,yBLzJS;EK0JT,sBAAsB;AX0D9B;;AW5GI;EAqDM,yBAAsC;EACtC,sBAAsB;AX2DhC;;AWjHI;EA2DI,mCLnKS;AN6NjB;;AWrHI;EA8DI,mCLtKS;ANiOjB;;AWrII;EAEE,qBLjGW;ANwOjB;;AWzII;EAKI,qBLpGS;EKqGT,gDLrGS;AN6OjB;;AWlII;EAKM,gDAAiF;AXiI3F;;AWtII;EAQM,gDAAiF;AXkI3F;;AW1II;EAWM,gDAAiF;AXmI3F;;AW9II;EAgBI,yBL3HS;EK4HT,sBAAsB;AXkI9B;;AWnJI;EAoBM,yBAAsC;EACtC,sBAAsB;AXmIhC;;AWxJI;EA0BI,yCLrIS;ANuQjB;;AW5JI;EA8BI,yBLzIS;EK0IT,sBAAsB;AXkI9B;;AWjKI;EAkCM,yBAAsC;EACtC,sBAAsB;AXmIhC;;AWtKI;EAwCI,mCLnJS;ANqRjB;;AW1KI;;;EA6CI,cAAc;AXmItB;;AWhLI;EAiDI,yBL5JS;EK6JT,sBAAsB;AXmI9B;;AWrLI;EAqDM,yBAAsC;EACtC,sBAAsB;AXoIhC;;AW1LI;EA2DI,mCLtKS;ANySjB;;AW9LI;EA8DI,mCLzKS;AN6SjB;;AanVA;EACE,YP86BoC;ANxlBtC;;AcvVI;EAWI,yBCuE0D;EDtE1D,qBCsE0D;Af0QlE;;Ac5VI;EAkBQ,yBAVgD;AdwV5D;;AchWI;EAsBQ,yBC4DsD;AfkRlE;;AcpWI;EA8BQ,2BAtBgD;AdgW5D;;AcxWI;EAkCQ,2BCgDsD;Af0RlE;;Ac5WI;EA0CQ,4BAlCgD;AdwW5D;;AchXI;EA+CQ,4BA3CiC;AdgX7C;;AcpXI;EAoDM,4BAhDmC;AdoX7C;;AcxXI;EA2DQ,0BAnDgD;AdoX5D;;Ac5XI;EA+DQ,0BCmBsD;Af8SlE;;AchYI;EAoFI,cRtEU;EQuEV,yBAjFqC;EAkFrC,4BAA8C;AdgTtD;;ActYI;EA0FI,cCR0D;AfwTlE;;Ac1YI;EAWI,yBCuE0D;EDtE1D,qBCsE0D;Af6TlE;;Ac/YI;EAkBQ,yBAVgD;Ad2Y5D;;AcnZI;EAsBQ,yBC4DsD;AfqUlE;;AcvZI;EA8BQ,2BAtBgD;AdmZ5D;;Ac3ZI;EAkCQ,2BCgDsD;Af6UlE;;Ac/ZI;EA0CQ,4BAlCgD;Ad2Z5D;;AcnaI;EA+CQ,4BA3CiC;Adma7C;;AcvaI;EAoDM,4BAhDmC;Adua7C;;Ac3aI;EA2DQ,0BAnDgD;Adua5D;;Ac/aI;EA+DQ,0BCmBsD;AfiWlE;;AcnbI;EAoFI,cRtEU;EQuEV,yBAjFqC;EAkFrC,4BAA8C;AdmWtD;;AczbI;EA0FI,cCR0D;Af2WlE;;Ac7bI;EAWI,yBCuE0D;EDtE1D,qBCsE0D;AfgXlE;;AclcI;EAkBQ,yBAVgD;Ad8b5D;;ActcI;EAsBQ,yBC4DsD;AfwXlE;;Ac1cI;EA8BQ,2BAtBgD;Adsc5D;;Ac9cI;EAkCQ,2BCgDsD;AfgYlE;;AcldI;EA0CQ,4BAlCgD;Ad8c5D;;ActdI;EA+CQ,4BA3CiC;Adsd7C;;Ac1dI;EAoDM,4BAhDmC;Ad0d7C;;Ac9dI;EA2DQ,0BAnDgD;Ad0d5D;;AcleI;EA+DQ,0BCmBsD;AfoZlE;;ActeI;EAoFI,cRtEU;EQuEV,yBAjFqC;EAkFrC,4BAA8C;AdsZtD;;Ac5eI;EA0FI,cCR0D;Af8ZlE;;AchfI;EAWI,yBCuE0D;EDtE1D,qBCsE0D;AfmalE;;AcrfI;EAkBQ,yBAVgD;Adif5D;;AczfI;EAsBQ,yBC4DsD;Af2alE;;Ac7fI;EA8BQ,2BAtBgD;Adyf5D;;AcjgBI;EAkCQ,2BCgDsD;AfmblE;;AcrgBI;EA0CQ,4BAlCgD;AdigB5D;;AczgBI;EA+CQ,4BA3CiC;AdygB7C;;Ac7gBI;EAoDM,4BAhDmC;Ad6gB7C;;AcjhBI;EA2DQ,0BAnDgD;Ad6gB5D;;AcrhBI;EA+DQ,0BCmBsD;AfuclE;;AczhBI;EAoFI,cRtEU;EQuEV,yBAjFqC;EAkFrC,4BAA8C;AdyctD;;Ac/hBI;EA0FI,cCR0D;AfidlE;;AcniBI;EAWI,yBCuE0D;EDtE1D,qBCsE0D;AfsdlE;;AcxiBI;EAkBQ,yBAVgD;AdoiB5D;;Ac5iBI;EAsBQ,yBC4DsD;Af8dlE;;AchjBI;EA8BQ,2BAtBgD;Ad4iB5D;;AcpjBI;EAkCQ,2BCgDsD;AfselE;;AcxjBI;EA0CQ,4BAlCgD;AdojB5D;;Ac5jBI;EA+CQ,4BA3CiC;Ad4jB7C;;AchkBI;EAoDM,4BAhDmC;AdgkB7C;;AcpkBI;EA2DQ,0BAnDgD;AdgkB5D;;AcxkBI;EA+DQ,0BCmBsD;Af0flE;;Ac5kBI;EAoFI,cRtEU;EQuEV,yBAjFqC;EAkFrC,4BAA8C;Ad4ftD;;AcllBI;EA0FI,cCR0D;AfogBlE;;ActlBI;EAWI,yBCuE0D;EDtE1D,qBCsE0D;AfygBlE;;Ac3lBI;EAkBQ,yBAVgD;AdulB5D;;Ac/lBI;EAsBQ,yBC4DsD;AfihBlE;;AcnmBI;EA8BQ,2BAtBgD;Ad+lB5D;;AcvmBI;EAkCQ,2BCgDsD;AfyhBlE;;Ac3mBI;EA0CQ,4BAlCgD;AdumB5D;;Ac/mBI;EA+CQ,4BA3CiC;Ad+mB7C;;AcnnBI;EAoDM,4BAhDmC;AdmnB7C;;AcvnBI;EA2DQ,0BAnDgD;AdmnB5D;;Ac3nBI;EA+DQ,0BCmBsD;Af6iBlE;;Ac/nBI;EAoFI,cRtEU;EQuEV,yBAjFqC;EAkFrC,4BAA8C;Ad+iBtD;;AcroBI;EA0FI,cCR0D;AfujBlE;;AczoBI;EAWI,yBCuE0D;EDtE1D,qBCsE0D;Af4jBlE;;Ac9oBI;EAkBQ,yBAVgD;Ad0oB5D;;AclpBI;EAsBQ,yBC4DsD;AfokBlE;;ActpBI;EA8BQ,2BAtBgD;AdkpB5D;;Ac1pBI;EAkCQ,2BCgDsD;Af4kBlE;;Ac9pBI;EA0CQ,4BAlCgD;Ad0pB5D;;AclqBI;EA+CQ,4BA3CiC;AdkqB7C;;ActqBI;EAoDM,4BAhDmC;AdsqB7C;;Ac1qBI;EA2DQ,0BAnDgD;AdsqB5D;;Ac9qBI;EA+DQ,0BCmBsD;AfgmBlE;;AclrBI;EAoFI,cRtEU;EQuEV,yBAjFqC;EAkFrC,4BAA8C;AdkmBtD;;AcxrBI;EA0FI,cCR0D;Af0mBlE;;Ac5rBI;EAWI,yBCuE0D;EDtE1D,qBCsE0D;Af+mBlE;;AcjsBI;EAkBQ,yBAVgD;Ad6rB5D;;AcrsBI;EAsBQ,yBC4DsD;AfunBlE;;AczsBI;EA8BQ,2BAtBgD;AdqsB5D;;Ac7sBI;EAkCQ,2BCgDsD;Af+nBlE;;AcjtBI;EA0CQ,4BAlCgD;Ad6sB5D;;AcrtBI;EA+CQ,4BA3CiC;AdqtB7C;;AcztBI;EAoDM,4BAhDmC;AdytB7C;;Ac7tBI;EA2DQ,0BAnDgD;AdytB5D;;AcjuBI;EA+DQ,0BCmBsD;AfmpBlE;;AcruBI;EAoFI,cRtEU;EQuEV,yBAjFqC;EAkFrC,4BAA8C;AdqpBtD;;Ac3uBI;EA0FI,cCR0D;Af6pBlE;;AgBjvBA;EAMI,mBAAmB;AhB+uBvB;;AgBrvBA;EAWI,aCRuB;AjBsvB3B;;AgBzvBA;EAgBI,2BAA2B;AhB6uB/B;;AgB7vBA;EAqBI,oBAAoB;AhB4uBxB;;AgBjwBA;EAwBM,4BAA4B;AhB6uBlC;;AgBvuBA;;EAOU,eAAe;AhBquBzB;;AgB5uBA;;EAWY,qBAAqB;EACrB,YAAY;EACZ,kBCpCyB;EDqCzB,YCpCmB;EDqCnB,kBAAkB;EAClB,oBAAoB;EACpB,YAAY;EACZ,YC5Ca;ED6Cb,WAAW;AhBsuBvB;;AgBzvBA;;EAyBY,UAAU;EACV,YCnDkB;AjBwxB9B;;AgB/vBA;;EAg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B;;AgBl/BA;EA0EgB,aAAa;AhB46B7B;;AgBt/BA;EA+EgB,qBAA2C;AhB26B3D;;AgBh6BA;EAGM,eAAe;AhBi6BrB;;AgBp6BA;EAUQ,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;AhB85BzB;;AkBvkCA;EACE,cAAc;EACd,kBAAkB;EAClB,gBZu3BuC;EYt3BvC,mCAA2B;EAA3B,2BAA2B;EAC3B,4BAA4B;EAC5B,UAAU;EbJR,sBCg4BsC;AN+M1C;;AkBjlCA;EAUI,sBZi3BsC;AN0N1C;;AkBrlCA;EAeM,uBZXS;ANqlCf;;AkBzlCA;EAsBI,UAAU;AlBukCd;;AkB7lCA;EAyBM,UAAU;AlBwkChB;;AkBjmCA;EA6BM,cAAc;AlBwkCpB;;AkBjkCE;EACE,2CAA+C;EAC/C,uCH2C8D;EG1C9D,cH0C8D;Af0hClE;;AkBlkCI;EACE,cHuC4D;EGtC5D,2CHsC4D;EGrC5D,8CHqC4D;AfgiClE;;AkB5jCI;EACE,yBAA+C;AlB+jCrD;;AkBjlCE;EACE,2CAA+C;EAC/C,uCH2C8D;EG1C9D,cH0C8D;Af0iClE;;AkBllCI;EACE,cHuC4D;EGtC5D,2CHsC4D;EGrC5D,8CHqC4D;AfgjClE;;AkB5kCI;EACE,yBAA+C;AlB+kCrD;;AkBjmCE;EACE,2CAA+C;EAC/C,uCH2C8D;EG1C9D,cH0C8D;Af0jClE;;AkBlmCI;EACE,cHuC4D;EGtC5D,2CHsC4D;EGrC5D,8CHqC4D;AfgkClE;;AkB5lCI;EACE,yBAA+C;AlB+lCrD;;AkBjnCE;EACE,2CAA+C;EAC/C,uCH2C8D;EG1C9D,cH0C8D;Af0kClE;;AkBlnCI;EACE,cHuC4D;EGtC5D,2CHsC4D;EGrC5D,8CHqC4D;AfglClE;;AkB5mCI;EACE,yBAA+C;AlB+mCrD;;AkBjoCE;EACE,2CAA+C;EAC/C,uCH2C8D;EG1C9D,cH0C8D;Af0lClE;;AkBloCI;EACE,cHuC4D;EGtC5D,2CHsC4D;EGrC5D,8CHqC4D;AfgmClE;;AkB5nCI;EACE,yBAA+C;AlB+nCrD;;AkBjpCE;EACE,2CAA+C;EAC/C,uCH2C8D;EG1C9D,cH0C8D;Af0mClE;;AkBlpCI;EACE,cHuC4D;EGtC5D,2CHsC4D;EGrC5D,8CHqC4D;AfgnClE;;AkB5oCI;EACE,yBAA+C;AlB+oCrD;;AkBjqCE;EACE,2CAA+C;EAC/C,uCH2C8D;EG1C9D,cH0C8D;Af0nClE;;AkBlqCI;EACE,cHuC4D;EGtC5D,2CHsC4D;EGrC5D,8CHqC4D;AfgoClE;;AkB5pCI;EACE,uBAA+C;AlB+pCrD;;AkBjrCE;EACE,2CAA+C;EAC/C,uCH2C8D;EG1C9D,cH0C8D;Af0oClE;;AkBlrCI;EACE,cHuC4D;EGtC5D,2CHsC4D;EGrC5D,8CHqC4D;AfgpClE;;AkB5qCI;EACE,yBAA+C;AlB+qCrD;;AmBluCA;EACE,aFMqB;AjB+tCvB;;AmBtuCA;EAII,kBAAkB;EAClB,cAAc;AnBsuClB;;AmB3uCA;EAQM,wBAAwB;AnBuuC9B;;AmBztCA;EASI,eAAe;EACf,YFxByB;EEyBzB,aFzByB;EE0BzB,SAAS;EACT,UAAU;EACV,SAAS;EACT,iBAAiB;AnBotCrB;;AmBnuCA;EAkBM,kBAAkB;EAClB,gBb80BmC;Ea70BnC,WAAW;EAAE,aAAA;EACb,OAAO;EACP,QAAQ;EACR,UAAU;EACV,SAAS;AnBstCf;;AmB9uCA;EA+BM,WAAW;EACX,eAAe;AnBmtCrB;;AmBnvCA;;;EAqCQ,WAAW;EACX,eAAe;AnBotCvB;;AmB1vCA;EA+CI,MAAM;AnB+sCV;;AmB9vCA;EAkDM,WFhEuB;AjBgxC7B;;AmBlwCA;EA0DI,SAAS;AnB4sCb;;AmBtwCA;EA6DM,cF3EuB;AjBwxC7B;;AmB1wCA;EAsEM,iBAAiB;AnBwsCvB;;AmB9wCA;EA+EM,kBAAkB;AnBmsCxB;;AoBzyCA;EAuCM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OpB4yCC;AACP;;AoBp1CA;EASQ,oCAA4B;EAA5B,4BAA4B;EAA5B,sDAA4B;ApB+0CpC;;AoBx1CA;EAoBU,wBAAwB;ApBw0ClC;;AoB51CA;EA4BQ,kBAAkB;EAClB,wBAAwB;ApBo0ChC;;AoBj2CA;EAgCU,oBAAoB;ApBq0C9B;;AqBv2CI;EAMM,yBN2EwD;Af0xClE;;AqB32CI;EAYM,2BNqEwD;Af8xClE;;AqB/2CI;EAkBM,4BN+DwD;AfkyClE;;AqBn3CI;EAwBM,0BNyDwD;AfsyClE;;AqBv3CI;EA4CI,WfxCO;EeyCP,yBNoC0D;Af2yClE;;AqB53CI;EAMM,yBN2EwD;Af+yClE;;AqBh4CI;EAYM,2BNqEwD;AfmzClE;;AqBp4CI;EAkBM,4BN+DwD;AfuzClE;;AqBx4CI;EAwBM,0BNyDwD;Af2zClE;;AqB54CI;EA4CI,WfxCO;EeyCP,yBNoC0D;Afg0ClE;;AqBj5CI;EAMM,yBN2EwD;Afo0ClE;;AqBr5CI;EAYM,2BNqEwD;Afw0ClE;;AqBz5CI;EAkBM,4BN+DwD;Af40ClE;;AqB75CI;EAwBM,0BNyDwD;Afg1ClE;;AqBj6CI;EA4CI,WfxCO;EeyCP,yBNoC0D;Afq1ClE;;AqBt6CI;EAMM,yBN2EwD;Afy1ClE;;AqB16CI;EAYM,2BNqEwD;Af61ClE;;AqB96CI;EAkBM,4BN+DwD;Afi2ClE;;AqBl7CI;EAwBM,0BNyDwD;Afq2ClE;;AqBt7CI;EA4CI,WfxCO;EeyCP,yBNoC0D;Af02ClE;;AqB37CI;EAMM,yBN2EwD;Af82ClE;;AqB/7CI;EAYM,2BNqEwD;Afk3ClE;;AqBn8CI;EAkBM,4BN+DwD;Afs3ClE;;AqBv8CI;EAwBM,0BNyDwD;Af03ClE;;AqB38CI;EA4CI,cf/BU;EegCV,yBNoC0D;Af+3ClE;;AqBh9CI;EAMM,yBN2EwD;Afm4ClE;;AqBp9CI;EAYM,2BNqEwD;Afu4ClE;;AqBx9CI;EAkBM,4BN+DwD;Af24ClE;;AqB59CI;EAwBM,0BNyDwD;Af+4ClE;;AqBh+CI;EA4CI,WfxCO;EeyCP,yBNoC0D;Afo5ClE;;AqBr+CI;EAMM,yBN2EwD;Afw5ClE;;AqBz+CI;EAYM,2BNqEwD;Af45ClE;;AqB7+CI;EAkBM,4BN+DwD;Afg6ClE;;AqBj/CI;EAwBM,0BNyDwD;Afo6ClE;;AqBr/CI;EA4CI,cf/BU;EegCV,yBNoC0D;Afy6ClE;;AqB1/CI;EAMM,yBN2EwD;Af66ClE;;AqB9/CI;EAYM,2BNqEwD;Afi7ClE;;AqBlgDI;EAkBM,4BN+DwD;Afq7ClE;;AqBtgDI;EAwBM,0BNyDwD;Afy7ClE;;AqB1gDI;EA4CI,WfxCO;EeyCP,yBNoC0D;Af87ClE","file":"bootstrap-vue.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * BootstrapVue Custom CSS (https://bootstrap-vue.js.org)\n */\n@media (max-width: 575.98px) {\n  .bv-d-xs-down-none {\n    display: none !important;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .bv-d-sm-down-none {\n    display: none !important;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .bv-d-md-down-none {\n    display: none !important;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .bv-d-lg-down-none {\n    display: none !important;\n  }\n}\n\n.bv-d-xl-down-none {\n  display: none !important;\n}\n\n.card-img-left {\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-img-right {\n  border-top-right-radius: calc(0.25rem - 1px);\n  border-bottom-right-radius: calc(0.25rem - 1px);\n}\n\n.dropdown:not(.dropleft) .dropdown-toggle.dropdown-toggle-no-caret::after {\n  display: none !important;\n}\n\n.dropdown.dropleft .dropdown-toggle.dropdown-toggle-no-caret::before {\n  display: none !important;\n}\n\n.dropdown.b-dropdown .b-dropdown-form {\n  display: inline-block;\n  padding: 0.25rem 1.5rem;\n  width: 100%;\n  clear: both;\n  font-weight: 400;\n}\n\n.dropdown.b-dropdown .b-dropdown-form:focus {\n  outline: 1px dotted !important;\n  outline: 5px auto -webkit-focus-ring-color !important;\n}\n\n.dropdown.b-dropdown .b-dropdown-form.disabled, .dropdown.b-dropdown .b-dropdown-form:disabled {\n  outline: 0 !important;\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.b-dropdown-text {\n  display: inline-block;\n  padding: 0.25rem 1.5rem;\n  margin-bottom: 0;\n  width: 100%;\n  clear: both;\n  font-weight: lighter;\n}\n\n.input-group > .input-group-prepend > .btn-group > .btn,\n.input-group > .input-group-append:not(:last-child) > .btn-group > .btn,\n.input-group > .input-group-append:last-child > .btn-group:not(:last-child):not(.dropdown-toggle) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn-group > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .btn-group > .btn,\n.input-group > .input-group-prepend:first-child > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.was-validated .form-control:invalid,\n.was-validated .form-control:valid, .form-control.is-invalid, .form-control.is-valid {\n  background-position: right calc(0.375em + 0.1875rem) center;\n}\n\ninput[type=\"color\"].form-control {\n  height: calc(1.5em + 0.75rem + 2px);\n  padding: 0.125rem 0.25rem;\n}\n\ninput[type=\"color\"].form-control.form-control-sm,\n.input-group-sm input[type=\"color\"].form-control {\n  height: calc(1.5em + 0.5rem + 2px);\n  padding: 0.125rem 0.25rem;\n}\n\ninput[type=\"color\"].form-control.form-control-lg,\n.input-group-lg input[type=\"color\"].form-control {\n  height: calc(1.5em + 1rem + 2px);\n  padding: 0.125rem 0.25rem;\n}\n\ninput[type=\"color\"].form-control:disabled {\n  background-color: #adb5bd;\n  opacity: 0.65;\n}\n\n.input-group > .custom-range {\n  position: relative;\n  flex: 1 1 auto;\n  width: 1%;\n  margin-bottom: 0;\n}\n\n.input-group > .custom-range + .form-control,\n.input-group > .custom-range + .form-control-plaintext,\n.input-group > .custom-range + .custom-select,\n.input-group > .custom-range + .custom-range,\n.input-group > .custom-range + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control + .custom-range,\n.input-group > .form-control-plaintext + .custom-range,\n.input-group > .custom-select + .custom-range,\n.input-group > .custom-range + .custom-range,\n.input-group > .custom-file + .custom-range {\n  margin-left: -1px;\n}\n\n.input-group > .custom-range:focus {\n  z-index: 3;\n}\n\n.input-group > .custom-range:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-range:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-range {\n  height: calc(1.5em + 0.75rem + 2px);\n  padding: 0 0.75rem;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  height: calc(1.5em + 0.75rem + 2px);\n  border-radius: 0.25rem;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .input-group > .custom-range {\n    transition: none;\n  }\n}\n\n.input-group > .custom-range:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.input-group > .custom-range:disabled, .input-group > .custom-range[readonly] {\n  background-color: #e9ecef;\n}\n\n.input-group-lg > .custom-range {\n  height: calc(1.5em + 1rem + 2px);\n  padding: 0 1rem;\n  border-radius: 0.3rem;\n}\n\n.input-group-sm > .custom-range {\n  height: calc(1.5em + 0.5rem + 2px);\n  padding: 0 0.5rem;\n  border-radius: 0.2rem;\n}\n\n.was-validated .input-group .custom-range:valid, .input-group .custom-range.is-valid {\n  border-color: #28a745;\n}\n\n.was-validated .input-group .custom-range:valid:focus, .input-group .custom-range.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-range:valid:focus::-webkit-slider-thumb, .custom-range.is-valid:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;\n}\n\n.was-validated .custom-range:valid:focus::-moz-range-thumb, .custom-range.is-valid:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;\n}\n\n.was-validated .custom-range:valid:focus::-ms-thumb, .custom-range.is-valid:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;\n}\n\n.was-validated .custom-range:valid::-webkit-slider-thumb, .custom-range.is-valid::-webkit-slider-thumb {\n  background-color: #28a745;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-webkit-slider-thumb:active, .custom-range.is-valid::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-webkit-slider-runnable-track, .custom-range.is-valid::-webkit-slider-runnable-track {\n  background-color: rgba(40, 167, 69, 0.35);\n}\n\n.was-validated .custom-range:valid::-moz-range-thumb, .custom-range.is-valid::-moz-range-thumb {\n  background-color: #28a745;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-moz-range-thumb:active, .custom-range.is-valid::-moz-range-thumb:active {\n  background-color: #9be7ac;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-moz-range-track, .custom-range.is-valid::-moz-range-track {\n  background: rgba(40, 167, 69, 0.35);\n}\n\n.was-validated .custom-range:valid ~ .valid-feedback,\n.was-validated .custom-range:valid ~ .valid-tooltip, .custom-range.is-valid ~ .valid-feedback,\n.custom-range.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-range:valid::-ms-thumb, .custom-range.is-valid::-ms-thumb {\n  background-color: #28a745;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-ms-thumb:active, .custom-range.is-valid::-ms-thumb:active {\n  background-color: #9be7ac;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-ms-track-lower, .custom-range.is-valid::-ms-track-lower {\n  background: rgba(40, 167, 69, 0.35);\n}\n\n.was-validated .custom-range:valid::-ms-track-upper, .custom-range.is-valid::-ms-track-upper {\n  background: rgba(40, 167, 69, 0.35);\n}\n\n.was-validated .input-group .custom-range:invalid, .input-group .custom-range.is-invalid {\n  border-color: #dc3545;\n}\n\n.was-validated .input-group .custom-range:invalid:focus, .input-group .custom-range.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-range:invalid:focus::-webkit-slider-thumb, .custom-range.is-invalid:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;\n}\n\n.was-validated .custom-range:invalid:focus::-moz-range-thumb, .custom-range.is-invalid:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;\n}\n\n.was-validated .custom-range:invalid:focus::-ms-thumb, .custom-range.is-invalid:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;\n}\n\n.was-validated .custom-range:invalid::-webkit-slider-thumb, .custom-range.is-invalid::-webkit-slider-thumb {\n  background-color: #dc3545;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-webkit-slider-thumb:active, .custom-range.is-invalid::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-webkit-slider-runnable-track, .custom-range.is-invalid::-webkit-slider-runnable-track {\n  background-color: rgba(220, 53, 69, 0.35);\n}\n\n.was-validated .custom-range:invalid::-moz-range-thumb, .custom-range.is-invalid::-moz-range-thumb {\n  background-color: #dc3545;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-moz-range-thumb:active, .custom-range.is-invalid::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-moz-range-track, .custom-range.is-invalid::-moz-range-track {\n  background: rgba(220, 53, 69, 0.35);\n}\n\n.was-validated .custom-range:invalid ~ .invalid-feedback,\n.was-validated .custom-range:invalid ~ .invalid-tooltip, .custom-range.is-invalid ~ .invalid-feedback,\n.custom-range.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-range:invalid::-ms-thumb, .custom-range.is-invalid::-ms-thumb {\n  background-color: #dc3545;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-ms-thumb:active, .custom-range.is-invalid::-ms-thumb:active {\n  background-color: #f6cdd1;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-ms-track-lower, .custom-range.is-invalid::-ms-track-lower {\n  background: rgba(220, 53, 69, 0.35);\n}\n\n.was-validated .custom-range:invalid::-ms-track-upper, .custom-range.is-invalid::-ms-track-upper {\n  background: rgba(220, 53, 69, 0.35);\n}\n\n.modal-backdrop {\n  opacity: 0.5;\n}\n\n.b-popover-primary.popover {\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.b-popover-primary.bs-popover-top > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #b8daff;\n}\n\n.b-popover-primary.bs-popover-top > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #cce5ff;\n}\n\n.b-popover-primary.bs-popover-right > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #b8daff;\n}\n\n.b-popover-primary.bs-popover-right > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #cce5ff;\n}\n\n.b-popover-primary.bs-popover-bottom > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #b8daff;\n}\n\n.b-popover-primary.bs-popover-bottom > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #bdddff;\n}\n\n.b-popover-primary.bs-popover-bottom .popover-header::before, .b-popover-primary.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #bdddff;\n}\n\n.b-popover-primary.bs-popover-left > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #b8daff;\n}\n\n.b-popover-primary.bs-popover-left > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #cce5ff;\n}\n\n.b-popover-primary .popover-header {\n  color: #212529;\n  background-color: #bdddff;\n  border-bottom-color: #a3d0ff;\n}\n\n.b-popover-primary .popover-body {\n  color: #004085;\n}\n\n.b-popover-secondary.popover {\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.b-popover-secondary.bs-popover-top > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #d6d8db;\n}\n\n.b-popover-secondary.bs-popover-top > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #e2e3e5;\n}\n\n.b-popover-secondary.bs-popover-right > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #d6d8db;\n}\n\n.b-popover-secondary.bs-popover-right > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #e2e3e5;\n}\n\n.b-popover-secondary.bs-popover-bottom > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #d6d8db;\n}\n\n.b-popover-secondary.bs-popover-bottom > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #dadbde;\n}\n\n.b-popover-secondary.bs-popover-bottom .popover-header::before, .b-popover-secondary.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #dadbde;\n}\n\n.b-popover-secondary.bs-popover-left > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #d6d8db;\n}\n\n.b-popover-secondary.bs-popover-left > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #e2e3e5;\n}\n\n.b-popover-secondary .popover-header {\n  color: #212529;\n  background-color: #dadbde;\n  border-bottom-color: #ccced2;\n}\n\n.b-popover-secondary .popover-body {\n  color: #383d41;\n}\n\n.b-popover-success.popover {\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.b-popover-success.bs-popover-top > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #c3e6cb;\n}\n\n.b-popover-success.bs-popover-top > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #d4edda;\n}\n\n.b-popover-success.bs-popover-right > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #c3e6cb;\n}\n\n.b-popover-success.bs-popover-right > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #d4edda;\n}\n\n.b-popover-success.bs-popover-bottom > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #c3e6cb;\n}\n\n.b-popover-success.bs-popover-bottom > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #c9e8d1;\n}\n\n.b-popover-success.bs-popover-bottom .popover-header::before, .b-popover-success.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #c9e8d1;\n}\n\n.b-popover-success.bs-popover-left > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #c3e6cb;\n}\n\n.b-popover-success.bs-popover-left > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #d4edda;\n}\n\n.b-popover-success .popover-header {\n  color: #212529;\n  background-color: #c9e8d1;\n  border-bottom-color: #b7e1c1;\n}\n\n.b-popover-success .popover-body {\n  color: #155724;\n}\n\n.b-popover-info.popover {\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.b-popover-info.bs-popover-top > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #bee5eb;\n}\n\n.b-popover-info.bs-popover-top > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #d1ecf1;\n}\n\n.b-popover-info.bs-popover-right > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #bee5eb;\n}\n\n.b-popover-info.bs-popover-right > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #d1ecf1;\n}\n\n.b-popover-info.bs-popover-bottom > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #bee5eb;\n}\n\n.b-popover-info.bs-popover-bottom > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #c5e7ed;\n}\n\n.b-popover-info.bs-popover-bottom .popover-header::before, .b-popover-info.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #c5e7ed;\n}\n\n.b-popover-info.bs-popover-left > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #bee5eb;\n}\n\n.b-popover-info.bs-popover-left > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #d1ecf1;\n}\n\n.b-popover-info .popover-header {\n  color: #212529;\n  background-color: #c5e7ed;\n  border-bottom-color: #b2dfe7;\n}\n\n.b-popover-info .popover-body {\n  color: #0c5460;\n}\n\n.b-popover-warning.popover {\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.b-popover-warning.bs-popover-top > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #ffeeba;\n}\n\n.b-popover-warning.bs-popover-top > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #fff3cd;\n}\n\n.b-popover-warning.bs-popover-right > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #ffeeba;\n}\n\n.b-popover-warning.bs-popover-right > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #fff3cd;\n}\n\n.b-popover-warning.bs-popover-bottom > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #ffeeba;\n}\n\n.b-popover-warning.bs-popover-bottom > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #ffefbe;\n}\n\n.b-popover-warning.bs-popover-bottom .popover-header::before, .b-popover-warning.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #ffefbe;\n}\n\n.b-popover-warning.bs-popover-left > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #ffeeba;\n}\n\n.b-popover-warning.bs-popover-left > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #fff3cd;\n}\n\n.b-popover-warning .popover-header {\n  color: #212529;\n  background-color: #ffefbe;\n  border-bottom-color: #ffe9a4;\n}\n\n.b-popover-warning .popover-body {\n  color: #856404;\n}\n\n.b-popover-danger.popover {\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.b-popover-danger.bs-popover-top > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #f5c6cb;\n}\n\n.b-popover-danger.bs-popover-top > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #f8d7da;\n}\n\n.b-popover-danger.bs-popover-right > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #f5c6cb;\n}\n\n.b-popover-danger.bs-popover-right > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #f8d7da;\n}\n\n.b-popover-danger.bs-popover-bottom > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #f5c6cb;\n}\n\n.b-popover-danger.bs-popover-bottom > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #f6cace;\n}\n\n.b-popover-danger.bs-popover-bottom .popover-header::before, .b-popover-danger.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #f6cace;\n}\n\n.b-popover-danger.bs-popover-left > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #f5c6cb;\n}\n\n.b-popover-danger.bs-popover-left > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #f8d7da;\n}\n\n.b-popover-danger .popover-header {\n  color: #212529;\n  background-color: #f6cace;\n  border-bottom-color: #f2b4ba;\n}\n\n.b-popover-danger .popover-body {\n  color: #721c24;\n}\n\n.b-popover-light.popover {\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.b-popover-light.bs-popover-top > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #fdfdfe;\n}\n\n.b-popover-light.bs-popover-top > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #fefefe;\n}\n\n.b-popover-light.bs-popover-right > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #fdfdfe;\n}\n\n.b-popover-light.bs-popover-right > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #fefefe;\n}\n\n.b-popover-light.bs-popover-bottom > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #fdfdfe;\n}\n\n.b-popover-light.bs-popover-bottom > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #f6f6f6;\n}\n\n.b-popover-light.bs-popover-bottom .popover-header::before, .b-popover-light.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #f6f6f6;\n}\n\n.b-popover-light.bs-popover-left > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #fdfdfe;\n}\n\n.b-popover-light.bs-popover-left > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #fefefe;\n}\n\n.b-popover-light .popover-header {\n  color: #212529;\n  background-color: #f6f6f6;\n  border-bottom-color: #eaeaea;\n}\n\n.b-popover-light .popover-body {\n  color: #818182;\n}\n\n.b-popover-dark.popover {\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.b-popover-dark.bs-popover-top > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #c6c8ca;\n}\n\n.b-popover-dark.bs-popover-top > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #d6d8d9;\n}\n\n.b-popover-dark.bs-popover-right > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #c6c8ca;\n}\n\n.b-popover-dark.bs-popover-right > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #d6d8d9;\n}\n\n.b-popover-dark.bs-popover-bottom > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #c6c8ca;\n}\n\n.b-popover-dark.bs-popover-bottom > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #ced0d2;\n}\n\n.b-popover-dark.bs-popover-bottom .popover-header::before, .b-popover-dark.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #ced0d2;\n}\n\n.b-popover-dark.bs-popover-left > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #c6c8ca;\n}\n\n.b-popover-dark.bs-popover-left > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #d6d8d9;\n}\n\n.b-popover-dark .popover-header {\n  color: #212529;\n  background-color: #ced0d2;\n  border-bottom-color: #c1c4c5;\n}\n\n.b-popover-dark .popover-body {\n  color: #1b1e21;\n}\n\n.table.b-table.b-table-fixed {\n  table-layout: fixed;\n}\n\n.table.b-table[aria-busy=\"true\"] {\n  opacity: 0.55;\n}\n\n.table.b-table > tbody > tr.b-table-details > td {\n  border-top: none !important;\n}\n\n.table.b-table > caption {\n  caption-side: bottom;\n}\n\n.table.b-table > caption.b-table-caption-top {\n  caption-side: top !important;\n}\n\n.table.b-table > thead > tr > th[aria-sort],\n.table.b-table > tfoot > tr > th[aria-sort] {\n  cursor: pointer;\n}\n\n.table.b-table > thead > tr > th[aria-sort]::before,\n.table.b-table > tfoot > tr > th[aria-sort]::before {\n  display: inline-block;\n  float: right;\n  margin-left: 0.5em;\n  width: 0.5em;\n  font-size: inherit;\n  line-height: inherit;\n  opacity: 0.4;\n  content: \"↕\";\n  speak: none;\n}\n\n.table.b-table > thead > tr > th[aria-sort][aria-sort=\"ascending\"]::before,\n.table.b-table > tfoot > tr > th[aria-sort][aria-sort=\"ascending\"]::before {\n  opacity: 1;\n  content: \"↓\";\n}\n\n.table.b-table > thead > tr > th[aria-sort][aria-sort=\"descending\"]::before,\n.table.b-table > tfoot > tr > th[aria-sort][aria-sort=\"descending\"]::before {\n  opacity: 1;\n  content: \"↑\";\n}\n\n@media (max-width: 575.98px) {\n  .table.b-table.b-table-stacked-sm {\n    display: block;\n    width: 100%;\n  }\n  .table.b-table.b-table-stacked-sm > caption,\n  .table.b-table.b-table-stacked-sm > tbody,\n  .table.b-table.b-table-stacked-sm > tbody > tr,\n  .table.b-table.b-table-stacked-sm > tbody > tr > td,\n  .table.b-table.b-table-stacked-sm > tbody > tr > td {\n    display: block;\n  }\n  .table.b-table.b-table-stacked-sm > thead,\n  .table.b-table.b-table-stacked-sm > tfoot {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-sm > thead > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-sm > thead > tr.b-table-bottom-row,\n  .table.b-table.b-table-stacked-sm > tfoot > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-sm > tfoot > tr.b-table-bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-sm > caption {\n    caption-side: top !important;\n  }\n  .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::before {\n    content: attr(data-label);\n    display: inline-block;\n    width: 40%;\n    float: left;\n    text-align: right;\n    overflow-wrap: break-word;\n    font-weight: bold;\n    font-style: normal;\n    padding: 0;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n  .table.b-table.b-table-stacked-sm > tbody > tr > [data-label] > div {\n    display: inline-block;\n    width: calc(100% - 40%);\n    padding: 0 0 0 1rem;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-sm > tbody > tr.top-row, .table.b-table.b-table-stacked-sm > tbody > tr.bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-sm > tbody > tr > :first-child {\n    border-top-width: 3px;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table.b-table.b-table-stacked-md {\n    display: block;\n    width: 100%;\n  }\n  .table.b-table.b-table-stacked-md > caption,\n  .table.b-table.b-table-stacked-md > tbody,\n  .table.b-table.b-table-stacked-md > tbody > tr,\n  .table.b-table.b-table-stacked-md > tbody > tr > td,\n  .table.b-table.b-table-stacked-md > tbody > tr > td {\n    display: block;\n  }\n  .table.b-table.b-table-stacked-md > thead,\n  .table.b-table.b-table-stacked-md > tfoot {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-md > thead > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-md > thead > tr.b-table-bottom-row,\n  .table.b-table.b-table-stacked-md > tfoot > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-md > tfoot > tr.b-table-bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-md > caption {\n    caption-side: top !important;\n  }\n  .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::before {\n    content: attr(data-label);\n    display: inline-block;\n    width: 40%;\n    float: left;\n    text-align: right;\n    overflow-wrap: break-word;\n    font-weight: bold;\n    font-style: normal;\n    padding: 0;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n  .table.b-table.b-table-stacked-md > tbody > tr > [data-label] > div {\n    display: inline-block;\n    width: calc(100% - 40%);\n    padding: 0 0 0 1rem;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-md > tbody > tr.top-row, .table.b-table.b-table-stacked-md > tbody > tr.bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-md > tbody > tr > :first-child {\n    border-top-width: 3px;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table.b-table.b-table-stacked-lg {\n    display: block;\n    width: 100%;\n  }\n  .table.b-table.b-table-stacked-lg > caption,\n  .table.b-table.b-table-stacked-lg > tbody,\n  .table.b-table.b-table-stacked-lg > tbody > tr,\n  .table.b-table.b-table-stacked-lg > tbody > tr > td,\n  .table.b-table.b-table-stacked-lg > tbody > tr > td {\n    display: block;\n  }\n  .table.b-table.b-table-stacked-lg > thead,\n  .table.b-table.b-table-stacked-lg > tfoot {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-lg > thead > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-lg > thead > tr.b-table-bottom-row,\n  .table.b-table.b-table-stacked-lg > tfoot > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-lg > tfoot > tr.b-table-bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-lg > caption {\n    caption-side: top !important;\n  }\n  .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::before {\n    content: attr(data-label);\n    display: inline-block;\n    width: 40%;\n    float: left;\n    text-align: right;\n    overflow-wrap: break-word;\n    font-weight: bold;\n    font-style: normal;\n    padding: 0;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n  .table.b-table.b-table-stacked-lg > tbody > tr > [data-label] > div {\n    display: inline-block;\n    width: calc(100% - 40%);\n    padding: 0 0 0 1rem;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-lg > tbody > tr.top-row, .table.b-table.b-table-stacked-lg > tbody > tr.bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-lg > tbody > tr > :first-child {\n    border-top-width: 3px;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table.b-table.b-table-stacked-xl {\n    display: block;\n    width: 100%;\n  }\n  .table.b-table.b-table-stacked-xl > caption,\n  .table.b-table.b-table-stacked-xl > tbody,\n  .table.b-table.b-table-stacked-xl > tbody > tr,\n  .table.b-table.b-table-stacked-xl > tbody > tr > td,\n  .table.b-table.b-table-stacked-xl > tbody > tr > td {\n    display: block;\n  }\n  .table.b-table.b-table-stacked-xl > thead,\n  .table.b-table.b-table-stacked-xl > tfoot {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-xl > thead > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-xl > thead > tr.b-table-bottom-row,\n  .table.b-table.b-table-stacked-xl > tfoot > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-xl > tfoot > tr.b-table-bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-xl > caption {\n    caption-side: top !important;\n  }\n  .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::before {\n    content: attr(data-label);\n    display: inline-block;\n    width: 40%;\n    float: left;\n    text-align: right;\n    overflow-wrap: break-word;\n    font-weight: bold;\n    font-style: normal;\n    padding: 0;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n  .table.b-table.b-table-stacked-xl > tbody > tr > [data-label] > div {\n    display: inline-block;\n    width: calc(100% - 40%);\n    padding: 0 0 0 1rem;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-xl > tbody > tr.top-row, .table.b-table.b-table-stacked-xl > tbody > tr.bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-xl > tbody > tr > :first-child {\n    border-top-width: 3px;\n  }\n}\n\n.table.b-table.b-table-stacked {\n  display: block;\n  width: 100%;\n}\n\n.table.b-table.b-table-stacked > caption,\n.table.b-table.b-table-stacked > tbody,\n.table.b-table.b-table-stacked > tbody > tr,\n.table.b-table.b-table-stacked > tbody > tr > td,\n.table.b-table.b-table-stacked > tbody > tr > td {\n  display: block;\n}\n\n.table.b-table.b-table-stacked > thead,\n.table.b-table.b-table-stacked > tfoot {\n  display: none;\n}\n\n.table.b-table.b-table-stacked > thead > tr.b-table-top-row,\n.table.b-table.b-table-stacked > thead > tr.b-table-bottom-row,\n.table.b-table.b-table-stacked > tfoot > tr.b-table-top-row,\n.table.b-table.b-table-stacked > tfoot > tr.b-table-bottom-row {\n  display: none;\n}\n\n.table.b-table.b-table-stacked > caption {\n  caption-side: top !important;\n}\n\n.table.b-table.b-table-stacked > tbody > tr > [data-label]::before {\n  content: attr(data-label);\n  display: inline-block;\n  width: 40%;\n  float: left;\n  text-align: right;\n  overflow-wrap: break-word;\n  font-weight: bold;\n  font-style: normal;\n  padding: 0;\n  margin: 0;\n}\n\n.table.b-table.b-table-stacked > tbody > tr > [data-label]::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.table.b-table.b-table-stacked > tbody > tr > [data-label] > div {\n  display: inline-block;\n  width: calc(100% - 40%);\n  padding: 0 0 0 1rem;\n  margin: 0;\n}\n\n.table.b-table.b-table-stacked > tbody > tr.top-row, .table.b-table.b-table-stacked > tbody > tr.bottom-row {\n  display: none;\n}\n\n.table.b-table.b-table-stacked > tbody > tr > :first-child {\n  border-top-width: 3px;\n}\n\n.table.b-table.b-table-selectable > tbody > tr {\n  cursor: pointer;\n}\n\n.table.b-table.b-table-selectable.b-table-selecting.b-table-select-range > tbody > tr {\n  user-select: none;\n}\n\n.b-toast {\n  display: block;\n  position: relative;\n  max-width: 350px;\n  backface-visibility: hidden;\n  background-clip: padding-box;\n  z-index: 1;\n  border-radius: 0.25rem;\n}\n\n.b-toast:not(:last-child) {\n  margin-bottom: 0.75rem;\n}\n\n.b-toast.b-toast-solid .toast {\n  background-color: white;\n}\n\n.b-toast .toast {\n  opacity: 1;\n}\n\n.b-toast .toast.fade:not(.show) {\n  opacity: 0;\n}\n\n.b-toast .toast .toast-body {\n  display: block;\n}\n\n.b-toast-primary .toast {\n  background-color: rgba(230, 242, 255, 0.85);\n  border-color: rgba(184, 218, 255, 0.85);\n  color: #004085;\n}\n\n.b-toast-primary .toast .toast-header {\n  color: #004085;\n  background-color: rgba(204, 229, 255, 0.85);\n  border-bottom-color: rgba(184, 218, 255, 0.85);\n}\n\n.b-toast-primary.b-toast-solid .toast {\n  background-color: #e6f2ff;\n}\n\n.b-toast-secondary .toast {\n  background-color: rgba(239, 240, 241, 0.85);\n  border-color: rgba(214, 216, 219, 0.85);\n  color: #383d41;\n}\n\n.b-toast-secondary .toast .toast-header {\n  color: #383d41;\n  background-color: rgba(226, 227, 229, 0.85);\n  border-bottom-color: rgba(214, 216, 219, 0.85);\n}\n\n.b-toast-secondary.b-toast-solid .toast {\n  background-color: #eff0f1;\n}\n\n.b-toast-success .toast {\n  background-color: rgba(230, 245, 233, 0.85);\n  border-color: rgba(195, 230, 203, 0.85);\n  color: #155724;\n}\n\n.b-toast-success .toast .toast-header {\n  color: #155724;\n  background-color: rgba(212, 237, 218, 0.85);\n  border-bottom-color: rgba(195, 230, 203, 0.85);\n}\n\n.b-toast-success.b-toast-solid .toast {\n  background-color: #e6f5e9;\n}\n\n.b-toast-info .toast {\n  background-color: rgba(229, 244, 247, 0.85);\n  border-color: rgba(190, 229, 235, 0.85);\n  color: #0c5460;\n}\n\n.b-toast-info .toast .toast-header {\n  color: #0c5460;\n  background-color: rgba(209, 236, 241, 0.85);\n  border-bottom-color: rgba(190, 229, 235, 0.85);\n}\n\n.b-toast-info.b-toast-solid .toast {\n  background-color: #e5f4f7;\n}\n\n.b-toast-warning .toast {\n  background-color: rgba(255, 249, 231, 0.85);\n  border-color: rgba(255, 238, 186, 0.85);\n  color: #856404;\n}\n\n.b-toast-warning .toast .toast-header {\n  color: #856404;\n  background-color: rgba(255, 243, 205, 0.85);\n  border-bottom-color: rgba(255, 238, 186, 0.85);\n}\n\n.b-toast-warning.b-toast-solid .toast {\n  background-color: #fff9e7;\n}\n\n.b-toast-danger .toast {\n  background-color: rgba(252, 237, 238, 0.85);\n  border-color: rgba(245, 198, 203, 0.85);\n  color: #721c24;\n}\n\n.b-toast-danger .toast .toast-header {\n  color: #721c24;\n  background-color: rgba(248, 215, 218, 0.85);\n  border-bottom-color: rgba(245, 198, 203, 0.85);\n}\n\n.b-toast-danger.b-toast-solid .toast {\n  background-color: #fcedee;\n}\n\n.b-toast-light .toast {\n  background-color: rgba(255, 255, 255, 0.85);\n  border-color: rgba(253, 253, 254, 0.85);\n  color: #818182;\n}\n\n.b-toast-light .toast .toast-header {\n  color: #818182;\n  background-color: rgba(254, 254, 254, 0.85);\n  border-bottom-color: rgba(253, 253, 254, 0.85);\n}\n\n.b-toast-light.b-toast-solid .toast {\n  background-color: white;\n}\n\n.b-toast-dark .toast {\n  background-color: rgba(227, 229, 229, 0.85);\n  border-color: rgba(198, 200, 202, 0.85);\n  color: #1b1e21;\n}\n\n.b-toast-dark .toast .toast-header {\n  color: #1b1e21;\n  background-color: rgba(214, 216, 217, 0.85);\n  border-bottom-color: rgba(198, 200, 202, 0.85);\n}\n\n.b-toast-dark.b-toast-solid .toast {\n  background-color: #e3e5e5;\n}\n\n.b-toaster {\n  z-index: 1100;\n}\n\n.b-toaster .b-toaster-slot {\n  position: relative;\n  display: block;\n}\n\n.b-toaster .b-toaster-slot:empty {\n  display: none !important;\n}\n\n.b-toaster.b-toaster-top-right, .b-toaster.b-toaster-top-left, .b-toaster.b-toaster-top-center, .b-toaster.b-toaster-top-full, .b-toaster.b-toaster-bottom-right, .b-toaster.b-toaster-bottom-left, .b-toaster.b-toaster-bottom-center, .b-toaster.b-toaster-bottom-full {\n  position: fixed;\n  left: 0.5rem;\n  right: 0.5rem;\n  margin: 0;\n  padding: 0;\n  height: 0;\n  overflow: visible;\n}\n\n.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-top-full .b-toaster-slot, .b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot {\n  position: absolute;\n  max-width: 350px;\n  width: 100%;\n  /* IE11 fix */\n  left: 0;\n  right: 0;\n  padding: 0;\n  margin: 0;\n}\n\n.b-toaster.b-toaster-top-full .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot {\n  width: 100%;\n  max-width: 100%;\n}\n\n.b-toaster.b-toaster-top-full .b-toaster-slot .b-toast,\n.b-toaster.b-toaster-top-full .b-toaster-slot .toast, .b-toaster.b-toaster-bottom-full .b-toaster-slot .b-toast,\n.b-toaster.b-toaster-bottom-full .b-toaster-slot .toast {\n  width: 100%;\n  max-width: 100%;\n}\n\n.b-toaster.b-toaster-top-right, .b-toaster.b-toaster-top-left, .b-toaster.b-toaster-top-center, .b-toaster.b-toaster-top-full {\n  top: 0;\n}\n\n.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-top-full .b-toaster-slot {\n  top: 0.5rem;\n}\n\n.b-toaster.b-toaster-bottom-right, .b-toaster.b-toaster-bottom-left, .b-toaster.b-toaster-bottom-center, .b-toaster.b-toaster-bottom-full {\n  bottom: 0;\n}\n\n.b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot {\n  bottom: 0.5rem;\n}\n\n.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot {\n  margin-left: auto;\n}\n\n.b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot {\n  margin-right: auto;\n}\n\n.b-toaster.b-toaster-top-right .b-toast, .b-toaster.b-toaster-top-left .b-toast, .b-toaster.b-toaster-bottom-right .b-toast, .b-toaster.b-toaster-bottom-left .b-toast {\n  /*\n      &.b-toaster-enter-active,\n      &.b-toaster-enter-to {\n        .toast.fade {\n          // Delay the appearance of the toast until\n          // the move transition has completed\n          transition-delay: 0.175s;\n        }\n      }\n\n      &.b-toaster-move {\n        transition: transform 0.175s;\n        // transition-delay: 0.175s;\n      }\n\n      &.b-toaster-enter-active {\n        z-index: 0;\n      }\n\n      &.b-toaster-leave-active {\n        transition: transform 0.175s;\n      }\n\n      &.b-toaster-leave,\n      &.b-toaster-leave-active {\n        position: absolute;\n        z-index: 0;\n        transition-delay: 0.175s;\n\n        .toast.fade {\n          transition-delay: 0s;\n        }\n      }\n\n      &.b-toaster-leave {\n      }\n\n      &.b-toaster-leave-to {\n      }\n      */\n}\n\n.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-right .b-toast.b-toaster-move, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-move, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-move, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-move {\n  transition: transform 0.175s;\n}\n\n.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active .toast.fade {\n  transition-delay: 0.175s;\n}\n\n.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active {\n  position: absolute;\n  transition-delay: 0.175s;\n}\n\n.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active .toast.fade {\n  transition-delay: 0s;\n}\n\n.tooltip.b-tooltip-primary.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #007bff;\n}\n\n.tooltip.b-tooltip-primary.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #007bff;\n}\n\n.tooltip.b-tooltip-primary.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #007bff;\n}\n\n.tooltip.b-tooltip-primary.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #007bff;\n}\n\n.tooltip.b-tooltip-primary .tooltip-inner {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.tooltip.b-tooltip-secondary.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #6c757d;\n}\n\n.tooltip.b-tooltip-secondary.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #6c757d;\n}\n\n.tooltip.b-tooltip-secondary.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #6c757d;\n}\n\n.tooltip.b-tooltip-secondary.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #6c757d;\n}\n\n.tooltip.b-tooltip-secondary .tooltip-inner {\n  color: #fff;\n  background-color: #6c757d;\n}\n\n.tooltip.b-tooltip-success.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #28a745;\n}\n\n.tooltip.b-tooltip-success.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #28a745;\n}\n\n.tooltip.b-tooltip-success.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #28a745;\n}\n\n.tooltip.b-tooltip-success.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #28a745;\n}\n\n.tooltip.b-tooltip-success .tooltip-inner {\n  color: #fff;\n  background-color: #28a745;\n}\n\n.tooltip.b-tooltip-info.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #17a2b8;\n}\n\n.tooltip.b-tooltip-info.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #17a2b8;\n}\n\n.tooltip.b-tooltip-info.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #17a2b8;\n}\n\n.tooltip.b-tooltip-info.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #17a2b8;\n}\n\n.tooltip.b-tooltip-info .tooltip-inner {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\n.tooltip.b-tooltip-warning.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #ffc107;\n}\n\n.tooltip.b-tooltip-warning.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #ffc107;\n}\n\n.tooltip.b-tooltip-warning.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #ffc107;\n}\n\n.tooltip.b-tooltip-warning.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #ffc107;\n}\n\n.tooltip.b-tooltip-warning .tooltip-inner {\n  color: #212529;\n  background-color: #ffc107;\n}\n\n.tooltip.b-tooltip-danger.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #dc3545;\n}\n\n.tooltip.b-tooltip-danger.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #dc3545;\n}\n\n.tooltip.b-tooltip-danger.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #dc3545;\n}\n\n.tooltip.b-tooltip-danger.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #dc3545;\n}\n\n.tooltip.b-tooltip-danger .tooltip-inner {\n  color: #fff;\n  background-color: #dc3545;\n}\n\n.tooltip.b-tooltip-light.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #f8f9fa;\n}\n\n.tooltip.b-tooltip-light.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #f8f9fa;\n}\n\n.tooltip.b-tooltip-light.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #f8f9fa;\n}\n\n.tooltip.b-tooltip-light.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #f8f9fa;\n}\n\n.tooltip.b-tooltip-light .tooltip-inner {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\n.tooltip.b-tooltip-dark.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #343a40;\n}\n\n.tooltip.b-tooltip-dark.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #343a40;\n}\n\n.tooltip.b-tooltip-dark.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #343a40;\n}\n\n.tooltip.b-tooltip-dark.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #343a40;\n}\n\n.tooltip.b-tooltip-dark .tooltip-inner {\n  color: #fff;\n  background-color: #343a40;\n}\n\n/*# sourceMappingURL=bootstrap-vue.css.map */","/*!\n * BootstrapVue Custom CSS (https://bootstrap-vue.js.org)\n */\n\n// Include Bootstrap functions, variables, and mixins\n@import \"node_modules/bootstrap/scss/functions\";\n@import \"node_modules/bootstrap/scss/variables\";\n@import \"node_modules/bootstrap/scss/mixins\";\n\n// Import BootstrapVue custom SCSS\n@import \"../src/index.scss\";\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $next: breakpoint-next($name, $breakpoints);\n  @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  $max: breakpoint-max($name, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($name, $breakpoints) {\n      @content;\n    }\n  }\n}\n","// --- BootstrapVue Utility Classes ---\n\n$bv-utility-classes-defined: false !default;\n\n// Make sure to include these style definitions only once\n@if $bv-utility-classes-defined == false {\n  $bv-utility-classes-defined: true;\n\n  // Create `.bv-d-<bp>-down-none` helper classes\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    @include media-breakpoint-down($breakpoint) {\n      .bv-d-#{$breakpoint}-down-none {\n        display: none !important;\n      }\n    }\n  }\n}\n",".card-img-left {\n  @include border-left-radius($card-inner-border-radius);\n}\n\n.card-img-right {\n  @include border-right-radius($card-inner-border-radius);\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n  @if $enable-rounded {\n    border-radius: $radius;\n  }\n  @else if $fallback-border-radius != false {\n    border-radius: $fallback-border-radius;\n  }\n}\n\n@mixin border-top-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: $radius;\n    border-top-right-radius: $radius;\n  }\n}\n\n@mixin border-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: $radius;\n    border-bottom-right-radius: $radius;\n  }\n}\n\n@mixin border-bottom-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: $radius;\n    border-bottom-left-radius: $radius;\n  }\n}\n\n@mixin border-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: $radius;\n    border-bottom-left-radius: $radius;\n  }\n}\n\n@mixin border-top-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: $radius;\n  }\n}\n\n@mixin border-top-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: $radius;\n  }\n}\n\n@mixin border-bottom-right-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: $radius;\n  }\n}\n\n@mixin border-bottom-left-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-left-radius: $radius;\n  }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white:    #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black:    #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n  (\n    \"100\": $gray-100,\n    \"200\": $gray-200,\n    \"300\": $gray-300,\n    \"400\": $gray-400,\n    \"500\": $gray-500,\n    \"600\": $gray-600,\n    \"700\": $gray-700,\n    \"800\": $gray-800,\n    \"900\": $gray-900\n  ),\n  $grays\n);\n\n$blue:    #007bff !default;\n$indigo:  #6610f2 !default;\n$purple:  #6f42c1 !default;\n$pink:    #e83e8c !default;\n$red:     #dc3545 !default;\n$orange:  #fd7e14 !default;\n$yellow:  #ffc107 !default;\n$green:   #28a745 !default;\n$teal:    #20c997 !default;\n$cyan:    #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n  (\n    \"blue\":       $blue,\n    \"indigo\":     $indigo,\n    \"purple\":     $purple,\n    \"pink\":       $pink,\n    \"red\":        $red,\n    \"orange\":     $orange,\n    \"yellow\":     $yellow,\n    \"green\":      $green,\n    \"teal\":       $teal,\n    \"cyan\":       $cyan,\n    \"white\":      $white,\n    \"gray\":       $gray-600,\n    \"gray-dark\":  $gray-800\n  ),\n  $colors\n);\n\n$primary:       $blue !default;\n$secondary:     $gray-600 !default;\n$success:       $green !default;\n$info:          $cyan !default;\n$warning:       $yellow !default;\n$danger:        $red !default;\n$light:         $gray-100 !default;\n$dark:          $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n  (\n    \"primary\":    $primary,\n    \"secondary\":  $secondary,\n    \"success\":    $success,\n    \"info\":       $info,\n    \"warning\":    $warning,\n    \"danger\":     $danger,\n    \"light\":      $light,\n    \"dark\":       $dark\n  ),\n  $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval:      8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold:  150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark:             $gray-900 !default;\n$yiq-text-light:            $white !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret:                                true !default;\n$enable-rounded:                              true !default;\n$enable-shadows:                              false !default;\n$enable-gradients:                            false !default;\n$enable-transitions:                          true !default;\n$enable-prefers-reduced-motion-media-query:   true !default;\n$enable-hover-media-query:                    false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes:                         true !default;\n$enable-pointer-cursor-for-buttons:           true !default;\n$enable-print-styles:                         true !default;\n$enable-responsive-font-sizes:                false !default;\n$enable-validation-icons:                     true !default;\n$enable-deprecation-messages:                 true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n  (\n    0: 0,\n    1: ($spacer * .25),\n    2: ($spacer * .5),\n    3: $spacer,\n    4: ($spacer * 1.5),\n    5: ($spacer * 3)\n  ),\n  $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n  (\n    25: 25%,\n    50: 50%,\n    75: 75%,\n    100: 100%,\n    auto: auto\n  ),\n  $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg:                   $white !default;\n$body-color:                $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color:                              theme-color(\"primary\") !default;\n$link-decoration:                         none !default;\n$link-hover-color:                        darken($link-color, 15%) !default;\n$link-hover-decoration:                   underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom:   1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n  xs: 0,\n  sm: 576px,\n  md: 768px,\n  lg: 992px,\n  xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns:                12 !default;\n$grid-gutter-width:           30px !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg:              1.5 !default;\n$line-height-sm:              1.5 !default;\n\n$border-width:                1px !default;\n$border-color:                $gray-300 !default;\n\n$border-radius:               .25rem !default;\n$border-radius-lg:            .3rem !default;\n$border-radius-sm:            .2rem !default;\n\n$rounded-pill:                50rem !default;\n\n$box-shadow-sm:               0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow:                  0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg:               0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color:      $white !default;\n$component-active-bg:         theme-color(\"primary\") !default;\n\n$caret-width:                 .3em !default;\n$caret-vertical-align:        $caret-width * .85 !default;\n$caret-spacing:               $caret-width * .85 !default;\n\n$transition-base:             all .2s ease-in-out !default;\n$transition-fade:             opacity .15s linear !default;\n$transition-collapse:         height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n  (\n    (21 9),\n    (16 9),\n    (4 3),\n    (1 1),\n  ),\n  $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif:      -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base:            $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg:                $font-size-base * 1.25 !default;\n$font-size-sm:                $font-size-base * .875 !default;\n\n$font-weight-lighter:         lighter !default;\n$font-weight-light:           300 !default;\n$font-weight-normal:          400 !default;\n$font-weight-bold:            700 !default;\n$font-weight-bolder:          bolder !default;\n\n$font-weight-base:            $font-weight-normal !default;\n$line-height-base:            1.5 !default;\n\n$h1-font-size:                $font-size-base * 2.5 !default;\n$h2-font-size:                $font-size-base * 2 !default;\n$h3-font-size:                $font-size-base * 1.75 !default;\n$h4-font-size:                $font-size-base * 1.5 !default;\n$h5-font-size:                $font-size-base * 1.25 !default;\n$h6-font-size:                $font-size-base !default;\n\n$headings-margin-bottom:      $spacer / 2 !default;\n$headings-font-family:        null !default;\n$headings-font-weight:        500 !default;\n$headings-line-height:        1.2 !default;\n$headings-color:              null !default;\n\n$display1-size:               6rem !default;\n$display2-size:               5.5rem !default;\n$display3-size:               4.5rem !default;\n$display4-size:               3.5rem !default;\n\n$display1-weight:             300 !default;\n$display2-weight:             300 !default;\n$display3-weight:             300 !default;\n$display4-weight:             300 !default;\n$display-line-height:         $headings-line-height !default;\n\n$lead-font-size:              $font-size-base * 1.25 !default;\n$lead-font-weight:            300 !default;\n\n$small-font-size:             80% !default;\n\n$text-muted:                  $gray-600 !default;\n\n$blockquote-small-color:      $gray-600 !default;\n$blockquote-small-font-size:  $small-font-size !default;\n$blockquote-font-size:        $font-size-base * 1.25 !default;\n\n$hr-border-color:             rgba($black, .1) !default;\n$hr-border-width:             $border-width !default;\n\n$mark-padding:                .2em !default;\n\n$dt-font-weight:              $font-weight-bold !default;\n\n$kbd-box-shadow:              inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight:      $font-weight-bold !default;\n\n$list-inline-padding:         .5rem !default;\n\n$mark-bg:                     #fcf8e3 !default;\n\n$hr-margin-y:                 $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding:          .75rem !default;\n$table-cell-padding-sm:       .3rem !default;\n\n$table-color:                 $body-color !default;\n$table-bg:                    null !default;\n$table-accent-bg:             rgba($black, .05) !default;\n$table-hover-color:           $table-color !default;\n$table-hover-bg:              rgba($black, .075) !default;\n$table-active-bg:             $table-hover-bg !default;\n\n$table-border-width:          $border-width !default;\n$table-border-color:          $border-color !default;\n\n$table-head-bg:               $gray-200 !default;\n$table-head-color:            $gray-700 !default;\n\n$table-dark-color:            $white !default;\n$table-dark-bg:               $gray-800 !default;\n$table-dark-accent-bg:        rgba($white, .05) !default;\n$table-dark-hover-color:      $table-dark-color !default;\n$table-dark-hover-bg:         rgba($white, .075) !default;\n$table-dark-border-color:     lighten($table-dark-bg, 7.5%) !default;\n$table-dark-color:            $white !default;\n\n$table-striped-order:         odd !default;\n\n$table-caption-color:         $text-muted !default;\n\n$table-bg-level:              -9 !default;\n$table-border-level:          -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y:         .375rem !default;\n$input-btn-padding-x:         .75rem !default;\n$input-btn-font-family:       null !default;\n$input-btn-font-size:         $font-size-base !default;\n$input-btn-line-height:       $line-height-base !default;\n\n$input-btn-focus-width:       .2rem !default;\n$input-btn-focus-color:       rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow:  0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm:      .25rem !default;\n$input-btn-padding-x-sm:      .5rem !default;\n$input-btn-font-size-sm:      $font-size-sm !default;\n$input-btn-line-height-sm:    $line-height-sm !default;\n\n$input-btn-padding-y-lg:      .5rem !default;\n$input-btn-padding-x-lg:      1rem !default;\n$input-btn-font-size-lg:      $font-size-lg !default;\n$input-btn-line-height-lg:    $line-height-lg !default;\n\n$input-btn-border-width:      $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y:               $input-btn-padding-y !default;\n$btn-padding-x:               $input-btn-padding-x !default;\n$btn-font-family:             $input-btn-font-family !default;\n$btn-font-size:               $input-btn-font-size !default;\n$btn-line-height:             $input-btn-line-height !default;\n\n$btn-padding-y-sm:            $input-btn-padding-y-sm !default;\n$btn-padding-x-sm:            $input-btn-padding-x-sm !default;\n$btn-font-size-sm:            $input-btn-font-size-sm !default;\n$btn-line-height-sm:          $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg:            $input-btn-padding-y-lg !default;\n$btn-padding-x-lg:            $input-btn-padding-x-lg !default;\n$btn-font-size-lg:            $input-btn-font-size-lg !default;\n$btn-line-height-lg:          $input-btn-line-height-lg !default;\n\n$btn-border-width:            $input-btn-border-width !default;\n\n$btn-font-weight:             $font-weight-normal !default;\n$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width:             $input-btn-focus-width !default;\n$btn-focus-box-shadow:        $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity:        .65 !default;\n$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color:     $gray-600 !default;\n\n$btn-block-spacing-y:         .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius:           $border-radius !default;\n$btn-border-radius-lg:        $border-radius-lg !default;\n$btn-border-radius-sm:        $border-radius-sm !default;\n\n$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom:                   .5rem !default;\n\n$input-padding-y:                       $input-btn-padding-y !default;\n$input-padding-x:                       $input-btn-padding-x !default;\n$input-font-family:                     $input-btn-font-family !default;\n$input-font-size:                       $input-btn-font-size !default;\n$input-font-weight:                     $font-weight-base !default;\n$input-line-height:                     $input-btn-line-height !default;\n\n$input-padding-y-sm:                    $input-btn-padding-y-sm !default;\n$input-padding-x-sm:                    $input-btn-padding-x-sm !default;\n$input-font-size-sm:                    $input-btn-font-size-sm !default;\n$input-line-height-sm:                  $input-btn-line-height-sm !default;\n\n$input-padding-y-lg:                    $input-btn-padding-y-lg !default;\n$input-padding-x-lg:                    $input-btn-padding-x-lg !default;\n$input-font-size-lg:                    $input-btn-font-size-lg !default;\n$input-line-height-lg:                  $input-btn-line-height-lg !default;\n\n$input-bg:                              $white !default;\n$input-disabled-bg:                     $gray-200 !default;\n\n$input-color:                           $gray-700 !default;\n$input-border-color:                    $gray-400 !default;\n$input-border-width:                    $input-btn-border-width !default;\n$input-box-shadow:                      inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius:                   $border-radius !default;\n$input-border-radius-lg:                $border-radius-lg !default;\n$input-border-radius-sm:                $border-radius-sm !default;\n\n$input-focus-bg:                        $input-bg !default;\n$input-focus-border-color:              lighten($component-active-bg, 25%) !default;\n$input-focus-color:                     $input-color !default;\n$input-focus-width:                     $input-btn-focus-width !default;\n$input-focus-box-shadow:                $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color:               $gray-600 !default;\n$input-plaintext-color:                 $body-color !default;\n\n$input-height-border:                   $input-border-width * 2 !default;\n\n$input-height-inner:                    calc(#{$input-line-height * 1em} + #{$input-padding-y * 2}) !default;\n$input-height-inner-half:               calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;\n$input-height-inner-quarter:            calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;\n\n$input-height:                          calc(#{$input-line-height * 1em} + #{$input-padding-y * 2} + #{$input-height-border}) !default;\n$input-height-sm:                       calc(#{$input-line-height-sm * 1em} + #{$input-btn-padding-y-sm * 2} + #{$input-height-border}) !default;\n$input-height-lg:                       calc(#{$input-line-height-lg * 1em} + #{$input-btn-padding-y-lg * 2} + #{$input-height-border}) !default;\n\n$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top:                  .25rem !default;\n\n$form-check-input-gutter:               1.25rem !default;\n$form-check-input-margin-y:             .3rem !default;\n$form-check-input-margin-x:             .25rem !default;\n\n$form-check-inline-margin-x:            .75rem !default;\n$form-check-inline-input-margin-x:      .3125rem !default;\n\n$form-grid-gutter-width:                10px !default;\n$form-group-margin-bottom:              1rem !default;\n\n$input-group-addon-color:               $input-color !default;\n$input-group-addon-bg:                  $gray-200 !default;\n$input-group-addon-border-color:        $input-border-color !default;\n\n$custom-forms-transition:               background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter:                 .5rem !default;\n$custom-control-spacer-x:               1rem !default;\n\n$custom-control-indicator-size:         1rem !default;\n$custom-control-indicator-bg:           $input-bg !default;\n\n$custom-control-indicator-bg-size:      50% 50% !default;\n$custom-control-indicator-box-shadow:   $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-indicator-disabled-bg:          $input-disabled-bg !default;\n$custom-control-label-disabled-color:           $gray-600 !default;\n\n$custom-control-indicator-checked-color:        $component-active-color !default;\n$custom-control-indicator-checked-bg:           $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg:  rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow:   none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow:     $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color:   $input-focus-border-color !default;\n\n$custom-control-indicator-active-color:         $component-active-color !default;\n$custom-control-indicator-active-bg:            lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow:    none !default;\n$custom-control-indicator-active-border-color:  $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius:       $border-radius !default;\n$custom-checkbox-indicator-icon-checked:        str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg:           $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color:        $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate:         str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow:   none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius:          50% !default;\n$custom-radio-indicator-icon-checked:           str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-switch-width:                           $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius:         $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size:                  calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;\n\n$custom-select-padding-y:           $input-padding-y !default;\n$custom-select-padding-x:           $input-padding-x !default;\n$custom-select-font-family:         $input-font-family !default;\n$custom-select-font-size:           $input-font-size !default;\n$custom-select-height:              $input-height !default;\n$custom-select-indicator-padding:   1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight:         $input-font-weight !default;\n$custom-select-line-height:         $input-line-height !default;\n$custom-select-color:               $input-color !default;\n$custom-select-disabled-color:      $gray-600 !default;\n$custom-select-bg:                  $input-bg !default;\n$custom-select-disabled-bg:         $gray-200 !default;\n$custom-select-bg-size:             8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color:     $gray-800 !default;\n$custom-select-indicator:           str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-select-background:          $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;\n$custom-select-feedback-icon-position:      center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size:          $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width:        $input-border-width !default;\n$custom-select-border-color:        $input-border-color !default;\n$custom-select-border-radius:       $border-radius !default;\n$custom-select-box-shadow:          inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color:  $input-focus-border-color !default;\n$custom-select-focus-width:         $input-focus-width !default;\n$custom-select-focus-box-shadow:    0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm:        $input-padding-y-sm !default;\n$custom-select-padding-x-sm:        $input-padding-x-sm !default;\n$custom-select-font-size-sm:        $input-font-size-sm !default;\n$custom-select-height-sm:           $input-height-sm !default;\n\n$custom-select-padding-y-lg:        $input-padding-y-lg !default;\n$custom-select-padding-x-lg:        $input-padding-x-lg !default;\n$custom-select-font-size-lg:        $input-font-size-lg !default;\n$custom-select-height-lg:           $input-height-lg !default;\n\n$custom-range-track-width:          100% !default;\n$custom-range-track-height:         .5rem !default;\n$custom-range-track-cursor:         pointer !default;\n$custom-range-track-bg:             $gray-300 !default;\n$custom-range-track-border-radius:  1rem !default;\n$custom-range-track-box-shadow:     inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width:                   1rem !default;\n$custom-range-thumb-height:                  $custom-range-thumb-width !default;\n$custom-range-thumb-bg:                      $component-active-bg !default;\n$custom-range-thumb-border:                  0 !default;\n$custom-range-thumb-border-radius:           1rem !default;\n$custom-range-thumb-box-shadow:              0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow:        0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width:  $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg:               lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg:             $gray-500 !default;\n\n$custom-file-height:                $input-height !default;\n$custom-file-height-inner:          $input-height-inner !default;\n$custom-file-focus-border-color:    $input-focus-border-color !default;\n$custom-file-focus-box-shadow:      $input-focus-box-shadow !default;\n$custom-file-disabled-bg:           $input-disabled-bg !default;\n\n$custom-file-padding-y:             $input-padding-y !default;\n$custom-file-padding-x:             $input-padding-x !default;\n$custom-file-line-height:           $input-line-height !default;\n$custom-file-font-family:           $input-font-family !default;\n$custom-file-font-weight:           $input-font-weight !default;\n$custom-file-color:                 $input-color !default;\n$custom-file-bg:                    $input-bg !default;\n$custom-file-border-width:          $input-border-width !default;\n$custom-file-border-color:          $input-border-color !default;\n$custom-file-border-radius:         $input-border-radius !default;\n$custom-file-box-shadow:            $input-box-shadow !default;\n$custom-file-button-color:          $custom-file-color !default;\n$custom-file-button-bg:             $input-group-addon-bg !default;\n$custom-file-text: (\n  en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top:          $form-text-margin-top !default;\n$form-feedback-font-size:           $small-font-size !default;\n$form-feedback-valid-color:         theme-color(\"success\") !default;\n$form-feedback-invalid-color:       theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color:    $form-feedback-valid-color !default;\n$form-feedback-icon-valid:          str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$form-feedback-icon-invalid-color:  $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid:        str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\"), \"#\", \"%23\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n  (\n    \"valid\": (\n      \"color\": $form-feedback-valid-color,\n      \"icon\": $form-feedback-icon-valid\n    ),\n    \"invalid\": (\n      \"color\": $form-feedback-invalid-color,\n      \"icon\": $form-feedback-icon-invalid\n    ),\n  ),\n  $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown:                   1000 !default;\n$zindex-sticky:                     1020 !default;\n$zindex-fixed:                      1030 !default;\n$zindex-modal-backdrop:             1040 !default;\n$zindex-modal:                      1050 !default;\n$zindex-popover:                    1060 !default;\n$zindex-tooltip:                    1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y:                .5rem !default;\n$nav-link-padding-x:                1rem !default;\n$nav-link-disabled-color:           $gray-600 !default;\n\n$nav-tabs-border-color:             $gray-300 !default;\n$nav-tabs-border-width:             $border-width !default;\n$nav-tabs-border-radius:            $border-radius !default;\n$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:        $gray-700 !default;\n$nav-tabs-link-active-bg:           $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius:           $border-radius !default;\n$nav-pills-link-active-color:       $component-active-color !default;\n$nav-pills-link-active-bg:          $component-active-bg !default;\n\n$nav-divider-color:                 $gray-200 !default;\n$nav-divider-margin-y:              $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y:                  $spacer / 2 !default;\n$navbar-padding-x:                  $spacer !default;\n\n$navbar-nav-link-padding-x:         .5rem !default;\n\n$navbar-brand-font-size:            $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:                   $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y:          .25rem !default;\n$navbar-toggler-padding-x:          .75rem !default;\n$navbar-toggler-font-size:          $font-size-lg !default;\n$navbar-toggler-border-radius:      $btn-border-radius !default;\n\n$navbar-dark-color:                 rgba($white, .5) !default;\n$navbar-dark-hover-color:           rgba($white, .75) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg:       str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n\n$navbar-light-color:                rgba($black, .5) !default;\n$navbar-light-hover-color:          rgba($black, .7) !default;\n$navbar-light-active-color:         rgba($black, .9) !default;\n$navbar-light-disabled-color:       rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg:      str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color:                $navbar-light-active-color !default;\n$navbar-light-brand-hover-color:          $navbar-light-active-color !default;\n$navbar-dark-brand-color:                 $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color:           $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width:                10rem !default;\n$dropdown-padding-y:                .5rem !default;\n$dropdown-spacer:                   .125rem !default;\n$dropdown-font-size:                $font-size-base !default;\n$dropdown-color:                    $body-color !default;\n$dropdown-bg:                       $white !default;\n$dropdown-border-color:             rgba($black, .15) !default;\n$dropdown-border-radius:            $border-radius !default;\n$dropdown-border-width:             $border-width !default;\n$dropdown-inner-border-radius:      calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;\n$dropdown-divider-bg:               $gray-200 !default;\n$dropdown-divider-margin-y:         $nav-divider-margin-y !default;\n$dropdown-box-shadow:               0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color:               $gray-900 !default;\n$dropdown-link-hover-color:         darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg:            $gray-100 !default;\n\n$dropdown-link-active-color:        $component-active-color !default;\n$dropdown-link-active-bg:           $component-active-bg !default;\n\n$dropdown-link-disabled-color:      $gray-600 !default;\n\n$dropdown-item-padding-y:           .25rem !default;\n$dropdown-item-padding-x:           1.5rem !default;\n\n$dropdown-header-color:             $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y:              .5rem !default;\n$pagination-padding-x:              .75rem !default;\n$pagination-padding-y-sm:           .25rem !default;\n$pagination-padding-x-sm:           .5rem !default;\n$pagination-padding-y-lg:           .75rem !default;\n$pagination-padding-x-lg:           1.5rem !default;\n$pagination-line-height:            1.25 !default;\n\n$pagination-color:                  $link-color !default;\n$pagination-bg:                     $white !default;\n$pagination-border-width:           $border-width !default;\n$pagination-border-color:           $gray-300 !default;\n\n$pagination-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n$pagination-focus-outline:          0 !default;\n\n$pagination-hover-color:            $link-hover-color !default;\n$pagination-hover-bg:               $gray-200 !default;\n$pagination-hover-border-color:     $gray-300 !default;\n\n$pagination-active-color:           $component-active-color !default;\n$pagination-active-bg:              $component-active-bg !default;\n$pagination-active-border-color:    $pagination-active-bg !default;\n\n$pagination-disabled-color:         $gray-600 !default;\n$pagination-disabled-bg:            $white !default;\n$pagination-disabled-border-color:  $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding:                 2rem !default;\n$jumbotron-color:                   null !default;\n$jumbotron-bg:                      $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y:                     .75rem !default;\n$card-spacer-x:                     1.25rem !default;\n$card-border-width:                 $border-width !default;\n$card-border-radius:                $border-radius !default;\n$card-border-color:                 rgba($black, .125) !default;\n$card-inner-border-radius:          calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg:                       rgba($black, .03) !default;\n$card-cap-color:                    null !default;\n$card-color:                        null !default;\n$card-bg:                           $white !default;\n\n$card-img-overlay-padding:          1.25rem !default;\n\n$card-group-margin:                 $grid-gutter-width / 2 !default;\n$card-deck-margin:                  $card-group-margin !default;\n\n$card-columns-count:                3 !default;\n$card-columns-gap:                  1.25rem !default;\n$card-columns-margin:               $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size:                 $font-size-sm !default;\n$tooltip-max-width:                 200px !default;\n$tooltip-color:                     $white !default;\n$tooltip-bg:                        $black !default;\n$tooltip-border-radius:             $border-radius !default;\n$tooltip-opacity:                   .9 !default;\n$tooltip-padding-y:                 .25rem !default;\n$tooltip-padding-x:                 .5rem !default;\n$tooltip-margin:                    0 !default;\n\n$tooltip-arrow-width:               .8rem !default;\n$tooltip-arrow-height:              .4rem !default;\n$tooltip-arrow-color:               $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y:     $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x:     $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size:     $tooltip-font-size !default;\n$form-feedback-tooltip-line-height:   $line-height-base !default;\n$form-feedback-tooltip-opacity:       $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size:                 $font-size-sm !default;\n$popover-bg:                        $white !default;\n$popover-max-width:                 276px !default;\n$popover-border-width:              $border-width !default;\n$popover-border-color:              rgba($black, .2) !default;\n$popover-border-radius:             $border-radius-lg !default;\n$popover-box-shadow:                0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg:                 darken($popover-bg, 3%) !default;\n$popover-header-color:              $headings-color !default;\n$popover-header-padding-y:          .5rem !default;\n$popover-header-padding-x:          .75rem !default;\n\n$popover-body-color:                $body-color !default;\n$popover-body-padding-y:            $popover-header-padding-y !default;\n$popover-body-padding-x:            $popover-header-padding-x !default;\n\n$popover-arrow-width:               1rem !default;\n$popover-arrow-height:              .5rem !default;\n$popover-arrow-color:               $popover-bg !default;\n\n$popover-arrow-outer-color:         fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width:                   350px !default;\n$toast-padding-x:                   .75rem !default;\n$toast-padding-y:                   .25rem !default;\n$toast-font-size:                   .875rem !default;\n$toast-color:                       null !default;\n$toast-background-color:            rgba($white, .85) !default;\n$toast-border-width:                1px !default;\n$toast-border-color:                rgba(0, 0, 0, .1) !default;\n$toast-border-radius:               .25rem !default;\n$toast-box-shadow:                  0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color:                $gray-600 !default;\n$toast-header-background-color:     rgba($white, .85) !default;\n$toast-header-border-color:         rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size:                   75% !default;\n$badge-font-weight:                 $font-weight-bold !default;\n$badge-padding-y:                   .25em !default;\n$badge-padding-x:                   .4em !default;\n$badge-border-radius:               $border-radius !default;\n\n$badge-transition:                  $btn-transition !default;\n$badge-focus-width:                 $input-btn-focus-width !default;\n\n$badge-pill-padding-x:              .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius:          10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding:               1rem !default;\n\n$modal-dialog-margin:               .5rem !default;\n$modal-dialog-margin-y-sm-up:       1.75rem !default;\n\n$modal-title-line-height:           $line-height-base !default;\n\n$modal-content-color:               null !default;\n$modal-content-bg:                  $white !default;\n$modal-content-border-color:        rgba($black, .2) !default;\n$modal-content-border-width:        $border-width !default;\n$modal-content-border-radius:       $border-radius-lg !default;\n$modal-content-box-shadow-xs:       0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up:    0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg:                 $black !default;\n$modal-backdrop-opacity:            .5 !default;\n$modal-header-border-color:         $border-color !default;\n$modal-footer-border-color:         $modal-header-border-color !default;\n$modal-header-border-width:         $modal-content-border-width !default;\n$modal-footer-border-width:         $modal-header-border-width !default;\n$modal-header-padding-y:            1rem !default;\n$modal-header-padding-x:            1rem !default;\n$modal-header-padding:              $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl:                          1140px !default;\n$modal-lg:                          800px !default;\n$modal-md:                          500px !default;\n$modal-sm:                          300px !default;\n\n$modal-fade-transform:              translate(0, -50px) !default;\n$modal-show-transform:              none !default;\n$modal-transition:                  transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y:                   .75rem !default;\n$alert-padding-x:                   1.25rem !default;\n$alert-margin-bottom:               1rem !default;\n$alert-border-radius:               $border-radius !default;\n$alert-link-font-weight:            $font-weight-bold !default;\n$alert-border-width:                $border-width !default;\n\n$alert-bg-level:                    -10 !default;\n$alert-border-level:                -9 !default;\n$alert-color-level:                 6 !default;\n\n\n// Progress bars\n\n$progress-height:                   1rem !default;\n$progress-font-size:                $font-size-base * .75 !default;\n$progress-bg:                       $gray-200 !default;\n$progress-border-radius:            $border-radius !default;\n$progress-box-shadow:               inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color:                $white !default;\n$progress-bar-bg:                   theme-color(\"primary\") !default;\n$progress-bar-animation-timing:     1s linear infinite !default;\n$progress-bar-transition:           width .6s ease !default;\n\n\n// List group\n\n$list-group-color:                  null !default;\n$list-group-bg:                     $white !default;\n$list-group-border-color:           rgba($black, .125) !default;\n$list-group-border-width:           $border-width !default;\n$list-group-border-radius:          $border-radius !default;\n\n$list-group-item-padding-y:         .75rem !default;\n$list-group-item-padding-x:         1.25rem !default;\n\n$list-group-hover-bg:               $gray-100 !default;\n$list-group-active-color:           $component-active-color !default;\n$list-group-active-bg:              $component-active-bg !default;\n$list-group-active-border-color:    $list-group-active-bg !default;\n\n$list-group-disabled-color:         $gray-600 !default;\n$list-group-disabled-bg:            $list-group-bg !default;\n\n$list-group-action-color:           $gray-700 !default;\n$list-group-action-hover-color:     $list-group-action-color !default;\n\n$list-group-action-active-color:    $body-color !default;\n$list-group-action-active-bg:       $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding:                 .25rem !default;\n$thumbnail-bg:                      $body-bg !default;\n$thumbnail-border-width:            $border-width !default;\n$thumbnail-border-color:            $gray-300 !default;\n$thumbnail-border-radius:           $border-radius !default;\n$thumbnail-box-shadow:              0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size:          90% !default;\n$figure-caption-color:              $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y:              .75rem !default;\n$breadcrumb-padding-x:              1rem !default;\n$breadcrumb-item-padding:           .5rem !default;\n\n$breadcrumb-margin-bottom:          1rem !default;\n\n$breadcrumb-bg:                     $gray-200 !default;\n$breadcrumb-divider-color:          $gray-600 !default;\n$breadcrumb-active-color:           $gray-600 !default;\n$breadcrumb-divider:                quote(\"/\") !default;\n\n$breadcrumb-border-radius:          $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color:             $white !default;\n$carousel-control-width:             15% !default;\n$carousel-control-opacity:           .5 !default;\n$carousel-control-hover-opacity:     .9 !default;\n$carousel-control-transition:        opacity .15s ease !default;\n\n$carousel-indicator-width:           30px !default;\n$carousel-indicator-height:          3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer:          3px !default;\n$carousel-indicator-active-bg:       $white !default;\n$carousel-indicator-transition:      opacity .6s ease !default;\n\n$carousel-caption-width:             70% !default;\n$carousel-caption-color:             $white !default;\n\n$carousel-control-icon-width:        20px !default;\n\n$carousel-control-prev-icon-bg:      str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg:      str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$carousel-transition-duration:       .6s !default;\n$carousel-transition:                transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width:         2rem !default;\n$spinner-height:        $spinner-width !default;\n$spinner-border-width:  .25em !default;\n\n$spinner-width-sm:        1rem !default;\n$spinner-height-sm:       $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size:                   $font-size-base * 1.5 !default;\n$close-font-weight:                 $font-weight-bold !default;\n$close-color:                       $black !default;\n$close-text-shadow:                 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size:                    87.5% !default;\n$code-color:                        $pink !default;\n\n$kbd-padding-y:                     .2rem !default;\n$kbd-padding-x:                     .4rem !default;\n$kbd-font-size:                     $code-font-size !default;\n$kbd-color:                         $white !default;\n$kbd-bg:                            $gray-900 !default;\n\n$pre-color:                         $gray-900 !default;\n$pre-scrollable-max-height:         340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size:                   a3 !default;\n$print-body-min-width:              map-get($grid-breakpoints, \"lg\") !default;\n","$bv-dropdown-defined: false !default;\n\n// Make sure to include these style definitions only once\n@if $bv-dropdown-defined == false {\n  $bv-dropdown-defined: true;\n\n  // Hide the caret for `no-caret` setting\n  // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/1473\n  // See: https://github.com/twbs/bootstrap/issues/23724\n  .dropdown {\n    &:not(.dropleft) {\n      .dropdown-toggle {\n        &.dropdown-toggle-no-caret::after {\n          display: none !important;\n        }\n      }\n    }\n\n    // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2909\n    &.dropleft {\n      .dropdown-toggle {\n        &.dropdown-toggle-no-caret::before {\n          display: none !important;\n        }\n      }\n    }\n\n    // Prevent dropdown background overflow if there's no padding\n    // See https://github.com/twbs/bootstrap/pull/27703\n    // Added here to address <li> wrapping of items\n    @if $dropdown-padding-y == 0 {\n      .dropdown-menu {\n        > :first-child {\n          .dropdown-item,\n          .dropdown-form,\n          .dropdown-text {\n            @include border-top-radius($dropdown-inner-border-radius);\n          }\n        }\n\n        > :last-child {\n          .dropdown-item,\n          .dropdown-form,\n          .dropdown-text {\n            @include border-bottom-radius($dropdown-inner-border-radius);\n          }\n        }\n      }\n    }\n  }\n}\n","$bv-dropdown-form-defined: false !default;\n\n@if $bv-dropdown-form-defined == false {\n  // This test will only include these style definitions once\n  $bv-dropdown-form-defined: true;\n\n  // Custom styles for <b-dropdown-form>\n  // Based on class `.dropdown-item`\n  .dropdown.b-dropdown {\n    .b-dropdown-form {\n      display: inline-block;\n      padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n      width: 100%;\n      clear: both;\n      font-weight: $font-weight-normal;\n\n      &:focus {\n        // From https://github.com/twbs/bootstrap/blob/master/scss/_reboot.scss\n        // mimicking button:focus styling.\n        // We add important here as anything with tabindex `-1` and focused will not\n        // have a focus ring due to reboot.scss and it's `!important` override.\n        // Needed for keyboard navigation high-lighting\n        outline: 1px dotted !important;\n        outline: 5px auto -webkit-focus-ring-color !important;\n      }\n\n      &.disabled,\n      &:disabled {\n        outline: 0 !important;\n        color: $dropdown-link-disabled-color;\n        pointer-events: none;\n        // background-color: transparent;\n        // Remove CSS gradients if they're enabled\n        // @if $enable-gradients {\n        //   background-image: none;\n        // }\n      }\n    }\n  }\n}\n","$bv-dropdown-text-defined: false !default;\n\n@if $bv-dropdown-text-defined == false {\n  // This test will only include these style definitions once\n  $bv-dropdown-text-defined: true;\n\n  // Custom styles for <b-dropdown-text>\n  // Based on class `.dropdown-item`\n  .b-dropdown-text {\n    display: inline-block;\n    padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n    margin-bottom: 0;\n    width: 100%;\n    clear: both;\n    font-weight: $font-weight-lighter;\n  }\n}\n","$bv-input-group-dropdown-patched: false !default;\n\n// Make sure to include these style definitions only once\n@if $bv-input-group-dropdown-patched == false {\n  $bv-input-group-dropdown-patched: true;\n\n  // Workaround for https://github.com/bootstrap-vue/bootstrap-vue/issues/1560\n  // Workaround for https://github.com/bootstrap-vue/bootstrap-vue/issues/2114 */\n  // Based on: `~bootstrap/scss/_input-group.scss`\n  .input-group {\n    > .input-group-prepend > .btn-group,\n    > .input-group-append:not(:last-child) > .btn-group,\n    > .input-group-append:last-child > .btn-group:not(:last-child):not(.dropdown-toggle) {\n      > .btn {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n\n    > .input-group-append > .btn-group,\n    > .input-group-prepend:not(:first-child) > .btn-group,\n    > .input-group-prepend:first-child > .btn-group:not(:first-child) {\n      > .btn {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n  }\n}\n","// Temporary fix for cssnano bug: https://github.com/cssnano/cssnano/issues/712\n// By moving center to last value in `background-position` property\n// See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2599\n@if $enable-validation-icons {\n  .form-control {\n    .was-validated &:invalid,\n    .was-validated &:valid,\n    &.is-invalid,\n    &.is-valid {\n      background-position: right $input-height-inner-quarter center;\n    }\n  }\n}\n\n// Bootstrap v4.x does not have special styling for color input\n// So we define some basic styles to compensate\ninput[type=\"color\"].form-control {\n  height: $input-height;\n  // We use the smaller padding to make the color block larger\n  padding: ($input-padding-y-sm / 2) ($input-padding-x-sm / 2);\n}\n\ninput[type=\"color\"].form-control.form-control-sm,\n.input-group-sm input[type=\"color\"].form-control {\n  height: $input-height-sm;\n  // We use the smaller padding to make the color block larger\n  padding: ($input-padding-y-sm / 2) ($input-padding-x-sm / 2);\n}\n\ninput[type=\"color\"].form-control.form-control-lg,\n.input-group-lg input[type=\"color\"].form-control {\n  height: $input-height-lg;\n  padding: ($input-padding-y-sm / 2) ($input-padding-x-sm / 2);\n}\n\ninput[type=\"color\"].form-control:disabled {\n  // Disabled styling needs to be a bit different than regular inputs\n  background-color: $gray-500;\n  opacity: $btn-disabled-opacity;\n}\n\n// --- Base `.input-group > .custom-range` styling (no PR yet on Bootstrap v4) ---\n.input-group {\n  > .custom-range {\n    position: relative;\n    flex: 1 1 auto;\n    width: 1%;\n    margin-bottom: 0;\n\n    + .form-control,\n    + .form-control-plaintext,\n    + .custom-select,\n    + .custom-range,\n    + .custom-file {\n      margin-left: -$input-border-width;\n    }\n  }\n\n  > .form-control,\n  > .form-control-plaintext,\n  > .custom-select,\n  > .custom-range,\n  > .custom-file {\n    + .custom-range {\n      margin-left: -$input-border-width;\n    }\n  }\n\n  > .custom-range:focus {\n    z-index: 3;\n  }\n\n  > .custom-range {\n    &:not(:last-child) {\n      @include border-right-radius(0);\n    }\n    &:not(:first-child) {\n      @include border-left-radius(0);\n    }\n  }\n\n  > .custom-range {\n    height: $input-height;\n    padding: 0 $input-padding-x;\n    background-color: $input-bg;\n    background-clip: padding-box;\n    border: $input-border-width solid $input-border-color;\n    height: $input-height;\n\n    @if $enable-rounded {\n      border-radius: $input-border-radius;\n    } @else {\n      border-radius: 0;\n    }\n\n    @include box-shadow($input-box-shadow);\n    @include transition($input-transition);\n    // Bootstrap v4.3.2 has deprecated this mixin\n    // @include form-control-focus();\n    // So we manually add it's content here\n    &:focus {\n      color: $input-focus-color; // only needed for fallback to text input\n      background-color: $input-focus-bg;\n      border-color: $input-focus-border-color;\n      outline: 0;\n      @if $enable-shadows {\n        box-shadow: $input-box-shadow, $input-focus-box-shadow;\n      } @else {\n        box-shadow: $input-focus-box-shadow;\n      }\n    }\n\n    &:disabled,\n    &[readonly] {\n      background-color: $input-disabled-bg;\n    }\n  }\n}\n\n.input-group-lg > .custom-range {\n  height: $input-height-lg;\n  padding: 0 $input-padding-x-lg;\n  @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .custom-range {\n  height: $input-height-sm;\n  padding: 0 $input-padding-x-sm;\n  @include border-radius($input-border-radius-sm);\n}\n\n// --- <b-form-input>: custom-range validation styling - valid (no PR yet for Bootstrap v4.2) ---\n// Mixin for generating `.input-group .custom-range` validation styling\n@mixin bv-custom-range-validation-state($state, $color) {\n  .input-group .custom-range {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      border-color: $color;\n\n      &:focus {\n        border-color: $color;\n        box-shadow: 0 0 0 $input-focus-width rgba($color, 0.25);\n      }\n    }\n  }\n\n  .custom-range {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      // Pseudo-elements must be split across multiple rulesets to have an affect\n      &:focus {\n        &::-webkit-slider-thumb {\n          box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-btn-focus-width lighten($color, 35%);\n        }\n        &::-moz-range-thumb {\n          box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-btn-focus-width lighten($color, 35%);\n        }\n        &::-ms-thumb {\n          box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-btn-focus-width lighten($color, 35%);\n        }\n      }\n\n      &::-webkit-slider-thumb {\n        background-color: $color;\n        background-image: none;\n\n        &:active {\n          background-color: lighten($color, 35%);\n          background-image: none;\n        }\n      }\n\n      &::-webkit-slider-runnable-track {\n        background-color: rgba($color, 0.35);\n      }\n\n      &::-moz-range-thumb {\n        background-color: $color;\n        background-image: none;\n\n        &:active {\n          background-color: lighten($color, 35%);\n          background-image: none;\n        }\n      }\n\n      &::-moz-range-track {\n        background: rgba($color, 0.35);\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n\n      &::-ms-thumb {\n        background-color: $color;\n        background-image: none;\n\n        &:active {\n          background-color: lighten($color, 35%);\n          background-image: none;\n        }\n      }\n\n      &::-ms-track-lower {\n        background: rgba($color, 0.35);\n      }\n      &::-ms-track-upper {\n        background: rgba($color, 0.35);\n      }\n    }\n  }\n}\n\n@include bv-custom-range-validation-state(\"valid\", $form-feedback-valid-color);\n@include bv-custom-range-validation-state(\"invalid\", $form-feedback-invalid-color);\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n  @if $enable-transitions {\n    @if length($transition) == 0 {\n      transition: $transition-base;\n    } @else {\n      transition: $transition;\n    }\n  }\n\n  @if $enable-prefers-reduced-motion-media-query {\n    @media (prefers-reduced-motion: reduce) {\n      transition: none;\n    }\n  }\n}\n","// Needed to allow Vue transition system to work with Bootstrap v4 .modal-backdrop\n// as modal opacity is 1 by default\n.modal-backdrop {\n  opacity: $modal-backdrop-opacity;\n}\n","@if $bv-enable-popover-variants {\n  @each $color, $value in $theme-colors {\n    .b-popover-#{$color} {\n      $po-bg-color: theme-color-level($color, $bv-popover-bg-level);\n      $po-border-color: theme-color-level($color, $bv-popover-border-level);\n      $po-color: theme-color-level($color, $bv-popover-color-level);\n      $po-header-bg: darken($po-bg-color, 3%);\n      $po-header-color: color-yiq($po-header-bg);\n      $po-arrow-color: $po-bg-color;\n      $po-arrow-color-bottom: $po-header-bg;\n      $po-arrow-outer-color: fade-in($po-border-color, 0.05);\n\n      &.popover {\n        background-color: $po-bg-color;\n        border-color: $po-border-color;\n      }\n\n      &.bs-popover-top {\n        > .arrow {\n          &::before {\n            border-top-color: $po-arrow-outer-color;\n          }\n\n          &::after {\n            border-top-color: $po-arrow-color;\n          }\n        }\n      }\n\n      &.bs-popover-right {\n        > .arrow {\n          &::before {\n            border-right-color: $po-arrow-outer-color;\n          }\n\n          &::after {\n            border-right-color: $po-arrow-color;\n          }\n        }\n      }\n\n      &.bs-popover-bottom {\n        > .arrow {\n          &::before {\n            border-bottom-color: $po-arrow-outer-color;\n          }\n\n          &::after {\n            // Use the header bg color\n            border-bottom-color: $po-arrow-color-bottom;\n          }\n        }\n\n        .popover-header::before {\n          border-bottom-color: $po-header-bg;\n        }\n      }\n\n      &.bs-popover-left {\n        > .arrow {\n          &::before {\n            border-left-color: $po-arrow-outer-color;\n          }\n\n          &::after {\n            border-left-color: $po-arrow-color;\n          }\n        }\n      }\n\n      &.bs-popover-auto {\n        &[x-placement^=\"top\"] {\n          @extend .bs-popover-top;\n        }\n        &[x-placement^=\"right\"] {\n          @extend .bs-popover-right;\n        }\n        &[x-placement^=\"bottom\"] {\n          @extend .bs-popover-bottom;\n        }\n        &[x-placement^=\"left\"] {\n          @extend .bs-popover-left;\n        }\n      }\n\n      .popover-header {\n        color: $po-header-color;\n        background-color: $po-header-bg;\n        border-bottom-color: darken($po-header-bg, 5%);\n      }\n\n      .popover-body {\n        color: $po-color;\n      }\n    }\n  }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n  $prev-key: null;\n  $prev-num: null;\n  @each $key, $num in $map {\n    @if $prev-num == null or unit($num) == \"%\" {\n      // Do nothing\n    } @else if not comparable($prev-num, $num) {\n      @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    } @else if $prev-num >= $num {\n      @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    }\n    $prev-key: $key;\n    $prev-num: $num;\n  }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n  $values: map-values($map);\n  $first-value: nth($values, 1);\n  @if $first-value != 0 {\n    @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n  }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n  $index: str-index($string, $search);\n\n  @if $index {\n    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n  }\n\n  @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n  $r: red($color);\n  $g: green($color);\n  $b: blue($color);\n\n  $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n  @if ($yiq >= $yiq-contrasted-threshold) {\n    @return $dark;\n  } @else {\n    @return $light;\n  }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n  @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n  @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n  @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n  $color: theme-color($color-name);\n  $color-base: if($level > 0, $black, $white);\n  $level: abs($level);\n\n  @return mix($color-base, $color, $level * $theme-color-interval);\n}\n",".table.b-table {\n  // --- General styling ---\n\n  // Table fixed header width layout\n  &.b-table-fixed {\n    // Fixed width columns\n    table-layout: fixed;\n  }\n\n  // Table busy styling\n  &[aria-busy=\"true\"] {\n    opacity: $b-table-busy-opacity;\n  }\n\n  // Details row styling\n  > tbody > tr.b-table-details > td {\n    border-top: none !important;\n  }\n\n  // Caption positioning\n  > caption {\n    caption-side: bottom;\n\n    &.b-table-caption-top {\n      caption-side: top !important;\n    }\n  }\n}\n\n// --- Header sort styling ---\n.table.b-table {\n  > thead,\n  > tfoot {\n    > tr {\n      > th {\n        &[aria-sort] {\n          // `&.sorting`\n          cursor: pointer;\n\n          // Up/down sort=null indicator\n          &::before {\n            display: inline-block;\n            float: right;\n            margin-left: $b-table-sort-icon-margin-left;\n            width: $b-table-sort-icon-width;\n            font-size: inherit;\n            line-height: inherit;\n            opacity: 0.4;\n            content: $b-table-sort-icon-null; // Up/down arrow\n            speak: none;\n          }\n\n          // Ascending indicator\n          &[aria-sort=\"ascending\"]::before {\n            // `&.sorting_asc::after.sorting_asc`\n            opacity: 1;\n            content: $b-table-sort-icon-ascending; // Down arrow\n          }\n\n          // Descending indicator\n          &[aria-sort=\"descending\"]::before {\n            // `&.sorting_desc::after`\n            opacity: 1;\n            content: $b-table-sort-icon-descending; // Up arrow\n          }\n        }\n      }\n    }\n  }\n}\n\n// --- Stacked tables ---\n.table.b-table {\n  &.b-table-stacked {\n    @each $breakpoint in map-keys($grid-breakpoints) {\n      $next: breakpoint-next($breakpoint, $grid-breakpoints);\n      $infix: breakpoint-infix($next, $grid-breakpoints);\n\n      &#{$infix} {\n        @include media-breakpoint-down($breakpoint) {\n          display: block;\n          width: 100%;\n\n          // Convert to blocks when stacked\n          > caption,\n          > tbody,\n          > tbody > tr,\n          > tbody > tr > td,\n          > tbody > tr > td {\n            display: block;\n          }\n\n          // Hide when stacked\n          > thead,\n          > tfoot {\n            display: none;\n\n            > tr.b-table-top-row,\n            > tr.b-table-bottom-row {\n              display: none;\n            }\n          }\n\n          // Caption positioning\n          > caption {\n            caption-side: top !important;\n          }\n\n          > tbody {\n            > tr {\n              // Turn cells with labels into micro-grids\n              > [data-label] {\n                // Cell header label pseudo element\n                &::before {\n                  content: attr(data-label);\n                  display: inline-block;\n                  width: $b-table-stacked-heading-width;\n                  float: left;\n                  text-align: right;\n                  overflow-wrap: break-word;\n                  font-weight: bold;\n                  font-style: normal;\n                  padding: 0;\n                  margin: 0;\n                }\n\n                // Add clearfix in-case field label wraps\n                &::after {\n                  display: block;\n                  clear: both;\n                  content: \"\";\n                }\n\n                // Cell value (we wrap the cell value in a div when stacked)\n                > div {\n                  display: inline-block;\n                  width: calc(100% - #{$b-table-stacked-heading-width});\n                  // Add \"gap\" between \"cells\"\n                  padding: 0 0 0 $b-table-stacked-gap;\n                  margin: 0;\n                }\n              }\n\n              // Dont show the fixed top/bottom rows\n              &.top-row,\n              &.bottom-row {\n                display: none;\n              }\n\n              // Give the top cell of each \"row\" a heavy border\n              > :first-child {\n                border-top-width: (3 * $table-border-width);\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n// --- Selectable rows ---\n.table.b-table {\n  &.b-table-selectable {\n    & > tbody > tr {\n      cursor: pointer;\n    }\n\n    &.b-table-selecting {\n      // Disabled text-selection when in range mode when\n      // at least one row selected\n      &.b-table-select-range > tbody > tr {\n        user-select: none;\n      }\n    }\n  }\n}\n","// BootstrapVue custom SCSS variables\n\n// --- Tables ---\n$b-table-busy-opacity: 0.55 !default;\n$b-table-sort-icon-null: \"\\2195\" !default; // Up-Down arrow\n$b-table-sort-icon-ascending: \"\\2193\" !default; // Down arrow\n$b-table-sort-icon-descending: \"\\2191\" !default; // Up arrow\n$b-table-sort-icon-margin-left: 0.5em !default;\n$b-table-sort-icon-width: 0.5em !default;\n$b-table-stacked-heading-width: 40% !default;\n$b-table-stacked-gap: 1rem !default;\n\n// --- Toasts ---\n$b-toaster-zindex: 1100 !default;\n$b-toaster-offset-top: 0.5rem !default;\n$b-toaster-offset-bottom: $b-toaster-offset-top !default;\n$b-toaster-offset-left: $b-toaster-offset-top !default;\n$b-toaster-offset-right: $b-toaster-offset-top !default;\n\n// --- Toast variant levels wrt theme color value ---\n$b-toast-bg-level: $alert-bg-level !default;\n$b-toast-border-level: $alert-border-level !default;\n$b-toast-color-level: $alert-color-level !default;\n\n// --- Enable tooltip variants ---\n$bv-enable-tooltip-variants: true !default;\n\n// --- Tooltip background variant level wrt theme color value ---\n$bv-tooltip-bg-level: 0 !default;\n\n// --- Enable popover variants ---\n$bv-enable-popover-variants: true !default;\n\n// --- Popover variant levels wrt theme color value ---\n$bv-popover-bg-level: $alert-bg-level !default;\n$bv-popover-border-level: $alert-border-level !default;\n$bv-popover-color-level: $alert-color-level !default;\n","// --- <b-toast> custom SCSS ---\n\n// Toast wrapper element class (needed for list transition in toasters)\n.b-toast {\n  display: block;\n  position: relative;\n  max-width: $toast-max-width;\n  backface-visibility: hidden;\n  background-clip: padding-box;\n  z-index: 1;\n  @include border-radius($toast-border-radius);\n\n  &:not(:last-child) {\n    margin-bottom: $toast-padding-x;\n  }\n\n  &.b-toast-solid {\n    .toast {\n      background-color: rgba($toast-background-color, 1);\n    }\n  }\n\n  .toast {\n    // Override default boostrap v4.x opacity of 0\n    // Needed for re-usable fade transition\n    opacity: 1;\n\n    &.fade:not(.show) {\n      opacity: 0;\n    }\n\n    .toast-body {\n      display: block; // Needed when we use a link as the body element\n    }\n  }\n}\n\n@mixin b-toast-variant($background, $border, $color) {\n  // Based on alert-variant mixin\n  .toast {\n    background-color: rgba(lighten($background, 5%), 0.85);\n    border-color: rgba($border, 0.85);\n    color: $color;\n\n    .toast-header {\n      color: $color;\n      background-color: rgba($background, 0.85);\n      border-bottom-color: rgba($border, 0.85);\n    }\n\n    // .toast-body[href] {\n    //   color: darken($color, 10%);\n    // }\n  }\n\n  &.b-toast-solid {\n    .toast {\n      background-color: rgba(lighten($background, 5%), 1);\n    }\n  }\n}\n\n// Toast variants\n@each $color, $value in $theme-colors {\n  .b-toast-#{$color} {\n    @include b-toast-variant(\n      theme-color-level($color, $b-toast-bg-level),\n      theme-color-level($color, $b-toast-border-level),\n      theme-color-level($color, $b-toast-color-level)\n    );\n  }\n}\n","// --- <b-toaster> custom SCSS ---\n\n// NOTE:\n// This SCSS is prelimiary, and may change in the future.\n\n// Base toaster styling\n.b-toaster {\n  z-index: $b-toaster-zindex;\n\n  .b-toaster-slot {\n    position: relative;\n    display: block;\n\n    &:empty {\n      display: none !important;\n    }\n  }\n}\n\n// Built-in toaster styling\n//  - b-toaster-top-right\n//  - b-toaster-top-left\n//  - b-toaster-top-center\n//  - b-toaster-top-full\n//  - b-toaster-bottom-right\n//  - b-toaster-bottom-left\n//  - b-toaster-bottom-center\n//  - b-toaster-bottom-full\n.b-toaster {\n  &.b-toaster-top-right,\n  &.b-toaster-top-left,\n  &.b-toaster-top-center,\n  &.b-toaster-top-full,\n  &.b-toaster-bottom-right,\n  &.b-toaster-bottom-left,\n  &.b-toaster-bottom-center,\n  &.b-toaster-bottom-full {\n    position: fixed;\n    left: $b-toaster-offset-left;\n    right: $b-toaster-offset-right;\n    margin: 0;\n    padding: 0;\n    height: 0;\n    overflow: visible;\n\n    .b-toaster-slot {\n      position: absolute;\n      max-width: $toast-max-width;\n      width: 100%; /* IE11 fix */\n      left: 0;\n      right: 0;\n      padding: 0;\n      margin: 0;\n    }\n  }\n\n  &.b-toaster-top-full,\n  &.b-toaster-bottom-full {\n    .b-toaster-slot {\n      width: 100%;\n      max-width: 100%;\n\n      .b-toast,\n      .toast {\n        // Override Bootstrap toast max-width\n        width: 100%;\n        max-width: 100%;\n      }\n    }\n  }\n\n  &.b-toaster-top-right,\n  &.b-toaster-top-left,\n  &.b-toaster-top-center,\n  &.b-toaster-top-full {\n    top: 0;\n\n    .b-toaster-slot {\n      top: $b-toaster-offset-top;\n    }\n  }\n\n  &.b-toaster-bottom-right,\n  &.b-toaster-bottom-left,\n  &.b-toaster-bottom-center,\n  &.b-toaster-bottom-full {\n    bottom: 0;\n\n    .b-toaster-slot {\n      bottom: $b-toaster-offset-bottom;\n    }\n  }\n\n  &.b-toaster-top-right,\n  &.b-toaster-bottom-right,\n  &.b-toaster-top-center,\n  &.b-toaster-bottom-center {\n    .b-toaster-slot {\n      margin-left: auto;\n    }\n  }\n\n  &.b-toaster-top-left,\n  &.b-toaster-bottom-left,\n  &.b-toaster-top-center,\n  &.b-toaster-bottom-center {\n    .b-toaster-slot {\n      margin-right: auto;\n    }\n  }\n}\n","// --- <b-toast> custom transition SCSS ---\n\n// This is still a work in progress... will be changing\n// PortalVue appears to have issues with transition classes on portaled items\n\n.b-toaster {\n  &.b-toaster-top-right,\n  &.b-toaster-top-left,\n  &.b-toaster-bottom-right,\n  &.b-toaster-bottom-left {\n    .b-toast {\n      &.b-toaster-enter-active,\n      &.b-toaster-leave-active,\n      &.b-toaster-move {\n        transition: transform 0.175s;\n      }\n\n      &.b-toaster-enter {\n      }\n\n      &.b-toaster-enter-to,\n      &.b-toaster-enter-active {\n        .toast.fade {\n          // Delay the appearance of the toast until\n          // the move transition has completed\n          transition-delay: 0.175s;\n        }\n      }\n\n      &.b-toaster-enter-to {\n      }\n\n      &.b-toaster-leave-active {\n        position: absolute;\n        transition-delay: 0.175s;\n\n        .toast.fade {\n          transition-delay: 0s;\n        }\n      }\n\n      &.b-toaster-leave-to {\n      }\n\n      /*\n      &.b-toaster-enter-active,\n      &.b-toaster-enter-to {\n        .toast.fade {\n          // Delay the appearance of the toast until\n          // the move transition has completed\n          transition-delay: 0.175s;\n        }\n      }\n\n      &.b-toaster-move {\n        transition: transform 0.175s;\n        // transition-delay: 0.175s;\n      }\n\n      &.b-toaster-enter-active {\n        z-index: 0;\n      }\n\n      &.b-toaster-leave-active {\n        transition: transform 0.175s;\n      }\n\n      &.b-toaster-leave,\n      &.b-toaster-leave-active {\n        position: absolute;\n        z-index: 0;\n        transition-delay: 0.175s;\n\n        .toast.fade {\n          transition-delay: 0s;\n        }\n      }\n\n      &.b-toaster-leave {\n      }\n\n      &.b-toaster-leave-to {\n      }\n      */\n    }\n  }\n}\n","// Create custom variants for tooltips\n@if $bv-enable-tooltip-variants {\n  @each $color, $value in $theme-colors {\n    .tooltip.b-tooltip-#{$color} {\n      $tip-bg-color: theme-color-level($color, $bv-tooltip-bg-level);\n      $tip-text-color: color-yiq($tip-bg-color);\n\n      &.bs-tooltip-top {\n        .arrow::before {\n          border-top-color: $tip-bg-color;\n        }\n      }\n\n      &.bs-tooltip-right {\n        .arrow::before {\n          border-right-color: $tip-bg-color;\n        }\n      }\n\n      &.bs-tooltip-bottom {\n        .arrow::before {\n          border-bottom-color: $tip-bg-color;\n        }\n      }\n\n      &.bs-tooltip-left {\n        .arrow::before {\n          border-left-color: $tip-bg-color;\n        }\n      }\n\n      &.bs-tooltip-auto {\n        &[x-placement^=\"top\"] {\n          @extend .bs-tooltip-top;\n        }\n        &[x-placement^=\"right\"] {\n          @extend .bs-tooltip-right;\n        }\n        &[x-placement^=\"bottom\"] {\n          @extend .bs-tooltip-bottom;\n        }\n        &[x-placement^=\"left\"] {\n          @extend .bs-tooltip-left;\n        }\n      }\n\n      .tooltip-inner {\n        color: $tip-text-color;\n        background-color: $tip-bg-color;\n      }\n    }\n  }\n}\n"]}
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-4604-  var EVENT_STATE = 'bv::collapse::state';
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:4605:  var EVENT_ACCORDION = 'bv::collapse::accordion'; // Private event we emit on `$root` to ensure the toggle state is
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-4606-  // always synced. It gets emitted even if the state has not changed!
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-4608-
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:4609:  var EVENT_STATE_SYNC = 'bv::collapse::sync::state'; // Events we listen to on `$root`
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-4610-
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-13523-        this.$nextTick(function () {
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:13524:          // We do this in `$nextTick()` to ensure the modal is in DOM first
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-13525-          // before we show it
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-14025-    }, {});
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:14026:  }; // Method to install `$bvModal` VM injection
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-14027-
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-14085-        // We set parent as the local VM so these modals can emit events on
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:14086:        // the app `$root`, as needed by things like tooltips and popovers
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-14087-        // And it helps to ensure `BMsgBox` is destroyed when parent is destroyed
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-14253-      beforeCreate: function beforeCreate() {
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:14254:        // Because we need access to `$root` for `$emits`, and VM for parenting,
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-14255-        // we have to create a fresh instance of `BvModal` for each VM
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-14257-      }
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:14258:    }); // Define our read-only `$bvModal` instance property
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-14259-    // Placed in an if just in case in HMR mode
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-15827-  var BS_CLASS_PREFIX_REGEX = new RegExp("\\b".concat(CLASS_PREFIX, "\\S+"), 'g');
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:15828:  var TRANSITION_DURATION = 150; // Modal `$root` hidden event
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-15829-
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-16655-          // `relatedTarget` is the element gaining focus
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:16656:          // If focus moves from `$element` to `$tip`, don't trigger a leave
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-16657-          if ($tip && $element && $element.contains(target) && $tip.contains(relatedTarget)) {
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-16659-            return;
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:16660:          } // If focus moves from `$tip` to `$element`, don't trigger a leave
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-16661-
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-16665-            return;
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:16666:          } // If focus moves within `$tip`, don't trigger a leave
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-16667-
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-16671-            return;
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:16672:          } // If focus moves within `$element`, don't trigger a leave
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-16673-
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-16700-          return;
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:16701:        } // We can listen for modal hidden events on `$root`
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-16702-
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-20850-      this._bvObserver = null; // For SSR and to make sure only a single tab is shown on mount
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:20851:      // We wrap this in a `$nextTick()` to ensure the child tabs have been created
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-20852-
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-21074-
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:21075:        // Wrap in `$nextTick()` to ensure DOM has completed rendering/updating before focusing
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-21076-        this.$nextTick(function () {
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-21162-          ref: 'buttons',
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:21163:          // Needed to make `this.$refs.buttons` an array
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-21164-          refInFor: true,
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-22139-        this.$once('hook:beforeDestroy', function () {
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:22140:          // Let toasts made with `this.$bvToast.toast()` know that this toaster
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-22141-          // is being destroyed and should should also destroy/hide themselves
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-22671-    }, {});
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:22672:  }; // Method to install `$bvToast` VM injection
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-22673-
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-22728-        // We set parent as the local VM so these toasts can emit events on the
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:22729:        // app `$root`, and it ensures `BToast` is destroyed when parent is destroyed
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-22730-        parent: $parent,
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-22817-      beforeCreate: function beforeCreate() {
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:22818:        // Because we need access to `$root` for `$emits`, and VM for parenting,
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-22819-        // we have to create a fresh instance of `BvToast` for each VM
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-22821-      }
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js:22822:    }); // Define our read-only `$bvToast` instance property
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js-22823-    // Placed in an if just in case in HMR mode
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.js.map:1:{"version":3,"file":"bootstrap-vue.js","sources":["../src/utils/vue.js","../src/utils/env.js","../src/utils/warn.js","../src/utils/array.js","../src/utils/object.js","../src/utils/inspect.js","../src/utils/clone-deep.js","../src/utils/get.js","../src/utils/config-defaults.js","../src/utils/config-set.js","../src/utils/plugins.js","../src/utils/memoize.js","../src/utils/config.js","../src/utils/dom.js","../node_modules/vue-functional-data-merge/dist/lib.esm.js","../src/utils/bv-transition.js","../src/utils/normalize-slot.js","../src/mixins/normalize-slot.js","../src/components/button/button-close.js","../src/components/alert/alert.js","../src/components/alert/index.js","../src/utils/identity.js","../src/utils/pluck-props.js","../src/utils/to-string.js","../src/utils/router.js","../src/components/link/link.js","../src/components/badge/badge.js","../src/components/badge/index.js","../src/utils/html.js","../src/components/breadcrumb/breadcrumb-link.js","../src/components/breadcrumb/breadcrumb-item.js","../src/components/breadcrumb/breadcrumb.js","../src/components/breadcrumb/index.js","../src/components/button/button.js","../src/components/button/index.js","../src/components/button-group/button-group.js","../src/components/button-group/index.js","../src/utils/key-codes.js","../src/components/button-toolbar/button-toolbar.js","../src/components/button-toolbar/index.js","../src/utils/upper-first.js","../src/utils/prefix-prop-name.js","../src/utils/lower-first.js","../src/utils/unprefix-prop-name.js","../src/utils/copy-props.js","../src/mixins/card-mixin.js","../src/components/card/card-title.js","../src/components/card/card-sub-title.js","../src/components/card/card-body.js","../src/components/card/card-header.js","../src/components/card/card-footer.js","../src/components/card/card-img.js","../src/components/card/card.js","../src/components/image/img.js","../src/components/image/img-lazy.js","../src/components/card/card-img-lazy.js","../src/components/card/card-text.js","../src/components/card/card-group.js","../src/components/card/index.js","../src/utils/noop.js","../src/utils/observe-dom.js","../src/mixins/id.js","../src/components/carousel/carousel.js","../src/components/carousel/carousel-slide.js","../src/components/carousel/index.js","../src/mixins/listen-on-root.js","../src/components/collapse/collapse.js","../src/utils/loose-equal.js","../src/utils/target.js","../src/directives/toggle/toggle.js","../src/components/collapse/index.js","../src/utils/safe-types.js","../node_modules/popper.js/dist/esm/popper.js","../src/utils/bv-event.class.js","../src/mixins/click-out.js","../src/mixins/focus-in.js","../src/mixins/dropdown.js","../src/components/dropdown/dropdown.js","../src/components/dropdown/dropdown-item.js","../src/components/dropdown/dropdown-item-button.js","../src/components/dropdown/dropdown-header.js","../src/components/dropdown/dropdown-divider.js","../src/components/form/form.js","../src/components/dropdown/dropdown-form.js","../src/components/dropdown/dropdown-text.js","../src/components/dropdown/dropdown-group.js","../src/components/dropdown/index.js","../src/components/embed/embed.js","../src/components/embed/index.js","../src/mixins/form-options.js","../src/components/form/form-datalist.js","../src/components/form/form-text.js","../src/components/form/form-invalid-feedback.js","../src/components/form/form-valid-feedback.js","../src/components/layout/form-row.js","../src/components/form/index.js","../src/mixins/form-state.js","../src/utils/suffix-prop-name.js","../src/components/layout/col.js","../src/components/form-group/form-group.js","../src/components/form-group/index.js","../src/utils/loose-index-of.js","../src/mixins/form.js","../src/mixins/form-radio-check.js","../src/mixins/form-size.js","../src/components/form-checkbox/form-checkbox.js","../src/components/form-radio/form-radio.js","../src/mixins/form-radio-check-group.js","../src/components/form-checkbox/form-checkbox-group.js","../src/components/form-checkbox/index.js","../src/components/form-radio/form-radio-group.js","../src/components/form-radio/index.js","../src/mixins/form-text.js","../src/mixins/form-selection.js","../src/mixins/form-validity.js","../src/components/form-input/form-input.js","../src/components/form-input/index.js","../src/components/form-textarea/form-textarea.js","../src/components/form-textarea/index.js","../src/mixins/form-custom.js","../src/components/form-file/form-file.js","../src/components/form-file/index.js","../src/components/form-select/form-select.js","../src/components/form-select/index.js","../src/components/image/index.js","../src/components/input-group/input-group-text.js","../src/components/input-group/input-group-addon.js","../src/components/input-group/input-group-prepend.js","../src/components/input-group/input-group-append.js","../src/components/input-group/input-group.js","../src/components/input-group/index.js","../src/components/layout/container.js","../src/components/jumbotron/jumbotron.js","../src/components/jumbotron/index.js","../src/components/layout/row.js","../src/components/layout/index.js","../src/components/link/index.js","../src/components/list-group/list-group.js","../src/components/list-group/list-group-item.js","../src/components/list-group/index.js","../src/components/media/media-body.js","../src/components/media/media-aside.js","../src/components/media/media.js","../src/components/media/index.js","../src/components/modal/helpers/modal-manager.js","../src/components/modal/helpers/bv-modal-event.class.js","../src/utils/transporter.js","../src/components/modal/modal.js","../src/directives/modal/modal.js","../src/components/modal/helpers/bv-modal.js","../src/components/modal/index.js","../src/components/nav/nav.js","../src/components/nav/nav-item.js","../src/components/nav/nav-text.js","../src/components/nav/nav-form.js","../src/components/nav/nav-item-dropdown.js","../src/components/nav/index.js","../src/components/navbar/navbar.js","../src/components/navbar/navbar-nav.js","../src/components/navbar/navbar-brand.js","../src/components/navbar/navbar-toggle.js","../src/components/navbar/index.js","../src/utils/range.js","../src/mixins/pagination.js","../src/components/pagination/pagination.js","../src/components/pagination/index.js","../src/components/pagination-nav/pagination-nav.js","../src/components/pagination-nav/index.js","../src/utils/tooltip.class.js","../src/utils/popover.class.js","../src/mixins/toolpop.js","../src/components/popover/popover.js","../src/directives/popover/popover.js","../src/components/popover/index.js","../src/components/progress/progress-bar.js","../src/components/progress/progress.js","../src/components/progress/index.js","../src/components/spinner/spinner.js","../src/components/spinner/index.js","../src/utils/startcase.js","../src/components/table/helpers/constants.js","../src/components/table/helpers/normalize-fields.js","../src/components/table/helpers/mixin-items.js","../src/components/table/helpers/sanitize-row.js","../src/components/table/helpers/stringify-object-values.js","../src/components/table/helpers/stringify-record-values.js","../src/components/table/helpers/mixin-filtering.js","../src/utils/stable-sort.js","../src/components/table/helpers/default-sort-compare.js","../src/components/table/helpers/mixin-sorting.js","../src/components/table/helpers/mixin-pagination.js","../src/components/table/helpers/mixin-caption.js","../src/components/table/helpers/mixin-colgroup.js","../src/components/table/helpers/filter-event.js","../src/components/table/helpers/text-selection-active.js","../src/components/table/helpers/mixin-thead.js","../src/components/table/helpers/mixin-tfoot.js","../src/components/table/helpers/mixin-tbody-row.js","../src/components/table/helpers/mixin-tbody.js","../src/components/table/helpers/mixin-empty.js","../src/components/table/helpers/mixin-top-row.js","../src/components/table/helpers/mixin-bottom-row.js","../src/components/table/helpers/mixin-busy.js","../src/components/table/helpers/mixin-selectable.js","../src/components/table/helpers/mixin-provider.js","../src/components/table/helpers/mixin-table-renderer.js","../src/components/table/table.js","../src/components/table/table-lite.js","../src/components/table/index.js","../src/components/tabs/tabs.js","../src/components/tabs/tab.js","../src/components/tabs/index.js","../node_modules/portal-vue/dist/portal-vue.esm.js","../src/components/toast/toaster.js","../src/components/toast/toast.js","../src/components/toast/helpers/bv-toast.js","../src/components/toast/index.js","../src/components/tooltip/tooltip.js","../src/directives/tooltip/tooltip.js","../src/components/tooltip/index.js","../src/components/index.esm.js","../src/directives/modal/index.js","../src/directives/popover/index.js","../src/directives/scrollspy/scrollspy.class.js","../src/directives/scrollspy/scrollspy.js","../src/directives/scrollspy/index.js","../src/directives/toggle/index.js","../src/directives/tooltip/index.js","../src/directives/index.esm.js","../src/index.js","../src/browser.js"],"sourcesContent":["//\n// Single point of contact for Vue\n//\n// TODO:\n//   Conditionally import Vue if no global Vue\n//\nimport Vue from 'vue'\n\nexport default Vue\n","/**\n * Utilities to get information about the current environment\n */\n\n// --- Constants ---\n\nexport const hasWindowSupport = typeof window !== 'undefined'\nexport const hasDocumentSupport = typeof document !== 'undefined'\nexport const hasNavigatorSupport = typeof navigator !== 'undefined'\nexport const hasPromiseSupport = typeof Promise !== 'undefined'\nexport const hasMutationObserverSupport =\n  typeof MutationObserver !== 'undefined' ||\n  typeof WebKitMutationObserver !== 'undefined' ||\n  typeof MozMutationObserver !== 'undefined'\n\nexport const isBrowser = hasWindowSupport && hasDocumentSupport && hasNavigatorSupport\n\n// Browser type sniffing\nexport const userAgent = isBrowser ? window.navigator.userAgent.toLowerCase() : ''\n\nexport const isJSDOM = userAgent.indexOf('jsdom') > 0\nexport const isIE = /msie|trident/.test(userAgent)\n\n// Determine if the browser supports the option passive for events\nexport const hasPassiveEventSupport = (() => {\n  let passiveEventSupported = false\n  if (isBrowser) {\n    try {\n      const options = {\n        get passive() {\n          // This function will be called when the browser\n          // attempts to access the passive property.\n          /* istanbul ignore next: will never be called in JSDOM */\n          passiveEventSupported = true\n        }\n      }\n      window.addEventListener('test', options, options)\n      window.removeEventListener('test', options, options)\n    } catch (err) {\n      /* istanbul ignore next: will never be called in JSDOM */\n      passiveEventSupported = false\n    }\n  }\n  return passiveEventSupported\n})()\n\nexport const hasTouchSupport =\n  isBrowser && ('ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0)\n\nexport const hasPointerEventSupport =\n  isBrowser && Boolean(window.PointerEvent || window.MSPointerEvent)\n\nexport const hasIntersectionObserverSupport =\n  isBrowser &&\n  'IntersectionObserver' in window &&\n  'IntersectionObserverEntry' in window &&\n  // Edge 15 and UC Browser lack support for `isIntersecting`\n  // but we an use intersectionRatio > 0 instead\n  // 'isIntersecting' in window.IntersectionObserverEntry.prototype &&\n  'intersectionRatio' in window.IntersectionObserverEntry.prototype\n\n// --- Getters ---\n\nexport const getEnv = (key, fallback = null) => {\n  const env = typeof process !== 'undefined' && process ? process.env || {} : {}\n  if (!key) {\n    /* istanbul ignore next */\n    return env\n  }\n  return env[key] || fallback\n}\n\nexport const getNoWarn = () => getEnv('BOOTSTRAP_VUE_NO_WARN')\n","import { isBrowser, hasPromiseSupport, hasMutationObserverSupport, getNoWarn } from './env'\n\n/**\n * Log a warning message to the console with BootstrapVue formatting\n * @param {string} message\n */\nexport const warn = message => /* istanbul ignore next */ {\n  if (!getNoWarn()) {\n    console.warn(`[BootstrapVue warn]: ${message}`)\n  }\n}\n\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\nexport const warnNotClient = source => {\n  /* istanbul ignore else */\n  if (isBrowser) {\n    return false\n  } else {\n    warn(`${source}: Can not be called during SSR.`)\n    return true\n  }\n}\n\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\nexport const warnNoPromiseSupport = source => {\n  /* istanbul ignore else */\n  if (hasPromiseSupport) {\n    return false\n  } else {\n    warn(`${source}: Requires Promise support.`)\n    return true\n  }\n}\n\n/**\n * Warn when no MutationObserver support is given\n * @param {string} source\n * @returns {boolean} warned\n */\nexport const warnNoMutationObserverSupport = source => {\n  /* istanbul ignore else */\n  if (hasMutationObserverSupport) {\n    return false\n  } else {\n    warn(`${source}: Requires MutationObserver support.`)\n    return true\n  }\n}\n\n// Default export\nexport default warn\n","// --- Static ---\n\nexport const from = Array.from\nexport const isArray = Array.isArray\n\n// --- Instance ---\n\nexport const arrayIncludes = (array, value) => array.indexOf(value) !== -1\nexport const concat = (...args) => Array.prototype.concat.apply([], args)\n","import { isArray } from './array'\n\n// --- Static ---\n\nexport const assign = Object.assign\nexport const getOwnPropertyNames = Object.getOwnPropertyNames\nexport const keys = Object.keys\nexport const defineProperties = Object.defineProperties\nexport const defineProperty = Object.defineProperty\nexport const freeze = Object.freeze\nexport const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\nexport const getOwnPropertySymbols = Object.getOwnPropertySymbols\nexport const getPrototypeOf = Object.getPrototypeOf\nexport const create = Object.create\nexport const isFrozen = Object.isFrozen\nexport const is = Object.is\n\n// --- \"Instance\" ---\n\nexport const hasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)\nexport const toString = obj => Object.prototype.toString.call(obj)\n\n// --- Utilities ---\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n * Note object could be a complex type like array, date, etc.\n */\nexport const isObject = obj => obj !== null && typeof obj === 'object'\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nexport const isPlainObject = obj => Object.prototype.toString.call(obj) === '[object Object]'\n\n// @link https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\nexport const omit = (obj, props) =>\n  keys(obj)\n    .filter(key => props.indexOf(key) === -1)\n    .reduce((result, key) => ({ ...result, [key]: obj[key] }), {})\n\nexport const readonlyDescriptor = () => ({ enumerable: true, configurable: false, writable: false })\n\n/**\n * Deep-freezes and object, making it immutable / read-only.\n * Returns the same object passed-in, but frozen.\n * Freezes inner object/array/values first.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n * Note: this method will not work for property values using Symbol() as a key\n */\nexport const deepFreeze = obj => {\n  // Retrieve the property names defined on object/array\n  // Note: `keys` will ignore properties that are keyed by a `Symbol()`\n  const props = keys(obj)\n  // Iterate over each prop and recursively freeze it\n  props.forEach(prop => {\n    const value = obj[prop]\n    // If value is a plain object or array, we deepFreeze it\n    obj[prop] = value && (isPlainObject(value) || isArray(value)) ? deepFreeze(value) : value\n  })\n  return freeze(obj)\n}\n","import { isArray } from './array'\nimport { isObject, isPlainObject } from './object'\n\n// --- Convenience inspection utilities ---\n\nexport const toType = val => typeof val\n\nexport const toRawType = val => Object.prototype.toString.call(val).slice(8, -1)\n\nexport const toRawTypeLC = val => toRawType(val).toLowerCase()\n\nexport const isUndefined = val => val === undefined\n\nexport const isNull = val => val === null\n\nexport const isUndefinedOrNull = val => isUndefined(val) || isNull(val)\n\nexport const isFunction = val => toType(val) === 'function'\n\nexport const isBoolean = val => toType(val) === 'boolean'\n\nexport const isString = val => toType(val) === 'string'\n\nexport const isNumber = val => toType(val) === 'number'\n\nexport const isPrimitive = val => isBoolean(val) || isString(val) || isNumber(val)\n\nexport const isDate = val => val instanceof Date\n\nexport const isEvent = val => val instanceof Event\n\nexport const isRegExp = val => toRawType(val) === 'RegExp'\n\nexport const isPromise = val =>\n  !isUndefinedOrNull(val) && isFunction(val.then) && isFunction(val.catch)\n\n// Extra convenience named re-exports\nexport { isArray, isObject, isPlainObject }\n","import { isArray, isPlainObject } from './inspect'\nimport { keys } from './object'\n\nexport const cloneDeep = (obj, defaultValue = obj) => {\n  if (isArray(obj)) {\n    return obj.reduce((result, val) => [...result, cloneDeep(val, val)], [])\n  }\n  if (isPlainObject(obj)) {\n    return keys(obj).reduce(\n      (result, key) => ({ ...result, [key]: cloneDeep(obj[key], obj[key]) }),\n      {}\n    )\n  }\n  return defaultValue\n}\n\nexport default cloneDeep\n","import { isArray, isObject } from './inspect'\n\n/**\n * Get property defined by dot/array notation in string.\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @param {*} defaultValue (optional)\n * @return {*}\n */\nconst get = (obj, path, defaultValue = null) => {\n  // Handle array of path values\n  path = isArray(path) ? path.join('.') : path\n\n  // If no path or no object passed\n  if (!path || !isObject(obj)) {\n    return defaultValue\n  }\n\n  // Handle edge case where user has dot(s) in top-level item field key\n  // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762\n  // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n  // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n  if (path in obj) {\n    return obj[path]\n  }\n\n  // Handle string array notation (numeric indices only)\n  path = String(path).replace(/\\[(\\d+)]/g, '.$1')\n\n  const steps = path.split('.').filter(Boolean)\n\n  // Handle case where someone passes a string of only dots\n  if (steps.length === 0) {\n    return defaultValue\n  }\n\n  // Traverse path in object to find result\n  // We use `!=` vs `!==` to test for both `null` and `undefined`\n  // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n  // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n  return steps.every(step => isObject(obj) && step in obj && (obj = obj[step]) != null)\n    ? obj\n    : defaultValue\n}\n\nexport default get\n","import { deepFreeze } from './object'\n\n// General BootstrapVue configuration\n//\n// BREAKPOINT DEFINITIONS\n//\n// Some components (BCol and BFormGroup) generate props based on breakpoints, and this\n// occurs when the component is first loaded (evaluated), which may happen before the\n// config is created/modified\n//\n// To get around this we make these components async (lazy evaluation)\n// The component definition is only called/executed when the first access to the\n// component is used (and cached on subsequent uses)\n//\n// See: https://vuejs.org/v2/guide/components-dynamic-async.html#Async-Components\n//\n// PROP DEFAULTS\n//\n// For default values on props, we use the default value factory function approach so\n// so that the default values are pulled in at each component instantiation\n//\n//  props: {\n//    variant: {\n//      type: String,\n//      default: () => getConfigComponent('BAlert', 'variant')\n//    }\n//  }\n\n// prettier-ignore\nexport default deepFreeze({\n  // Breakpoints\n  breakpoints: ['xs', 'sm', 'md', 'lg', 'xl'],\n\n  // Component Specific defaults are keyed by the component\n  // name (PascalCase) and prop name (camelCase)\n  BAlert: {\n    dismissLabel: 'Close',\n    variant: 'info'\n  },\n  BBadge: {\n    variant: 'secondary'\n  },\n  BButton: {\n    variant: 'secondary'\n  },\n  BButtonClose: {\n    // `textVariant` is `null` to inherit the current text color\n    textVariant: null,\n    ariaLabel: 'Close'\n  },\n  BCardSubTitle: {\n    // BCard and BCardBody also inherit this prop\n    subTitleTextVariant: 'muted'\n  },\n  BCarousel: {\n    labelPrev: 'Previous Slide',\n    labelNext: 'Next Slide',\n    labelGotoSlide: 'Goto Slide',\n    labelIndicators: 'Select a slide to display'\n  },\n  BDropdown: {\n    toggleText: 'Toggle Dropdown',\n    variant: 'secondary',\n    splitVariant: null\n  },\n  BFormFile: {\n    browseText: 'Browse',\n    // Chrome default file prompt\n    placeholder: 'No file chosen',\n    dropPlaceholder: 'Drop files here'\n  },\n  BFormText: {\n    textVariant: 'muted'\n  },\n  BImg: {\n    blankColor: 'transparent'\n  },\n  BImgLazy: {\n    blankColor: 'transparent'\n  },\n  BJumbotron: {\n    bgVariant: null,\n    borderVariant: null,\n    textVariant: null\n  },\n  BListGroupItem: {\n    variant: null\n  },\n  BModal: {\n    titleTag: 'h5',\n    size: 'md',\n    headerBgVariant: null,\n    headerBorderVariant: null,\n    headerTextVariant: null,\n    headerCloseVariant: null,\n    bodyBgVariant: null,\n    bodyTextVariant: null,\n    footerBgVariant: null,\n    footerBorderVariant: null,\n    footerTextVariant: null,\n    cancelTitle: 'Cancel',\n    cancelVariant: 'secondary',\n    okTitle: 'OK',\n    okVariant: 'primary',\n    headerCloseLabel: 'Close'\n  },\n  BNavbar: {\n    variant: null\n  },\n  BNavbarToggle: {\n    label: 'Toggle navigation'\n  },\n  BPopover: {\n    boundary: 'scrollParent',\n    boundaryPadding: 5,\n    customClass: null,\n    delay: 0,\n    variant: null\n  },\n  BProgress: {\n    variant: null\n  },\n  BProgressBar: {\n    variant: null\n  },\n  BSpinner: {\n    variant: null\n  },\n  BTable: {\n    selectedVariant: 'primary',\n    headVariant: null,\n    footVariant: null\n  },\n  BToast: {\n    toaster: 'b-toaster-top-right',\n    autoHideDelay: 5000,\n    variant: null,\n    toastClass: null,\n    headerClass: null,\n    bodyClass: null,\n    solid: false\n  },\n  BToaster: {\n    ariaLive: null,\n    ariaAtomic: null,\n    role: null\n  },\n  BTooltip: {\n    boundary: 'scrollParent',\n    boundaryPadding: 5,\n    customClass: null,\n    delay: 0,\n    variant: null\n  }\n})\n","import OurVue from './vue'\nimport cloneDeep from './clone-deep'\nimport get from './get'\nimport warn from './warn'\nimport { isArray, isPlainObject, isString, isUndefined } from './inspect'\nimport { getOwnPropertyNames, hasOwnProperty } from './object'\nimport DEFAULTS from './config-defaults'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvConfig'\n\n// Config manager class\nclass BvConfig {\n  constructor() {\n    // TODO: pre-populate with default config values (needs updated tests)\n    // this.$_config = cloneDeep(DEFAULTS)\n    this.$_config = {}\n    this.$_cachedBreakpoints = null\n  }\n\n  static get Defaults() /* istanbul ignore next */ {\n    return DEFAULTS\n  }\n\n  get defaults() /* istanbul ignore next */ {\n    return DEFAULTS\n  }\n\n  // Returns the defaults\n  getDefaults() /* istanbul ignore next */ {\n    return this.defaults\n  }\n\n  // Method to merge in user config parameters\n  setConfig(config = {}) {\n    if (!isPlainObject(config)) {\n      /* istanbul ignore next */\n      return\n    }\n    const configKeys = getOwnPropertyNames(config)\n    configKeys.forEach(cmpName => {\n      /* istanbul ignore next */\n      if (!hasOwnProperty(DEFAULTS, cmpName)) {\n        warn(`config: unknown config property \"${cmpName}\"`)\n        return\n      }\n      const cmpConfig = config[cmpName]\n      if (cmpName === 'breakpoints') {\n        // Special case for breakpoints\n        const breakpoints = config.breakpoints\n        /* istanbul ignore if */\n        if (\n          !isArray(breakpoints) ||\n          breakpoints.length < 2 ||\n          breakpoints.some(b => !isString(b) || b.length === 0)\n        ) {\n          warn('config: \"breakpoints\" must be an array of at least 2 breakpoint names')\n        } else {\n          this.$_config.breakpoints = cloneDeep(breakpoints)\n        }\n      } else if (isPlainObject(cmpConfig)) {\n        // Component prop defaults\n        const props = getOwnPropertyNames(cmpConfig)\n        props.forEach(prop => {\n          /* istanbul ignore if */\n          if (!hasOwnProperty(DEFAULTS[cmpName], prop)) {\n            warn(`config: unknown config property \"${cmpName}.{$prop}\"`)\n          } else {\n            // TODO: If we pre-populate the config with defaults, we can skip this line\n            this.$_config[cmpName] = this.$_config[cmpName] || {}\n            if (!isUndefined(cmpConfig[prop])) {\n              this.$_config[cmpName][prop] = cloneDeep(cmpConfig[prop])\n            }\n          }\n        })\n      }\n    })\n  }\n\n  // Clear the config. For testing purposes only\n  resetConfig() {\n    this.$_config = {}\n  }\n\n  // Returns a deep copy of the user config\n  getConfig() {\n    return cloneDeep(this.$_config)\n  }\n\n  getConfigValue(key) {\n    // First we try the user config, and if key not found we fall back to default value\n    // NOTE: If we deep clone DEFAULTS into config, then we can skip the fallback for get\n    return cloneDeep(get(this.$_config, key, get(DEFAULTS, key)))\n  }\n}\n\n// Method for applying a global config\nexport const setConfig = (config = {}, Vue = OurVue) => {\n  // Ensure we have a $bvConfig Object on the Vue prototype.\n  // We set on Vue and OurVue just in case consumer has not set an alias of `vue`.\n  Vue.prototype[PROP_NAME] = OurVue.prototype[PROP_NAME] =\n    Vue.prototype[PROP_NAME] || OurVue.prototype[PROP_NAME] || new BvConfig()\n  // Apply the config values\n  Vue.prototype[PROP_NAME].setConfig(config)\n}\n\n// Method for resetting the user config. Exported for testing purposes only.\nexport const resetConfig = () => {\n  if (OurVue.prototype[PROP_NAME] && OurVue.prototype[PROP_NAME].resetConfig) {\n    OurVue.prototype[PROP_NAME].resetConfig()\n  }\n}\n","import OurVue from './vue'\nimport warn from './warn'\nimport { setConfig } from './config-set'\nimport { hasWindowSupport, isJSDOM } from './env'\n\n/**\n * Checks if there are multiple instances of Vue, and warns (once) about possible issues.\n * @param {object} Vue\n */\nexport const checkMultipleVue = (() => {\n  let checkMultipleVueWarned = false\n\n  const MULTIPLE_VUE_WARNING = [\n    'Multiple instances of Vue detected!',\n    'You may need to set up an alias for Vue in your bundler config.',\n    'See: https://bootstrap-vue.js.org/docs#using-module-bundlers'\n  ].join('\\n')\n\n  return Vue => {\n    /* istanbul ignore next */\n    if (!checkMultipleVueWarned && OurVue !== Vue && !isJSDOM) {\n      warn(MULTIPLE_VUE_WARNING)\n    }\n    checkMultipleVueWarned = true\n  }\n})()\n\n/**\n * Plugin install factory function.\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\nexport const installFactory = ({ components, directives, plugins } = {}) => {\n  const install = (Vue, config = {}) => {\n    if (install.installed) {\n      /* istanbul ignore next */\n      return\n    }\n    install.installed = true\n    checkMultipleVue(Vue)\n    setConfig(config, Vue)\n    registerComponents(Vue, components)\n    registerDirectives(Vue, directives)\n    registerPlugins(Vue, plugins)\n  }\n\n  install.installed = false\n\n  return install\n}\n\n/**\n * Plugin object factory function.\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\nexport const pluginFactory = (opts = {}, extend = {}) => ({\n  ...extend,\n  install: installFactory(opts)\n})\n\n/**\n * Load a group of plugins.\n * @param {object} Vue\n * @param {object} Plugin definitions\n */\nexport const registerPlugins = (Vue, plugins = {}) => {\n  for (const plugin in plugins) {\n    if (plugin && plugins[plugin]) {\n      Vue.use(plugins[plugin])\n    }\n  }\n}\n\n/**\n * Load a component.\n * @param {object} Vue\n * @param {string} Component name\n * @param {object} Component definition\n */\nexport const registerComponent = (Vue, name, def) => {\n  if (Vue && name && def) {\n    Vue.component(name, def)\n  }\n}\n\n/**\n * Load a group of components.\n * @param {object} Vue\n * @param {object} Object of component definitions\n */\nexport const registerComponents = (Vue, components = {}) => {\n  for (const component in components) {\n    registerComponent(Vue, component, components[component])\n  }\n}\n\n/**\n * Load a directive.\n * @param {object} Vue\n * @param {string} Directive name\n * @param {object} Directive definition\n */\nexport const registerDirective = (Vue, name, def) => {\n  if (Vue && name && def) {\n    // Ensure that any leading V is removed from the\n    // name, as Vue adds it automatically\n    Vue.directive(name.replace(/^VB/, 'B'), def)\n  }\n}\n\n/**\n * Load a group of directives.\n * @param {object} Vue\n * @param {object} Object of directive definitions\n */\nexport const registerDirectives = (Vue, directives = {}) => {\n  for (const directive in directives) {\n    registerDirective(Vue, directive, directives[directive])\n  }\n}\n\n/**\n * Install plugin if window.Vue available\n * @param {object} Plugin definition\n */\nexport const vueUse = VuePlugin => {\n  /* istanbul ignore next */\n  if (hasWindowSupport && window.Vue) {\n    window.Vue.use(VuePlugin)\n  }\n}\n","import { create } from './object'\n\nconst memoize = fn => {\n  const cache = create(null)\n\n  return (...args) => {\n    const argsKey = JSON.stringify(args)\n    return (cache[argsKey] = cache[argsKey] || fn.apply(null, args))\n  }\n}\n\nexport default memoize\n","import Vue from './vue'\nimport cloneDeep from './clone-deep'\nimport get from './get'\nimport memoize from './memoize'\nimport DEFAULTS from './config-defaults'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvConfig'\nconst VueProto = Vue.prototype\n\n// --- Getter methods ---\n// All methods return a deep clone (immutable) copy of the config\n// value, to prevent mutation of the user config object.\n\n// Get the current user config. For testing purposes only\nexport const getConfig = () => {\n  return VueProto[PROP_NAME] ? VueProto[PROP_NAME].getConfig() : {}\n}\n\n// Method to grab a config value based on a dotted/array notation key\nexport const getConfigValue = key => {\n  return VueProto[PROP_NAME]\n    ? VueProto[PROP_NAME].getConfigValue(key)\n    : cloneDeep(get(DEFAULTS, key))\n}\n\n// Method to grab a config value for a particular component\nexport const getComponentConfig = (cmpName, key = null) => {\n  // Return the particular config value for key for if specified,\n  // otherwise we return the full config (or an empty object if not found)\n  return key ? getConfigValue(`${cmpName}.${key}`) : getConfigValue(cmpName) || {}\n}\n\n// Convenience method for getting all breakpoint names\nexport const getBreakpoints = () => {\n  return getConfigValue('breakpoints')\n}\n\n// Private function for caching / locking-in breakpoint names\nconst _getBreakpointsCached = memoize(() => {\n  return getBreakpoints()\n})\n\n// Convenience method for getting all breakpoint names.\n// Caches the results after first access.\nexport const getBreakpointsCached = () => {\n  return cloneDeep(_getBreakpointsCached())\n}\n\n// Convenience method for getting breakpoints with\n// the smallest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\nexport const getBreakpointsUp = () => {\n  const breakpoints = getBreakpoints()\n  breakpoints[0] = ''\n  return breakpoints\n}\n\n// Convenience method for getting breakpoints with\n// the smallest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\n// Caches the results after first access.\nexport const getBreakpointsUpCached = memoize(() => {\n  const breakpoints = getBreakpointsCached()\n  breakpoints[0] = ''\n  return breakpoints\n})\n\n// Convenience method for getting breakpoints with\n// the largest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\nexport const getBreakpointsDown = () => {\n  const breakpoints = getBreakpoints()\n  breakpoints[breakpoints.length - 1] = ''\n  return breakpoints\n}\n\n// Convenience method for getting breakpoints with\n// the largest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\n// Caches the results after first access.\n/* istanbul ignore next: we don't use this method anywhere, yet */\nexport const getBreakpointsDownCached = () => /* istanbul ignore next */ {\n  const breakpoints = getBreakpointsCached()\n  breakpoints[breakpoints.length - 1] = ''\n  return breakpoints\n}\n","import { from as arrayFrom } from './array'\nimport { hasWindowSupport, hasDocumentSupport, hasPassiveEventSupport } from './env'\nimport { isFunction, isNull, isObject } from '../utils/inspect'\n\n// --- Constants ---\n\nconst w = hasWindowSupport ? window : {}\nconst d = hasDocumentSupport ? document : {}\nconst elProto = typeof Element !== 'undefined' ? Element.prototype : {}\n\n// --- Normalization utils ---\n\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n/* istanbul ignore next */\nexport const matchesEl =\n  elProto.matches || elProto.msMatchesSelector || elProto.webkitMatchesSelector\n\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n/* istanbul ignore next */\nexport const closestEl =\n  elProto.closest ||\n  function(sel) /* istanbul ignore next */ {\n    let el = this\n    do {\n      // Use our \"patched\" matches function\n      if (matches(el, sel)) {\n        return el\n      }\n      el = el.parentElement || el.parentNode\n    } while (!isNull(el) && el.nodeType === Node.ELEMENT_NODE)\n    return null\n  }\n\n// `requestAnimationFrame()` convenience method\nexport const requestAF =\n  w.requestAnimationFrame ||\n  w.webkitRequestAnimationFrame ||\n  w.mozRequestAnimationFrame ||\n  w.msRequestAnimationFrame ||\n  w.oRequestAnimationFrame ||\n  // Fallback, but not a true polyfill\n  // Only needed for Opera Mini\n  /* istanbul ignore next */\n  (cb => setTimeout(cb, 16))\n\nexport const MutationObs =\n  w.MutationObserver || w.WebKitMutationObserver || w.MozMutationObserver || null\n\n// --- Utils ---\n\n// Normalize event options based on support of passive option\n// Exported only for testing purposes\nexport const parseEventOptions = options => {\n  /* istanbul ignore else: can't test in JSDOM, as it supports passive */\n  if (hasPassiveEventSupport) {\n    return isObject(options) ? options : { useCapture: Boolean(options || false) }\n  } else {\n    // Need to translate to actual Boolean value\n    return Boolean(isObject(options) ? options.useCapture : options)\n  }\n}\n\n// Attach an event listener to an element\nexport const eventOn = (el, evtName, handler, options) => {\n  if (el && el.addEventListener) {\n    el.addEventListener(evtName, handler, parseEventOptions(options))\n  }\n}\n\n// Remove an event listener from an element\nexport const eventOff = (el, evtName, handler, options) => {\n  if (el && el.removeEventListener) {\n    el.removeEventListener(evtName, handler, parseEventOptions(options))\n  }\n}\n\n// Determine if an element is an HTML Element\nexport const isElement = el => Boolean(el && el.nodeType === Node.ELEMENT_NODE)\n\n// Determine if an HTML element is visible - Faster than CSS check\nexport const isVisible = el => {\n  if (!isElement(el) || !contains(d.body, el)) {\n    return false\n  }\n  if (el.style.display === 'none') {\n    // We do this check to help with vue-test-utils when using v-show\n    /* istanbul ignore next */\n    return false\n  }\n  // All browsers support getBoundingClientRect(), except JSDOM as it returns all 0's for values :(\n  // So any tests that need isVisible will fail in JSDOM\n  // Except when we override the getBCR prototype in some tests\n  const bcr = getBCR(el)\n  return Boolean(bcr && bcr.height > 0 && bcr.width > 0)\n}\n\n// Determine if an element is disabled\nexport const isDisabled = el =>\n  !isElement(el) || el.disabled || Boolean(getAttr(el, 'disabled')) || hasClass(el, 'disabled')\n\n// Cause/wait-for an element to reflow it's content (adjusting it's height/width)\nexport const reflow = el => {\n  // Requesting an elements offsetHight will trigger a reflow of the element content\n  /* istanbul ignore next: reflow doesn't happen in JSDOM */\n  return isElement(el) && el.offsetHeight\n}\n\n// Select all elements matching selector. Returns `[]` if none found\nexport const selectAll = (selector, root) =>\n  arrayFrom((isElement(root) ? root : d).querySelectorAll(selector))\n\n// Select a single element, returns `null` if not found\nexport const select = (selector, root) =>\n  (isElement(root) ? root : d).querySelector(selector) || null\n\n// Determine if an element matches a selector\nexport const matches = (el, selector) => {\n  if (!isElement(el)) {\n    return false\n  }\n  return matchesEl.call(el, selector)\n}\n\n// Finds closest element matching selector. Returns `null` if not found\nexport const closest = (selector, root) => {\n  if (!isElement(root)) {\n    return null\n  }\n  const el = closestEl.call(root, selector)\n  // Emulate jQuery closest and return `null` if match is the passed in element (root)\n  return el === root ? null : el\n}\n\n// Returns true if the parent element contains the child element\nexport const contains = (parent, child) => {\n  if (!parent || !isFunction(parent.contains)) {\n    return false\n  }\n  return parent.contains(child)\n}\n\n// Get an element given an ID\nexport const getById = id => d.getElementById(/^#/.test(id) ? id.slice(1) : id) || null\n\n// Add a class to an element\nexport const addClass = (el, className) => {\n  // We are checking for `el.classList` existence here since IE 11\n  // returns `undefined` for some elements (e.g. SVG elements)\n  // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n  if (className && isElement(el) && el.classList) {\n    el.classList.add(className)\n  }\n}\n\n// Remove a class from an element\nexport const removeClass = (el, className) => {\n  // We are checking for `el.classList` existence here since IE 11\n  // returns `undefined` for some elements (e.g. SVG elements)\n  // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n  if (className && isElement(el) && el.classList) {\n    el.classList.remove(className)\n  }\n}\n\n// Test if an element has a class\nexport const hasClass = (el, className) => {\n  // We are checking for `el.classList` existence here since IE 11\n  // returns `undefined` for some elements (e.g. SVG elements)\n  // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n  if (className && isElement(el) && el.classList) {\n    return el.classList.contains(className)\n  }\n  return false\n}\n\n// Set an attribute on an element\nexport const setAttr = (el, attr, val) => {\n  if (attr && isElement(el)) {\n    el.setAttribute(attr, val)\n  }\n}\n\n// Remove an attribute from an element\nexport const removeAttr = (el, attr) => {\n  if (attr && isElement(el)) {\n    el.removeAttribute(attr)\n  }\n}\n\n// Get an attribute value from an element\n// Returns `null` if not found\nexport const getAttr = (el, attr) => (attr && isElement(el) ? el.getAttribute(attr) : null)\n\n// Determine if an attribute exists on an element\n// Returns `true` or `false`, or `null` if element not found\nexport const hasAttr = (el, attr) => (attr && isElement(el) ? el.hasAttribute(attr) : null)\n\n// Return the Bounding Client Rect of an element\n// Returns `null` if not an element\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\nexport const getBCR = el => (isElement(el) ? el.getBoundingClientRect() : null)\n\n// Get computed style object for an element\n/* istanbul ignore next: getComputedStyle() doesn't work in JSDOM */\nexport const getCS = el => (hasWindowSupport && isElement(el) ? w.getComputedStyle(el) : {})\n\n// Returns a `Selection` object representing the range of text selected\n// Returns `null` if no window support is given\n/* istanbul ignore next: getSelection() doesn't work in JSDOM */\nexport const getSel = () => (hasWindowSupport && w.getSelection ? w.getSelection() : null)\n\n// Return an element's offset with respect to document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\nexport const offset = el => /* istanbul ignore next: getBoundingClientRect(), getClientRects() doesn't work in JSDOM */ {\n  const _offset = { top: 0, left: 0 }\n  if (!isElement(el) || el.getClientRects().length === 0) {\n    return _offset\n  }\n  const bcr = getBCR(el)\n  if (bcr) {\n    const win = el.ownerDocument.defaultView\n    _offset.top = bcr.top + win.pageYOffset\n    _offset.left = bcr.left + win.pageXOffset\n  }\n  return _offset\n}\n\n// Return an element's offset with respect to to it's offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\nexport const position = el => /* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */ {\n  let _offset = { top: 0, left: 0 }\n  if (!isElement(el)) {\n    return _offset\n  }\n  let parentOffset = { top: 0, left: 0 }\n  const elStyles = getCS(el)\n  if (elStyles.position === 'fixed') {\n    _offset = getBCR(el) || _offset\n  } else {\n    _offset = offset(el)\n    const doc = el.ownerDocument\n    let offsetParent = el.offsetParent || doc.documentElement\n    while (\n      offsetParent &&\n      (offsetParent === doc.body || offsetParent === doc.documentElement) &&\n      getCS(offsetParent).position === 'static'\n    ) {\n      offsetParent = offsetParent.parentNode\n    }\n    if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n      parentOffset = offset(offsetParent)\n      const offsetParentStyles = getCS(offsetParent)\n      parentOffset.top += parseFloat(offsetParentStyles.borderTopWidth)\n      parentOffset.left += parseFloat(offsetParentStyles.borderLeftWidth)\n    }\n  }\n  return {\n    top: _offset.top - parentOffset.top - parseFloat(elStyles.marginTop),\n    left: _offset.left - parentOffset.left - parseFloat(elStyles.marginLeft)\n  }\n}\n","var e=function(){return(e=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},t={kebab:/-(\\w)/g,styleProp:/:(.*)/,styleList:/;(?![^(]*\\))/g};function r(e,t){return t?t.toUpperCase():\"\"}function s(e){for(var s,a={},c=0,o=e.split(t.styleList);c<o.length;c++){var n=o[c].split(t.styleProp),i=n[0],l=n[1];(i=i.trim())&&(\"string\"==typeof l&&(l=l.trim()),a[(s=i,s.replace(t.kebab,r))]=l)}return a}function a(){for(var t,r,a={},c=arguments.length;c--;)for(var o=0,n=Object.keys(arguments[c]);o<n.length;o++)switch(t=n[o]){case\"class\":case\"style\":case\"directives\":if(Array.isArray(a[t])||(a[t]=[]),\"style\"===t){var i=void 0;i=Array.isArray(arguments[c].style)?arguments[c].style:[arguments[c].style];for(var l=0;l<i.length;l++){var y=i[l];\"string\"==typeof y&&(i[l]=s(y))}arguments[c].style=i}a[t]=a[t].concat(arguments[c][t]);break;case\"staticClass\":if(!arguments[c][t])break;void 0===a[t]&&(a[t]=\"\"),a[t]&&(a[t]+=\" \"),a[t]+=arguments[c][t].trim();break;case\"on\":case\"nativeOn\":a[t]||(a[t]={});for(var p=0,f=Object.keys(arguments[c][t]||{});p<f.length;p++)r=f[p],a[t][r]?a[t][r]=[].concat(a[t][r],arguments[c][t][r]):a[t][r]=arguments[c][t][r];break;case\"attrs\":case\"props\":case\"domProps\":case\"scopedSlots\":case\"staticStyle\":case\"hook\":case\"transition\":a[t]||(a[t]={}),a[t]=e({},arguments[c][t],a[t]);break;case\"slot\":case\"key\":case\"ref\":case\"tag\":case\"show\":case\"keepAlive\":default:a[t]||(a[t]=arguments[c][t])}return a}export{a as mergeData};\n//# sourceMappingURL=lib.esm.js.map\n","// Generic Bootstrap v4 fade (no-fade) transition component\n\nimport Vue from './vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { isPlainObject } from './inspect'\n\nconst NO_FADE_PROPS = {\n  name: '',\n  enterClass: '',\n  enterActiveClass: '',\n  enterToClass: 'show',\n  leaveClass: 'show',\n  leaveActiveClass: '',\n  leaveToClass: ''\n}\n\nconst FADE_PROPS = {\n  ...NO_FADE_PROPS,\n  enterActiveClass: 'fade',\n  leaveActiveClass: 'fade'\n}\n\nexport const BVTransition = /*#__PURE__*/ Vue.extend({\n  name: 'BVTransition',\n  functional: true,\n  props: {\n    noFade: {\n      // Only applicable to the built in transition\n      // Has no effect if `trans-props` provided\n      type: Boolean,\n      default: false\n    },\n    mode: {\n      type: String\n      // default: undefined\n    },\n    // For user supplied transitions (if needed)\n    transProps: {\n      type: Object,\n      default: null\n    }\n  },\n  render(h, { children, data, listeners, props }) {\n    let transProps = props.transProps\n    if (!isPlainObject(transProps)) {\n      transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS\n    }\n    transProps = {\n      mode: props.mode,\n      ...transProps,\n      // We always need `css` true\n      css: true\n    }\n    return h(\n      'transition',\n      // Any listeners will get merged here\n      mergeData(data, { props: transProps }),\n      children\n    )\n  }\n})\n\nexport default BVTransition\n","import { isFunction } from './inspect'\n\n// Note for functional components:\n// In functional components, `slots` is a function so it must be called\n// first before passing to the below methods. `scopedSlots` is always an\n// object and may be undefined (for Vue < 2.6.x)\n\n/**\n * Returns true if either scoped or unscoped named slot exists\n *\n * @param {String} name\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} vNodes\n */\nconst hasNormalizedSlot = (name, $scopedSlots = {}, $slots = {}) => {\n  // Returns true if the either a $scopedSlot or $slot exists with the specified name\n  return Boolean($scopedSlots[name] || $slots[name])\n}\n\n/**\n * Returns vNodes for named slot either scoped or unscoped\n *\n * @param {String} name\n * @param {String} scope\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} vNodes\n */\nconst normalizeSlot = (name, scope = {}, $scopedSlots = {}, $slots = {}) => {\n  // Note: in Vue 2.6.x, all names slots are also scoped slots\n  const slot = $scopedSlots[name] || $slots[name]\n  return isFunction(slot) ? slot(scope) : slot\n}\n\n// Named exports\nexport { hasNormalizedSlot, normalizeSlot }\n\n// Default export (backwards compatibility)\nexport default normalizeSlot\n","import { hasNormalizedSlot, normalizeSlot } from '../utils/normalize-slot'\nimport { concat } from '../utils/array'\n\nexport default {\n  methods: {\n    hasNormalizedSlot(name) {\n      // Returns true if the either a $scopedSlot or $slot exists with the specified name\n      return hasNormalizedSlot(name, this.$scopedSlots, this.$slots)\n    },\n    normalizeSlot(name, scope = {}) {\n      // Returns an array of rendered vNodes if slot found.\n      // Returns undefined if not found.\n      const vNodes = normalizeSlot(name, scope, this.$scopedSlots, this.$slots)\n      return vNodes ? concat(vNodes) : vNodes\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { isEvent } from '../../utils/inspect'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\n\nconst NAME = 'BButtonClose'\n\nconst props = {\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  ariaLabel: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'ariaLabel')\n  },\n  textVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'textVariant')\n  }\n}\n\n// @vue/component\nexport const BButtonClose = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, listeners, slots, scopedSlots }) {\n    const $slots = slots()\n    const $scopedSlots = scopedSlots || {}\n\n    const componentData = {\n      staticClass: 'close',\n      class: {\n        [`text-${props.textVariant}`]: props.textVariant\n      },\n      attrs: {\n        type: 'button',\n        disabled: props.disabled,\n        'aria-label': props.ariaLabel ? String(props.ariaLabel) : null\n      },\n      on: {\n        click(evt) {\n          // Ensure click on button HTML content is also disabled\n          /* istanbul ignore if: bug in JSDOM still emits click on inner element */\n          if (props.disabled && isEvent(evt)) {\n            evt.stopPropagation()\n            evt.preventDefault()\n          }\n        }\n      }\n    }\n    // Careful not to override the default slot with innerHTML\n    if (!hasNormalizedSlot('default', $scopedSlots, $slots)) {\n      componentData.domProps = { innerHTML: '&times;' }\n    }\n    return h(\n      'button',\n      mergeData(data, componentData),\n      normalizeSlot('default', {}, $scopedSlots, $slots)\n    )\n  }\n})\n\nexport default BButtonClose\n","import Vue from '../../utils/vue'\nimport { getComponentConfig } from '../../utils/config'\nimport { requestAF } from '../../utils/dom'\nimport { isBoolean } from '../../utils/inspect'\nimport BVTransition from '../../utils/bv-transition'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BButtonClose } from '../button/button-close'\n\nconst NAME = 'BAlert'\n\n// Convert `show` value to a number\nconst parseCountDown = show => {\n  if (show === '' || isBoolean(show)) {\n    return 0\n  }\n  show = parseInt(show, 10)\n  return show > 0 ? show : 0\n}\n\n// Convert `show` value to a boolean\nconst parseShow = show => {\n  if (show === '' || show === true) {\n    return true\n  }\n  if (parseInt(show, 10) < 1) {\n    // Boolean will always return false for the above comparison\n    return false\n  }\n  return Boolean(show)\n}\n\n// Is a value number like (i.e. a number or a number as string)\nconst isNumericLike = value => !isNaN(parseInt(value, 10))\n\n// @vue/component\nexport const BAlert = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [normalizeSlotMixin],\n  model: {\n    prop: 'show',\n    event: 'input'\n  },\n  props: {\n    variant: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'variant')\n    },\n    dismissible: {\n      type: Boolean,\n      default: false\n    },\n    dismissLabel: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'dismissLabel')\n    },\n    show: {\n      type: [Boolean, Number, String],\n      default: false\n    },\n    fade: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      countDownTimerId: null,\n      countDown: 0,\n      // If initially shown, we need to set these for SSR\n      localShow: parseShow(this.show)\n    }\n  },\n  watch: {\n    show(newVal) {\n      this.countDown = parseCountDown(newVal)\n      this.localShow = parseShow(newVal)\n    },\n    countDown(newVal) {\n      this.clearTimer()\n      if (isNumericLike(this.show)) {\n        // Ignore if this.show transitions to a boolean value.\n        this.$emit('dismiss-count-down', newVal)\n        if (this.show !== newVal) {\n          // Update the v-model if needed\n          this.$emit('input', newVal)\n        }\n        if (newVal > 0) {\n          this.localShow = true\n          this.countDownTimerId = setTimeout(() => {\n            this.countDown--\n          }, 1000)\n        } else {\n          // Slightly delay the hide to allow any UI updates\n          this.$nextTick(() => {\n            requestAF(() => {\n              this.localShow = false\n            })\n          })\n        }\n      }\n    },\n    localShow(newVal) {\n      if (!newVal && (this.dismissible || isNumericLike(this.show))) {\n        // Only emit dismissed events for dismissible or auto dismissing alerts\n        this.$emit('dismissed')\n      }\n      if (!isNumericLike(this.show) && this.show !== newVal) {\n        // Only emit booleans if we weren't passed a number via `this.show`\n        this.$emit('input', newVal)\n      }\n    }\n  },\n  created() {\n    this.countDown = parseCountDown(this.show)\n    this.localShow = parseShow(this.show)\n  },\n  mounted() {\n    this.countDown = parseCountDown(this.show)\n    this.localShow = parseShow(this.show)\n  },\n  beforeDestroy() {\n    this.clearTimer()\n  },\n  methods: {\n    dismiss() {\n      this.clearTimer()\n      this.countDown = 0\n      this.localShow = false\n    },\n    clearTimer() {\n      if (this.countDownTimerId) {\n        clearInterval(this.countDownTimerId)\n        this.countDownTimerId = null\n      }\n    }\n  },\n  render(h) {\n    let $alert // undefined\n    if (this.localShow) {\n      let $dismissBtn = h()\n      if (this.dismissible) {\n        // Add dismiss button\n        $dismissBtn = h(\n          BButtonClose,\n          { attrs: { 'aria-label': this.dismissLabel }, on: { click: this.dismiss } },\n          [this.normalizeSlot('dismiss')]\n        )\n      }\n      $alert = h(\n        'div',\n        {\n          key: this._uid,\n          staticClass: 'alert',\n          class: {\n            'alert-dismissible': this.dismissible,\n            [`alert-${this.variant}`]: this.variant\n          },\n          attrs: { role: 'alert', 'aria-live': 'polite', 'aria-atomic': true }\n        },\n        [$dismissBtn, this.normalizeSlot('default')]\n      )\n      $alert = [$alert]\n    }\n    return h(BVTransition, { props: { noFade: !this.fade } }, $alert)\n  }\n})\n\nexport default BAlert\n","import { BAlert } from './alert'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst AlertPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BAlert }\n})\n\nexport { AlertPlugin, BAlert }\n\nexport default AlertPlugin\n","const identity = x => x\n\nexport default identity\n","import identity from './identity'\nimport { isArray } from './inspect'\nimport { keys } from './object'\n\n/**\n * Given an array of properties or an object of property keys,\n * plucks all the values off the target object, returning a new object\n * that has props that reference the original prop values\n *\n * @param {{}|string[]} keysToPluck\n * @param {{}} objToPluck\n * @param {Function} transformFn\n * @return {{}}\n */\nconst pluckProps = (keysToPluck, objToPluck, transformFn = identity) =>\n  (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce((memo, prop) => {\n    memo[transformFn(prop)] = objToPluck[prop]\n    return memo\n  }, {})\n\nexport default pluckProps\n","import { isArray, isPlainObject, isUndefinedOrNull } from './inspect'\n\n/**\n * Convert a value to a string that can be rendered.\n */\nconst toString = (val, spaces = 2) => {\n  return isUndefinedOrNull(val)\n    ? ''\n    : isArray(val) || (isPlainObject(val) && val.toString === Object.prototype.toString)\n      ? JSON.stringify(val, null, spaces)\n      : String(val)\n}\n\nexport default toString\n","import toString from './to-string'\nimport { isArray, isNull, isPlainObject, isString, isUndefined } from './inspect'\nimport { keys } from './object'\n\nconst ANCHOR_TAG = 'a'\n\n// Precompile RegExp\nconst commaRE = /%2C/g\nconst encodeReserveRE = /[!'()*]/g\n// Method to replace reserved chars\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16)\n\n// Fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nconst encode = str =>\n  encodeURIComponent(toString(str))\n    .replace(encodeReserveRE, encodeReserveReplacer)\n    .replace(commaRE, ',')\n\nconst decode = decodeURIComponent\n\n// Stringifies an object of query parameters\n// See: https://github.com/vuejs/vue-router/blob/dev/src/util/query.js\nexport const stringifyQueryObj = obj => {\n  if (!isPlainObject(obj)) {\n    return ''\n  }\n\n  const query = keys(obj)\n    .map(key => {\n      const val = obj[key]\n      if (isUndefined(val)) {\n        return ''\n      } else if (isNull(val)) {\n        return encode(key)\n      } else if (isArray(val)) {\n        return val\n          .reduce((results, val2) => {\n            if (isNull(val2)) {\n              results.push(encode(key))\n            } else if (!isUndefined(val2)) {\n              // Faster than string interpolation\n              results.push(encode(key) + '=' + encode(val2))\n            }\n            return results\n          }, [])\n          .join('&')\n      }\n      // Faster than string interpolation\n      return encode(key) + '=' + encode(val)\n    })\n    /* must check for length, as we only want to filter empty strings, not things that look falsey! */\n    .filter(x => x.length > 0)\n    .join('&')\n\n  return query ? `?${query}` : ''\n}\n\nexport const parseQuery = query => {\n  const parsed = {}\n  query = toString(query)\n    .trim()\n    .replace(/^(\\?|#|&)/, '')\n\n  if (!query) {\n    return parsed\n  }\n\n  query.split('&').forEach(param => {\n    const parts = param.replace(/\\+/g, ' ').split('=')\n    const key = decode(parts.shift())\n    const val = parts.length > 0 ? decode(parts.join('=')) : null\n\n    if (isUndefined(parsed[key])) {\n      parsed[key] = val\n    } else if (isArray(parsed[key])) {\n      parsed[key].push(val)\n    } else {\n      parsed[key] = [parsed[key], val]\n    }\n  })\n\n  return parsed\n}\n\nexport const isRouterLink = tag => toString(tag).toLowerCase() !== ANCHOR_TAG\n\nexport const computeTag = ({ to, disabled } = {}, thisOrParent) => {\n  return thisOrParent.$router && to && !disabled\n    ? thisOrParent.$nuxt\n      ? 'nuxt-link'\n      : 'router-link'\n    : ANCHOR_TAG\n}\n\nexport const computeRel = ({ target, rel } = {}) => {\n  if (target === '_blank' && isNull(rel)) {\n    return 'noopener'\n  }\n  return rel || null\n}\n\nexport const computeHref = (\n  { href, to } = {},\n  tag = ANCHOR_TAG,\n  fallback = '#',\n  toFallback = '/'\n) => {\n  // We've already checked the $router in computeTag(), so isRouterLink() indicates a live router.\n  // When deferring to Vue Router's router-link, don't use the href attribute at all.\n  // We return null, and then remove href from the attributes passed to router-link\n  if (isRouterLink(tag)) {\n    return null\n  }\n\n  // Return `href` when explicitly provided\n  if (href) {\n    return href\n  }\n\n  // Reconstruct `href` when `to` used, but no router\n  if (to) {\n    // Fallback to `to` prop (if `to` is a string)\n    if (isString(to)) {\n      return to || toFallback\n    }\n    // Fallback to `to.path + to.query + to.hash` prop (if `to` is an object)\n    if (isPlainObject(to) && (to.path || to.query || to.hash)) {\n      const path = toString(to.path)\n      const query = stringifyQueryObj(to.query)\n      let hash = toString(to.hash)\n      hash = !hash || hash.charAt(0) === '#' ? hash : `#${hash}`\n      return `${path}${query}${hash}` || toFallback\n    }\n  }\n\n  // If nothing is provided return the fallback\n  return fallback\n}\n","import Vue from '../../utils/vue'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { concat } from '../../utils/array'\nimport { isEvent, isFunction, isUndefined } from '../../utils/inspect'\nimport { computeHref, computeRel, computeTag, isRouterLink } from '../../utils/router'\n\n/**\n * The Link component is used in many other BV components.\n * As such, sharing its props makes supporting all its features easier.\n * However, some components need to modify the defaults for their own purpose.\n * Prefer sharing a fresh copy of the props to ensure mutations\n * do not affect other component references to the props.\n *\n * https://github.com/vuejs/vue-router/blob/dev/src/components/link.js\n * @return {{}}\n */\nexport const propsFactory = () => ({\n  href: {\n    type: String,\n    default: null\n  },\n  rel: {\n    type: String,\n    default: null\n  },\n  target: {\n    type: String,\n    default: '_self'\n  },\n  active: {\n    type: Boolean,\n    default: false\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  // router-link specific props\n  to: {\n    type: [String, Object],\n    default: null\n  },\n  append: {\n    type: Boolean,\n    default: false\n  },\n  replace: {\n    type: Boolean,\n    default: false\n  },\n  event: {\n    type: [String, Array],\n    default: 'click'\n  },\n  activeClass: {\n    type: String\n    // default: undefined\n  },\n  exact: {\n    type: Boolean,\n    default: false\n  },\n  exactActiveClass: {\n    type: String\n    // default: undefined\n  },\n  routerTag: {\n    type: String,\n    default: 'a'\n  },\n  // nuxt-link specific prop(s)\n  noPrefetch: {\n    type: Boolean,\n    default: false\n  }\n})\n\nexport const props = propsFactory()\n\n// @vue/component\nexport const BLink = /*#__PURE__*/ Vue.extend({\n  name: 'BLink',\n  mixins: [normalizeSlotMixin],\n  inheritAttrs: false,\n  props: propsFactory(),\n  computed: {\n    computedTag() {\n      // We don't pass `this` as the first arg as we need reactivity of the props\n      return computeTag({ to: this.to, disabled: this.disabled }, this)\n    },\n    isRouterLink() {\n      return isRouterLink(this.computedTag)\n    },\n    computedRel() {\n      // We don't pass `this` as the first arg as we need reactivity of the props\n      return computeRel({ target: this.target, rel: this.rel })\n    },\n    computedHref() {\n      // We don't pass `this` as the first arg as we need reactivity of the props\n      return computeHref({ to: this.to, href: this.href }, this.computedTag)\n    },\n    computedProps() {\n      return this.isRouterLink ? { ...this.$props, tag: this.routerTag } : {}\n    }\n  },\n  methods: {\n    onClick(evt) {\n      const evtIsEvent = isEvent(evt)\n      const isRouterLink = this.isRouterLink\n      const suppliedHandler = this.$listeners.click\n      if (evtIsEvent && this.disabled) {\n        // Stop event from bubbling up\n        evt.stopPropagation()\n        // Kill the event loop attached to this specific `EventTarget`\n        // Needed to prevent `vue-router` for doing it's thing\n        evt.stopImmediatePropagation()\n      } else {\n        /* istanbul ignore next: difficult to test, but we know it works */\n        if (isRouterLink && evt.currentTarget.__vue__) {\n          // Router links do not emit instance `click` events, so we\n          // add in an $emit('click', evt) on it's vue instance\n          evt.currentTarget.__vue__.$emit('click', evt)\n        }\n        // Call the suppliedHandler(s), if any provided\n        concat(suppliedHandler)\n          .filter(h => isFunction(h))\n          .forEach(handler => {\n            handler(...arguments)\n          })\n        // Emit the global $root click event\n        this.$root.$emit('clicked::link', evt)\n      }\n      // Stop scroll-to-top behavior or navigation on\n      // regular links when href is just '#'\n      if (evtIsEvent && (this.disabled || (!isRouterLink && this.computedHref === '#'))) {\n        evt.preventDefault()\n      }\n    },\n    focus() {\n      if (this.$el && this.$el.focus) {\n        this.$el.focus()\n      }\n    },\n    blur() {\n      if (this.$el && this.$el.blur) {\n        this.$el.blur()\n      }\n    }\n  },\n  render(h) {\n    const tag = this.computedTag\n    const rel = this.computedRel\n    const href = this.computedHref\n    const isRouterLink = this.isRouterLink\n\n    // We want to overwrite any click handler since our callback\n    // will invoke the user supplied handler9s) if !props.disabled\n    const handlers = { ...this.$listeners, click: this.onClick }\n\n    const componentData = {\n      class: { active: this.active, disabled: this.disabled },\n      attrs: {\n        ...this.$attrs,\n        rel,\n        target: this.target,\n        tabindex: this.disabled\n          ? '-1'\n          : isUndefined(this.$attrs.tabindex)\n            ? null\n            : this.$attrs.tabindex,\n        'aria-disabled': this.disabled ? 'true' : null\n      },\n      props: this.computedProps,\n      on: isRouterLink ? {} : handlers,\n      nativeOn: isRouterLink ? handlers : {}\n    }\n\n    // If href attribute exists on <router-link> (even undefined or null) it fails working on\n    // SSR, so we explicitly add it here if needed (i.e. if computedHref() is truthy)\n    if (href) {\n      componentData.attrs.href = href\n    } else {\n      // Ensure the prop HREF does not exist for router links\n      delete componentData.props.href\n    }\n\n    return h(tag, componentData, this.normalizeSlot('default'))\n  }\n})\n\nexport default BLink\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport pluckProps from '../../utils/pluck-props'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nconst NAME = 'BBadge'\n\nconst linkProps = linkPropsFactory()\ndelete linkProps.href.default\ndelete linkProps.to.default\n\nexport const props = {\n  ...linkProps,\n  tag: {\n    type: String,\n    default: 'span'\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  pill: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BBadge = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    const tag = !props.href && !props.to ? props.tag : BLink\n\n    const componentData = {\n      staticClass: 'badge',\n      class: [\n        props.variant ? `badge-${props.variant}` : 'badge-secondary',\n        {\n          'badge-pill': Boolean(props.pill),\n          active: props.active,\n          disabled: props.disabled\n        }\n      ],\n      props: pluckProps(linkProps, props)\n    }\n\n    return h(tag, mergeData(data, componentData), children)\n  }\n})\n\nexport default BBadge\n","import { BBadge } from './badge'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst BadgePlugin = /*#__PURE__*/ pluginFactory({\n  components: { BBadge }\n})\n\nexport { BadgePlugin, BBadge }\n\nexport default BadgePlugin\n","const stripTagsRegex = /(<([^>]+)>)/gi\n\n// Removes any thing that looks like an HTML tag from the supplied string\nexport const stripTags = (text = '') => String(text).replace(stripTagsRegex, '')\n\n// Generate a domProps object for either innerHTML, textContent or nothing\nexport const htmlOrText = (innerHTML, textContent) => {\n  return innerHTML ? { innerHTML } : textContent ? { textContent } : {}\n}\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { htmlOrText } from '../../utils/html'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nexport const props = {\n  ...linkPropsFactory(),\n  text: {\n    type: String,\n    default: null\n  },\n  html: {\n    type: String,\n    default: null\n  },\n  ariaCurrent: {\n    type: String,\n    default: 'location'\n  }\n}\n\n// @vue/component\nexport const BBreadcrumbLink = /*#__PURE__*/ Vue.extend({\n  name: 'BBreadcrumbLink',\n  functional: true,\n  props,\n  render(h, { props: suppliedProps, data, children }) {\n    const tag = suppliedProps.active ? 'span' : BLink\n\n    const componentData = { props: pluckProps(props, suppliedProps) }\n    if (suppliedProps.active) {\n      componentData.attrs = { 'aria-current': suppliedProps.ariaCurrent }\n    }\n\n    if (!children) {\n      componentData.domProps = htmlOrText(suppliedProps.html, suppliedProps.text)\n    }\n\n    return h(tag, mergeData(data, componentData), children)\n  }\n})\n\nexport default BBreadcrumbLink\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BBreadcrumbLink, props } from './breadcrumb-link'\n\n// @vue/component\nexport const BBreadcrumbItem = /*#__PURE__*/ Vue.extend({\n  name: 'BBreadcrumbItem',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      'li',\n      mergeData(data, {\n        staticClass: 'breadcrumb-item',\n        class: { active: props.active }\n      }),\n      [h(BBreadcrumbLink, { props }, children)]\n    )\n  }\n})\n\nexport default BBreadcrumbItem\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport toString from '../../utils/to-string'\nimport { isArray, isObject } from '../../utils/inspect'\nimport { BBreadcrumbItem } from './breadcrumb-item'\n\nexport const props = {\n  items: {\n    type: Array,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BBreadcrumb = /*#__PURE__*/ Vue.extend({\n  name: 'BBreadcrumb',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    let childNodes = children\n    // Build child nodes from items if given.\n    if (isArray(props.items)) {\n      let activeDefined = false\n      childNodes = props.items.map((item, idx) => {\n        if (!isObject(item)) {\n          item = { text: toString(item) }\n        }\n        // Copy the value here so we can normalize it.\n        let active = item.active\n        if (active) {\n          activeDefined = true\n        }\n        if (!active && !activeDefined) {\n          // Auto-detect active by position in list.\n          active = idx + 1 === props.items.length\n        }\n\n        return h(BBreadcrumbItem, { props: { ...item, active } })\n      })\n    }\n\n    return h('ol', mergeData(data, { staticClass: 'breadcrumb' }), childNodes)\n  }\n})\n\nexport default BBreadcrumb\n","import { BBreadcrumb } from './breadcrumb'\nimport { BBreadcrumbItem } from './breadcrumb-item'\nimport { BBreadcrumbLink } from './breadcrumb-link'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst BreadcrumbPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BBreadcrumb, BBreadcrumbItem, BBreadcrumbLink }\n})\n\nexport { BreadcrumbPlugin, BBreadcrumb, BBreadcrumbItem, BBreadcrumbLink }\n\nexport default BreadcrumbPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { concat } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { addClass, removeClass } from '../../utils/dom'\nimport { isBoolean, isEvent, isFunction } from '../../utils/inspect'\nimport { keys } from '../../utils/object'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\n// --- Constants --\n\nconst NAME = 'BButton'\n\nconst btnProps = {\n  block: {\n    type: Boolean,\n    default: false\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  size: {\n    type: String,\n    default: null\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  type: {\n    type: String,\n    default: 'button'\n  },\n  tag: {\n    type: String,\n    default: 'button'\n  },\n  pill: {\n    type: Boolean,\n    default: false\n  },\n  squared: {\n    type: Boolean,\n    default: false\n  },\n  pressed: {\n    // tri-state prop: true, false or null\n    // => on, off, not a toggle\n    type: Boolean,\n    default: null\n  }\n}\n\nconst linkProps = linkPropsFactory()\ndelete linkProps.href.default\ndelete linkProps.to.default\nconst linkPropKeys = keys(linkProps)\n\nexport const props = { ...linkProps, ...btnProps }\n\n// --- Helper methods ---\n\n// Focus handler for toggle buttons.  Needs class of 'focus' when focused.\nconst handleFocus = evt => {\n  if (evt.type === 'focusin') {\n    addClass(evt.target, 'focus')\n  } else if (evt.type === 'focusout') {\n    removeClass(evt.target, 'focus')\n  }\n}\n\n// Is the requested button a link?\nconst isLink = props => {\n  // If tag prop is set to `a`, we use a b-link to get proper disabled handling\n  return Boolean(props.href || props.to || (props.tag && String(props.tag).toLowerCase() === 'a'))\n}\n\n// Is the button to be a toggle button?\nconst isToggle = props => isBoolean(props.pressed)\n\n// Is the button \"really\" a button?\nconst isButton = props => {\n  if (isLink(props)) {\n    return false\n  } else if (props.tag && String(props.tag).toLowerCase() !== 'button') {\n    return false\n  }\n  return true\n}\n\n// Is the requested tag not a button or link?\nconst isNonStandardTag = props => !isLink(props) && !isButton(props)\n\n// Compute required classes (non static classes)\nconst computeClass = props => [\n  `btn-${props.variant || getComponentConfig(NAME, 'variant')}`,\n  {\n    [`btn-${props.size}`]: Boolean(props.size),\n    'btn-block': props.block,\n    'rounded-pill': props.pill,\n    'rounded-0': props.squared && !props.pill,\n    disabled: props.disabled,\n    active: props.pressed\n  }\n]\n\n// Compute the link props to pass to b-link (if required)\nconst computeLinkProps = props => (isLink(props) ? pluckProps(linkPropKeys, props) : null)\n\n// Compute the attributes for a button\nconst computeAttrs = (props, data) => {\n  const button = isButton(props)\n  const link = isLink(props)\n  const toggle = isToggle(props)\n  const nonStdTag = isNonStandardTag(props)\n  const role = data.attrs && data.attrs['role'] ? data.attrs['role'] : null\n  let tabindex = data.attrs ? data.attrs['tabindex'] : null\n  if (nonStdTag) {\n    tabindex = '0'\n  }\n  return {\n    // Type only used for \"real\" buttons\n    type: button && !link ? props.type : null,\n    // Disabled only set on \"real\" buttons\n    disabled: button ? props.disabled : null,\n    // We add a role of button when the tag is not a link or button for ARIA.\n    // Don't bork any role provided in data.attrs when isLink or isButton\n    role: nonStdTag ? 'button' : role,\n    // We set the aria-disabled state for non-standard tags\n    'aria-disabled': nonStdTag ? String(props.disabled) : null,\n    // For toggles, we need to set the pressed state for ARIA\n    'aria-pressed': toggle ? String(props.pressed) : null,\n    // autocomplete off is needed in toggle mode to prevent some browsers from\n    // remembering the previous setting when using the back button.\n    autocomplete: toggle ? 'off' : null,\n    // Tab index is used when the component is not a button.\n    // Links are tabbable, but don't allow disabled, while non buttons or links\n    // are not tabbable, so we mimic that functionality by disabling tabbing\n    // when disabled, and adding a tabindex of '0' to non buttons or non links.\n    tabindex: props.disabled && !button ? '-1' : tabindex\n  }\n}\n\n// @vue/component\nexport const BButton = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, listeners, children }) {\n    const toggle = isToggle(props)\n    const link = isLink(props)\n    const on = {\n      click(evt) {\n        /* istanbul ignore if: blink/button disabled should handle this */\n        if (props.disabled && isEvent(evt)) {\n          evt.stopPropagation()\n          evt.preventDefault()\n        } else if (toggle && listeners && listeners['update:pressed']) {\n          // Send .sync updates to any \"pressed\" prop (if .sync listeners)\n          // Concat will normalize the value to an array\n          // without double wrapping an array value in an array.\n          concat(listeners['update:pressed']).forEach(fn => {\n            if (isFunction(fn)) {\n              fn(!props.pressed)\n            }\n          })\n        }\n      }\n    }\n\n    if (toggle) {\n      on.focusin = handleFocus\n      on.focusout = handleFocus\n    }\n\n    const componentData = {\n      staticClass: 'btn',\n      class: computeClass(props),\n      props: computeLinkProps(props),\n      attrs: computeAttrs(props, data),\n      on\n    }\n\n    return h(link ? BLink : props.tag, mergeData(data, componentData), children)\n  }\n})\n\nexport default BButton\n","import { BButton } from './button'\nimport { BButtonClose } from './button-close'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ButtonPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BButton,\n    BBtn: BButton,\n    BButtonClose,\n    BBtnClose: BButtonClose\n  }\n})\n\nexport { ButtonPlugin, BButton, BButtonClose }\n\nexport default ButtonPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  vertical: {\n    type: Boolean,\n    default: false\n  },\n  size: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  ariaRole: {\n    type: String,\n    default: 'group'\n  }\n}\n\n// @vue/component\nexport const BButtonGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BButtonGroup',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          'btn-group': !props.vertical,\n          'btn-group-vertical': props.vertical,\n          [`btn-group-${props.size}`]: Boolean(props.size)\n        },\n        attrs: { role: props.ariaRole }\n      }),\n      children\n    )\n  }\n})\n\nexport default BButtonGroup\n","import { BButtonGroup } from './button-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ButtonGroupPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BButtonGroup,\n    BBtnGroup: BButtonGroup\n  }\n})\n\nexport { ButtonGroupPlugin, BButtonGroup }\n\nexport default ButtonGroupPlugin\n","/*\n * Key Codes (events)\n */\n\nconst KEY_CODES = {\n  SPACE: 32,\n  ENTER: 13,\n  ESC: 27,\n  LEFT: 37,\n  UP: 38,\n  RIGHT: 39,\n  DOWN: 40,\n  PAGEUP: 33,\n  PAGEDOWN: 34,\n  HOME: 36,\n  END: 35,\n  TAB: 9,\n  SHIFT: 16,\n  CTRL: 17,\n  BACKSPACE: 8,\n  ALT: 18,\n  PAUSE: 19,\n  BREAK: 19,\n  INSERT: 45,\n  INS: 45,\n  DELETE: 46\n}\n\nexport default KEY_CODES\n","import Vue from '../../utils/vue'\nimport { isVisible, selectAll } from '../../utils/dom'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport KeyCodes from '../../utils/key-codes'\n\nconst ITEM_SELECTOR = [\n  '.btn:not(.disabled):not([disabled]):not(.dropdown-item)',\n  '.form-control:not(.disabled):not([disabled])',\n  'select:not(.disabled):not([disabled])',\n  'input[type=\"checkbox\"]:not(.disabled)',\n  'input[type=\"radio\"]:not(.disabled)'\n].join(',')\n\n// @vue/component\nexport const BButtonToolbar = /*#__PURE__*/ Vue.extend({\n  name: 'BButtonToolbar',\n  mixins: [normalizeSlotMixin],\n  props: {\n    justify: {\n      type: Boolean,\n      default: false\n    },\n    keyNav: {\n      type: Boolean,\n      default: false\n    }\n  },\n  mounted() {\n    if (this.keyNav) {\n      // Pre-set the tabindexes if the markup does not include tabindex=\"-1\" on the toolbar items\n      this.getItems()\n    }\n  },\n  methods: {\n    onFocusin(evt) {\n      if (evt.target === this.$el) {\n        evt.preventDefault()\n        evt.stopPropagation()\n        this.focusFirst(evt)\n      }\n    },\n    stop(evt) {\n      evt.preventDefault()\n      evt.stopPropagation()\n    },\n    onKeydown(evt) {\n      if (!this.keyNav) {\n        /* istanbul ignore next: should never happen */\n        return\n      }\n      const key = evt.keyCode\n      const shift = evt.shiftKey\n      if (key === KeyCodes.UP || key === KeyCodes.LEFT) {\n        this.stop(evt)\n        shift ? this.focusFirst(evt) : this.focusPrev(evt)\n      } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT) {\n        this.stop(evt)\n        shift ? this.focusLast(evt) : this.focusNext(evt)\n      }\n    },\n    setItemFocus(item) {\n      item && item.focus && item.focus()\n    },\n    focusFirst(evt) {\n      const items = this.getItems()\n      this.setItemFocus(items[0])\n    },\n    focusPrev(evt) {\n      let items = this.getItems()\n      const index = items.indexOf(evt.target)\n      if (index > -1) {\n        items = items.slice(0, index).reverse()\n        this.setItemFocus(items[0])\n      }\n    },\n    focusNext(evt) {\n      let items = this.getItems()\n      const index = items.indexOf(evt.target)\n      if (index > -1) {\n        items = items.slice(index + 1)\n        this.setItemFocus(items[0])\n      }\n    },\n    focusLast(evt) {\n      const items = this.getItems().reverse()\n      this.setItemFocus(items[0])\n    },\n    getItems() {\n      const items = selectAll(ITEM_SELECTOR, this.$el)\n      items.forEach(item => {\n        // Ensure tabfocus is -1 on any new elements\n        item.tabIndex = -1\n      })\n      return items.filter(el => isVisible(el))\n    }\n  },\n  render(h) {\n    return h(\n      'div',\n      {\n        staticClass: 'btn-toolbar',\n        class: { 'justify-content-between': this.justify },\n        attrs: {\n          role: 'toolbar',\n          tabindex: this.keyNav ? '0' : null\n        },\n        on: this.keyNav\n          ? {\n              focusin: this.onFocusin,\n              keydown: this.onKeydown\n            }\n          : {}\n      },\n      [this.normalizeSlot('default')]\n    )\n  }\n})\n\nexport default BButtonToolbar\n","import { BButtonToolbar } from './button-toolbar'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ButtonToolbarPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BButtonToolbar,\n    BBtnToolbar: BButtonToolbar\n  }\n})\n\nexport { ButtonToolbarPlugin, BButtonToolbar }\n\nexport default ButtonToolbarPlugin\n","import { isString } from './inspect'\n\n/**\n * Transform the first character to uppercase\n * @param {string} str\n */\nconst upperFirst = str => {\n  if (!isString(str)) {\n    str = String(str)\n  }\n  str = str.trim()\n  return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport default upperFirst\n","import upperFirst from './upper-first'\n\n/**\n * @param {string} prefix\n * @param {string} value\n */\nconst prefixPropName = (prefix, value) => prefix + upperFirst(value)\n\nexport default prefixPropName\n","/**\n * @param {string} str\n */\nconst lowerFirst = str => {\n  str = String(str)\n  return str.charAt(0).toLowerCase() + str.slice(1)\n}\n\nexport default lowerFirst\n","import lowerFirst from './lower-first'\n\n/**\n * @param {string} prefix\n * @param {string} value\n */\nconst unprefixPropName = (prefix, value) => lowerFirst(value.replace(prefix, ''))\n\nexport default unprefixPropName\n","import identity from './identity'\nimport { isArray, isObject } from './inspect'\n\n/**\n * Copies props from one array/object to a new array/object. Prop values\n * are also cloned as new references to prevent possible mutation of original\n * prop object values. Optionally accepts a function to transform the prop name.\n *\n * @param {[]|{}} props\n * @param {Function} transformFn\n */\nconst copyProps = (props, transformFn = identity) => {\n  if (isArray(props)) {\n    return props.map(transformFn)\n  }\n  // Props as an object.\n  const copied = {}\n\n  for (const prop in props) {\n    /* istanbul ignore else */\n    // eslint-disable-next-line no-prototype-builtins\n    if (props.hasOwnProperty(prop)) {\n      // If the prop value is an object, do a shallow clone to prevent\n      // potential mutations to the original object.\n      copied[transformFn(prop)] = isObject(props[prop]) ? { ...props[prop] } : props[prop]\n    }\n  }\n\n  return copied\n}\n\nexport default copyProps\n","// @vue/component\nexport default {\n  props: {\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    bgVariant: {\n      type: String,\n      default: null\n    },\n    borderVariant: {\n      type: String,\n      default: null\n    },\n    textVariant: {\n      type: String,\n      default: null\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  title: {\n    type: String,\n    default: ''\n  },\n  titleTag: {\n    type: String,\n    default: 'h4'\n  }\n}\n\n// @vue/component\nexport const BCardTitle = /*#__PURE__*/ Vue.extend({\n  name: 'BCardTitle',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.titleTag,\n      mergeData(data, {\n        staticClass: 'card-title'\n      }),\n      children || props.title\n    )\n  }\n})\n\nexport default BCardTitle\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\n\nconst NAME = 'BCardSubTitle'\n\nexport const props = {\n  subTitle: {\n    type: String,\n    default: ''\n  },\n  subTitleTag: {\n    type: String,\n    default: 'h6'\n  },\n  subTitleTextVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'subTitleTextVariant')\n  }\n}\n\n// @vue/component\nexport const BCardSubTitle = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.subTitleTag,\n      mergeData(data, {\n        staticClass: 'card-subtitle',\n        class: [props.subTitleTextVariant ? `text-${props.subTitleTextVariant}` : null]\n      }),\n      children || props.subTitle\n    )\n  }\n})\n\nexport default BCardSubTitle\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport pluckProps from '../../utils/pluck-props'\nimport cardMixin from '../../mixins/card-mixin'\nimport { BCardTitle, props as titleProps } from './card-title'\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'\n\nexport const props = {\n  // Import common card props and prefix them with `body-`\n  ...copyProps(cardMixin.props, prefixPropName.bind(null, 'body')),\n  bodyClass: {\n    type: [String, Object, Array],\n    default: null\n  },\n  ...titleProps,\n  ...subTitleProps,\n  overlay: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BCardBody = /*#__PURE__*/ Vue.extend({\n  name: 'BCardBody',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    let cardTitle = h()\n    let cardSubTitle = h()\n    const cardContent = children || [h()]\n\n    if (props.title) {\n      cardTitle = h(BCardTitle, { props: pluckProps(titleProps, props) })\n    }\n\n    if (props.subTitle) {\n      cardSubTitle = h(BCardSubTitle, {\n        props: pluckProps(subTitleProps, props),\n        class: ['mb-2']\n      })\n    }\n\n    return h(\n      props.bodyTag,\n      mergeData(data, {\n        staticClass: 'card-body',\n        class: [\n          {\n            'card-img-overlay': props.overlay,\n            [`bg-${props.bodyBgVariant}`]: Boolean(props.bodyBgVariant),\n            [`border-${props.bodyBorderVariant}`]: Boolean(props.bodyBorderVariant),\n            [`text-${props.bodyTextVariant}`]: Boolean(props.bodyTextVariant)\n          },\n          props.bodyClass || {}\n        ]\n      }),\n      [cardTitle, cardSubTitle, ...cardContent]\n    )\n  }\n})\n\nexport default BCardBody\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport { htmlOrText } from '../../utils/html'\nimport cardMixin from '../../mixins/card-mixin'\n\nexport const props = {\n  ...copyProps(cardMixin.props, prefixPropName.bind(null, 'header')),\n  header: {\n    type: String,\n    default: null\n  },\n  headerHtml: {\n    type: String,\n    default: null\n  },\n  headerClass: {\n    type: [String, Object, Array],\n    default: null\n  }\n}\n\n// @vue/component\nexport const BCardHeader = /*#__PURE__*/ Vue.extend({\n  name: 'BCardHeader',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.headerTag,\n      mergeData(data, {\n        staticClass: 'card-header',\n        class: [\n          props.headerClass,\n          {\n            [`bg-${props.headerBgVariant}`]: Boolean(props.headerBgVariant),\n            [`border-${props.headerBorderVariant}`]: Boolean(props.headerBorderVariant),\n            [`text-${props.headerTextVariant}`]: Boolean(props.headerTextVariant)\n          }\n        ]\n      }),\n      children || [h('div', { domProps: htmlOrText(props.headerHtml, props.header) })]\n    )\n  }\n})\n\nexport default BCardHeader\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport { htmlOrText } from '../../utils/html'\nimport cardMixin from '../../mixins/card-mixin'\n\nexport const props = {\n  ...copyProps(cardMixin.props, prefixPropName.bind(null, 'footer')),\n  footer: {\n    type: String,\n    default: null\n  },\n  footerHtml: {\n    type: String,\n    default: null\n  },\n  footerClass: {\n    type: [String, Object, Array],\n    default: null\n  }\n}\n\n// @vue/component\nexport const BCardFooter = /*#__PURE__*/ Vue.extend({\n  name: 'BCardFooter',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.footerTag,\n      mergeData(data, {\n        staticClass: 'card-footer',\n        class: [\n          props.footerClass,\n          {\n            [`bg-${props.footerBgVariant}`]: Boolean(props.footerBgVariant),\n            [`border-${props.footerBorderVariant}`]: Boolean(props.footerBorderVariant),\n            [`text-${props.footerTextVariant}`]: Boolean(props.footerTextVariant)\n          }\n        ]\n      }),\n      children || [h('div', { domProps: htmlOrText(props.footerHtml, props.footer) })]\n    )\n  }\n})\n\nexport default BCardFooter\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  src: {\n    type: String,\n    default: null,\n    required: true\n  },\n  alt: {\n    type: String,\n    default: null\n  },\n  top: {\n    type: Boolean,\n    default: false\n  },\n  bottom: {\n    type: Boolean,\n    default: false\n  },\n  left: {\n    type: Boolean,\n    default: false\n  },\n  start: {\n    type: Boolean,\n    default: false\n    // alias of 'left'\n  },\n  right: {\n    type: Boolean,\n    default: false\n  },\n  end: {\n    type: Boolean,\n    default: false\n    // alias of 'right'\n  },\n  height: {\n    type: String,\n    default: null\n  },\n  width: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BCardImg = /*#__PURE__*/ Vue.extend({\n  name: 'BCardImg',\n  functional: true,\n  props,\n  render(h, { props, data }) {\n    let baseClass = 'card-img'\n    if (props.top) {\n      baseClass += '-top'\n    } else if (props.right || props.end) {\n      baseClass += '-right'\n    } else if (props.bottom) {\n      baseClass += '-bottom'\n    } else if (props.left || props.start) {\n      baseClass += '-left'\n    }\n\n    return h(\n      'img',\n      mergeData(data, {\n        class: [baseClass],\n        attrs: {\n          src: props.src,\n          alt: props.alt,\n          height: props.height,\n          width: props.width\n        }\n      })\n    )\n  }\n})\n\nexport default BCardImg\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport unPrefixPropName from '../../utils/unprefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport pluckProps from '../../utils/pluck-props'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\nimport cardMixin from '../../mixins/card-mixin'\nimport { BCardBody, props as bodyProps } from './card-body'\nimport { BCardHeader, props as headerProps } from './card-header'\nimport { BCardFooter, props as footerProps } from './card-footer'\nimport { BCardImg, props as imgProps } from './card-img'\n\nconst cardImgProps = copyProps(imgProps, prefixPropName.bind(null, 'img'))\ncardImgProps.imgSrc.required = false\n\nexport const props = {\n  ...bodyProps,\n  ...headerProps,\n  ...footerProps,\n  ...cardImgProps,\n  ...copyProps(cardMixin.props),\n  align: {\n    type: String,\n    default: null\n  },\n  noBody: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BCard = /*#__PURE__*/ Vue.extend({\n  name: 'BCard',\n  functional: true,\n  props,\n  render(h, { props, data, slots, scopedSlots }) {\n    const $slots = slots()\n    // Vue < 2.6.x may return undefined for scopedSlots\n    const $scopedSlots = scopedSlots || {}\n\n    // Create placeholder elements for each section\n    let imgFirst = h()\n    let header = h()\n    let content = h()\n    let footer = h()\n    let imgLast = h()\n\n    if (props.imgSrc) {\n      const img = h(BCardImg, {\n        props: pluckProps(cardImgProps, props, unPrefixPropName.bind(null, 'img'))\n      })\n      if (props.imgBottom) {\n        imgLast = img\n      } else {\n        imgFirst = img\n      }\n    }\n\n    if (props.header || hasNormalizedSlot('header', $scopedSlots, $slots)) {\n      header = h(\n        BCardHeader,\n        { props: pluckProps(headerProps, props) },\n        normalizeSlot('header', {}, $scopedSlots, $slots)\n      )\n    }\n\n    content = normalizeSlot('default', {}, $scopedSlots, $slots) || []\n    if (!props.noBody) {\n      // Wrap content in card-body\n      content = [h(BCardBody, { props: pluckProps(bodyProps, props) }, [...content])]\n    }\n\n    if (props.footer || hasNormalizedSlot('footer', $scopedSlots, $slots)) {\n      footer = h(\n        BCardFooter,\n        {\n          props: pluckProps(footerProps, props)\n        },\n        normalizeSlot('footer', {}, $scopedSlots, $slots)\n      )\n    }\n\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'card',\n        class: {\n          'flex-row': props.imgLeft || props.imgStart,\n          'flex-row-reverse':\n            (props.imgRight || props.imgEnd) && !(props.imgLeft || props.imgStart),\n          [`text-${props.align}`]: Boolean(props.align),\n          [`bg-${props.bgVariant}`]: Boolean(props.bgVariant),\n          [`border-${props.borderVariant}`]: Boolean(props.borderVariant),\n          [`text-${props.textVariant}`]: Boolean(props.textVariant)\n        }\n      }),\n      [imgFirst, header, ...content, footer, imgLast]\n    )\n  }\n})\n\nexport default BCard\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { isString } from '../../utils/inspect'\n\n// --- Constants --\n\nconst NAME = 'BImg'\n\n// Blank image with fill template\nconst BLANK_TEMPLATE =\n  '<svg width=\"%{w}\" height=\"%{h}\" ' +\n  'xmlns=\"http://www.w3.org/2000/svg\" ' +\n  'viewBox=\"0 0 %{w} %{h}\" preserveAspectRatio=\"none\">' +\n  '<rect width=\"100%\" height=\"100%\" style=\"fill:%{f};\"></rect>' +\n  '</svg>'\n\nexport const props = {\n  src: {\n    type: String,\n    default: null\n  },\n  alt: {\n    type: String,\n    default: null\n  },\n  width: {\n    type: [Number, String],\n    default: null\n  },\n  height: {\n    type: [Number, String],\n    default: null\n  },\n  block: {\n    type: Boolean,\n    default: false\n  },\n  fluid: {\n    type: Boolean,\n    default: false\n  },\n  fluidGrow: {\n    // Gives fluid images class `w-100` to make them grow to fit container\n    type: Boolean,\n    default: false\n  },\n  rounded: {\n    // rounded can be:\n    //   false: no rounding of corners\n    //   true: slightly rounded corners\n    //   'top': top corners rounded\n    //   'right': right corners rounded\n    //   'bottom': bottom corners rounded\n    //   'left': left corners rounded\n    //   'circle': circle/oval\n    //   '0': force rounding off\n    type: [Boolean, String],\n    default: false\n  },\n  thumbnail: {\n    type: Boolean,\n    default: false\n  },\n  left: {\n    type: Boolean,\n    default: false\n  },\n  right: {\n    type: Boolean,\n    default: false\n  },\n  center: {\n    type: Boolean,\n    default: false\n  },\n  blank: {\n    type: Boolean,\n    default: false\n  },\n  blankColor: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'blankColor')\n  }\n}\n\n// --- Helper methods ---\n\nconst makeBlankImgSrc = (width, height, color) => {\n  const src = encodeURIComponent(\n    BLANK_TEMPLATE.replace('%{w}', String(width))\n      .replace('%{h}', String(height))\n      .replace('%{f}', color)\n  )\n  return `data:image/svg+xml;charset=UTF-8,${src}`\n}\n\n// @vue/component\nexport const BImg = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data }) {\n    let src = props.src\n    let width = parseInt(props.width, 10) ? parseInt(props.width, 10) : null\n    let height = parseInt(props.height, 10) ? parseInt(props.height, 10) : null\n    let align = null\n    let block = props.block\n    if (props.blank) {\n      if (!height && Boolean(width)) {\n        height = width\n      } else if (!width && Boolean(height)) {\n        width = height\n      }\n      if (!width && !height) {\n        width = 1\n        height = 1\n      }\n      // Make a blank SVG image\n      src = makeBlankImgSrc(width, height, props.blankColor || 'transparent')\n    }\n    if (props.left) {\n      align = 'float-left'\n    } else if (props.right) {\n      align = 'float-right'\n    } else if (props.center) {\n      align = 'mx-auto'\n      block = true\n    }\n    return h(\n      'img',\n      mergeData(data, {\n        attrs: {\n          src: src,\n          alt: props.alt,\n          width: width ? String(width) : null,\n          height: height ? String(height) : null\n        },\n        class: {\n          'img-thumbnail': props.thumbnail,\n          'img-fluid': props.fluid || props.fluidGrow,\n          'w-100': props.fluidGrow,\n          rounded: props.rounded === '' || props.rounded === true,\n          [`rounded-${props.rounded}`]: isString(props.rounded) && props.rounded !== '',\n          [align]: Boolean(align),\n          'd-block': block\n        }\n      })\n    )\n  }\n})\n\nexport default BImg\n","import Vue from '../../utils/vue'\nimport { BImg } from './img'\nimport { getComponentConfig } from '../../utils/config'\nimport { getBCR, eventOn, eventOff } from '../../utils/dom'\nimport { hasIntersectionObserverSupport } from '../../utils/env'\n\nconst NAME = 'BImgLazy'\n\nconst THROTTLE = 100\nconst EVENT_OPTIONS = { passive: true, capture: false }\n\nexport const props = {\n  src: {\n    type: String,\n    default: null,\n    required: true\n  },\n  alt: {\n    type: String,\n    default: null\n  },\n  width: {\n    type: [Number, String],\n    default: null\n  },\n  height: {\n    type: [Number, String],\n    default: null\n  },\n  blankSrc: {\n    // If null, a blank image is generated\n    type: String,\n    default: null\n  },\n  blankColor: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'blankColor')\n  },\n  blankWidth: {\n    type: [Number, String],\n    default: null\n  },\n  blankHeight: {\n    type: [Number, String],\n    default: null\n  },\n  show: {\n    type: Boolean,\n    default: false\n  },\n  fluid: {\n    type: Boolean,\n    default: false\n  },\n  fluidGrow: {\n    type: Boolean,\n    default: false\n  },\n  block: {\n    type: Boolean,\n    default: false\n  },\n  thumbnail: {\n    type: Boolean,\n    default: false\n  },\n  rounded: {\n    type: [Boolean, String],\n    default: false\n  },\n  left: {\n    type: Boolean,\n    default: false\n  },\n  right: {\n    type: Boolean,\n    default: false\n  },\n  center: {\n    type: Boolean,\n    default: false\n  },\n  offset: {\n    type: [Number, String],\n    default: 360\n  },\n  throttle: {\n    type: [Number, String],\n    default: THROTTLE\n  }\n}\n\n// @vue/component\nexport const BImgLazy = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  props,\n  data() {\n    return {\n      isShown: false,\n      scrollTimeout: null,\n      observer: null\n    }\n  },\n  computed: {\n    computedSrc() {\n      return !this.blankSrc || this.isShown ? this.src : this.blankSrc\n    },\n    computedBlank() {\n      return !(this.isShown || this.blankSrc)\n    },\n    computedWidth() {\n      return this.isShown ? this.width : this.blankWidth || this.width\n    },\n    computedHeight() {\n      return this.isShown ? this.height : this.blankHeight || this.height\n    }\n  },\n  watch: {\n    show(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.isShown = newVal\n        if (!newVal) {\n          // Make sure listeners are re-enabled if img is force set to blank\n          this.setListeners(true)\n        }\n      }\n    },\n    isShown(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        // Update synched show prop\n        this.$emit('update:show', newVal)\n      }\n    }\n  },\n  created() {\n    this.isShown = this.show\n  },\n  mounted() {\n    if (this.isShown) {\n      this.setListeners(false)\n    } else {\n      this.setListeners(true)\n    }\n  },\n  activated() /* istanbul ignore next */ {\n    if (!this.isShown) {\n      this.setListeners(true)\n    }\n  },\n  deactivated() /* istanbul ignore next */ {\n    this.setListeners(false)\n  },\n  beforeDestroy() {\n    this.setListeners(false)\n  },\n  methods: {\n    setListeners(on) {\n      if (this.scrollTimeout) {\n        clearTimeout(this.scrollTimeout)\n        this.scrollTimeout = null\n      }\n      /* istanbul ignore next: JSDOM doen't support IntersectionObserver */\n      if (this.observer) {\n        this.observer.unobserve(this.$el)\n        this.observer.disconnect()\n        this.observer = null\n      }\n      const winEvts = ['scroll', 'resize', 'orientationchange']\n      winEvts.forEach(evt => eventOff(window, evt, this.onScroll, EVENT_OPTIONS))\n      eventOff(this.$el, 'load', this.checkView, EVENT_OPTIONS)\n      eventOff(document, 'transitionend', this.onScroll, EVENT_OPTIONS)\n      if (on) {\n        /* istanbul ignore if: JSDOM doen't support IntersectionObserver */\n        if (hasIntersectionObserverSupport) {\n          this.observer = new IntersectionObserver(this.doShow, {\n            root: null, // viewport\n            rootMargin: `${parseInt(this.offset, 10) || 0}px`,\n            threshold: 0 // percent intersection\n          })\n          this.observer.observe(this.$el)\n        } else {\n          // Fallback to scroll/etc events\n          winEvts.forEach(evt => eventOn(window, evt, this.onScroll, EVENT_OPTIONS))\n          eventOn(this.$el, 'load', this.checkView, EVENT_OPTIONS)\n          eventOn(document, 'transitionend', this.onScroll, EVENT_OPTIONS)\n        }\n      }\n    },\n    doShow(entries) {\n      if (entries && (entries[0].isIntersecting || entries[0].intersectionRatio > 0.0)) {\n        this.isShown = true\n        this.setListeners(false)\n      }\n    },\n    checkView() {\n      // check bounding box + offset to see if we should show\n      /* istanbul ignore next: should rarely occur */\n      if (this.isShown) {\n        this.setListeners(false)\n        return\n      }\n      const offset = parseInt(this.offset, 10) || 0\n      const docElement = document.documentElement\n      const view = {\n        l: 0 - offset,\n        t: 0 - offset,\n        b: docElement.clientHeight + offset,\n        r: docElement.clientWidth + offset\n      }\n      // JSDOM Doesn't support BCR, but we fake it in the tests\n      const box = getBCR(this.$el)\n      if (box.right >= view.l && box.bottom >= view.t && box.left <= view.r && box.top <= view.b) {\n        // image is in view (or about to be in view)\n        this.doShow([{ isIntersecting: true }])\n      }\n    },\n    onScroll() {\n      /* istanbul ignore if: should rarely occur */\n      if (this.isShown) {\n        this.setListeners(false)\n      } else {\n        clearTimeout(this.scrollTimeout)\n        this.scrollTimeout = setTimeout(this.checkView, parseInt(this.throttle, 10) || THROTTLE)\n      }\n    }\n  },\n  render(h) {\n    return h(BImg, {\n      props: {\n        // Computed value props\n        src: this.computedSrc,\n        blank: this.computedBlank,\n        width: this.computedWidth,\n        height: this.computedHeight,\n        // Passthough props\n        alt: this.alt,\n        blankColor: this.blankColor,\n        fluid: this.fluid,\n        fluidGrow: this.fluidGrow,\n        block: this.block,\n        thumbnail: this.thumbnail,\n        rounded: this.rounded,\n        left: this.left,\n        right: this.right,\n        center: this.center\n      }\n    })\n  }\n})\n\nexport default BImgLazy\n","import Vue from '../../utils/vue'\nimport { omit } from '../../utils/object'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BImgLazy, props as imgLazyProps } from '../image/img-lazy'\n\n// Copy of `<b-img-lazy>` props, and remove conflicting/non-applicable props\n// The `omit()` util creates a new object, so we can just pass the original props\nconst lazyProps = omit(imgLazyProps, [\n  'left',\n  'right',\n  'center',\n  'block',\n  'rounded',\n  'thumbnail',\n  'fluid',\n  'fluidGrow'\n])\n\nexport const props = {\n  ...lazyProps,\n  top: {\n    type: Boolean,\n    default: false\n  },\n  bottom: {\n    type: Boolean,\n    default: false\n  },\n  left: {\n    type: Boolean,\n    default: false\n  },\n  start: {\n    type: Boolean,\n    default: false\n    // alias of 'left'\n  },\n  right: {\n    type: Boolean,\n    default: false\n  },\n  end: {\n    type: Boolean,\n    default: false\n    // alias of 'right'\n  }\n}\n\n// @vue/component\nexport const BCardImgLazy = /*#__PURE__*/ Vue.extend({\n  name: 'BCardImgLazy',\n  functional: true,\n  props,\n  render(h, { props, data }) {\n    let baseClass = 'card-img'\n    if (props.top) {\n      baseClass += '-top'\n    } else if (props.right || props.end) {\n      baseClass += '-right'\n    } else if (props.bottom) {\n      baseClass += '-bottom'\n    } else if (props.left || props.start) {\n      baseClass += '-left'\n    }\n\n    // False out the left/center/right props before passing to b-img-lazy\n    const lazyProps = { ...props, left: false, right: false, center: false }\n    return h(\n      BImgLazy,\n      mergeData(data, {\n        class: [baseClass],\n        props: lazyProps\n      })\n    )\n  }\n})\n\nexport default BCardImgLazy\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  textTag: {\n    type: String,\n    default: 'p'\n  }\n}\n\n// @vue/component\nexport const BCardText = /*#__PURE__*/ Vue.extend({\n  name: 'BCardText',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(props.textTag, mergeData(data, { staticClass: 'card-text' }), children)\n  }\n})\n\nexport default BCardText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  deck: {\n    type: Boolean,\n    default: false\n  },\n  columns: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BCardGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BCardGroup',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    let baseClass = 'card-group'\n    if (props.deck) {\n      baseClass = 'card-deck'\n    } else if (props.columns) {\n      baseClass = 'card-columns'\n    }\n\n    return h(props.tag, mergeData(data, { class: baseClass }), children)\n  }\n})\n\nexport default BCardGroup\n","import { BCard } from './card'\nimport { BCardHeader } from './card-header'\nimport { BCardBody } from './card-body'\nimport { BCardTitle } from './card-title'\nimport { BCardSubTitle } from './card-sub-title'\nimport { BCardFooter } from './card-footer'\nimport { BCardImg } from './card-img'\nimport { BCardImgLazy } from './card-img-lazy'\nimport { BCardText } from './card-text'\nimport { BCardGroup } from './card-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst CardPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BCard,\n    BCardHeader,\n    BCardBody,\n    BCardTitle,\n    BCardSubTitle,\n    BCardFooter,\n    BCardImg,\n    BCardImgLazy,\n    BCardText,\n    BCardGroup\n  }\n})\n\nexport {\n  CardPlugin,\n  BCard,\n  BCardHeader,\n  BCardBody,\n  BCardTitle,\n  BCardSubTitle,\n  BCardFooter,\n  BCardImg,\n  BCardImgLazy,\n  BCardText,\n  BCardGroup\n}\n\nexport default CardPlugin\n","const noop = () => {}\n\nexport default noop\n","import { MutationObs, isElement } from './dom'\nimport { warnNoMutationObserverSupport } from './warn'\n\n/**\n * Observe a DOM element changes, falls back to eventListener mode\n * @param {Element} el The DOM element to observe\n * @param {Function} callback callback to be called on change\n * @param {object} [opts={childList: true, subtree: true}] observe options\n * @see http://stackoverflow.com/questions/3219758\n */\nconst observeDom = (el, callback, opts) => /* istanbul ignore next: difficult to test in JSDOM */ {\n  // Handle cases where we might be passed a Vue instance\n  el = el ? el.$el || el : null\n\n  // Early exit when we have no element\n  /* istanbul ignore next: difficult to test in JSDOM */\n  if (!isElement(el)) {\n    return null\n  }\n\n  // Exit and throw a warning when `MutationObserver` isn't available\n  if (warnNoMutationObserverSupport('observeDom')) {\n    return null\n  }\n\n  // Define a new observer\n  const obs = new MutationObs(mutations => {\n    let changed = false\n\n    // A mutation can contain several change records, so we loop\n    // through them to see what has changed\n    // We break out of the loop early if any \"significant\" change\n    // has been detected\n    for (let i = 0; i < mutations.length && !changed; i++) {\n      // The mutation record\n      const mutation = mutations[i]\n      // Mutation type\n      const type = mutation.type\n      // DOM node (could be any DOM node type - HTMLElement, Text, comment, etc.)\n      const target = mutation.target\n\n      // Detect whether a change happened based on type and target\n      if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\n        // We ignore nodes that are not TEXT (i.e. comments, etc)\n        // as they don't change layout\n        changed = true\n      } else if (type === 'attributes') {\n        changed = true\n      } else if (\n        type === 'childList' &&\n        (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)\n      ) {\n        // This includes HTMLElement and text nodes being\n        // added/removed/re-arranged\n        changed = true\n      }\n    }\n\n    // We only call the callback if a change that could affect\n    // layout/size truely happened\n    if (changed) {\n      callback()\n    }\n  })\n\n  // Have the observer observe foo for changes in children, etc\n  obs.observe(el, { childList: true, subtree: true, ...opts })\n\n  // We return a reference to the observer so that `obs.disconnect()`\n  // can be called if necessary\n  // To reduce overhead when the root element is hidden\n  return obs\n}\n\nexport default observeDom\n","/*\n * SSR Safe Client Side ID attribute generation\n * id's can only be generated client side, after mount.\n * this._uid is not synched between server and client.\n */\n\n// @vue/component\nexport default {\n  props: {\n    id: {\n      type: String,\n      default: null\n    }\n  },\n  data() {\n    return {\n      localId_: null\n    }\n  },\n  computed: {\n    safeId() {\n      // Computed property that returns a dynamic function for creating the ID.\n      // Reacts to changes in both .id and .localId_ And regens a new function\n      const id = this.id || this.localId_\n\n      // We return a function that accepts an optional suffix string\n      // So this computed prop looks and works like a method!!!\n      // But benefits from Vue's Computed prop caching\n      const fn = suffix => {\n        if (!id) {\n          return null\n        }\n        suffix = String(suffix || '').replace(/\\s+/g, '_')\n        return suffix ? id + '_' + suffix : id\n      }\n      return fn\n    }\n  },\n  mounted() {\n    // mounted only occurs client side\n    this.$nextTick(() => {\n      // Update dom with auto ID after dom loaded to prevent\n      // SSR hydration errors.\n      this.localId_ = `__BVID__${this._uid}`\n    })\n  }\n}\n","import Vue from '../../utils/vue'\nimport KeyCodes from '../../utils/key-codes'\nimport noop from '../../utils/noop'\nimport observeDom from '../../utils/observe-dom'\nimport { getComponentConfig } from '../../utils/config'\nimport {\n  selectAll,\n  reflow,\n  addClass,\n  removeClass,\n  setAttr,\n  eventOn,\n  eventOff\n} from '../../utils/dom'\nimport { isBrowser, hasTouchSupport, hasPointerEventSupport } from '../../utils/env'\nimport { isUndefined } from '../../utils/inspect'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\nconst NAME = 'BCarousel'\n\n// Slide directional classes\nconst DIRECTION = {\n  next: {\n    dirClass: 'carousel-item-left',\n    overlayClass: 'carousel-item-next'\n  },\n  prev: {\n    dirClass: 'carousel-item-right',\n    overlayClass: 'carousel-item-prev'\n  }\n}\n\n// Fallback Transition duration (with a little buffer) in ms\nconst TRANS_DURATION = 600 + 50\n\n// Time for mouse compat events to fire after touch\nconst TOUCH_EVENT_COMPAT_WAIT = 500\n\n// Number of pixels to consider touch move a swipe\nconst SWIPE_THRESHOLD = 40\n\n// PointerEvent pointer types\nconst PointerType = {\n  TOUCH: 'touch',\n  PEN: 'pen'\n}\n\n// Transition Event names\nconst TransitionEndEvents = {\n  WebkitTransition: 'webkitTransitionEnd',\n  MozTransition: 'transitionend',\n  OTransition: 'otransitionend oTransitionEnd',\n  transition: 'transitionend'\n}\n\nconst EventOptions = { passive: true, capture: false }\n\n// Return the browser specific transitionEnd event name\nconst getTransitionEndEvent = el => {\n  for (const name in TransitionEndEvents) {\n    if (!isUndefined(el.style[name])) {\n      return TransitionEndEvents[name]\n    }\n  }\n  // Fallback\n  /* istanbul ignore next */\n  return null\n}\n\n// @vue/component\nexport const BCarousel = /*#__PURE__*/ Vue.extend({\n  name: 'BCarousel',\n  mixins: [idMixin, normalizeSlotMixin],\n  provide() {\n    return { bvCarousel: this }\n  },\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props: {\n    labelPrev: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'labelPrev')\n    },\n    labelNext: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'labelNext')\n    },\n    labelGotoSlide: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'labelGotoSlide')\n    },\n    labelIndicators: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'labelIndicators')\n    },\n    interval: {\n      type: Number,\n      default: 5000\n    },\n    indicators: {\n      type: Boolean,\n      default: false\n    },\n    controls: {\n      type: Boolean,\n      default: false\n    },\n    noAnimation: {\n      // Disable slide/fade animation\n      type: Boolean,\n      default: false\n    },\n    fade: {\n      // Enable cross-fade animation instead of slide animation\n      type: Boolean,\n      default: false\n    },\n    noTouch: {\n      // Sniffed by carousel-slide\n      type: Boolean,\n      default: false\n    },\n    noHoverPause: {\n      // Disable pause on hover\n      type: Boolean,\n      default: false\n    },\n    imgWidth: {\n      // Sniffed by carousel-slide\n      type: [Number, String]\n      // default: undefined\n    },\n    imgHeight: {\n      // Sniffed by carousel-slide\n      type: [Number, String]\n      // default: undefined\n    },\n    background: {\n      type: String\n      // default: undefined\n    },\n    value: {\n      type: Number,\n      default: 0\n    }\n  },\n  data() {\n    return {\n      index: this.value || 0,\n      isSliding: false,\n      transitionEndEvent: null,\n      slides: [],\n      direction: null,\n      isPaused: !(parseInt(this.interval, 10) > 0),\n      // Touch event handling values\n      touchStartX: 0,\n      touchDeltaX: 0\n    }\n  },\n  watch: {\n    value(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.setSlide(newVal)\n      }\n    },\n    interval(newVal, oldVal) {\n      if (newVal === oldVal) {\n        /* istanbul ignore next */\n        return\n      }\n      if (!newVal) {\n        // Pausing slide show\n        this.pause(false)\n      } else {\n        // Restarting or Changing interval\n        this.pause(true)\n        this.start(false)\n      }\n    },\n    isPaused(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.$emit(newVal ? 'paused' : 'unpaused')\n      }\n    },\n    index(to, from) {\n      if (to === from || this.isSliding) {\n        /* istanbul ignore next */\n        return\n      }\n      this.doSlide(to, from)\n    }\n  },\n  created() {\n    // Create private non-reactive props\n    this._intervalId = null\n    this._animationTimeout = null\n    this._touchTimeout = null\n    // Set initial paused state\n    this.isPaused = !(parseInt(this.interval, 10) > 0)\n  },\n  mounted() {\n    // Cache current browser transitionend event name\n    this.transitionEndEvent = getTransitionEndEvent(this.$el) || null\n    // Get all slides\n    this.updateSlides()\n    // Observe child changes so we can update slide list\n    observeDom(this.$refs.inner, this.updateSlides.bind(this), {\n      subtree: false,\n      childList: true,\n      attributes: true,\n      attributeFilter: ['id']\n    })\n  },\n  beforeDestroy() {\n    clearTimeout(this._animationTimeout)\n    clearTimeout(this._touchTimeout)\n    clearInterval(this._intervalId)\n    this._intervalId = null\n    this._animationTimeout = null\n    this._touchTimeout = null\n  },\n  methods: {\n    // Set slide\n    setSlide(slide, direction = null) {\n      // Don't animate when page is not visible\n      /* istanbul ignore if: difficult to test */\n      if (isBrowser && document.visibilityState && document.hidden) {\n        return\n      }\n      const len = this.slides.length\n      // Don't do anything if nothing to slide to\n      if (len === 0) {\n        return\n      }\n      // Don't change slide while transitioning, wait until transition is done\n      if (this.isSliding) {\n        // Schedule slide after sliding complete\n        this.$once('sliding-end', () => this.setSlide(slide, direction))\n        return\n      }\n      this.direction = direction\n      // Make sure we have an integer (you never know!)\n      slide = Math.floor(slide)\n      // Set new slide index. Wrap around if necessary\n      this.index = slide >= len ? 0 : slide >= 0 ? slide : len - 1\n    },\n    // Previous slide\n    prev() {\n      this.setSlide(this.index - 1, 'prev')\n    },\n    // Next slide\n    next() {\n      this.setSlide(this.index + 1, 'next')\n    },\n    // Pause auto rotation\n    pause(evt) {\n      if (!evt) {\n        this.isPaused = true\n      }\n      if (this._intervalId) {\n        clearInterval(this._intervalId)\n        this._intervalId = null\n      }\n    },\n    // Start auto rotate slides\n    start(evt) {\n      if (!evt) {\n        this.isPaused = false\n      }\n      /* istanbul ignore next: most likely will never happen, but just in case */\n      if (this._intervalId) {\n        clearInterval(this._intervalId)\n        this._intervalId = null\n      }\n      // Don't start if no interval, or less than 2 slides\n      if (this.interval && this.slides.length > 1) {\n        this._intervalId = setInterval(this.next, Math.max(1000, this.interval))\n      }\n    },\n    // Restart auto rotate slides when focus/hover leaves the carousel\n    restart(evt) /* istanbul ignore next: difficult to test */ {\n      if (!this.$el.contains(document.activeElement)) {\n        this.start()\n      }\n    },\n    doSlide(to, from) {\n      const isCycling = Boolean(this.interval)\n      // Determine sliding direction\n      const direction = this.calcDirection(this.direction, from, to)\n      const overlayClass = direction.overlayClass\n      const dirClass = direction.dirClass\n      // Determine current and next slides\n      const currentSlide = this.slides[from]\n      const nextSlide = this.slides[to]\n      // Don't do anything if there aren't any slides to slide to\n      if (!currentSlide || !nextSlide) {\n        /* istanbul ignore next */\n        return\n      }\n      // Start animating\n      this.isSliding = true\n      if (isCycling) {\n        this.pause(false)\n      }\n      this.$emit('sliding-start', to)\n      // Update v-model\n      this.$emit('input', this.index)\n      if (this.noAnimation) {\n        addClass(nextSlide, 'active')\n        removeClass(currentSlide, 'active')\n        this.isSliding = false\n        // Notify ourselves that we're done sliding (slid)\n        this.$nextTick(() => this.$emit('sliding-end', to))\n      } else {\n        addClass(nextSlide, overlayClass)\n        // Trigger a reflow of next slide\n        reflow(nextSlide)\n        addClass(currentSlide, dirClass)\n        addClass(nextSlide, dirClass)\n        // Transition End handler\n        let called = false\n        /* istanbul ignore next: difficult to test */\n        const onceTransEnd = evt => {\n          if (called) {\n            return\n          }\n          called = true\n          /* istanbul ignore if: transition events cant be tested in JSDOM */\n          if (this.transitionEndEvent) {\n            const events = this.transitionEndEvent.split(/\\s+/)\n            events.forEach(evt => eventOff(currentSlide, evt, onceTransEnd, EventOptions))\n          }\n          this._animationTimeout = null\n          removeClass(nextSlide, dirClass)\n          removeClass(nextSlide, overlayClass)\n          addClass(nextSlide, 'active')\n          removeClass(currentSlide, 'active')\n          removeClass(currentSlide, dirClass)\n          removeClass(currentSlide, overlayClass)\n          setAttr(currentSlide, 'aria-current', 'false')\n          setAttr(nextSlide, 'aria-current', 'true')\n          setAttr(currentSlide, 'aria-hidden', 'true')\n          setAttr(nextSlide, 'aria-hidden', 'false')\n          this.isSliding = false\n          this.direction = null\n          // Notify ourselves that we're done sliding (slid)\n          this.$nextTick(() => this.$emit('sliding-end', to))\n        }\n        // Set up transitionend handler\n        /* istanbul ignore if: transition events cant be tested in JSDOM */\n        if (this.transitionEndEvent) {\n          const events = this.transitionEndEvent.split(/\\s+/)\n          events.forEach(event => eventOn(currentSlide, event, onceTransEnd, EventOptions))\n        }\n        // Fallback to setTimeout()\n        this._animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION)\n      }\n      if (isCycling) {\n        this.start(false)\n      }\n    },\n    // Update slide list\n    updateSlides() {\n      this.pause(true)\n      // Get all slides as DOM elements\n      this.slides = selectAll('.carousel-item', this.$refs.inner)\n      const numSlides = this.slides.length\n      // Keep slide number in range\n      const index = Math.max(0, Math.min(Math.floor(this.index), numSlides - 1))\n      this.slides.forEach((slide, idx) => {\n        const n = idx + 1\n        if (idx === index) {\n          addClass(slide, 'active')\n          setAttr(slide, 'aria-current', 'true')\n        } else {\n          removeClass(slide, 'active')\n          setAttr(slide, 'aria-current', 'false')\n        }\n        setAttr(slide, 'aria-posinset', String(n))\n        setAttr(slide, 'aria-setsize', String(numSlides))\n      })\n      // Set slide as active\n      this.setSlide(index)\n      this.start(this.isPaused)\n    },\n    calcDirection(direction = null, curIndex = 0, nextIndex = 0) {\n      if (!direction) {\n        return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev\n      }\n      return DIRECTION[direction]\n    },\n    handleClick(evt, fn) {\n      const keyCode = evt.keyCode\n      if (evt.type === 'click' || keyCode === KeyCodes.SPACE || keyCode === KeyCodes.ENTER) {\n        evt.preventDefault()\n        evt.stopPropagation()\n        fn()\n      }\n    },\n    handleSwipe() /* istanbul ignore next: JSDOM doesn't support touch events */ {\n      const absDeltaX = Math.abs(this.touchDeltaX)\n      if (absDeltaX <= SWIPE_THRESHOLD) {\n        return\n      }\n      const direction = absDeltaX / this.touchDeltaX\n      if (direction > 0) {\n        // Swipe left\n        this.prev()\n      } else if (direction < 0) {\n        // Swipe right\n        this.next()\n      }\n    },\n    touchStart(evt) /* istanbul ignore next: JSDOM doesn't support touch events */ {\n      if (hasPointerEventSupport && PointerType[evt.pointerType.toUpperCase()]) {\n        this.touchStartX = evt.clientX\n      } else if (!hasPointerEventSupport) {\n        this.touchStartX = evt.touches[0].clientX\n      }\n    },\n    touchMove(evt) /* istanbul ignore next: JSDOM doesn't support touch events */ {\n      // Ensure swiping with one touch and not pinching\n      if (evt.touches && evt.touches.length > 1) {\n        this.touchDeltaX = 0\n      } else {\n        this.touchDeltaX = evt.touches[0].clientX - this.touchStartX\n      }\n    },\n    touchEnd(evt) /* istanbul ignore next: JSDOM doesn't support touch events */ {\n      if (hasPointerEventSupport && PointerType[evt.pointerType.toUpperCase()]) {\n        this.touchDeltaX = evt.clientX - this.touchStartX\n      }\n      this.handleSwipe()\n      // If it's a touch-enabled device, mouseenter/leave are fired as\n      // part of the mouse compatibility events on first tap - the carousel\n      // would stop cycling until user tapped out of it;\n      // here, we listen for touchend, explicitly pause the carousel\n      // (as if it's the second time we tap on it, mouseenter compat event\n      // is NOT fired) and after a timeout (to allow for mouse compatibility\n      // events to fire) we explicitly restart cycling\n      this.pause(false)\n      if (this._touchTimeout) {\n        clearTimeout(this._touchTimeout)\n      }\n      this._touchTimeout = setTimeout(\n        this.start,\n        TOUCH_EVENT_COMPAT_WAIT + Math.max(1000, this.interval)\n      )\n    }\n  },\n  render(h) {\n    // Wrapper for slides\n    const inner = h(\n      'div',\n      {\n        ref: 'inner',\n        class: ['carousel-inner'],\n        attrs: {\n          id: this.safeId('__BV_inner_'),\n          role: 'list'\n        }\n      },\n      [this.normalizeSlot('default')]\n    )\n\n    // Prev and next controls\n    let controls = h()\n    if (this.controls) {\n      controls = [\n        h(\n          'a',\n          {\n            class: ['carousel-control-prev'],\n            attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },\n            on: {\n              click: evt => {\n                this.handleClick(evt, this.prev)\n              },\n              keydown: evt => {\n                this.handleClick(evt, this.prev)\n              }\n            }\n          },\n          [\n            h('span', { class: ['carousel-control-prev-icon'], attrs: { 'aria-hidden': 'true' } }),\n            h('span', { class: ['sr-only'] }, [this.labelPrev])\n          ]\n        ),\n        h(\n          'a',\n          {\n            class: ['carousel-control-next'],\n            attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },\n            on: {\n              click: evt => {\n                this.handleClick(evt, this.next)\n              },\n              keydown: evt => {\n                this.handleClick(evt, this.next)\n              }\n            }\n          },\n          [\n            h('span', { class: ['carousel-control-next-icon'], attrs: { 'aria-hidden': 'true' } }),\n            h('span', { class: ['sr-only'] }, [this.labelNext])\n          ]\n        )\n      ]\n    }\n\n    // Indicators\n    const indicators = h(\n      'ol',\n      {\n        class: ['carousel-indicators'],\n        directives: [\n          { name: 'show', rawName: 'v-show', value: this.indicators, expression: 'indicators' }\n        ],\n        attrs: {\n          id: this.safeId('__BV_indicators_'),\n          'aria-hidden': this.indicators ? 'false' : 'true',\n          'aria-label': this.labelIndicators,\n          'aria-owns': this.safeId('__BV_inner_')\n        }\n      },\n      this.slides.map((slide, n) => {\n        return h('li', {\n          key: `slide_${n}`,\n          class: { active: n === this.index },\n          attrs: {\n            role: 'button',\n            id: this.safeId(`__BV_indicator_${n + 1}_`),\n            tabindex: this.indicators ? '0' : '-1',\n            'aria-current': n === this.index ? 'true' : 'false',\n            'aria-label': `${this.labelGotoSlide} ${n + 1}`,\n            'aria-describedby': this.slides[n].id || null,\n            'aria-controls': this.safeId('__BV_inner_')\n          },\n          on: {\n            click: evt => {\n              this.handleClick(evt, () => {\n                this.setSlide(n)\n              })\n            },\n            keydown: evt => {\n              this.handleClick(evt, () => {\n                this.setSlide(n)\n              })\n            }\n          }\n        })\n      })\n    )\n\n    const on = {\n      mouseenter: this.noHoverPause ? noop : this.pause,\n      mouseleave: this.noHoverPause ? noop : this.restart,\n      focusin: this.pause,\n      focusout: this.restart,\n      keydown: evt => {\n        if (/input|textarea/i.test(evt.target.tagName)) {\n          /* istanbul ignore next */\n          return\n        }\n        const keyCode = evt.keyCode\n        if (keyCode === KeyCodes.LEFT || keyCode === KeyCodes.RIGHT) {\n          evt.preventDefault()\n          evt.stopPropagation()\n          this[keyCode === KeyCodes.LEFT ? 'prev' : 'next']()\n        }\n      }\n    }\n    // Touch support event handlers for environment\n    if (!this.noTouch && hasTouchSupport) {\n      // Attach appropriate listeners (prepend event name with '&' for passive mode)\n      /* istanbul ignore next: JSDOM doesn't support touch events */\n      if (hasPointerEventSupport) {\n        on['&pointerdown'] = this.touchStart\n        on['&pointerup'] = this.touchEnd\n      } else {\n        on['&touchstart'] = this.touchStart\n        on['&touchmove'] = this.touchMove\n        on['&touchend'] = this.touchEnd\n      }\n    }\n\n    // Return the carousel\n    return h(\n      'div',\n      {\n        staticClass: 'carousel',\n        class: {\n          slide: !this.noAnimation,\n          'carousel-fade': !this.noAnimation && this.fade,\n          'pointer-event': !this.noTouch && hasTouchSupport && hasPointerEventSupport\n        },\n        style: { background: this.background },\n        attrs: {\n          role: 'region',\n          id: this.safeId(),\n          'aria-busy': this.isSliding ? 'true' : 'false'\n        },\n        on\n      },\n      [inner, controls, indicators]\n    )\n  }\n})\n\nexport default BCarousel\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { hasTouchSupport } from '../../utils/env'\nimport { htmlOrText } from '../../utils/html'\nimport { BImg } from '../image/img'\n\nexport const props = {\n  imgSrc: {\n    type: String\n    // default: undefined\n  },\n  imgAlt: {\n    type: String\n    // default: undefined\n  },\n  imgWidth: {\n    type: [Number, String]\n    // default: undefined\n  },\n  imgHeight: {\n    type: [Number, String]\n    // default: undefined\n  },\n  imgBlank: {\n    type: Boolean,\n    default: false\n  },\n  imgBlankColor: {\n    type: String,\n    default: 'transparent'\n  },\n  contentVisibleUp: {\n    type: String\n  },\n  contentTag: {\n    type: String,\n    default: 'div'\n  },\n  caption: {\n    type: String\n  },\n  captionHtml: {\n    type: String\n  },\n  captionTag: {\n    type: String,\n    default: 'h3'\n  },\n  text: {\n    type: String\n  },\n  textHtml: {\n    type: String\n  },\n  textTag: {\n    type: String,\n    default: 'p'\n  },\n  background: {\n    type: String\n  }\n}\n\n// @vue/component\nexport const BCarouselSlide = /*#__PURE__*/ Vue.extend({\n  name: 'BCarouselSlide',\n  mixins: [idMixin, normalizeSlotMixin],\n  inject: {\n    bvCarousel: {\n      default() {\n        return {\n          // Explicitly disable touch if not a child of carousel\n          noTouch: true\n        }\n      }\n    }\n  },\n  props,\n  computed: {\n    contentClasses() {\n      return [\n        this.contentVisibleUp ? 'd-none' : '',\n        this.contentVisibleUp ? `d-${this.contentVisibleUp}-block` : ''\n      ]\n    },\n    computedWidth() {\n      // Use local width, or try parent width\n      return this.imgWidth || this.bvCarousel.imgWidth || null\n    },\n    computedHeight() {\n      // Use local height, or try parent height\n      return this.imgHeight || this.bvCarousel.imgHeight || null\n    }\n  },\n  render(h) {\n    const noDrag = !this.bvCarousel.noTouch && hasTouchSupport\n\n    let img = this.normalizeSlot('img')\n    if (!img && (this.imgSrc || this.imgBlank)) {\n      img = h(BImg, {\n        props: {\n          fluidGrow: true,\n          block: true,\n          src: this.imgSrc,\n          blank: this.imgBlank,\n          blankColor: this.imgBlankColor,\n          width: this.computedWidth,\n          height: this.computedHeight,\n          alt: this.imgAlt\n        },\n        // Touch support event handler\n        on: noDrag\n          ? {\n              dragstart: e => {\n                /* istanbul ignore next: difficult to test in JSDOM */\n                e.preventDefault()\n              }\n            }\n          : {}\n      })\n    }\n    if (!img) {\n      img = h()\n    }\n\n    let content = h()\n\n    const contentChildren = [\n      this.caption || this.captionHtml\n        ? h(this.captionTag, {\n            domProps: htmlOrText(this.captionHtml, this.caption)\n          })\n        : false,\n      this.text || this.textHtml\n        ? h(this.textTag, { domProps: htmlOrText(this.textHtml, this.text) })\n        : false,\n      this.normalizeSlot('default') || false\n    ]\n\n    if (contentChildren.some(Boolean)) {\n      content = h(\n        this.contentTag,\n        { staticClass: 'carousel-caption', class: this.contentClasses },\n        contentChildren.map(i => i || h())\n      )\n    }\n\n    return h(\n      'div',\n      {\n        staticClass: 'carousel-item',\n        style: { background: this.background || this.bvCarousel.background || null },\n        attrs: { id: this.safeId(), role: 'listitem' }\n      },\n      [img, content]\n    )\n  }\n})\n\nexport default BCarouselSlide\n","import { BCarousel } from './carousel'\nimport { BCarouselSlide } from './carousel-slide'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst CarouselPlugin = /*#__PURE*/ pluginFactory({\n  components: {\n    BCarousel,\n    BCarouselSlide\n  }\n})\n\nexport { CarouselPlugin, BCarousel, BCarouselSlide }\n\nexport default CarouselPlugin\n","/**\n * Issue #569: collapse::toggle::state triggered too many times\n * @link https://github.com/bootstrap-vue/bootstrap-vue/issues/569\n */\n\n// @vue/component\nexport default {\n  methods: {\n    /**\n     * Safely register event listeners on the root Vue node.\n     * While Vue automatically removes listeners for individual components,\n     * when a component registers a listener on root and is destroyed,\n     * this orphans a callback because the node is gone,\n     * but the root does not clear the callback.\n     *\n     * When registering a $root listener, it also registers a listener on\n     * the component's `beforeDestroy` hook to automatically remove the\n     * event listener from the $root instance.\n     *\n     * @param {string} event\n     * @param {function} callback\n     * @chainable\n     */\n    listenOnRoot(event, callback) {\n      this.$root.$on(event, callback)\n      this.$on('hook:beforeDestroy', () => {\n        this.$root.$off(event, callback)\n      })\n      // Return this for easy chaining\n      return this\n    },\n\n    /**\n     * Safely register a $once event listener on the root Vue node.\n     * While Vue automatically removes listeners for individual components,\n     * when a component registers a listener on root and is destroyed,\n     * this orphans a callback because the node is gone,\n     * but the root does not clear the callback.\n     *\n     * When registering a $root listener, it also registers a listener on\n     * the component's `beforeDestroy` hook to automatically remove the\n     * event listener from the $root instance.\n     *\n     * @param {string} event\n     * @param {function} callback\n     * @chainable\n     */\n    listenOnRootOnce(event, callback) {\n      this.$root.$once(event, callback)\n      this.$on('hook:beforeDestroy', () => {\n        this.$root.$off(event, callback)\n      })\n      // Return this for easy chaining\n      return this\n    },\n\n    /**\n     * Convenience method for calling vm.$emit on vm.$root.\n     * @param {string} event\n     * @param {*} args\n     * @chainable\n     */\n    emitOnRoot(event, ...args) {\n      this.$root.$emit(event, ...args)\n      // Return this for easy chaining\n      return this\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { isBrowser } from '../../utils/env'\nimport {\n  addClass,\n  hasClass,\n  removeClass,\n  closest,\n  matches,\n  reflow,\n  getCS,\n  getBCR,\n  eventOn,\n  eventOff\n} from '../../utils/dom'\n\n// Events we emit on $root\nconst EVENT_STATE = 'bv::collapse::state'\nconst EVENT_ACCORDION = 'bv::collapse::accordion'\n// Private event we emit on `$root` to ensure the toggle state is\n// always synced. It gets emitted even if the state has not changed!\n// This event is NOT to be documented as people should not be using it\nconst EVENT_STATE_SYNC = 'bv::collapse::sync::state'\n// Events we listen to on `$root`\nconst EVENT_TOGGLE = 'bv::toggle::collapse'\nconst EVENT_STATE_REQUEST = 'bv::request::collapse::state'\n\n// Event listener options\nconst EventOptions = { passive: true, capture: false }\n\n// @vue/component\nexport const BCollapse = /*#__PURE__*/ Vue.extend({\n  name: 'BCollapse',\n  mixins: [listenOnRootMixin, normalizeSlotMixin],\n  model: {\n    prop: 'visible',\n    event: 'input'\n  },\n  props: {\n    id: {\n      type: String,\n      required: true\n    },\n    isNav: {\n      type: Boolean,\n      default: false\n    },\n    accordion: {\n      type: String,\n      default: null\n    },\n    visible: {\n      type: Boolean,\n      default: false\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    }\n  },\n  data() {\n    return {\n      show: this.visible,\n      transitioning: false\n    }\n  },\n  computed: {\n    classObject() {\n      return {\n        'navbar-collapse': this.isNav,\n        collapse: !this.transitioning,\n        show: this.show && !this.transitioning\n      }\n    }\n  },\n  watch: {\n    visible(newVal) {\n      if (newVal !== this.show) {\n        this.show = newVal\n      }\n    },\n    show(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.emitState()\n      }\n    }\n  },\n  created() {\n    this.show = this.visible\n  },\n  mounted() {\n    this.show = this.visible\n    // Listen for toggle events to open/close us\n    this.listenOnRoot(EVENT_TOGGLE, this.handleToggleEvt)\n    // Listen to other collapses for accordion events\n    this.listenOnRoot(EVENT_ACCORDION, this.handleAccordionEvt)\n    if (this.isNav) {\n      // Set up handlers\n      this.setWindowEvents(true)\n      this.handleResize()\n    }\n    this.$nextTick(() => {\n      this.emitState()\n    })\n    // Listen for \"Sync state\" requests from `v-b-toggle`\n    this.listenOnRoot(EVENT_STATE_REQUEST, id => {\n      if (id === this.id) {\n        this.$nextTick(this.emitSync)\n      }\n    })\n  },\n  updated() {\n    // Emit a private event every time this component updates to ensure\n    // the toggle button is in sync with the collapse's state\n    // It is emitted regardless if the visible state changes\n    this.emitSync()\n  },\n  deactivated() /* istanbul ignore next */ {\n    if (this.isNav) {\n      this.setWindowEvents(false)\n    }\n  },\n  activated() /* istanbul ignore next */ {\n    if (this.isNav) {\n      this.setWindowEvents(true)\n    }\n    this.emitSync()\n  },\n  beforeDestroy() {\n    // Trigger state emit if needed\n    this.show = false\n    if (this.isNav && isBrowser) {\n      this.setWindowEvents(false)\n    }\n  },\n  methods: {\n    setWindowEvents(on) {\n      const method = on ? eventOn : eventOff\n      method(window, 'resize', this.handleResize, EventOptions)\n      method(window, 'orientationchange', this.handleResize, EventOptions)\n    },\n    toggle() {\n      this.show = !this.show\n    },\n    onEnter(el) {\n      el.style.height = 0\n      reflow(el)\n      el.style.height = el.scrollHeight + 'px'\n      this.transitioning = true\n      // This should be moved out so we can add cancellable events\n      this.$emit('show')\n    },\n    onAfterEnter(el) {\n      el.style.height = null\n      this.transitioning = false\n      this.$emit('shown')\n    },\n    onLeave(el) {\n      el.style.height = 'auto'\n      el.style.display = 'block'\n      el.style.height = getBCR(el).height + 'px'\n      reflow(el)\n      this.transitioning = true\n      el.style.height = 0\n      // This should be moved out so we can add cancellable events\n      this.$emit('hide')\n    },\n    onAfterLeave(el) {\n      el.style.height = null\n      this.transitioning = false\n      this.$emit('hidden')\n    },\n    emitState() {\n      this.$emit('input', this.show)\n      // Let v-b-toggle know the state of this collapse\n      this.$root.$emit(EVENT_STATE, this.id, this.show)\n      if (this.accordion && this.show) {\n        // Tell the other collapses in this accordion to close\n        this.$root.$emit(EVENT_ACCORDION, this.id, this.accordion)\n      }\n    },\n    emitSync() {\n      // Emit a private event every time this component updates to ensure\n      // the toggle button is in sync with the collapse's state\n      // It is emitted regardless if the visible state changes\n      this.$root.$emit(EVENT_STATE_SYNC, this.id, this.show)\n    },\n    checkDisplayBlock() {\n      // Check to see if the collapse has `display: block !important;` set.\n      // We can't set `display: none;` directly on this.$el, as it would\n      // trigger a new transition to start (or cancel a current one).\n      const restore = hasClass(this.$el, 'show')\n      removeClass(this.$el, 'show')\n      const isBlock = getCS(this.$el).display === 'block'\n      restore && addClass(this.$el, 'show')\n      return isBlock\n    },\n    clickHandler(evt) {\n      // If we are in a nav/navbar, close the collapse when non-disabled link clicked\n      const el = evt.target\n      if (!this.isNav || !el || getCS(this.$el).display !== 'block') {\n        /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n        return\n      }\n      if (matches(el, '.nav-link,.dropdown-item') || closest('.nav-link,.dropdown-item', el)) {\n        if (!this.checkDisplayBlock()) {\n          // Only close the collapse if it is not forced to be 'display: block !important;'\n          this.show = false\n        }\n      }\n    },\n    handleToggleEvt(target) {\n      if (target !== this.id) {\n        return\n      }\n      this.toggle()\n    },\n    handleAccordionEvt(openedId, accordion) {\n      if (!this.accordion || accordion !== this.accordion) {\n        return\n      }\n      if (openedId === this.id) {\n        // Open this collapse if not shown\n        if (!this.show) {\n          this.toggle()\n        }\n      } else {\n        // Close this collapse if shown\n        if (this.show) {\n          this.toggle()\n        }\n      }\n    },\n    handleResize() {\n      // Handler for orientation/resize to set collapsed state in nav/navbar\n      this.show = getCS(this.$el).display === 'block'\n    }\n  },\n  render(h) {\n    const content = h(\n      this.tag,\n      {\n        class: this.classObject,\n        directives: [{ name: 'show', value: this.show }],\n        attrs: { id: this.id || null },\n        on: { click: this.clickHandler }\n      },\n      [this.normalizeSlot('default')]\n    )\n    return h(\n      'transition',\n      {\n        props: {\n          enterClass: '',\n          enterActiveClass: 'collapsing',\n          enterToClass: '',\n          leaveClass: '',\n          leaveActiveClass: 'collapsing',\n          leaveToClass: ''\n        },\n        on: {\n          enter: this.onEnter,\n          afterEnter: this.onAfterEnter,\n          leave: this.onLeave,\n          afterLeave: this.onAfterLeave\n        }\n      },\n      [content]\n    )\n  }\n})\n\nexport default BCollapse\n","import { keys } from './object'\nimport { isArray, isDate, isObject } from './inspect'\n\n// Assumes both a and b are arrays!\n// Handles when arrays are \"sparse\" (array.every(...) doesn't handle sparse)\nconst compareArrays = (a, b) => {\n  if (a.length !== b.length) {\n    return false\n  }\n  let equal = true\n  for (let i = 0; equal && i < a.length; i++) {\n    equal = looseEqual(a[i], b[i])\n  }\n  return equal\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n * Returns boolean true or false\n */\nconst looseEqual = (a, b) => {\n  if (a === b) {\n    return true\n  }\n  let aValidType = isDate(a)\n  let bValidType = isDate(b)\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? a.getTime() === b.getTime() : false\n  }\n  aValidType = isArray(a)\n  bValidType = isArray(b)\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? compareArrays(a, b) : false\n  }\n  aValidType = isObject(a)\n  bValidType = isObject(b)\n  if (aValidType || bValidType) {\n    /* istanbul ignore if: this if will probably never be called */\n    if (!aValidType || !bValidType) {\n      return false\n    }\n    const aKeysCount = keys(a).length\n    const bKeysCount = keys(b).length\n    if (aKeysCount !== bKeysCount) {\n      return false\n    }\n    for (const key in a) {\n      // eslint-disable-next-line no-prototype-builtins\n      const aHasKey = a.hasOwnProperty(key)\n      // eslint-disable-next-line no-prototype-builtins\n      const bHasKey = b.hasOwnProperty(key)\n      if ((aHasKey && !bHasKey) || (!aHasKey && bHasKey) || !looseEqual(a[key], b[key])) {\n        return false\n      }\n    }\n  }\n  return String(a) === String(b)\n}\n\nexport default looseEqual\n","import { keys } from './object'\nimport { eventOn, eventOff } from './dom'\n\nconst allListenTypes = { hover: true, click: true, focus: true }\n\nconst BVBoundListeners = '__BV_boundEventListeners__'\n\nconst getTargets = binding => {\n  const targets = keys(binding.modifiers || {}).filter(t => !allListenTypes[t])\n\n  if (binding.value) {\n    targets.push(binding.value)\n  }\n\n  return targets\n}\n\nconst bindTargets = (vnode, binding, listenTypes, fn) => {\n  const targets = getTargets(binding)\n\n  const listener = () => {\n    fn({ targets, vnode })\n  }\n\n  keys(allListenTypes).forEach(type => {\n    if (listenTypes[type] || binding.modifiers[type]) {\n      eventOn(vnode.elm, type, listener)\n      const boundListeners = vnode.elm[BVBoundListeners] || {}\n      boundListeners[type] = boundListeners[type] || []\n      boundListeners[type].push(listener)\n      vnode.elm[BVBoundListeners] = boundListeners\n    }\n  })\n\n  // Return the list of targets\n  return targets\n}\n\nconst unbindTargets = (vnode, binding, listenTypes) => {\n  keys(allListenTypes).forEach(type => {\n    if (listenTypes[type] || binding.modifiers[type]) {\n      const boundListeners = vnode.elm[BVBoundListeners] && vnode.elm[BVBoundListeners][type]\n      if (boundListeners) {\n        boundListeners.forEach(listener => eventOff(vnode.elm, type, listener))\n        delete vnode.elm[BVBoundListeners][type]\n      }\n    }\n  })\n}\n\nexport { bindTargets, unbindTargets, getTargets }\n\nexport default bindTargets\n","import looseEqual from '../../utils/loose-equal'\nimport { addClass, removeAttr, removeClass, setAttr } from '../../utils/dom'\nimport { isBrowser } from '../../utils/env'\nimport { bindTargets, getTargets, unbindTargets } from '../../utils/target'\n\n// Target listen types\nconst listenTypes = { click: true }\n\n// Property key for handler storage\nconst BV_TOGGLE = '__BV_toggle__'\nconst BV_TOGGLE_STATE = '__BV_toggle_STATE__'\nconst BV_TOGGLE_CONTROLS = '__BV_toggle_CONTROLS__'\nconst BV_TOGGLE_TARGETS = '__BV_toggle_TARGETS__'\n\n// Emitted control event for collapse (emitted to collapse)\nconst EVENT_TOGGLE = 'bv::toggle::collapse'\n\n// Listen to event for toggle state update (emitted by collapse)\nconst EVENT_STATE = 'bv::collapse::state'\n\n// Private event emitted on $root to ensure the toggle state is always synced.\n// Gets emitted even if the state of b-collapse has not changed.\n// This event is NOT to be documented as people should not be using it.\nconst EVENT_STATE_SYNC = 'bv::collapse::sync::state'\n// Private event we send to collapse to request state update sync event\nconst EVENT_STATE_REQUEST = 'bv::request::collapse::state'\n\n// Reset and remove a property from the provided element\nconst resetProp = (el, prop) => {\n  el[prop] = null\n  delete el[prop]\n}\n\n// Handle targets update\nconst handleTargets = ({ targets, vnode }) => {\n  targets.forEach(target => {\n    vnode.context.$root.$emit(EVENT_TOGGLE, target)\n  })\n}\n\n// Handle directive updates\n/* istanbul ignore next: not easy to test */\nconst handleUpdate = (el, binding, vnode) => {\n  if (!isBrowser) {\n    return\n  }\n\n  if (!looseEqual(getTargets(binding), el[BV_TOGGLE_TARGETS])) {\n    // Targets have changed, so update accordingly\n    unbindTargets(vnode, binding, listenTypes)\n    const targets = bindTargets(vnode, binding, listenTypes, handleTargets)\n    // Update targets array to element\n    el[BV_TOGGLE_TARGETS] = targets\n    // Add aria attributes to element\n    el[BV_TOGGLE_CONTROLS] = targets.join(' ')\n    // ensure aria-controls is up to date\n    setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS])\n    // Request a state update from targets so that we can ensure\n    // expanded state is correct\n    targets.forEach(target => {\n      vnode.context.$root.$emit(EVENT_STATE_REQUEST, target)\n    })\n  }\n\n  // Ensure the collapse class and aria-* attributes persist\n  // after element is updated (either by parent re-rendering\n  // or changes to this element or it's contents\n  if (el[BV_TOGGLE_STATE] === true) {\n    addClass(el, 'collapsed')\n    setAttr(el, 'aria-expanded', 'true')\n  } else if (el[BV_TOGGLE_STATE] === false) {\n    removeClass(el, 'collapsed')\n    setAttr(el, 'aria-expanded', 'false')\n  }\n  setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS])\n}\n\n/*\n * Export our directive\n */\nexport const VBToggle = {\n  bind(el, binding, vnode) {\n    const targets = bindTargets(vnode, binding, listenTypes, handleTargets)\n    if (isBrowser && vnode.context && targets.length > 0) {\n      // Add targets array to element\n      el[BV_TOGGLE_TARGETS] = targets\n      // Add aria attributes to element\n      el[BV_TOGGLE_CONTROLS] = targets.join(' ')\n      // State is initially collapsed until we receive a state event\n      el[BV_TOGGLE_STATE] = false\n      setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS])\n      setAttr(el, 'aria-expanded', 'false')\n      // If element is not a button, we add `role=\"button\"` for accessibility\n      if (el.tagName !== 'BUTTON') {\n        setAttr(el, 'role', 'button')\n      }\n\n      // Toggle state handler\n      const toggleDirectiveHandler = (id, state) => {\n        const targets = el[BV_TOGGLE_TARGETS] || []\n        if (targets.indexOf(id) !== -1) {\n          // Set aria-expanded state\n          setAttr(el, 'aria-expanded', state ? 'true' : 'false')\n          // Set/Clear 'collapsed' class state\n          el[BV_TOGGLE_STATE] = state\n          if (state) {\n            removeClass(el, 'collapsed')\n          } else {\n            addClass(el, 'collapsed')\n          }\n        }\n      }\n\n      // Store the toggle handler on the element\n      el[BV_TOGGLE] = toggleDirectiveHandler\n\n      // Listen for toggle state changes (public)\n      vnode.context.$root.$on(EVENT_STATE, el[BV_TOGGLE])\n      // Listen for toggle state sync (private)\n      vnode.context.$root.$on(EVENT_STATE_SYNC, el[BV_TOGGLE])\n    }\n  },\n  componentUpdated: handleUpdate,\n  updated: handleUpdate,\n  unbind(el, binding, vnode) /* istanbul ignore next */ {\n    unbindTargets(vnode, binding, listenTypes)\n    // Remove our $root listener\n    if (el[BV_TOGGLE]) {\n      vnode.context.$root.$off(EVENT_STATE, el[BV_TOGGLE])\n      vnode.context.$root.$off(EVENT_STATE_SYNC, el[BV_TOGGLE])\n    }\n    // Reset custom  props\n    resetProp(el, BV_TOGGLE)\n    resetProp(el, BV_TOGGLE_STATE)\n    resetProp(el, BV_TOGGLE_CONTROLS)\n    resetProp(el, BV_TOGGLE_TARGETS)\n    // Reset classes/attrs\n    removeClass(el, 'collapsed')\n    removeAttr(el, 'aria-expanded')\n    removeAttr(el, 'aria-controls')\n    removeAttr(el, 'role')\n  }\n}\n\nexport default VBToggle\n","import { BCollapse } from './collapse'\nimport { VBToggle } from '../../directives/toggle/toggle'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst CollapsePlugin = /*#__PURE__*/ pluginFactory({\n  components: { BCollapse },\n  directives: { VBToggle }\n})\n\nexport { CollapsePlugin, BCollapse }\n\nexport default CollapsePlugin\n","/**\n * SSR safe types\n */\n\nimport { hasWindowSupport } from './env'\n\nconst w = hasWindowSupport ? window : {}\n\nexport const HTMLElement = w.HTMLElement || Object\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.15.0\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop, 10);\n    var marginLeft = parseFloat(styles.marginLeft, 10);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var round = Math.round,\n      floor = Math.floor;\n\n  var noRound = function noRound(v) {\n    return v;\n  };\n\n  var referenceWidth = round(reference.width);\n  var popperWidth = round(popper.width);\n\n  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  var isVariation = data.placement.indexOf('-') !== -1;\n  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  var verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    // flips variation if popper content overflows boundaries\n    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n    var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  var transformProp = getSupportedPropertyName('transform');\n  var popperStyles = data.instance.popper.style; // assignment to help minification\n  var top = popperStyles.top,\n      left = popperStyles.left,\n      transform = popperStyles[transformProp];\n\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedules an update. It will run on the next UI update available.\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import { assign, defineProperty, defineProperties, readonlyDescriptor } from './object'\n\nclass BvEvent {\n  constructor(type, eventInit = {}) {\n    // Start by emulating native Event constructor\n    if (!type) {\n      /* istanbul ignore next */\n      throw new TypeError(\n        `Failed to construct '${this.constructor.name}'. 1 argument required, ${\n          arguments.length\n        } given.`\n      )\n    }\n\n    // Merge defaults first, the eventInit, and the type last\n    // so it can't be overwritten\n    assign(this, BvEvent.Defaults, this.constructor.Defaults, eventInit, { type })\n\n    // Freeze some props as readonly, but leave them enumerable\n    defineProperties(this, {\n      type: readonlyDescriptor(),\n      cancelable: readonlyDescriptor(),\n      nativeEvent: readonlyDescriptor(),\n      target: readonlyDescriptor(),\n      relatedTarget: readonlyDescriptor(),\n      vueTarget: readonlyDescriptor(),\n      componentId: readonlyDescriptor()\n    })\n\n    // Create a private variable using closure scoping\n    let defaultPrevented = false\n    // Recreate preventDefault method. One way setter\n    this.preventDefault = function preventDefault() {\n      if (this.cancelable) {\n        defaultPrevented = true\n      }\n    }\n\n    // Create `defaultPrevented` publicly accessible prop that\n    // can only be altered by the preventDefault method\n    defineProperty(this, 'defaultPrevented', {\n      enumerable: true,\n      get() {\n        return defaultPrevented\n      }\n    })\n  }\n\n  static get Defaults() {\n    return {\n      type: '',\n      cancelable: true,\n      nativeEvent: null,\n      target: null,\n      relatedTarget: null,\n      vueTarget: null,\n      componentId: null\n    }\n  }\n}\n\n// Named Exports\nexport { BvEvent }\n\n// Default Export\nexport default BvEvent\n","import { contains, eventOff, eventOn } from '../utils/dom'\n\n// @vue/component\nexport default {\n  data() {\n    return {\n      listenForClickOut: false\n    }\n  },\n  watch: {\n    listenForClickOut(newValue, oldValue) {\n      if (newValue !== oldValue) {\n        eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n        if (newValue) {\n          eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n        }\n      }\n    }\n  },\n  beforeCreate() {\n    // Declare non-reactive properties\n    this.clickOutElement = null\n    this.clickOutEventName = null\n  },\n  mounted() {\n    if (!this.clickOutElement) {\n      this.clickOutElement = document\n    }\n    if (!this.clickOutEventName) {\n      this.clickOutEventName = 'ontouchstart' in document.documentElement ? 'touchstart' : 'click'\n    }\n    if (this.listenForClickOut) {\n      eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n    }\n  },\n  beforeDestroy() /* istanbul ignore next */ {\n    eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n  },\n  methods: {\n    isClickOut(evt) {\n      return !contains(this.$el, evt.target)\n    },\n    _clickOutHandler(evt) {\n      if (this.clickOutHandler && this.isClickOut(evt)) {\n        this.clickOutHandler(evt)\n      }\n    }\n  }\n}\n","import { eventOff, eventOn } from '../utils/dom'\n\n// @vue/component\nexport default {\n  data() {\n    return {\n      listenForFocusIn: false\n    }\n  },\n  watch: {\n    listenForFocusIn(newValue, oldValue) {\n      if (newValue !== oldValue) {\n        eventOff(this.focusInElement, 'focusin', this._focusInHandler, false)\n        if (newValue) {\n          eventOn(this.focusInElement, 'focusin', this._focusInHandler, false)\n        }\n      }\n    }\n  },\n  beforeCreate() {\n    // Declare non-reactive properties\n    this.focusInElement = null\n  },\n  mounted() {\n    if (!this.focusInElement) {\n      this.focusInElement = document\n    }\n    if (this.listenForFocusIn) {\n      eventOn(this.focusInElement, 'focusin', this._focusInHandler, false)\n    }\n  },\n  beforeDestroy() /* istanbul ignore next */ {\n    eventOff(this.focusInElement, 'focusin', this._focusInHandler, false)\n  },\n  methods: {\n    _focusInHandler(evt) {\n      if (this.focusInHandler) {\n        this.focusInHandler(evt)\n      }\n    }\n  }\n}\n","import Popper from 'popper.js'\nimport BvEvent from '../utils/bv-event.class'\nimport KeyCodes from '../utils/key-codes'\nimport warn from '../utils/warn'\nimport { closest, contains, isVisible, requestAF, selectAll } from '../utils/dom'\nimport { isNull } from '../utils/inspect'\nimport clickOutMixin from './click-out'\nimport focusInMixin from './focus-in'\n\n// Return an array of visible items\nconst filterVisibles = els => (els || []).filter(isVisible)\n\n// Dropdown item CSS selectors\nconst Selector = {\n  FORM_CHILD: '.dropdown form',\n  ITEM_SELECTOR: ['.dropdown-item', '.b-dropdown-form']\n    .map(selector => `${selector}:not(.disabled):not([disabled])`)\n    .join(', ')\n}\n\n// Popper attachment positions\nconst AttachmentMap = {\n  // Dropup left align\n  TOP: 'top-start',\n  // Dropup right align\n  TOPEND: 'top-end',\n  // Dropdown left align\n  BOTTOM: 'bottom-start',\n  // Dropdown right align\n  BOTTOMEND: 'bottom-end',\n  // Dropright left align\n  RIGHT: 'right-start',\n  // Dropright right align\n  RIGHTEND: 'right-end',\n  // Dropleft left align\n  LEFT: 'left-start',\n  // Dropleft right align\n  LEFTEND: 'left-end'\n}\n\n// @vue/component\nexport default {\n  mixins: [clickOutMixin, focusInMixin],\n  provide() {\n    return {\n      bvDropdown: this\n    }\n  },\n  props: {\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    text: {\n      // Button label\n      type: String,\n      default: ''\n    },\n    html: {\n      // Button label\n      type: String\n    },\n    dropup: {\n      // place on top if possible\n      type: Boolean,\n      default: false\n    },\n    dropright: {\n      // place right if possible\n      type: Boolean,\n      default: false\n    },\n    dropleft: {\n      // place left if possible\n      type: Boolean,\n      default: false\n    },\n    right: {\n      // Right align menu (default is left align)\n      type: Boolean,\n      default: false\n    },\n    offset: {\n      // Number of pixels to offset menu, or a CSS unit value (i.e. 1px, 1rem, etc)\n      type: [Number, String],\n      default: 0\n    },\n    noFlip: {\n      // Disable auto-flipping of menu from bottom<=>top\n      type: Boolean,\n      default: false\n    },\n    lazy: {\n      // If true, only render menu contents when open\n      type: Boolean,\n      default: false\n    },\n    popperOpts: {\n      // type: Object,\n      default: () => {}\n    }\n  },\n  data() {\n    return {\n      visible: false,\n      inNavbar: null,\n      visibleChangePrevented: false\n    }\n  },\n  computed: {\n    toggler() {\n      const toggle = this.$refs.toggle\n      return toggle ? toggle.$el || toggle : null\n    },\n    directionClass() {\n      if (this.dropup) {\n        return 'dropup'\n      } else if (this.dropright) {\n        return 'dropright'\n      } else if (this.dropleft) {\n        return 'dropleft'\n      }\n      return ''\n    }\n  },\n  watch: {\n    visible(newValue, oldValue) {\n      if (this.visibleChangePrevented) {\n        this.visibleChangePrevented = false\n        return\n      }\n\n      if (newValue !== oldValue) {\n        const evtName = newValue ? 'show' : 'hide'\n        const bvEvt = new BvEvent(evtName, {\n          cancelable: true,\n          vueTarget: this,\n          target: this.$refs.menu,\n          relatedTarget: null\n        })\n        this.emitEvent(bvEvt)\n        if (bvEvt.defaultPrevented) {\n          // Reset value and exit if canceled\n          this.visibleChangePrevented = true\n          this.visible = oldValue\n          // Just in case a child element triggered this.hide(true)\n          this.$off('hidden', this.focusToggler)\n          return\n        }\n        if (evtName === 'show') {\n          this.showMenu()\n        } else {\n          this.hideMenu()\n        }\n      }\n    },\n    disabled(newValue, oldValue) {\n      if (newValue !== oldValue && newValue && this.visible) {\n        // Hide dropdown if disabled changes to true\n        this.visible = false\n      }\n    }\n  },\n  created() {\n    // Create non-reactive property\n    this._popper = null\n  },\n  deactivated() /* istanbul ignore next: not easy to test */ {\n    // In case we are inside a `<keep-alive>`\n    this.visible = false\n    this.whileOpenListen(false)\n    this.removePopper()\n  },\n  beforeDestroy() {\n    this.visible = false\n    this.whileOpenListen(false)\n    this.removePopper()\n  },\n  methods: {\n    // Event emitter\n    emitEvent(bvEvt) {\n      const type = bvEvt.type\n      this.$emit(type, bvEvt)\n      this.$root.$emit(`bv::dropdown::${type}`, bvEvt)\n    },\n    showMenu() {\n      if (this.disabled) {\n        /* istanbul ignore next */\n        return\n      }\n      // Ensure other menus are closed\n      this.$root.$emit('bv::dropdown::shown', this)\n\n      // Are we in a navbar ?\n      if (isNull(this.inNavbar) && this.isNav) {\n        // We should use an injection for this\n        /* istanbul ignore next */\n        this.inNavbar = Boolean(closest('.navbar', this.$el))\n      }\n\n      // Disable totally Popper.js for Dropdown in Navbar\n      if (!this.inNavbar) {\n        if (typeof Popper === 'undefined') {\n          /* istanbul ignore next */\n          warn('b-dropdown: Popper.js not found. Falling back to CSS positioning.')\n        } else {\n          // for dropup with alignment we use the parent element as popper container\n          let element = (this.dropup && this.right) || this.split ? this.$el : this.$refs.toggle\n          // Make sure we have a reference to an element, not a component!\n          element = element.$el || element\n          // Instantiate popper.js\n          this.createPopper(element)\n        }\n      }\n\n      this.whileOpenListen(true)\n\n      // Wrap in nextTick to ensure menu is fully rendered/shown\n      this.$nextTick(() => {\n        // Focus on the menu container on show\n        this.focusMenu()\n        // Emit the shown event\n        this.$emit('shown')\n      })\n    },\n    hideMenu() {\n      this.whileOpenListen(false)\n      this.$root.$emit('bv::dropdown::hidden', this)\n      this.$emit('hidden')\n      this.removePopper()\n    },\n    createPopper(element) {\n      this.removePopper()\n      this._popper = new Popper(element, this.$refs.menu, this.getPopperConfig())\n    },\n    removePopper() {\n      if (this._popper) {\n        // Ensure popper event listeners are removed cleanly\n        this._popper.destroy()\n      }\n      this._popper = null\n    },\n    getPopperConfig() {\n      let placement = AttachmentMap.BOTTOM\n      if (this.dropup) {\n        placement = this.right ? AttachmentMap.TOPEND : AttachmentMap.TOP\n      } else if (this.dropright) {\n        placement = AttachmentMap.RIGHT\n      } else if (this.dropleft) {\n        placement = AttachmentMap.LEFT\n      } else if (this.right) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      const popperConfig = {\n        placement,\n        modifiers: {\n          offset: { offset: this.offset || 0 },\n          flip: { enabled: !this.noFlip }\n        }\n      }\n      if (this.boundary) {\n        popperConfig.modifiers.preventOverflow = { boundariesElement: this.boundary }\n      }\n      return { ...popperConfig, ...(this.popperOpts || {}) }\n    },\n    whileOpenListen(open) {\n      // turn listeners on/off while open\n      if (open) {\n        // If another dropdown is opened\n        this.$root.$on('bv::dropdown::shown', this.rootCloseListener)\n        // Hide the dropdown when clicked outside\n        this.listenForClickOut = true\n        // Hide the dropdown when it loses focus\n        this.listenForFocusIn = true\n      } else {\n        this.$root.$off('bv::dropdown::shown', this.rootCloseListener)\n        this.listenForClickOut = false\n        this.listenForFocusIn = false\n      }\n    },\n    rootCloseListener(vm) {\n      if (vm !== this) {\n        this.visible = false\n      }\n    },\n    show() {\n      // Public method to show dropdown\n      if (this.disabled) {\n        return\n      }\n      // Wrap in a requestAnimationFrame to allow any previous\n      // click handling to occur first\n      requestAF(() => {\n        this.visible = true\n      })\n    },\n    hide(refocus = false) {\n      // Public method to hide dropdown\n      if (this.disabled) {\n        /* istanbul ignore next */\n        return\n      }\n      this.visible = false\n      if (refocus) {\n        // Child element is closing the dropdown on click\n        this.$once('hidden', this.focusToggler)\n      }\n    },\n    // Called only by a button that toggles the menu\n    toggle(evt) {\n      evt = evt || {}\n      const type = evt.type\n      const key = evt.keyCode\n      if (\n        type !== 'click' &&\n        !(\n          type === 'keydown' &&\n          (key === KeyCodes.ENTER || key === KeyCodes.SPACE || key === KeyCodes.DOWN)\n        )\n      ) {\n        // We only toggle on Click, Enter, Space, and Arrow Down\n        /* istanbul ignore next */\n        return\n      }\n      /* istanbul ignore next */\n      if (this.disabled) {\n        this.visible = false\n        return\n      }\n      this.$emit('toggle', evt)\n      evt.preventDefault()\n      evt.stopPropagation()\n      // Toggle visibility\n      if (this.visible) {\n        this.hide(true)\n      } else {\n        this.show()\n      }\n    },\n    // Called only in split button mode, for the split button\n    click(evt) {\n      /* istanbul ignore next */\n      if (this.disabled) {\n        this.visible = false\n        return\n      }\n      this.$emit('click', evt)\n    },\n    // Called from dropdown menu context\n    onKeydown(evt) {\n      const key = evt.keyCode\n      if (key === KeyCodes.ESC) {\n        // Close on ESC\n        this.onEsc(evt)\n      } else if (key === KeyCodes.DOWN) {\n        // Down Arrow\n        this.focusNext(evt, false)\n      } else if (key === KeyCodes.UP) {\n        // Up Arrow\n        this.focusNext(evt, true)\n      }\n    },\n    onEsc(evt) {\n      if (this.visible) {\n        this.visible = false\n        evt.preventDefault()\n        evt.stopPropagation()\n        // Return focus to original trigger button\n        this.$once('hidden', this.focusToggler)\n      }\n    },\n    // Document click out listener\n    clickOutHandler() {\n      if (this.visible) {\n        this.visible = false\n      }\n    },\n    // Document focusin listener\n    focusInHandler(evt) {\n      const target = evt.target\n      // If focus leaves dropdown, hide it\n      if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n        this.visible = false\n      }\n    },\n    // Keyboard nav\n    focusNext(evt, up) {\n      // Ignore key up/down on form elements\n      if (!this.visible || (evt && closest(Selector.FORM_CHILD, evt.target))) {\n        /* istanbul ignore next: should never happen */\n        return\n      }\n      evt.preventDefault()\n      evt.stopPropagation()\n      this.$nextTick(() => {\n        const items = this.getItems()\n        if (items.length < 1) {\n          /* istanbul ignore next: should never happen */\n          return\n        }\n        let index = items.indexOf(evt.target)\n        if (up && index > 0) {\n          index--\n        } else if (!up && index < items.length - 1) {\n          index++\n        }\n        if (index < 0) {\n          /* istanbul ignore next: should never happen */\n          index = 0\n        }\n        this.focusItem(index, items)\n      })\n    },\n    focusItem(idx, items) {\n      const el = items.find((el, i) => i === idx)\n      if (el && el.focus) {\n        el.focus()\n      }\n    },\n    getItems() {\n      // Get all items\n      return filterVisibles(selectAll(Selector.ITEM_SELECTOR, this.$refs.menu))\n    },\n    focusMenu() {\n      this.$refs.menu.focus && this.$refs.menu.focus()\n    },\n    focusToggler() {\n      this.$nextTick(() => {\n        const toggler = this.toggler\n        if (toggler && toggler.focus) {\n          toggler.focus()\n        }\n      })\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport { arrayIncludes } from '../../utils/array'\nimport { stripTags } from '../../utils/html'\nimport { getComponentConfig } from '../../utils/config'\nimport { HTMLElement } from '../../utils/safe-types'\nimport idMixin from '../../mixins/id'\nimport dropdownMixin from '../../mixins/dropdown'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BButton } from '../button/button'\n\nconst NAME = 'BDropdown'\n\nexport const props = {\n  toggleText: {\n    // This really should be toggleLabel\n    type: String,\n    default: () => getComponentConfig(NAME, 'toggleText')\n  },\n  size: {\n    type: String,\n    default: null\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  menuClass: {\n    type: [String, Array],\n    default: null\n  },\n  toggleTag: {\n    type: String,\n    default: 'button'\n  },\n  toggleClass: {\n    type: [String, Array],\n    default: null\n  },\n  noCaret: {\n    type: Boolean,\n    default: false\n  },\n  split: {\n    type: Boolean,\n    default: false\n  },\n  splitHref: {\n    type: String\n    // default: undefined\n  },\n  splitTo: {\n    type: [String, Object]\n    // default: undefined\n  },\n  splitVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'splitVariant')\n  },\n  splitButtonType: {\n    type: String,\n    default: 'button',\n    validator: value => arrayIncludes(['button', 'submit', 'reset'], value)\n  },\n  role: {\n    type: String,\n    default: 'menu'\n  },\n  boundary: {\n    // String: `scrollParent`, `window` or `viewport`\n    // HTMLElement: HTML Element reference\n    type: [String, HTMLElement],\n    default: 'scrollParent'\n  }\n}\n\n// @vue/component\nexport const BDropdown = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n  props,\n  computed: {\n    dropdownClasses() {\n      return [\n        this.directionClass,\n        {\n          show: this.visible,\n          // Position `static` is needed to allow menu to \"breakout\" of the scrollParent boundaries\n          // when boundary is anything other than `scrollParent`\n          // See https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n          'position-static': this.boundary !== 'scrollParent' || !this.boundary\n        }\n      ]\n    },\n    menuClasses() {\n      return [\n        this.menuClass,\n        {\n          'dropdown-menu-right': this.right,\n          show: this.visible\n        }\n      ]\n    },\n    toggleClasses() {\n      return [\n        this.toggleClass,\n        {\n          'dropdown-toggle-split': this.split,\n          'dropdown-toggle-no-caret': this.noCaret && !this.split\n        }\n      ]\n    }\n  },\n  render(h) {\n    let split = h()\n    const buttonContent =\n      this.normalizeSlot('button-content') ||\n      this.normalizeSlot('text') ||\n      this.html ||\n      stripTags(this.text)\n    if (this.split) {\n      const btnProps = {\n        disabled: this.disabled,\n        variant: this.splitVariant || this.variant,\n        size: this.size\n      }\n      // We add these as needed due to router-link issues with defined property with undefined/null values\n      if (this.splitTo) {\n        btnProps.to = this.splitTo\n      } else if (this.splitHref) {\n        btnProps.href = this.splitHref\n      } else if (this.splitButtonType) {\n        btnProps.type = this.splitButtonType\n      }\n      split = h(\n        BButton,\n        {\n          ref: 'button',\n          props: btnProps,\n          attrs: {\n            id: this.safeId('_BV_button_')\n          },\n          on: {\n            click: this.click\n          }\n        },\n        [buttonContent]\n      )\n    }\n    const toggle = h(\n      BButton,\n      {\n        ref: 'toggle',\n        staticClass: 'dropdown-toggle',\n        class: this.toggleClasses,\n        props: {\n          variant: this.variant,\n          size: this.size,\n          disabled: this.disabled,\n          tag: this.toggleTag\n        },\n        attrs: {\n          id: this.safeId('_BV_toggle_'),\n          'aria-haspopup': 'true',\n          'aria-expanded': this.visible ? 'true' : 'false'\n        },\n        on: {\n          click: this.toggle, // click\n          keydown: this.toggle // enter, space, down\n        }\n      },\n      [this.split ? h('span', { class: ['sr-only'] }, [this.toggleText]) : buttonContent]\n    )\n    const menu = h(\n      'ul',\n      {\n        ref: 'menu',\n        staticClass: 'dropdown-menu',\n        class: this.menuClasses,\n        attrs: {\n          role: this.role,\n          tabindex: '-1',\n          'aria-labelledby': this.safeId(this.split ? '_BV_button_' : '_BV_toggle_')\n        },\n        on: {\n          keydown: this.onKeydown // up, down, esc\n        }\n      },\n      !this.lazy || this.visible ? this.normalizeSlot('default', { hide: this.hide }) : [h()]\n    )\n    return h(\n      'div',\n      {\n        staticClass: 'dropdown btn-group b-dropdown',\n        class: this.dropdownClasses,\n        attrs: { id: this.safeId() }\n      },\n      [split, toggle, menu]\n    )\n  }\n})\n\nexport default BDropdown\n","import Vue from '../../utils/vue'\nimport { requestAF } from '../../utils/dom'\nimport nomalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nexport const props = linkPropsFactory()\n\n// @vue/component\nexport const BDropdownItem = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownItem',\n  mixins: [nomalizeSlotMixin],\n  inheritAttrs: false,\n  inject: {\n    bvDropdown: {\n      default: null\n    }\n  },\n  props: {\n    ...props,\n    variant: {\n      type: String,\n      default: null\n    }\n  },\n  methods: {\n    closeDropdown() {\n      // Close on next animation frame to allow <b-link> time to process\n      requestAF(() => {\n        if (this.bvDropdown) {\n          this.bvDropdown.hide(true)\n        }\n      })\n    },\n    onClick(evt) {\n      this.$emit('click', evt)\n      this.closeDropdown()\n    }\n  },\n  render(h) {\n    return h('li', [\n      h(\n        BLink,\n        {\n          props: this.$props,\n          staticClass: 'dropdown-item',\n          class: {\n            [`text-${this.variant}`]: this.variant && !(this.active || this.disabled)\n          },\n          attrs: { ...this.$attrs, role: 'menuitem' },\n          on: { click: this.onClick },\n          ref: 'item'\n        },\n        this.normalizeSlot('default')\n      )\n    ])\n  }\n})\n\nexport default BDropdownItem\n","import Vue from '../../utils/vue'\nimport nomalizeSlotMixin from '../../mixins/normalize-slot'\n\nexport const props = {\n  active: {\n    type: Boolean,\n    default: false\n  },\n  activeClass: {\n    type: String,\n    default: 'active'\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  variant: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BDropdownItemButton = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownItemButton',\n  mixins: [nomalizeSlotMixin],\n  inheritAttrs: false,\n  inject: {\n    bvDropdown: {\n      default: null\n    }\n  },\n  props,\n  methods: {\n    closeDropdown() {\n      if (this.bvDropdown) {\n        this.bvDropdown.hide(true)\n      }\n    },\n    onClick(evt) {\n      this.$emit('click', evt)\n      this.closeDropdown()\n    }\n  },\n  render(h) {\n    return h('li', [\n      h(\n        'button',\n        {\n          staticClass: 'dropdown-item',\n          class: {\n            [this.activeClass]: this.active,\n            [`text-${this.variant}`]: this.variant && !(this.active || this.disabled)\n          },\n          attrs: {\n            ...this.$attrs,\n            role: 'menuitem',\n            type: 'button',\n            disabled: this.disabled\n          },\n          on: { click: this.onClick },\n          ref: 'button'\n        },\n        this.normalizeSlot('default')\n      )\n    ])\n  }\n})\n\nexport default BDropdownItemButton\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'header'\n  },\n  variant: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BDropdownHeader = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownHeader',\n  functional: true,\n  inheritAttrs: false,\n  props,\n  render(h, { props, data, children }) {\n    return h('li', [\n      h(\n        props.tag,\n        mergeData(data, {\n          staticClass: 'dropdown-header',\n          class: {\n            [`text-${props.variant}`]: props.variant\n          },\n          attrs: {\n            id: props.id || null,\n            role: 'heading'\n          },\n          ref: 'header'\n        }),\n        children\n      )\n    ])\n  }\n})\n\nexport default BDropdownHeader\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'hr'\n  }\n}\n\n// @vue/component\nexport const BDropdownDivider = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownDivider',\n  functional: true,\n  inheritAttrs: false,\n  props,\n  render(h, { props, data }) {\n    return h('li', [\n      h(\n        props.tag,\n        mergeData(data, {\n          staticClass: 'dropdown-divider',\n          attrs: {\n            role: 'separator',\n            'aria-orientation': 'horizontal'\n          },\n          ref: 'divider'\n        })\n      )\n    ])\n  }\n})\n\nexport default BDropdownDivider\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  inline: {\n    type: Boolean,\n    default: false\n  },\n  novalidate: {\n    type: Boolean,\n    default: false\n  },\n  validated: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BForm = /*#__PURE__*/ Vue.extend({\n  name: 'BForm',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      'form',\n      mergeData(data, {\n        class: {\n          'form-inline': props.inline,\n          'was-validated': props.validated\n        },\n        attrs: {\n          id: props.id,\n          novalidate: props.novalidate\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BForm\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BForm, props as formProps } from '../form/form'\n\nexport const BDropdownForm = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownForm',\n  functional: true,\n  inheritAttrs: false,\n  props: {\n    ...formProps,\n    disabled: {\n      type: Boolean,\n      default: false\n    }\n  },\n  render(h, { props, data, children }) {\n    return h('li', [\n      h(\n        BForm,\n        mergeData(data, {\n          ref: 'form',\n          staticClass: 'b-dropdown-form',\n          class: { disabled: props.disabled },\n          props,\n          attrs: {\n            disabled: props.disabled,\n            // Tab index of -1 for keyboard navigation\n            tabindex: props.disabled ? null : '-1'\n          }\n        }),\n        children\n      )\n    ])\n  }\n})\n\nexport default BDropdownForm\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\n// @vue/component\nexport const BDropdownText = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownText',\n  functional: true,\n  inheritAttrs: false,\n  props: {\n    tag: {\n      type: String,\n      default: 'p'\n    },\n    variant: {\n      type: String,\n      default: null\n    }\n  },\n  render(h, { props, data, children }) {\n    return h('li', [\n      h(\n        props.tag,\n        mergeData(data, {\n          staticClass: 'b-dropdown-text',\n          class: {\n            [`text-${props.variant}`]: props.variant\n          },\n          props,\n          ref: 'text'\n        }),\n        children\n      )\n    ])\n  }\n})\n\nexport default BDropdownText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  header: {\n    type: String,\n    default: null\n  },\n  headerTag: {\n    type: String,\n    default: 'header'\n  },\n  headerVariant: {\n    type: String,\n    default: null\n  },\n  headerClasses: {\n    type: [String, Array, Object],\n    default: null\n  },\n  ariaDescribedby: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BDropdownGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownGroup',\n  functional: true,\n  inheritAttrs: false,\n  props,\n  render(h, { props, data, slots, scopedSlots }) {\n    const $slots = slots()\n    const $scopedSlots = scopedSlots || {}\n    let header\n    let headerId = null\n\n    if (hasNormalizedSlot('header', $scopedSlots, $slots) || props.header) {\n      headerId = props.id ? `_bv_${props.id}_group_dd_header` : null\n      header = h(\n        props.headerTag,\n        {\n          staticClass: 'dropdown-header',\n          class: [props.headerClasses, { [`text-${props.variant}`]: props.variant }],\n          attrs: {\n            id: headerId,\n            role: 'heading'\n          }\n        },\n        normalizeSlot('header', {}, $scopedSlots, $slots) || props.header\n      )\n    }\n\n    const adb = [headerId, props.ariaDescribedBy]\n      .filter(Boolean)\n      .join(' ')\n      .trim()\n\n    return h('li', [\n      header || h(),\n      h(\n        'ul',\n        mergeData(data, {\n          staticClass: 'list-unstyled',\n          attrs: {\n            id: props.id || null,\n            'aria-describedby': adb || null\n          }\n        }),\n        normalizeSlot('default', {}, $scopedSlots, $slots)\n      )\n    ])\n  }\n})\n\nexport default BDropdownGroup\n","import { BDropdown } from './dropdown'\nimport { BDropdownItem } from './dropdown-item'\nimport { BDropdownItemButton } from './dropdown-item-button'\nimport { BDropdownHeader } from './dropdown-header'\nimport { BDropdownDivider } from './dropdown-divider'\nimport { BDropdownForm } from './dropdown-form'\nimport { BDropdownText } from './dropdown-text'\nimport { BDropdownGroup } from './dropdown-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst DropdownPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BDropdown,\n    BDd: BDropdown,\n    BDropdownItem,\n    BDdItem: BDropdownItem,\n    BDropdownItemButton,\n    BDropdownItemBtn: BDropdownItemButton,\n    BDdItemButton: BDropdownItemButton,\n    BDdItemBtn: BDropdownItemButton,\n    BDropdownHeader,\n    BDdHeader: BDropdownHeader,\n    BDropdownDivider,\n    BDdDivider: BDropdownDivider,\n    BDropdownForm,\n    BDdForm: BDropdownForm,\n    BDropdownText,\n    BDdText: BDropdownText,\n    BDropdownGroup,\n    BDdGroup: BDropdownGroup\n  }\n})\n\nexport {\n  DropdownPlugin,\n  BDropdown,\n  BDropdownItem,\n  BDropdownItemButton,\n  BDropdownHeader,\n  BDropdownDivider,\n  BDropdownForm,\n  BDropdownText,\n  BDropdownGroup\n}\n\nexport default DropdownPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { arrayIncludes } from '../../utils/array'\n\nexport const props = {\n  type: {\n    type: String,\n    default: 'iframe',\n    validator: str =>\n      arrayIncludes(['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy'], str)\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  aspect: {\n    type: String,\n    default: '16by9'\n  }\n}\n\n// @vue/component\nexport const BEmbed = /*#__PURE__*/ Vue.extend({\n  name: 'BEmbed',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      {\n        ref: data.ref,\n        staticClass: 'embed-responsive',\n        class: {\n          [`embed-responsive-${props.aspect}`]: Boolean(props.aspect)\n        }\n      },\n      [h(props.type, mergeData(data, { ref: '', staticClass: 'embed-responsive-item' }), children)]\n    )\n  }\n})\n\nexport default BEmbed\n","import { BEmbed } from './embed'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst EmbedPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BEmbed }\n})\n\nexport { EmbedPlugin, BEmbed }\n\nexport default EmbedPlugin\n","import { stripTags } from '../utils/html'\nimport { isArray, isPlainObject, isUndefined } from '../utils/inspect'\nimport { keys } from '../utils/object'\n\n// @vue/component\nexport default {\n  props: {\n    options: {\n      type: [Array, Object],\n      default() {\n        return []\n      }\n    },\n    valueField: {\n      type: String,\n      default: 'value'\n    },\n    textField: {\n      type: String,\n      default: 'text'\n    },\n    htmlField: {\n      type: String,\n      default: 'html'\n    },\n    disabledField: {\n      type: String,\n      default: 'disabled'\n    }\n  },\n  computed: {\n    formOptions() {\n      const options = this.options\n      const valueField = this.valueField\n      const textField = this.textField\n      const htmlField = this.htmlField\n      const disabledField = this.disabledField\n\n      if (isArray(options)) {\n        // Normalize flat-ish arrays to Array of Objects\n        return options.map(option => {\n          if (isPlainObject(option)) {\n            const value = option[valueField]\n            const text = String(option[textField])\n            return {\n              value: isUndefined(value) ? text : value,\n              text: stripTags(text),\n              html: option[htmlField],\n              disabled: Boolean(option[disabledField])\n            }\n          }\n          return {\n            value: option,\n            text: stripTags(String(option)),\n            disabled: false\n          }\n        })\n      } else {\n        // options is Object\n        // Normalize Objects to Array of Objects\n        return keys(options).map(key => {\n          const option = options[key] || {}\n          if (isPlainObject(option)) {\n            const value = option[valueField]\n            const text = option[textField]\n            return {\n              value: isUndefined(value) ? key : value,\n              text: isUndefined(text) ? stripTags(String(key)) : stripTags(String(text)),\n              html: option[htmlField],\n              disabled: Boolean(option[disabledField])\n            }\n          }\n          return {\n            value: key,\n            text: stripTags(String(option)),\n            disabled: false\n          }\n        })\n      }\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport formOptionsMixin from '../../mixins/form-options'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { htmlOrText } from '../../utils/html'\n\n// @vue/component\nexport const BFormDatalist = /*#__PURE__*/ Vue.extend({\n  name: 'BFormDatalist',\n  mixins: [formOptionsMixin, normalizeSlotMixin],\n  props: {\n    id: {\n      type: String,\n      default: null,\n      required: true\n    }\n  },\n  render(h) {\n    const options = this.formOptions.map((option, index) => {\n      return h('option', {\n        key: `option_${index}_opt`,\n        attrs: { disabled: option.disabled },\n        domProps: { ...htmlOrText(option.html, option.text), value: option.value }\n      })\n    })\n    return h('datalist', { attrs: { id: this.id } }, [options, this.normalizeSlot('default')])\n  }\n})\n\nexport default BFormDatalist\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\n\nconst NAME = 'BFormText'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'small'\n  },\n  textVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'textVariant')\n  },\n  inline: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BFormText = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          'form-text': !props.inline,\n          [`text-${props.textVariant}`]: Boolean(props.textVariant)\n        },\n        attrs: {\n          id: props.id\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BFormText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  tooltip: {\n    type: Boolean,\n    default: false\n  },\n  forceShow: {\n    type: Boolean,\n    default: false\n  },\n  state: {\n    type: [Boolean, String],\n    default: null\n  },\n  ariaLive: {\n    type: String,\n    default: null\n  },\n  role: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BFormInvalidFeedback = /*#__PURE__*/ Vue.extend({\n  name: 'BFormInvalidFeedback',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    const show = props.forceShow === true || props.state === false || props.state === 'invalid'\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          'invalid-feedback': !props.tooltip,\n          'invalid-tooltip': props.tooltip,\n          'd-block': show\n        },\n        attrs: {\n          id: props.id,\n          role: props.role,\n          'aria-live': props.ariaLive,\n          'aria-atomic': props.ariaLive ? 'true' : null\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BFormInvalidFeedback\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  tooltip: {\n    type: Boolean,\n    default: false\n  },\n  forceShow: {\n    type: Boolean,\n    default: false\n  },\n  state: {\n    type: [Boolean, String],\n    default: null\n  },\n  ariaLive: {\n    type: String,\n    default: null\n  },\n  role: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BFormValidFeedback = /*#__PURE__*/ Vue.extend({\n  name: 'BFormValidFeedback',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    const show = props.forceShow === true || props.state === true || props.state === 'valid'\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          'valid-feedback': !props.tooltip,\n          'valid-tooltip': props.tooltip,\n          'd-block': show\n        },\n        attrs: {\n          id: props.id,\n          role: props.role,\n          'aria-live': props.ariaLive,\n          'aria-atomic': props.ariaLive ? 'true' : null\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BFormValidFeedback\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  }\n}\n\n// @vue/component\nexport const BFormRow = /*#__PURE__*/ Vue.extend({\n  name: 'BFormRow',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'form-row'\n      }),\n      children\n    )\n  }\n})\n\nexport default BFormRow\n","import { BForm } from './form'\nimport { BFormDatalist } from './form-datalist'\nimport { BFormText } from './form-text'\nimport { BFormInvalidFeedback } from './form-invalid-feedback'\nimport { BFormValidFeedback } from './form-valid-feedback'\nimport { BFormRow } from '../layout/form-row'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BForm,\n    BFormDatalist,\n    BDatalist: BFormDatalist,\n    BFormText,\n    BFormInvalidFeedback,\n    BFormFeedback: BFormInvalidFeedback,\n    BFormValidFeedback,\n    // Added here for convenience\n    BFormRow\n  }\n})\n\n// BFormRow is not exported here as a named export, as it is exported by Layout\nexport { FormPlugin, BForm, BFormDatalist, BFormText, BFormInvalidFeedback, BFormValidFeedback }\n\nexport default FormPlugin\n","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n *  - true or 'valid' for is-valid\n *  - false or 'invalid' for is-invalid\n *  - null (or empty string) for no contextual state\n */\n\n// @vue/component\nexport default {\n  props: {\n    state: {\n      // true/'valid', false/'invalid', '',null\n      // The order must be String first, then Boolean!\n      type: [String, Boolean],\n      default: null\n    }\n  },\n  computed: {\n    computedState() {\n      const state = this.state\n      if (state === '') {\n        return null\n      } else if (state === true || state === 'valid') {\n        return true\n      } else if (state === false || state === 'invalid') {\n        return false\n      }\n      return null\n    },\n    stateClass() {\n      const state = this.computedState\n      if (state === true) {\n        return 'is-valid'\n      } else if (state === false) {\n        return 'is-invalid'\n      }\n      return null\n    }\n  }\n}\n","import upperFirst from './upper-first'\n\n/**\n * Suffix can be a falsey value so nothing is appended to string.\n * (helps when looping over props & some shouldn't change)\n * Use data last parameters to allow for currying.\n * @param {string} suffix\n * @param {string} str\n */\nconst suffixPropName = (suffix, str) => str + (suffix ? upperFirst(suffix) : '')\n\nexport default suffixPropName\n","import { mergeData } from 'vue-functional-data-merge'\nimport memoize from '../../utils/memoize'\nimport suffixPropName from '../../utils/suffix-prop-name'\nimport { arrayIncludes } from '../../utils/array'\nimport { isUndefined, isNull } from '../../utils/inspect'\nimport { keys, assign, create } from '../../utils/object'\nimport { getBreakpointsUpCached } from '../../utils/config'\n\n// Generates a prop object with a type of `[Boolean, String, Number]`\nconst boolStrNum = () => ({\n  type: [Boolean, String, Number],\n  default: false\n})\n\n// Generates a prop object with a type of `[String, Number]`\nconst strNum = () => ({\n  type: [String, Number],\n  default: null\n})\n\n// Compute a breakpoint class name\nconst computeBreakpoint = (type, breakpoint, val) => {\n  let className = type\n  if (isUndefined(val) || isNull(val) || val === false) {\n    return undefined\n  }\n  if (breakpoint) {\n    className += `-${breakpoint}`\n  }\n  // Handling the boolean style prop when accepting [Boolean, String, Number]\n  // means Vue will not convert <b-col sm></b-col> to sm: true for us.\n  // Since the default is false, an empty string indicates the prop's presence.\n  if (type === 'col' && (val === '' || val === true)) {\n    // .col-md\n    return className.toLowerCase()\n  }\n  // .order-md-6\n  className += `-${val}`\n  return className.toLowerCase()\n}\n\n// Memoized function for better performance on generating class names\nconst computeBreakpointClass = memoize(computeBreakpoint)\n\n// Cached copy of the breakpoint prop names\nlet breakpointPropMap = create(null)\n\n// Lazy evaled props factory for BCol\nconst generateProps = () => {\n  // Grab the breakpoints from the cached config (exclude the '' (xs) breakpoint)\n  const breakpoints = getBreakpointsUpCached().filter(Boolean)\n\n  // Supports classes like: .col-sm, .col-md-6, .col-lg-auto\n  const breakpointCol = breakpoints.reduce((propMap, breakpoint) => {\n    if (breakpoint) {\n      // We filter out the '' breakpoint (xs), as making a prop name ''\n      // would not work. The `cols` prop is used for `xs`\n      propMap[breakpoint] = boolStrNum()\n    }\n    return propMap\n  }, create(null))\n\n  // Supports classes like: .offset-md-1, .offset-lg-12\n  const breakpointOffset = breakpoints.reduce((propMap, breakpoint) => {\n    propMap[suffixPropName(breakpoint, 'offset')] = strNum()\n    return propMap\n  }, create(null))\n\n  // Supports classes like: .order-md-1, .order-lg-12\n  const breakpointOrder = breakpoints.reduce((propMap, breakpoint) => {\n    propMap[suffixPropName(breakpoint, 'order')] = strNum()\n    return propMap\n  }, create(null))\n\n  // For loop doesn't need to check hasOwnProperty\n  // when using an object created from null\n  breakpointPropMap = assign(create(null), {\n    col: keys(breakpointCol),\n    offset: keys(breakpointOffset),\n    order: keys(breakpointOrder)\n  })\n\n  // Return the generated props\n  return {\n    // Generic flexbox .col (xs)\n    col: {\n      type: Boolean,\n      default: false\n    },\n    // .col-[1-12]|auto  (xs)\n    cols: strNum(),\n    // Breakpoint Specific props\n    ...breakpointCol,\n    offset: strNum(),\n    ...breakpointOffset,\n    order: strNum(),\n    ...breakpointOrder,\n    // Flex alignment\n    alignSelf: {\n      type: String,\n      default: null,\n      validator: str =>\n        arrayIncludes(['auto', 'start', 'end', 'center', 'baseline', 'stretch'], str)\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    }\n  }\n}\n\n// We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\nexport const BCol = {\n  name: 'BCol',\n  functional: true,\n  get props() {\n    // Allow props to be lazy evaled on first access and\n    // then they become a non-getter afterwards.\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n    delete this.props\n    // eslint-disable-next-line no-return-assign\n    return (this.props = generateProps())\n  },\n  render(h, { props, data, children }) {\n    const classList = []\n    // Loop through `col`, `offset`, `order` breakpoint props\n    for (const type in breakpointPropMap) {\n      // Returns colSm, offset, offsetSm, orderMd, etc.\n      const keys = breakpointPropMap[type]\n      for (let i = 0; i < keys.length; i++) {\n        // computeBreakpoint(col, colSm => Sm, value=[String, Number, Boolean])\n        const c = computeBreakpointClass(type, keys[i].replace(type, ''), props[keys[i]])\n        // If a class is returned, push it onto the array.\n        if (c) {\n          classList.push(c)\n        }\n      }\n    }\n\n    const hasColClasses = classList.some(className => /^col-/.test(className))\n\n    classList.push({\n      // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n      col: props.col || (!hasColClasses && !props.cols),\n      [`col-${props.cols}`]: props.cols,\n      [`offset-${props.offset}`]: props.offset,\n      [`order-${props.order}`]: props.order,\n      [`align-self-${props.alignSelf}`]: props.alignSelf\n    })\n\n    return h(props.tag, mergeData(data, { class: classList }), children)\n  }\n}\n\nexport default BCol\n","// Utils\nimport memoize from '../../utils/memoize'\nimport upperFirst from '../../utils/upper-first'\nimport warn from '../../utils/warn'\nimport { arrayIncludes } from '../../utils/array'\nimport { getBreakpointsUpCached } from '../../utils/config'\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr } from '../../utils/dom'\nimport { isBrowser } from '../../utils/env'\nimport { isBoolean } from '../../utils/inspect'\nimport { keys, create } from '../../utils/object'\n// Mixins\nimport formStateMixin from '../../mixins/form-state'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n// Sub components\nimport { BCol } from '../layout/col'\nimport { BFormRow } from '../layout/form-row'\nimport { BFormText } from '../form/form-text'\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback'\nimport { BFormValidFeedback } from '../form/form-valid-feedback'\n\n// Component name\nconst NAME = 'BFormGroup'\n\n// Selector for finding first input in the form-group\nconst SELECTOR = 'input:not([disabled]),textarea:not([disabled]),select:not([disabled])'\n\nconst DEPRECATED_MSG =\n  'Props \"horizontal\" and \"breakpoint\" are deprecated. Use \"label-cols(-{breakpoint})\" props instead.'\n\n// Render helper functions (here rather than polluting the instance with more methods)\nconst renderInvalidFeedback = (h, ctx) => {\n  const content = ctx.normalizeSlot('invalid-feedback') || ctx.invalidFeedback\n  let invalidFeedback = h()\n  if (content) {\n    invalidFeedback = h(\n      BFormInvalidFeedback,\n      {\n        props: {\n          id: ctx.invalidFeedbackId,\n          // If state is explicitly false, always show the feedback\n          state: ctx.computedState,\n          tooltip: ctx.tooltip,\n          ariaLive: ctx.feedbackAriaLive,\n          role: ctx.feedbackAriaLive ? 'alert' : null\n        },\n        attrs: { tabindex: content ? '-1' : null }\n      },\n      [content]\n    )\n  }\n  return invalidFeedback\n}\n\nconst renderValidFeedback = (h, ctx) => {\n  const content = ctx.normalizeSlot('valid-feedback') || ctx.validFeedback\n  let validFeedback = h()\n  if (content) {\n    validFeedback = h(\n      BFormValidFeedback,\n      {\n        props: {\n          id: ctx.validFeedbackId,\n          // If state is explicitly true, always show the feedback\n          state: ctx.computedState,\n          tooltip: ctx.tooltip,\n          ariaLive: ctx.feedbackAriaLive,\n          role: ctx.feedbackAriaLive ? 'alert' : null\n        },\n        attrs: { tabindex: content ? '-1' : null }\n      },\n      [content]\n    )\n  }\n  return validFeedback\n}\n\nconst renderHelpText = (h, ctx) => {\n  // Form help text (description)\n  const content = ctx.normalizeSlot('description') || ctx.description\n  let description = h()\n  if (content) {\n    description = h(\n      BFormText,\n      {\n        attrs: {\n          id: ctx.descriptionId,\n          tabindex: content ? '-1' : null\n        }\n      },\n      [content]\n    )\n  }\n  return description\n}\n\nconst renderLabel = (h, ctx) => {\n  // Render label/legend inside b-col if necessary\n  const content = ctx.normalizeSlot('label') || ctx.label\n  const labelFor = ctx.labelFor\n  const isLegend = !labelFor\n  const isHorizontal = ctx.isHorizontal\n  const labelTag = isLegend ? 'legend' : 'label'\n  if (!content && !isHorizontal) {\n    return h()\n  } else if (ctx.labelSrOnly) {\n    let label = h()\n    if (content) {\n      label = h(\n        labelTag,\n        {\n          class: 'sr-only',\n          attrs: { id: ctx.labelId, for: labelFor || null }\n        },\n        [content]\n      )\n    }\n    return h(isHorizontal ? BCol : 'div', { props: isHorizontal ? ctx.labelColProps : {} }, [label])\n  } else {\n    return h(\n      isHorizontal ? BCol : labelTag,\n      {\n        on: isLegend ? { click: ctx.legendClick } : {},\n        props: isHorizontal ? { tag: labelTag, ...ctx.labelColProps } : {},\n        attrs: {\n          id: ctx.labelId,\n          for: labelFor || null,\n          // We add a tab index to legend so that screen readers\n          // will properly read the aria-labelledby in IE.\n          tabindex: isLegend ? '-1' : null\n        },\n        class: [\n          // When horizontal or if a legend is rendered, add col-form-label\n          // for correct sizing as Bootstrap has inconsistent font styling\n          // for legend in non-horizontal form-groups.\n          // See: https://github.com/twbs/bootstrap/issues/27805\n          isHorizontal || isLegend ? 'col-form-label' : '',\n          // Emulate label padding top of 0 on legend when not horizontal\n          !isHorizontal && isLegend ? 'pt-0' : '',\n          // If not horizontal and not a legend, we add d-block to label\n          // so that label-align works\n          !isHorizontal && !isLegend ? 'd-block' : '',\n          ctx.labelSize ? `col-form-label-${ctx.labelSize}` : '',\n          ctx.labelAlignClasses,\n          ctx.labelClass\n        ]\n      },\n      [content]\n    )\n  }\n}\n\n// -- BFormGroup Prop factory -- used for lazy generation of props\n\n// Memoize this function to return cached values to\n// save time in computed functions\nconst makePropName = memoize((breakpoint = '', prefix) => {\n  return `${prefix}${upperFirst(breakpoint)}`\n})\n\n// BFormGroup prop generator for lazy generation of props\nconst generateProps = () => {\n  const BREAKPOINTS = getBreakpointsUpCached()\n\n  // Generate the labelCol breakpoint props\n  const bpLabelColProps = BREAKPOINTS.reduce((props, breakpoint) => {\n    // i.e. label-cols, label-cols-sm, label-cols-md, ...\n    props[makePropName(breakpoint, 'labelCols')] = {\n      type: [Number, String, Boolean],\n      default: breakpoint ? false : null\n    }\n    return props\n  }, create(null))\n\n  // Generate the labelAlign breakpoint props\n  const bpLabelAlignProps = BREAKPOINTS.reduce((props, breakpoint) => {\n    // label-align, label-align-sm, label-align-md, ...\n    props[makePropName(breakpoint, 'labelAlign')] = {\n      type: String, // left, right, center\n      default: null\n    }\n    return props\n  }, create(null))\n\n  return {\n    label: {\n      type: String,\n      default: null\n    },\n    labelFor: {\n      type: String,\n      default: null\n    },\n    labelSize: {\n      type: String,\n      default: null\n    },\n    labelSrOnly: {\n      type: Boolean,\n      default: false\n    },\n    // label-cols prop and all label-cols-{bp} props\n    ...bpLabelColProps,\n    // label-align prop and all label-align-{bp} props\n    ...bpLabelAlignProps,\n    labelClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    description: {\n      type: String,\n      default: null\n    },\n    invalidFeedback: {\n      type: String,\n      default: null\n    },\n    validFeedback: {\n      type: String,\n      default: null\n    },\n    tooltip: {\n      // Enable tooltip style feedback\n      type: Boolean,\n      default: false\n    },\n    feedbackAriaLive: {\n      type: String,\n      default: 'assertive'\n    },\n    validated: {\n      type: Boolean,\n      default: false\n    },\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    horizontal: {\n      // Deprecated\n      type: Boolean,\n      default: false,\n      deprecated: DEPRECATED_MSG\n    },\n    breakpoint: {\n      // Deprecated (ignored if horizontal is not true)\n      type: String,\n      default: null, // legacy value 'sm',\n      deprecated: DEPRECATED_MSG\n    }\n  }\n}\n\n// We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\nexport const BFormGroup = {\n  name: NAME,\n  mixins: [idMixin, formStateMixin, normalizeSlotMixin],\n  get props() {\n    // Allow props to be lazy evaled on first access and\n    // then they become a non-getter afterwards.\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n    delete this.props\n    // eslint-disable-next-line no-return-assign\n    return (this.props = generateProps())\n  },\n  computed: {\n    labelColProps() {\n      const props = {}\n      /* istanbul ignore next: deprecated */\n      if (this.horizontal) {\n        // Deprecated setting of horizontal/breakpoint props\n        /* istanbul ignore next */\n        warn(`b-form-group: ${DEPRECATED_MSG}`)\n        // Legacy default is breakpoint sm and cols 3\n        const bp = this.breakpoint || getBreakpointsUpCached()[1] // 'sm'\n        const cols = parseInt(this.labelCols, 10) || 3\n        props[bp] = cols > 0 ? cols : 3\n        // We then return the single breakpoint prop for legacy compatibility\n        return props\n      }\n      getBreakpointsUpCached().forEach(breakpoint => {\n        // Grab the value if the label column breakpoint prop\n        let propVal = this[makePropName(breakpoint, 'labelCols')]\n        // Handle case where the prop's value is an empty string,\n        // which represents true\n        propVal = propVal === '' ? true : propVal || false\n        if (!isBoolean(propVal)) {\n          // Convert to column size to number\n          propVal = parseInt(propVal, 10) || 0\n          // Ensure column size is greater than 0\n          propVal = propVal > 0 ? propVal : false\n        }\n        if (propVal) {\n          // Add the prop to the list of props to give to b-col\n          // If breakpoint is '' (labelCols=true), then we use the\n          // col prop to make equal width at xs\n          const bColPropName = breakpoint || (isBoolean(propVal) ? 'col' : 'cols')\n          // Add it to the props\n          props[bColPropName] = propVal\n        }\n      })\n      return props\n    },\n    labelAlignClasses() {\n      const classes = []\n      getBreakpointsUpCached().forEach(breakpoint => {\n        // Assemble the label column breakpoint align classes\n        const propVal = this[makePropName(breakpoint, 'labelAlign')] || null\n        if (propVal) {\n          const className = breakpoint ? `text-${breakpoint}-${propVal}` : `text-${propVal}`\n          classes.push(className)\n        }\n      })\n      return classes\n    },\n    isHorizontal() {\n      // Determine if the resultant form-group will be rendered\n      // horizontal (meaning it has label-col breakpoints)\n      return keys(this.labelColProps).length > 0\n    },\n    labelId() {\n      return this.$slots['label'] || this.label ? this.safeId('_BV_label_') : null\n    },\n    descriptionId() {\n      return this.$slots['description'] || this.description ? this.safeId('_BV_description_') : null\n    },\n    hasInvalidFeedback() {\n      // Used for computing aria-describedby\n      const $slots = this.$slots\n      return this.computedState === false && ($slots['invalid-feedback'] || this.invalidFeedback)\n    },\n    invalidFeedbackId() {\n      return this.hasInvalidFeedback ? this.safeId('_BV_feedback_invalid_') : null\n    },\n    hasValidFeedback() {\n      // Used for computing aria-describedby\n      return this.computedState === true && (this.$slots['valid-feedback'] || this.validFeedback)\n    },\n    validFeedbackId() {\n      return this.hasValidFeedback ? this.safeId('_BV_feedback_valid_') : null\n    },\n    describedByIds() {\n      // Screen readers will read out any content linked to by aria-describedby\n      // even if the content is hidden with `display: none;`, hence we only include\n      // feedback IDs if the form-group's state is explicitly valid or invalid.\n      return (\n        [this.descriptionId, this.invalidFeedbackId, this.validFeedbackId]\n          .filter(Boolean)\n          .join(' ') || null\n      )\n    }\n  },\n  watch: {\n    describedByIds(add, remove) {\n      if (add !== remove) {\n        this.setInputDescribedBy(add, remove)\n      }\n    }\n  },\n  mounted() {\n    this.$nextTick(() => {\n      // Set the aria-describedby IDs on the input specified by label-for\n      // We do this in a nextTick to ensure the children have finished rendering\n      this.setInputDescribedBy(this.describedByIds)\n    })\n  },\n  methods: {\n    legendClick(evt) {\n      if (this.labelFor) {\n        // Don't do anything if labelFor is set\n        /* istanbul ignore next: clicking a label will focus the input, so no need to test */\n        return\n      }\n      const tagName = evt.target ? evt.target.tagName : ''\n      if (/^(input|select|textarea|label|button|a)$/i.test(tagName)) {\n        // If clicked an interactive element inside legend,\n        // we just let the default happen\n        /* istanbul ignore next */\n        return\n      }\n      const inputs = selectAll(SELECTOR, this.$refs.content).filter(isVisible)\n      if (inputs && inputs.length === 1 && inputs[0].focus) {\n        // if only a single input, focus it, emulating label behaviour\n        inputs[0].focus()\n      }\n    },\n    setInputDescribedBy(add, remove) {\n      // Sets the `aria-describedby` attribute on the input if label-for is set.\n      // Optionally accepts a string of IDs to remove as the second parameter.\n      // Preserves any aria-describedby value(s) user may have on input.\n      if (this.labelFor && isBrowser) {\n        const input = select(`#${this.labelFor}`, this.$refs.content)\n        if (input) {\n          const adb = 'aria-describedby'\n          let ids = (getAttr(input, adb) || '').split(/\\s+/)\n          add = (add || '').split(/\\s+/)\n          remove = (remove || '').split(/\\s+/)\n          // Update ID list, preserving any original IDs\n          // and ensuring the ID's are unique\n          ids = ids\n            .filter(id => !arrayIncludes(remove, id))\n            .concat(add)\n            .filter(Boolean)\n          ids = keys(ids.reduce((memo, id) => ({ ...memo, [id]: true }), {}))\n            .join(' ')\n            .trim()\n          if (ids) {\n            setAttr(input, adb, ids)\n          } else {\n            // No IDs, so remove the attribute\n            removeAttr(input, adb)\n          }\n        }\n      }\n    }\n  },\n  render(h) {\n    const isFieldset = !this.labelFor\n    const isHorizontal = this.isHorizontal\n    // Generate the label\n    const label = renderLabel(h, this)\n    // Generate the content\n    const content = h(\n      isHorizontal ? BCol : 'div',\n      {\n        ref: 'content',\n        attrs: {\n          tabindex: isFieldset ? '-1' : null,\n          role: isFieldset ? 'group' : null\n        }\n      },\n      [\n        this.normalizeSlot('default') || h(),\n        renderInvalidFeedback(h, this),\n        renderValidFeedback(h, this),\n        renderHelpText(h, this)\n      ]\n    )\n    // Create the form-group\n    const data = {\n      staticClass: 'form-group',\n      class: [this.validated ? 'was-validated' : null, this.stateClass],\n      attrs: {\n        id: this.safeId(),\n        disabled: isFieldset ? this.disabled : null,\n        role: isFieldset ? null : 'group',\n        'aria-invalid': this.computedState === false ? 'true' : null,\n        // Only apply aria-labelledby if we are a horizontal fieldset\n        // as the legend is no longer a direct child of fieldset\n        'aria-labelledby': isFieldset && isHorizontal ? this.labelId : null,\n        // Only apply aria-describedby IDs if we are a fieldset\n        // as the input will have the IDs when not a fieldset\n        'aria-describedby': isFieldset ? this.describedByIds : null\n      }\n    }\n    // Return it wrapped in a form-group\n    // Note: Fieldsets do not support adding `row` or `form-row` directly\n    // to them due to browser specific render issues, so we move the `form-row`\n    // to an inner wrapper div when horizontal and using a fieldset\n    return h(\n      isFieldset ? 'fieldset' : isHorizontal ? BFormRow : 'div',\n      data,\n      isHorizontal && isFieldset ? [h(BFormRow, {}, [label, content])] : [label, content]\n    )\n  }\n}\n\nexport default BFormGroup\n","import { BFormGroup } from './form-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormGroupPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormGroup,\n    BFormFieldset: BFormGroup\n  }\n})\n\nexport { FormGroupPlugin, BFormGroup }\n\nexport default FormGroupPlugin\n","import looseEqual from './loose-equal'\n\nconst looseIndexOf = (arr, val) => {\n  // Assumes that the first argument is an array\n  for (let i = 0; i < arr.length; i++) {\n    if (looseEqual(arr[i], val)) {\n      return i\n    }\n  }\n  return -1\n}\n\nexport default looseIndexOf\n","import { matches, select, isVisible, requestAF } from '../utils/dom'\n\nconst SELECTOR = 'input, textarea, select'\n\n// @vue/component\nexport default {\n  props: {\n    name: {\n      type: String\n      // default: undefined\n    },\n    id: {\n      type: String\n      // default: undefined\n    },\n    disabled: {\n      type: Boolean\n    },\n    required: {\n      type: Boolean,\n      default: false\n    },\n    form: {\n      type: String,\n      default: null\n    },\n    autofocus: {\n      type: Boolean,\n      default: false\n    }\n  },\n  mounted() {\n    this.handleAutofocus()\n  },\n  activated() /* istanbul ignore next */ {\n    this.handleAutofocus()\n  },\n  methods: {\n    handleAutofocus() {\n      this.$nextTick(() => {\n        requestAF(() => {\n          let el = this.$el\n          if (this.autofocus && isVisible(el)) {\n            if (!matches(el, SELECTOR)) {\n              el = select(SELECTOR, el)\n            }\n            el && el.focus && el.focus()\n          }\n        })\n      })\n    }\n  }\n}\n","import normalizeSlotMixin from './normalize-slot'\n\n// @vue/component\nexport default {\n  mixins: [normalizeSlotMixin],\n  model: {\n    prop: 'checked',\n    event: 'input'\n  },\n  props: {\n    value: {\n      // Value when checked\n      // type: Object,\n      // default: undefined\n    },\n    checked: {\n      // This is the v-model\n      // type: Object,\n      // default: undefined\n    },\n    inline: {\n      type: Boolean,\n      default: false\n    },\n    plain: {\n      type: Boolean,\n      default: false\n    },\n    button: {\n      // Only applicable in standalone mode (non group)\n      type: Boolean,\n      default: false\n    },\n    buttonVariant: {\n      // Only applicable when rendered with button style\n      type: String,\n      default: null\n    },\n    ariaLabel: {\n      // Placed on the input if present.\n      type: String,\n      default: null\n    },\n    ariaLabelledby: {\n      // Placed on the input if present.\n      type: String,\n      default: null\n    }\n  },\n  data() {\n    return {\n      localChecked: this.isGroup ? this.bvGroup.checked : this.checked,\n      hasFocus: false\n    }\n  },\n  computed: {\n    computedLocalChecked: {\n      get() {\n        return this.isGroup ? this.bvGroup.localChecked : this.localChecked\n      },\n      set(val) {\n        if (this.isGroup) {\n          this.bvGroup.localChecked = val\n        } else {\n          this.localChecked = val\n        }\n      }\n    },\n    isGroup() {\n      // Is this check/radio a child of check-group or radio-group?\n      return Boolean(this.bvGroup)\n    },\n    isBtnMode() {\n      // Support button style in single input mode\n      return this.isGroup ? this.bvGroup.buttons : this.button\n    },\n    isPlain() {\n      return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain\n    },\n    isCustom() {\n      return this.isBtnMode ? false : !this.isPlain\n    },\n    isSwitch() {\n      // Custom switch styling (checkboxes only)\n      return this.isBtnMode || this.isRadio || this.isPlain\n        ? false\n        : this.isGroup\n          ? this.bvGroup.switches\n          : this.switch\n    },\n    isInline() {\n      return this.isGroup ? this.bvGroup.inline : this.inline\n    },\n    isDisabled() {\n      // Child can be disabled while parent isn't, but is always disabled if group is\n      return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled\n    },\n    isRequired() {\n      // Required only works when a name is provided for the input(s)\n      // Child can only be required when parent is\n      // Groups will always have a name (either user supplied or auto generated)\n      return Boolean(this.getName && (this.isGroup ? this.bvGroup.required : this.required))\n    },\n    getName() {\n      // Group name preferred over local name\n      return (this.isGroup ? this.bvGroup.groupName : this.name) || null\n    },\n    getForm() {\n      return (this.isGroup ? this.bvGroup.form : this.form) || null\n    },\n    getSize() {\n      return (this.isGroup ? this.bvGroup.size : this.size) || ''\n    },\n    getState() {\n      return this.isGroup ? this.bvGroup.computedState : this.computedState\n    },\n    getButtonVariant() {\n      // Local variant preferred over group variant\n      if (this.buttonVariant) {\n        return this.buttonVariant\n      } else if (this.isGroup && this.bvGroup.buttonVariant) {\n        return this.bvGroup.buttonVariant\n      }\n      // default variant\n      return 'secondary'\n    },\n    buttonClasses() {\n      // Same for radio & check\n      return [\n        'btn',\n        `btn-${this.getButtonVariant}`,\n        this.getSize ? `btn-${this.getSize}` : '',\n        // 'disabled' class makes \"button\" look disabled\n        this.isDisabled ? 'disabled' : '',\n        // 'active' class makes \"button\" look pressed\n        this.isChecked ? 'active' : '',\n        // Focus class makes button look focused\n        this.hasFocus ? 'focus' : ''\n      ]\n    }\n  },\n  watch: {\n    checked(newVal, oldVal) {\n      this.computedLocalChecked = newVal\n    }\n  },\n  methods: {\n    handleFocus(evt) {\n      // When in buttons mode, we need to add 'focus' class to label when input focused\n      // As it is the hidden input which has actual focus\n      if (evt.target) {\n        if (evt.type === 'focus') {\n          this.hasFocus = true\n        } else if (evt.type === 'blur') {\n          this.hasFocus = false\n        }\n      }\n    },\n    // Convenience methods for focusing the input\n    focus() {\n      if (!this.isDisabled && this.$refs.input && this.$refs.input.focus) {\n        this.$refs.input.focus()\n      }\n    },\n    blur() {\n      if (!this.isDisabled && this.$refs.input && this.$refs.input.blur) {\n        this.$refs.input.blur()\n      }\n    }\n  },\n  render(h) {\n    const defaultSlot = this.normalizeSlot('default')\n\n    // Generate the input element\n    const on = { change: this.handleChange }\n    if (this.isBtnMode) {\n      // Handlers for focus styling when in button mode\n      on.focus = on.blur = this.handleFocus\n    }\n    const input = h('input', {\n      ref: 'input',\n      key: 'input',\n      on,\n      class: {\n        'form-check-input': this.isPlain,\n        'custom-control-input': this.isCustom,\n        'is-valid': this.getState === true && !this.isBtnMode,\n        'is-invalid': this.getState === false && !this.isBtnMode,\n        // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n        'position-static': this.isPlain && !defaultSlot\n      },\n      directives: [\n        {\n          name: 'model',\n          rawName: 'v-model',\n          value: this.computedLocalChecked,\n          expression: 'computedLocalChecked'\n        }\n      ],\n      attrs: {\n        id: this.safeId(),\n        type: this.isRadio ? 'radio' : 'checkbox',\n        name: this.getName,\n        form: this.getForm,\n        disabled: this.isDisabled,\n        required: this.isRequired,\n        autocomplete: 'off',\n        'aria-required': this.isRequired || null,\n        'aria-label': this.ariaLabel || null,\n        'aria-labelledby': this.ariaLabelledby || null\n      },\n      domProps: {\n        value: this.value,\n        checked: this.isChecked\n      }\n    })\n\n    if (this.isBtnMode) {\n      // Button mode\n      let button = h('label', { class: this.buttonClasses }, [input, defaultSlot])\n      if (!this.isGroup) {\n        // Standalone button mode, so wrap in 'btn-group-toggle'\n        // and flag it as inline-block to mimic regular buttons\n        button = h('div', { class: ['btn-group-toggle', 'd-inline-block'] }, [button])\n      }\n      return button\n    } else {\n      // Not button mode\n      let label = h()\n      // If no label content in plain mode we dont render the label\n      // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n      if (!(this.isPlain && !defaultSlot)) {\n        label = h(\n          'label',\n          {\n            class: {\n              'form-check-label': this.isPlain,\n              'custom-control-label': this.isCustom\n            },\n            attrs: { for: this.safeId() }\n          },\n          defaultSlot\n        )\n      }\n      // Wrap it in a div\n      return h(\n        'div',\n        {\n          class: {\n            'form-check': this.isPlain,\n            'form-check-inline': this.isPlain && this.isInline,\n            'custom-control': this.isCustom,\n            'custom-control-inline': this.isCustom && this.isInline,\n            'custom-checkbox': this.isCustom && this.isCheck && !this.isSwitch,\n            'custom-switch': this.isSwitch,\n            'custom-radio': this.isCustom && this.isRadio,\n            // Temporary until Bootstrap v4 supports sizing (most likely in V5)\n            [`form-control-${this.getSize}`]: Boolean(this.getSize && !this.isBtnMode)\n          }\n        },\n        [input, label]\n      )\n    }\n  }\n}\n","// @vue/component\nexport default {\n  props: {\n    size: {\n      type: String,\n      default: null\n    }\n  },\n  computed: {\n    sizeFormClass() {\n      return [this.size ? `form-control-${this.size}` : null]\n    },\n    sizeBtnClass() /* istanbul ignore next: don't think this is used */ {\n      return [this.size ? `btn-${this.size}` : null]\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport looseEqual from '../../utils/loose-equal'\nimport looseIndexOf from '../../utils/loose-index-of'\nimport { isArray } from '../../utils/inspect'\nimport formMixin from '../../mixins/form'\nimport formRadioCheckMixin from '../../mixins/form-radio-check'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport idMixin from '../../mixins/id'\n\n// @vue/component\nexport const BFormCheckbox = /*#__PURE__*/ Vue.extend({\n  name: 'BFormCheckbox',\n  mixins: [\n    formRadioCheckMixin, // Includes shared render function\n    idMixin,\n    formMixin,\n    formSizeMixin,\n    formStateMixin\n  ],\n  inject: {\n    bvGroup: {\n      from: 'bvCheckGroup',\n      default: false\n    }\n  },\n  props: {\n    value: {\n      // type: [Object, Boolean],\n      default: true\n    },\n    uncheckedValue: {\n      // type: [Object, Boolean],\n      // Not applicable in multi-check mode\n      default: false\n    },\n    indeterminate: {\n      // Not applicable in multi-check mode\n      type: Boolean,\n      default: false\n    },\n    switch: {\n      // Custom switch styling\n      type: Boolean,\n      default: false\n    },\n    checked: {\n      // v-model\n      type: [String, Number, Object, Array, Boolean],\n      default: null\n    }\n  },\n  computed: {\n    isChecked() {\n      const checked = this.computedLocalChecked\n      const value = this.value\n      if (isArray(checked)) {\n        return looseIndexOf(checked, value) > -1\n      } else {\n        return looseEqual(checked, value)\n      }\n    },\n    isRadio() {\n      return false\n    },\n    isCheck() {\n      return true\n    }\n  },\n  watch: {\n    computedLocalChecked(newVal, oldVal) {\n      this.$emit('input', newVal)\n      if (this.$refs && this.$refs.input) {\n        this.$emit('update:indeterminate', this.$refs.input.indeterminate)\n      }\n    },\n    indeterminate(newVal, oldVal) {\n      this.setIndeterminate(newVal)\n    }\n  },\n  mounted() {\n    // Set initial indeterminate state\n    this.setIndeterminate(this.indeterminate)\n  },\n  methods: {\n    handleChange({ target: { checked, indeterminate } }) {\n      let localChecked = this.computedLocalChecked\n      const value = this.value\n      const isArr = isArray(localChecked)\n      const uncheckedValue = isArr ? null : this.uncheckedValue\n      // Update computedLocalChecked\n      if (isArr) {\n        const idx = looseIndexOf(localChecked, value)\n        if (checked && idx < 0) {\n          // Add value to array\n          localChecked = localChecked.concat(value)\n        } else if (!checked && idx > -1) {\n          // Remove value from array\n          localChecked = localChecked.slice(0, idx).concat(localChecked.slice(idx + 1))\n        }\n      } else {\n        localChecked = checked ? value : uncheckedValue\n      }\n      this.computedLocalChecked = localChecked\n      // Change is only emitted on user interaction\n      this.$emit('change', checked ? value : uncheckedValue)\n      // If this is a child of form-checkbox-group, we emit a change event on it as well\n      if (this.isGroup) {\n        this.bvGroup.$emit('change', localChecked)\n      }\n      this.$emit('update:indeterminate', indeterminate)\n    },\n    setIndeterminate(state) {\n      // Indeterminate only supported in single checkbox mode\n      if (isArray(this.computedLocalChecked)) {\n        state = false\n      }\n      if (this.$refs && this.$refs.input) {\n        this.$refs.input.indeterminate = state\n        // Emit update event to prop\n        this.$emit('update:indeterminate', state)\n      }\n    }\n  }\n})\n\nexport default BFormCheckbox\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formStateMixin from '../../mixins/form-state'\nimport formSizeMixin from '../../mixins/form-size'\nimport formRadioCheckMixin from '../../mixins/form-radio-check'\nimport looseEqual from '../../utils/loose-equal'\n\n// @vue/component\nexport const BFormRadio = /*#__PURE__*/ Vue.extend({\n  name: 'BFormRadio',\n  mixins: [\n    idMixin,\n    formRadioCheckMixin, // Includes shared render function\n    formMixin,\n    formSizeMixin,\n    formStateMixin\n  ],\n  inject: {\n    bvGroup: {\n      from: 'bvRadioGroup',\n      default: false\n    }\n  },\n  props: {\n    checked: {\n      // v-model\n      type: [String, Object, Number, Boolean],\n      default: null\n    }\n  },\n  computed: {\n    // Radio Groups can only have a single value, so determining if checked is simple\n    isChecked() {\n      return looseEqual(this.value, this.computedLocalChecked)\n    },\n    // Flags for form-radio-check mixin\n    isRadio() {\n      return true\n    },\n    isCheck() {\n      return false\n    }\n  },\n  watch: {\n    // Radio Groups can only have a single value, so our watchers are simple\n    computedLocalChecked(newVal, oldVal) {\n      this.$emit('input', this.computedLocalChecked)\n    }\n  },\n  methods: {\n    handleChange({ target: { checked } }) {\n      const value = this.value\n      this.computedLocalChecked = value\n      // Change is only emitted on user interaction\n      this.$emit('change', checked ? value : null)\n      // If this is a child of form-radio-group, we emit a change event on it as well\n      if (this.isGroup) {\n        this.bvGroup.$emit('change', checked ? value : null)\n      }\n    }\n  }\n})\n\nexport default BFormRadio\n","import { htmlOrText } from '../utils/html'\nimport normalizeSlotMixin from './normalize-slot'\nimport { BFormCheckbox } from '../components/form-checkbox/form-checkbox'\nimport { BFormRadio } from '../components/form-radio/form-radio'\n\n// @vue/component\nexport default {\n  mixins: [normalizeSlotMixin],\n  model: {\n    prop: 'checked',\n    event: 'input'\n  },\n  props: {\n    validated: {\n      type: Boolean,\n      default: false\n    },\n    ariaInvalid: {\n      type: [Boolean, String],\n      default: false\n    },\n    stacked: {\n      type: Boolean,\n      default: false\n    },\n    plain: {\n      type: Boolean,\n      default: false\n    },\n    buttons: {\n      // Render as button style\n      type: Boolean,\n      default: false\n    },\n    buttonVariant: {\n      // Only applicable when rendered with button style\n      type: String,\n      default: 'secondary'\n    }\n  },\n  computed: {\n    inline() {\n      return !this.stacked\n    },\n    groupName() {\n      // Checks/Radios tied to the same model must have the same name,\n      // especially for ARIA accessibility.\n      return this.name || this.safeId()\n    },\n    groupClasses() {\n      if (this.buttons) {\n        return [\n          'btn-group-toggle',\n          this.inline ? 'btn-group' : 'btn-group-vertical',\n          this.size ? `btn-group-${this.size}` : '',\n          this.validated ? `was-validated` : ''\n        ]\n      }\n      return [this.validated ? `was-validated` : '']\n    },\n    computedAriaInvalid() {\n      const ariaInvalid = this.ariaInvalid\n      if (ariaInvalid === true || ariaInvalid === 'true' || ariaInvalid === '') {\n        return 'true'\n      }\n      return this.computedState === false ? 'true' : null\n    }\n  },\n  watch: {\n    checked(newVal, oldVal) {\n      this.localChecked = newVal\n    },\n    localChecked(newVal, oldVal) {\n      this.$emit('input', newVal)\n    }\n  },\n  render(h) {\n    const inputs = this.formOptions.map((option, idx) => {\n      const uid = `_BV_option_${idx}_`\n      return h(\n        this.isRadioGroup ? BFormRadio : BFormCheckbox,\n        {\n          key: uid,\n          props: {\n            id: this.safeId(uid),\n            value: option.value,\n            // Individual radios or checks can be disabled in a group\n            disabled: option.disabled || false\n            // We don't need to include these, since the input's will know they are inside here\n            // name: this.groupName,\n            // form: this.form || null,\n            // required: Boolean(this.name && this.required)\n          }\n        },\n        [h('span', { domProps: htmlOrText(option.html, option.text) })]\n      )\n    })\n    return h(\n      'div',\n      {\n        class: this.groupClasses,\n        attrs: {\n          id: this.safeId(),\n          role: this.isRadioGroup ? 'radiogroup' : 'group',\n          // Tabindex to allow group to be focused if needed\n          tabindex: '-1',\n          'aria-required': this.required ? 'true' : null,\n          'aria-invalid': this.computedAriaInvalid\n        }\n      },\n      [this.normalizeSlot('first'), inputs, this.normalizeSlot('default')]\n    )\n  }\n}\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formOptionsMixin from '../../mixins/form-options'\nimport formRadioCheckGroupMixin from '../../mixins/form-radio-check-group'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\n\nexport const props = {\n  switches: {\n    // Custom switch styling\n    type: Boolean,\n    default: false\n  },\n  checked: {\n    type: [String, Number, Object, Array, Boolean],\n    default: null\n  }\n}\n\n// @vue/component\nexport const BFormCheckboxGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BFormCheckboxGroup',\n  mixins: [\n    idMixin,\n    formMixin,\n    formRadioCheckGroupMixin, // Includes render function\n    formOptionsMixin,\n    formSizeMixin,\n    formStateMixin\n  ],\n  provide() {\n    return {\n      bvCheckGroup: this\n    }\n  },\n  props,\n  data() {\n    return {\n      localChecked: this.checked || []\n    }\n  },\n  computed: {\n    isRadioGroup() {\n      return false\n    }\n  }\n})\n\nexport default BFormCheckboxGroup\n","import { BFormCheckbox } from './form-checkbox'\nimport { BFormCheckboxGroup } from './form-checkbox-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormCheckboxPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormCheckbox,\n    BCheckbox: BFormCheckbox,\n    BCheck: BFormCheckbox,\n    BFormCheckboxGroup,\n    BCheckboxGroup: BFormCheckboxGroup,\n    BCheckGroup: BFormCheckboxGroup\n  }\n})\n\nexport { FormCheckboxPlugin, BFormCheckbox, BFormCheckboxGroup }\n\nexport default FormCheckboxPlugin\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formOptionsMixin from '../../mixins/form-options'\nimport formRadioCheckGroupMixin from '../../mixins/form-radio-check-group'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\n\nexport const props = {\n  checked: {\n    type: [String, Object, Number, Boolean],\n    default: null\n  }\n}\n\n// @vue/component\nexport const BFormRadioGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BFormRadioGroup',\n  mixins: [\n    idMixin,\n    formMixin,\n    formRadioCheckGroupMixin, // Includes render function\n    formOptionsMixin,\n    formSizeMixin,\n    formStateMixin\n  ],\n  provide() {\n    return {\n      bvRadioGroup: this\n    }\n  },\n  props,\n  data() {\n    return {\n      localChecked: this.checked\n    }\n  },\n  computed: {\n    isRadioGroup() {\n      return true\n    }\n  }\n})\n\nexport default BFormRadioGroup\n","import { BFormRadio } from './form-radio'\nimport { BFormRadioGroup } from './form-radio-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormRadioPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormRadio,\n    BRadio: BFormRadio,\n    BFormRadioGroup,\n    BRadioGroup: BFormRadioGroup\n  }\n})\n\nexport { FormRadioPlugin, BFormRadio, BFormRadioGroup }\n\nexport default FormRadioPlugin\n","import { isFunction, isNull, isUndefined } from '../utils/inspect'\n\n// @vue/component\nexport default {\n  model: {\n    prop: 'value',\n    event: 'update'\n  },\n  props: {\n    value: {\n      type: [String, Number],\n      default: ''\n    },\n    ariaInvalid: {\n      type: [Boolean, String],\n      default: false\n    },\n    readonly: {\n      type: Boolean,\n      default: false\n    },\n    plaintext: {\n      type: Boolean,\n      default: false\n    },\n    autocomplete: {\n      type: String,\n      default: null\n    },\n    placeholder: {\n      type: String,\n      default: null\n    },\n    formatter: {\n      type: Function,\n      default: null\n    },\n    trim: {\n      type: Boolean,\n      default: false\n    },\n    number: {\n      type: Boolean,\n      default: false\n    },\n    lazyFormatter: {\n      type: Boolean,\n      value: false\n    }\n  },\n  data() {\n    return {\n      localValue: this.stringifyValue(this.value)\n    }\n  },\n  computed: {\n    computedClass() {\n      return [\n        {\n          // Range input needs class custom-range\n          'custom-range': this.type === 'range',\n          // plaintext not supported by type=range or type=color\n          'form-control-plaintext':\n            this.plaintext && this.type !== 'range' && this.type !== 'color',\n          // form-control not used by type=range or plaintext. Always used by type=color\n          'form-control': (!this.plaintext && this.type !== 'range') || this.type === 'color'\n        },\n        this.sizeFormClass,\n        this.stateClass\n      ]\n    },\n    computedAriaInvalid() {\n      if (!this.ariaInvalid || this.ariaInvalid === 'false') {\n        // this.ariaInvalid is null or false or 'false'\n        return this.computedState === false ? 'true' : null\n      }\n      if (this.ariaInvalid === true) {\n        // User wants explicit aria-invalid=true\n        return 'true'\n      }\n      // Most likely a string value (which could be the string 'true')\n      return this.ariaInvalid\n    }\n  },\n  watch: {\n    value(newVal) {\n      if (newVal !== this.localValue) {\n        this.localValue = this.stringifyValue(newVal)\n      }\n    }\n  },\n  mounted() {\n    const value = this.stringifyValue(this.value)\n    if (value !== this.localValue) {\n      /* istanbul ignore next */\n      this.localValue = value\n    }\n  },\n  methods: {\n    stringifyValue(value) {\n      return isUndefined(value) || isNull(value) ? '' : String(value)\n    },\n    getFormatted(value, evt, force = false) {\n      value = this.stringifyValue(value)\n      if ((!this.lazyFormatter || force) && isFunction(this.formatter)) {\n        value = this.formatter(value, evt)\n      }\n      return value\n    },\n    updateValue(value) {\n      value = this.stringifyValue(value)\n      if (value !== this.localValue) {\n        // Keep the input set to the value before modifiers\n        this.localValue = value\n        if (this.number) {\n          // Emulate `.number` modifier behaviour\n          const num = parseFloat(value)\n          value = isNaN(num) ? value : num\n        } else if (this.trim) {\n          // Emulate `.trim` modifier behaviour\n          value = value.trim()\n        }\n        // Update the v-model\n        this.$emit('update', value)\n      } else if (this.$refs.input && value !== this.$refs.input.value) {\n        // When the `localValue` hasn't changed but the actual input value\n        // is out of sync, make sure to change it to the given one.\n        // Usually casued by browser autocomplete and how it triggers the\n        // change or input event, or depending on the formatter function.\n        // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n        // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n        /* istanbul ignore next: hard to test */\n        this.$refs.input.value = value\n      }\n    },\n    onInput(evt) {\n      // `evt.target.composing` is set by Vue\n      // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n      /* istanbul ignore if: hard to test composition events */\n      if (evt.target.composing) {\n        return\n      }\n      const formatted = this.getFormatted(evt.target.value, evt)\n      // Exit when the `formatter` function strictly returned `false`\n      // or prevented the input event\n      if (formatted === false || evt.defaultPrevented) {\n        /* istanbul ignore next */\n        evt.preventDefault()\n        return\n      }\n      this.updateValue(formatted)\n      this.$emit('input', formatted)\n    },\n    onChange(evt) {\n      // `evt.target.composing` is set by Vue\n      // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n      /* istanbul ignore if: hard to test composition events */\n      if (evt.target.composing) {\n        return\n      }\n      const formatted = this.getFormatted(evt.target.value, evt)\n      // Exit when the `formatter` function strictly returned `false`\n      // or prevented the input event\n      if (formatted === false || evt.defaultPrevented) {\n        /* istanbul ignore next */\n        evt.preventDefault()\n        return\n      }\n      this.updateValue(formatted)\n      this.$emit('change', formatted)\n    },\n    onBlur(evt) {\n      // Lazy formatter\n      if (this.lazyFormatter) {\n        const formatted = this.getFormatted(evt.target.value, evt, true)\n        // Exit when the `formatter` function strictly returned `false`\n        if (formatted === false) {\n          return\n        }\n        this.updateValue(formatted)\n      }\n      // Emit native blur event\n      this.$emit('blur', evt)\n    },\n    focus() {\n      // For external handler that may want a focus method\n      if (!this.disabled) {\n        this.$el.focus()\n      }\n    },\n    blur() {\n      // For external handler that may want a blur method\n      if (!this.disabled) {\n        this.$el.blur()\n      }\n    }\n  }\n}\n","// @vue/component\nexport default {\n  computed: {\n    selectionStart: {\n      // Expose selectionStart for formatters, etc\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.selectionStart\n      },\n      set(val) /* istanbul ignore next */ {\n        this.$refs.input.selectionStart = val\n      }\n    },\n    selectionEnd: {\n      // Expose selectionEnd for formatters, etc\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.selectionEnd\n      },\n      set(val) /* istanbul ignore next */ {\n        this.$refs.input.selectionEnd = val\n      }\n    },\n    selectionDirection: {\n      // Expose selectionDirection for formatters, etc\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.selectionDirection\n      },\n      set(val) /* istanbul ignore next */ {\n        this.$refs.input.selectionDirection = val\n      }\n    }\n  },\n  methods: {\n    select() /* istanbul ignore next */ {\n      // For external handler that may want a select() method\n      this.$refs.input.select(...arguments)\n    },\n    setSelectionRange() /* istanbul ignore next */ {\n      // For external handler that may want a setSelectionRange(a,b,c) method\n      this.$refs.input.setSelectionRange(...arguments)\n    },\n    setRangeText() /* istanbul ignore next */ {\n      // For external handler that may want a setRangeText(a,b,c) method\n      this.$refs.input.setRangeText(...arguments)\n    }\n  }\n}\n","// @vue/component\nexport default {\n  computed: {\n    validity: {\n      // Expose validity property\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.validity\n      }\n    },\n    validationMessage: {\n      // Expose validationMessage property\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.validationMessage\n      }\n    },\n    willValidate: {\n      // Expose willValidate property\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.willValidate\n      }\n    }\n  },\n  methods: {\n    setCustomValidity() /* istanbul ignore next */ {\n      // For external handler that may want a setCustomValidity(...) method\n      return this.$refs.input.setCustomValidity(...arguments)\n    },\n    checkValidity() /* istanbul ignore next */ {\n      // For external handler that may want a checkValidity(...) method\n      return this.$refs.input.checkValidity(...arguments)\n    },\n    reportValidity() /* istanbul ignore next */ {\n      // For external handler that may want a reportValidity(...) method\n      return this.$refs.input.reportValidity(...arguments)\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport formTextMixin from '../../mixins/form-text'\nimport formSelectionMixin from '../../mixins/form-selection'\nimport formValidityMixin from '../../mixins/form-validity'\nimport { arrayIncludes } from '../../utils/array'\nimport { eventOn, eventOff } from '../../utils/dom'\n\n// Valid supported input types\nconst TYPES = [\n  'text',\n  'password',\n  'email',\n  'number',\n  'url',\n  'tel',\n  'search',\n  'range',\n  'color',\n  'date',\n  'time',\n  'datetime',\n  'datetime-local',\n  'month',\n  'week'\n]\n\n// @vue/component\nexport const BFormInput = /*#__PURE__*/ Vue.extend({\n  name: 'BFormInput',\n  mixins: [\n    idMixin,\n    formMixin,\n    formSizeMixin,\n    formStateMixin,\n    formTextMixin,\n    formSelectionMixin,\n    formValidityMixin\n  ],\n  props: {\n    // value prop defined in form-text mixin\n    // value: { },\n    type: {\n      type: String,\n      default: 'text',\n      validator: type => arrayIncludes(TYPES, type)\n    },\n    noWheel: {\n      // Disable mousewheel to prevent wheel from changing values (i.e. number/date).\n      type: Boolean,\n      default: false\n    },\n    min: {\n      type: [String, Number],\n      default: null\n    },\n    max: {\n      type: [String, Number],\n      default: null\n    },\n    step: {\n      type: [String, Number],\n      default: null\n    },\n    list: {\n      type: String,\n      default: null\n    }\n  },\n  computed: {\n    localType() {\n      // We only allow certain types\n      return arrayIncludes(TYPES, this.type) ? this.type : 'text'\n    }\n  },\n  watch: {\n    noWheel(newVal) {\n      this.setWheelStopper(newVal)\n    }\n  },\n  mounted() {\n    this.setWheelStopper(this.noWheel)\n  },\n  deactivated() {\n    // Turn off listeners when keep-alive component deactivated\n    /* istanbul ignore next */\n    this.setWheelStopper(false)\n  },\n  activated() {\n    // Turn on listeners (if no-wheel) when keep-alive component activated\n    /* istanbul ignore next */\n    this.setWheelStopper(this.noWheel)\n  },\n  beforeDestroy() {\n    /* istanbul ignore next */\n    this.setWheelStopper(false)\n  },\n  methods: {\n    setWheelStopper(on) {\n      const input = this.$el\n      // We use native events, so that we don't interfere with propgation\n      if (on) {\n        eventOn(input, 'focus', this.onWheelFocus)\n        eventOn(input, 'blur', this.onWheelBlur)\n      } else {\n        eventOff(input, 'focus', this.onWheelFocus)\n        eventOff(input, 'blur', this.onWheelBlur)\n        eventOff(document, 'wheel', this.stopWheel)\n      }\n    },\n    onWheelFocus(evt) {\n      eventOn(document, 'wheel', this.stopWheel)\n    },\n    onWheelBlur(evt) {\n      eventOff(document, 'wheel', this.stopWheel)\n    },\n    stopWheel(evt) {\n      evt.preventDefault()\n      this.$el.blur()\n    }\n  },\n  render(h) {\n    var self = this\n    return h('input', {\n      ref: 'input',\n      class: self.computedClass,\n      directives: [\n        {\n          name: 'model',\n          rawName: 'v-model',\n          value: self.localValue,\n          expression: 'localValue'\n        }\n      ],\n      attrs: {\n        id: self.safeId(),\n        name: self.name,\n        form: self.form || null,\n        type: self.localType,\n        disabled: self.disabled,\n        placeholder: self.placeholder,\n        required: self.required,\n        autocomplete: self.autocomplete || null,\n        readonly: self.readonly || self.plaintext,\n        min: self.min,\n        max: self.max,\n        step: self.step,\n        list: self.localType !== 'password' ? self.list : null,\n        'aria-required': self.required ? 'true' : null,\n        'aria-invalid': self.computedAriaInvalid\n      },\n      domProps: {\n        value: self.localValue\n      },\n      on: {\n        ...self.$listeners,\n        input: self.onInput,\n        change: self.onChange,\n        blur: self.onBlur\n      }\n    })\n  }\n})\n\nexport default BFormInput\n","import { BFormInput } from './form-input'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormInputPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormInput,\n    BInput: BFormInput\n  }\n})\n\nexport { FormInputPlugin, BFormInput }\n\nexport default FormInputPlugin\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport formTextMixin from '../../mixins/form-text'\nimport formSelectionMixin from '../../mixins/form-selection'\nimport formValidityMixin from '../../mixins/form-validity'\nimport { getCS, isVisible } from '../../utils/dom'\nimport { isNull } from '../../utils/inspect'\n\n// @vue/component\nexport const BFormTextarea = /*#__PURE__*/ Vue.extend({\n  name: 'BFormTextarea',\n  mixins: [\n    idMixin,\n    formMixin,\n    formSizeMixin,\n    formStateMixin,\n    formTextMixin,\n    formSelectionMixin,\n    formValidityMixin\n  ],\n  props: {\n    rows: {\n      type: [Number, String],\n      default: 2\n    },\n    maxRows: {\n      type: [Number, String],\n      default: null\n    },\n    wrap: {\n      // 'soft', 'hard' or 'off'. Browser default is 'soft'\n      type: String,\n      default: 'soft'\n    },\n    noResize: {\n      // Disable the resize handle of textarea\n      type: Boolean,\n      default: false\n    },\n    noAutoShrink: {\n      // When in auto resize mode, disable shrinking to content height\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      dontResize: true,\n      heightInPx: null\n    }\n  },\n  computed: {\n    computedStyle() {\n      const styles = {\n        // Setting `noResize` to true will disable the ability for the user to\n        // manually resize the textarea. We also disable when in auto height mode\n        resize: !this.computedRows || this.noResize ? 'none' : null\n      }\n      if (!this.computedRows) {\n        // Conditionaly set the computed CSS height when auto rows/height is enabled.\n        // We avoid setting the style to null, which can override user manual resize handle.\n        styles.height = this.heightInPx\n        // We always add a vertical scrollbar to the textarea when auto-height is\n        // enabled so that the computed height calcaultion returns a stable value.\n        styles.overflowY = 'scroll'\n      }\n      return styles\n    },\n    computedMinRows() {\n      // Ensure rows is at least 2 and positive (2 is the native textarea value).\n      // A value of 1 can cause issues in some browsers, and most browsers only support\n      // 2 as the smallest value.\n      return Math.max(parseInt(this.rows, 10) || 2, 2)\n    },\n    computedMaxRows() {\n      return Math.max(this.computedMinRows, parseInt(this.maxRows, 10) || 0)\n    },\n    computedRows() {\n      // This is used to set the attribute 'rows' on the textarea.\n      // If auto-height is enabled, then we return null as we use CSS to control height.\n      return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null\n    }\n  },\n  watch: {\n    dontResize(newVal, oldval) {\n      if (!newVal) {\n        this.setHeight()\n      }\n    },\n    localValue(newVal, oldVal) {\n      this.setHeight()\n    }\n  },\n  mounted() {\n    // Enable opt-in resizing once mounted\n    this.$nextTick(() => {\n      this.dontResize = false\n    })\n  },\n  activated() {\n    // If we are being re-activated in <keep-alive>, enable opt-in resizing\n    this.$nextTick(() => {\n      this.dontResize = false\n    })\n  },\n  deactivated() {\n    // If we are in a deactivated <keep-alive>, disable opt-in resizing\n    this.dontResize = true\n  },\n  beforeDestroy() {\n    /* istanbul ignore next */\n    this.dontResize = true\n  },\n  methods: {\n    setHeight() {\n      this.$nextTick(() => {\n        this.heightInPx = this.computeHeight()\n      })\n    },\n    computeHeight() /* istanbul ignore next: can't test getComputedStyle in JSDOM */ {\n      if (this.$isServer || !isNull(this.computedRows)) {\n        return null\n      }\n\n      const el = this.$el\n\n      // Element must be visible (not hidden) and in document.\n      // Must be checked after above checks\n      if (!isVisible(el)) {\n        return null\n      }\n\n      // Get current computed styles\n      const computedStyle = getCS(el)\n      // Height of one line of text in px\n      const lineHeight = parseFloat(computedStyle.lineHeight)\n      // Calculate height of border and padding\n      const border =\n        (parseFloat(computedStyle.borderTopWidth) || 0) +\n        (parseFloat(computedStyle.borderBottomWidth) || 0)\n      const padding =\n        (parseFloat(computedStyle.paddingTop) || 0) + (parseFloat(computedStyle.paddingBottom) || 0)\n      // Calculate offset\n      const offset = border + padding\n      // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n      const minHeight = lineHeight * this.computedMinRows + offset\n\n      // Get the current style height (with `px` units)\n      const oldHeight = el.style.height || computedStyle.height\n      // Probe scrollHeight by temporarily changing the height to `auto`\n      el.style.height = 'auto'\n      const scrollHeight = el.scrollHeight\n      // Place the original old height back on the element, just in case this computedProp\n      // returns the same value as before.\n      el.style.height = oldHeight\n\n      // Calculate content height in \"rows\" (scrollHeight includes padding but not border)\n      const contentRows = Math.max((scrollHeight - padding) / lineHeight, 2)\n      // Calculate number of rows to display (limited within min/max rows)\n      const rows = Math.min(Math.max(contentRows, this.computedMinRows), this.computedMaxRows)\n      // Calculate the required height of the textarea including border and padding (in pixels)\n      const height = Math.max(Math.ceil(rows * lineHeight + offset), minHeight)\n\n      // Computed height remains the larger of oldHeight and new height,\n      // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n      if (this.noAutoShrink && (parseFloat(oldHeight) || 0) > height) {\n        return oldHeight\n      }\n\n      // Return the new computed CSS height in px units\n      return `${height}px`\n    }\n  },\n  render(h) {\n    // Using self instead of this helps reduce code size during minification\n    const self = this\n    return h('textarea', {\n      ref: 'input',\n      class: self.computedClass,\n      style: self.computedStyle,\n      directives: [\n        {\n          name: 'model',\n          rawName: 'v-model',\n          value: self.localValue,\n          expression: 'localValue'\n        }\n      ],\n      attrs: {\n        id: self.safeId(),\n        name: self.name,\n        form: self.form || null,\n        disabled: self.disabled,\n        placeholder: self.placeholder,\n        required: self.required,\n        autocomplete: self.autocomplete || null,\n        readonly: self.readonly || self.plaintext,\n        rows: self.computedRows,\n        wrap: self.wrap || null,\n        'aria-required': self.required ? 'true' : null,\n        'aria-invalid': self.computedAriaInvalid\n      },\n      domProps: {\n        value: self.localValue\n      },\n      on: {\n        ...self.$listeners,\n        input: self.onInput,\n        change: self.onChange,\n        blur: self.onBlur\n      }\n    })\n  }\n})\n\nexport default BFormTextarea\n","import { BFormTextarea } from './form-textarea'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormTextareaPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormTextarea,\n    BTextarea: BFormTextarea\n  }\n})\n\nexport { FormTextareaPlugin, BFormTextarea }\n\nexport default FormTextareaPlugin\n","// @vue/component\nexport default {\n  props: {\n    plain: {\n      type: Boolean,\n      default: false\n    }\n  },\n  computed: {\n    custom() {\n      return !this.plain\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport { from as arrayFrom, isArray, concat } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { isFunction } from '../../utils/inspect'\nimport formCustomMixin from '../../mixins/form-custom'\nimport formMixin from '../../mixins/form'\nimport formStateMixin from '../../mixins/form-state'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\nconst NAME = 'BFormFile'\n\n// @vue/component\nexport const BFormFile = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [idMixin, formMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props: {\n    value: {\n      // type: Object,\n      default: null\n    },\n    accept: {\n      type: String,\n      default: ''\n    },\n    // Instruct input to capture from camera\n    capture: {\n      type: Boolean,\n      default: false\n    },\n    placeholder: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'placeholder')\n    },\n    browseText: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'browseText')\n    },\n    dropPlaceholder: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'dropPlaceholder')\n    },\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    directory: {\n      type: Boolean,\n      default: false\n    },\n    noTraverse: {\n      type: Boolean,\n      default: false\n    },\n    noDrop: {\n      type: Boolean,\n      default: false\n    },\n    fileNameFormatter: {\n      type: Function,\n      default: null\n    }\n  },\n  data() {\n    return {\n      selectedFile: null,\n      dragging: false,\n      hasFocus: false\n    }\n  },\n  computed: {\n    selectLabel() {\n      // Draging active\n      if (this.dragging && this.dropPlaceholder) {\n        return this.dropPlaceholder\n      }\n\n      // No file chosen\n      if (!this.selectedFile || this.selectedFile.length === 0) {\n        return this.placeholder\n      }\n\n      // Convert selectedFile to an array (if not already one)\n      const files = concat(this.selectedFile).filter(Boolean)\n\n      if (this.hasNormalizedSlot('file-name')) {\n        // There is a slot for formatting the files/names\n        return [\n          this.normalizeSlot('file-name', {\n            files: files,\n            names: files.map(f => f.name)\n          })\n        ]\n      } else {\n        // Use the user supplied formatter, or the built in one.\n        return isFunction(this.fileNameFormatter)\n          ? String(this.fileNameFormatter(files))\n          : files.map(file => file.name).join(', ')\n      }\n    }\n  },\n  watch: {\n    selectedFile(newVal, oldVal) {\n      // The following test is needed when the file input is \"reset\" or the\n      // exact same file(s) are selected to prevent an infinite loop.\n      // When in `multiple` mode we need to check for two empty arrays or\n      // two arrays with identical files\n      if (\n        newVal === oldVal ||\n        (isArray(newVal) &&\n          isArray(oldVal) &&\n          newVal.length === oldVal.length &&\n          newVal.every((v, i) => v === oldVal[i]))\n      ) {\n        return\n      }\n      if (!newVal && this.multiple) {\n        this.$emit('input', [])\n      } else {\n        this.$emit('input', newVal)\n      }\n    },\n    value(newVal) {\n      if (!newVal || (isArray(newVal) && newVal.length === 0)) {\n        this.reset()\n      }\n    }\n  },\n  methods: {\n    focusHandler(evt) {\n      // Bootstrap v4 doesn't have focus styling for custom file input\n      // Firefox has a '[type=file]:focus ~ sibling' selector issue,\n      // so we add a 'focus' class to get around these bugs\n      if (this.plain || evt.type === 'focusout') {\n        this.hasFocus = false\n      } else {\n        // Add focus styling for custom file input\n        this.hasFocus = true\n      }\n    },\n    reset() {\n      try {\n        // Wrapped in try in case IE 11 craps out\n        this.$refs.input.value = ''\n      } catch (e) {}\n      // IE 11 doesn't support setting `input.value` to '' or null\n      // So we use this little extra hack to reset the value, just in case.\n      // This also appears to work on modern browsers as well.\n      this.$refs.input.type = ''\n      this.$refs.input.type = 'file'\n      this.selectedFile = this.multiple ? [] : null\n    },\n    onFileChange(evt) {\n      // Always emit original event\n      this.$emit('change', evt)\n      // Check if special `items` prop is available on event (drop mode)\n      // Can be disabled by setting no-traverse\n      const items = evt.dataTransfer && evt.dataTransfer.items\n      /* istanbul ignore next: not supported in JSDOM */\n      if (items && !this.noTraverse) {\n        const queue = []\n        for (let i = 0; i < items.length; i++) {\n          const item = items[i].webkitGetAsEntry()\n          if (item) {\n            queue.push(this.traverseFileTree(item))\n          }\n        }\n        Promise.all(queue).then(filesArr => {\n          this.setFiles(arrayFrom(filesArr))\n        })\n        return\n      }\n      // Normal handling\n      this.setFiles(evt.target.files || evt.dataTransfer.files)\n    },\n    setFiles(files = []) {\n      if (!files) {\n        /* istanbul ignore next: this will probably not happen */\n        this.selectedFile = null\n      } else if (this.multiple) {\n        // Convert files to array\n        const filesArray = []\n        for (let i = 0; i < files.length; i++) {\n          filesArray.push(files[i])\n        }\n        // Return file(s) as array\n        this.selectedFile = filesArray\n      } else {\n        // Return single file object\n        this.selectedFile = files[0] || null\n      }\n    },\n    onReset() {\n      // Triggered when the parent form (if any) is reset\n      this.selectedFile = this.multiple ? [] : null\n    },\n    onDragover(evt) /* istanbul ignore next: difficult to test in JSDOM */ {\n      evt.preventDefault()\n      evt.stopPropagation()\n      if (this.noDrop || !this.custom) {\n        return\n      }\n      this.dragging = true\n      evt.dataTransfer.dropEffect = 'copy'\n    },\n    onDragleave(evt) /* istanbul ignore next: difficult to test in JSDOM */ {\n      evt.preventDefault()\n      evt.stopPropagation()\n      this.dragging = false\n    },\n    onDrop(evt) /* istanbul ignore next: difficult to test in JSDOM */ {\n      evt.preventDefault()\n      evt.stopPropagation()\n      if (this.noDrop) {\n        return\n      }\n      this.dragging = false\n      if (evt.dataTransfer.files && evt.dataTransfer.files.length > 0) {\n        this.onFileChange(evt)\n      }\n    },\n    traverseFileTree(item, path) /* istanbul ignore next: not supported in JSDOM */ {\n      // Based on http://stackoverflow.com/questions/3590058\n      return new Promise(resolve => {\n        path = path || ''\n        if (item.isFile) {\n          // Get file\n          item.file(file => {\n            file.$path = path // Inject $path to file obj\n            resolve(file)\n          })\n        } else if (item.isDirectory) {\n          // Get folder contents\n          item.createReader().readEntries(entries => {\n            const queue = []\n            for (let i = 0; i < entries.length; i++) {\n              queue.push(this.traverseFileTree(entries[i], path + item.name + '/'))\n            }\n            Promise.all(queue).then(filesArr => {\n              resolve(arrayFrom(filesArr))\n            })\n          })\n        }\n      })\n    }\n  },\n  render(h) {\n    // Form Input\n    const input = h('input', {\n      ref: 'input',\n      class: [\n        {\n          'form-control-file': this.plain,\n          'custom-file-input': this.custom,\n          focus: this.custom && this.hasFocus\n        },\n        this.stateClass\n      ],\n      attrs: {\n        type: 'file',\n        id: this.safeId(),\n        name: this.name,\n        disabled: this.disabled,\n        required: this.required,\n        form: this.form || null,\n        capture: this.capture || null,\n        accept: this.accept || null,\n        multiple: this.multiple,\n        webkitdirectory: this.directory,\n        'aria-required': this.required ? 'true' : null\n      },\n      on: {\n        change: this.onFileChange,\n        focusin: this.focusHandler,\n        focusout: this.focusHandler,\n        reset: this.onReset\n      }\n    })\n\n    if (this.plain) {\n      return input\n    }\n\n    // Overlay Labels\n    const label = h(\n      'label',\n      {\n        staticClass: 'custom-file-label',\n        class: [this.dragging ? 'dragging' : null],\n        attrs: {\n          for: this.safeId(),\n          'data-browse': this.browseText || null\n        }\n      },\n      this.selectLabel\n    )\n\n    // Return rendered custom file input\n    return h(\n      'div',\n      {\n        staticClass: 'custom-file b-form-file',\n        class: this.stateClass,\n        attrs: { id: this.safeId('_BV_file_outer_') },\n        on: {\n          dragover: this.onDragover,\n          dragleave: this.onDragleave,\n          drop: this.onDrop\n        }\n      },\n      [input, label]\n    )\n  }\n})\n\nexport default BFormFile\n","import { BFormFile } from './form-file'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormFilePlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormFile,\n    BFile: BFormFile\n  }\n})\n\nexport { FormFilePlugin, BFormFile }\n\nexport default FormFilePlugin\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formOptionsMixin from '../../mixins/form-options'\nimport formMixin from '../../mixins/form'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport formCustomMixin from '../../mixins/form-custom'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { from as arrayFrom } from '../../utils/array'\nimport { htmlOrText } from '../../utils/html'\n\n// @vue/component\nexport const BFormSelect = /*#__PURE__*/ Vue.extend({\n  name: 'BFormSelect',\n  mixins: [\n    idMixin,\n    normalizeSlotMixin,\n    formMixin,\n    formSizeMixin,\n    formStateMixin,\n    formCustomMixin,\n    formOptionsMixin\n  ],\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props: {\n    value: {\n      // type: [Object, Array, String, Number, Boolean],\n      // default: undefined\n    },\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    selectSize: {\n      // Browsers default size to 0, which shows 4 rows in most browsers in multiple mode\n      // Size of 1 can bork out Firefox\n      type: Number,\n      default: 0\n    },\n    ariaInvalid: {\n      type: [Boolean, String],\n      default: false\n    }\n  },\n  data() {\n    return {\n      localValue: this.value\n    }\n  },\n  computed: {\n    computedSelectSize() {\n      // Custom selects with a size of zero causes the arrows to be hidden,\n      // so dont render the size attribute in this case\n      return !this.plain && this.selectSize === 0 ? null : this.selectSize\n    },\n    inputClass() {\n      return [\n        this.plain ? 'form-control' : 'custom-select',\n        this.size && this.plain ? `form-control-${this.size}` : null,\n        this.size && !this.plain ? `custom-select-${this.size}` : null,\n        this.stateClass\n      ]\n    },\n    computedAriaInvalid() {\n      if (this.ariaInvalid === true || this.ariaInvalid === 'true') {\n        return 'true'\n      }\n      return this.stateClass === 'is-invalid' ? 'true' : null\n    }\n  },\n  watch: {\n    value(newVal, oldVal) {\n      this.localValue = newVal\n    },\n    localValue(newVal, oldVal) {\n      this.$emit('input', this.localValue)\n    }\n  },\n  methods: {\n    focus() {\n      this.$refs.input.focus()\n    },\n    blur() {\n      this.$refs.input.blur()\n    }\n  },\n  render(h) {\n    const options = this.formOptions.map((option, index) => {\n      return h('option', {\n        key: `option_${index}_opt`,\n        attrs: { disabled: Boolean(option.disabled) },\n        domProps: { ...htmlOrText(option.html, option.text), value: option.value }\n      })\n    })\n    return h(\n      'select',\n      {\n        ref: 'input',\n        class: this.inputClass,\n        directives: [\n          {\n            name: 'model',\n            rawName: 'v-model',\n            value: this.localValue,\n            expression: 'localValue'\n          }\n        ],\n        attrs: {\n          id: this.safeId(),\n          name: this.name,\n          form: this.form || null,\n          multiple: this.multiple || null,\n          size: this.computedSelectSize,\n          disabled: this.disabled,\n          required: this.required,\n          'aria-required': this.required ? 'true' : null,\n          'aria-invalid': this.computedAriaInvalid\n        },\n        on: {\n          change: evt => {\n            const target = evt.target\n            const selectedVal = arrayFrom(target.options)\n              .filter(o => o.selected)\n              .map(o => ('_value' in o ? o._value : o.value))\n            this.localValue = target.multiple ? selectedVal : selectedVal[0]\n            this.$nextTick(() => {\n              this.$emit('change', this.localValue)\n            })\n          }\n        }\n      },\n      [this.normalizeSlot('first'), options, this.normalizeSlot('default')]\n    )\n  }\n})\n\nexport default BFormSelect\n","import { BFormSelect } from './form-select'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormSelectPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormSelect,\n    BSelect: BFormSelect\n  }\n})\n\nexport { FormSelectPlugin, BFormSelect }\n\nexport default FormSelectPlugin\n","import { BImg } from './img'\nimport { BImgLazy } from './img-lazy'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ImagePlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BImg,\n    BImgLazy\n  }\n})\n\nexport { ImagePlugin, BImg, BImgLazy }\n\nexport default ImagePlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  }\n}\n\n// @vue/component\nexport const BInputGroupText = /*#__PURE__*/ Vue.extend({\n  name: 'BInputGroupText',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'input-group-text'\n      }),\n      children\n    )\n  }\n})\n\nexport default BInputGroupText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BInputGroupText } from './input-group-text'\n\nexport const commonProps = {\n  id: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  isText: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BInputGroupAddon = /*#__PURE__*/ Vue.extend({\n  name: 'BInputGroupAddon',\n  functional: true,\n  props: {\n    ...commonProps,\n    append: {\n      type: Boolean,\n      default: false\n    }\n  },\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          'input-group-append': props.append,\n          'input-group-prepend': !props.append\n        },\n        attrs: {\n          id: props.id\n        }\n      }),\n      props.isText ? [h(BInputGroupText, children)] : children\n    )\n  }\n})\n\nexport default BInputGroupAddon\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BInputGroupAddon, commonProps } from './input-group-addon'\n\n// @vue/component\nexport const BInputGroupPrepend = /*#__PURE__*/ Vue.extend({\n  name: 'BInputGroupPrepend',\n  functional: true,\n  props: commonProps,\n  render(h, { props, data, children }) {\n    // pass all our props/attrs down to child, and set`append` to false\n    return h(\n      BInputGroupAddon,\n      mergeData(data, {\n        props: { ...props, append: false }\n      }),\n      children\n    )\n  }\n})\n\nexport default BInputGroupPrepend\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BInputGroupAddon, commonProps } from './input-group-addon'\n\n// @vue/component\nexport const BInputGroupAppend = /*#__PURE__*/ Vue.extend({\n  name: 'BInputGroupAppend',\n  functional: true,\n  props: commonProps,\n  render(h, { props, data, children }) {\n    // pass all our props/attrs down to child, and set`append` to true\n    return h(\n      BInputGroupAddon,\n      mergeData(data, {\n        props: { ...props, append: true }\n      }),\n      children\n    )\n  }\n})\n\nexport default BInputGroupAppend\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { htmlOrText } from '../../utils/html'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\nimport { BInputGroupPrepend } from './input-group-prepend'\nimport { BInputGroupAppend } from './input-group-append'\nimport { BInputGroupText } from './input-group-text'\n\nexport const props = {\n  id: {\n    type: String\n  },\n  size: {\n    type: String\n  },\n  prepend: {\n    type: String\n  },\n  prependHtml: {\n    type: String\n  },\n  append: {\n    type: String\n  },\n  appendHtml: {\n    type: String\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  }\n}\n\n// @vue/component\nexport const BInputGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BInputGroup',\n  functional: true,\n  props: props,\n  render(h, { props, data, slots, scopedSlots }) {\n    const $slots = slots()\n    const $scopedSlots = scopedSlots || {}\n\n    const childNodes = []\n\n    // Prepend prop/slot\n    if (props.prepend || props.prependHtml || hasNormalizedSlot('prepend', $scopedSlots, $slots)) {\n      childNodes.push(\n        h(BInputGroupPrepend, [\n          // Prop\n          props.prepend || props.prependHtml\n            ? h(BInputGroupText, { domProps: htmlOrText(props.prependHtml, props.prepend) })\n            : h(),\n          // Slot\n          normalizeSlot('prepend', {}, $scopedSlots, $slots) || h()\n        ])\n      )\n    } else {\n      childNodes.push(h())\n    }\n\n    // Default slot\n    if (hasNormalizedSlot('default', $scopedSlots, $slots)) {\n      childNodes.push(...normalizeSlot('default', {}, $scopedSlots, $slots))\n    } else {\n      childNodes.push(h())\n    }\n\n    // Append prop\n    if (props.append || props.appendHtml || hasNormalizedSlot('append', $scopedSlots, $slots)) {\n      childNodes.push(\n        h(BInputGroupAppend, [\n          // prop\n          props.append || props.appendHtml\n            ? h(BInputGroupText, { domProps: htmlOrText(props.appendHtml, props.append) })\n            : h(),\n          // Slot\n          normalizeSlot('append', {}, $scopedSlots, $slots) || h()\n        ])\n      )\n    } else {\n      childNodes.push(h())\n    }\n\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'input-group',\n        class: {\n          [`input-group-${props.size}`]: Boolean(props.size)\n        },\n        attrs: {\n          id: props.id || null,\n          role: 'group'\n        }\n      }),\n      childNodes\n    )\n  }\n})\n\nexport default BInputGroup\n","import { BInputGroup } from './input-group'\nimport { BInputGroupAddon } from './input-group-addon'\nimport { BInputGroupPrepend } from './input-group-prepend'\nimport { BInputGroupAppend } from './input-group-append'\nimport { BInputGroupText } from './input-group-text'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst InputGroupPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BInputGroup,\n    BInputGroupAddon,\n    BInputGroupPrepend,\n    BInputGroupAppend,\n    BInputGroupText\n  }\n})\n\nexport {\n  InputGroupPlugin,\n  BInputGroup,\n  BInputGroupAddon,\n  BInputGroupPrepend,\n  BInputGroupAppend,\n  BInputGroupText\n}\n\nexport default InputGroupPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  fluid: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BContainer = /*#__PURE__*/ Vue.extend({\n  name: 'BContainer',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          container: !props.fluid,\n          'container-fluid': props.fluid\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BContainer\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { stripTags } from '../../utils/html'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\nimport { BContainer } from '../layout/container'\n\nconst NAME = 'BJumbotron'\n\nexport const props = {\n  fluid: {\n    type: Boolean,\n    default: false\n  },\n  containerFluid: {\n    type: Boolean,\n    default: false\n  },\n  header: {\n    type: String,\n    default: null\n  },\n  headerHtml: {\n    type: String,\n    default: null\n  },\n  headerTag: {\n    type: String,\n    default: 'h1'\n  },\n  headerLevel: {\n    type: [Number, String],\n    default: '3'\n  },\n  lead: {\n    type: String,\n    default: null\n  },\n  leadHtml: {\n    type: String,\n    default: null\n  },\n  leadTag: {\n    type: String,\n    default: 'p'\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  bgVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'bgVariant')\n  },\n  borderVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'borderVariant')\n  },\n  textVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'textVariant')\n  }\n}\n\n// @vue/component\nexport const BJumbotron = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, slots, scopedSlots }) {\n    // The order of the conditionals matter.\n    // We are building the component markup in order.\n    let childNodes = []\n    const $slots = slots()\n    const $scopedSlots = scopedSlots || {}\n\n    // Header\n    if (props.header || hasNormalizedSlot('header', $scopedSlots, $slots) || props.headerHtml) {\n      childNodes.push(\n        h(\n          props.headerTag,\n          {\n            class: {\n              [`display-${props.headerLevel}`]: Boolean(props.headerLevel)\n            }\n          },\n          normalizeSlot('header', {}, $scopedSlots, $slots) ||\n            props.headerHtml ||\n            stripTags(props.header)\n        )\n      )\n    }\n\n    // Lead\n    if (props.lead || hasNormalizedSlot('lead', $scopedSlots, $slots) || props.leadHtml) {\n      childNodes.push(\n        h(\n          props.leadTag,\n          { staticClass: 'lead' },\n          normalizeSlot('lead', {}, $scopedSlots, $slots) || props.leadHtml || stripTags(props.lead)\n        )\n      )\n    }\n\n    // Default slot\n    if (hasNormalizedSlot('default', $scopedSlots, $slots)) {\n      childNodes.push(normalizeSlot('default', {}, $scopedSlots, $slots))\n    }\n\n    // If fluid, wrap content in a container/container-fluid\n    if (props.fluid) {\n      // Children become a child of a container\n      childNodes = [h(BContainer, { props: { fluid: props.containerFluid } }, childNodes)]\n    }\n    // Return the jumbotron\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'jumbotron',\n        class: {\n          'jumbotron-fluid': props.fluid,\n          [`text-${props.textVariant}`]: Boolean(props.textVariant),\n          [`bg-${props.bgVariant}`]: Boolean(props.bgVariant),\n          [`border-${props.borderVariant}`]: Boolean(props.borderVariant),\n          border: Boolean(props.borderVariant)\n        }\n      }),\n      childNodes\n    )\n  }\n})\n\nexport default BJumbotron\n","import { BJumbotron } from './jumbotron'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst JumbotronPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BJumbotron }\n})\n\nexport { JumbotronPlugin, BJumbotron }\n\nexport default JumbotronPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { arrayIncludes } from '../../utils/array'\n\nconst COMMON_ALIGNMENT = ['start', 'end', 'center']\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  noGutters: {\n    type: Boolean,\n    default: false\n  },\n  alignV: {\n    type: String,\n    default: null,\n    validator: str => arrayIncludes(COMMON_ALIGNMENT.concat(['baseline', 'stretch']), str)\n  },\n  alignH: {\n    type: String,\n    default: null,\n    validator: str => arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around']), str)\n  },\n  alignContent: {\n    type: String,\n    default: null,\n    validator: str => arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around', 'stretch']), str)\n  }\n}\n\n// @vue/component\nexport const BRow = /*#__PURE__*/ Vue.extend({\n  name: 'BRow',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'row',\n        class: {\n          'no-gutters': props.noGutters,\n          [`align-items-${props.alignV}`]: props.alignV,\n          [`justify-content-${props.alignH}`]: props.alignH,\n          [`align-content-${props.alignContent}`]: props.alignContent\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BRow\n","import { BContainer } from './container'\nimport { BRow } from './row'\nimport { BCol } from './col'\nimport { BFormRow } from './form-row'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst LayoutPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BContainer,\n    BRow,\n    BCol,\n    BFormRow\n  }\n})\n\nexport { LayoutPlugin, BContainer, BRow, BCol, BFormRow }\n\nexport default LayoutPlugin\n","import { BLink } from './link'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst LinkPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BLink }\n})\n\nexport { LinkPlugin, BLink }\n\nexport default LinkPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { isString } from '../../utils/inspect'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  flush: {\n    type: Boolean,\n    default: false\n  },\n  horizontal: {\n    type: [Boolean, String],\n    default: false\n  }\n}\n\n// @vue/component\nexport const BListGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BListGroup',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    let horizontal = props.horizontal === '' ? true : props.horizontal\n    horizontal = props.flush ? false : horizontal\n    const componentData = {\n      staticClass: 'list-group',\n      class: {\n        'list-group-flush': props.flush,\n        'list-group-horizontal': horizontal === true,\n        [`list-group-horizontal-${horizontal}`]: isString(horizontal)\n      }\n    }\n    return h(props.tag, mergeData(data, componentData), children)\n  }\n})\n\nexport default BListGroup\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { arrayIncludes } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nconst NAME = 'BListGroupItem'\n\nconst actionTags = ['a', 'router-link', 'button', 'b-link']\nconst linkProps = linkPropsFactory()\ndelete linkProps.href.default\ndelete linkProps.to.default\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  action: {\n    type: Boolean,\n    default: null\n  },\n  button: {\n    type: Boolean,\n    default: null\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  ...linkProps\n}\n// @vue/component\nexport const BListGroupItem = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    const tag = props.button ? 'button' : !props.href && !props.to ? props.tag : BLink\n    const isAction = Boolean(\n      props.href || props.to || props.action || props.button || arrayIncludes(actionTags, props.tag)\n    )\n    const attrs = {}\n    let itemProps = {}\n    if (tag === 'button') {\n      if (!data.attrs || !data.attrs.type) {\n        // Add a type for button is one not provided in passed attributes\n        attrs.type = 'button'\n      }\n      if (props.disabled) {\n        // Set disabled attribute if button and disabled\n        attrs.disabled = true\n      }\n    } else {\n      itemProps = pluckProps(linkProps, props)\n    }\n    const componentData = {\n      attrs,\n      props: itemProps,\n      staticClass: 'list-group-item',\n      class: {\n        [`list-group-item-${props.variant}`]: Boolean(props.variant),\n        'list-group-item-action': isAction,\n        active: props.active,\n        disabled: props.disabled\n      }\n    }\n\n    return h(tag, mergeData(data, componentData), children)\n  }\n})\n\nexport default BListGroupItem\n","import { BListGroup } from './list-group'\nimport { BListGroupItem } from './list-group-item'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ListGroupPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BListGroup,\n    BListGroupItem\n  }\n})\n\nexport { ListGroupPlugin, BListGroup, BListGroupItem }\n\nexport default ListGroupPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  }\n}\n\n// @vue/component\nexport const BMediaBody = /*#__PURE__*/ Vue.extend({\n  name: 'BMediaBody',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'media-body'\n      }),\n      children\n    )\n  }\n})\n\nexport default BMediaBody\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  verticalAlign: {\n    type: String,\n    default: 'top'\n  }\n}\n\n// @vue/component\nexport const BMediaAside = /*#__PURE__*/ Vue.extend({\n  name: 'BMediaAside',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'd-flex',\n        class: {\n          [`align-self-${props.verticalAlign}`]: props.verticalAlign\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BMediaAside\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { normalizeSlot } from '../../utils/normalize-slot'\nimport { BMediaBody } from './media-body'\nimport { BMediaAside } from './media-aside'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  rightAlign: {\n    type: Boolean,\n    default: false\n  },\n  verticalAlign: {\n    type: String,\n    default: 'top'\n  },\n  noBody: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BMedia = /*#__PURE__*/ Vue.extend({\n  name: 'BMedia',\n  functional: true,\n  props,\n  render(h, { props, data, slots, scopedSlots, children }) {\n    const childNodes = props.noBody ? children : []\n\n    if (!props.noBody) {\n      const $slots = slots()\n      const $scopedSlots = scopedSlots || {}\n      const $aside = normalizeSlot('aside', {}, $scopedSlots, $slots)\n      const $default = normalizeSlot('default', {}, $scopedSlots, $slots)\n\n      if ($aside && !props.rightAlign) {\n        childNodes.push(\n          h(\n            BMediaAside,\n            { staticClass: 'mr-3', props: { verticalAlign: props.verticalAlign } },\n            $aside\n          )\n        )\n      }\n\n      childNodes.push(h(BMediaBody, {}, $default))\n\n      if ($aside && props.rightAlign) {\n        childNodes.push(\n          h(\n            BMediaAside,\n            { staticClass: 'ml-3', props: { verticalAlign: props.verticalAlign } },\n            $aside\n          )\n        )\n      }\n    }\n\n    return h(props.tag, mergeData(data, { staticClass: 'media' }), childNodes)\n  }\n})\n\nexport default BMedia\n","import { BMedia } from './media'\nimport { BMediaAside } from './media-aside'\nimport { BMediaBody } from './media-body'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst MediaPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BMedia,\n    BMediaAside,\n    BMediaBody\n  }\n})\n\nexport { MediaPlugin, BMedia, BMediaAside, BMediaBody }\n\nexport default MediaPlugin\n","/**\n * Private ModalManager helper\n * Handles controlling modal stacking zIndexes and body adjustments/classes\n */\n\nimport Vue from '../../../utils/vue'\nimport {\n  getAttr,\n  hasAttr,\n  removeAttr,\n  setAttr,\n  addClass,\n  removeClass,\n  getBCR,\n  getCS,\n  selectAll,\n  requestAF\n} from '../../../utils/dom'\nimport { isBrowser } from '../../../utils/env'\nimport { isNull } from '../../../utils/inspect'\n\n// --- Constants ---\n\n// Default modal backdrop z-index\nconst DEFAULT_ZINDEX = 1040\n\n// Selectors for padding/margin adjustments\nconst Selector = {\n  FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n  STICKY_CONTENT: '.sticky-top',\n  NAVBAR_TOGGLER: '.navbar-toggler'\n}\n\n// @vue/component\nconst ModalManager = /*#__PURE__*/ Vue.extend({\n  data() {\n    return {\n      modals: [],\n      baseZIndex: null,\n      scrollbarWidth: null,\n      isBodyOverflowing: false\n    }\n  },\n  computed: {\n    modalCount() {\n      return this.modals.length\n    },\n    modalsAreOpen() {\n      return this.modalCount > 0\n    }\n  },\n  watch: {\n    modalCount(newCount, oldCount) {\n      if (isBrowser) {\n        this.getScrollbarWidth()\n        if (newCount > 0 && oldCount === 0) {\n          // Transitioning to modal(s) open\n          this.checkScrollbar()\n          this.setScrollbar()\n          addClass(document.body, 'modal-open')\n        } else if (newCount === 0 && oldCount > 0) {\n          // Transitioning to modal(s) closed\n          this.resetScrollbar()\n          removeClass(document.body, 'modal-open')\n        }\n        setAttr(document.body, 'data-modal-open-count', String(newCount))\n      }\n    },\n    modals(newVal, oldVal) {\n      this.checkScrollbar()\n      requestAF(() => {\n        this.updateModals(newVal || [])\n      })\n    }\n  },\n  methods: {\n    // Public methods\n    registerModal(modal) {\n      // Register the modal if not already registered\n      if (modal && this.modals.indexOf(modal) === -1) {\n        // Add modal to modals array\n        this.modals.push(modal)\n        modal.$once('hook:beforeDestroy', () => {\n          this.unregisterModal(modal)\n        })\n      }\n    },\n    unregisterModal(modal) {\n      const index = this.modals.indexOf(modal)\n      if (index > -1) {\n        // Remove modal from modals array\n        this.modals.splice(index, 1)\n        // Reset the modal's data\n        if (!(modal._isBeingDestroyed || modal._isDestroyed)) {\n          this.resetModal(modal)\n        }\n      }\n    },\n    getBaseZIndex() {\n      if (isNull(this.baseZIndex) && isBrowser) {\n        // Create a temporary `div.modal-backdrop` to get computed z-index\n        const div = document.createElement('div')\n        div.className = 'modal-backdrop d-none'\n        div.style.display = 'none'\n        document.body.appendChild(div)\n        this.baseZIndex = parseInt(getCS(div).zIndex || DEFAULT_ZINDEX, 10)\n        document.body.removeChild(div)\n      }\n      return this.baseZIndex || DEFAULT_ZINDEX\n    },\n    getScrollbarWidth() {\n      if (isNull(this.scrollbarWidth) && isBrowser) {\n        // Create a temporary `div.measure-scrollbar` to get computed z-index\n        const div = document.createElement('div')\n        div.className = 'modal-scrollbar-measure'\n        document.body.appendChild(div)\n        this.scrollbarWidth = getBCR(div).width - div.clientWidth\n        document.body.removeChild(div)\n      }\n      return this.scrollbarWidth || 0\n    },\n    // Private methods\n    updateModals(modals) {\n      const baseZIndex = this.getBaseZIndex()\n      const scrollbarWidth = this.getScrollbarWidth()\n      modals.forEach((modal, index) => {\n        // We update data values on each modal\n        modal.zIndex = baseZIndex + index\n        modal.scrollbarWidth = scrollbarWidth\n        modal.isTop = index === this.modals.length - 1\n        modal.isBodyOverflowing = this.isBodyOverflowing\n      })\n    },\n    resetModal(modal) {\n      if (modal) {\n        modal.zIndex = this.getBaseZIndex()\n        modal.isTop = true\n        modal.isBodyOverflowing = false\n      }\n    },\n    checkScrollbar() {\n      // Determine if the body element is overflowing\n      const { left, right } = getBCR(document.body)\n      this.isBodyOverflowing = left + right < window.innerWidth\n    },\n    setScrollbar() {\n      const body = document.body\n      // Storage place to cache changes to margins and padding\n      // Note: This assumes the following element types are not added to the\n      // document after the modal has opened.\n      body._paddingChangedForModal = body._paddingChangedForModal || []\n      body._marginChangedForModal = body._marginChangedForModal || []\n      if (this.isBodyOverflowing) {\n        const scrollbarWidth = this.scrollbarWidth\n        // Adjust fixed content padding\n        /* istanbul ignore next: difficult to test in JSDOM */\n        selectAll(Selector.FIXED_CONTENT).forEach(el => {\n          const actualPadding = el.style.paddingRight\n          const calculatedPadding = getCS(el).paddingRight || 0\n          setAttr(el, 'data-padding-right', actualPadding)\n          el.style.paddingRight = `${parseFloat(calculatedPadding) + scrollbarWidth}px`\n          body._paddingChangedForModal.push(el)\n        })\n        // Adjust sticky content margin\n        /* istanbul ignore next: difficult to test in JSDOM */\n        selectAll(Selector.STICKY_CONTENT).forEach(el => {\n          const actualMargin = el.style.marginRight\n          const calculatedMargin = getCS(el).marginRight || 0\n          setAttr(el, 'data-margin-right', actualMargin)\n          el.style.marginRight = `${parseFloat(calculatedMargin) - scrollbarWidth}px`\n          body._marginChangedForModal.push(el)\n        })\n        // Adjust <b-navbar-toggler> margin\n        /* istanbul ignore next: difficult to test in JSDOM */\n        selectAll(Selector.NAVBAR_TOGGLER).forEach(el => {\n          const actualMargin = el.style.marginRight\n          const calculatedMargin = getCS(el).marginRight || 0\n          setAttr(el, 'data-margin-right', actualMargin)\n          el.style.marginRight = `${parseFloat(calculatedMargin) + scrollbarWidth}px`\n          body._marginChangedForModal.push(el)\n        })\n        // Adjust body padding\n        const actualPadding = body.style.paddingRight\n        const calculatedPadding = getCS(body).paddingRight\n        setAttr(body, 'data-padding-right', actualPadding)\n        body.style.paddingRight = `${parseFloat(calculatedPadding) + scrollbarWidth}px`\n      }\n    },\n    resetScrollbar() {\n      const body = document.body\n      if (body._paddingChangedForModal) {\n        // Restore fixed content padding\n        body._paddingChangedForModal.forEach(el => {\n          /* istanbul ignore next: difficult to test in JSDOM */\n          if (hasAttr(el, 'data-padding-right')) {\n            el.style.paddingRight = getAttr(el, 'data-padding-right') || ''\n            removeAttr(el, 'data-padding-right')\n          }\n        })\n      }\n      if (body._marginChangedForModal) {\n        // Restore sticky content and navbar-toggler margin\n        body._marginChangedForModal.forEach(el => {\n          /* istanbul ignore next: difficult to test in JSDOM */\n          if (hasAttr(el, 'data-margin-right')) {\n            el.style.marginRight = getAttr(el, 'data-margin-right') || ''\n            removeAttr(el, 'data-margin-right')\n          }\n        })\n      }\n      body._paddingChangedForModal = null\n      body._marginChangedForModal = null\n      // Restore body padding\n      if (hasAttr(body, 'data-padding-right')) {\n        body.style.paddingRight = getAttr(body, 'data-padding-right') || ''\n        removeAttr(body, 'data-padding-right')\n      }\n    }\n  }\n})\n\n// Export our ModalManager\nexport default new ModalManager()\n","import BvEvent from '../../../utils/bv-event.class'\nimport warn from '../../../utils/warn'\nimport { defineProperties, readonlyDescriptor } from '../../../utils/object'\n\nclass BvModalEvent extends BvEvent {\n  constructor(type, eventInit = {}) {\n    super(type, eventInit)\n    // Freeze our new props as readonly, but leave them enumerable\n    defineProperties(this, {\n      trigger: readonlyDescriptor()\n    })\n  }\n\n  get modalId() /* istanbul ignore next */ {\n    // Backwards compatability <= 2.0.0-rc.19\n    warn('b-modal: evt.modalId is deprecated. Please use evt.componentId.')\n    return this.componentId\n  }\n\n  cancel() /* istanbul ignore next */ {\n    // Backwards compatibility for BootstrapVue 1.x\n    warn('b-modal: evt.cancel() is deprecated. Please use evt.preventDefault().')\n    this.preventDefault()\n  }\n\n  static get Defaults() {\n    return {\n      ...super.Defaults,\n      trigger: null\n    }\n  }\n}\n\n// Named exports\nexport { BvModalEvent }\n\n// Default export\nexport default BvModalEvent\n","import Vue from './vue'\nimport { concat } from './array'\nimport { select } from './dom'\nimport { isBrowser } from './env'\nimport { isFunction, isString } from './inspect'\nimport { HTMLElement } from './safe-types'\nimport normalizeSlotMixin from '../mixins/normalize-slot'\n\n// BTransporterSingle/BTransporterTargetSingle:\n//\n// Single root node portaling of content, which retains parent/child hierarchy\n// Unlike Portal-Vue where portaled content is no longer a descendent of it's\n// intended parent components\n//\n// Private components for use by Tooltips, Popovers and Modals\n//\n// Based on vue-simple-portal\n// https://github.com/LinusBorg/vue-simple-portal\n\n// Transporter target used by BTransporterSingle\n// Supports only a single root element\n// @vue/component\nconst BTransporterTargetSingle = /*#__PURE__*/ Vue.extend({\n  // As an abstract component, it doesn't appear in the $parent chain of\n  // components, which means the next parent of any component rendered inside\n  // of this one will be the parent from which is was portal'd\n  abstract: true,\n  name: 'BTransporterTargetSingle',\n  props: {\n    nodes: {\n      // Even though we only support a single root element,\n      // vNodes are always passed as an array\n      type: [Array, Function]\n      // default: undefined\n    }\n  },\n  data: vm => {\n    return {\n      updatedNodes: vm.nodes\n    }\n  },\n  destroyed() {\n    const el = this.$el\n    el && el.parentNode && el.parentNode.removeChild(el)\n  },\n  render(h) {\n    let nodes = isFunction(this.updatedNodes) ? this.updatedNodes({}) : this.updatedNodes\n    nodes = concat(nodes).filter(Boolean)\n    /* istanbul ignore else */\n    if (nodes && nodes.length > 0 && !nodes[0].text) {\n      return nodes[0]\n    } else {\n      return h()\n    }\n  }\n})\n\n// This component has no root element, so only a single VNode is allowed\n// @vue/component\nexport const BTransporterSingle = /*#__PURE__*/ Vue.extend({\n  name: 'BTransporterSingle',\n  mixins: [normalizeSlotMixin],\n  props: {\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    container: {\n      // String: CSS selector,\n      // HTMLElement: Element reference\n      // Mainly needed for tooltips/popovers inside modals\n      type: [String, HTMLElement],\n      default: 'body'\n    },\n    tag: {\n      // This should be set to match the root element type\n      type: String,\n      default: 'div'\n    }\n  },\n  watch: {\n    disabled: {\n      immediate: true,\n      handler(disabled) {\n        disabled ? this.unmountTarget() : this.$nextTick(this.mountTarget)\n      }\n    }\n  },\n  created() {\n    this._bv_defaultFn = null\n    this._bv_target = null\n  },\n  beforeMount() {\n    this.mountTarget()\n  },\n  updated() {\n    // Placed in a nextTick to ensure that children have completed\n    // updating before rendering in the target\n    this.$nextTick(() => {\n      this.updateTarget()\n    })\n  },\n  beforeDestroy() {\n    this.unmountTarget()\n    this._bv_defaultFn = null\n  },\n  methods: {\n    // Get the element which the target should be appended to\n    getContainer() {\n      /* istanbul ignore else */\n      if (isBrowser) {\n        const container = this.container\n        return isString(container) ? select(container) : container\n      } else {\n        return null\n      }\n    },\n    // Mount the target\n    mountTarget() {\n      if (!this._bv_target) {\n        const container = this.getContainer()\n        if (container) {\n          const el = document.createElement('div')\n          container.appendChild(el)\n          this._bv_target = new BTransporterTargetSingle({\n            el,\n            parent: this,\n            propsData: {\n              // Initial nodes to be rendered\n              nodes: concat(this.normalizeSlot('default'))\n            }\n          })\n        }\n      }\n    },\n    // Update the content of the target\n    updateTarget() {\n      if (isBrowser && this._bv_target) {\n        const defaultFn = this.$scopedSlots.default\n        if (!this.disabled) {\n          /* istanbul ignore else: only applicable in Vue 2.5.x */\n          if (defaultFn && this._bv_defaultFn !== defaultFn) {\n            // We only update the target component if the scoped slot\n            // function is a fresh one. The new slot syntax (since Vue 2.6)\n            // can cache unchanged slot functions and we want to respect that here\n            this._bv_target.updatedNodes = defaultFn\n          } else if (!defaultFn) {\n            // We also need to be back compatible with non-scoped default slot (i.e. 2.5.x)\n            this._bv_target.updatedNodes = this.$slots.default\n          }\n        }\n        // Update the scoped slot function cache\n        this._bv_defaultFn = defaultFn\n      }\n    },\n    // Unmount the target\n    unmountTarget() {\n      if (this._bv_target) {\n        this._bv_target.$destroy()\n        this._bv_target = null\n      }\n    }\n  },\n  render(h) {\n    if (this.disabled) {\n      const nodes = concat(this.normalizeSlot('default')).filter(Boolean)\n      if (nodes.length > 0 && !nodes[0].text) {\n        return nodes[0]\n      }\n    }\n    return h()\n  }\n})\n","import Vue from '../../utils/vue'\nimport modalManager from './helpers/modal-manager'\nimport BvModalEvent from './helpers/bv-modal-event.class'\nimport idMixin from '../../mixins/id'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport BVTransition from '../../utils/bv-transition'\nimport KeyCodes from '../../utils/key-codes'\nimport observeDom from '../../utils/observe-dom'\nimport { BTransporterSingle } from '../../utils/transporter'\nimport { isBrowser } from '../../utils/env'\nimport { isString } from '../../utils/inspect'\nimport { getComponentConfig } from '../../utils/config'\nimport { stripTags } from '../../utils/html'\nimport { contains, eventOff, eventOn, isVisible, select } from '../../utils/dom'\nimport { BButton } from '../button/button'\nimport { BButtonClose } from '../button/button-close'\n\n// --- Constants ---\n\nconst NAME = 'BModal'\n\n// ObserveDom config to detect changes in modal content\n// so that we can adjust the modal padding if needed\nconst OBSERVER_CONFIG = {\n  subtree: true,\n  childList: true,\n  characterData: true,\n  attributes: true,\n  attributeFilter: ['style', 'class']\n}\n\n// Options for DOM event listeners\nconst EVT_OPTIONS = { passive: true, capture: false }\n\nexport const props = {\n  size: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'size')\n  },\n  centered: {\n    type: Boolean,\n    default: false\n  },\n  scrollable: {\n    type: Boolean,\n    default: false\n  },\n  buttonSize: {\n    type: String,\n    default: ''\n  },\n  noStacking: {\n    type: Boolean,\n    default: false\n  },\n  noFade: {\n    type: Boolean,\n    default: false\n  },\n  noCloseOnBackdrop: {\n    type: Boolean,\n    default: false\n  },\n  noCloseOnEsc: {\n    type: Boolean,\n    default: false\n  },\n  noEnforceFocus: {\n    type: Boolean,\n    default: false\n  },\n  title: {\n    type: String,\n    default: ''\n  },\n  titleHtml: {\n    type: String\n  },\n  titleTag: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'titleTag')\n  },\n  titleClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  titleSrOnly: {\n    type: Boolean,\n    default: false\n  },\n  ariaLabel: {\n    type: String,\n    default: null\n  },\n  headerBgVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'headerBgVariant')\n  },\n  headerBorderVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'headerBorderVariant')\n  },\n  headerTextVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'headerTextVariant')\n  },\n  headerCloseVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'headerCloseVariant')\n  },\n  headerClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  bodyBgVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'bodyBgVariant')\n  },\n  bodyTextVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'bodyTextVariant')\n  },\n  modalClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  dialogClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  contentClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  bodyClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  footerBgVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'footerBgVariant')\n  },\n  footerBorderVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'footerBorderVariant')\n  },\n  footerTextVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'footerTextVariant')\n  },\n  footerClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  hideHeader: {\n    type: Boolean,\n    default: false\n  },\n  hideFooter: {\n    type: Boolean,\n    default: false\n  },\n  hideHeaderClose: {\n    type: Boolean,\n    default: false\n  },\n  hideBackdrop: {\n    type: Boolean,\n    default: false\n  },\n  okOnly: {\n    type: Boolean,\n    default: false\n  },\n  okDisabled: {\n    type: Boolean,\n    default: false\n  },\n  cancelDisabled: {\n    type: Boolean,\n    default: false\n  },\n  visible: {\n    type: Boolean,\n    default: false\n  },\n  returnFocus: {\n    // type: Object,\n    default: null\n  },\n  headerCloseLabel: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'headerCloseLabel')\n  },\n  cancelTitle: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'cancelTitle')\n  },\n  cancelTitleHtml: {\n    type: String\n  },\n  okTitle: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'okTitle')\n  },\n  okTitleHtml: {\n    type: String\n  },\n  cancelVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'cancelVariant')\n  },\n  okVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'okVariant')\n  },\n  lazy: {\n    type: Boolean,\n    default: false\n  },\n  busy: {\n    type: Boolean,\n    default: false\n  },\n  static: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BModal = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [idMixin, listenOnRootMixin, normalizeSlotMixin],\n  model: {\n    prop: 'visible',\n    event: 'change'\n  },\n  props,\n  data() {\n    return {\n      isHidden: true, // If modal should not be in document\n      isVisible: false, // Controls modal visible state\n      isTransitioning: false, // Used for style control\n      isShow: false, // Used for style control\n      isBlock: false, // Used for style control\n      isOpening: false, // To signal that the modal is in the process of opening\n      isClosing: false, // To signal that the modal is in the process of closing\n      ignoreBackdropClick: false, // Used to signify if click out listener should ignore the click\n      isModalOverflowing: false,\n      return_focus: this.returnFocus || null,\n      // The following items are controlled by the modalManager instance\n      scrollbarWidth: 0,\n      zIndex: modalManager.getBaseZIndex(),\n      isTop: true,\n      isBodyOverflowing: false\n    }\n  },\n  computed: {\n    modalClasses() {\n      return [\n        {\n          fade: !this.noFade,\n          show: this.isShow\n        },\n        this.modalClass\n      ]\n    },\n    modalStyles() {\n      const sbWidth = `${this.scrollbarWidth}px`\n      return {\n        paddingLeft: !this.isBodyOverflowing && this.isModalOverflowing ? sbWidth : '',\n        paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : '',\n        // Needed to fix issue https://github.com/bootstrap-vue/bootstrap-vue/issues/3457\n        // Even though we are using v-show, we must ensure 'none' is restored in the styles\n        display: this.isBlock ? 'block' : 'none'\n      }\n    },\n    dialogClasses() {\n      return [\n        {\n          [`modal-${this.size}`]: Boolean(this.size),\n          'modal-dialog-centered': this.centered,\n          'modal-dialog-scrollable': this.scrollable\n        },\n        this.dialogClass\n      ]\n    },\n    headerClasses() {\n      return [\n        {\n          [`bg-${this.headerBgVariant}`]: Boolean(this.headerBgVariant),\n          [`text-${this.headerTextVariant}`]: Boolean(this.headerTextVariant),\n          [`border-${this.headerBorderVariant}`]: Boolean(this.headerBorderVariant)\n        },\n        this.headerClass\n      ]\n    },\n    titleClases() {\n      return [{ 'sr-only': this.titleSrOnly }, this.titleClass]\n    },\n    bodyClasses() {\n      return [\n        {\n          [`bg-${this.bodyBgVariant}`]: Boolean(this.bodyBgVariant),\n          [`text-${this.bodyTextVariant}`]: Boolean(this.bodyTextVariant)\n        },\n        this.bodyClass\n      ]\n    },\n    footerClasses() {\n      return [\n        {\n          [`bg-${this.footerBgVariant}`]: Boolean(this.footerBgVariant),\n          [`text-${this.footerTextVariant}`]: Boolean(this.footerTextVariant),\n          [`border-${this.footerBorderVariant}`]: Boolean(this.footerBorderVariant)\n        },\n        this.footerClass\n      ]\n    },\n    modalOuterStyle() {\n      // Styles needed for proper stacking of modals\n      return {\n        position: 'absolute',\n        zIndex: this.zIndex\n      }\n    },\n    slotScope() {\n      return {\n        ok: this.onOk,\n        cancel: this.onCancel,\n        close: this.onClose,\n        hide: this.hide,\n        visible: this.isVisible\n      }\n    }\n  },\n  watch: {\n    visible(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this[newVal ? 'show' : 'hide']()\n      }\n    }\n  },\n  created() {\n    // Define non-reactive properties\n    this._observer = null\n  },\n  mounted() {\n    // Set initial z-index as queried from the DOM\n    this.zIndex = modalManager.getBaseZIndex()\n    // Listen for events from others to either open or close ourselves\n    // and listen to all modals to enable/disable enforce focus\n    this.listenOnRoot('bv::show::modal', this.showHandler)\n    this.listenOnRoot('bv::hide::modal', this.hideHandler)\n    this.listenOnRoot('bv::toggle::modal', this.toggleHandler)\n    // Listen for `bv:modal::show events`, and close ourselves if the\n    // opening modal not us\n    this.listenOnRoot('bv::modal::show', this.modalListener)\n    // Initially show modal?\n    if (this.visible === true) {\n      this.$nextTick(this.show)\n    }\n  },\n  beforeDestroy() {\n    // Ensure everything is back to normal\n    if (this._observer) {\n      this._observer.disconnect()\n      this._observer = null\n    }\n    this.setEnforceFocus(false)\n    this.setResizeEvent(false)\n    if (this.isVisible) {\n      this.isVisible = false\n      this.isShow = false\n      this.isTransitioning = false\n    }\n  },\n  methods: {\n    // Private method to update the v-model\n    updateModel(val) {\n      if (val !== this.visible) {\n        this.$emit('change', val)\n      }\n    },\n    // Private method to create a BvModalEvent object\n    buildEvent(type, opts = {}) {\n      return new BvModalEvent(type, {\n        // Default options\n        cancelable: false,\n        target: this.$refs.modal || this.$el || null,\n        relatedTarget: null,\n        trigger: null,\n        // Supplied options\n        ...opts,\n        // Options that can't be overridden\n        vueTarget: this,\n        componentId: this.safeId()\n      })\n    },\n    // Public method to show modal\n    show() {\n      if (this.isVisible || this.isOpening) {\n        // If already open, on in the process of opening, do nothing\n        /* istanbul ignore next */\n        return\n      }\n      if (this.isClosing) {\n        // If we are in the process of closing, wait until hidden before re-opening\n        /* istanbul ignore next: very difficult to test */\n        this.$once('hidden', this.show)\n        /* istanbul ignore next */\n        return\n      }\n      this.isOpening = true\n      // Set the element to return focus to when closed\n      this.return_focus = this.return_focus || this.getActiveElement()\n      const showEvt = this.buildEvent('show', {\n        cancelable: true\n      })\n      this.emitEvent(showEvt)\n      // Don't show if canceled\n      if (showEvt.defaultPrevented || this.isVisible) {\n        this.isOpening = false\n        // Ensure the v-model reflects the current state\n        this.updateModel(false)\n        return\n      }\n      // Show the modal\n      this.doShow()\n    },\n    // Public method to hide modal\n    hide(trigger = '') {\n      if (!this.isVisible || this.isClosing) {\n        /* istanbul ignore next */\n        return\n      }\n      this.isClosing = true\n      const hideEvt = this.buildEvent('hide', {\n        cancelable: trigger !== 'FORCE',\n        trigger: trigger || null\n      })\n      // We emit specific event for one of the three built-in buttons\n      if (trigger === 'ok') {\n        this.$emit('ok', hideEvt)\n      } else if (trigger === 'cancel') {\n        this.$emit('cancel', hideEvt)\n      } else if (trigger === 'headerclose') {\n        this.$emit('close', hideEvt)\n      }\n      this.emitEvent(hideEvt)\n      // Hide if not canceled\n      if (hideEvt.defaultPrevented || !this.isVisible) {\n        this.isClosing = false\n        // Ensure v-model reflects current state\n        this.updateModel(true)\n        return\n      }\n      // Stop observing for content changes\n      if (this._observer) {\n        this._observer.disconnect()\n        this._observer = null\n      }\n      // Trigger the hide transition\n      this.isVisible = false\n      // Update the v-model\n      this.updateModel(false)\n    },\n    // Public method to toggle modal visibility\n    toggle(triggerEl) {\n      if (triggerEl) {\n        this.return_focus = triggerEl\n      }\n      if (this.isVisible) {\n        this.hide('toggle')\n      } else {\n        this.show()\n      }\n    },\n    // Private method to get the current document active element\n    getActiveElement() {\n      if (isBrowser) {\n        const activeElement = document.activeElement\n        // Note: On IE11, `document.activeElement` may be null.\n        // So we test it for truthiness first.\n        // https://github.com/bootstrap-vue/bootstrap-vue/issues/3206\n        // Returning focus to document.body may cause unwanted scrolls, so we\n        // exclude setting focus on body\n        if (activeElement && activeElement !== document.body && activeElement.focus) {\n          // Preset the fallback return focus value if it is not set\n          // `document.activeElement` should be the trigger element that was clicked or\n          // in the case of using the v-model, which ever element has current focus\n          // Will be overridden by some commands such as toggle, etc.\n          return activeElement\n        }\n      }\n      return null\n    },\n    // Private method to finish showing modal\n    doShow() {\n      /* istanbul ignore next: commenting out for now until we can test stacking */\n      if (modalManager.modalsAreOpen && this.noStacking) {\n        // If another modal(s) is already open, wait for it(them) to close\n        this.listenOnRootOnce('bv::modal::hidden', this.doShow)\n        return\n      }\n      modalManager.registerModal(this)\n      // Place modal in DOM\n      this.isHidden = false\n      this.$nextTick(() => {\n        // We do this in `$nextTick()` to ensure the modal is in DOM first\n        // before we show it\n        this.isVisible = true\n        this.isOpening = false\n        // Update the v-model\n        this.updateModel(true)\n        this.$nextTick(() => {\n          // In a nextTick in case modal content is lazy\n          // Observe changes in modal content and adjust if necessary\n          this._observer = observeDom(\n            this.$refs.content,\n            this.checkModalOverflow.bind(this),\n            OBSERVER_CONFIG\n          )\n        })\n      })\n    },\n    // Transition handlers\n    onBeforeEnter() {\n      this.isTransitioning = true\n      this.setResizeEvent(true)\n    },\n    onEnter() {\n      this.isBlock = true\n    },\n    onAfterEnter() {\n      this.checkModalOverflow()\n      this.isShow = true\n      this.isTransitioning = false\n      this.$nextTick(() => {\n        this.emitEvent(this.buildEvent('shown'))\n        this.focusFirst()\n        this.setEnforceFocus(true)\n      })\n    },\n    onBeforeLeave() {\n      this.isTransitioning = true\n      this.setResizeEvent(false)\n    },\n    onLeave() {\n      // Remove the 'show' class\n      this.isShow = false\n    },\n    onAfterLeave() {\n      this.isBlock = false\n      this.isTransitioning = false\n      this.setEnforceFocus(false)\n      this.isModalOverflowing = false\n      this.isHidden = true\n      this.$nextTick(() => {\n        this.returnFocusTo()\n        this.isClosing = false\n        this.return_focus = null\n        modalManager.unregisterModal(this)\n        // TODO: Need to find a way to pass the `trigger` property\n        //       to the `hidden` event, not just only the `hide` event\n        this.emitEvent(this.buildEvent('hidden'))\n      })\n    },\n    // Event emitter\n    emitEvent(bvModalEvt) {\n      const type = bvModalEvt.type\n      // We emit on root first incase a global listener wants to cancel\n      // the event first before the instance emits it's event\n      this.emitOnRoot(`bv::modal::${type}`, bvModalEvt, bvModalEvt.componentId)\n      this.$emit(type, bvModalEvt)\n    },\n    // UI event handlers\n    onDialogMousedown() {\n      // Watch to see if the matching mouseup event occurs outside the dialog\n      // And if it does, cancel the clickOut handler\n      const modal = this.$refs.modal\n      const onceModalMouseup = evt => {\n        eventOff(modal, 'mouseup', onceModalMouseup, EVT_OPTIONS)\n        if (evt.target === modal) {\n          this.ignoreBackdropClick = true\n        }\n      }\n      eventOn(modal, 'mouseup', onceModalMouseup, EVT_OPTIONS)\n    },\n    onClickOut(evt) {\n      if (this.ignoreBackdropClick) {\n        // Click was initiated inside the modal content, but finished outside.\n        // Set by the above onDialogMousedown handler\n        this.ignoreBackdropClick = false\n        return\n      }\n      // Do nothing if not visible, backdrop click disabled, or element\n      // that generated click event is no longer in document body\n      if (!this.isVisible || this.noCloseOnBackdrop || !contains(document.body, evt.target)) {\n        return\n      }\n      // If backdrop clicked, hide modal\n      if (!contains(this.$refs.content, evt.target)) {\n        this.hide('backdrop')\n      }\n    },\n    onOk() {\n      this.hide('ok')\n    },\n    onCancel() {\n      this.hide('cancel')\n    },\n    onClose() {\n      this.hide('headerclose')\n    },\n    onEsc(evt) {\n      // If ESC pressed, hide modal\n      if (evt.keyCode === KeyCodes.ESC && this.isVisible && !this.noCloseOnEsc) {\n        this.hide('esc')\n      }\n    },\n    // Document focusin listener\n    focusHandler(evt) {\n      // If focus leaves modal, bring it back\n      const modal = this.$refs.modal\n      if (\n        !this.noEnforceFocus &&\n        this.isTop &&\n        this.isVisible &&\n        modal &&\n        document !== evt.target &&\n        !contains(modal, evt.target)\n      ) {\n        modal.focus({ preventScroll: true })\n      }\n    },\n    // Turn on/off focusin listener\n    setEnforceFocus(on) {\n      const method = on ? eventOn : eventOff\n      method(document, 'focusin', this.focusHandler, EVT_OPTIONS)\n    },\n    // Resize listener\n    setResizeEvent(on) {\n      const method = on ? eventOn : eventOff\n      // These events should probably also check if\n      // body is overflowing\n      method(window, 'resize', this.checkModalOverflow, EVT_OPTIONS)\n      method(window, 'orientationchange', this.checkModalOverflow, EVT_OPTIONS)\n    },\n    // Root listener handlers\n    showHandler(id, triggerEl) {\n      if (id === this.safeId()) {\n        this.return_focus = triggerEl || this.getActiveElement()\n        this.show()\n      }\n    },\n    hideHandler(id) {\n      if (id === this.safeId()) {\n        this.hide('event')\n      }\n    },\n    toggleHandler(id, triggerEl) {\n      if (id === this.safeId()) {\n        this.toggle(triggerEl)\n      }\n    },\n    modalListener(bvEvt) {\n      // If another modal opens, close this one if stacking not permitted\n      if (this.noStacking && bvEvt.vueTarget !== this) {\n        this.hide()\n      }\n    },\n    // Focus control handlers\n    focusFirst() {\n      // Don't try and focus if we are SSR\n      if (isBrowser) {\n        const modal = this.$refs.modal\n        const activeElement = this.getActiveElement()\n        // If the modal contains the activeElement, we don't do anything\n        if (modal && !(activeElement && contains(modal, activeElement))) {\n          // Make sure top of modal is showing (if longer than the viewport)\n          // and focus the modal content wrapper\n          this.$nextTick(() => {\n            modal.scrollTop = 0\n            modal.focus()\n          })\n        }\n      }\n    },\n    returnFocusTo() {\n      // Prefer `returnFocus` prop over event specified\n      // `return_focus` value\n      let el = this.returnFocus || this.return_focus || null\n      // Is el a string CSS selector?\n      el = isString(el) ? select(el) : el\n      if (el) {\n        // Possibly could be a component reference\n        el = el.$el || el\n        if (isVisible(el) && el.focus) {\n          el.focus()\n        }\n      }\n    },\n    checkModalOverflow() {\n      if (this.isVisible) {\n        const modal = this.$refs.modal\n        this.isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight\n      }\n    },\n    makeModal(h) {\n      // Modal header\n      let header = h()\n      if (!this.hideHeader) {\n        let modalHeader = this.normalizeSlot('modal-header', this.slotScope)\n        if (!modalHeader) {\n          let closeButton = h()\n          if (!this.hideHeaderClose) {\n            closeButton = h(\n              BButtonClose,\n              {\n                props: {\n                  disabled: this.isTransitioning,\n                  ariaLabel: this.headerCloseLabel,\n                  textVariant: this.headerCloseVariant || this.headerTextVariant\n                },\n                on: { click: this.onClose }\n              },\n              [this.normalizeSlot('modal-header-close')]\n            )\n          }\n          const domProps =\n            !this.hasNormalizedSlot('modal-title') && this.titleHtml\n              ? { innerHTML: this.titleHtml }\n              : {}\n          modalHeader = [\n            h(\n              this.titleTag,\n              {\n                staticClass: 'modal-title',\n                class: this.titleClases,\n                attrs: { id: this.safeId('__BV_modal_title_') },\n                domProps\n              },\n              [this.normalizeSlot('modal-title', this.slotScope) || stripTags(this.title)]\n            ),\n            closeButton\n          ]\n        }\n        header = h(\n          'header',\n          {\n            ref: 'header',\n            staticClass: 'modal-header',\n            class: this.headerClasses,\n            attrs: { id: this.safeId('__BV_modal_header_') }\n          },\n          [modalHeader]\n        )\n      }\n\n      // Modal body\n      const body = h(\n        'div',\n        {\n          ref: 'body',\n          staticClass: 'modal-body',\n          class: this.bodyClasses,\n          attrs: { id: this.safeId('__BV_modal_body_') }\n        },\n        this.normalizeSlot('default', this.slotScope)\n      )\n\n      // Modal footer\n      let footer = h()\n      if (!this.hideFooter) {\n        let modalFooter = this.normalizeSlot('modal-footer', this.slotScope)\n        if (!modalFooter) {\n          let cancelButton = h()\n          if (!this.okOnly) {\n            const cancelHtml = this.cancelTitleHtml ? { innerHTML: this.cancelTitleHtml } : null\n            cancelButton = h(\n              BButton,\n              {\n                props: {\n                  variant: this.cancelVariant,\n                  size: this.buttonSize,\n                  disabled: this.cancelDisabled || this.busy || this.isTransitioning\n                },\n                on: { click: this.onCancel }\n              },\n              [\n                this.normalizeSlot('modal-cancel') ||\n                  (cancelHtml ? h('span', { domProps: cancelHtml }) : stripTags(this.cancelTitle))\n              ]\n            )\n          }\n          const okHtml = this.okTitleHtml ? { innerHTML: this.okTitleHtml } : null\n          const okButton = h(\n            BButton,\n            {\n              props: {\n                variant: this.okVariant,\n                size: this.buttonSize,\n                disabled: this.okDisabled || this.busy || this.isTransitioning\n              },\n              on: { click: this.onOk }\n            },\n            [\n              this.normalizeSlot('modal-ok') ||\n                (okHtml ? h('span', { domProps: okHtml }) : stripTags(this.okTitle))\n            ]\n          )\n          modalFooter = [cancelButton, okButton]\n        }\n        footer = h(\n          'footer',\n          {\n            ref: 'footer',\n            staticClass: 'modal-footer',\n            class: this.footerClasses,\n            attrs: { id: this.safeId('__BV_modal_footer_') }\n          },\n          [modalFooter]\n        )\n      }\n\n      // Assemble modal content\n      const modalContent = h(\n        'div',\n        {\n          ref: 'content',\n          staticClass: 'modal-content',\n          class: this.contentClass,\n          attrs: {\n            role: 'document',\n            id: this.safeId('__BV_modal_content_')\n          }\n        },\n        [header, body, footer]\n      )\n\n      // Modal dialog wrapper\n      const modalDialog = h(\n        'div',\n        {\n          staticClass: 'modal-dialog',\n          class: this.dialogClasses,\n          on: { mousedown: this.onDialogMousedown }\n        },\n        [modalContent]\n      )\n\n      // Modal\n      let modal = h(\n        'div',\n        {\n          ref: 'modal',\n          staticClass: 'modal',\n          class: this.modalClasses,\n          style: this.modalStyles,\n          directives: [\n            { name: 'show', rawName: 'v-show', value: this.isVisible, expression: 'isVisible' }\n          ],\n          attrs: {\n            id: this.safeId(),\n            role: 'dialog',\n            tabindex: '-1',\n            'aria-hidden': this.isVisible ? null : 'true',\n            'aria-modal': this.isVisible ? 'true' : null,\n            'aria-label': this.ariaLabel,\n            'aria-labelledby':\n              this.hideHeader ||\n              this.ariaLabel ||\n              !(this.hasNormalizedSlot('modal-title') || this.titleHtml || this.title)\n                ? null\n                : this.safeId('__BV_modal_title_'),\n            'aria-describedby': this.safeId('__BV_modal_body_')\n          },\n          on: { keydown: this.onEsc, click: this.onClickOut }\n        },\n        [modalDialog]\n      )\n\n      // Wrap modal in transition\n      // Sadly, we can't use BVTransition here due to the differences in\n      // transition durations for .modal and .modal-dialog. Not until\n      // issue https://github.com/vuejs/vue/issues/9986 is resolved\n      modal = h(\n        'transition',\n        {\n          props: {\n            enterClass: '',\n            enterToClass: '',\n            enterActiveClass: '',\n            leaveClass: '',\n            leaveActiveClass: '',\n            leaveToClass: ''\n          },\n          on: {\n            beforeEnter: this.onBeforeEnter,\n            enter: this.onEnter,\n            afterEnter: this.onAfterEnter,\n            beforeLeave: this.onBeforeLeave,\n            leave: this.onLeave,\n            afterLeave: this.onAfterLeave\n          }\n        },\n        [modal]\n      )\n\n      // Modal backdrop\n      let backdrop = h()\n      if (!this.hideBackdrop && this.isVisible) {\n        backdrop = h(\n          'div',\n          { staticClass: 'modal-backdrop', attrs: { id: this.safeId('__BV_modal_backdrop_') } },\n          [this.normalizeSlot('modal-backdrop')]\n        )\n      }\n      backdrop = h(BVTransition, { props: { noFade: this.noFade } }, [backdrop])\n\n      // Tab trap to prevent page from scrolling to next element in\n      // tab index during enforce focus tab cycle\n      let tabTrap = h()\n      if (this.isVisible && this.isTop && !this.noEnforceFocus) {\n        tabTrap = h('div', { attrs: { tabindex: '0' } })\n      }\n      // Assemble modal and backdrop in an outer <div>\n      return h(\n        'div',\n        {\n          key: `modal-outer-${this._uid}`,\n          style: this.modalOuterStyle,\n          attrs: { id: this.safeId('__BV_modal_outer_') }\n        },\n        [modal, tabTrap, backdrop]\n      )\n    }\n  },\n  render(h) {\n    if (this.static) {\n      return this.lazy && this.isHidden ? h() : this.makeModal(h)\n    } else {\n      return this.isHidden ? h() : h(BTransporterSingle, {}, [this.makeModal(h)])\n    }\n  }\n})\n\nexport default BModal\n","import { setAttr, removeAttr } from '../../utils/dom'\nimport { bindTargets, unbindTargets } from '../../utils/target'\n\n// Target listen types\nconst listenTypes = { click: true }\n\n// Emitted show event for modal\nconst EVENT_SHOW = 'bv::show::modal'\n\nconst setRole = (el, binding, vnode) => {\n  if (el.tagName !== 'BUTTON') {\n    setAttr(el, 'role', 'button')\n  }\n}\n\n/*\n * Export our directive\n */\nexport const VBModal = {\n  // eslint-disable-next-line no-shadow-restricted-names\n  bind(el, binding, vnode) {\n    bindTargets(vnode, binding, listenTypes, ({ targets, vnode }) => {\n      targets.forEach(target => {\n        vnode.context.$root.$emit(EVENT_SHOW, target, vnode.elm)\n      })\n    })\n    // If element is not a button, we add `role=\"button\"` for accessibility\n    setRole(el, binding, vnode)\n  },\n  updated: setRole,\n  componentUpdated: setRole,\n  unbind(el, binding, vnode) {\n    unbindTargets(vnode, binding, listenTypes)\n    // If element is not a button, we add `role=\"button\"` for accessibility\n    if (el.tagName !== 'BUTTON') {\n      removeAttr(el, 'role', 'button')\n    }\n  }\n}\n\nexport default VBModal\n","/**\n * Plugin for adding `$bvModal` property to all Vue instances\n */\n\nimport BModal, { props as modalProps } from '../modal'\nimport { concat } from '../../../utils/array'\nimport { getComponentConfig } from '../../../utils/config'\nimport { isUndefined, isFunction } from '../../../utils/inspect'\nimport {\n  assign,\n  keys,\n  omit,\n  defineProperty,\n  defineProperties,\n  readonlyDescriptor\n} from '../../../utils/object'\nimport { pluginFactory } from '../../../utils/plugins'\nimport { warn, warnNotClient, warnNoPromiseSupport } from '../../../utils/warn'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvModal'\nconst PROP_NAME_PRIV = '_bv__modal'\n\n// Base modal props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\nconst BASE_PROPS = [\n  'id',\n  ...keys(omit(modalProps, ['busy', 'lazy', 'noStacking', `static`, 'visible']))\n]\n\n// Fallback event resolver (returns undefined)\nconst defaultResolver = bvModalEvt => {}\n\n// Map prop names to modal slot names\nconst propsToSlots = {\n  msgBoxContent: 'default',\n  title: 'modal-title',\n  okTitle: 'modal-ok',\n  cancelTitle: 'modal-cancel'\n}\n\n// --- Utility methods ---\n\n// Method to filter only recognized props that are not undefined\nconst filterOptions = options => {\n  return BASE_PROPS.reduce((memo, key) => {\n    if (!isUndefined(options[key])) {\n      memo[key] = options[key]\n    }\n    return memo\n  }, {})\n}\n\n// Method to install `$bvModal` VM injection\nconst plugin = Vue => {\n  // Create a private sub-component that extends BModal\n  // which self-destructs after hidden\n  // @vue/component\n  const BMsgBox = Vue.extend({\n    name: 'BMsgBox',\n    extends: BModal,\n    destroyed() {\n      // Make sure we not in document any more\n      if (this.$el && this.$el.parentNode) {\n        this.$el.parentNode.removeChild(this.$el)\n      }\n    },\n    mounted() {\n      // Self destruct handler\n      const handleDestroy = () => {\n        const self = this\n        this.$nextTick(() => {\n          // In a `setTimeout()` to release control back to application\n          setTimeout(() => self.$destroy(), 0)\n        })\n      }\n      // Self destruct if parent destroyed\n      this.$parent.$once('hook:destroyed', handleDestroy)\n      // Self destruct after hidden\n      this.$once('hidden', handleDestroy)\n      // Self destruct on route change\n      /* istanbul ignore if */\n      if (this.$router && this.$route) {\n        const unwatch = this.$watch('$router', handleDestroy)\n        this.$once('hook:beforeDestroy', unwatch)\n      }\n      // Show the `BMsgBox`\n      this.show()\n    }\n  })\n\n  // Method to generate the on-demand modal message box\n  // Returns a promise that resolves to a value returned by the resolve\n  const asyncMsgBox = (props, $parent, resolver = defaultResolver) => {\n    if (warnNotClient(PROP_NAME) || warnNoPromiseSupport(PROP_NAME)) {\n      /* istanbul ignore next */\n      return\n    }\n    // Create an instance of `BMsgBox` component\n    const msgBox = new BMsgBox({\n      // We set parent as the local VM so these modals can emit events on\n      // the app `$root`, as needed by things like tooltips and popovers\n      // And it helps to ensure `BMsgBox` is destroyed when parent is destroyed\n      parent: $parent,\n      // Preset the prop values\n      propsData: {\n        ...filterOptions(getComponentConfig('BModal') || {}),\n        // Defaults that user can override\n        hideHeaderClose: true,\n        hideHeader: !(props.title || props.titleHtml),\n        // Add in (filtered) user supplied props\n        ...omit(props, keys(propsToSlots)),\n        // Props that can't be overridden\n        lazy: false,\n        busy: false,\n        visible: false,\n        noStacking: false,\n        noEnforceFocus: false\n      }\n    })\n    // Convert certain props to scoped slots\n    keys(propsToSlots).forEach(prop => {\n      if (!isUndefined(props[prop])) {\n        // Can be a string, or array of VNodes.\n        // Alternatively, user can use HTML version of prop to pass an HTML string.\n        msgBox.$slots[propsToSlots[prop]] = concat(props[prop])\n      }\n    })\n    // Return a promise that resolves when hidden, or rejects on destroyed\n    return new Promise((resolve, reject) => {\n      let resolved = false\n      msgBox.$once('hook:destroyed', () => {\n        if (!resolved) {\n          /* istanbul ignore next */\n          reject(new Error('BootstrapVue MsgBox destroyed before resolve'))\n        }\n      })\n      msgBox.$on('hide', bvModalEvt => {\n        if (!bvModalEvt.defaultPrevented) {\n          const result = resolver(bvModalEvt)\n          // If resolver didn't cancel hide, we resolve\n          if (!bvModalEvt.defaultPrevented) {\n            resolved = true\n            resolve(result)\n          }\n        }\n      })\n      // Create a mount point (a DIV) and mount the msgBo which will trigger it to show\n      const div = document.createElement('div')\n      document.body.appendChild(div)\n      msgBox.$mount(div)\n    })\n  }\n\n  // BvModal instance class\n  class BvModal {\n    constructor(vm) {\n      // Assign the new properties to this instance\n      assign(this, { _vm: vm, _root: vm.$root })\n      // Set these properties as read-only and non-enumerable\n      defineProperties(this, {\n        _vm: readonlyDescriptor(),\n        _root: readonlyDescriptor()\n      })\n    }\n\n    // --- Instance methods ---\n\n    // Show modal with the specified ID args are for future use\n    show(id, ...args) {\n      if (id && this._root) {\n        this._root.$emit('bv::show::modal', id, ...args)\n      }\n    }\n\n    // Hide modal with the specified ID args are for future use\n    hide(id, ...args) {\n      if (id && this._root) {\n        this._root.$emit('bv::hide::modal', id, ...args)\n      }\n    }\n\n    // The following methods require Promise support!\n    // IE 11 and others do not support Promise natively, so users\n    // should have a Polyfill loaded (which they need anyways for IE 11 support)\n\n    // Opens a user defined message box and returns a promise\n    // Not yet documented\n    msgBox(content, options = {}, resolver) {\n      if (\n        !content ||\n        warnNoPromiseSupport(PROP_NAME) ||\n        warnNotClient(PROP_NAME) ||\n        !isFunction(resolver)\n      ) {\n        /* istanbul ignore next */\n        return\n      }\n      return asyncMsgBox({ ...filterOptions(options), msgBoxContent: content }, this._vm, resolver)\n    }\n\n    // Open a message box with OK button only and returns a promise\n    msgBoxOk(message, options = {}) {\n      // Pick the modal props we support from options\n      const props = {\n        ...options,\n        // Add in overrides and our content prop\n        okOnly: true,\n        okDisabled: false,\n        hideFooter: false,\n        msgBoxContent: message\n      }\n      return this.msgBox(message, props, bvModalEvt => {\n        // Always resolve to true for OK\n        return true\n      })\n    }\n\n    // Open a message box modal with OK and CANCEL buttons\n    // and returns a promise\n    msgBoxConfirm(message, options = {}) {\n      // Set the modal props we support from options\n      const props = {\n        ...options,\n        // Add in overrides and our content prop\n        okOnly: false,\n        okDisabled: false,\n        cancelDisabled: false,\n        hideFooter: false\n      }\n      return this.msgBox(message, props, bvModalEvt => {\n        const trigger = bvModalEvt.trigger\n        return trigger === 'ok' ? true : trigger === 'cancel' ? false : null\n      })\n    }\n  }\n\n  // Add our instance mixin\n  Vue.mixin({\n    beforeCreate() {\n      // Because we need access to `$root` for `$emits`, and VM for parenting,\n      // we have to create a fresh instance of `BvModal` for each VM\n      this[PROP_NAME_PRIV] = new BvModal(this)\n    }\n  })\n\n  // Define our read-only `$bvModal` instance property\n  // Placed in an if just in case in HMR mode\n  // eslint-disable-next-line no-prototype-builtins\n  if (!Vue.prototype.hasOwnProperty(PROP_NAME)) {\n    defineProperty(Vue.prototype, PROP_NAME, {\n      get() {\n        /* istanbul ignore next */\n        if (!this || !this[PROP_NAME_PRIV]) {\n          warn(`'${PROP_NAME}' must be accessed from a Vue instance 'this' context`)\n        }\n        return this[PROP_NAME_PRIV]\n      }\n    })\n  }\n}\n\nexport const BVModalPlugin = /*#__PURE__*/ pluginFactory({\n  plugins: { plugin }\n})\n\nexport default BVModalPlugin\n","import { BModal } from './modal'\nimport { VBModal } from '../../directives/modal/modal'\nimport { BVModalPlugin } from './helpers/bv-modal'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ModalPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BModal },\n  directives: { VBModal },\n  // $bvModal injection\n  plugins: { BVModalPlugin }\n})\n\nexport { ModalPlugin, BModal }\n\nexport default ModalPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\n// -- Constants --\n\nconst DEPRECATED_MSG =\n  'Setting prop \"is-nav-bar\" is deprecated. Use the <b-navbar-nav> component instead.'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'ul'\n  },\n  fill: {\n    type: Boolean,\n    default: false\n  },\n  justified: {\n    type: Boolean,\n    default: false\n  },\n  align: {\n    type: String,\n    default: null\n  },\n  tabs: {\n    type: Boolean,\n    default: false\n  },\n  pills: {\n    type: Boolean,\n    default: false\n  },\n  vertical: {\n    type: Boolean,\n    default: false\n  },\n  small: {\n    type: Boolean,\n    default: false\n  },\n  isNavBar: {\n    type: Boolean,\n    default: false,\n    // `deprecated` -> Don't use this prop\n    // `deprecation` -> Refers to a change in prop usage\n    deprecated: DEPRECATED_MSG\n  }\n}\n\n// -- Utils --\n\nconst computeJustifyContent = value => {\n  // Normalize value\n  value = value === 'left' ? 'start' : value === 'right' ? 'end' : value\n  return `justify-content-${value}`\n}\n\n// @vue/component\nexport const BNav = /*#__PURE__*/ Vue.extend({\n  name: 'BNav',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          nav: !props.isNavBar,\n          'navbar-nav': props.isNavBar,\n          'nav-tabs': props.tabs && !props.isNavBar,\n          'nav-pills': props.pills && !props.isNavBar,\n          'flex-column': props.vertical && !props.isNavBar,\n          'nav-fill': !props.vertical && props.fill,\n          'nav-justified': !props.vertical && props.justified,\n          [computeJustifyContent(props.align)]: !props.vertical && props.align,\n          small: props.small\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BNav\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nexport const props = linkPropsFactory()\n\n// @vue/component\nexport const BNavItem = /*#__PURE__*/ Vue.extend({\n  name: 'BNavItem',\n  functional: true,\n  props: {\n    ...props,\n    linkAttrs: {\n      type: Object,\n      default: () => {}\n    },\n    linkClasses: {\n      type: [String, Object, Array],\n      default: null\n    }\n  },\n  render(h, { props, data, listeners, children }) {\n    // We transfer the listeners to the link\n    delete data.on\n    return h(\n      'li',\n      mergeData(data, {\n        staticClass: 'nav-item'\n      }),\n      [\n        h(\n          BLink,\n          {\n            staticClass: 'nav-link',\n            class: props.linkClasses,\n            attrs: props.linkAttrs,\n            props,\n            on: listeners\n          },\n          children\n        )\n      ]\n    )\n  }\n})\n\nexport default BNavItem\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'span'\n  }\n}\n\n// @vue/component\nexport const BNavText = /*#__PURE__*/ Vue.extend({\n  name: 'BNavText',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(props.tag, mergeData(data, { staticClass: 'navbar-text' }), children)\n  }\n})\n\nexport default BNavText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { omit } from '../../utils/object'\nimport { BForm, props as BFormProps } from '../form/form'\n\nexport const props = omit(BFormProps, ['inline'])\n\n// @vue/component\nexport const BNavForm = /*#__PURE__*/ Vue.extend({\n  name: 'BNavForm',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(BForm, mergeData(data, { props: { ...props, inline: true } }), children)\n  }\n})\n\nexport default BNavForm\n","import Vue from '../../utils/vue'\nimport { props as BDropdownProps } from '../dropdown/dropdown'\nimport idMixin from '../../mixins/id'\nimport dropdownMixin from '../../mixins/dropdown'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport pluckProps from '../../utils/pluck-props'\nimport { htmlOrText } from '../../utils/html'\nimport { BLink } from '../link/link'\n\n// -- Constants --\n\nexport const props = {\n  ...pluckProps(['menuClass', 'toggleClass', 'noCaret', 'role'], BDropdownProps),\n  extraMenuClasses: {\n    type: String,\n    default: '',\n    // `deprecated` -> Don't use this prop\n    // `deprecation` -> Refers to a change in prop usage\n    deprecated: 'Setting prop \"extra-menu-classes\" is deprecated. Use \"menu-class\" prop instead.'\n  },\n  extraToggleClasses: {\n    type: String,\n    default: '',\n    // `deprecated` -> Don't use this prop\n    // `deprecation` -> Refers to a change in prop usage\n    deprecated:\n      'Setting prop \"extra-toggle-classes\" is deprecated. Use \"toggle-class\" prop instead.'\n  }\n}\n\n// @vue/component\nexport const BNavItemDropdown = /*#__PURE__*/ Vue.extend({\n  name: 'BNavItemDropdown',\n  mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n  props,\n  computed: {\n    isNav() {\n      // Signal to dropdown mixin that we are in a navbar\n      return true\n    },\n    dropdownClasses() {\n      return [this.directionClass, { show: this.visible }]\n    },\n    menuClasses() {\n      return [\n        this.extraMenuClasses, // Deprecated\n        this.menuClass,\n        {\n          'dropdown-menu-right': this.right,\n          show: this.visible\n        }\n      ]\n    },\n    toggleClasses() {\n      return [\n        this.extraToggleClasses, // Deprecated\n        this.toggleClass,\n        {\n          'dropdown-toggle-no-caret': this.noCaret\n        }\n      ]\n    }\n  },\n  render(h) {\n    const button = h(\n      BLink,\n      {\n        ref: 'toggle',\n        staticClass: 'nav-link dropdown-toggle',\n        class: this.toggleClasses,\n        props: {\n          href: '#',\n          disabled: this.disabled\n        },\n        attrs: {\n          id: this.safeId('_BV_button_'),\n          'aria-haspopup': 'true',\n          'aria-expanded': this.visible ? 'true' : 'false'\n        },\n        on: {\n          click: this.toggle,\n          keydown: this.toggle // space, enter, down\n        }\n      },\n      [\n        this.$slots['button-content'] ||\n          this.$slots.text ||\n          h('span', { domProps: htmlOrText(this.html, this.text) })\n      ]\n    )\n    const menu = h(\n      'ul',\n      {\n        staticClass: 'dropdown-menu',\n        class: this.menuClasses,\n        ref: 'menu',\n        attrs: {\n          tabindex: '-1',\n          'aria-labelledby': this.safeId('_BV_button_')\n        },\n        on: {\n          keydown: this.onKeydown // up, down, esc\n        }\n      },\n      !this.lazy || this.visible ? this.normalizeSlot('default', { hide: this.hide }) : [h()]\n    )\n    return h(\n      'li',\n      {\n        staticClass: 'nav-item b-nav-dropdown dropdown',\n        class: this.dropdownClasses,\n        attrs: { id: this.safeId() }\n      },\n      [button, menu]\n    )\n  }\n})\n\nexport default BNavItemDropdown\n","import { BNav } from './nav'\nimport { BNavItem } from './nav-item'\nimport { BNavText } from './nav-text'\nimport { BNavForm } from './nav-form'\nimport { BNavItemDropdown } from './nav-item-dropdown'\nimport { DropdownPlugin } from '../dropdown'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst NavPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BNav,\n    BNavItem,\n    BNavText,\n    BNavForm,\n    BNavItemDropdown,\n    BNavItemDd: BNavItemDropdown,\n    BNavDropdown: BNavItemDropdown,\n    BNavDd: BNavItemDropdown\n  },\n  plugins: {\n    DropdownPlugin\n  }\n})\n\nexport { NavPlugin, BNav, BNavItem, BNavText, BNavForm, BNavItemDropdown }\n\nexport default NavPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig, getBreakpoints } from '../../utils/config'\nimport { isString } from '../../utils/inspect'\n\nconst NAME = 'BNavbar'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'nav'\n  },\n  type: {\n    type: String,\n    default: 'light'\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  toggleable: {\n    type: [Boolean, String],\n    default: false\n  },\n  fixed: {\n    type: String\n  },\n  sticky: {\n    type: Boolean,\n    default: false\n  },\n  print: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BNavbar = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    let breakpoint = ''\n    const xs = getBreakpoints()[0]\n    if (props.toggleable && isString(props.toggleable) && props.toggleable !== xs) {\n      breakpoint = `navbar-expand-${props.toggleable}`\n    } else if (props.toggleable === false) {\n      breakpoint = 'navbar-expand'\n    }\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'navbar',\n        class: {\n          'd-print': props.print,\n          'sticky-top': props.sticky,\n          [`navbar-${props.type}`]: Boolean(props.type),\n          [`bg-${props.variant}`]: Boolean(props.variant),\n          [`fixed-${props.fixed}`]: Boolean(props.fixed),\n          [`${breakpoint}`]: Boolean(breakpoint)\n        },\n        attrs: {\n          role: props.tag === 'nav' ? null : 'navigation'\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BNavbar\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { props as BNavProps } from '../nav/nav'\n\n// -- Constants --\n\nexport const props = pluckProps(['tag', 'fill', 'justified', 'align', 'small'], BNavProps)\n\n// -- Utils --\n\nconst computeJustifyContent = value => {\n  // Normalize value\n  value = value === 'left' ? 'start' : value === 'right' ? 'end' : value\n  return `justify-content-${value}`\n}\n\n// @vue/component\nexport const BNavbarNav = /*#__PURE__*/ Vue.extend({\n  name: 'BNavbarNav',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'navbar-nav',\n        class: {\n          'nav-fill': props.fill,\n          'nav-justified': props.justified,\n          [computeJustifyContent(props.align)]: props.align,\n          small: props.small\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BNavbarNav\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { BLink, propsFactory } from '../link/link'\n\nconst linkProps = propsFactory()\nlinkProps.href.default = undefined\nlinkProps.to.default = undefined\n\nexport const props = {\n  ...linkProps,\n  tag: {\n    type: String,\n    default: 'div'\n  }\n}\n\n// @vue/component\nexport const BNavbarBrand = /*#__PURE__*/ Vue.extend({\n  name: 'BNavbarBrand',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    const isLink = Boolean(props.to || props.href)\n    const tag = isLink ? BLink : props.tag\n\n    return h(\n      tag,\n      mergeData(data, {\n        staticClass: 'navbar-brand',\n        props: isLink ? pluckProps(linkProps, props) : {}\n      }),\n      children\n    )\n  }\n})\n\nexport default BNavbarBrand\n","import Vue from '../../utils/vue'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { getComponentConfig } from '../../utils/config'\n\nconst NAME = 'BNavbarToggle'\n\n// TODO: Switch to using VBToggle directive, will reduce code footprint\n\n// Events we emit on $root\nconst EVENT_TOGGLE = 'bv::toggle::collapse'\n\n// Events we listen to on $root\nconst EVENT_STATE = 'bv::collapse::state'\n// This private event is NOT to be documented as people should not be using it.\nconst EVENT_STATE_SYNC = 'bv::collapse::sync::state'\n\n// @vue/component\nexport const BNavbarToggle = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [listenOnRootMixin, normalizeSlotMixin],\n  props: {\n    label: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'label')\n    },\n    target: {\n      type: String,\n      required: true\n    }\n  },\n  data() {\n    return {\n      toggleState: false\n    }\n  },\n  created() {\n    this.listenOnRoot(EVENT_STATE, this.handleStateEvt)\n    this.listenOnRoot(EVENT_STATE_SYNC, this.handleStateEvt)\n  },\n  methods: {\n    onClick(evt) {\n      this.$emit('click', evt)\n      if (!evt.defaultPrevented) {\n        this.$root.$emit(EVENT_TOGGLE, this.target)\n      }\n    },\n    handleStateEvt(id, state) {\n      if (id === this.target) {\n        this.toggleState = state\n      }\n    }\n  },\n  render(h) {\n    return h(\n      'button',\n      {\n        class: ['navbar-toggler'],\n        attrs: {\n          type: 'button',\n          'aria-label': this.label,\n          'aria-controls': this.target,\n          'aria-expanded': this.toggleState ? 'true' : 'false'\n        },\n        on: { click: this.onClick }\n      },\n      [this.normalizeSlot('default') || h('span', { class: ['navbar-toggler-icon'] })]\n    )\n  }\n})\n\nexport default BNavbarToggle\n","import { BNavbar } from './navbar'\nimport { BNavbarNav } from './navbar-nav'\nimport { BNavbarBrand } from './navbar-brand'\nimport { BNavbarToggle } from './navbar-toggle'\nimport { NavPlugin } from '../nav'\nimport { CollapsePlugin } from '../collapse'\nimport { DropdownPlugin } from '../dropdown'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst NavbarPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BNavbar,\n    BNavbarNav,\n    BNavbarBrand,\n    BNavbarToggle,\n    BNavToggle: BNavbarToggle\n  },\n  plugins: {\n    NavPlugin,\n    CollapsePlugin,\n    DropdownPlugin\n  }\n})\n\nexport { NavbarPlugin, BNavbar, BNavbarNav, BNavbarBrand, BNavbarToggle }\n\nexport default NavbarPlugin\n","/**\n * @param {number} length\n * @return {Array}\n */\nconst range = length => Array.apply(null, { length })\n\nexport default range\n","/*\n * Common props, computed, data, render function, and methods\n * for <b-pagination> and <b-pagination-nav>\n */\n\nimport KeyCodes from '../utils/key-codes'\nimport range from '../utils/range'\nimport toString from '../utils/to-string'\nimport warn from '../utils/warn'\nimport { isFunction, isNull } from '../utils/inspect'\nimport { isVisible, isDisabled, selectAll, getAttr } from '../utils/dom'\nimport normalizeSlotMixin from '../mixins/normalize-slot'\nimport { BLink } from '../components/link/link'\n\n// Threshold of limit size when we start/stop showing ellipsis\nconst ELLIPSIS_THRESHOLD = 3\n\n// Default # of buttons limit\nconst DEFAULT_LIMIT = 5\n\n// Make an array of N to N+X\nconst makePageArray = (startNum, numPages) =>\n  range(numPages).map((val, i) => ({ number: startNum + i, classes: null }))\n\n// Sanitize the provided limit value (converting to a number)\nconst sanitizeLimit = val => {\n  const limit = parseInt(val, 10) || 1\n  return limit < 1 ? DEFAULT_LIMIT : limit\n}\n\n// Sanitize the provided current page number (converting to a number)\nconst sanitizeCurPage = (val, numPages) => {\n  const page = parseInt(val, 10) || 1\n  return page > numPages ? numPages : page < 1 ? 1 : page\n}\n\n// Links don't normally respond to SPACE, so we add that\n// functionality via this handler\nconst onSpaceKey = evt => {\n  if (evt.keyCode === KeyCodes.SPACE) {\n    evt.preventDefault() // Stop page from scrolling\n    evt.stopImmediatePropagation()\n    evt.stopPropagation()\n    // Trigger the click event on the link\n    evt.currentTarget.click()\n    return false\n  }\n}\n\n// Props object\nconst props = {\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  value: {\n    type: [Number, String],\n    default: null,\n    validator(value) {\n      const num = parseInt(value, 10)\n      /* istanbul ignore if */\n      if (!isNull(value) && (isNaN(num) || num < 1)) {\n        warn('pagination: v-model value must be a number greater than 0')\n        return false\n      }\n      return true\n    }\n  },\n  limit: {\n    type: [Number, String],\n    default: DEFAULT_LIMIT,\n    validator(value) {\n      const num = parseInt(value, 10)\n      /* istanbul ignore if */\n      if (isNaN(num) || num < 1) {\n        warn('pagination: prop \"limit\" must be a number greater than 0')\n        return false\n      }\n      return true\n    }\n  },\n  size: {\n    type: String,\n    default: 'md'\n  },\n  align: {\n    type: String,\n    default: 'left'\n  },\n  hideGotoEndButtons: {\n    type: Boolean,\n    default: false\n  },\n  ariaLabel: {\n    type: String,\n    default: 'Pagination'\n  },\n  labelFirstPage: {\n    type: String,\n    default: 'Go to first page'\n  },\n  firstText: {\n    type: String,\n    default: '\\u00AB' // '«'\n  },\n  labelPrevPage: {\n    type: String,\n    default: 'Go to previous page'\n  },\n  prevText: {\n    type: String,\n    default: '\\u2039' // '‹'\n  },\n  labelNextPage: {\n    type: String,\n    default: 'Go to next page'\n  },\n  nextText: {\n    type: String,\n    default: '\\u203A' // '›'\n  },\n  labelLastPage: {\n    type: String,\n    default: 'Go to last page'\n  },\n  lastText: {\n    type: String,\n    default: '\\u00BB' // '»'\n  },\n  labelPage: {\n    type: [String, Function],\n    default: 'Go to page'\n  },\n  hideEllipsis: {\n    type: Boolean,\n    default: false\n  },\n  ellipsisText: {\n    type: String,\n    default: '\\u2026' // '…'\n  }\n}\n\n// @vue/component\nexport default {\n  mixins: [normalizeSlotMixin],\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props,\n  data() {\n    const curr = parseInt(this.value, 10)\n    return {\n      // -1 signifies no page initially selected\n      currentPage: curr > 0 ? curr : -1,\n      localNumPages: 1,\n      localLimit: DEFAULT_LIMIT\n    }\n  },\n  computed: {\n    btnSize() {\n      return this.size ? `pagination-${this.size}` : ''\n    },\n    alignment() {\n      const align = this.align\n      if (align === 'center') {\n        return 'justify-content-center'\n      } else if (align === 'end' || align === 'right') {\n        return 'justify-content-end'\n      } else if (align === 'fill') {\n        // The page-items will also have 'flex-fill' added.\n        // We ad text centering to make the button appearance better in fill mode.\n        return 'text-center'\n      }\n      return ''\n    },\n    computedCurrentPage() {\n      return sanitizeCurPage(this.currentPage, this.localNumPages)\n    },\n    paginationParams() {\n      // Determine if we should show the the ellipsis\n      const limit = this.limit\n      const numPages = this.localNumPages\n      const curPage = this.computedCurrentPage\n      const hideEllipsis = this.hideEllipsis\n      let showFirstDots = false\n      let showLastDots = false\n      let numLinks = limit\n      let startNum = 1\n\n      if (numPages <= limit) {\n        // Special Case: Less pages available than the limit of displayed pages\n        numLinks = numPages\n      } else if (curPage < limit - 1 && limit > ELLIPSIS_THRESHOLD) {\n        // We are near the beginning of the page list\n        if (!hideEllipsis) {\n          showLastDots = true\n          numLinks = limit - 1\n        }\n      } else if (numPages - curPage + 2 < limit && limit > ELLIPSIS_THRESHOLD) {\n        // We are near the end of the list\n        if (!hideEllipsis) {\n          numLinks = limit - 1\n          showFirstDots = true\n        }\n        startNum = numPages - numLinks + 1\n      } else {\n        // We are somewhere in the middle of the page list\n        if (limit > ELLIPSIS_THRESHOLD && !hideEllipsis) {\n          numLinks = limit - 2\n          showFirstDots = showLastDots = true\n        }\n        startNum = curPage - Math.floor(numLinks / 2)\n      }\n      // Sanity checks\n      if (startNum < 1) {\n        /* istanbul ignore next */\n        startNum = 1\n      } else if (startNum > numPages - numLinks) {\n        startNum = numPages - numLinks + 1\n      }\n      return { showFirstDots, showLastDots, numLinks, startNum }\n    },\n    pageList() {\n      // Generates the pageList array\n      const { numLinks, startNum } = this.paginationParams\n      const currPage = this.computedCurrentPage\n      // Generate list of page numbers\n      const pages = makePageArray(startNum, numLinks)\n      // We limit to a total of 3 page buttons on XS screens\n      // So add classes to page links to hide them for XS breakpoint\n      // Note: Ellipsis will also be hidden on XS screens\n      // TODO: Make this visual limit configurable based on breakpoint(s)\n      if (pages.length > 3) {\n        const idx = currPage - startNum\n        // THe following is a bootstrap-vue custom utility class\n        const classes = 'bv-d-xs-down-none'\n        if (idx === 0) {\n          // Keep leftmost 3 buttons visible when current page is first page\n          for (let i = 3; i < pages.length; i++) {\n            pages[i].classes = classes\n          }\n        } else if (idx === pages.length - 1) {\n          // Keep rightmost 3 buttons visible when current page is last page\n          for (let i = 0; i < pages.length - 3; i++) {\n            pages[i].classes = classes\n          }\n        } else {\n          // Hide all except current page, current page - 1 and current page + 1\n          for (let i = 0; i < idx - 1; i++) {\n            // hide some left button(s)\n            pages[i].classes = classes\n          }\n          for (let i = pages.length - 1; i > idx + 1; i--) {\n            // hide some right button(s)\n            pages[i].classes = classes\n          }\n        }\n      }\n      return pages\n    }\n  },\n  watch: {\n    value(newValue, oldValue) {\n      if (newValue !== oldValue) {\n        this.currentPage = sanitizeCurPage(newValue, this.localNumPages)\n      }\n    },\n    currentPage(newValue, oldValue) {\n      if (newValue !== oldValue) {\n        // Emit null if no page selected\n        this.$emit('input', newValue > 0 ? newValue : null)\n      }\n    },\n    limit(newValue, oldValue) {\n      if (newValue !== oldValue) {\n        this.localLimit = sanitizeLimit(newValue)\n      }\n    }\n  },\n  created() {\n    // Set our default values in data\n    this.localLimit = sanitizeLimit(this.limit)\n    this.$nextTick(() => {\n      // Sanity check\n      this.currentPage =\n        this.currentPage > this.localNumPages ? this.localNumPages : this.currentPage\n    })\n  },\n  methods: {\n    getButtons() {\n      // Return only buttons that are visible\n      return selectAll('a.page-link', this.$el).filter(btn => isVisible(btn))\n    },\n    setBtnFocus(btn) {\n      btn.focus()\n    },\n    focusCurrent() {\n      // We do this in next tick to ensure buttons have finished rendering\n      this.$nextTick(() => {\n        const btn = this.getButtons().find(\n          el => parseInt(getAttr(el, 'aria-posinset'), 10) === this.computedCurrentPage\n        )\n        if (btn && btn.focus) {\n          this.setBtnFocus(btn)\n        } else {\n          // Fallback if current page is not in button list\n          this.focusFirst()\n        }\n      })\n    },\n    focusFirst() {\n      // We do this in next tick to ensure buttons have finished rendering\n      this.$nextTick(() => {\n        const btn = this.getButtons().find(el => !isDisabled(el))\n        if (btn && btn.focus && btn !== document.activeElement) {\n          this.setBtnFocus(btn)\n        }\n      })\n    },\n    focusLast() {\n      // We do this in next tick to ensure buttons have finished rendering\n      this.$nextTick(() => {\n        const btn = this.getButtons()\n          .reverse()\n          .find(el => !isDisabled(el))\n        if (btn && btn.focus && btn !== document.activeElement) {\n          this.setBtnFocus(btn)\n        }\n      })\n    },\n    focusPrev() {\n      // We do this in next tick to ensure buttons have finished rendering\n      this.$nextTick(() => {\n        const buttons = this.getButtons()\n        const idx = buttons.indexOf(document.activeElement)\n        if (idx > 0 && !isDisabled(buttons[idx - 1]) && buttons[idx - 1].focus) {\n          this.setBtnFocus(buttons[idx - 1])\n        }\n      })\n    },\n    focusNext() {\n      // We do this in next tick to ensure buttons have finished rendering\n      this.$nextTick(() => {\n        const buttons = this.getButtons()\n        const idx = buttons.indexOf(document.activeElement)\n        const cnt = buttons.length - 1\n        if (idx < cnt && !isDisabled(buttons[idx + 1]) && buttons[idx + 1].focus) {\n          this.setBtnFocus(buttons[idx + 1])\n        }\n      })\n    }\n  },\n  render(h) {\n    const buttons = []\n    const numberOfPages = this.localNumPages\n    const disabled = this.disabled\n    const { showFirstDots, showLastDots } = this.paginationParams\n    const currPage = this.computedCurrentPage\n    const fill = this.align === 'fill'\n\n    // Helper function and flag\n    const isActivePage = pageNum => pageNum === currPage\n    const noCurrPage = this.currentPage < 1\n\n    // Factory function for prev/next/first/last buttons\n    const makeEndBtn = (linkTo, ariaLabel, btnSlot, btnText, pageTest, key) => {\n      const isDisabled =\n        disabled || isActivePage(pageTest) || noCurrPage || linkTo < 1 || linkTo > numberOfPages\n      const pageNum = linkTo < 1 ? 1 : linkTo > numberOfPages ? numberOfPages : linkTo\n      const scope = { disabled: isDisabled, page: pageNum, index: pageNum - 1 }\n      const btnContent = this.normalizeSlot(btnSlot, scope) || toString(btnText) || h()\n      const inner = h(\n        isDisabled ? 'span' : BLink,\n        {\n          staticClass: 'page-link',\n          props: isDisabled ? {} : this.linkProps(linkTo),\n          attrs: {\n            role: 'menuitem',\n            tabindex: isDisabled ? null : '-1',\n            'aria-label': ariaLabel,\n            'aria-controls': this.ariaControls || null,\n            'aria-disabled': isDisabled ? 'true' : null\n          },\n          on: isDisabled\n            ? {}\n            : {\n                click: evt => {\n                  this.onClick(linkTo, evt)\n                },\n                keydown: onSpaceKey\n              }\n        },\n        [btnContent]\n      )\n      return h(\n        'li',\n        {\n          key,\n          staticClass: 'page-item',\n          class: { disabled: isDisabled, 'flex-fill': fill },\n          attrs: {\n            role: 'none presentation',\n            'aria-hidden': isDisabled ? 'true' : null\n          }\n        },\n        [inner]\n      )\n    }\n\n    // Ellipsis factory\n    const makeEllipsis = isLast => {\n      return h(\n        'li',\n        {\n          key: `ellipsis-${isLast ? 'last' : 'first'}`,\n          staticClass: 'page-item',\n          class: ['disabled', 'bv-d-xs-down-none', fill ? 'flex-fill' : ''],\n          attrs: { role: 'separator' }\n        },\n        [\n          h('span', { staticClass: 'page-link' }, [\n            this.normalizeSlot('ellipsis-text') || toString(this.ellipsisText) || h()\n          ])\n        ]\n      )\n    }\n\n    // Goto First Page button bookend\n    buttons.push(\n      this.hideGotoEndButtons\n        ? h()\n        : makeEndBtn(1, this.labelFirstPage, 'first-text', this.firstText, 1, 'bookend-goto-first')\n    )\n\n    // Goto Previous page button bookend\n    buttons.push(\n      makeEndBtn(\n        currPage - 1,\n        this.labelPrevPage,\n        'prev-text',\n        this.prevText,\n        1,\n        'bookend-goto-prev'\n      )\n    )\n\n    // First Ellipsis Bookend\n    buttons.push(showFirstDots ? makeEllipsis(false) : h())\n\n    // Individual Page links\n    this.pageList.forEach((page, idx) => {\n      const active = isActivePage(page.number) && !noCurrPage\n      // Active page will have tabindex of 0, or if no current page and first page button\n      const tabIndex = disabled ? null : active || (noCurrPage && idx === 0) ? '0' : '-1'\n      const attrs = {\n        role: 'menuitemradio',\n        'aria-disabled': disabled ? 'true' : null,\n        'aria-controls': this.ariaControls || null,\n        'aria-label': isFunction(this.labelPage)\n          ? this.labelPage(page.number)\n          : `${this.labelPage} ${page.number}`,\n        'aria-checked': active ? 'true' : 'false',\n        'aria-posinset': page.number,\n        'aria-setsize': numberOfPages,\n        // ARIA \"roving tabindex\" method\n        tabindex: tabIndex\n      }\n      const btnContent = toString(this.makePage(page.number))\n      const scope = {\n        page: page.number,\n        index: page.number - 1,\n        content: btnContent,\n        active,\n        disabled\n      }\n      const inner = h(\n        disabled ? 'span' : BLink,\n        {\n          props: disabled ? {} : this.linkProps(page.number),\n          staticClass: 'page-link',\n          attrs,\n          on: disabled\n            ? {}\n            : {\n                click: evt => {\n                  this.onClick(page.number, evt)\n                },\n                keydown: onSpaceKey\n              }\n        },\n        [this.normalizeSlot('page', scope) || btnContent]\n      )\n      buttons.push(\n        h(\n          'li',\n          {\n            key: `page-${page.number}`,\n            staticClass: 'page-item',\n            class: [{ disabled, active, 'flex-fill': fill }, page.classes],\n            attrs: { role: 'none presentation' }\n          },\n          [inner]\n        )\n      )\n    })\n\n    // Last Ellipsis Bookend\n    buttons.push(showLastDots ? makeEllipsis(true) : h())\n\n    // Goto Next page button bookend\n    buttons.push(\n      makeEndBtn(\n        currPage + 1,\n        this.labelNextPage,\n        'next-text',\n        this.nextText,\n        numberOfPages,\n        'bookend-goto-next'\n      )\n    )\n\n    // Goto Last Page button bookend\n    buttons.push(\n      this.hideGotoEndButtons\n        ? h()\n        : makeEndBtn(\n            numberOfPages,\n            this.labelLastPage,\n            'last-text',\n            this.lastText,\n            numberOfPages,\n            'bookend-goto-last'\n          )\n    )\n\n    // Assemble the pagination buttons\n    const pagination = h(\n      'ul',\n      {\n        ref: 'ul',\n        staticClass: 'pagination',\n        class: ['b-pagination', this.btnSize, this.alignment],\n        attrs: {\n          role: 'menubar',\n          'aria-disabled': disabled ? 'true' : 'false',\n          'aria-label': this.ariaLabel || null\n        },\n        on: {\n          keydown: evt => {\n            const keyCode = evt.keyCode\n            const shift = evt.shiftKey\n            if (keyCode === KeyCodes.LEFT) {\n              evt.preventDefault()\n              shift ? this.focusFirst() : this.focusPrev()\n            } else if (keyCode === KeyCodes.RIGHT) {\n              evt.preventDefault()\n              shift ? this.focusLast() : this.focusNext()\n            }\n          }\n        }\n      },\n      buttons\n    )\n\n    // if we are pagination-nav, wrap in '<nav>' wrapper\n    if (this.isNav) {\n      return h(\n        'nav',\n        {\n          attrs: {\n            'aria-disabled': disabled ? 'true' : null,\n            'aria-hidden': disabled ? 'true' : 'false'\n          }\n        },\n        [pagination]\n      )\n    } else {\n      return pagination\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport paginationMixin from '../../mixins/pagination'\nimport { isVisible } from '../../utils/dom'\n\nconst DEFAULT_PER_PAGE = 20\nconst DEFAULT_TOTAL_ROWS = 0\n\nconst sanitizePerPage = val => {\n  const perPage = parseInt(val, 10) || DEFAULT_PER_PAGE\n  return perPage < 1 ? 1 : perPage\n}\n\nconst sanitizeTotalRows = val => {\n  const totalRows = parseInt(val, 10) || DEFAULT_TOTAL_ROWS\n  return totalRows < 0 ? 0 : totalRows\n}\n\nconst props = {\n  perPage: {\n    type: [Number, String],\n    default: DEFAULT_PER_PAGE\n  },\n  totalRows: {\n    type: [Number, String],\n    default: DEFAULT_TOTAL_ROWS\n  },\n  ariaControls: {\n    type: String,\n    default: null\n  }\n}\n\n// Our render function is brought in from the pagination mixin\n// @vue/component\nexport const BPagination = /*#__PURE__*/ Vue.extend({\n  name: 'BPagination',\n  mixins: [paginationMixin],\n  props,\n  computed: {\n    numberOfPages() {\n      const result = Math.ceil(sanitizeTotalRows(this.totalRows) / sanitizePerPage(this.perPage))\n      return result < 1 ? 1 : result\n    }\n  },\n  watch: {\n    numberOfPages(newVal) {\n      if (newVal === this.localNumPages) {\n        /* istanbul ignore next */\n        return\n      }\n      this.localNumPages = newVal\n      this.currentPage = 1\n    }\n  },\n  created() {\n    // Set the initial page count\n    this.localNumPages = this.numberOfPages\n    // Set the initial page value\n    const curr = parseInt(this.value, 10) || 0\n    if (curr > 0) {\n      this.currentPage = curr\n    } else {\n      this.$nextTick(() => {\n        // If this value parses to NaN or a value less than 1\n        // Trigger an initial emit of 'null' if no page specified\n        this.currentPage = 0\n      })\n    }\n  },\n  mounted() {\n    // Set the initial page count\n    this.localNumPages = this.numberOfPages\n  },\n  methods: {\n    // These methods are used by the render function\n    onClick(num, evt) {\n      // Handle edge cases where number of pages has changed (i.e. if perPage changes)\n      // This should normally not happen, but just in case.\n      if (num > this.numberOfPages) {\n        /* istanbul ignore next */\n        num = this.numberOfPages\n      } else if (num < 1) {\n        /* istanbul ignore next */\n        num = 1\n      }\n      // Update the v-model\n      this.currentPage = num\n      // Emit event triggered by user interaction\n      this.$emit('change', this.currentPage)\n      this.$nextTick(() => {\n        // Keep the current button focused if possible\n        const target = evt.target\n        if (isVisible(target) && this.$el.contains(target) && target.focus) {\n          target.focus()\n        } else {\n          this.focusCurrent()\n        }\n      })\n    },\n    makePage(pageNum) {\n      return pageNum\n    },\n    linkProps(pageNum) {\n      // Always '#' for pagination component\n      return { href: '#' }\n    }\n  }\n})\n\nexport default BPagination\n","import { BPagination } from './pagination'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst PaginationPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BPagination }\n})\n\nexport { PaginationPlugin, BPagination }\n\nexport default PaginationPlugin\n","import Vue from '../../utils/vue'\nimport looseEqual from '../../utils/loose-equal'\nimport toString from '../../utils/to-string'\nimport warn from '../../utils/warn'\nimport { requestAF } from '../../utils/dom'\nimport { isBrowser } from '../../utils/env'\nimport { isArray, isUndefined, isFunction, isObject } from '../../utils/inspect'\nimport { computeHref, parseQuery } from '../../utils/router'\nimport paginationMixin from '../../mixins/pagination'\n\n// Props object\nconst props = {\n  // pagination-nav specific props\n  numberOfPages: {\n    type: [Number, String],\n    default: 1,\n    validator(value) {\n      const num = parseInt(value, 10)\n      /* istanbul ignore if */\n      if (isNaN(num) || num < 1) {\n        warn('b-pagination: prop \"number-of-pages\" must be a number greater than 0')\n        return false\n      }\n      return true\n    }\n  },\n  baseUrl: {\n    type: String,\n    default: '/'\n  },\n  useRouter: {\n    type: Boolean,\n    default: false\n  },\n  linkGen: {\n    type: Function,\n    default: null\n  },\n  pageGen: {\n    type: Function,\n    default: null\n  },\n  pages: {\n    // Optional array of page links\n    type: Array,\n    default: null\n  },\n  noPageDetect: {\n    // Disable auto page number detection if true\n    type: Boolean,\n    default: false\n  },\n  // router-link specific props\n  activeClass: {\n    type: String\n    // default: undefined\n  },\n  exact: {\n    type: Boolean,\n    default: false\n  },\n  exactActiveClass: {\n    type: String\n    // default: undefined\n  },\n  // nuxt-link specific prop(s)\n  noPrefetch: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// TODO: move this to an instance method in pagination mixin\nconst sanitizeNumPages = value => {\n  const num = parseInt(value, 10) || 1\n  return num < 1 ? 1 : num\n}\n\n// Our render function is brought in via the pagination mixin\n// @vue/component\nexport const BPaginationNav = /*#__PURE__*/ Vue.extend({\n  name: 'BPaginationNav',\n  mixins: [paginationMixin],\n  props,\n  computed: {\n    // Used by render function to trigger wrapping in '<nav>' element\n    isNav() {\n      return true\n    },\n    computedValue() {\n      // Returns the value prop as a number or `null` if undefined or < 1\n      const val = parseInt(this.value, 10)\n      return isNaN(val) || val < 1 ? null : val\n    }\n  },\n  watch: {\n    numberOfPages(newVal, oldVal) {\n      this.$nextTick(() => {\n        this.setNumPages()\n      })\n    },\n    pages(newVal, oldVal) {\n      this.$nextTick(() => {\n        this.setNumPages()\n      })\n    }\n  },\n  created() {\n    this.setNumPages()\n  },\n  mounted() {\n    if (this.$router) {\n      // We only add the watcher if vue router is detected\n      this.$watch('$route', (to, from) => {\n        this.$nextTick(() => {\n          requestAF(() => {\n            this.guessCurrentPage()\n          })\n        })\n      })\n    }\n  },\n  methods: {\n    setNumPages() {\n      if (isArray(this.pages) && this.pages.length > 0) {\n        this.localNumPages = this.pages.length\n      } else {\n        this.localNumPages = sanitizeNumPages(this.numberOfPages)\n      }\n      this.$nextTick(() => {\n        this.guessCurrentPage()\n      })\n    },\n    onClick(pageNum, evt) {\n      // Dont do anything if clicking the current active page\n      if (pageNum === this.currentPage) {\n        return\n      }\n      requestAF(() => {\n        // Update the v-model\n        // Done in in requestAF() to allow browser to complete the\n        // native browser click handling of a link\n        this.currentPage = pageNum\n        this.$emit('change', pageNum)\n      })\n      this.$nextTick(() => {\n        // Done in a nextTick() to ensure rendering complete\n        try {\n          // Emulate native link click page reloading behaviour by blurring the\n          // paginator and returning focus to the document\n          const target = evt.currentTarget || evt.target\n          target.blur()\n        } catch (e) {}\n      })\n    },\n    getPageInfo(pageNum) {\n      if (!isArray(this.pages) || this.pages.length === 0 || isUndefined(this.pages[pageNum - 1])) {\n        const link = `${this.baseUrl}${pageNum}`\n        return {\n          link: this.useRouter ? { path: link } : link,\n          text: toString(pageNum)\n        }\n      }\n      const info = this.pages[pageNum - 1]\n      if (isObject(info)) {\n        const link = info.link\n        return {\n          // Normalize link for router use\n          link: isObject(link) ? link : this.useRouter ? { path: link } : link,\n          // Make sure text has a value\n          text: toString(info.text || pageNum)\n        }\n      } else {\n        return { link: toString(info), text: toString(pageNum) }\n      }\n    },\n    makePage(pageNum) {\n      const info = this.getPageInfo(pageNum)\n      if (this.pageGen && isFunction(this.pageGen)) {\n        return this.pageGen(pageNum, info)\n      }\n      return info.text\n    },\n    makeLink(pageNum) {\n      const info = this.getPageInfo(pageNum)\n      if (this.linkGen && isFunction(this.linkGen)) {\n        return this.linkGen(pageNum, info)\n      }\n      return info.link\n    },\n    linkProps(pageNum) {\n      const link = this.makeLink(pageNum)\n      const props = {\n        target: this.target || null,\n        rel: this.rel || null,\n        disabled: this.disabled,\n        // The following props are only used if BLink detects router\n        exact: this.exact,\n        activeClass: this.activeClass,\n        exactActiveClass: this.exactActiveClass,\n        append: this.append,\n        replace: this.replace,\n        // nuxt-link specific prop\n        noPrefetch: this.noPrefetch\n      }\n      if (this.useRouter || isObject(link)) {\n        props.to = link\n      } else {\n        props.href = link\n      }\n      return props\n    },\n    resolveLink(to = '') {\n      // Given a to (or href string), convert to normalized route-like structure\n      // Works only client side!!\n      let link\n      try {\n        // Convert the `to` to a HREF via a temporary `a` tag\n        link = document.createElement('a')\n        link.href = computeHref({ to }, 'a', '/', '/')\n        // We need to add the anchor to the document to make sure the\n        // `pathname` is correctly detected in any browser (i.e. IE)\n        document.body.appendChild(link)\n        // Once href is assigned, the link will be normalized to the full URL bits\n        const { pathname, hash, search } = link\n        // Remove link from document\n        document.body.removeChild(link)\n        // Return the location in a route-like object\n        return { path: pathname, hash: hash, query: parseQuery(search) }\n      } catch (e) {\n        /* istanbul ignore next */\n        try {\n          link && link.parentNode && link.parentNode.removeChild(link)\n        } catch (e) {}\n        /* istanbul ignore next */\n        return {}\n      }\n    },\n    resolveRoute(to = '') {\n      // Given a to (or href string), convert to normalized route location structure\n      // works only when router available!!\n      try {\n        const route = this.$router.resolve(to, this.$route).route\n        return { path: route.path, hash: route.hash, query: route.query }\n      } catch (e) {\n        /* istanbul ignore next */\n        return {}\n      }\n    },\n    guessCurrentPage() {\n      let guess = this.computedValue\n      const $router = this.$router\n      const $route = this.$route\n      // This section only occurs if we are client side, or server-side with $router\n      /* istanbul ignore else */\n      if (!this.noPageDetect && !guess && (isBrowser || (!isBrowser && $router))) {\n        // Current route (if router available)\n        const currRoute =\n          $router && $route ? { path: $route.path, hash: $route.hash, query: $route.query } : {}\n        // Current page full HREF (if client side). Can't be done as a computed prop!\n        const loc = isBrowser ? window.location || document.location : null\n        const currLink = loc\n          ? { path: loc.pathname, hash: loc.hash, query: parseQuery(loc.search) }\n          : {}\n        // Loop through the possible pages looking for a match until found\n        for (let page = 1; !guess && page <= this.localNumPages; page++) {\n          const to = this.makeLink(page)\n          if ($router && (isObject(to) || this.useRouter)) {\n            // Resolve the page via the $router\n            guess = looseEqual(this.resolveRoute(to), currRoute) ? page : null\n          } else if (isBrowser) {\n            // If no $router available (or !this.useRouter when `to` is a string)\n            // we compare using parsed URIs\n            guess = looseEqual(this.resolveLink(to), currLink) ? page : null\n          } else {\n            // probably SSR, but no $router so we can't guess, so lets break out of\n            // the loop early\n            /* istanbul ignore next */\n            guess = -1\n          }\n        }\n      }\n      // We set currentPage to 0 to trigger an $emit('input', null)\n      // As the default for this.currentPage is -1 when no value is specified\n      // And valid page numbers are greater than 0\n      this.currentPage = guess > 0 ? guess : 0\n    }\n  }\n})\n\nexport default BPaginationNav\n","import { BPaginationNav } from './pagination-nav'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst PaginationNavPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BPaginationNav }\n})\n\nexport { PaginationNavPlugin, BPaginationNav }\n\nexport default PaginationNavPlugin\n","import Popper from 'popper.js'\nimport BvEvent from './bv-event.class'\nimport noop from './noop'\nimport { from as arrayFrom } from './array'\nimport {\n  closest,\n  select,\n  isVisible,\n  isDisabled,\n  getCS,\n  addClass,\n  removeClass,\n  hasClass,\n  setAttr,\n  removeAttr,\n  getAttr,\n  eventOn,\n  eventOff\n} from './dom'\nimport { isFunction, isNull, isNumber, isObject, isString, isUndefined } from './inspect'\n\nconst NAME = 'tooltip'\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BS_CLASS_PREFIX_REGEX = new RegExp(`\\\\b${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst TRANSITION_DURATION = 150\n\n// Modal `$root` hidden event\nconst MODAL_CLOSE_EVENT = 'bv::modal::hidden'\n// Modal container selector for appending tooltip/popover\nconst MODAL_SELECTOR = '.modal-content'\n\n// For dropdown sniffing\nconst DROPDOWN_CLASS = 'dropdown'\nconst DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'\n\nconst AttachmentMap = {\n  AUTO: 'auto',\n  TOP: 'top',\n  RIGHT: 'right',\n  BOTTOM: 'bottom',\n  LEFT: 'left',\n  TOPLEFT: 'top',\n  TOPRIGHT: 'top',\n  RIGHTTOP: 'right',\n  RIGHTBOTTOM: 'right',\n  BOTTOMLEFT: 'bottom',\n  BOTTOMRIGHT: 'bottom',\n  LEFTTOP: 'left',\n  LEFTBOTTOM: 'left'\n}\n\nconst OffsetMap = {\n  AUTO: 0,\n  TOPLEFT: -1,\n  TOP: 0,\n  TOPRIGHT: +1,\n  RIGHTTOP: -1,\n  RIGHT: 0,\n  RIGHTBOTTOM: +1,\n  BOTTOMLEFT: -1,\n  BOTTOM: 0,\n  BOTTOMRIGHT: +1,\n  LEFTTOP: -1,\n  LEFT: 0,\n  LEFTBOTTOM: +1\n}\n\nconst HoverState = {\n  SHOW: 'show',\n  OUT: 'out'\n}\n\nconst ClassName = {\n  FADE: 'fade',\n  SHOW: 'show'\n}\n\nconst Selector = {\n  TOOLTIP: '.tooltip',\n  TOOLTIP_INNER: '.tooltip-inner',\n  ARROW: '.arrow'\n}\n\n// Defaults\nconst Defaults = {\n  animation: true,\n  template:\n    '<div class=\"tooltip\" role=\"tooltip\">' +\n    '<div class=\"arrow\"></div>' +\n    '<div class=\"tooltip-inner\"></div>' +\n    '</div>',\n  trigger: 'hover focus',\n  title: '',\n  delay: 0,\n  html: false,\n  placement: 'top',\n  offset: 0,\n  arrowPadding: 6,\n  container: false,\n  fallbackPlacement: 'flip',\n  callbacks: {},\n  boundary: 'scrollParent',\n  boundaryPadding: 5,\n  variant: null,\n  customClass: null\n}\n\n// Transition event names\nconst TransitionEndEvents = {\n  WebkitTransition: ['webkitTransitionEnd'],\n  MozTransition: ['transitionend'],\n  OTransition: ['otransitionend', 'oTransitionEnd'],\n  transition: ['transitionend']\n}\n\n// Options for Native Event Listeners (since we never call preventDefault)\nconst EvtOpts = { passive: true, capture: false }\n\n// Client-side tip ID counter for aria-describedby attribute\n// Each tooltip requires a unique client side ID\nlet NEXTID = 1\n/* istanbul ignore next */\nconst generateId = name => `__BV_${name}_${NEXTID++}__`\n\n/*\n * ToolTip class definition\n */\nclass ToolTip {\n  // Main constructor\n  constructor(element, config, $parent) {\n    // New tooltip object\n    this.$isEnabled = true\n    this.$fadeTimeout = null\n    this.$hoverTimeout = null\n    this.$visibleInterval = null\n    this.$hoverState = ''\n    this.$activeTrigger = {}\n    this.$popper = null\n    this.$element = element\n    this.$tip = null\n    this.$id = generateId(this.constructor.NAME)\n    this.$parent = $parent || null\n    this.$root = $parent && $parent.$root ? $parent.$root : null\n    this.$routeWatcher = null\n    // We use a bound version of the following handlers for root/modal\n    // listeners to maintain the correct `this` context\n    this.$forceHide = this.forceHide.bind(this)\n    this.$doHide = this.doHide.bind(this)\n    this.$doShow = this.doShow.bind(this)\n    this.$doDisable = this.doDisable.bind(this)\n    this.$doEnable = this.doEnable.bind(this)\n    this._noop = noop.bind(this)\n    // Set the configuration\n    this.updateConfig(config)\n    // Destroy ourselves if the parent is destroyed\n    if ($parent) {\n      $parent.$once('hook:beforeDestroy', this.destroy.bind(this))\n    }\n  }\n\n  // NOTE: Overridden by PopOver class\n  static get Default() {\n    return Defaults\n  }\n\n  // NOTE: Overridden by PopOver class\n  static get NAME() {\n    return NAME\n  }\n\n  // Update config\n  updateConfig(config) {\n    // Merge config into defaults. We use `this` here because PopOver overrides Default\n    const updatedConfig = { ...this.constructor.Default, ...config }\n\n    // Sanitize delay\n    if (config.delay && isNumber(config.delay)) {\n      /* istanbul ignore next */\n      updatedConfig.delay = {\n        show: config.delay,\n        hide: config.delay\n      }\n    }\n\n    // Title for tooltip and popover\n    if (config.title && isNumber(config.title)) {\n      /* istanbul ignore next */\n      updatedConfig.title = config.title.toString()\n    }\n\n    // Content only for popover\n    if (config.content && isNumber(config.content)) {\n      /* istanbul ignore next */\n      updatedConfig.content = config.content.toString()\n    }\n\n    // Hide element original title if needed\n    this.fixTitle()\n    // Update the config\n    this.$config = updatedConfig\n    // Stop/Restart listening\n    this.unListen()\n    this.listen()\n  }\n\n  // Destroy this instance\n  destroy() {\n    // Stop listening to trigger events\n    this.unListen()\n    // Disable while open listeners/watchers\n    this.setWhileOpenListeners(false)\n    // Clear any timeouts\n    clearTimeout(this.$hoverTimeout)\n    this.$hoverTimeout = null\n    clearTimeout(this.$fadeTimeout)\n    this.$fadeTimeout = null\n    // Remove popper\n    if (this.$popper) {\n      this.$popper.destroy()\n    }\n    this.$popper = null\n    // Remove tip from document\n    if (this.$tip && this.$tip.parentElement) {\n      this.$tip.parentElement.removeChild(this.$tip)\n    }\n    this.$tip = null\n    // Null out other properties\n    this.$id = null\n    this.$isEnabled = null\n    this.$parent = null\n    this.$root = null\n    this.$element = null\n    this.$config = null\n    this.$hoverState = null\n    this.$activeTrigger = null\n    this.$forceHide = null\n    this.$doHide = null\n    this.$doShow = null\n    this.$doDisable = null\n    this.$doEnable = null\n  }\n\n  enable() {\n    // Create a non-cancelable BvEvent\n    const enabledEvt = new BvEvent('enabled', {\n      cancelable: false,\n      target: this.$element,\n      relatedTarget: null\n    })\n    this.$isEnabled = true\n    this.emitEvent(enabledEvt)\n  }\n\n  disable() {\n    // Create a non-cancelable BvEvent\n    const disabledEvt = new BvEvent('disabled', {\n      cancelable: false,\n      target: this.$element,\n      relatedTarget: null\n    })\n    this.$isEnabled = false\n    this.emitEvent(disabledEvt)\n  }\n\n  // Click toggler\n  toggle(event) {\n    if (!this.$isEnabled) {\n      /* istanbul ignore next */\n      return\n    }\n    // Prevent showing if tip/popover is on a dropdown and the menu is open\n    if (this.dropdownOpen()) {\n      /* istanbul ignore next */\n      return\n    }\n    /* istanbul ignore else */\n    if (event) {\n      this.$activeTrigger.click = !this.$activeTrigger.click\n\n      if (this.isWithActiveTrigger()) {\n        this.enter(null)\n      } else {\n        this.leave(null)\n      }\n    } else {\n      if (hasClass(this.getTipElement(), ClassName.SHOW)) {\n        this.leave(null)\n      } else {\n        this.enter(null)\n      }\n    }\n  }\n\n  // Show tooltip\n  show() {\n    if (!document.body.contains(this.$element) || !isVisible(this.$element)) {\n      // If trigger element isn't in the DOM or is not visible\n      return\n    }\n\n    // Prevent showing if tip/popover is on a dropdown and the menu is open\n    if (this.dropdownOpen()) {\n      /* istanbul ignore next */\n      return\n    }\n\n    // Build tooltip element (also sets this.$tip)\n    const tip = this.getTipElement()\n    this.fixTitle()\n    this.setContent(tip)\n    if (!this.isWithContent(tip)) {\n      // If no content, don't bother showing\n      /* istanbul ignore next */\n      this.$tip = null\n      /* istanbul ignore next */\n      return\n    }\n\n    // Set ID on tip and aria-describedby on element\n    setAttr(tip, 'id', this.$id)\n    this.addAriaDescribedby()\n\n    // Set animation on or off\n    if (this.$config.animation) {\n      addClass(tip, ClassName.FADE)\n    } else {\n      removeClass(tip, ClassName.FADE)\n    }\n\n    const placement = this.getPlacement()\n    const attachment = this.constructor.getAttachment(placement)\n    this.addAttachmentClass(attachment)\n\n    // Create a cancelable BvEvent\n    const showEvt = new BvEvent('show', {\n      cancelable: true,\n      target: this.$element,\n      relatedTarget: tip\n    })\n    this.emitEvent(showEvt)\n    if (showEvt.defaultPrevented) {\n      // Don't show if event cancelled\n      this.$tip = null\n      return\n    }\n\n    // Insert tooltip if needed\n    const container = this.getContainer()\n    if (!document.body.contains(tip)) {\n      container.appendChild(tip)\n    }\n\n    // Refresh popper\n    this.removePopper()\n    this.$popper = new Popper(this.$element, tip, this.getPopperConfig(placement, tip))\n\n    // Transitionend callback\n    const complete = () => {\n      if (this.$config.animation) {\n        this.fixTransition(tip)\n      }\n      const prevHoverState = this.$hoverState\n      this.$hoverState = null\n      if (prevHoverState === HoverState.OUT) {\n        this.leave(null)\n      }\n      // Create a non-cancelable BvEvent\n      const shownEvt = new BvEvent('shown', {\n        cancelable: false,\n        target: this.$element,\n        relatedTarget: tip\n      })\n      this.emitEvent(shownEvt)\n    }\n\n    // Enable while open listeners/watchers\n    this.setWhileOpenListeners(true)\n\n    // Show tip\n    addClass(tip, ClassName.SHOW)\n\n    // Start the transition/animation\n    this.transitionOnce(tip, complete)\n  }\n\n  // Handler for periodic visibility check\n  visibleCheck(on) {\n    clearInterval(this.$visibleInterval)\n    this.$visibleInterval = null\n    if (on) {\n      this.$visibleInterval = setInterval(() => {\n        const tip = this.$tip\n        if (tip && !isVisible(this.$element) && hasClass(tip, ClassName.SHOW)) {\n          // Element is no longer visible, so force-hide the tooltip\n          this.forceHide()\n        }\n      }, 100)\n    }\n  }\n\n  setWhileOpenListeners(on) {\n    // Modal close events\n    this.setModalListener(on)\n    // Dropdown open events (if we are attached to a dropdown)\n    this.setDropdownListener(on)\n    // Periodic $element visibility check\n    // For handling when tip is in <keepalive>, tabs, carousel, etc\n    this.visibleCheck(on)\n    // On-touch start listeners\n    this.setOnTouchStartListener(on)\n    if (on && /(focus|blur)/.test(this.$config.trigger)) {\n      // If focus moves between trigger element and tip container, don't close\n      eventOn(this.$tip, 'focusout', this, EvtOpts)\n    } else {\n      eventOff(this.$tip, 'focusout', this, EvtOpts)\n    }\n  }\n\n  // Force hide of tip (internal method)\n  forceHide() {\n    if (!this.$tip || !hasClass(this.$tip, ClassName.SHOW)) {\n      /* istanbul ignore next */\n      return\n    }\n    // Disable while open listeners/watchers\n    this.setWhileOpenListeners(false)\n    // Clear any hover enter/leave event\n    clearTimeout(this.$hoverTimeout)\n    this.$hoverTimeout = null\n    this.$hoverState = ''\n    this.$activeTrigger = {}\n    // Hide the tip\n    this.hide(null, true)\n  }\n\n  // Hide tooltip\n  hide(callback, force) {\n    const tip = this.$tip\n    if (!tip) {\n      /* istanbul ignore next */\n      return\n    }\n\n    // Create a cancelable BvEvent\n    const hideEvt = new BvEvent('hide', {\n      // We disable cancelling if force is true\n      cancelable: !force,\n      target: this.$element,\n      relatedTarget: tip\n    })\n    this.emitEvent(hideEvt)\n    if (hideEvt.defaultPrevented) {\n      // Don't hide if event cancelled\n      return\n    }\n\n    // Transitionend callback\n    const complete = () => {\n      if (this.$hoverState !== HoverState.SHOW && tip.parentNode) {\n        // Remove tip from DOM, and force recompile on next show\n        tip.parentNode.removeChild(tip)\n        this.removeAriaDescribedby()\n        this.removePopper()\n        this.$tip = null\n      }\n      if (callback) {\n        /* istanbul ignore next */\n        callback()\n      }\n      // Create a non-cancelable BvEvent\n      const hiddenEvt = new BvEvent('hidden', {\n        cancelable: false,\n        target: this.$element,\n        relatedTarget: null\n      })\n      this.emitEvent(hiddenEvt)\n    }\n\n    // Disable while open listeners/watchers\n    this.setWhileOpenListeners(false)\n\n    // If forced close, disable animation\n    if (force) {\n      removeClass(tip, ClassName.FADE)\n    }\n    // Hide tip\n    removeClass(tip, ClassName.SHOW)\n\n    // Clear any active triggers\n    this.$activeTrigger = {}\n\n    // Start the hide transition\n    this.transitionOnce(tip, complete)\n\n    this.$hoverState = ''\n  }\n\n  emitEvent(evt) {\n    const evtName = evt.type\n    const $root = this.$root\n    if ($root && $root.$emit) {\n      // Emit an event on $root\n      $root.$emit(`bv::${this.constructor.NAME}::${evtName}`, evt)\n    }\n    const callbacks = this.$config.callbacks || {}\n    if (isFunction(callbacks[evtName])) {\n      callbacks[evtName](evt)\n    }\n  }\n\n  getContainer() {\n    const container = this.$config.container\n    const body = document.body\n    // If we are in a modal, we append to the modal instead of body,\n    // unless a container is specified\n    return container === false\n      ? closest(MODAL_SELECTOR, this.$element) || body\n      : select(container, body) || body\n  }\n\n  // Will be overridden by PopOver if needed\n  addAriaDescribedby() {\n    // Add aria-describedby on trigger element, without removing any other IDs\n    let desc = getAttr(this.$element, 'aria-describedby') || ''\n    desc = desc\n      .split(/\\s+/)\n      .concat(this.$id)\n      .join(' ')\n      .trim()\n    setAttr(this.$element, 'aria-describedby', desc)\n  }\n\n  // Will be overridden by PopOver if needed\n  removeAriaDescribedby() {\n    let desc = getAttr(this.$element, 'aria-describedby') || ''\n    desc = desc\n      .split(/\\s+/)\n      .filter(d => d !== this.$id)\n      .join(' ')\n      .trim()\n    if (desc) {\n      /* istanbul ignore next */\n      setAttr(this.$element, 'aria-describedby', desc)\n    } else {\n      removeAttr(this.$element, 'aria-describedby')\n    }\n  }\n\n  removePopper() {\n    if (this.$popper) {\n      this.$popper.destroy()\n    }\n    this.$popper = null\n  }\n\n  transitionOnce(tip, complete) {\n    const transEvents = this.getTransitionEndEvents()\n    let called = false\n    clearTimeout(this.$fadeTimeout)\n    this.$fadeTimeout = null\n    const fnOnce = () => {\n      if (called) {\n        /* istanbul ignore next */\n        return\n      }\n      called = true\n      clearTimeout(this.$fadeTimeout)\n      this.$fadeTimeout = null\n      transEvents.forEach(evtName => {\n        eventOff(tip, evtName, fnOnce, EvtOpts)\n      })\n      // Call complete callback\n      complete()\n    }\n    if (hasClass(tip, ClassName.FADE)) {\n      transEvents.forEach(evtName => {\n        eventOn(tip, evtName, fnOnce, EvtOpts)\n      })\n      // Fallback to setTimeout()\n      this.$fadeTimeout = setTimeout(fnOnce, TRANSITION_DURATION)\n    } else {\n      fnOnce()\n    }\n  }\n\n  // What transitionend event(s) to use? (returns array of event names)\n  getTransitionEndEvents() {\n    for (const name in TransitionEndEvents) {\n      if (!isUndefined(this.$element.style[name])) {\n        return TransitionEndEvents[name]\n      }\n    }\n    // Fallback\n    /* istanbul ignore next */\n    return []\n  }\n\n  /* istanbul ignore next */\n  update() {\n    if (!isNull(this.$popper)) {\n      this.$popper.scheduleUpdate()\n    }\n  }\n\n  // NOTE: Overridden by PopOver class\n  isWithContent(tip) {\n    tip = tip || this.$tip\n    if (!tip) {\n      /* istanbul ignore next */\n      return false\n    }\n    return Boolean((select(Selector.TOOLTIP_INNER, tip) || {}).innerHTML)\n  }\n\n  // NOTE: Overridden by PopOver class\n  addAttachmentClass(attachment) {\n    addClass(this.getTipElement(), `${CLASS_PREFIX}-${attachment}`)\n  }\n\n  getTipElement() {\n    if (!this.$tip) {\n      // Try and compile user supplied template, or fallback to default template\n      this.$tip =\n        this.compileTemplate(this.$config.template) ||\n        this.compileTemplate(this.constructor.Default.template)\n    }\n    // Add tab index so tip can be focused, and to allow it to be\n    // set as relatedTarget in focusin/out events\n    this.$tip.tabIndex = -1\n    // Add variant if specified\n    if (this.$config.variant) {\n      addClass(this.$tip, `b-${this.constructor.NAME}-${this.$config.variant}`)\n    }\n    if (this.$config.customClass) {\n      addClass(this.$tip, String(this.$config.customClass))\n    }\n    return this.$tip\n  }\n\n  compileTemplate(html) {\n    if (!html || !isString(html)) {\n      /* istanbul ignore next */\n      return null\n    }\n    let div = document.createElement('div')\n    div.innerHTML = html.trim()\n    const node = div.firstElementChild ? div.removeChild(div.firstElementChild) : null\n    div = null\n    return node\n  }\n\n  // NOTE: Overridden by PopOver class\n  setContent(tip) {\n    this.setElementContent(select(Selector.TOOLTIP_INNER, tip), this.getTitle())\n    removeClass(tip, ClassName.FADE)\n    removeClass(tip, ClassName.SHOW)\n  }\n\n  setElementContent(container, content) {\n    if (!container) {\n      // If container element doesn't exist, just return\n      /* istanbul ignore next */\n      return\n    }\n    const allowHtml = this.$config.html\n    if (isObject(content) && content.nodeType) {\n      // Content is a DOM node\n      if (allowHtml) {\n        if (content.parentElement !== container) {\n          container.innerHTML = ''\n          container.appendChild(content)\n        }\n      } else {\n        /* istanbul ignore next */\n        container.innerText = content.innerText\n      }\n    } else {\n      // We have a plain HTML string or Text\n      container[allowHtml ? 'innerHTML' : 'innerText'] = content\n    }\n  }\n\n  // NOTE: Overridden by PopOver class\n  getTitle() {\n    let title = this.$config.title || ''\n    if (isFunction(title)) {\n      // Call the function to get the title value\n      /* istanbul ignore next */\n      title = title(this.$element)\n    }\n    if (isObject(title) && title.nodeType && !title.innerHTML.trim()) {\n      // We have a DOM node, but without inner content,\n      // so just return empty string\n      /* istanbul ignore next */\n      title = ''\n    }\n    if (isString(title)) {\n      title = title.trim()\n    }\n    if (!title) {\n      // If an explicit title is not given, try element's title attributes\n      title = getAttr(this.$element, 'title') || getAttr(this.$element, 'data-original-title') || ''\n      title = title.trim()\n    }\n\n    return title\n  }\n\n  static getAttachment(placement) {\n    return AttachmentMap[placement.toUpperCase()]\n  }\n\n  listen() {\n    const el = this.$element\n    /* istanbul ignore next */\n    if (!el) {\n      return\n    }\n    const triggers = this.$config.trigger.trim().split(/\\s+/)\n\n    // Listen for global show/hide events\n    this.setRootListener(true)\n\n    // Using `this` as the handler will get automatically directed to\n    // this.handleEvent and maintain our binding to `this`\n    triggers.forEach(trigger => {\n      if (trigger === 'click') {\n        eventOn(el, 'click', this, EvtOpts)\n      } else if (trigger === 'focus') {\n        eventOn(el, 'focusin', this, EvtOpts)\n        eventOn(el, 'focusout', this, EvtOpts)\n      } else if (trigger === 'blur') {\n        // Used to close $tip when element looses focus\n        eventOn(el, 'focusout', this, EvtOpts)\n      } else if (trigger === 'hover') {\n        eventOn(el, 'mouseenter', this, EvtOpts)\n        eventOn(el, 'mouseleave', this, EvtOpts)\n      }\n    }, this)\n  }\n\n  unListen() {\n    const el = this.$element\n    /* istanbul ignore next */\n    if (!el) {\n      return\n    }\n    const events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave']\n    // Using `this` as the handler will get automatically directed to this.handleEvent\n    events.forEach(evt => {\n      eventOff(el, evt, this, EvtOpts)\n    }, this)\n\n    // Stop listening for global show/hide/enable/disable events\n    this.setRootListener(false)\n  }\n\n  // This special method allows us to use `this` as the event handlers\n  handleEvent(e) {\n    // If disabled, don't do anything\n    // If tip is shown before element gets disabled, then tip will not\n    // close until no longer disabled or forcefully closed\n    if (isDisabled(this.$element)) {\n      /* istanbul ignore next */\n      return\n    }\n    // Exit if not enabled\n    if (!this.$isEnabled) {\n      return\n    }\n    // Prevent showing if tip/popover is on a dropdown and the menu is open\n    if (this.dropdownOpen()) {\n      /* istanbul ignore next */\n      return\n    }\n\n    const type = e.type\n    const target = e.target\n    const relatedTarget = e.relatedTarget\n\n    const $element = this.$element\n    const $tip = this.$tip\n\n    if (type === 'click') {\n      this.toggle(e)\n    } else if (type === 'focusin' || type === 'mouseenter') {\n      this.enter(e)\n    } else if (type === 'focusout') {\n      // `target` is the element which is loosing focus and\n      // `relatedTarget` is the element gaining focus\n\n      // If focus moves from `$element` to `$tip`, don't trigger a leave\n      if ($tip && $element && $element.contains(target) && $tip.contains(relatedTarget)) {\n        /* istanbul ignore next */\n        return\n      }\n      // If focus moves from `$tip` to `$element`, don't trigger a leave\n      if ($tip && $element && $tip.contains(target) && $element.contains(relatedTarget)) {\n        /* istanbul ignore next */\n        return\n      }\n      // If focus moves within `$tip`, don't trigger a leave\n      if ($tip && $tip.contains(target) && $tip.contains(relatedTarget)) {\n        /* istanbul ignore next */\n        return\n      }\n      // If focus moves within `$element`, don't trigger a leave\n      if ($element && $element.contains(target) && $element.contains(relatedTarget)) {\n        /* istanbul ignore next */\n        return\n      }\n      // Otherwise trigger a leave\n      this.leave(e)\n    } else if (type === 'mouseleave') {\n      this.leave(e)\n    }\n  }\n\n  /* istanbul ignore next */\n  setModalListener(on) {\n    const el = this.$element\n    if (!el || !this.$root) {\n      return\n    }\n    const modal = closest(MODAL_SELECTOR, el)\n    // If we are not in a modal, don't worry\n    if (!modal) {\n      return\n    }\n    // We can listen for modal hidden events on `$root`\n    this.$root[on ? '$on' : '$off'](MODAL_CLOSE_EVENT, this.$forceHide)\n  }\n\n  /* istanbul ignore next */\n  setDropdownListener(on) {\n    const el = this.$element\n    if (!el || !this.$root) {\n      return\n    }\n    // If we are not on a dropdown menu, don't worry\n    if (!hasClass(el, DROPDOWN_CLASS)) {\n      return\n    }\n    // We can listen for dropdown shown events on it's instance\n    if (el && el.__vue__) {\n      el.__vue__[on ? '$on' : '$off']('shown', this.$forceHide)\n    }\n  }\n\n  setRootListener(on) {\n    // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n    const $root = this.$root\n    if ($root) {\n      const method = on ? '$on' : '$off'\n      $root[method](`bv::hide::${this.constructor.NAME}`, this.$doHide)\n      $root[method](`bv::show::${this.constructor.NAME}`, this.$doShow)\n      $root[method](`bv::disable::${this.constructor.NAME}`, this.$doDisable)\n      $root[method](`bv::enable::${this.constructor.NAME}`, this.$doEnable)\n    }\n  }\n\n  dropdownOpen() {\n    // Returns true if trigger is a dropdown and the dropdown menu is open\n    return hasClass(this.$element, DROPDOWN_CLASS) && select(DROPDOWN_OPEN_SELECTOR, this.$element)\n  }\n\n  // Programmatically hide tooltip or popover\n  doHide(id) {\n    if (!id) {\n      // Close all tooltips or popovers\n      this.forceHide()\n    } else if (this.$element && this.$element.id && this.$element.id === id) {\n      // Close this specific tooltip or popover\n      this.hide()\n    }\n  }\n\n  // Programmatically show tooltip or popover\n  doShow(id) {\n    if (!id) {\n      // Open all tooltips or popovers\n      this.show()\n    } else if (id && this.$element && this.$element.id && this.$element.id === id) {\n      // Show this specific tooltip or popover\n      this.show()\n    }\n  }\n\n  // Programmatically disable tooltip or popover\n  doDisable(id) {\n    if (!id) {\n      // Disable all tooltips or popovers\n      this.disable()\n    } else if (this.$element && this.$element.id && this.$element.id === id) {\n      // Disable this specific tooltip or popover\n      this.disable()\n    }\n  }\n\n  // Programmatically enable tooltip or popover\n  doEnable(id) {\n    if (!id) {\n      // Enable all tooltips or popovers\n      this.enable()\n    } else if (this.$element && this.$element.id && this.$element.id === id) {\n      // Enable this specific tooltip or popover\n      this.enable()\n    }\n  }\n\n  setOnTouchStartListener(on) {\n    // If this is a touch-enabled device we add extra empty\n    // `mouseover` listeners to the body's immediate children\n    // Only needed because of broken event delegation on iOS\n    // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n    if ('ontouchstart' in document.documentElement) {\n      /* istanbul ignore next: JSDOM does not support `ontouchstart` event */\n      arrayFrom(document.body.children).forEach(el => {\n        if (on) {\n          eventOn(el, 'mouseover', this._noop)\n        } else {\n          eventOff(el, 'mouseover', this._noop)\n        }\n      })\n    }\n  }\n\n  fixTitle() {\n    const el = this.$element\n    if (getAttr(el, 'title') || !isString(getAttr(el, 'data-original-title'))) {\n      setAttr(el, 'data-original-title', getAttr(el, 'title') || '')\n      setAttr(el, 'title', '')\n    }\n  }\n\n  // Enter handler\n  enter(e) {\n    if (e) {\n      this.$activeTrigger[e.type === 'focusin' ? 'focus' : 'hover'] = true\n    }\n    if (hasClass(this.getTipElement(), ClassName.SHOW) || this.$hoverState === HoverState.SHOW) {\n      this.$hoverState = HoverState.SHOW\n      return\n    }\n    clearTimeout(this.$hoverTimeout)\n    this.$hoverState = HoverState.SHOW\n    if (!this.$config.delay || !this.$config.delay.show) {\n      this.show()\n      return\n    }\n    this.$hoverTimeout = setTimeout(() => {\n      if (this.$hoverState === HoverState.SHOW) {\n        this.show()\n      }\n    }, this.$config.delay.show)\n  }\n\n  // Leave handler\n  leave(e) {\n    if (e) {\n      this.$activeTrigger[e.type === 'focusout' ? 'focus' : 'hover'] = false\n      if (e.type === 'focusout' && /blur/.test(this.$config.trigger)) {\n        // Special case for `blur`: we clear out the other triggers\n        this.$activeTrigger.click = false\n        this.$activeTrigger.hover = false\n      }\n    }\n    if (this.isWithActiveTrigger()) {\n      return\n    }\n    clearTimeout(this.$hoverTimeout)\n    this.$hoverState = HoverState.OUT\n    if (!this.$config.delay || !this.$config.delay.hide) {\n      this.hide()\n      return\n    }\n    this.$hoverTimeout = setTimeout(() => {\n      if (this.$hoverState === HoverState.OUT) {\n        this.hide()\n      }\n    }, this.$config.delay.hide)\n  }\n\n  getPopperConfig(placement, tip) {\n    return {\n      placement: this.constructor.getAttachment(placement),\n      modifiers: {\n        offset: { offset: this.getOffset(placement, tip) },\n        flip: { behavior: this.$config.fallbackPlacement },\n        arrow: { element: '.arrow' },\n        preventOverflow: {\n          padding: this.$config.boundaryPadding,\n          boundariesElement: this.$config.boundary\n        }\n      },\n      onCreate: data => {\n        // Handle flipping arrow classes\n        /* istanbul ignore next */\n        if (data.originalPlacement !== data.placement) {\n          this.handlePopperPlacementChange(data)\n        }\n      },\n      onUpdate: data => {\n        // Handle flipping arrow classes\n        /* istanbul ignore next */\n        this.handlePopperPlacementChange(data)\n      }\n    }\n  }\n\n  /* istanbul ignore next */\n  getOffset(placement, tip) {\n    if (!this.$config.offset) {\n      const arrow = select(Selector.ARROW, tip)\n      const arrowOffset = parseFloat(getCS(arrow).width) + parseFloat(this.$config.arrowPadding)\n      switch (OffsetMap[placement.toUpperCase()]) {\n        case +1:\n          return `+50%p - ${arrowOffset}px`\n        case -1:\n          return `-50%p + ${arrowOffset}px`\n        default:\n          return 0\n      }\n    }\n    return this.$config.offset\n  }\n\n  getPlacement() {\n    const placement = this.$config.placement\n    if (isFunction(placement)) {\n      /* istanbul ignore next */\n      return placement.call(this, this.$tip, this.$element)\n    }\n    return placement\n  }\n\n  isWithActiveTrigger() {\n    for (const trigger in this.$activeTrigger) {\n      if (this.$activeTrigger[trigger]) {\n        return true\n      }\n    }\n    return false\n  }\n\n  // NOTE: Overridden by PopOver class\n  /* istanbul ignore next */\n  cleanTipClass() {\n    const tip = this.getTipElement()\n    const tabClass = tip.className.match(BS_CLASS_PREFIX_REGEX)\n    if (!isNull(tabClass) && tabClass.length > 0) {\n      tabClass.forEach(cls => {\n        removeClass(tip, cls)\n      })\n    }\n  }\n\n  /* istanbul ignore next */\n  handlePopperPlacementChange(data) {\n    this.cleanTipClass()\n    this.addAttachmentClass(this.constructor.getAttachment(data.placement))\n  }\n\n  /* istanbul ignore next */\n  fixTransition(tip) {\n    const initConfigAnimation = this.$config.animation || false\n    if (!isNull(getAttr(tip, 'x-placement'))) {\n      return\n    }\n    removeClass(tip, ClassName.FADE)\n    this.$config.animation = false\n    this.hide()\n    this.show()\n    this.$config.animation = initConfigAnimation\n  }\n}\n\nexport default ToolTip\n","import ToolTip from './tooltip.class'\nimport { select, addClass, removeClass, getAttr } from './dom'\nimport { isFunction, isNull, isObject, isString } from './inspect'\n\nconst NAME = 'popover'\nconst CLASS_PREFIX = 'bs-popover'\nconst BS_CLASS_PREFIX_REGEX = new RegExp(`\\\\b${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Defaults = {\n  ...ToolTip.Default,\n  placement: 'right',\n  trigger: 'click',\n  content: '',\n  template:\n    '<div class=\"popover\" role=\"tooltip\">' +\n    '<div class=\"arrow\"></div>' +\n    '<h3 class=\"popover-header\"></h3>' +\n    '<div class=\"popover-body\"></div></div>'\n}\n\nconst ClassName = {\n  FADE: 'fade',\n  SHOW: 'show'\n}\n\nconst Selector = {\n  TITLE: '.popover-header',\n  CONTENT: '.popover-body'\n}\n\nclass PopOver extends ToolTip {\n  // --- Getter overrides ---\n\n  static get Default() {\n    return Defaults\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // --- Method overrides ---\n\n  isWithContent(tip) {\n    tip = tip || this.$tip\n    if (!tip) {\n      /* istanbul ignore next */\n      return false\n    }\n    const hasTitle = Boolean((select(Selector.TITLE, tip) || {}).innerHTML)\n    const hasContent = Boolean((select(Selector.CONTENT, tip) || {}).innerHTML)\n    return hasTitle || hasContent\n  }\n\n  addAttachmentClass(attachment) /* istanbul ignore next */ {\n    addClass(this.getTipElement(), `${CLASS_PREFIX}-${attachment}`)\n  }\n\n  setContent(tip) {\n    // we use append for html objects to maintain js events/components\n    this.setElementContent(select(Selector.TITLE, tip), this.getTitle())\n    this.setElementContent(select(Selector.CONTENT, tip), this.getContent())\n\n    removeClass(tip, ClassName.FADE)\n    removeClass(tip, ClassName.SHOW)\n  }\n\n  // This method may look identical to ToolTip version, but it uses a different RegEx defined above\n  cleanTipClass() /* istanbul ignore next */ {\n    const tip = this.getTipElement()\n    const tabClass = tip.className.match(BS_CLASS_PREFIX_REGEX)\n    if (!isNull(tabClass) && tabClass.length > 0) {\n      tabClass.forEach(cls => {\n        removeClass(tip, cls)\n      })\n    }\n  }\n\n  getTitle() {\n    let title = this.$config.title || ''\n    /* istanbul ignore next */\n    if (isFunction(title)) {\n      title = title(this.$element)\n    }\n    /* istanbul ignore next */\n    if (isObject(title) && title.nodeType && !title.innerHTML.trim()) {\n      // We have a dom node, but without inner content, so just return an empty string\n      title = ''\n    }\n    if (isString(title)) {\n      title = title.trim()\n    }\n    if (!title) {\n      // Try and grab element's title attribute\n      title = getAttr(this.$element, 'title') || getAttr(this.$element, 'data-original-title') || ''\n      title = title.trim()\n    }\n    return title\n  }\n\n  // New methods\n\n  getContent() {\n    let content = this.$config.content || ''\n    /* istanbul ignore next */\n    if (isFunction(content)) {\n      content = content(this.$element)\n    }\n    /* istanbul ignore next */\n    if (isObject(content) && content.nodeType && !content.innerHTML.trim()) {\n      // We have a dom node, but without inner content, so just return an empty string\n      content = ''\n    }\n    if (isString(content)) {\n      content = content.trim()\n    }\n    return content\n  }\n}\n\nexport default PopOver\n","/*\n * Tooltip/Popover component mixin\n * Common props\n */\n\nimport observeDom from '../utils/observe-dom'\nimport { isElement, getById } from '../utils/dom'\nimport { isArray, isFunction, isObject, isString } from '../utils/inspect'\nimport { HTMLElement } from '../utils/safe-types'\n\n// --- Constants ---\n\nconst PLACEMENTS = {\n  top: 'top',\n  topleft: 'topleft',\n  topright: 'topright',\n  right: 'right',\n  righttop: 'righttop',\n  rightbottom: 'rightbottom',\n  bottom: 'bottom',\n  bottomleft: 'bottomleft',\n  bottomright: 'bottomright',\n  left: 'left',\n  lefttop: 'lefttop',\n  leftbottom: 'leftbottom',\n  auto: 'auto'\n}\n\nconst OBSERVER_CONFIG = {\n  subtree: true,\n  childList: true,\n  characterData: true,\n  attributes: true,\n  attributeFilter: ['class', 'style']\n}\n\n// @vue/component\nexport default {\n  props: {\n    target: {\n      // String ID of element, or element/component reference\n      type: [String, Object, HTMLElement, Function]\n      // default: undefined\n    },\n    offset: {\n      type: [Number, String],\n      default: 0\n    },\n    noFade: {\n      type: Boolean,\n      default: false\n    },\n    container: {\n      // String ID of container, if null body is used (default)\n      type: String,\n      default: null\n    },\n    show: {\n      type: Boolean,\n      default: false\n    },\n    disabled: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      // semaphore for preventing multiple show events\n      localShow: false\n    }\n  },\n  computed: {\n    baseConfig() {\n      const cont = this.container\n      const delay = isObject(this.delay) ? this.delay : parseInt(this.delay, 10) || 0\n      return {\n        // Title prop\n        title: (this.title || '').trim() || '',\n        // Content prop (if popover)\n        content: (this.content || '').trim() || '',\n        // Tooltip/Popover placement\n        placement: PLACEMENTS[this.placement] || 'auto',\n        // Tooltip/popover fallback placement\n        fallbackPlacement: this.fallbackPlacement || 'flip',\n        // Container currently needs to be an ID with '#' prepended, if null then body is used\n        container: cont ? (/^#/.test(cont) ? cont : `#${cont}`) : false,\n        // boundariesElement passed to popper\n        boundary: this.boundary,\n        // boundariesElement padding passed to popper\n        boundaryPadding: this.boundaryPadding,\n        // Show/Hide delay\n        delay: delay || 0,\n        // Offset can be css distance. if no units, pixels are assumed\n        offset: this.offset || 0,\n        // Disable fade Animation?\n        animation: !this.noFade,\n        // Variant\n        variant: this.variant,\n        // Custom class\n        customClass: this.customClass,\n        // Open/Close Trigger(s)\n        trigger: isArray(this.triggers) ? this.triggers.join(' ') : this.triggers,\n        // Callbacks so we can trigger events on component\n        callbacks: {\n          show: this.onShow,\n          shown: this.onShown,\n          hide: this.onHide,\n          hidden: this.onHidden,\n          enabled: this.onEnabled,\n          disabled: this.onDisabled\n        }\n      }\n    }\n  },\n  watch: {\n    show(show, old) {\n      if (show !== old) {\n        show ? this.onOpen() : this.onClose()\n      }\n    },\n    disabled(disabled, old) {\n      if (disabled !== old) {\n        disabled ? this.onDisable() : this.onEnable()\n      }\n    },\n    localShow(show, old) {\n      if (show !== this.show) {\n        this.$emit('update:show', show)\n      }\n    }\n  },\n  created() {\n    // Create non-reactive property\n    this._toolpop = null\n    this._obs_title = null\n    this._obs_content = null\n  },\n  mounted() {\n    // We do this in a next tick to ensure DOM has rendered first\n    this.$nextTick(() => {\n      // Instantiate ToolTip/PopOver on target\n      // The createToolpop method must exist in main component\n      if (this.createToolpop()) {\n        if (this.disabled) {\n          // Initially disabled\n          this.onDisable()\n        }\n        // Listen to open signals from others\n        this.$on('open', this.onOpen)\n        // Listen to close signals from others\n        this.$on('close', this.onClose)\n        // Listen to disable signals from others\n        this.$on('disable', this.onDisable)\n        // Listen to enable signals from others\n        this.$on('enable', this.onEnable)\n        // Observe content Child changes so we can notify popper of possible size change\n        this.setObservers(true)\n        // Set initially open state\n        if (this.show) {\n          this.onOpen()\n        }\n      }\n    })\n  },\n  updated() {\n    // If content/props changes, etc\n    if (this._toolpop) {\n      this._toolpop.updateConfig(this.getConfig())\n    }\n  },\n  activated() /* istanbul ignore next: can't easily test in JSDOM */ {\n    // Called when component is inside a <keep-alive> and component brought offline\n    this.setObservers(true)\n  },\n  deactivated() /* istanbul ignore next: can't easily test in JSDOM */ {\n    // Called when component is inside a <keep-alive> and component taken offline\n    if (this._toolpop) {\n      this.setObservers(false)\n      this._toolpop.hide()\n    }\n  },\n  beforeDestroy() {\n    // Shutdown our local event listeners\n    this.$off('open', this.onOpen)\n    this.$off('close', this.onClose)\n    this.$off('disable', this.onDisable)\n    this.$off('enable', this.onEnable)\n    this.setObservers(false)\n    // bring our content back if needed\n    this.bringItBack()\n    if (this._toolpop) {\n      this._toolpop.destroy()\n      this._toolpop = null\n    }\n  },\n  methods: {\n    getConfig() {\n      const cfg = { ...this.baseConfig }\n      if (this.$refs.title && this.$refs.title.innerHTML.trim()) {\n        // If slot has content, it overrides 'title' prop\n        // We use the DOM node as content to allow components!\n        cfg.title = this.$refs.title\n        cfg.html = true\n      }\n      if (this.$refs.content && this.$refs.content.innerHTML.trim()) {\n        // If slot has content, it overrides 'content' prop\n        // We use the DOM node as content to allow components!\n        cfg.content = this.$refs.content\n        cfg.html = true\n      }\n      return cfg\n    },\n    onOpen() {\n      if (this._toolpop && !this.localShow) {\n        this.localShow = true\n        this._toolpop.show()\n      }\n    },\n    onClose(callback) {\n      // What is callback for ? it is not documented\n      /* istanbul ignore else */\n      if (this._toolpop && this.localShow) {\n        this._toolpop.hide(callback)\n      } else if (isFunction(callback)) {\n        // Is this even used?\n        callback()\n      }\n    },\n    onDisable() {\n      if (this._toolpop) {\n        this._toolpop.disable()\n      }\n    },\n    onEnable() {\n      if (this._toolpop) {\n        this._toolpop.enable()\n      }\n    },\n    updatePosition() {\n      /* istanbul ignore next: can't test in JSDOM until mutation observer is implemented */\n      if (this._toolpop) {\n        // Instruct popper to reposition popover if necessary\n        this._toolpop.update()\n      }\n    },\n    getTarget() {\n      let target = this.target\n      if (isFunction(target)) {\n        /* istanbul ignore next */\n        target = target()\n      }\n      /* istanbul ignore else */\n      if (isString(target)) {\n        // Assume ID of element\n        return getById(target)\n      } else if (isObject(target) && isElement(target.$el)) {\n        // Component reference\n        /* istanbul ignore next */\n        return target.$el\n      } else if (isObject(target) && isElement(target)) {\n        // Element reference\n        /* istanbul ignore next */\n        return target\n      }\n      /* istanbul ignore next */\n      return null\n    },\n    // Callbacks called by Tooltip/Popover class instance\n    onShow(evt) {\n      this.$emit('show', evt)\n      this.localShow = !(evt && evt.defaultPrevented)\n    },\n    onShown(evt) {\n      this.setObservers(true)\n      this.$emit('shown', evt)\n      this.localShow = true\n    },\n    onHide(evt) {\n      this.$emit('hide', evt)\n      this.localShow = !!(evt && evt.defaultPrevented)\n    },\n    onHidden(evt) {\n      this.setObservers(false)\n      // bring our content back if needed to keep Vue happy\n      // Tooltip class will move it back to tip when shown again\n      this.bringItBack()\n      this.$emit('hidden', evt)\n      this.localShow = false\n    },\n    onEnabled(evt) {\n      /* istanbul ignore next */\n      if (!evt || evt.type !== 'enabled') {\n        // Prevent possible endless loop if user mistakenly fires enabled instead of enable\n        return\n      }\n      this.$emit('update:disabled', false)\n      this.$emit('disabled')\n    },\n    onDisabled(evt) {\n      /* istanbul ignore next */\n      if (!evt || evt.type !== 'disabled') {\n        // Prevent possible endless loop if user mistakenly fires disabled instead of disable\n        return\n      }\n      this.$emit('update:disabled', true)\n      this.$emit('enabled')\n    },\n    bringItBack() {\n      // bring our content back if needed to keep Vue happy\n      if (this.$el && this.$refs.title) {\n        this.$el.appendChild(this.$refs.title)\n      }\n      if (this.$el && this.$refs.content) {\n        this.$el.appendChild(this.$refs.content)\n      }\n    },\n    setObservers(on) {\n      if (on) {\n        if (this.$refs.title) {\n          this._obs_title = observeDom(\n            this.$refs.title,\n            this.updatePosition.bind(this),\n            OBSERVER_CONFIG\n          )\n        }\n        if (this.$refs.content) {\n          this._obs_content = observeDom(\n            this.$refs.content,\n            this.updatePosition.bind(this),\n            OBSERVER_CONFIG\n          )\n        }\n      } else {\n        if (this._obs_title) {\n          this._obs_title.disconnect()\n          this._obs_title = null\n        }\n        if (this._obs_content) {\n          this._obs_content.disconnect()\n          this._obs_content = null\n        }\n      }\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport PopOver from '../../utils/popover.class'\nimport warn from '../../utils/warn'\nimport { isArray, arrayIncludes } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { HTMLElement } from '../../utils/safe-types'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport toolpopMixin from '../../mixins/toolpop'\n\nconst NAME = 'BPopover'\n\nexport const props = {\n  title: {\n    type: String,\n    default: ''\n  },\n  content: {\n    type: String,\n    default: ''\n  },\n  triggers: {\n    type: [String, Array],\n    default: 'click'\n  },\n  placement: {\n    type: String,\n    default: 'right'\n  },\n  fallbackPlacement: {\n    type: [String, Array],\n    default: 'flip',\n    validator(value) {\n      return isArray(value) || arrayIncludes(['flip', 'clockwise', 'counterclockwise'], value)\n    }\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  customClass: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'customClass')\n  },\n  delay: {\n    type: [Number, Object, String],\n    default: () => getComponentConfig(NAME, 'delay')\n  },\n  boundary: {\n    // String: scrollParent, window, or viewport\n    // Element: element reference\n    type: [String, HTMLElement],\n    default: () => getComponentConfig(NAME, 'boundary')\n  },\n  boundaryPadding: {\n    type: Number,\n    default: () => getComponentConfig(NAME, 'boundaryPadding')\n  }\n}\n\n// @vue/component\nexport const BPopover = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [toolpopMixin, normalizeSlotMixin],\n  props,\n  methods: {\n    createToolpop() {\n      // getTarget is in toolpop mixin\n      const target = this.getTarget()\n      /* istanbul ignore else */\n      if (target) {\n        this._toolpop = new PopOver(target, this.getConfig(), this)\n      } else {\n        this._toolpop = null\n        warn(\"b-popover: 'target' element not found!\")\n      }\n      return this._toolpop\n    }\n  },\n  render(h) {\n    return h(\n      'div',\n      {\n        class: ['d-none'],\n        style: { display: 'none' },\n        attrs: { 'aria-hidden': true }\n      },\n      [\n        h('div', { ref: 'title' }, this.normalizeSlot('title')),\n        h('div', { ref: 'content' }, this.normalizeSlot('default'))\n      ]\n    )\n  }\n})\n\nexport default BPopover\n","import Popper from 'popper.js'\nimport PopOver from '../../utils/popover.class'\nimport warn from '../../utils/warn'\nimport { getComponentConfig } from '../../utils/config'\nimport { isBrowser } from '../../utils/env'\nimport { isFunction, isObject, isString } from '../../utils/inspect'\nimport { keys } from '../../utils/object'\n\n// Key which we use to store tooltip object on element\nconst BV_POPOVER = '__BV_PopOver__'\n\n// Valid event triggers\nconst validTriggers = {\n  focus: true,\n  hover: true,\n  click: true,\n  blur: true\n}\n\n// Directive modifier test regular expressions. Pre-compile for performance\nconst htmlRE = /^html$/\nconst noFadeRE = /^nofade$/i\nconst placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/\nconst boundaryRE = /^(window|viewport|scrollParent)$/\nconst delayRE = /^d\\d+$/\nconst offsetRE = /^o-?\\d+$/\nconst variantRE = /^v-.+$/\n\n// Build a PopOver config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n/* istanbul ignore next: not easy to test */\nconst parseBindings = bindings => /* istanbul ignore next: not easy to test */ {\n  // We start out with a basic config\n  const NAME = 'BPopover'\n  let config = {\n    delay: getComponentConfig(NAME, 'delay'),\n    boundary: String(getComponentConfig(NAME, 'boundary')),\n    boundaryPadding: parseInt(getComponentConfig(NAME, 'boundaryPadding'), 10) || 0,\n    variant: getComponentConfig(NAME, 'variant'),\n    customClass: getComponentConfig(NAME, 'customClass')\n  }\n\n  // Process bindings.value\n  if (isString(bindings.value)) {\n    // Value is popover content (html optionally supported)\n    config.content = bindings.value\n  } else if (isFunction(bindings.value)) {\n    // Content generator function\n    config.content = bindings.value\n  } else if (isObject(bindings.value)) {\n    // Value is config object, so merge\n    config = { ...config, ...bindings.value }\n  }\n\n  // If argument, assume element ID of container element\n  if (bindings.arg) {\n    // Element ID specified as arg\n    // We must prepend '#' to become a CSS selector\n    config.container = `#${bindings.arg}`\n  }\n\n  // Process modifiers\n  keys(bindings.modifiers).forEach(mod => {\n    if (htmlRE.test(mod)) {\n      // Title allows HTML\n      config.html = true\n    } else if (noFadeRE.test(mod)) {\n      // no animation\n      config.animation = false\n    } else if (placementRE.test(mod)) {\n      // placement of popover\n      config.placement = mod\n    } else if (boundaryRE.test(mod)) {\n      // Boundary of popover\n      config.boundary = mod\n    } else if (delayRE.test(mod)) {\n      // Delay value\n      const delay = parseInt(mod.slice(1), 10) || 0\n      if (delay) {\n        config.delay = delay\n      }\n    } else if (offsetRE.test(mod)) {\n      // Offset value (negative allowed)\n      const offset = parseInt(mod.slice(1), 10) || 0\n      if (offset) {\n        config.offset = offset\n      }\n    } else if (variantRE.test(mod)) {\n      // Variant\n      config.variant = mod.slice(2) || null\n    }\n  })\n\n  // Special handling of event trigger modifiers trigger is\n  // a space separated list\n  const selectedTriggers = {}\n\n  // Parse current config object trigger\n  const triggers = isString(config.trigger) ? config.trigger.trim().split(/\\s+/) : []\n  triggers.forEach(trigger => {\n    if (validTriggers[trigger]) {\n      selectedTriggers[trigger] = true\n    }\n  })\n\n  // Parse modifiers for triggers\n  keys(validTriggers).forEach(trigger => {\n    if (bindings.modifiers[trigger]) {\n      selectedTriggers[trigger] = true\n    }\n  })\n\n  // Sanitize triggers\n  config.trigger = keys(selectedTriggers).join(' ')\n  if (config.trigger === 'blur') {\n    // Blur by itself is useless, so convert it to focus\n    config.trigger = 'focus'\n  }\n  if (!config.trigger) {\n    // Remove trigger config\n    delete config.trigger\n  }\n\n  return config\n}\n\n// Add or update PopOver on our element\nconst applyPopover = (el, bindings, vnode) => {\n  if (!isBrowser) {\n    /* istanbul ignore next */\n    return\n  }\n  // Popper is required for PopOvers to work\n  if (!Popper) {\n    /* istanbul ignore next */\n    warn('v-b-popover: Popper.js is required for PopOvers to work')\n    /* istanbul ignore next */\n    return\n  }\n  const config = parseBindings(bindings)\n  if (el[BV_POPOVER]) {\n    el[BV_POPOVER].updateConfig(config)\n  } else {\n    el[BV_POPOVER] = new PopOver(el, config, vnode.context)\n  }\n}\n\n// Remove PopOver on our element\nconst removePopover = el => {\n  if (el[BV_POPOVER]) {\n    el[BV_POPOVER].destroy()\n    el[BV_POPOVER] = null\n    delete el[BV_POPOVER]\n  }\n}\n\n/*\n * Export our directive\n */\nexport const VBPopover = {\n  bind(el, bindings, vnode) {\n    applyPopover(el, bindings, vnode)\n  },\n  inserted(el, bindings, vnode) {\n    applyPopover(el, bindings, vnode)\n  },\n  update(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyPopover(el, bindings, vnode)\n    }\n  },\n  componentUpdated(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyPopover(el, bindings, vnode)\n    }\n  },\n  unbind(el) {\n    removePopover(el)\n  }\n}\n\nexport default VBPopover\n","import { BPopover } from './popover'\nimport { VBPopover } from '../../directives/popover/popover'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst PopoverPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BPopover },\n  directives: { VBPopover }\n})\n\nexport { PopoverPlugin, BPopover }\n\nexport default PopoverPlugin\n","import Vue from '../../utils/vue'\nimport { getComponentConfig } from '../../utils/config'\nimport { htmlOrText } from '../../utils/html'\nimport { isBoolean, isNumber } from '../../utils/inspect'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\nconst NAME = 'BProgressBar'\n\n// @vue/component\nexport const BProgressBar = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [normalizeSlotMixin],\n  inject: {\n    bvProgress: {\n      default() /* istanbul ignore next */ {\n        return {}\n      }\n    }\n  },\n  props: {\n    value: {\n      type: Number,\n      default: 0\n    },\n    label: {\n      type: String,\n      default: null\n    },\n    labelHtml: {\n      type: String\n    },\n    // $parent (this.bvProgress) prop values may take precedence over the following props\n    // Which is why they are defaulted to null\n    max: {\n      type: Number,\n      default: null\n    },\n    precision: {\n      type: Number,\n      default: null\n    },\n    variant: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'variant')\n    },\n    striped: {\n      type: Boolean,\n      default: null\n    },\n    animated: {\n      type: Boolean,\n      default: null\n    },\n    showProgress: {\n      type: Boolean,\n      default: null\n    },\n    showValue: {\n      type: Boolean,\n      default: null\n    }\n  },\n  computed: {\n    progressBarClasses() {\n      return [\n        this.computedVariant ? `bg-${this.computedVariant}` : '',\n        this.computedStriped || this.computedAnimated ? 'progress-bar-striped' : '',\n        this.computedAnimated ? 'progress-bar-animated' : ''\n      ]\n    },\n    progressBarStyles() {\n      return {\n        width: 100 * (this.value / this.computedMax) + '%'\n      }\n    },\n    computedProgress() {\n      const p = Math.pow(10, this.computedPrecision)\n      return Math.round((100 * p * this.value) / this.computedMax) / p\n    },\n    computedMax() {\n      // Prefer our max over parent setting\n      return isNumber(this.max) ? this.max : this.bvProgress.max || 100\n    },\n    computedVariant() {\n      // Prefer our variant over parent setting\n      return this.variant || this.bvProgress.variant\n    },\n    computedPrecision() {\n      // Prefer our precision over parent setting\n      return isNumber(this.precision) ? this.precision : this.bvProgress.precision || 0\n    },\n    computedStriped() {\n      // Prefer our striped over parent setting\n      return isBoolean(this.striped) ? this.striped : this.bvProgress.striped || false\n    },\n    computedAnimated() {\n      // Prefer our animated over parent setting\n      return isBoolean(this.animated) ? this.animated : this.bvProgress.animated || false\n    },\n    computedShowProgress() {\n      // Prefer our showProgress over parent setting\n      return isBoolean(this.showProgress)\n        ? this.showProgress\n        : this.bvProgress.showProgress || false\n    },\n    computedShowValue() {\n      // Prefer our showValue over parent setting\n      return isBoolean(this.showValue) ? this.showValue : this.bvProgress.showValue || false\n    }\n  },\n  render(h) {\n    let childNodes = h()\n    if (this.hasNormalizedSlot('default')) {\n      childNodes = this.normalizeSlot('default')\n    } else if (this.label || this.labelHtml) {\n      childNodes = h('span', { domProps: htmlOrText(this.labelHtml, this.label) })\n    } else if (this.computedShowProgress) {\n      childNodes = this.computedProgress.toFixed(this.computedPrecision)\n    } else if (this.computedShowValue) {\n      childNodes = this.value.toFixed(this.computedPrecision)\n    }\n    return h(\n      'div',\n      {\n        staticClass: 'progress-bar',\n        class: this.progressBarClasses,\n        style: this.progressBarStyles,\n        attrs: {\n          role: 'progressbar',\n          'aria-valuemin': '0',\n          'aria-valuemax': this.computedMax.toString(),\n          'aria-valuenow': this.value.toFixed(this.computedPrecision)\n        }\n      },\n      [childNodes]\n    )\n  }\n})\n\nexport default BProgressBar\n","import Vue from '../../utils/vue'\nimport { getComponentConfig } from '../../utils/config'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BProgressBar } from './progress-bar'\n\nconst NAME = 'BProgress'\n\n// @vue/component\nexport const BProgress = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [normalizeSlotMixin],\n  provide() {\n    return { bvProgress: this }\n  },\n  props: {\n    // These props can be inherited via the child b-progress-bar(s)\n    variant: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'variant')\n    },\n    striped: {\n      type: Boolean,\n      default: false\n    },\n    animated: {\n      type: Boolean,\n      default: false\n    },\n    height: {\n      type: String,\n      default: null\n    },\n    precision: {\n      type: Number,\n      default: 0\n    },\n    showProgress: {\n      type: Boolean,\n      default: false\n    },\n    showValue: {\n      type: Boolean,\n      default: false\n    },\n    max: {\n      type: Number,\n      default: 100\n    },\n    // This prop is not inherited by child b-progress-bar(s)\n    value: {\n      type: Number,\n      default: 0\n    }\n  },\n  computed: {\n    progressHeight() {\n      return { height: this.height || null }\n    }\n  },\n  render(h) {\n    let childNodes = this.normalizeSlot('default')\n    if (!childNodes) {\n      childNodes = h(BProgressBar, {\n        props: {\n          value: this.value,\n          max: this.max,\n          precision: this.precision,\n          variant: this.variant,\n          animated: this.animated,\n          striped: this.striped,\n          showProgress: this.showProgress,\n          showValue: this.showValue\n        }\n      })\n    }\n    return h('div', { class: ['progress'], style: this.progressHeight }, [childNodes])\n  }\n})\n\nexport default BProgress\n","import { BProgress } from './progress'\nimport { BProgressBar } from './progress-bar'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ProgressPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BProgress,\n    BProgressBar\n  }\n})\n\nexport { ProgressPlugin, BProgress, BProgressBar }\n\nexport default ProgressPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { normalizeSlot } from '../../utils/normalize-slot'\n\nconst NAME = 'BSpinner'\n\n// @vue/component\nexport const BSpinner = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props: {\n    type: {\n      type: String,\n      default: 'border' // SCSS currently supports 'border' or 'grow'\n    },\n    label: {\n      type: String,\n      default: null\n    },\n    variant: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'variant')\n    },\n    small: {\n      type: Boolean,\n      default: false\n    },\n    role: {\n      type: String,\n      default: 'status'\n    },\n    tag: {\n      type: String,\n      default: 'span'\n    }\n  },\n  render(h, { props, data, slots, scopedSlots }) {\n    const $slots = slots()\n    const $scopedSlots = scopedSlots || {}\n    let label = normalizeSlot('label', {}, $scopedSlots, $slots) || props.label\n    if (label) {\n      label = h('span', { staticClass: 'sr-only' }, label)\n    }\n    return h(\n      props.tag,\n      mergeData(data, {\n        attrs: {\n          role: label ? props.role || 'status' : null,\n          'aria-hidden': label ? null : 'true'\n        },\n        class: {\n          [`spinner-${props.type}`]: Boolean(props.type),\n          [`spinner-${props.type}-sm`]: props.small,\n          [`text-${props.variant}`]: Boolean(props.variant)\n        }\n      }),\n      [label || h()]\n    )\n  }\n})\n\nexport default BSpinner\n","import { BSpinner } from './spinner'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst SpinnerPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BSpinner }\n})\n\nexport { SpinnerPlugin, BSpinner }\n\nexport default SpinnerPlugin\n","/**\n * Converts a string, including strings in camelCase or snake_case, into Start Case (a variant\n * of Title Case where all words start with a capital letter), it keeps original single quote\n * and hyphen in the word.\n *\n * Copyright (c) 2017 Compass (MIT)\n * https://github.com/UrbanCompass/to-start-case\n * @author Zhuoyuan Zhang <https://github.com/drawyan>\n * @author Wei Wang <https://github.com/onlywei>\n *\n *\n *   'management_companies' to 'Management Companies'\n *   'managementCompanies' to 'Management Companies'\n *   `hell's kitchen` to `Hell's Kitchen`\n *   `co-op` to `Co-op`\n *\n * @param {String} str\n * @returns {String}\n */\nconst startCase = str =>\n  str\n    .replace(/_/g, ' ')\n    .replace(/([a-z])([A-Z])/g, (str, $1, $2) => $1 + ' ' + $2)\n    .replace(/(\\s|^)(\\w)/g, (str, $1, $2) => $1 + $2.toUpperCase())\n\nexport default startCase\n","// Constants used by table helpers\n\n// Object of item keys that should be ignored for headers and stringification and filter events\nexport const IGNORED_FIELD_KEYS = {\n  _rowVariant: true,\n  _cellVariants: true,\n  _showDetails: true\n}\n\n// Filter CSS Selector for click/dblclick/etc events\n// If any of these selectors match the clicked element, we ignore the event\nexport const EVENT_FILTER = [\n  'a',\n  'a *', // include content inside links\n  'button',\n  'button *', // include content inside buttons\n  'input:not(.disabled):not([disabled])',\n  'select:not(.disabled):not([disabled])',\n  'textarea:not(.disabled):not([disabled])',\n  '[role=\"link\"]',\n  '[role=\"link\"] *',\n  '[role=\"button\"]',\n  '[role=\"button\"] *',\n  '[tabindex]:not(.disabled):not([disabled])'\n].join(',')\n","import startCase from '../../../utils/startcase'\nimport { isArray, isFunction, isObject, isString } from '../../../utils/inspect'\nimport { keys } from '../../../utils/object'\nimport { IGNORED_FIELD_KEYS } from './constants'\n\n// Private function to massage field entry into common object format\nconst processField = (key, value) => {\n  let field = null\n  if (isString(value)) {\n    // Label shortcut\n    field = { key: key, label: value }\n  } else if (isFunction(value)) {\n    // Formatter shortcut\n    field = { key: key, formatter: value }\n  } else if (isObject(value)) {\n    field = { ...value }\n    field.key = field.key || key\n  } else if (value !== false) {\n    // Fallback to just key\n    /* istanbul ignore next */\n    field = { key: key }\n  }\n  return field\n}\n\n// We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\nconst normalizeFields = (origFields, items) => {\n  const fields = []\n\n  if (isArray(origFields)) {\n    // Normalize array Form\n    origFields.filter(f => f).forEach(f => {\n      if (isString(f)) {\n        fields.push({ key: f, label: startCase(f) })\n      } else if (isObject(f) && f.key && isString(f.key)) {\n        // Full object definition. We use assign so that we don't mutate the original\n        fields.push({ ...f })\n      } else if (isObject(f) && keys(f).length === 1) {\n        // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n        const key = keys(f)[0]\n        const field = processField(key, f[key])\n        if (field) {\n          fields.push(field)\n        }\n      }\n    })\n  } else if (origFields && isObject(origFields) && keys(origFields).length > 0) {\n    // Normalize object Form (deprecated)\n    keys(origFields).forEach(key => {\n      const field = processField(key, origFields[key])\n      if (field) {\n        fields.push(field)\n      }\n    })\n  }\n\n  // If no field provided, take a sample from first record (if exits)\n  if (fields.length === 0 && isArray(items) && items.length > 0) {\n    const sample = items[0]\n    keys(sample).forEach(k => {\n      if (!IGNORED_FIELD_KEYS[k]) {\n        fields.push({ key: k, label: startCase(k) })\n      }\n    })\n  }\n\n  // Ensure we have a unique array of fields and that they have String labels\n  const memo = {}\n  return fields.filter(f => {\n    if (!memo[f.key]) {\n      memo[f.key] = true\n      f.label = isString(f.label) ? f.label : startCase(f.key)\n      return true\n    }\n    return false\n  })\n}\n\nexport default normalizeFields\n","import looseEqual from '../../../utils/loose-equal'\nimport { isArray, isFunction, isNull, isString, isUndefined } from '../../../utils/inspect'\nimport normalizeFields from './normalize-fields'\n\nexport default {\n  props: {\n    items: {\n      // Provider mixin adds in `Function` type\n      type: Array,\n      default() /* istanbul ignore next */ {\n        return []\n      }\n    },\n    fields: {\n      // Object format is deprecated and should be avoided\n      type: [Array, Object],\n      default: null\n    },\n    primaryKey: {\n      // Primary key for record.\n      // If provided the value in each row must be unique!!!\n      type: String,\n      default: null\n    },\n    value: {\n      // v-model for retrieving the current displayed rows\n      type: Array,\n      default() {\n        return []\n      }\n    }\n  },\n  data() {\n    return {\n      // Our local copy of the items. Must be an array\n      localItems: isArray(this.items) ? this.items.slice() : []\n    }\n  },\n  computed: {\n    computedFields() {\n      // We normalize fields into an array of objects\n      // [ { key:..., label:..., ...}, {...}, ..., {..}]\n      return normalizeFields(this.fields, this.localItems)\n    },\n    computedFieldsObj() {\n      // Fields as a simple lookup hash object\n      // Mainly for formatter lookup and scopedSlots for convenience\n      return this.computedFields.reduce((obj, f) => {\n        obj[f.key] = f\n        return obj\n      }, {})\n    },\n    computedItems() {\n      // Fallback if various mixins not provided\n      return (\n        this.paginatedItems ||\n        this.sortedItems ||\n        this.filteredItems ||\n        this.localItems ||\n        []\n      ).slice()\n    },\n    context() {\n      // Current state of sorting, filtering and pagination props/values\n      return {\n        filter: this.localFilter,\n        sortBy: this.localSortBy,\n        sortDesc: this.localSortDesc,\n        perPage: parseInt(this.perPage, 10) || 0,\n        currentPage: parseInt(this.currentPage, 10) || 1,\n        apiUrl: this.apiUrl\n      }\n    }\n  },\n  watch: {\n    items(newItems) {\n      /* istanbul ignore else */\n      if (isArray(newItems)) {\n        // Set localItems/filteredItems to a copy of the provided array\n        this.localItems = newItems.slice()\n      } else if (isUndefined(newItems) || isNull(newItems)) {\n        /* istanbul ignore next */\n        this.localItems = []\n      }\n    },\n    // Watch for changes on computedItems and update the v-model\n    computedItems(newVal) {\n      this.$emit('input', newVal)\n    },\n    // Watch for context changes\n    context(newVal, oldVal) {\n      // Emit context info for external paging/filtering/sorting handling\n      if (!looseEqual(newVal, oldVal)) {\n        this.$emit('context-changed', newVal)\n      }\n    }\n  },\n  mounted() {\n    // Initially update the v-model of displayed items\n    this.$emit('input', this.computedItems)\n  },\n  methods: {\n    // Method to get the formatter method for a given field key\n    getFieldFormatter(key) {\n      const fieldsObj = this.computedFieldsObj\n      const field = fieldsObj[key]\n      const parent = this.$parent\n      let formatter = field && field.formatter\n      if (isString(formatter) && isFunction(parent[formatter])) {\n        formatter = parent[formatter]\n      } else if (!isFunction(formatter)) {\n        formatter = undefined\n      }\n      // Return formatter function or undefined if none\n      return formatter\n    }\n  }\n}\n","import { keys } from '../../../utils/object'\nimport { IGNORED_FIELD_KEYS } from './constants'\n\n// Return a copy of a row after all reserved fields have been filtered out\n// TODO: add option to specify which fields to include\nconst sanitizeRow = row =>\n  keys(row).reduce((obj, key) => {\n    // Ignore special fields that start with `_`\n    if (!IGNORED_FIELD_KEYS[key]) {\n      obj[key] = row[key]\n    }\n    return obj\n  }, {})\n\nexport default sanitizeRow\n","import { keys } from '../../../utils/object'\nimport { isDate, isObject, isUndefinedOrNull } from '../../../utils/inspect'\n\n// Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n//   ex:\n//     { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n//   becomes\n//     'one 3 2 zzz 10 12 11'\n//\n// Primitives (numbers/strings) are returned as-is\n// Null and undefined values are filtered out\n// Dates are converted to their native string format\nconst stringifyObjectValues = val => {\n  if (isUndefinedOrNull(val)) {\n    /* istanbul ignore next */\n    return ''\n  }\n  // Arrays are also object, and keys just returns the array indexes\n  // Date objects we convert to strings\n  if (isObject(val) && !isDate(val)) {\n    return keys(val)\n      .sort() // Sort to prevent SSR issues on pre-rendered sorted tables\n      .filter(v => !isUndefinedOrNull(v)) // Ignore undefined/null values\n      .map(k => stringifyObjectValues(val[k]))\n      .join(' ')\n  }\n  return String(val)\n}\n\nexport default stringifyObjectValues\n","import { isObject } from '../../../utils/inspect'\nimport sanitizeRow from './sanitize-row'\nimport stringifyObjectValues from './stringify-object-values'\n\n// Stringifies the values of a record, ignoring any special top level field keys\n// TODO: add option to stringify formatted/scopedSlot items, and only specific fields\n/* istanbul ignore next */\nconst stringifyRecordValues = row => (isObject(row) ? stringifyObjectValues(sanitizeRow(row)) : '')\n\nexport default stringifyRecordValues\n","import cloneDeep from '../../../utils/clone-deep'\nimport looseEqual from '../../../utils/loose-equal'\nimport warn from '../../../utils/warn'\nimport { isFunction, isString, isRegExp } from '../../../utils/inspect'\nimport stringifyRecordValues from './stringify-record-values'\n\nconst DEPRECATION_MSG =\n  'Supplying a function to prop \"filter\" is deprecated. Use \"filter-function\" instead.'\n\nexport default {\n  props: {\n    filter: {\n      // Passing a function to filter is deprecated and should be avoided\n      type: [String, RegExp, Object, Array, Function],\n      default: null,\n      // `deprecated` -> Don't use this prop\n      // `deprecation` -> Refers to a change in prop usage\n      deprecation: DEPRECATION_MSG\n    },\n    filterFunction: {\n      type: Function,\n      default: null\n    }\n  },\n  data() {\n    return {\n      // Flag for displaying which empty slot to show and some event triggering\n      isFiltered: false\n    }\n  },\n  computed: {\n    localFiltering() {\n      return this.hasProvider ? !!this.noProviderFiltering : true\n    },\n    // For watching changes to `filteredItems` vs `localItems`\n    filteredCheck() {\n      return {\n        filteredItems: this.filteredItems,\n        localItems: this.localItems,\n        localFilter: this.localFilter\n      }\n    },\n    // Sanitized/normalized version of filter prop\n    localFilter() {\n      // Deprecate setting prop filter to a function\n      // `localFilterFn` will contain the correct function ref\n      if (isFunction(this.filter)) {\n        /* istanbul ignore next */\n        return ''\n      }\n\n      // Using internal filter function, which only accepts string or RegExp\n      if (\n        this.localFiltering &&\n        !isFunction(this.filterFunction) &&\n        !(isString(this.filter) || isRegExp(this.filter))\n      ) {\n        return ''\n      }\n\n      // Could be a string, object or array, as needed by external filter function\n      // We use `cloneDeep` to ensure we have a new copy of an object or array\n      // without Vue reactive observers\n      return cloneDeep(this.filter)\n    },\n    // Sanitized/normalize filter-function prop\n    localFilterFn() {\n      const filterFn = this.filterFunction\n      const filter = this.filter\n\n      // Prefer `filterFn` prop\n      if (isFunction(filterFn)) {\n        return filterFn\n      }\n\n      // Deprecate setting `filter` prop to a function\n      if (isFunction(filter)) {\n        /* istanbul ignore next */\n        warn(`b-table: ${DEPRECATION_MSG}`)\n        /* istanbul ignore next */\n        return filter\n      }\n\n      // No `filterFunction`, so signal to use internal filter function\n      return null\n    },\n    // Returns the records in `localItems` that match the filter criteria\n    // Returns the original `localItems` array if not sorting\n    filteredItems() {\n      const items = this.localItems || []\n\n      // Resolve the filtering function, when requested\n      // We prefer the provided filtering function and fallback to the internal one\n      // When no filtering criteria is specified the filtering factories will return `null`\n      let filterFn = null\n      if (this.localFiltering) {\n        const criteria = this.localFilter\n        filterFn =\n          this.filterFnFactory(this.localFilterFn, criteria) ||\n          this.defaultFilterFnFactory(criteria)\n      }\n\n      // We only do local filtering when requested and there are records to filter\n      if (filterFn && items.length > 0) {\n        return items.filter(filterFn)\n      }\n\n      // Otherwise return all items\n      return items\n    }\n  },\n  watch: {\n    // Watch for changes to the filter criteria and filtered items vs localItems).\n    // And set visual state and emit events as required\n    filteredCheck({ filteredItems, localItems, localFilter }) {\n      // Determine if the dataset is filtered or not\n      let isFiltered = false\n      if (!localFilter) {\n        // If filter criteria is falsey\n        isFiltered = false\n      } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {\n        // If filter criteria is an empty array or object\n        isFiltered = false\n      } else if (localFilter) {\n        // If filter criteria is truthy\n        isFiltered = true\n      }\n      if (isFiltered) {\n        this.$emit('filtered', filteredItems, filteredItems.length)\n      }\n      this.isFiltered = isFiltered\n    },\n    isFiltered(newVal, oldVal) {\n      if (newVal === false && oldVal === true) {\n        // We need to emit a filtered event if isFiltered transitions from true to\n        // false so that users can update their pagination controls.\n        this.$emit('filtered', this.localItems, this.localItems.length)\n      }\n    }\n  },\n  created() {\n    // Set the initial filtered state.\n    // In a nextTick so that we trigger a filtered event if needed\n    this.$nextTick(() => {\n      this.isFiltered = Boolean(this.localFilter)\n    })\n  },\n  methods: {\n    // Filter Function factories\n    filterFnFactory(filterFn, criteria) {\n      // Wrapper factory for external filter functions.\n      // Wrap the provided filter-function and return a new function.\n      // Returns null if no filter-function defined or if criteria is falsey.\n      // Rather than directly grabbing this.computedLocalFilterFn or this.filterFunction\n      // we have it passed, so that the caller computed prop will be reactive to changes\n      // in the original filter-function (as this routine is a method)\n      if (\n        !filterFn ||\n        !isFunction(filterFn) ||\n        !criteria ||\n        looseEqual(criteria, []) ||\n        looseEqual(criteria, {})\n      ) {\n        return null\n      }\n\n      // Build the wrapped filter test function, passing the criteria to the provided function\n      const fn = item => {\n        // Generated function returns true if the criteria matches part\n        // of the serialized data, otherwise false\n        return filterFn(item, criteria)\n      }\n\n      // Return the wrapped function\n      return fn\n    },\n    defaultFilterFnFactory(criteria) {\n      // Generates the default filter function, using the given filter criteria\n      if (!criteria || !(isString(criteria) || isRegExp(criteria))) {\n        // Built in filter can only support strings or RegExp criteria (at the moment)\n        return null\n      }\n\n      // Build the regexp needed for filtering\n      let regexp = criteria\n      if (isString(regexp)) {\n        // Escape special RegExp characters in the string and convert contiguous\n        // whitespace to \\s+ matches\n        const pattern = criteria\n          .replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n          .replace(/[\\s\\uFEFF\\xA0]+/g, '\\\\s+')\n        // Build the RegExp (no need for global flag, as we only need\n        // to find the value once in the string)\n        regexp = new RegExp(`.*${pattern}.*`, 'i')\n      }\n\n      // Generate the wrapped filter test function to use\n      const fn = item => {\n        // This searches all row values (and sub property values) in the entire (excluding\n        // special _ prefixed keys), because we convert the record to a space-separated\n        // string containing all the value properties (recursively), even ones that are\n        // not visible (not specified in this.fields).\n        //\n        // TODO: Enable searching on formatted fields and scoped slots\n        // TODO: Should we filter only on visible fields (i.e. ones in this.fields) by default?\n        // TODO: Allow for searching on specific fields/key, this could be combined with the previous TODO\n        // TODO: Give stringifyRecordValues extra options for filtering (i.e. passing the\n        //       fields definition and a reference to $scopedSlots)\n        //\n        // Generated function returns true if the criteria matches part of\n        // the serialized data, otherwise false\n        // We set lastIndex = 0 on regex in case someone uses the /g global flag\n        regexp.lastIndex = 0\n        return regexp.test(stringifyRecordValues(item))\n      }\n\n      // Return the generated function\n      return fn\n    }\n  }\n}\n","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in <b-table> if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nconst stableSort = (array, compareFn) => {\n  // Using `.bind(compareFn)` on the wrapped anonymous function improves\n  // performance by avoiding the function call setup. We don't use an arrow\n  // function here as it binds `this` to the `stableSort` context rather than\n  // the `compareFn` context, which wouldn't give us the performance increase.\n  return array\n    .map((a, index) => [index, a])\n    .sort(\n      function(a, b) {\n        return this(a[1], b[1]) || a[0] - b[0]\n      }.bind(compareFn)\n    )\n    .map(e => e[1])\n}\n\nexport default stableSort\n","import get from '../../../utils/get'\nimport { isDate, isUndefined, isFunction, isNull, isNumber } from '../../../utils/inspect'\nimport stringifyObjectValues from './stringify-object-values'\n\n// Default sort compare routine\n//\n// TODO: Add option to sort by multiple columns (tri-state per column,\n//       plus order of columns in sort)  where sortBy could be an array\n//       of objects [ {key: 'foo', sortDir: 'asc'}, {key:'bar', sortDir: 'desc'} ...]\n//       or an array of arrays [ ['foo','asc'], ['bar','desc'] ]\n//       Multisort will most likely be handled in mixin-sort.js by\n//       calling this method for each sortBy\nconst defaultSortCompare = (a, b, sortBy, formatter, localeOpts, locale) => {\n  let aa = get(a, sortBy, '')\n  let bb = get(b, sortBy, '')\n  if (isFunction(formatter)) {\n    aa = formatter(aa, sortBy, a)\n    bb = formatter(bb, sortBy, b)\n  }\n  aa = isUndefined(aa) || isNull(aa) ? '' : aa\n  bb = isUndefined(bb) || isNull(bb) ? '' : bb\n  if ((isDate(aa) && isDate(bb)) || (isNumber(aa) && isNumber(bb))) {\n    // Special case for comparing dates and numbers\n    // Internally dates are compared via their epoch number values\n    return aa < bb ? -1 : aa > bb ? 1 : 0\n  } else {\n    // Do localized string comparison\n    return stringifyObjectValues(aa).localeCompare(stringifyObjectValues(bb), locale, localeOpts)\n  }\n}\n\nexport default defaultSortCompare\n","import stableSort from '../../../utils/stable-sort'\nimport startCase from '../../../utils/startcase'\nimport { arrayIncludes } from '../../../utils/array'\nimport { isFunction, isNull, isUndefined } from '../../../utils/inspect'\nimport defaultSortCompare from './default-sort-compare'\n\nexport default {\n  props: {\n    sortBy: {\n      type: String,\n      default: ''\n    },\n    sortDesc: {\n      // To Do: Make this tri-state: true, false, null\n      type: Boolean,\n      default: false\n    },\n    sortDirection: {\n      // This prop is named incorrectly.\n      // It should be initialSortDirection\n      // As it is a bit misleading (not to mention screws up\n      // the Aria Label on the headers)\n      type: String,\n      default: 'asc',\n      validator: direction => arrayIncludes(['asc', 'desc', 'last'], direction)\n    },\n    sortCompare: {\n      type: Function,\n      default: null\n    },\n    sortCompareOptions: {\n      // Supported localCompare options, see `options` section of:\n      // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\n      type: Object,\n      default: () => {\n        return { numeric: true }\n      }\n    },\n    sortCompareLocale: {\n      type: String\n      // default: undefined\n    },\n    noSortReset: {\n      // Another prop that should have had a better name.\n      // It should be noSortClear (on non-sortable headers).\n      // We will need to make sure the documentation is clear on what\n      // this prop does (as well as in the code for future reference)\n      type: Boolean,\n      default: false\n    },\n    labelSortAsc: {\n      type: String,\n      default: 'Click to sort Ascending'\n    },\n    labelSortDesc: {\n      type: String,\n      default: 'Click to sort Descending'\n    },\n    labelSortClear: {\n      type: String,\n      default: 'Click to clear sorting'\n    },\n    noLocalSorting: {\n      type: Boolean,\n      default: false\n    },\n    noFooterSorting: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      localSortBy: this.sortBy || '',\n      localSortDesc: this.sortDesc || false\n    }\n  },\n  computed: {\n    localSorting() {\n      return this.hasProvider ? !!this.noProviderSorting : !this.noLocalSorting\n    },\n    isSortable() {\n      return this.computedFields.some(f => f.sortable)\n    },\n    sortedItems() {\n      // Sorts the filtered items and returns a new array of the sorted items\n      // or the original items array if not sorted.\n      const items = (this.filteredItems || this.localItems || []).slice()\n      const sortBy = this.localSortBy\n      const sortDesc = this.localSortDesc\n      const sortCompare = this.sortCompare\n      const localSorting = this.localSorting\n      const sortOptions = { ...this.sortCompareOptions, usage: 'sort' }\n      const sortLocale = this.sortCompareLocale || undefined\n      if (sortBy && localSorting) {\n        const formatter = this.getFieldFormatter(sortBy)\n        // stableSort returns a new array, and leaves the original array intact\n        return stableSort(items, (a, b) => {\n          let result = null\n          if (isFunction(sortCompare)) {\n            // Call user provided sortCompare routine\n            result = sortCompare(a, b, sortBy, sortDesc, formatter, sortOptions, sortLocale)\n          }\n          if (isUndefined(result) || isNull(result) || result === false) {\n            // Fallback to built-in defaultSortCompare if sortCompare\n            // is not defined or returns null/false\n            result = defaultSortCompare(a, b, sortBy, formatter, sortOptions, sortLocale)\n          }\n          // Negate result if sorting in descending order\n          return (result || 0) * (sortDesc ? -1 : 1)\n        })\n      }\n      return items\n    }\n  },\n  watch: {\n    isSortable(newVal, oldVal) /* istanbul ignore next: pain in the butt to test */ {\n      if (newVal) {\n        if (this.isSortable) {\n          this.$on('head-clicked', this.handleSort)\n        }\n      } else {\n        this.$off('head-clicked', this.handleSort)\n      }\n    },\n    sortDesc(newVal, oldVal) {\n      if (newVal === this.localSortDesc) {\n        /* istanbul ignore next */\n        return\n      }\n      this.localSortDesc = newVal || false\n    },\n    sortBy(newVal, oldVal) {\n      if (newVal === this.localSortBy) {\n        /* istanbul ignore next */\n        return\n      }\n      this.localSortBy = newVal || ''\n    },\n    // Update .sync props\n    localSortDesc(newVal, oldVal) {\n      // Emit update to sort-desc.sync\n      if (newVal !== oldVal) {\n        this.$emit('update:sortDesc', newVal)\n      }\n    },\n    localSortBy(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.$emit('update:sortBy', newVal)\n      }\n    }\n  },\n  created() {\n    if (this.isSortable) {\n      this.$on('head-clicked', this.handleSort)\n    }\n  },\n  methods: {\n    // Handlers\n    // Need to move from thead-mixin\n    handleSort(key, field, evt, isFoot) {\n      if (!this.isSortable) {\n        /* istanbul ignore next */\n        return\n      }\n      if (isFoot && this.noFooterSorting) {\n        return\n      }\n      // TODO: make this tri-state sorting\n      // cycle desc => asc => none => desc => ...\n      let sortChanged = false\n      const toggleLocalSortDesc = () => {\n        const sortDirection = field.sortDirection || this.sortDirection\n        if (sortDirection === 'asc') {\n          this.localSortDesc = false\n        } else if (sortDirection === 'desc') {\n          this.localSortDesc = true\n        } else {\n          // sortDirection === 'last'\n          // Leave at last sort direction from previous column\n        }\n      }\n      if (field.sortable) {\n        if (key === this.localSortBy) {\n          // Change sorting direction on current column\n          this.localSortDesc = !this.localSortDesc\n        } else {\n          // Start sorting this column ascending\n          this.localSortBy = key\n          // this.localSortDesc = false\n          toggleLocalSortDesc()\n        }\n        sortChanged = true\n      } else if (this.localSortBy && !this.noSortReset) {\n        this.localSortBy = ''\n        toggleLocalSortDesc()\n        sortChanged = true\n      }\n      if (sortChanged) {\n        // Sorting parameters changed\n        this.$emit('sort-changed', this.context)\n      }\n    },\n    // methods to compute classes and attrs for thead>th cells\n    sortTheadThClasses(key, field, isFoot) {\n      return {\n        // No Classes for sorting currently...\n        // All styles targeted using aria-* attrs\n      }\n    },\n    sortTheadThAttrs(key, field, isFoot) {\n      if (!this.isSortable || (isFoot && this.noFooterSorting)) {\n        // No attributes if not a sortable table\n        return {}\n      }\n      const sortable = field.sortable\n      let ariaLabel = ''\n      if ((!field.label || !field.label.trim()) && !field.headerTitle) {\n        // In case field's label and title are empty/blank, we need to\n        // add a hint about what the column is about for non-sighted users.\n        // This is duplicated code from tbody-row mixin, but we need it\n        // here as well, since we overwrite the original aria-label.\n        /* istanbul ignore next */\n        ariaLabel = startCase(key)\n      }\n      // The correctness of these labels is very important for screen-reader users.\n      let ariaLabelSorting = ''\n      if (sortable) {\n        if (this.localSortBy === key) {\n          // currently sorted sortable column.\n          ariaLabelSorting = this.localSortDesc ? this.labelSortAsc : this.labelSortDesc\n        } else {\n          // Not currently sorted sortable column.\n          // Not using nested ternary's here for clarity/readability\n          // Default for ariaLabel\n          ariaLabelSorting = this.localSortDesc ? this.labelSortDesc : this.labelSortAsc\n          // Handle sortDirection setting\n          const sortDirection = this.sortDirection || field.sortDirection\n          if (sortDirection === 'asc') {\n            ariaLabelSorting = this.labelSortAsc\n          } else if (sortDirection === 'desc') {\n            ariaLabelSorting = this.labelSortDesc\n          }\n        }\n      } else if (!this.noSortReset) {\n        // Non sortable column\n        ariaLabelSorting = this.localSortBy ? this.labelSortClear : ''\n      }\n      // Assemble the aria-label attribute value\n      ariaLabel = [ariaLabel.trim(), ariaLabelSorting.trim()].filter(Boolean).join(': ')\n      // Assemble the aria-sort attribute value\n      const ariaSort =\n        sortable && this.localSortBy === key\n          ? this.localSortDesc\n            ? 'descending'\n            : 'ascending'\n          : sortable\n            ? 'none'\n            : null\n      // Return the attributes\n      // (All the above just to get these two values)\n      return {\n        'aria-label': ariaLabel || null,\n        'aria-sort': ariaSort\n      }\n    }\n  }\n}\n","export default {\n  props: {\n    perPage: {\n      type: [Number, String],\n      default: 0\n    },\n    currentPage: {\n      type: [Number, String],\n      default: 1\n    }\n  },\n  computed: {\n    localPaging() {\n      return this.hasProvider ? !!this.noProviderPaging : true\n    },\n    paginatedItems() {\n      let items = this.sortedItems || this.filteredItems || this.localItems || []\n      const currentPage = Math.max(parseInt(this.currentPage, 10) || 1, 1)\n      const perPage = Math.max(parseInt(this.perPage, 10) || 0, 0)\n      // Apply local pagination\n      if (this.localPaging && !!perPage) {\n        // Grab the current page of data (which may be past filtered items limit)\n        items = items.slice((currentPage - 1) * perPage, currentPage * perPage)\n      }\n      // Return the items to display in the table\n      return items\n    }\n  }\n}\n","import { htmlOrText } from '../../../utils/html'\n\nexport default {\n  props: {\n    caption: {\n      type: String,\n      default: null\n    },\n    captionHtml: {\n      type: String\n    },\n    captionTop: {\n      type: Boolean,\n      default: false\n    }\n  },\n  computed: {\n    captionClasses() {\n      return {\n        'b-table-caption-top': this.captionTop\n      }\n    },\n    captionId() {\n      // Even though this.safeId looks like a method, it is a computed prop\n      // that returns a new function if the underlying ID changes\n      return this.isStacked ? this.safeId('_caption_') : null\n    }\n  },\n  methods: {\n    renderCaption() {\n      const h = this.$createElement\n\n      // Build the caption\n      const $captionSlot = this.normalizeSlot('table-caption')\n      let $caption = h()\n\n      if ($captionSlot || this.caption || this.captionHtml) {\n        const data = {\n          key: 'caption',\n          class: this.captionClasses,\n          attrs: { id: this.captionId }\n        }\n        if (!$captionSlot) {\n          data.domProps = htmlOrText(this.captionHtml, this.caption)\n        }\n        $caption = h('caption', data, [$captionSlot])\n      }\n\n      return $caption\n    }\n  }\n}\n","export default {\n  methods: {\n    renderColgroup() {\n      const h = this.$createElement\n\n      const fields = this.computedFields\n      let $colgroup = h()\n\n      if (this.hasNormalizedSlot('table-colgroup')) {\n        $colgroup = h('colgroup', { key: 'colgroup' }, [\n          this.normalizeSlot('table-colgroup', { columns: fields.length, fields: fields })\n        ])\n      }\n\n      return $colgroup\n    }\n  }\n}\n","import { closest, getAttr, getById, matches, select } from '../../../utils/dom'\nimport { EVENT_FILTER } from './constants'\n\nconst TABLE_TAG_NAMES = ['TD', 'TH', 'TR']\n\n// Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\nconst filterEvent = evt => {\n  // Exit early when we don't have a target element\n  if (!evt || !evt.target) {\n    /* istanbul ignore next */\n    return false\n  }\n  const el = evt.target\n  // Exit early when element is disabled or a table element\n  if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n    return false\n  }\n  // Ignore the click when it was inside a dropdown menu\n  if (closest('.dropdown-menu', el)) {\n    return true\n  }\n  const label = el.tagName === 'LABEL' ? el : closest('label', el)\n  // If the label's form control is not disabled then we don't propagate event\n  // Modern browsers have `label.control` that references the associated input, but IE11\n  // does not have this property on the label element, so we resort to DOM lookups\n  if (label) {\n    const labelFor = getAttr(label, 'for')\n    const input = labelFor ? getById(labelFor) : select('input, select, textarea', label)\n    if (input && !input.disabled) {\n      return true\n    }\n  }\n  // Otherwise check if the event target matches one of the selectors in the\n  // event filter (i.e. anchors, non disabled inputs, etc.)\n  // Return `true` if we should ignore the event\n  return matches(el, EVENT_FILTER)\n}\n\nexport default filterEvent\n","import { getSel, isElement } from '../../../utils/dom'\n\n// Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\nconst textSelectionActive = (el = document) => {\n  const sel = getSel()\n  return sel && sel.toString() !== '' && sel.containsNode && isElement(el)\n    ? sel.containsNode(el, true)\n    : false\n}\n\nexport default textSelectionActive\n","import KeyCodes from '../../../utils/key-codes'\nimport startCase from '../../../utils/startcase'\nimport { getComponentConfig } from '../../../utils/config'\nimport { htmlOrText } from '../../../utils/html'\nimport filterEvent from './filter-event'\nimport textSelectionActive from './text-selection-active'\n\nexport default {\n  props: {\n    headVariant: {\n      type: String,\n      default: () => getComponentConfig('BTable', 'headVariant')\n    },\n    theadClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    theadTrClass: {\n      type: [String, Array, Object],\n      default: null\n    }\n  },\n  computed: {\n    headClasses() {\n      return [this.headVariant ? 'thead-' + this.headVariant : '', this.theadClass]\n    }\n  },\n  methods: {\n    fieldClasses(field) {\n      // header field (th) classes\n      return [\n        field.variant ? 'table-' + field.variant : '',\n        field.class ? field.class : '',\n        field.thClass ? field.thClass : ''\n      ]\n    },\n    headClicked(evt, field, isFoot) {\n      if (this.stopIfBusy && this.stopIfBusy(evt)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      } else if (filterEvent(evt)) {\n        // clicked on a non-disabled control so ignore\n        return\n      } else if (textSelectionActive(this.$el)) {\n        // User is selecting text, so ignore\n        /* istanbul ignore next: JSDOM doesn't support getSelection() */\n        return\n      }\n      evt.stopPropagation()\n      evt.preventDefault()\n      this.$emit('head-clicked', field.key, field, evt, isFoot)\n    },\n    renderThead(isFoot = false) {\n      const h = this.$createElement\n      const fields = this.computedFields || []\n\n      if (this.isStacked === true || fields.length === 0) {\n        // In always stacked mode, we don't bother rendering the head/foot.\n        // Or if no field headings (empty table)\n        return h()\n      }\n\n      // Helper function to generate a field TH cell\n      const makeCell = (field, colIndex) => {\n        let ariaLabel = null\n        if (!field.label.trim() && !field.headerTitle) {\n          // In case field's label and title are empty/blank\n          // We need to add a hint about what the column is about for non-sighted users\n          /* istanbul ignore next */\n          ariaLabel = startCase(field.key)\n        }\n        const hasHeadClickListener = this.$listeners['head-clicked'] || this.isSortable\n        const handlers = {}\n        if (hasHeadClickListener) {\n          handlers.click = evt => {\n            this.headClicked(evt, field, isFoot)\n          }\n          handlers.keydown = evt => {\n            const keyCode = evt.keyCode\n            if (keyCode === KeyCodes.ENTER || keyCode === KeyCodes.SPACE) {\n              this.headClicked(evt, field, isFoot)\n            }\n          }\n        }\n        const sortAttrs = this.isSortable ? this.sortTheadThAttrs(field.key, field, isFoot) : {}\n        const sortClass = this.isSortable ? this.sortTheadThClasses(field.key, field, isFoot) : null\n        const data = {\n          key: field.key,\n          class: [this.fieldClasses(field), sortClass],\n          style: field.thStyle || {},\n          attrs: {\n            // We only add a tabindex of 0 if there is a head-clicked listener\n            tabindex: hasHeadClickListener ? '0' : null,\n            abbr: field.headerAbbr || null,\n            title: field.headerTitle || null,\n            role: 'columnheader',\n            scope: 'col',\n            'aria-colindex': String(colIndex + 1),\n            'aria-label': ariaLabel,\n            ...sortAttrs\n          },\n          on: handlers\n        }\n        const fieldScope = { label: field.label, column: field.key, field: field }\n        const slot =\n          isFoot && this.hasNormalizedSlot(`FOOT_${field.key}`)\n            ? this.normalizeSlot(`FOOT_${field.key}`, fieldScope)\n            : this.normalizeSlot(`HEAD_${field.key}`, fieldScope)\n        if (!slot) {\n          data.domProps = htmlOrText(field.labelHtml)\n        }\n        return h('th', data, slot || field.label)\n      }\n\n      // Generate the array of TH cells\n      const $cells = fields.map(makeCell).filter(th => th)\n\n      // Genrate the row(s)\n      const $trs = []\n      if (isFoot) {\n        $trs.push(h('tr', { class: this.tfootTrClass, attrs: { role: 'row' } }, $cells))\n      } else {\n        const scope = {\n          columns: fields.length,\n          fields: fields\n        }\n        $trs.push(this.normalizeSlot('thead-top', scope) || h())\n        $trs.push(h('tr', { class: this.theadTrClass, attrs: { role: 'row' } }, $cells))\n      }\n\n      return h(\n        isFoot ? 'tfoot' : 'thead',\n        {\n          key: isFoot ? 'tfoot' : 'thead',\n          class: isFoot ? this.footClasses : this.headClasses,\n          attrs: { role: 'rowgroup' }\n        },\n        $trs\n      )\n    }\n  }\n}\n","import { getComponentConfig } from '../../../utils/config'\n\nexport default {\n  props: {\n    footClone: {\n      type: Boolean,\n      default: false\n    },\n    footVariant: {\n      type: String,\n      default: () => getComponentConfig('BTable', 'footVariant')\n    },\n    tfootClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    tfootTrClass: {\n      type: [String, Array, Object],\n      default: null\n    }\n  },\n  computed: {\n    footClasses() {\n      const variant = this.footVariant || this.headVariant || null\n      return [variant ? `thead-${variant}` : '', this.tfootClass]\n    }\n  },\n  methods: {\n    renderTfoot() {\n      const h = this.$createElement\n\n      // Passing true to renderThead will make it render a tfoot\n      return this.footClone ? this.renderThead(true) : h()\n    }\n  }\n}\n","import KeyCodes from '../../../utils/key-codes'\nimport get from '../../../utils/get'\nimport toString from '../../../utils/to-string'\nimport { arrayIncludes } from '../../../utils/array'\nimport { isFunction, isNull, isString, isUndefined } from '../../../utils/inspect'\nimport filterEvent from './filter-event'\nimport textSelectionActive from './text-selection-active'\n\nexport default {\n  props: {\n    tbodyTrClass: {\n      type: [String, Array, Function],\n      default: null\n    }\n  },\n  methods: {\n    // Methods for computing classes, attributes and styles for table cells\n    tdClasses(field, item) {\n      let cellVariant = ''\n      if (item._cellVariants && item._cellVariants[field.key]) {\n        cellVariant = `${this.dark ? 'bg' : 'table'}-${item._cellVariants[field.key]}`\n      }\n      return [\n        field.variant && !cellVariant ? `${this.dark ? 'bg' : 'table'}-${field.variant}` : '',\n        cellVariant,\n        field.class ? field.class : '',\n        this.getTdValues(item, field.key, field.tdClass, '')\n      ]\n    },\n    tdAttrs(field, item, colIndex) {\n      const attrs = {\n        role: 'cell',\n        'aria-colindex': String(colIndex + 1)\n      }\n      if (field.isRowHeader) {\n        attrs.scope = 'row'\n        attrs.role = 'rowheader'\n      }\n      if (this.isStacked) {\n        // Generate the \"header cell\" label content in stacked mode\n        attrs['data-label'] = field.label\n      }\n      return { ...attrs, ...this.getTdValues(item, field.key, field.tdAttr, {}) }\n    },\n    rowClasses(item) {\n      return [\n        item._rowVariant ? `${this.dark ? 'bg' : 'table'}-${item._rowVariant}` : '',\n        isFunction(this.tbodyTrClass) ? this.tbodyTrClass(item, 'row') : this.tbodyTrClass\n      ]\n    },\n    getTdValues(item, key, tdValue, defValue) {\n      const parent = this.$parent\n      if (tdValue) {\n        const value = get(item, key, '')\n        if (isFunction(tdValue)) {\n          return tdValue(value, key, item)\n        } else if (isString(tdValue) && isFunction(parent[tdValue])) {\n          return parent[tdValue](value, key, item)\n        }\n        return tdValue\n      }\n      return defValue\n    },\n    // Method to get the value for a field\n    getFormattedValue(item, field) {\n      const key = field.key\n      const formatter = this.getFieldFormatter(key)\n      let value = get(item, key, null)\n      if (isFunction(formatter)) {\n        value = formatter(value, key, item)\n      }\n      return isUndefined(value) || isNull(value) ? '' : value\n    },\n    tbodyRowKeydown(evt, item, rowIndex) {\n      const keyCode = evt.keyCode\n      const target = evt.target\n      const trs = this.$refs.itemRows\n      if (this.stopIfBusy && this.stopIfBusy(evt)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      } else if (!(target && target.tagName === 'TR' && target === document.activeElement)) {\n        // Ignore if not the active tr element\n        return\n      } else if (target.tabIndex !== 0) {\n        // Ignore if not focusable\n        /* istanbul ignore next */\n        return\n      } else if (trs && trs.length === 0) {\n        /* istanbul ignore next */\n        return\n      }\n      const index = trs.indexOf(target)\n      if (keyCode === KeyCodes.ENTER || keyCode === KeyCodes.SPACE) {\n        evt.stopPropagation()\n        evt.preventDefault()\n        // We also allow enter/space to trigger a click (when row is focused)\n        // We translate to a row-clicked event\n        this.rowClicked(evt, item, rowIndex)\n      } else if (\n        arrayIncludes([KeyCodes.UP, KeyCodes.DOWN, KeyCodes.HOME, KeyCodes.END], keyCode)\n      ) {\n        evt.stopPropagation()\n        evt.preventDefault()\n        const shift = evt.shiftKey\n        if (keyCode === KeyCodes.HOME || (shift && keyCode === KeyCodes.UP)) {\n          // Focus first row\n          trs[0].focus()\n        } else if (keyCode === KeyCodes.END || (shift && keyCode === KeyCodes.DOWN)) {\n          // Focus last row\n          trs[trs.length - 1].focus()\n        } else if (keyCode === KeyCodes.UP && index > 0) {\n          // Focus previous row\n          trs[index - 1].focus()\n        } else if (keyCode === KeyCodes.DOWN && index < trs.length - 1) {\n          // Focus next row\n          trs[index + 1].focus()\n        }\n      }\n    },\n    // Row event handlers\n    rowClicked(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      } else if (filterEvent(e)) {\n        // clicked on a non-disabled control so ignore\n        return\n      } else if (textSelectionActive(this.$el)) {\n        // User is selecting text, so ignore\n        /* istanbul ignore next: JSDOM doesn't support getSelection() */\n        return\n      }\n      this.$emit('row-clicked', item, index, e)\n    },\n    middleMouseRowClicked(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      }\n      this.$emit('row-middle-clicked', item, index, e)\n    },\n    rowDblClicked(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      } else if (filterEvent(e)) {\n        // clicked on a non-disabled control so ignore\n        /* istanbul ignore next: event filtering already tested via click handler */\n        return\n      }\n      this.$emit('row-dblclicked', item, index, e)\n    },\n    rowHovered(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      }\n      this.$emit('row-hovered', item, index, e)\n    },\n    rowUnhovered(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      }\n      this.$emit('row-unhovered', item, index, e)\n    },\n    rowContextmenu(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      }\n      this.$emit('row-contextmenu', item, index, e)\n    },\n    // Render helpers\n    renderTbodyRowCell(field, colIndex, item, rowIndex) {\n      const h = this.$createElement\n\n      // Renders a TD or TH for a row's field\n      const $scoped = this.$scopedSlots\n      const detailsSlot = $scoped['row-details']\n      const formatted = this.getFormattedValue(item, field)\n      const data = {\n        // For the Vue key, we concatenate the column index and\n        // field key (as field keys can be duplicated)\n        key: `row-${rowIndex}-cell-${colIndex}-${field.key}`,\n        class: this.tdClasses(field, item),\n        attrs: this.tdAttrs(field, item, colIndex)\n      }\n      const toggleDetailsFn = () => {\n        if (detailsSlot) {\n          this.$set(item, '_showDetails', !item._showDetails)\n        }\n      }\n      const slotScope = {\n        item: item,\n        index: rowIndex,\n        field: field,\n        unformatted: get(item, field.key, ''),\n        value: formatted,\n        toggleDetails: toggleDetailsFn,\n        detailsShowing: Boolean(item._showDetails)\n      }\n      if (this.selectedRows) {\n        // Add in rowSelected scope property if selectable rows supported\n        slotScope.rowSelected = Boolean(this.selectedRows[rowIndex])\n      }\n      let $childNodes = $scoped[field.key] ? $scoped[field.key](slotScope) : toString(formatted)\n      if (this.isStacked) {\n        // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n        $childNodes = [h('div', {}, [$childNodes])]\n      }\n      // Render either a td or th cell\n      return h(field.isRowHeader ? 'th' : 'td', data, [$childNodes])\n    },\n    renderTbodyRow(item, rowIndex) {\n      // Renders an item's row (or rows if details supported)\n      const h = this.$createElement\n      const $scoped = this.$scopedSlots\n      const fields = this.computedFields\n      const tableStriped = this.striped\n      const hasRowClickHandler = this.$listeners['row-clicked'] || this.selectable\n      const $detailsSlot = $scoped['row-details']\n      const rowShowDetails = Boolean(item._showDetails && $detailsSlot)\n\n      // We can return more than one TR if rowDetails enabled\n      const $rows = []\n\n      // Details ID needed for aria-describedby when details showing\n      const detailsId = rowShowDetails ? this.safeId(`_details_${rowIndex}_`) : null\n      const toggleDetailsFn = () => {\n        if ($detailsSlot) {\n          this.$set(item, '_showDetails', !item._showDetails)\n        }\n      }\n\n      // For each item data field in row\n      const $tds = fields.map((field, colIndex) => {\n        return this.renderTbodyRowCell(field, colIndex, item, rowIndex)\n      })\n\n      // Calculate the row number in the dataset (indexed from 1)\n      let ariaRowIndex = null\n      if (this.currentPage && this.perPage && this.perPage > 0) {\n        ariaRowIndex = String((this.currentPage - 1) * this.perPage + rowIndex + 1)\n      }\n\n      // Create a unique :key to help ensure that sub components are re-rendered rather than\n      // re-used, which can cause issues. If a primary key is not provided we use the rendered\n      // rows index within the tbody.\n      // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n      const primaryKey = this.primaryKey\n      const rowKey =\n        primaryKey && !isUndefined(item[primaryKey]) && !isNull(item[primaryKey])\n          ? toString(item[primaryKey])\n          : String(rowIndex)\n\n      // If primary key is provided, use it to generate a unique ID on each tbody > tr\n      // In the format of '{tableId}__row_{primaryKeyValue}'\n      const rowId =\n        primaryKey && !isUndefined(item[primaryKey]) && !isNull(item[primaryKey])\n          ? this.safeId(`_row_${item[primaryKey]}`)\n          : null\n\n      const handlers = {}\n      if (hasRowClickHandler) {\n        handlers['click'] = evt => {\n          this.rowClicked(evt, item, rowIndex)\n        }\n        handlers['keydown'] = evt => {\n          this.tbodyRowKeydown(evt, item, rowIndex)\n        }\n      }\n\n      // Selectable classes and attributes\n      const selectableClasses = this.selectableRowClasses ? this.selectableRowClasses(rowIndex) : {}\n      const selectableAttrs = this.selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {}\n\n      // Add the item row\n      $rows.push(\n        h(\n          'tr',\n          {\n            key: `__b-table-row-${rowKey}__`,\n            ref: 'itemRows',\n            refInFor: true,\n            class: [\n              this.rowClasses(item),\n              selectableClasses,\n              {\n                'b-table-has-details': rowShowDetails\n              }\n            ],\n            attrs: {\n              id: rowId,\n              tabindex: hasRowClickHandler ? '0' : null,\n              'data-pk': rowId ? String(item[primaryKey]) : null,\n              'aria-describedby': detailsId,\n              'aria-owns': detailsId,\n              'aria-rowindex': ariaRowIndex,\n              role: 'row',\n              ...selectableAttrs\n            },\n            on: {\n              ...handlers,\n              // TODO: Instantiate the following handlers only if we have registered\n              //       listeners i.e. this.$listeners['row-middle-clicked'], etc.\n              auxclick: evt => {\n                if (evt.which === 2) {\n                  this.middleMouseRowClicked(evt, item, rowIndex)\n                }\n              },\n              contextmenu: evt => {\n                this.rowContextmenu(evt, item, rowIndex)\n              },\n              // Note: these events are not accessibility friendly!\n              dblclick: evt => {\n                this.rowDblClicked(evt, item, rowIndex)\n              },\n              mouseenter: evt => {\n                this.rowHovered(evt, item, rowIndex)\n              },\n              mouseleave: evt => {\n                this.rowUnhovered(evt, item, rowIndex)\n              }\n            }\n          },\n          $tds\n        )\n      )\n\n      // Row Details slot\n      if (rowShowDetails) {\n        const tdAttrs = {\n          colspan: String(fields.length),\n          role: 'cell'\n        }\n        const trAttrs = {\n          id: detailsId,\n          role: 'row'\n        }\n        // Render the details slot\n        const $details = h('td', { attrs: tdAttrs }, [\n          $detailsSlot({\n            item: item,\n            index: rowIndex,\n            fields: fields,\n            toggleDetails: toggleDetailsFn\n          })\n        ])\n\n        // Add a hidden row to keep table row striping consistent when details showing\n        if (tableStriped) {\n          $rows.push(\n            h('tr', {\n              key: `__b-table-details-${rowIndex}-stripe__`,\n              staticClass: 'd-none',\n              attrs: { 'aria-hidden': 'true', role: 'presentation' }\n            })\n          )\n        }\n\n        // Add the actual details row\n        $rows.push(\n          h(\n            'tr',\n            {\n              key: `__b-table-details-${rowIndex}__`,\n              staticClass: 'b-table-details',\n              class: [\n                isFunction(this.tbodyTrClass)\n                  ? this.tbodyTrClass(item, 'row-details')\n                  : this.tbodyTrClass\n              ],\n              attrs: trAttrs\n            },\n            [$details]\n          )\n        )\n      } else if ($detailsSlot) {\n        // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n        $rows.push(h())\n        if (tableStriped) {\n          // add extra placeholder if table is striped\n          $rows.push(h())\n        }\n      }\n\n      // Return the row(s)\n      return $rows\n    }\n  }\n}\n","import tbodyRowMixin from './mixin-tbody-row'\n\nexport default {\n  mixins: [tbodyRowMixin],\n  props: {\n    tbodyClass: {\n      type: [String, Array],\n      default: null\n    },\n    tbodyTransitionProps: {\n      type: Object\n      // default: undefined\n    },\n    tbodyTransitionHandlers: {\n      type: Object\n      // default: undefined\n    }\n  },\n  methods: {\n    renderTbody() {\n      // Render the tbody element and children\n      const h = this.$createElement\n      const items = this.computedItems\n\n      // Prepare the tbody rows\n      const $rows = []\n\n      // Add the item data rows or the busy slot\n      const $busy = this.renderBusy ? this.renderBusy() : null\n      if ($busy) {\n        // If table is busy and a busy slot, then return only the busy \"row\" indicator\n        $rows.push($busy)\n      } else {\n        // Table isn't busy, or we don't have a busy slot\n\n        // Add static Top Row slot (hidden in visibly stacked mode as we can't control data-label attr)\n        $rows.push(this.renderTopRow ? this.renderTopRow() : h())\n\n        // render the rows\n        items.forEach((item, rowIndex) => {\n          // Render the individual item row (rows if details slot)\n          $rows.push(this.renderTbodyRow(item, rowIndex))\n        })\n\n        // Empty Items / Empty Filtered Row slot (only shows if items.length < 1)\n        $rows.push(this.renderEmpty ? this.renderEmpty() : h())\n\n        // Static bottom row slot (hidden in visibly stacked mode as we can't control data-label attr)\n        $rows.push(this.renderBottomRow ? this.renderBottomRow() : h())\n      }\n\n      // If tbody transition enabled\n      const isTransGroup = this.tbodyTransitionProps || this.tbodyTransitionHandlers\n      let tbodyProps = {}\n      let tbodyOn = {}\n      if (isTransGroup) {\n        tbodyOn = this.tbodyTransitionHandlers || {}\n        tbodyProps = {\n          ...(this.tbodyTransitionProps || {}),\n          tag: 'tbody'\n        }\n      }\n\n      // Assemble rows into the tbody\n      const $tbody = h(\n        isTransGroup ? 'transition-group' : 'tbody',\n        {\n          props: tbodyProps,\n          on: tbodyOn,\n          class: [this.tbodyClass],\n          attrs: { role: 'rowgroup' }\n        },\n        $rows\n      )\n\n      // Return the assembled tbody\n      return $tbody\n    }\n  }\n}\n","import { htmlOrText } from '../../../utils/html'\nimport { isFunction } from '../../../utils/inspect'\n\nexport default {\n  props: {\n    showEmpty: {\n      type: Boolean,\n      default: false\n    },\n    emptyText: {\n      type: String,\n      default: 'There are no records to show'\n    },\n    emptyHtml: {\n      type: String\n    },\n    emptyFilteredText: {\n      type: String,\n      default: 'There are no records matching your request'\n    },\n    emptyFilteredHtml: {\n      type: String\n    }\n  },\n  methods: {\n    renderEmpty() {\n      const h = this.$createElement\n      const items = this.computedItems\n      let $empty\n\n      if (\n        this.showEmpty &&\n        (!items || items.length === 0) &&\n        !(this.computedBusy && this.hasNormalizedSlot('table-busy'))\n      ) {\n        $empty = this.normalizeSlot(this.isFiltered ? 'emptyfiltered' : 'empty', {\n          emptyFilteredHtml: this.emptyFilteredHtml,\n          emptyFilteredText: this.emptyFilteredText,\n          emptyHtml: this.emptyHtml,\n          emptyText: this.emptyText,\n          fields: this.computedFields,\n          // Not sure why this is included, as it will always be an empty array\n          items: this.computedItems\n        })\n        if (!$empty) {\n          $empty = h('div', {\n            class: ['text-center', 'my-2'],\n            domProps: this.isFiltered\n              ? htmlOrText(this.emptyFilteredHtml, this.emptyFilteredText)\n              : htmlOrText(this.emptyHtml, this.emptyText)\n          })\n        }\n        $empty = h(\n          'td',\n          {\n            attrs: {\n              colspan: String(this.computedFields.length),\n              role: 'cell'\n            }\n          },\n          [h('div', { attrs: { role: 'alert', 'aria-live': 'polite' } }, [$empty])]\n        )\n        $empty = h(\n          'tr',\n          {\n            key: this.isFiltered ? '_b-table-empty-filtered-row_' : '_b-table-empty-row_',\n            staticClass: 'b-table-empty-row',\n            class: [\n              isFunction(this.tbodyTrClass)\n                ? this.tbodyTrClass(null, 'row-empty')\n                : this.tbodyTrClass\n            ],\n            attrs: { role: 'row' }\n          },\n          [$empty]\n        )\n      }\n\n      return $empty || h()\n    }\n  }\n}\n","import { isFunction } from '../../../utils/inspect'\n\nexport default {\n  methods: {\n    renderTopRow() {\n      const h = this.$createElement\n\n      // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n      // If in always stacked mode, we don't bother rendering the row\n      if (!this.hasNormalizedSlot('top-row') || this.isStacked === true) {\n        return h()\n      }\n\n      const fields = this.computedFields\n\n      return h(\n        'tr',\n        {\n          key: 'top-row',\n          staticClass: 'b-table-top-row',\n          class: [\n            isFunction(this.tbodyTrClass) ? this.tbodyTrClass(null, 'row-top') : this.tbodyTrClass\n          ],\n          attrs: { role: 'row' }\n        },\n        [this.normalizeSlot('top-row', { columns: fields.length, fields: fields })]\n      )\n    }\n  }\n}\n","import { isFunction } from '../../../utils/inspect'\n\nexport default {\n  methods: {\n    renderBottomRow() {\n      const h = this.$createElement\n\n      // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n      // If in always stacked mode, we don't bother rendering the row\n      if (!this.hasNormalizedSlot('bottom-row') || this.isStacked === true) {\n        return h()\n      }\n\n      const fields = this.computedFields\n\n      return h(\n        'tr',\n        {\n          key: '__b-table-bottom-row__',\n          staticClass: 'b-table-bottom-row',\n          class: [\n            isFunction(this.tbodyTrClass)\n              ? this.tbodyTrClass(null, 'row-bottom')\n              : this.tbodyTrClass\n          ],\n          attrs: { role: 'row' }\n        },\n        this.normalizeSlot('bottom-row', { columns: fields.length, fields: fields })\n      )\n    }\n  }\n}\n","import { isFunction } from '../../../utils/inspect'\n\nexport default {\n  props: {\n    busy: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      localBusy: false\n    }\n  },\n  computed: {\n    computedBusy() {\n      return this.busy || this.localBusy\n    }\n  },\n  watch: {\n    localBusy(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.$emit('update:busy', newVal)\n      }\n    }\n  },\n  methods: {\n    // Event handler helper\n    stopIfBusy(evt) {\n      if (this.computedBusy) {\n        // If table is busy (via provider) then don't propagate\n        evt.preventDefault()\n        evt.stopPropagation()\n        return true\n      }\n      return false\n    },\n    // Renter the busy indicator or return null if not busy\n    renderBusy() {\n      const h = this.$createElement\n\n      // Return a busy indicator row, or null if not busy\n      if (this.computedBusy && this.hasNormalizedSlot('table-busy')) {\n        // Show the busy slot\n        const trAttrs = {\n          role: this.isStacked ? 'row' : null\n        }\n        const tdAttrs = {\n          colspan: String(this.computedFields.length),\n          role: this.isStacked ? 'cell' : null\n        }\n        return h(\n          'tr',\n          {\n            key: 'table-busy-slot',\n            staticClass: 'b-table-busy-slot',\n            class: [\n              isFunction(this.tbodyTrClass)\n                ? this.tbodyTrClass(null, 'table-busy')\n                : this.tbodyTrClass\n            ],\n            attrs: trAttrs\n          },\n          [h('td', { attrs: tdAttrs }, [this.normalizeSlot('table-busy')])]\n        )\n      } else {\n        // We return null here so that we can determine if we need to\n        // render the table items rows or not.\n        return null\n      }\n    }\n  }\n}\n","import looseEqual from '../../../utils/loose-equal'\nimport { isArray, arrayIncludes } from '../../../utils/array'\nimport { getComponentConfig } from '../../../utils/config'\nimport sanitizeRow from './sanitize-row'\n\nexport default {\n  props: {\n    selectable: {\n      type: Boolean,\n      default: false\n    },\n    selectMode: {\n      type: String,\n      default: 'multi'\n    },\n    selectedVariant: {\n      type: String,\n      default: () => getComponentConfig('BTable', 'selectedVariant')\n    }\n  },\n  data() {\n    return {\n      selectedRows: [],\n      selectedLastRow: -1\n    }\n  },\n  computed: {\n    selectableTableClasses() {\n      const selectable = this.selectable\n      const isSelecting = selectable && this.selectedRows && this.selectedRows.some(Boolean)\n      return {\n        'b-table-selectable': selectable,\n        [`b-table-select-${this.selectMode}`]: selectable,\n        'b-table-selecting': isSelecting\n      }\n    },\n    selectableTableAttrs() {\n      return {\n        'aria-multiselectable': this.selectableIsMultiSelect\n      }\n    },\n    selectableIsMultiSelect() {\n      if (this.selectable) {\n        return arrayIncludes(['range', 'multi'], this.selectMode) ? 'true' : 'false'\n      } else {\n        return null\n      }\n    }\n  },\n  watch: {\n    computedItems(newVal, oldVal) {\n      // Reset for selectable\n      // TODO: Should selectedLastClicked be reset here?\n      //       As changes to _showDetails would trigger it to reset\n      this.selectedLastRow = -1\n      let equal = false\n      if (this.selectable && this.selectedRows.length > 0) {\n        // Quick check against array length\n        equal = isArray(newVal) && isArray(oldVal) && newVal.length === oldVal.length\n        for (let i = 0; equal && i < newVal.length; i++) {\n          // Look for the first non-loosely equal row, after ignoring reserved fields\n          equal = looseEqual(sanitizeRow(newVal[i]), sanitizeRow(oldVal[i]))\n        }\n      }\n      if (!equal) {\n        this.clearSelected()\n      }\n    },\n    selectable(newVal, oldVal) {\n      this.clearSelected()\n      this.setSelectionHandlers(newVal)\n    },\n    selectMode(newVal, oldVal) {\n      this.clearSelected()\n    },\n    selectedRows(selectedRows, oldVal) {\n      if (this.selectable && !looseEqual(selectedRows, oldVal)) {\n        const items = []\n        // forEach skips over non-existant indicies (on sparse arrays)\n        selectedRows.forEach((v, idx) => {\n          if (v) {\n            items.push(this.computedItems[idx])\n          }\n        })\n        this.$emit('row-selected', items)\n      }\n    }\n  },\n  beforeMount() {\n    // Set up handlers\n    if (this.selectable) {\n      this.setSelectionHandlers(true)\n    }\n  },\n  methods: {\n    isRowSelected(idx) {\n      return Boolean(this.selectedRows[idx])\n    },\n    selectableRowClasses(idx) {\n      const rowSelected = this.isRowSelected(idx)\n      const base = this.dark ? 'bg' : 'table'\n      const variant = this.selectedVariant\n      return {\n        'b-table-row-selected': this.selectable && rowSelected,\n        [`${base}-${variant}`]: this.selectable && rowSelected && variant\n      }\n    },\n    selectableRowAttrs(idx) {\n      return {\n        'aria-selected': !this.selectable ? null : this.isRowSelected(idx) ? 'true' : 'false'\n      }\n    },\n    clearSelected() {\n      const hasSelection = this.selectedRows.reduce((prev, v) => {\n        return prev || v\n      }, false)\n      if (hasSelection) {\n        this.selectedLastClicked = -1\n        this.selectedRows = []\n      }\n    },\n    setSelectionHandlers(on) {\n      const method = on ? '$on' : '$off'\n      // Handle row-clicked event\n      this[method]('row-clicked', this.selectionHandler)\n      // Clear selection on filter, pagination, and sort changes\n      this[method]('filtered', this.clearSelected)\n      this[method]('context-changed', this.clearSelected)\n    },\n    selectionHandler(item, index, evt) {\n      /* istanbul ignore if: should never happen */\n      if (!this.selectable) {\n        // Don't do anything if table is not in selectable mode\n        /* istanbul ignore next: should never happen */\n        this.clearSelected()\n        /* istanbul ignore next: should never happen */\n        return\n      }\n      let selectedRows = this.selectedRows.slice()\n      let selected = !selectedRows[index]\n      const mode = this.selectMode\n      // Note 'multi' mode needs no special handling\n      if (mode === 'single') {\n        selectedRows = []\n      } else if (mode === 'range') {\n        if (this.selectedLastRow > -1 && evt.shiftKey) {\n          // range\n          for (\n            let idx = Math.min(this.selectedLastRow, index);\n            idx <= Math.max(this.selectedLastRow, index);\n            idx++\n          ) {\n            selectedRows[idx] = true\n          }\n          selected = true\n        } else {\n          if (!(evt.ctrlKey || evt.metaKey)) {\n            // clear range selection if any\n            selectedRows = []\n            selected = true\n          }\n          this.selectedLastRow = selected ? index : -1\n        }\n      }\n      selectedRows[index] = selected\n      this.selectedRows = selectedRows\n    }\n  }\n}\n","import looseEqual from '../../../utils/loose-equal'\nimport warn from '../../../utils/warn'\nimport { isArray, isFunction, isPromise } from '../../../utils/inspect'\nimport listenOnRootMixin from '../../../mixins/listen-on-root'\n\nexport default {\n  mixins: [listenOnRootMixin],\n  props: {\n    // Prop override(s)\n    items: {\n      // Adds in 'Function' support\n      type: [Array, Function],\n      default() /* istanbul ignore next */ {\n        return []\n      }\n    },\n    // Additional props\n    noProviderPaging: {\n      type: Boolean,\n      default: false\n    },\n    noProviderSorting: {\n      type: Boolean,\n      default: false\n    },\n    noProviderFiltering: {\n      type: Boolean,\n      default: false\n    },\n    apiUrl: {\n      // Passthrough prop. Passed to the context object. Not used by b-table directly\n      type: String,\n      default: ''\n    }\n  },\n  computed: {\n    hasProvider() {\n      return isFunction(this.items)\n    },\n    providerTriggerContext() {\n      // Used to trigger the provider function via a watcher. Only the fields that\n      // are needed for triggering a provider update are included. Note that the\n      // regular this.context is sent to the provider during fetches though, as they\n      // may need all the prop info.\n      const ctx = {\n        apiUrl: this.apiUrl,\n        filter: null,\n        sortBy: null,\n        sortDesc: null,\n        perPage: null,\n        currentPage: null\n      }\n      if (!this.noProviderFiltering) {\n        // Either a string, or could be an object or array.\n        ctx.filter = this.localFilter\n      }\n      if (!this.noProviderSorting) {\n        ctx.sortBy = this.localSortBy\n        ctx.sortDesc = this.localSortDesc\n      }\n      if (!this.noProviderPaging) {\n        ctx.perPage = this.perPage\n        ctx.currentPage = this.currentPage\n      }\n      return { ...ctx }\n    }\n  },\n  watch: {\n    // Provider update triggering\n    items(newVal, oldVal) {\n      // If a new provider has been specified, trigger an update\n      if (this.hasProvider || isFunction(newVal)) {\n        this.$nextTick(this._providerUpdate)\n      }\n    },\n    providerTriggerContext(newVal, oldVal) {\n      // Trigger the provider to update as the relevant context values have changed.\n      if (!looseEqual(newVal, oldVal)) {\n        this.$nextTick(this._providerUpdate)\n      }\n    }\n  },\n  mounted() {\n    // Call the items provider if necessary\n    if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {\n      // Fetch on mount if localItems is empty\n      this._providerUpdate()\n    }\n    // Listen for global messages to tell us to force refresh the table\n    this.listenOnRoot('bv::refresh::table', id => {\n      if (id === this.id || id === this) {\n        this.refresh()\n      }\n    })\n  },\n  methods: {\n    refresh() {\n      // Public Method: Force a refresh of the provider function\n      this.$off('refreshed', this.refresh)\n      if (this.computedBusy) {\n        // Can't force an update when forced busy by user (busy prop === true)\n        if (this.localBusy && this.hasProvider) {\n          // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted\n          this.$on('refreshed', this.refresh)\n        }\n      } else {\n        this.clearSelected()\n        if (this.hasProvider) {\n          this.$nextTick(this._providerUpdate)\n        } else {\n          /* istanbul ignore next */\n          this.localItems = isArray(this.items) ? this.items.slice() : []\n        }\n      }\n    },\n    // Provider related methods\n    _providerSetLocal(items) {\n      this.localItems = isArray(items) ? items.slice() : []\n      this.localBusy = false\n      this.$emit('refreshed')\n      // New root emit\n      if (this.id) {\n        this.emitOnRoot('bv::table::refreshed', this.id)\n      }\n    },\n    _providerUpdate() {\n      // Refresh the provider function items.\n      if (!this.hasProvider) {\n        // Do nothing if no provider\n        return\n      }\n      // If table is busy, wait until refreshed before calling again\n      if (this.computedBusy) {\n        // Schedule a new refresh once `refreshed` is emitted\n        this.$nextTick(this.refresh)\n        return\n      }\n\n      // Set internal busy state\n      this.localBusy = true\n\n      // Call provider function with context and optional callback after DOM is fully updated\n      this.$nextTick(() => {\n        try {\n          // Call provider function passing it the context and optional callback\n          const data = this.items(this.context, this._providerSetLocal)\n          if (isPromise(data)) {\n            // Provider returned Promise\n            data.then(items => {\n              // Provider resolved with items\n              this._providerSetLocal(items)\n            })\n          } else if (isArray(data)) {\n            // Provider returned Array data\n            this._providerSetLocal(data)\n          } else if (this.items.length !== 2) {\n            // Check number of arguments provider function requested\n            // Provider not using callback (didn't request second argument), so we clear\n            // busy state as most likely there was an error in the provider function\n            /* istanbul ignore next */\n            warn(\n              \"b-table provider function didn't request callback and did not return a promise or data\"\n            )\n            /* istanbul ignore next */\n            this.localBusy = false\n          }\n        } catch (e) /* istanbul ignore next */ {\n          // Provider function borked on us, so we spew out a warning\n          // and clear the busy state\n          warn(`b-table provider function error [${e.name}] ${e.message}`)\n          this.localBusy = false\n          this.$off('refreshed', this.refresh)\n        }\n      })\n    }\n  }\n}\n","// Main `<table>` render mixin\n// Which indlues all main table stlying options\n\nexport default {\n  // Don't place ATTRS on root element automatically, as table could be wrapped in responsive div\n  inheritAttrs: false,\n  props: {\n    striped: {\n      type: Boolean,\n      default: false\n    },\n    bordered: {\n      type: Boolean,\n      default: false\n    },\n    borderless: {\n      type: Boolean,\n      default: false\n    },\n    outlined: {\n      type: Boolean,\n      default: false\n    },\n    dark: {\n      type: Boolean,\n      default: false\n    },\n    hover: {\n      type: Boolean,\n      default: false\n    },\n    small: {\n      type: Boolean,\n      default: false\n    },\n    fixed: {\n      type: Boolean,\n      default: false\n    },\n    responsive: {\n      type: [Boolean, String],\n      default: false\n    },\n    stacked: {\n      type: [Boolean, String],\n      default: false\n    },\n    tableClass: {\n      type: [String, Array, Object],\n      default: null\n    }\n  },\n  computed: {\n    // Layout related computed props\n    isStacked() {\n      return this.stacked === '' ? true : this.stacked\n    },\n    isResponsive() {\n      const responsive = this.responsive === '' ? true : this.responsive\n      return this.isStacked ? false : responsive\n    },\n    responsiveClass() {\n      return this.isResponsive === true\n        ? 'table-responsive'\n        : this.isResponsive\n          ? `table-responsive-${this.responsive}`\n          : ''\n    },\n    tableClasses() {\n      return [\n        // User supplied classes\n        this.tableClass,\n        // Styling classes\n        {\n          'table-striped': this.striped,\n          'table-hover': this.hover && this.computedItems.length > 0 && !this.computedBusy,\n          'table-dark': this.dark,\n          'table-bordered': this.bordered,\n          'table-borderless': this.borderless,\n          'table-sm': this.small,\n          border: this.outlined,\n          // The following are b-table custom styles\n          'b-table-fixed': this.fixed,\n          'b-table-stacked': this.stacked === true || this.stacked === '',\n          [`b-table-stacked-${this.stacked}`]: this.stacked !== true && this.stacked\n        },\n        // Selectable classes\n        this.selectableTableClasses\n      ]\n    },\n    tableAttrs() {\n      // Preserve user supplied aria-describedby, if provided in $attrs\n      const adb =\n        [(this.$attrs || {})['aria-describedby'], this.captionId].filter(Boolean).join(' ') || null\n      const items = this.computedItems\n      const fields = this.computedFields\n      const selectableAttrs = this.selectableTableAttrs || {}\n      return {\n        // We set aria-rowcount before merging in $attrs, in case user has supplied their own\n        'aria-rowcount':\n          this.filteredItems && this.filteredItems.length > items.length\n            ? String(this.filteredItems.length)\n            : null,\n        // Merge in user supplied $attrs if any\n        ...this.$attrs,\n        // Now we can override any $attrs here\n        id: this.safeId(),\n        role: this.isStacked ? 'table' : null,\n        'aria-busy': this.computedBusy ? 'true' : 'false',\n        'aria-colcount': String(fields.length),\n        'aria-describedby': adb,\n        ...selectableAttrs\n      }\n    }\n  },\n  render(h) {\n    // Build the caption (from caption mixin)\n    const $caption = this.renderCaption ? this.renderCaption() : null\n\n    // Build the colgroup\n    const $colgroup = this.renderColgroup ? this.renderColgroup() : null\n\n    // Build the thead\n    const $thead = this.renderThead()\n\n    // Build the tfoot\n    const $tfoot = this.renderTfoot()\n\n    // Build the tbody\n    const $tbody = this.renderTbody()\n\n    // Assemble table\n    const $table = h(\n      'table',\n      {\n        key: 'b-table',\n        staticClass: 'table b-table',\n        class: this.tableClasses,\n        attrs: this.tableAttrs\n      },\n      [$caption, $colgroup, $thead, $tfoot, $tbody].filter(Boolean)\n    )\n\n    // Add responsive wrapper if needed and return table\n    return this.isResponsive\n      ? h('div', { key: 'b-table-responsive', class: this.responsiveClass }, [$table])\n      : $table\n  }\n}\n","import Vue from '../../utils/vue'\n\n// Mixins\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\n// Table helper Mixins\nimport itemsMixin from './helpers/mixin-items'\nimport filteringMixin from './helpers/mixin-filtering'\nimport sortingMixin from './helpers/mixin-sorting'\nimport paginationMixin from './helpers/mixin-pagination'\nimport captionMixin from './helpers/mixin-caption'\nimport colgroupMixin from './helpers/mixin-colgroup'\nimport theadMixin from './helpers/mixin-thead'\nimport tfootMixin from './helpers/mixin-tfoot'\nimport tbodyMixin from './helpers/mixin-tbody'\nimport emptyMixin from './helpers//mixin-empty'\nimport topRowMixin from './helpers//mixin-top-row'\nimport bottomRowMixin from './helpers//mixin-bottom-row'\nimport busyMixin from './helpers/mixin-busy'\nimport selectableMixin from './helpers/mixin-selectable'\nimport providerMixin from './helpers/mixin-provider'\n\n// Main table renderer mixin\nimport tableRendererMixin from './helpers/mixin-table-renderer'\n\n// b-table component definition\n// @vue/component\nexport const BTable = /*#__PURE__*/ Vue.extend({\n  name: 'BTable',\n  // Order of mixins is important!\n  // They are merged from first to last, followed by this component.\n  mixins: [\n    // Required Mixins\n    idMixin,\n    normalizeSlotMixin,\n    itemsMixin,\n    tableRendererMixin,\n    theadMixin,\n    tfootMixin,\n    tbodyMixin,\n    // Features Mixins\n    filteringMixin,\n    sortingMixin,\n    paginationMixin,\n    captionMixin,\n    colgroupMixin,\n    selectableMixin,\n    emptyMixin,\n    topRowMixin,\n    bottomRowMixin,\n    busyMixin,\n    providerMixin\n  ]\n  // render function provided by table-renderer mixin\n})\n\nexport default BTable\n","import Vue from '../../utils/vue'\n\n// Mixins\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\n// Table helper Mixins\nimport itemsMixin from './helpers/mixin-items'\nimport captionMixin from './helpers/mixin-caption'\nimport colgroupMixin from './helpers/mixin-colgroup'\nimport theadMixin from './helpers/mixin-thead'\nimport tfootMixin from './helpers/mixin-tfoot'\nimport tbodyMixin from './helpers/mixin-tbody'\n\n// Main table renderer mixin\nimport tableRendererMixin from './helpers/mixin-table-renderer'\n\n// b-table-lite component definition\n// @vue/component\nexport const BTableLite = /*#__PURE__*/ Vue.extend({\n  name: 'BTableLite',\n  // Order of mixins is important!\n  // They are merged from first to last, followed by this component.\n  mixins: [\n    // Required mixins\n    idMixin,\n    normalizeSlotMixin,\n    itemsMixin,\n    tableRendererMixin,\n    theadMixin,\n    tfootMixin,\n    tbodyMixin,\n    // Features Mixins\n    // These are pretty lightweight, and are useful for plain tables\n    captionMixin,\n    colgroupMixin\n  ]\n  // render function provided by table-renderer mixin\n})\n\nexport default BTableLite\n","import { BTable } from './table'\nimport { BTableLite } from './table-lite'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst TablePlugin = /*#__PURE__*/ pluginFactory({\n  components: { BTable, BTableLite }\n})\n\nexport { TablePlugin, BTable, BTableLite }\n\nexport default TablePlugin\n","import Vue from '../../utils/vue'\nimport KeyCodes from '../../utils/key-codes'\nimport looseEqual from '../../utils/loose-equal'\nimport observeDom from '../../utils/observe-dom'\nimport stableSort from '../../utils/stable-sort'\nimport { arrayIncludes, concat } from '../../utils/array'\nimport { requestAF, selectAll } from '../../utils/dom'\nimport { isEvent } from '../../utils/inspect'\nimport { omit } from '../../utils/object'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BLink } from '../link/link'\nimport { BNav, props as BNavProps } from '../nav/nav'\n\n// -- Constants --\n\nconst navProps = omit(BNavProps, ['tabs', 'isNavBar'])\n\n// -- Utils --\n\n// Filter function to filter out disabled tabs\nconst notDisabled = tab => !tab.disabled\n\n// --- Helper components ---\n\n// @vue/component\nconst BTabButtonHelper = /*#__PURE__*/ Vue.extend({\n  name: 'BTabButtonHelper',\n  inject: {\n    bvTabs: {\n      default() /* istanbul ignore next */ {\n        return {}\n      }\n    }\n  },\n  props: {\n    // Reference to the child <b-tab> instance\n    tab: { default: null },\n    tabs: {\n      type: Array,\n      default() /* istanbul ignore next */ {\n        return []\n      }\n    },\n    id: { type: String, default: null },\n    controls: { type: String, default: null },\n    tabIndex: { type: Number, default: null },\n    posInSet: { type: Number, default: null },\n    setSize: { type: Number, default: null },\n    noKeyNav: { type: Boolean, default: false }\n  },\n  methods: {\n    focus() {\n      if (this.$refs && this.$refs.link && this.$refs.link.focus) {\n        this.$refs.link.focus()\n      }\n    },\n    handleEvt(evt) {\n      const stop = () => {\n        evt.preventDefault()\n        evt.stopPropagation()\n      }\n      if (this.tab.disabled) {\n        /* istanbul ignore next */\n        return\n      }\n      const type = evt.type\n      const key = evt.keyCode\n      const shift = evt.shiftKey\n      if (type === 'click') {\n        stop()\n        this.$emit('click', evt)\n      } else if (type === 'keydown' && !this.noKeyNav && key === KeyCodes.SPACE) {\n        // In keynav mode, SPACE press will also trigger a click/select\n        stop()\n        this.$emit('click', evt)\n      } else if (type === 'keydown' && !this.noKeyNav) {\n        // For keyboard navigation\n        if (key === KeyCodes.UP || key === KeyCodes.LEFT || key === KeyCodes.HOME) {\n          stop()\n          if (shift || key === KeyCodes.HOME) {\n            this.$emit('first', evt)\n          } else {\n            this.$emit('prev', evt)\n          }\n        } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT || key === KeyCodes.END) {\n          stop()\n          if (shift || key === KeyCodes.END) {\n            this.$emit('last', evt)\n          } else {\n            this.$emit('next', evt)\n          }\n        }\n      }\n    }\n  },\n  render(h) {\n    const link = h(\n      BLink,\n      {\n        ref: 'link',\n        staticClass: 'nav-link',\n        class: [\n          {\n            active: this.tab.localActive && !this.tab.disabled,\n            disabled: this.tab.disabled\n          },\n          this.tab.titleLinkClass,\n          // Apply <b-tabs> `activeNavItemClass` styles when the tab is active\n          this.tab.localActive ? this.bvTabs.activeNavItemClass : null\n        ],\n        props: {\n          href: this.tab.href, // To be deprecated to always be '#'\n          disabled: this.tab.disabled\n        },\n        attrs: {\n          role: 'tab',\n          id: this.id,\n          // Roving tab index when keynav enabled\n          tabindex: this.tabIndex,\n          'aria-selected': this.tab.localActive && !this.tab.disabled ? 'true' : 'false',\n          'aria-setsize': this.setSize,\n          'aria-posinset': this.posInSet,\n          'aria-controls': this.controls\n        },\n        on: {\n          click: this.handleEvt,\n          keydown: this.handleEvt\n        }\n      },\n      [this.tab.normalizeSlot('title') || this.tab.title]\n    )\n    return h(\n      'li',\n      {\n        staticClass: 'nav-item',\n        class: [this.tab.titleItemClass],\n        attrs: { role: 'presentation' }\n      },\n      [link]\n    )\n  }\n})\n\n// @vue/component\nexport const BTabs = /*#__PURE__*/ Vue.extend({\n  name: 'BTabs',\n  mixins: [idMixin, normalizeSlotMixin],\n  provide() {\n    return {\n      bvTabs: this\n    }\n  },\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props: {\n    ...navProps,\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    card: {\n      type: Boolean,\n      default: false\n    },\n    bottom: {\n      type: Boolean,\n      default: false\n    },\n    end: {\n      // Synonym for 'bottom'\n      type: Boolean,\n      default: false\n    },\n    noFade: {\n      type: Boolean,\n      default: false\n    },\n    noNavStyle: {\n      type: Boolean,\n      default: false\n    },\n    noKeyNav: {\n      type: Boolean,\n      default: false\n    },\n    lazy: {\n      // This prop is sniffed by the <b-tab> child\n      type: Boolean,\n      default: false\n    },\n    contentClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    navClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    navWrapperClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    activeNavItemClass: {\n      // Only applied to the currently active <b-nav-item>\n      type: [String, Array, Object],\n      default: null\n    },\n    activeTabClass: {\n      // Only applied to the currently active <b-tab>\n      // This prop is sniffed by the <b-tab> child\n      type: [String, Array, Object],\n      default: null\n    },\n    value: {\n      // v-model\n      type: Number,\n      default: null\n    }\n  },\n  data() {\n    let tabIdx = parseInt(this.value, 10)\n    tabIdx = isNaN(tabIdx) ? -1 : tabIdx\n    return {\n      // Index of current tab\n      currentTab: tabIdx,\n      // Array of direct child <b-tab> instances, in DOM order\n      tabs: [],\n      // Array of child instances registered (for triggering reactive updates)\n      registeredTabs: [],\n      // Flag to know if we are mounted or not\n      isMounted: false\n    }\n  },\n  computed: {\n    fade() {\n      // This computed prop is sniffed by the tab child\n      return !this.noFade\n    },\n    navStyle() {\n      return this.pills ? 'pills' : 'tabs'\n    },\n    localNavClass() {\n      const classes = []\n      if (this.card) {\n        if (this.vertical) {\n          classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0')\n        } else {\n          classes.push(`card-header-${this.navStyle}`)\n        }\n      }\n      return [...classes, this.navClass]\n    }\n  },\n  watch: {\n    currentTab(val, old) {\n      let index = -1\n      // Ensure only one tab is active at most\n      this.tabs.forEach((tab, idx) => {\n        if (val === idx && !tab.disabled) {\n          tab.localActive = true\n          index = idx\n        } else {\n          tab.localActive = false\n        }\n      })\n      // Update the v-model\n      this.$emit('input', index)\n    },\n    value(val, old) {\n      if (val !== old) {\n        val = parseInt(val, 10)\n        val = isNaN(val) ? -1 : val\n        old = parseInt(old, 10) || 0\n        const tabs = this.tabs\n        if (tabs[val] && !tabs[val].disabled) {\n          this.currentTab = val\n        } else {\n          // Try next or prev tabs\n          if (val < old) {\n            this.previousTab()\n          } else {\n            this.nextTab()\n          }\n        }\n      }\n    },\n    registeredTabs(newVal, oldVal) {\n      // Each b-tab will register/unregister itself.\n      // We use this to detect when tabs are added/removed\n      // to trigger the update of the tabs.\n      this.$nextTick(() => {\n        requestAF(() => {\n          this.updateTabs()\n        })\n      })\n    },\n    tabs(newVal, oldVal) {\n      // If tabs added, removed, or re-ordered, we emit a `changed` event.\n      // We use `tab._uid` instead of `tab.safeId()`, as the later is changed\n      // in a nextTick if no explicit ID is provided, causing duplicate emits.\n      if (!looseEqual(newVal.map(t => t._uid), oldVal.map(t => t._uid))) {\n        // In a nextTick to ensure currentTab has been set first.\n        this.$nextTick(() => {\n          // We emit shallow copies of the new and old arrays of tabs, to\n          // prevent users from potentially mutating the internal arrays.\n          this.$emit('changed', newVal.slice(), oldVal.slice())\n        })\n      }\n    },\n    isMounted(newVal, oldVal) {\n      // Trigger an update after mounted.  Needed for tabs inside lazy modals.\n      if (newVal) {\n        requestAF(() => {\n          this.updateTabs()\n        })\n      }\n      // Enable or disable the observer\n      this.setObserver(newVal)\n    }\n  },\n  created() {\n    const tabIdx = parseInt(this.value, 10)\n    this.currentTab = isNaN(tabIdx) ? -1 : tabIdx\n    this._bvObserver = null\n    // For SSR and to make sure only a single tab is shown on mount\n    // We wrap this in a `$nextTick()` to ensure the child tabs have been created\n    this.$nextTick(() => {\n      this.updateTabs()\n    })\n  },\n  mounted() {\n    // Call `updateTabs()` just in case...\n    this.updateTabs()\n    this.$nextTick(() => {\n      // Flag we are now mounted and to switch to DOM for tab probing.\n      // As this.$slots.default appears to lie about component instances\n      // after b-tabs is destroyed and re-instantiated.\n      // And this.$children does not respect DOM order.\n      this.isMounted = true\n    })\n  },\n  deactivated() /* istanbul ignore next */ {\n    this.isMounted = false\n  },\n  activated() /* istanbul ignore next */ {\n    const tabIdx = parseInt(this.value, 10)\n    this.currentTab = isNaN(tabIdx) ? -1 : tabIdx\n    this.$nextTick(() => {\n      this.updateTabs()\n      this.isMounted = true\n    })\n  },\n  beforeDestroy() {\n    this.isMounted = false\n  },\n  destroyed() {\n    // Ensure no references to child instances exist\n    this.tabs = []\n  },\n  methods: {\n    registerTab(tab) {\n      if (!arrayIncludes(this.registeredTabs, tab)) {\n        this.registeredTabs.push(tab)\n        tab.$once('hook:destroyed', () => {\n          this.unregisterTab(tab)\n        })\n      }\n    },\n    unregisterTab(tab) {\n      this.registeredTabs = this.registeredTabs.slice().filter(t => t !== tab)\n    },\n    setObserver(on) {\n      // DOM observer is needed to detect changes in order of tabs\n      if (on) {\n        // Make sure no existing observer running\n        this.setObserver(false)\n        const self = this\n        /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n        const handler = () => {\n          // We delay the update to ensure that `tab.safeId()` has\n          // updated with the final ID value.\n          self.$nextTick(() => {\n            requestAF(() => {\n              self.updateTabs()\n            })\n          })\n        }\n        // Watch for changes to <b-tab> sub components\n        this._bvObserver = observeDom(this.$refs.tabsContainer, handler, {\n          childList: true,\n          subtree: false,\n          attributes: true,\n          attributeFilter: ['id']\n        })\n      } else {\n        if (this._bvObserver && this._bvObserver.disconnect) {\n          this._bvObserver.disconnect()\n        }\n        this._bvObserver = null\n      }\n    },\n    getTabs() {\n      // We use registeredTabs as the source of truth for child tab components. And we\n      // filter out any BTab components that are extended BTab with a root child BTab.\n      // https://github.com/bootstrap-vue/bootstrap-vue/issues/3260\n      const tabs = this.registeredTabs.filter(\n        tab => tab.$children.filter(t => t._isTab).length === 0\n      )\n      // DOM Order of Tabs\n      let order = []\n      if (this.isMounted && tabs.length > 0) {\n        // We rely on the DOM when mounted to get the 'true' order of the b-tab children.\n        // querySelectorAll(...) always returns elements in document order, regardless of\n        // order specified in the selector.\n        const selector = tabs.map(tab => `#${tab.safeId()}`).join(', ')\n        order = selectAll(selector, this.$el)\n          .map(el => el.id)\n          .filter(Boolean)\n      }\n      // Stable sort keeps the original order if not found in the\n      // `order` array, which will be an empty array before mount.\n      return stableSort(tabs, (a, b) => {\n        return order.indexOf(a.safeId()) - order.indexOf(b.safeId())\n      })\n    },\n    // Update list of <b-tab> children\n    updateTabs() {\n      // Probe tabs\n      const tabs = this.getTabs()\n\n      // Find *last* active non-disabled tab in current tabs\n      // We trust tab state over currentTab, in case tabs were added/removed/re-ordered\n      let tabIndex = tabs.indexOf(\n        tabs\n          .slice()\n          .reverse()\n          .find(tab => tab.localActive && !tab.disabled)\n      )\n\n      // Else try setting to currentTab\n      if (tabIndex < 0) {\n        const currentTab = this.currentTab\n        if (currentTab >= tabs.length) {\n          // Handle last tab being removed, so find the last non-disabled tab\n          tabIndex = tabs.indexOf(\n            tabs\n              .slice()\n              .reverse()\n              .find(notDisabled)\n          )\n        } else if (tabs[currentTab] && !tabs[currentTab].disabled) {\n          // Current tab is not disabled\n          tabIndex = currentTab\n        }\n      }\n\n      // Else find *first* non-disabled tab in current tabs\n      if (tabIndex < 0) {\n        tabIndex = tabs.indexOf(tabs.find(notDisabled))\n      }\n\n      // Set the current tab state to active\n      tabs.forEach((tab, idx) => {\n        // tab.localActive = idx === tabIndex && !tab.disabled\n        tab.localActive = false\n      })\n      if (tabs[tabIndex]) {\n        tabs[tabIndex].localActive = true\n      }\n\n      // Update the array of tab children\n      this.tabs = tabs\n      // Set the currentTab index (can be -1 if no non-disabled tabs)\n      this.currentTab = tabIndex\n    },\n    // Find a button that controls a tab, given the tab reference\n    // Returns the button vm instance\n    getButtonForTab(tab) {\n      return (this.$refs.buttons || []).find(btn => btn.tab === tab)\n    },\n    // Force a button to re-render it's content, given a <b-tab> instance\n    // Called by <b-tab> on `update()`\n    updateButton(tab) {\n      const button = this.getButtonForTab(tab)\n      if (button && button.$forceUpdate) {\n        button.$forceUpdate()\n      }\n    },\n    // Activate a tab given a <b-tab> instance\n    // Also accessed by <b-tab>\n    activateTab(tab) {\n      let result = false\n      if (tab) {\n        const index = this.tabs.indexOf(tab)\n        if (!tab.disabled && index > -1) {\n          result = true\n          this.currentTab = index\n        }\n      }\n      if (!result) {\n        // Couldn't set tab, so ensure v-model is set to `this.currentTab`\n        /* istanbul ignore next: should rarely happen */\n        this.$emit('input', this.currentTab)\n      }\n      return result\n    },\n    // Deactivate a tab given a <b-tab> instance\n    // Accessed by <b-tab>\n    deactivateTab(tab) {\n      if (tab) {\n        // Find first non-disabled tab that isn't the one being deactivated\n        // If no tabs are available, then don't deactivate current tab\n        return this.activateTab(this.tabs.filter(t => t !== tab).find(notDisabled))\n      } else {\n        // No tab specified\n        /* istanbul ignore next: should never happen */\n        return false\n      }\n    },\n    // Focus a tab button given it's <b-tab> instance\n    focusButton(tab) {\n      // Wrap in `$nextTick()` to ensure DOM has completed rendering/updating before focusing\n      this.$nextTick(() => {\n        const button = this.getButtonForTab(tab)\n        if (button && button.focus) {\n          button.focus()\n        }\n      })\n    },\n    // Emit a click event on a specified <b-tab> component instance\n    emitTabClick(tab, evt) {\n      if (isEvent(evt) && tab && tab.$emit && !tab.disabled) {\n        tab.$emit('click', evt)\n      }\n    },\n    // Click handler\n    clickTab(tab, evt) {\n      this.activateTab(tab)\n      this.emitTabClick(tab, evt)\n    },\n    // Move to first non-disabled tab\n    firstTab(focus) {\n      const tab = this.tabs.find(notDisabled)\n      if (this.activateTab(tab) && focus) {\n        this.focusButton(tab)\n        this.emitTabClick(tab, focus)\n      }\n    },\n    // Move to previous non-disabled tab\n    previousTab(focus) {\n      const currentIndex = Math.max(this.currentTab, 0)\n      const tab = this.tabs\n        .slice(0, currentIndex)\n        .reverse()\n        .find(notDisabled)\n      if (this.activateTab(tab) && focus) {\n        this.focusButton(tab)\n        this.emitTabClick(tab, focus)\n      }\n    },\n    // Move to next non-disabled tab\n    nextTab(focus) {\n      const currentIndex = Math.max(this.currentTab, -1)\n      const tab = this.tabs.slice(currentIndex + 1).find(notDisabled)\n      if (this.activateTab(tab) && focus) {\n        this.focusButton(tab)\n        this.emitTabClick(tab, focus)\n      }\n    },\n    // Move to last non-disabled tab\n    lastTab(focus) {\n      const tab = this.tabs\n        .slice()\n        .reverse()\n        .find(notDisabled)\n      if (this.activateTab(tab) && focus) {\n        this.focusButton(tab)\n        this.emitTabClick(tab, focus)\n      }\n    }\n  },\n  render(h) {\n    const tabs = this.tabs\n\n    // Currently active tab\n    const activeTab = tabs.find(tab => tab.localActive && !tab.disabled)\n\n    // Tab button to allow focusing when no active tab found (keynav only)\n    const fallbackTab = tabs.find(tab => !tab.disabled)\n\n    // For each <b-tab> found create the tab buttons\n    const buttons = tabs.map((tab, index) => {\n      let tabIndex = null\n      // Ensure at least one tab button is focusable when keynav enabled (if possible)\n      if (!this.noKeyNav) {\n        // Buttons are not in tab index unless active, or a fallback tab\n        tabIndex = -1\n        if (activeTab === tab || (!activeTab && fallbackTab === tab)) {\n          // Place tab button in tab sequence\n          tabIndex = null\n        }\n      }\n      return h(BTabButtonHelper, {\n        key: tab._uid || index,\n        ref: 'buttons',\n        // Needed to make `this.$refs.buttons` an array\n        refInFor: true,\n        props: {\n          tab: tab,\n          tabs: tabs,\n          id:\n            tab.controlledBy ||\n            (this.tab && this.tab.safeId ? this.tab.safeId(`_BV_tab_button_`) : null),\n          controls: this.tab && this.tab.safeId ? this.tab.safeId() : null,\n          tabIndex,\n          setSize: tabs.length,\n          posInSet: index + 1,\n          noKeyNav: this.noKeyNav\n        },\n        on: {\n          click: evt => {\n            this.clickTab(tab, evt)\n          },\n          first: this.firstTab,\n          prev: this.previousTab,\n          next: this.nextTab,\n          last: this.lastTab\n        }\n      })\n    })\n\n    // Nav\n    let nav = h(\n      BNav,\n      {\n        ref: 'nav',\n        class: this.localNavClass,\n        attrs: {\n          role: 'tablist',\n          id: this.safeId('_BV_tab_controls_')\n        },\n        props: {\n          fill: this.fill,\n          justified: this.justified,\n          align: this.align,\n          tabs: !this.noNavStyle && !this.pills,\n          pills: !this.noNavStyle && this.pills,\n          vertical: this.vertical,\n          small: this.small\n        }\n      },\n      [\n        this.normalizeSlot('tabs-start') || h(false),\n        buttons,\n        this.normalizeSlot('tabs-end') || this.normalizeSlot('tabs') || h(false)\n      ]\n    )\n    nav = h(\n      'div',\n      {\n        key: 'bv-tabs-nav',\n        class: [\n          {\n            'card-header': this.card && !this.vertical && !(this.end || this.bottom),\n            'card-footer': this.card && !this.vertical && (this.end || this.bottom),\n            'col-auto': this.vertical\n          },\n          this.navWrapperClass\n        ]\n      },\n      [nav]\n    )\n\n    let empty = h()\n    if (!tabs || tabs.length === 0) {\n      empty = h(\n        'div',\n        { key: 'bv-empty-tab', class: ['tab-pane', 'active', { 'card-body': this.card }] },\n        this.normalizeSlot('empty')\n      )\n    }\n\n    // Main content section\n    const content = h(\n      'div',\n      {\n        ref: 'tabsContainer',\n        key: 'bv-tabs-container',\n        staticClass: 'tab-content',\n        class: [{ col: this.vertical }, this.contentClass],\n        attrs: { id: this.safeId('_BV_tab_container_') }\n      },\n      concat(this.normalizeSlot('default'), empty)\n    )\n\n    // Render final output\n    return h(\n      this.tag,\n      {\n        staticClass: 'tabs',\n        class: {\n          row: this.vertical,\n          'no-gutters': this.vertical && this.card\n        },\n        attrs: { id: this.safeId() }\n      },\n      [this.end || this.bottom ? content : h(), [nav], this.end || this.bottom ? h() : content]\n    )\n  }\n})\n\nexport default BTabs\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport BVTransition from '../../utils/bv-transition'\nimport warn from '../../utils/warn'\n\nconst DEPRECATED_MSG = 'Setting prop \"href\" is deprecated. Use the <b-nav> component instead.'\n\n// @vue/component\nexport const BTab = /*#__PURE__*/ Vue.extend({\n  name: 'BTab',\n  mixins: [idMixin, normalizeSlotMixin],\n  inject: {\n    bvTabs: {\n      default() {\n        return {\n          // Don't set a tab index if not rendered inside <b-tabs>\n          noKeyNav: true\n        }\n      }\n    }\n  },\n  props: {\n    active: {\n      type: Boolean,\n      default: false\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    buttonId: {\n      type: String,\n      default: ''\n    },\n    title: {\n      type: String,\n      default: ''\n    },\n    titleItemClass: {\n      // Sniffed by tabs.js and added to nav 'li.nav-item'\n      type: [String, Array, Object],\n      default: null\n    },\n    titleLinkClass: {\n      // Sniffed by tabs.js and added to nav 'a.nav-link'\n      type: [String, Array, Object],\n      default: null\n    },\n    headHtml: {\n      // Is this actually ever used?\n      type: String,\n      default: null\n    },\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    noBody: {\n      type: Boolean,\n      default: false\n    },\n    href: {\n      // This should be deprecated, as tabs are not navigation (URL) based\n      // <b-nav> + <b-card> + <router-view>/<nuxt-child> should be used instead\n      // We don't support router-links here\n      type: String,\n      default: '#',\n      // `deprecated` -> Don't use this prop\n      // `deprecation` -> Refers to a change in prop usage\n      deprecated: DEPRECATED_MSG\n    },\n    lazy: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      localActive: this.active && !this.disabled,\n      show: false\n    }\n  },\n  computed: {\n    tabClasses() {\n      return [\n        {\n          active: this.localActive,\n          disabled: this.disabled,\n          'card-body': this.bvTabs.card && !this.noBody\n        },\n        // Apply <b-tabs> `activeTabClass` styles when this tab is active\n        this.localActive ? this.bvTabs.activeTabClass : null\n      ]\n    },\n    controlledBy() {\n      return this.buttonId || this.safeId('__BV_tab_button__')\n    },\n    computedNoFade() {\n      return !(this.bvTabs.fade || false)\n    },\n    computedLazy() {\n      return this.bvTabs.lazy || this.lazy\n    },\n    _isTab() {\n      // For parent sniffing of child\n      return true\n    }\n  },\n  watch: {\n    localActive(newVal, oldVal) {\n      // Make 'active' prop work with `.sync` modifier\n      this.$emit('update:active', newVal)\n    },\n    active(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        if (newVal) {\n          // If activated post mount\n          this.activate()\n        } else {\n          if (!this.deactivate()) {\n            // Tab couldn't be deactivated, so we reset the synced active prop\n            // Deactivation will fail if no other tabs to activate\n            this.$emit('update:active', this.localActive)\n          }\n        }\n      }\n    },\n    disabled(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        if (newVal && this.localActive && this.bvTabs.firstTab) {\n          this.localActive = false\n          this.bvTabs.firstTab()\n        }\n      }\n    }\n  },\n  mounted() {\n    // Inform b-tabs of our presence\n    this.registerTab()\n    // Initially show on mount if active and not disabled\n    this.show = this.localActive\n    // Deprecate use of `href` prop\n    if (this.href && this.href !== '#') {\n      /* istanbul ignore next */\n      warn(`b-tab: ${DEPRECATED_MSG}`)\n    }\n  },\n  updated() {\n    // Force the tab button content to update (since slots are not reactive)\n    // Only done if we have a title slot, as the title prop is reactive\n    if (this.hasNormalizedSlot('title') && this.bvTabs.updateButton) {\n      this.bvTabs.updateButton(this)\n    }\n  },\n  destroyed() {\n    // inform b-tabs of our departure\n    this.unregisterTab()\n  },\n  methods: {\n    // Private methods\n    registerTab() {\n      // Inform `b-tabs` of our presence\n      this.bvTabs.registerTab && this.bvTabs.registerTab(this)\n    },\n    unregisterTab() {\n      // Inform `b-tabs` of our departure\n      this.bvTabs.unregisterTab && this.bvTabs.unregisterTab(this)\n    },\n    // Public methods\n    activate() {\n      if (this.bvTabs.activateTab && !this.disabled) {\n        return this.bvTabs.activateTab(this)\n      } else {\n        // Not inside a <b-tabs> component or tab is disabled\n        return false\n      }\n    },\n    deactivate() {\n      if (this.bvTabs.deactivateTab && this.localActive) {\n        return this.bvTabs.deactivateTab(this)\n      } else {\n        // Not inside a <b-tabs> component or not active to begin with\n        return false\n      }\n    }\n  },\n  render(h) {\n    const content = h(\n      this.tag,\n      {\n        ref: 'panel',\n        staticClass: 'tab-pane',\n        class: this.tabClasses,\n        directives: [\n          {\n            name: 'show',\n            rawName: 'v-show',\n            value: this.localActive,\n            expression: 'localActive'\n          }\n        ],\n        attrs: {\n          role: 'tabpanel',\n          id: this.safeId(),\n          tabindex: this.localActive && !this.bvTabs.noKeyNav ? '-1' : null,\n          'aria-hidden': this.localActive ? 'false' : 'true',\n          'aria-labelledby': this.controlledBy || null\n        }\n      },\n      // Render content lazily if requested\n      [this.localActive || !this.computedLazy ? this.normalizeSlot('default') : h()]\n    )\n    return h(BVTransition, { props: { mode: 'out-in', noFade: this.computedNoFade } }, [content])\n  }\n})\n\nexport default BTab\n","import { BTabs } from './tabs'\nimport { BTab } from './tab'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst TabsPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BTabs,\n    BTab\n  }\n})\n\nexport { TabsPlugin, BTabs, BTab }\n\nexport default TabsPlugin\n","\n /*! \n  * portal-vue © Thorsten Lünborg, 2019 \n  * \n  * Version: 2.1.5\n  * \n  * LICENCE: MIT \n  * \n  * https://github.com/linusborg/portal-vue\n  * \n */\n\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n}\n\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar inBrowser = typeof window !== 'undefined';\nfunction freeze(item) {\n  if (Array.isArray(item) || _typeof(item) === 'object') {\n    return Object.freeze(item);\n  }\n\n  return item;\n}\nfunction combinePassengers(transports) {\n  var slotProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return transports.reduce(function (passengers, transport) {\n    var temp = transport.passengers[0];\n    var newPassengers = typeof temp === 'function' ? temp(slotProps) : transport.passengers;\n    return passengers.concat(newPassengers);\n  }, []);\n}\nfunction stableSort(array, compareFn) {\n  return array.map(function (v, idx) {\n    return [idx, v];\n  }).sort(function (a, b) {\n    return compareFn(a[1], b[1]) || a[0] - b[0];\n  }).map(function (c) {\n    return c[1];\n  });\n}\nfunction pick(obj, keys) {\n  return keys.reduce(function (acc, key) {\n    if (obj.hasOwnProperty(key)) {\n      acc[key] = obj[key];\n    }\n\n    return acc;\n  }, {});\n}\n\nvar transports = {};\nvar targets = {};\nvar sources = {};\nvar Wormhole = Vue.extend({\n  data: function data() {\n    return {\n      transports: transports,\n      targets: targets,\n      sources: sources,\n      trackInstances: inBrowser\n    };\n  },\n  methods: {\n    open: function open(transport) {\n      if (!inBrowser) return;\n      var to = transport.to,\n          from = transport.from,\n          passengers = transport.passengers,\n          _transport$order = transport.order,\n          order = _transport$order === void 0 ? Infinity : _transport$order;\n      if (!to || !from || !passengers) return;\n      var newTransport = {\n        to: to,\n        from: from,\n        passengers: freeze(passengers),\n        order: order\n      };\n      var keys = Object.keys(this.transports);\n\n      if (keys.indexOf(to) === -1) {\n        Vue.set(this.transports, to, []);\n      }\n\n      var currentIndex = this.$_getTransportIndex(newTransport); // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n\n      var newTransports = this.transports[to].slice(0);\n\n      if (currentIndex === -1) {\n        newTransports.push(newTransport);\n      } else {\n        newTransports[currentIndex] = newTransport;\n      }\n\n      this.transports[to] = stableSort(newTransports, function (a, b) {\n        return a.order - b.order;\n      });\n    },\n    close: function close(transport) {\n      var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var to = transport.to,\n          from = transport.from;\n      if (!to || !from) return;\n\n      if (!this.transports[to]) {\n        return;\n      }\n\n      if (force) {\n        this.transports[to] = [];\n      } else {\n        var index = this.$_getTransportIndex(transport);\n\n        if (index >= 0) {\n          // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n          var newTransports = this.transports[to].slice(0);\n          newTransports.splice(index, 1);\n          this.transports[to] = newTransports;\n        }\n      }\n    },\n    registerTarget: function registerTarget(target, vm, force) {\n      if (!inBrowser) return;\n\n      if (this.trackInstances && !force && this.targets[target]) {\n        console.warn(\"[portal-vue]: Target \".concat(target, \" already exists\"));\n      }\n\n      this.$set(this.targets, target, Object.freeze([vm]));\n    },\n    unregisterTarget: function unregisterTarget(target) {\n      this.$delete(this.targets, target);\n    },\n    registerSource: function registerSource(source, vm, force) {\n      if (!inBrowser) return;\n\n      if (this.trackInstances && !force && this.sources[source]) {\n        console.warn(\"[portal-vue]: source \".concat(source, \" already exists\"));\n      }\n\n      this.$set(this.sources, source, Object.freeze([vm]));\n    },\n    unregisterSource: function unregisterSource(source) {\n      this.$delete(this.sources, source);\n    },\n    hasTarget: function hasTarget(to) {\n      return !!(this.targets[to] && this.targets[to][0]);\n    },\n    hasSource: function hasSource(to) {\n      return !!(this.sources[to] && this.sources[to][0]);\n    },\n    hasContentFor: function hasContentFor(to) {\n      return !!this.transports[to] && !!this.transports[to].length;\n    },\n    // Internal\n    $_getTransportIndex: function $_getTransportIndex(_ref) {\n      var to = _ref.to,\n          from = _ref.from;\n\n      for (var i in this.transports[to]) {\n        if (this.transports[to][i].from === from) {\n          return +i;\n        }\n      }\n\n      return -1;\n    }\n  }\n});\nvar wormhole = new Wormhole(transports);\n\nvar _id = 1;\nvar Portal = Vue.extend({\n  name: 'portal',\n  props: {\n    disabled: {\n      type: Boolean\n    },\n    name: {\n      type: String,\n      default: function _default() {\n        return String(_id++);\n      }\n    },\n    order: {\n      type: Number,\n      default: 0\n    },\n    slim: {\n      type: Boolean\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'DIV'\n    },\n    to: {\n      type: String,\n      default: function _default() {\n        return String(Math.round(Math.random() * 10000000));\n      }\n    }\n  },\n  created: function created() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      wormhole.registerSource(_this.name, _this);\n    });\n  },\n  mounted: function mounted() {\n    if (!this.disabled) {\n      this.sendUpdate();\n    }\n  },\n  updated: function updated() {\n    if (this.disabled) {\n      this.clear();\n    } else {\n      this.sendUpdate();\n    }\n  },\n  beforeDestroy: function beforeDestroy() {\n    wormhole.unregisterSource(this.name);\n    this.clear();\n  },\n  watch: {\n    to: function to(newValue, oldValue) {\n      oldValue && oldValue !== newValue && this.clear(oldValue);\n      this.sendUpdate();\n    }\n  },\n  methods: {\n    clear: function clear(target) {\n      var closer = {\n        from: this.name,\n        to: target || this.to\n      };\n      wormhole.close(closer);\n    },\n    normalizeSlots: function normalizeSlots() {\n      return this.$scopedSlots.default ? [this.$scopedSlots.default] : this.$slots.default;\n    },\n    normalizeOwnChildren: function normalizeOwnChildren(children) {\n      return typeof children === 'function' ? children(this.slotProps) : children;\n    },\n    sendUpdate: function sendUpdate() {\n      var slotContent = this.normalizeSlots();\n\n      if (slotContent) {\n        var transport = {\n          from: this.name,\n          to: this.to,\n          passengers: _toConsumableArray(slotContent),\n          order: this.order\n        };\n        wormhole.open(transport);\n      } else {\n        this.clear();\n      }\n    }\n  },\n  render: function render(h) {\n    var children = this.$slots.default || this.$scopedSlots.default || [];\n    var Tag = this.tag;\n\n    if (children && this.disabled) {\n      return children.length <= 1 && this.slim ? this.normalizeOwnChildren(children)[0] : h(Tag, [this.normalizeOwnChildren(children)]);\n    } else {\n      return this.slim ? h() : h(Tag, {\n        class: {\n          'v-portal': true\n        },\n        style: {\n          display: 'none'\n        },\n        key: 'v-portal-placeholder'\n      });\n    }\n  }\n});\n\nvar PortalTarget = Vue.extend({\n  name: 'portalTarget',\n  props: {\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    name: {\n      type: String,\n      required: true\n    },\n    slim: {\n      type: Boolean,\n      default: false\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    transition: {\n      type: [String, Object, Function]\n    }\n  },\n  data: function data() {\n    return {\n      transports: wormhole.transports,\n      firstRender: true\n    };\n  },\n  created: function created() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      wormhole.registerTarget(_this.name, _this);\n    });\n  },\n  watch: {\n    ownTransports: function ownTransports() {\n      this.$emit('change', this.children().length > 0);\n    },\n    name: function name(newVal, oldVal) {\n      /**\r\n       * TODO\r\n       * This should warn as well ...\r\n       */\n      wormhole.unregisterTarget(oldVal);\n      wormhole.registerTarget(newVal, this);\n    }\n  },\n  mounted: function mounted() {\n    var _this2 = this;\n\n    if (this.transition) {\n      this.$nextTick(function () {\n        // only when we have a transition, because it causes a re-render\n        _this2.firstRender = false;\n      });\n    }\n  },\n  beforeDestroy: function beforeDestroy() {\n    wormhole.unregisterTarget(this.name);\n  },\n  computed: {\n    ownTransports: function ownTransports() {\n      var transports = this.transports[this.name] || [];\n\n      if (this.multiple) {\n        return transports;\n      }\n\n      return transports.length === 0 ? [] : [transports[transports.length - 1]];\n    },\n    passengers: function passengers() {\n      return combinePassengers(this.ownTransports, this.slotProps);\n    }\n  },\n  methods: {\n    // can't be a computed prop because it has to \"react\" to $slot changes.\n    children: function children() {\n      return this.passengers.length !== 0 ? this.passengers : this.$scopedSlots.default ? this.$scopedSlots.default(this.slotProps) : this.$slots.default || [];\n    },\n    // can't be a computed prop because it has to \"react\" to this.children().\n    noWrapper: function noWrapper() {\n      var noWrapper = this.slim && !this.transition;\n\n      if (noWrapper && this.children().length > 1) {\n        console.warn('[portal-vue]: PortalTarget with `slim` option received more than one child element.');\n      }\n\n      return noWrapper;\n    }\n  },\n  render: function render(h) {\n    var noWrapper = this.noWrapper();\n    var children = this.children();\n    var Tag = this.transition || this.tag;\n    return noWrapper ? children[0] : this.slim && !Tag ? h() : h(Tag, {\n      props: {\n        // if we have a transition component, pass the tag if it exists\n        tag: this.transition && this.tag ? this.tag : undefined\n      },\n      class: {\n        'vue-portal-target': true\n      }\n    }, children);\n  }\n});\n\nvar _id$1 = 0;\nvar portalProps = ['disabled', 'name', 'order', 'slim', 'slotProps', 'tag', 'to'];\nvar targetProps = ['multiple', 'transition'];\nvar MountingPortal = Vue.extend({\n  name: 'MountingPortal',\n  inheritAttrs: false,\n  props: {\n    append: {\n      type: [Boolean, String]\n    },\n    bail: {\n      type: Boolean\n    },\n    mountTo: {\n      type: String,\n      required: true\n    },\n    // Portal\n    disabled: {\n      type: Boolean\n    },\n    // name for the portal\n    name: {\n      type: String,\n      default: function _default() {\n        return 'mounted_' + String(_id$1++);\n      }\n    },\n    order: {\n      type: Number,\n      default: 0\n    },\n    slim: {\n      type: Boolean\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'DIV'\n    },\n    // name for the target\n    to: {\n      type: String,\n      default: function _default() {\n        return String(Math.round(Math.random() * 10000000));\n      }\n    },\n    // Target\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    targetSlim: {\n      type: Boolean\n    },\n    targetSlotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    targetTag: {\n      type: String,\n      default: 'div'\n    },\n    transition: {\n      type: [String, Object, Function]\n    }\n  },\n  created: function created() {\n    if (typeof document === 'undefined') return;\n    var el = document.querySelector(this.mountTo);\n\n    if (!el) {\n      console.error(\"[portal-vue]: Mount Point '\".concat(this.mountTo, \"' not found in document\"));\n      return;\n    }\n\n    var props = this.$props; // Target already exists\n\n    if (wormhole.targets[props.name]) {\n      if (props.bail) {\n        console.warn(\"[portal-vue]: Target \".concat(props.name, \" is already mounted.\\n        Aborting because 'bail: true' is set\"));\n      } else {\n        this.portalTarget = wormhole.targets[props.name];\n      }\n\n      return;\n    }\n\n    var append = props.append;\n\n    if (append) {\n      var type = typeof append === 'string' ? append : 'DIV';\n      var mountEl = document.createElement(type);\n      el.appendChild(mountEl);\n      el = mountEl;\n    } // get props for target from $props\n    // we have to rename a few of them\n\n\n    var _props = pick(this.$props, targetProps);\n\n    _props.slim = this.targetSlim;\n    _props.tag = this.targetTag;\n    _props.slotProps = this.targetSlotProps;\n    _props.name = this.to;\n    this.portalTarget = new PortalTarget({\n      el: el,\n      parent: this.$parent || this,\n      propsData: _props\n    });\n  },\n  beforeDestroy: function beforeDestroy() {\n    var target = this.portalTarget;\n\n    if (this.append) {\n      var el = target.$el;\n      el.parentNode.removeChild(el);\n    }\n\n    target.$destroy();\n  },\n  render: function render(h) {\n    if (!this.portalTarget) {\n      console.warn(\"[portal-vue] Target wasn't mounted\");\n      return h();\n    } // if there's no \"manual\" scoped slot, so we create a <Portal> ourselves\n\n\n    if (!this.$scopedSlots.manual) {\n      var props = pick(this.$props, portalProps);\n      return h(Portal, {\n        props: props,\n        attrs: this.$attrs,\n        on: this.$listeners,\n        scopedSlots: this.$scopedSlots\n      }, this.$slots.default);\n    } // else, we render the scoped slot\n\n\n    var content = this.$scopedSlots.manual({\n      to: this.to\n    }); // if user used <template> for the scoped slot\n    // content will be an array\n\n    if (Array.isArray(content)) {\n      content = content[0];\n    }\n\n    if (!content) return h();\n    return content;\n  }\n});\n\nfunction install(Vue$$1) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  Vue$$1.component(options.portalName || 'Portal', Portal);\n  Vue$$1.component(options.portalTargetName || 'PortalTarget', PortalTarget);\n  Vue$$1.component(options.MountingPortalName || 'MountingPortal', MountingPortal);\n}\n\nvar index = {\n  install: install\n};\n\nexport default index;\nexport { Portal, PortalTarget, MountingPortal, wormhole as Wormhole };\n//# sourceMappingURL=portal-vue.esm.js.map\n","import Vue from '../../utils/vue'\nimport { PortalTarget, Wormhole } from 'portal-vue'\nimport warn from '../../utils/warn'\nimport { getComponentConfig } from '../../utils/config'\nimport { removeClass, requestAF } from '../../utils/dom'\n\n// --- Constants ---\n\nconst NAME = 'BToaster'\n\nexport const props = {\n  name: {\n    type: String,\n    required: true\n  },\n  ariaLive: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'ariaLive')\n  },\n  ariaAtomic: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'ariaAtomic') // Allowed: 'true' or 'false' or null\n  },\n  role: {\n    // Aria role\n    type: String,\n    default: () => getComponentConfig(NAME, 'role')\n  }\n  /*\n  transition: {\n    type: [Boolean, String, Object],\n    default: false\n  }\n  */\n}\n\n// @vue/component\nexport const DefaultTransition = /*#__PURE__*/ Vue.extend({\n  data() {\n    return {\n      // Transition classes base name\n      name: 'b-toaster'\n    }\n  },\n  methods: {\n    onAfterEnter(el) {\n      // Handle bug where enter-to class is not removed.\n      // Bug is related to portal-vue and transition-groups.\n      requestAF(() => {\n        removeClass(el, `${this.name}-enter-to`)\n        // The *-move class is also stuck on elements that moved,\n        // but there are no javascript hooks to handle after move.\n      })\n    }\n  },\n  render(h) {\n    return h(\n      'transition-group',\n      {\n        props: { tag: 'div', name: this.name },\n        on: { afterEnter: this.onAfterEnter }\n      },\n      this.$slots.default\n    )\n  }\n})\n\n// @vue/component\nexport const BToaster = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  props,\n  data() {\n    return {\n      // We don't render on SSR or if a an existing target found\n      doRender: false,\n      dead: false,\n      // Toaster names cannot change once created\n      staticName: this.name\n    }\n  },\n  beforeMount() {\n    this.staticName = this.name\n    /* istanbul ignore if */\n    if (Wormhole.hasTarget(this.staticName)) {\n      warn(`b-toaster: A <portal-target> with name '${this.name}' already exists in the document.`)\n      this.dead = true\n    } else {\n      this.doRender = true\n      this.$once('hook:beforeDestroy', () => {\n        // Let toasts made with `this.$bvToast.toast()` know that this toaster\n        // is being destroyed and should should also destroy/hide themselves\n        this.$root.$emit('bv::toaster::destroyed', this.staticName)\n      })\n    }\n  },\n  destroyed() {\n    // Remove from DOM if needed\n    /* istanbul ignore next: difficult to test */\n    if (this.$el && this.$el.parentNode) {\n      this.$el.parentNode.removeChild(this.$el)\n    }\n  },\n  render(h) {\n    let $toaster = h('div', { class: ['d-none', { 'b-dead-toaster': this.dead }] })\n    if (this.doRender) {\n      const $target = h(PortalTarget, {\n        staticClass: 'b-toaster-slot',\n        props: {\n          name: this.staticName,\n          multiple: true,\n          tag: 'div',\n          slim: false,\n          // transition: this.transition || DefaultTransition\n          transition: DefaultTransition\n        }\n      })\n      $toaster = h(\n        'div',\n        {\n          staticClass: 'b-toaster',\n          class: [this.staticName],\n          attrs: {\n            id: this.staticName,\n            role: this.role || null, // Fallback to null to make sure attribute doesn't exist\n            'aria-live': this.ariaLive,\n            'aria-atomic': this.ariaAtomic\n          }\n        },\n        [$target]\n      )\n    }\n    return $toaster\n  }\n})\n\nexport default BToaster\n","import Vue from '../../utils/vue'\nimport { Portal, Wormhole } from 'portal-vue'\nimport BvEvent from '../../utils/bv-event.class'\nimport BVTransition from '../../utils/bv-transition'\nimport { getComponentConfig } from '../../utils/config'\nimport { requestAF, eventOn, eventOff } from '../../utils/dom'\nimport idMixin from '../../mixins/id'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BToaster } from './toaster'\nimport { BButtonClose } from '../button/button-close'\nimport { BLink } from '../link/link'\n\n// --- Constants ---\n\nconst NAME = 'BToast'\n\nconst MIN_DURATION = 1000\n\nconst EVENT_OPTIONS = { passive: true, capture: false }\n\n// --- Props ---\n\nexport const props = {\n  id: {\n    // Even though the ID prop is provided by idMixin, we\n    // add it here for $bvToast props filtering\n    type: String,\n    default: null\n  },\n  title: {\n    type: String,\n    default: null\n  },\n  toaster: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'toaster')\n  },\n  visible: {\n    type: Boolean,\n    default: false\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  isStatus: {\n    // Switches role to 'status' and aria-live to 'polite'\n    type: Boolean,\n    default: false\n  },\n  appendToast: {\n    type: Boolean,\n    default: false\n  },\n  noAutoHide: {\n    type: Boolean,\n    default: false\n  },\n  autoHideDelay: {\n    type: [Number, String],\n    default: () => getComponentConfig(NAME, 'autoHideDelay')\n  },\n  noCloseButton: {\n    type: Boolean,\n    default: false\n  },\n  noFade: {\n    type: Boolean,\n    default: false\n  },\n  noHoverPause: {\n    type: Boolean,\n    default: false\n  },\n  solid: {\n    type: Boolean,\n    default: false\n  },\n  toastClass: {\n    type: [String, Object, Array],\n    default: () => getComponentConfig(NAME, 'toastClass')\n  },\n  headerClass: {\n    type: [String, Object, Array],\n    default: () => getComponentConfig(NAME, 'headerClass')\n  },\n  bodyClass: {\n    type: [String, Object, Array],\n    default: () => getComponentConfig(NAME, 'bodyClass')\n  },\n  href: {\n    type: String,\n    default: null\n  },\n  to: {\n    type: [String, Object],\n    default: null\n  },\n  static: {\n    // Render the toast in place, rather than in a portal-target\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BToast = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [idMixin, listenOnRootMixin, normalizeSlotMixin],\n  inheritAttrs: false,\n  model: {\n    prop: 'visible',\n    event: 'change'\n  },\n  props,\n  data() {\n    return {\n      isMounted: false,\n      doRender: false,\n      localShow: false,\n      isTransitioning: false,\n      isHiding: false,\n      order: 0,\n      timer: null,\n      dismissStarted: 0,\n      resumeDismiss: 0\n    }\n  },\n  computed: {\n    bToastClasses() {\n      return {\n        'b-toast-solid': this.solid,\n        'b-toast-append': this.appendToast,\n        'b-toast-prepend': !this.appendToast,\n        [`b-toast-${this.variant}`]: this.variant\n      }\n    },\n    slotScope() {\n      return {\n        hide: this.hide\n      }\n    },\n    computedDuration() {\n      // Minimum supported duration is 1 second\n      return Math.max(parseInt(this.autoHideDelay, 10) || 0, MIN_DURATION)\n    },\n    computedToaster() {\n      return String(this.toaster)\n    },\n    transitionHandlers() {\n      return {\n        beforeEnter: this.onBeforeEnter,\n        afterEnter: this.onAfterEnter,\n        beforeLeave: this.onBeforeLeave,\n        afterLeave: this.onAfterLeave\n      }\n    }\n  },\n  watch: {\n    visible(newVal) {\n      newVal ? this.show() : this.hide()\n    },\n    localShow(newVal) {\n      if (newVal !== this.visible) {\n        this.$emit('change', newVal)\n      }\n    },\n    toaster(newVal) /* istanbul ignore next */ {\n      // If toaster target changed, make sure toaster exists\n      this.$nextTick(() => this.ensureToaster)\n    },\n    static(newVal) /* istanbul ignore next */ {\n      // If static changes to true, and the toast is showing,\n      // ensure the toaster target exists\n      if (newVal && this.localShow) {\n        this.ensureToaster()\n      }\n    }\n  },\n  mounted() {\n    this.isMounted = true\n    this.$nextTick(() => {\n      if (this.visible) {\n        requestAF(() => {\n          this.show()\n        })\n      }\n    })\n    // Listen for global $root show events\n    this.listenOnRoot('bv::show::toast', id => {\n      if (id === this.safeId()) {\n        this.show()\n      }\n    })\n    // Listen for global $root hide events\n    this.listenOnRoot('bv::hide::toast', id => {\n      if (!id || id === this.safeId()) {\n        this.hide()\n      }\n    })\n    // Make sure we hide when toaster is destroyed\n    /* istanbul ignore next: difficult to test */\n    this.listenOnRoot('bv::toaster::destroyed', toaster => {\n      if (toaster === this.computedToaster) {\n        this.hide()\n      }\n    })\n  },\n  beforeDestroy() {\n    this.clearDismissTimer()\n  },\n  methods: {\n    show() {\n      if (!this.localShow) {\n        this.ensureToaster()\n        const showEvt = this.buildEvent('show')\n        this.emitEvent(showEvt)\n        this.dismissStarted = this.resumeDismiss = 0\n        this.order = Date.now() * (this.appendToast ? 1 : -1)\n        this.isHiding = false\n        this.doRender = true\n        this.$nextTick(() => {\n          // We show the toast after we have rendered the portal and b-toast wrapper\n          // so that screen readers will properly announce the toast\n          requestAF(() => {\n            this.localShow = true\n          })\n        })\n      }\n    },\n    hide() {\n      if (this.localShow) {\n        const hideEvt = this.buildEvent('hide')\n        this.emitEvent(hideEvt)\n        this.setHoverHandler(false)\n        this.dismissStarted = this.resumeDismiss = 0\n        this.clearDismissTimer()\n        this.isHiding = true\n        requestAF(() => {\n          this.localShow = false\n        })\n      }\n    },\n    buildEvent(type, opts = {}) {\n      return new BvEvent(type, {\n        cancelable: false,\n        target: this.$el || null,\n        relatedTarget: null,\n        ...opts,\n        vueTarget: this,\n        componentId: this.safeId()\n      })\n    },\n    emitEvent(bvEvt) {\n      const type = bvEvt.type\n      this.$root.$emit(`bv::toast:${type}`, bvEvt)\n      this.$emit(type, bvEvt)\n    },\n    ensureToaster() {\n      if (this.static) {\n        return\n      }\n      if (!Wormhole.hasTarget(this.computedToaster)) {\n        const div = document.createElement('div')\n        document.body.appendChild(div)\n        const toaster = new BToaster({\n          parent: this.$root,\n          propsData: {\n            name: this.computedToaster\n          }\n        })\n        toaster.$mount(div)\n      }\n    },\n    startDismissTimer() {\n      this.clearDismissTimer()\n      if (!this.noAutoHide) {\n        this.timer = setTimeout(this.hide, this.resumeDismiss || this.computedDuration)\n        this.dismissStarted = Date.now()\n        this.resumeDismiss = 0\n      }\n    },\n    clearDismissTimer() {\n      clearTimeout(this.timer)\n      this.timer = null\n    },\n    setHoverHandler(on) {\n      const method = on ? eventOn : eventOff\n      const el = this.$refs['b-toast']\n      method(el, 'mouseenter', this.onPause, EVENT_OPTIONS)\n      method(el, 'mouseleave', this.onUnPause, EVENT_OPTIONS)\n    },\n    onPause(evt) {\n      // Determine time remaining, and then pause timer\n      if (this.noAutoHide || this.noHoverPause || !this.timer || this.resumeDismiss) {\n        return\n      }\n      const passed = Date.now() - this.dismissStarted\n      if (passed > 0) {\n        this.clearDismissTimer()\n        this.resumeDismiss = Math.max(this.computedDuration - passed, MIN_DURATION)\n      }\n    },\n    onUnPause(evt) {\n      // Restart timer with max of time remaining or 1 second\n      if (this.noAutoHide || this.noHoverPause || !this.resumeDismiss) {\n        this.resumeDismiss = this.dismissStarted = 0\n        return\n      }\n      this.startDismissTimer()\n    },\n    onLinkClick() {\n      // We delay the close to allow time for the\n      // browser to process the link click\n      this.$nextTick(() => {\n        requestAF(() => {\n          this.hide()\n        })\n      })\n    },\n    onBeforeEnter() {\n      this.isTransitioning = true\n    },\n    onAfterEnter() {\n      this.isTransitioning = false\n      const hiddenEvt = this.buildEvent('shown')\n      this.emitEvent(hiddenEvt)\n      this.startDismissTimer()\n      this.setHoverHandler(true)\n    },\n    onBeforeLeave() {\n      this.isTransitioning = true\n    },\n    onAfterLeave() {\n      this.isTransitioning = false\n      this.order = 0\n      this.resumeDismiss = this.dismissStarted = 0\n      const hiddenEvt = this.buildEvent('hidden')\n      this.emitEvent(hiddenEvt)\n      this.doRender = false\n    },\n    makeToast(h) {\n      // Render helper for generating the toast\n      // Assemble the header content\n      const $headerContent = []\n      const $title = this.normalizeSlot('toast-title', this.slotScope)\n      if ($title) {\n        $headerContent.push($title)\n      } else if (this.title) {\n        $headerContent.push(h('strong', { staticClass: 'mr-2' }, this.title))\n      }\n      if (!this.noCloseButton) {\n        $headerContent.push(\n          h(BButtonClose, {\n            staticClass: 'ml-auto mb-1',\n            on: {\n              click: evt => {\n                this.hide()\n              }\n            }\n          })\n        )\n      }\n      // Assemble the header (if needed)\n      let $header = h()\n      if ($headerContent.length > 0) {\n        $header = h(\n          'header',\n          { staticClass: 'toast-header', class: this.headerClass },\n          $headerContent\n        )\n      }\n      // Toast body\n      const isLink = this.href || this.to\n      const $body = h(\n        isLink ? BLink : 'div',\n        {\n          staticClass: 'toast-body',\n          class: this.bodyClass,\n          props: isLink ? { to: this.to, href: this.href } : {},\n          on: isLink ? { click: this.onLinkClick } : {}\n        },\n        [this.normalizeSlot('default', this.slotScope) || h()]\n      )\n      // Build the toast\n      const $toast = h(\n        'div',\n        {\n          key: `toast-${this._uid}`,\n          ref: 'toast',\n          staticClass: 'toast',\n          class: this.toastClass,\n          attrs: {\n            ...this.$attrs,\n            tabindex: '0',\n            id: this.safeId()\n          }\n        },\n        [$header, $body]\n      )\n      return $toast\n    }\n  },\n  render(h) {\n    if (!this.doRender || !this.isMounted) {\n      return h()\n    }\n    const name = `b-toast-${this._uid}`\n    return h(\n      Portal,\n      {\n        props: {\n          name: name,\n          to: this.computedToaster,\n          order: this.order,\n          slim: true,\n          disabled: this.static\n        }\n      },\n      [\n        h(\n          'div',\n          {\n            key: name,\n            ref: 'b-toast',\n            staticClass: 'b-toast',\n            class: this.bToastClasses,\n            attrs: {\n              id: this.safeId('_toast_outer'),\n              role: this.isHiding ? null : this.isStatus ? 'status' : 'alert',\n              'aria-live': this.isHiding ? null : this.isStatus ? 'polite' : 'assertive',\n              'aria-atomic': this.isHiding ? null : 'true'\n            }\n          },\n          [\n            h(BVTransition, { props: { noFade: this.noFade }, on: this.transitionHandlers }, [\n              this.localShow ? this.makeToast(h) : h()\n            ])\n          ]\n        )\n      ]\n    )\n  }\n})\n\nexport default BToast\n","/**\n * Plugin for adding `$bvToast` property to all Vue instances\n */\n\nimport { concat } from '../../../utils/array'\nimport { getComponentConfig } from '../../../utils/config'\nimport { requestAF } from '../../../utils/dom'\nimport { isUndefined, isString } from '../../../utils/inspect'\nimport {\n  assign,\n  defineProperties,\n  defineProperty,\n  keys,\n  omit,\n  readonlyDescriptor\n} from '../../../utils/object'\nimport { pluginFactory } from '../../../utils/plugins'\nimport { warn, warnNotClient } from '../../../utils/warn'\nimport { BToast, props as toastProps } from '../toast'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvToast'\nconst PROP_NAME_PRIV = '_bv__toast'\n\n// Base toast props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\nconst BASE_PROPS = ['id', ...keys(omit(toastProps, ['static', 'visible']))]\n\n// Map prop names to toast slot names\nconst propsToSlots = {\n  toastContent: 'default',\n  title: 'toast-title'\n}\n\n// --- Utility methods ---\n\n// Method to filter only recognized props that are not undefined\nconst filterOptions = options => {\n  return BASE_PROPS.reduce((memo, key) => {\n    if (!isUndefined(options[key])) {\n      memo[key] = options[key]\n    }\n    return memo\n  }, {})\n}\n\n// Method to install `$bvToast` VM injection\nconst plugin = Vue => {\n  // Create a private sub-component constructor that\n  // extends BToast and self-destructs after hidden\n  // @vue/component\n  const BToastPop = Vue.extend({\n    name: 'BToastPop',\n    extends: BToast,\n    destroyed() {\n      // Make sure we not in document any more\n      if (this.$el && this.$el.parentNode) {\n        this.$el.parentNode.removeChild(this.$el)\n      }\n    },\n    mounted() {\n      const self = this\n      // Self destruct handler\n      const handleDestroy = () => {\n        // Ensure the toast has been force hidden\n        self.localShow = false\n        self.doRender = false\n        self.$nextTick(() => {\n          self.$nextTick(() => {\n            // In a `requestAF()` to release control back to application\n            // and to allow the portal-target time to remove the content\n            requestAF(() => {\n              self.$destroy()\n            })\n          })\n        })\n      }\n      // Self destruct if parent destroyed\n      this.$parent.$once('hook:destroyed', handleDestroy)\n      // Self destruct after hidden\n      this.$once('hidden', handleDestroy)\n      // Self destruct when toaster is destroyed\n      this.listenOnRoot('bv::toaster::destroyed', toaster => {\n        /* istanbul ignore next: hard to test */\n        if (toaster === self.toaster) {\n          handleDestroy()\n        }\n      })\n    }\n  })\n\n  // Private method to generate the on-demand toast\n  const makeToast = (props, $parent) => {\n    if (warnNotClient(PROP_NAME)) {\n      /* istanbul ignore next */\n      return\n    }\n    // Create an instance of `BToastPop` component\n    const toast = new BToastPop({\n      // We set parent as the local VM so these toasts can emit events on the\n      // app `$root`, and it ensures `BToast` is destroyed when parent is destroyed\n      parent: $parent,\n      propsData: {\n        ...filterOptions(getComponentConfig('BToast') || {}),\n        // Add in (filtered) user supplied props\n        ...omit(props, keys(propsToSlots)),\n        // Props that can't be overridden\n        static: false,\n        visible: true\n      }\n    })\n    // Convert certain props to slots\n    keys(propsToSlots).forEach(prop => {\n      let value = props[prop]\n      if (!isUndefined(value)) {\n        // Can be a string, or array of VNodes\n        if (prop === 'title' && isString(value)) {\n          // Special case for title if it is a string, we wrap in a <strong>\n          value = [$parent.$createElement('strong', { class: 'mr-2' }, value)]\n        }\n        toast.$slots[propsToSlots[prop]] = concat(value)\n      }\n    })\n    // Create a mount point (a DIV) and mount it (which triggers the show)\n    const div = document.createElement('div')\n    document.body.appendChild(div)\n    toast.$mount(div)\n  }\n\n  // Declare BvToast instance property class\n  class BvToast {\n    constructor(vm) {\n      // Assign the new properties to this instance\n      assign(this, { _vm: vm, _root: vm.$root })\n      // Set these properties as read-only and non-enumerable\n      defineProperties(this, {\n        _vm: readonlyDescriptor(),\n        _root: readonlyDescriptor()\n      })\n    }\n\n    // --- Public Instance methods ---\n\n    // Opens a user defined toast and returns immediately\n    toast(content, options = {}) {\n      if (!content || warnNotClient(PROP_NAME)) {\n        /* istanbul ignore next */\n        return\n      }\n      makeToast({ ...filterOptions(options), toastContent: content }, this._vm)\n    }\n\n    // shows a `<b-toast>` component with the specified ID\n    show(id) {\n      if (id) {\n        this._root.$emit('bv::show::toast', id)\n      }\n    }\n\n    // Hide a toast with specified ID, or if not ID all toasts\n    hide(id = null) {\n      this._root.$emit('bv::hide::toast', id)\n    }\n  }\n\n  // Add our instance mixin\n  Vue.mixin({\n    beforeCreate() {\n      // Because we need access to `$root` for `$emits`, and VM for parenting,\n      // we have to create a fresh instance of `BvToast` for each VM\n      this[PROP_NAME_PRIV] = new BvToast(this)\n    }\n  })\n\n  // Define our read-only `$bvToast` instance property\n  // Placed in an if just in case in HMR mode\n  // eslint-disable-next-line no-prototype-builtins\n  if (!Vue.prototype.hasOwnProperty(PROP_NAME)) {\n    defineProperty(Vue.prototype, PROP_NAME, {\n      get() {\n        /* istanbul ignore next */\n        if (!this || !this[PROP_NAME_PRIV]) {\n          warn(`'${PROP_NAME}' must be accessed from a Vue instance 'this' context`)\n        }\n        return this[PROP_NAME_PRIV]\n      }\n    })\n  }\n}\n\nexport const BVToastPlugin = /*#__PURE__*/ pluginFactory({\n  plugins: { plugin }\n})\n\n// Default export is the Plugin\nexport default BVToastPlugin\n","import { BVToastPlugin } from './helpers/bv-toast'\nimport { BToast } from './toast'\nimport { BToaster } from './toaster'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ToastPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BToast, BToaster },\n  // $bvToast injection\n  plugins: { BVToastPlugin }\n})\n\nexport { ToastPlugin, BToast, BToaster }\n\nexport default ToastPlugin\n","import Vue from '../../utils/vue'\nimport ToolTip from '../../utils/tooltip.class'\nimport warn from '../../utils/warn'\nimport { isArray, arrayIncludes } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { HTMLElement } from '../../utils/safe-types'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport toolpopMixin from '../../mixins/toolpop'\n\nconst NAME = 'BTooltip'\n\n// @vue/component\nexport const BTooltip = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [toolpopMixin, normalizeSlotMixin],\n  props: {\n    title: {\n      type: String,\n      default: ''\n    },\n    triggers: {\n      type: [String, Array],\n      default: 'hover focus'\n    },\n    placement: {\n      type: String,\n      default: 'top'\n    },\n    fallbackPlacement: {\n      type: [String, Array],\n      default: 'flip',\n      validator(value) {\n        return isArray(value) || arrayIncludes(['flip', 'clockwise', 'counterclockwise'], value)\n      }\n    },\n    variant: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'variant')\n    },\n    customClass: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'customClass')\n    },\n    delay: {\n      type: [Number, Object, String],\n      default: () => getComponentConfig(NAME, 'delay')\n    },\n    boundary: {\n      // String: scrollParent, window, or viewport\n      // Element: element reference\n      type: [String, HTMLElement],\n      default: () => getComponentConfig(NAME, 'boundary')\n    },\n    boundaryPadding: {\n      type: Number,\n      default: () => getComponentConfig(NAME, 'boundaryPadding')\n    }\n  },\n  methods: {\n    createToolpop() {\n      // getTarget is in toolpop mixin\n      const target = this.getTarget()\n      /* istanbul ignore else */\n      if (target) {\n        this._toolpop = new ToolTip(target, this.getConfig(), this)\n      } else {\n        this._toolpop = null\n        warn(\"b-tooltip: 'target' element not found!\")\n      }\n      return this._toolpop\n    }\n  },\n  render(h) {\n    return h(\n      'div',\n      { class: ['d-none'], style: { display: 'none' }, attrs: { 'aria-hidden': true } },\n      [h('div', { ref: 'title' }, this.normalizeSlot('default'))]\n    )\n  }\n})\n\nexport default BTooltip\n","import Popper from 'popper.js'\nimport ToolTip from '../../utils/tooltip.class'\nimport warn from '../../utils/warn'\nimport { getComponentConfig } from '../../utils/config'\nimport { isBrowser } from '../../utils/env'\nimport { isFunction, isObject, isString } from '../../utils/inspect'\nimport { keys } from '../../utils/object'\n\n// Key which we use to store tooltip object on element\nconst BV_TOOLTIP = '__BV_ToolTip__'\n\n// Valid event triggers\nconst validTriggers = {\n  focus: true,\n  hover: true,\n  click: true,\n  blur: true\n}\n\n// Directive modifier test regular expressions. Pre-compile for performance\nconst htmlRE = /^html$/\nconst noFadeRE = /^nofade$/i\nconst placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/\nconst boundaryRE = /^(window|viewport|scrollParent)$/\nconst delayRE = /^d\\d+$/\nconst offsetRE = /^o-?\\d+$/\nconst variantRE = /^v-.+$/\n\n// Build a ToolTip config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n/* istanbul ignore next: not easy to test */\nconst parseBindings = bindings => /* istanbul ignore next: not easy to test */ {\n  // We start out with a basic config\n  const NAME = 'BTooltip'\n  let config = {\n    delay: getComponentConfig(NAME, 'delay'),\n    boundary: String(getComponentConfig(NAME, 'boundary')),\n    boundaryPadding: parseInt(getComponentConfig(NAME, 'boundaryPadding'), 10) || 0,\n    variant: getComponentConfig(NAME, 'variant'),\n    customClass: getComponentConfig(NAME, 'customClass')\n  }\n\n  // Process bindings.value\n  if (isString(bindings.value)) {\n    // Value is tooltip content (html optionally supported)\n    config.title = bindings.value\n  } else if (isFunction(bindings.value)) {\n    // Title generator function\n    config.title = bindings.value\n  } else if (isObject(bindings.value)) {\n    // Value is config object, so merge\n    config = { ...config, ...bindings.value }\n  }\n\n  // If argument, assume element ID of container element\n  if (bindings.arg) {\n    // Element ID specified as arg\n    // We must prepend '#' to become a CSS selector\n    config.container = `#${bindings.arg}`\n  }\n\n  // Process modifiers\n  keys(bindings.modifiers).forEach(mod => {\n    if (htmlRE.test(mod)) {\n      // Title allows HTML\n      config.html = true\n    } else if (noFadeRE.test(mod)) {\n      // No animation\n      config.animation = false\n    } else if (placementRE.test(mod)) {\n      // Placement of tooltip\n      config.placement = mod\n    } else if (boundaryRE.test(mod)) {\n      // Boundary of tooltip\n      config.boundary = mod\n    } else if (delayRE.test(mod)) {\n      // Delay value\n      const delay = parseInt(mod.slice(1), 10) || 0\n      if (delay) {\n        config.delay = delay\n      }\n    } else if (offsetRE.test(mod)) {\n      // Offset value, negative allowed\n      const offset = parseInt(mod.slice(1), 10) || 0\n      if (offset) {\n        config.offset = offset\n      }\n    } else if (variantRE.test(mod)) {\n      // Variant\n      config.variant = mod.slice(2) || null\n    }\n  })\n\n  // Special handling of event trigger modifiers trigger is\n  // a space separated list\n  const selectedTriggers = {}\n\n  // Parse current config object trigger\n  const triggers = isString(config.trigger) ? config.trigger.trim().split(/\\s+/) : []\n  triggers.forEach(trigger => {\n    if (validTriggers[trigger]) {\n      selectedTriggers[trigger] = true\n    }\n  })\n\n  // Parse modifiers for triggers\n  keys(validTriggers).forEach(trigger => {\n    if (bindings.modifiers[trigger]) {\n      selectedTriggers[trigger] = true\n    }\n  })\n\n  // Sanitize triggers\n  config.trigger = keys(selectedTriggers).join(' ')\n  if (config.trigger === 'blur') {\n    // Blur by itself is useless, so convert it to 'focus'\n    config.trigger = 'focus'\n  }\n  if (!config.trigger) {\n    // Remove trigger config\n    delete config.trigger\n  }\n\n  return config\n}\n\n// Add or update ToolTip on our element\nconst applyTooltip = (el, bindings, vnode) => {\n  if (!isBrowser) {\n    /* istanbul ignore next */\n    return\n  }\n  if (!Popper) {\n    // Popper is required for ToolTips to work\n    /* istanbul ignore next */\n    warn('v-b-tooltip: Popper.js is required for ToolTips to work')\n    /* istanbul ignore next */\n    return\n  }\n  const config = parseBindings(bindings)\n  if (el[BV_TOOLTIP]) {\n    el[BV_TOOLTIP].updateConfig(config)\n  } else {\n    el[BV_TOOLTIP] = new ToolTip(el, config, vnode.context)\n  }\n}\n\n// Remove ToolTip on our element\nconst removeTooltip = el => {\n  if (el[BV_TOOLTIP]) {\n    el[BV_TOOLTIP].destroy()\n    el[BV_TOOLTIP] = null\n    delete el[BV_TOOLTIP]\n  }\n}\n\n/*\n * Export our directive\n */\nexport const VBTooltip = {\n  bind(el, bindings, vnode) {\n    applyTooltip(el, bindings, vnode)\n  },\n  inserted(el, bindings, vnode) {\n    applyTooltip(el, bindings, vnode)\n  },\n  update(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyTooltip(el, bindings, vnode)\n    }\n  },\n  componentUpdated(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyTooltip(el, bindings, vnode)\n    }\n  },\n  unbind(el) {\n    removeTooltip(el)\n  }\n}\n\nexport default VBTooltip\n","import { BTooltip } from './tooltip'\nimport { VBTooltip } from '../../directives/tooltip/tooltip'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst TooltipPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BTooltip },\n  directives: { VBTooltip }\n})\n\nexport { TooltipPlugin, BTooltip }\n\nexport default TooltipPlugin\n","// Index file used for the main builds, which does not include legacy plugin names\n// Once es/ buld is removed, then this file will be renamed to index.js\nimport { pluginFactory } from '../utils/plugins'\n\n// Component group plugins\nimport { AlertPlugin } from './alert'\nimport { BadgePlugin } from './badge'\nimport { BreadcrumbPlugin } from './breadcrumb'\nimport { ButtonPlugin } from './button'\nimport { ButtonGroupPlugin } from './button-group'\nimport { ButtonToolbarPlugin } from './button-toolbar'\nimport { CardPlugin } from './card'\nimport { CarouselPlugin } from './carousel'\nimport { CollapsePlugin } from './collapse'\nimport { DropdownPlugin } from './dropdown'\nimport { EmbedPlugin } from './embed'\nimport { FormPlugin } from './form'\nimport { FormGroupPlugin } from './form-group'\nimport { FormCheckboxPlugin } from './form-checkbox'\nimport { FormRadioPlugin } from './form-radio'\nimport { FormInputPlugin } from './form-input'\nimport { FormTextareaPlugin } from './form-textarea'\nimport { FormFilePlugin } from './form-file'\nimport { FormSelectPlugin } from './form-select'\nimport { ImagePlugin } from './image'\nimport { InputGroupPlugin } from './input-group'\nimport { JumbotronPlugin } from './jumbotron'\nimport { LayoutPlugin } from './layout'\nimport { LinkPlugin } from './link'\nimport { ListGroupPlugin } from './list-group'\nimport { MediaPlugin } from './media'\nimport { ModalPlugin } from './modal'\nimport { NavPlugin } from './nav'\nimport { NavbarPlugin } from './navbar'\nimport { PaginationPlugin } from './pagination'\nimport { PaginationNavPlugin } from './pagination-nav'\nimport { PopoverPlugin } from './popover'\nimport { ProgressPlugin } from './progress'\nimport { SpinnerPlugin } from './spinner'\nimport { TablePlugin } from './table'\nimport { TabsPlugin } from './tabs'\nimport { ToastPlugin } from './toast'\nimport { TooltipPlugin } from './tooltip'\n\n// Main plugin to install all component group plugins\nexport const componentsPlugin = /*#__PURE__*/ pluginFactory({\n  plugins: {\n    AlertPlugin,\n    BadgePlugin,\n    BreadcrumbPlugin,\n    ButtonPlugin,\n    ButtonGroupPlugin,\n    ButtonToolbarPlugin,\n    CardPlugin,\n    CarouselPlugin,\n    CollapsePlugin,\n    DropdownPlugin,\n    EmbedPlugin,\n    FormPlugin,\n    FormGroupPlugin,\n    FormCheckboxPlugin,\n    FormRadioPlugin,\n    FormInputPlugin,\n    FormTextareaPlugin,\n    FormFilePlugin,\n    FormSelectPlugin,\n    ImagePlugin,\n    InputGroupPlugin,\n    JumbotronPlugin,\n    LayoutPlugin,\n    LinkPlugin,\n    ListGroupPlugin,\n    MediaPlugin,\n    ModalPlugin,\n    NavPlugin,\n    NavbarPlugin,\n    PaginationPlugin,\n    PaginationNavPlugin,\n    PopoverPlugin,\n    ProgressPlugin,\n    SpinnerPlugin,\n    TablePlugin,\n    TabsPlugin,\n    ToastPlugin,\n    TooltipPlugin\n  }\n})\n\n// Export named injection plugins\n// These two plugins are not directly included in the above installer, as they are\n// installed via the ModalPlugin and ToastPlugin respectively.\nexport { BVModalPlugin } from './modal/helpers/bv-modal'\nexport { BVToastPlugin } from './toast/helpers/bv-toast'\n\n// Export all individual components and component group plugins as named exports.\n// This is mainly for users who import individual components, directives or plugins.\n//\n// Webpack 4 has optimization difficulties with re-eport of re-exports, so\n// we import the components individulaly here for better tree shaking,\n//\n// Webpack v5 fixes the optimizations with re-export of re-exports so this\n// can be reverted back to `export * from './table'` when Webpack v5 is released.\n// https://github.com/webpack/webpack/pull/9203 (available in Webpack v5.0.0-alpha.15)\n\n// export * from './alert'\nexport { AlertPlugin } from './alert'\nexport { BAlert } from './alert/alert'\n\n// export * from './badge'\nexport { BadgePlugin } from './badge'\nexport { BBadge } from './badge/badge'\n\n// export * from './breadcrumb'\nexport { BreadcrumbPlugin } from './breadcrumb'\nexport { BBreadcrumb } from './breadcrumb/breadcrumb'\nexport { BBreadcrumbItem } from './breadcrumb/breadcrumb-item'\n\n// export * from './button'\nexport { ButtonPlugin } from './button'\nexport { BButton } from './button/button'\nexport { BButtonClose } from './button/button-close'\n\n// export * from './button-group'\nexport { ButtonGroupPlugin } from './button-group'\nexport { BButtonGroup } from './button-group/button-group'\n\n// export * from './button-toolbar'\nexport { ButtonToolbarPlugin } from './button-toolbar'\nexport { BButtonToolbar } from './button-toolbar/button-toolbar'\n\n// export * from './card'\nexport { CardPlugin } from './card'\nexport { BCard } from './card/card'\nexport { BCardBody } from './card/card-body'\nexport { BCardFooter } from './card/card-footer'\nexport { BCardGroup } from './card/card-group'\nexport { BCardHeader } from './card/card-header'\nexport { BCardImg } from './card/card-img'\nexport { BCardImgLazy } from './card/card-img-lazy'\nexport { BCardSubTitle } from './card/card-sub-title'\nexport { BCardText } from './card/card-text'\nexport { BCardTitle } from './card/card-title'\n\n// export * from './carousel'\nexport { CarouselPlugin } from './carousel'\nexport { BCarousel } from './carousel/carousel'\nexport { BCarouselSlide } from './carousel/carousel-slide'\n\n// export * from './collapse'\nexport { CollapsePlugin } from './collapse'\nexport { BCollapse } from './collapse/collapse'\n\n// export * from './dropdown'\nexport { DropdownPlugin } from './dropdown'\nexport { BDropdown } from './dropdown/dropdown'\nexport { BDropdownItem } from './dropdown/dropdown-item'\nexport { BDropdownItemButton } from './dropdown/dropdown-item-button'\nexport { BDropdownDivider } from './dropdown/dropdown-divider'\nexport { BDropdownForm } from './dropdown/dropdown-form'\nexport { BDropdownGroup } from './dropdown/dropdown-group'\nexport { BDropdownHeader } from './dropdown/dropdown-header'\nexport { BDropdownText } from './dropdown/dropdown-text'\n\n// export * from './embed'\nexport { EmbedPlugin } from './embed'\nexport { BEmbed } from './embed/embed'\n\n// export * from './form'\nexport { FormPlugin } from './form'\nexport { BForm } from './form/form'\nexport { BFormDatalist } from './form/form-datalist'\nexport { BFormText } from './form/form-text'\nexport { BFormInvalidFeedback } from './form/form-invalid-feedback'\nexport { BFormValidFeedback } from './form/form-valid-feedback'\n\n// export * from './form-checkbox'\nexport { FormCheckboxPlugin } from './form-checkbox'\nexport { BFormCheckbox } from './form-checkbox/form-checkbox'\nexport { BFormCheckboxGroup } from './form-checkbox/form-checkbox-group'\n\n// export * from './form-file'\nexport { FormFilePlugin } from './form-file'\nexport { BFormFile } from './form-file/form-file'\n\n// export * from './form-group'\nexport { FormGroupPlugin } from './form-group'\nexport { BFormGroup } from './form-group/form-group'\n\n// export * from './form-input'\nexport { FormInputPlugin } from './form-input'\nexport { BFormInput } from './form-input/form-input'\n\n// export * from './form-radio'\nexport { FormRadioPlugin } from './form-radio'\nexport { BFormRadio } from './form-radio/form-radio'\nexport { BFormRadioGroup } from './form-radio/form-radio-group'\n\n// export * from './form-select'\nexport { FormSelectPlugin } from './form-select'\nexport { BFormSelect } from './form-select/form-select'\n\n// export * from './form-textarea'\nexport { FormTextareaPlugin } from './form-textarea'\nexport { BFormTextarea } from './form-textarea/form-textarea'\n\n// export * from './image'\nexport { ImagePlugin } from './image'\nexport { BImg } from './image/img'\nexport { BImgLazy } from './image/img-lazy'\n\n// export * from './input-group'\nexport { InputGroupPlugin } from './input-group'\nexport { BInputGroup } from './input-group/input-group'\nexport { BInputGroupAddon } from './input-group/input-group-addon'\nexport { BInputGroupAppend } from './input-group/input-group-append'\nexport { BInputGroupPrepend } from './input-group/input-group-prepend'\nexport { BInputGroupText } from './input-group/input-group-text'\n\n// export * from './jumbotron'\nexport { JumbotronPlugin } from './jumbotron'\nexport { BJumbotron } from './jumbotron/jumbotron'\n\n// export * from './layout'\nexport { LayoutPlugin } from './layout'\nexport { BContainer } from './layout/container'\nexport { BRow } from './layout/row'\nexport { BCol } from './layout/col'\nexport { BFormRow } from './layout/form-row'\n\n// export * from './link'\nexport { LinkPlugin } from './link'\nexport { BLink } from './link/link'\n\n// export * from './list-group'\nexport { ListGroupPlugin } from './list-group'\nexport { BListGroup } from './list-group/list-group'\nexport { BListGroupItem } from './list-group/list-group-item'\n\n// export * from './media'\nexport { MediaPlugin } from './media'\nexport { BMedia } from './media/media'\nexport { BMediaAside } from './media/media-aside'\nexport { BMediaBody } from './media/media-body'\n\n// export * from './modal'\nexport { ModalPlugin } from './modal'\nexport { BModal } from './modal/modal'\n\n// export * from './nav'\nexport { NavPlugin } from './nav'\nexport { BNav } from './nav/nav'\nexport { BNavForm } from './nav/nav-form'\nexport { BNavItem } from './nav/nav-item'\nexport { BNavItemDropdown } from './nav/nav-item-dropdown'\nexport { BNavText } from './nav/nav-text'\n\n// export * from './navbar'\nexport { NavbarPlugin } from './navbar'\nexport { BNavbar } from './navbar/navbar'\nexport { BNavbarBrand } from './navbar/navbar-brand'\nexport { BNavbarNav } from './navbar/navbar-nav'\nexport { BNavbarToggle } from './navbar/navbar-toggle'\n\n// export * from './pagination'\nexport { PaginationPlugin } from './pagination'\nexport { BPagination } from './pagination/pagination'\n\n// export * from './pagination-nav'\nexport { PaginationNavPlugin } from './pagination-nav'\nexport { BPaginationNav } from './pagination-nav/pagination-nav'\n\n// export * from './popover'\nexport { PopoverPlugin } from './popover'\nexport { BPopover } from './popover/popover'\n\n// export * from './progress'\nexport { ProgressPlugin } from './progress'\nexport { BProgress } from './progress/progress'\nexport { BProgressBar } from './progress/progress-bar'\n\n// export * from './spinner'\nexport { SpinnerPlugin } from './spinner'\nexport { BSpinner } from './spinner/spinner'\n\n// export * from './table'\nexport { TablePlugin } from './table'\nexport { BTable } from './table/table'\nexport { BTableLite } from './table/table-lite'\n\n// export * from './tabs'\nexport { TabsPlugin } from './tabs'\nexport { BTabs } from './tabs/tabs'\nexport { BTab } from './tabs/tab'\n\n// export * from './toast'\nexport { ToastPlugin } from './toast'\nexport { BToast } from './toast/toast'\nexport { BToaster } from './toast/toaster'\n\n// export * from './tooltip'\nexport { TooltipPlugin } from './tooltip'\nexport { BTooltip } from './tooltip/tooltip'\n","import { VBModal } from './modal'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBModalPlugin = /*#__PURE__*/ pluginFactory({\n  directives: { VBModal }\n})\n\nexport { VBModalPlugin, VBModal }\n\nexport default VBModalPlugin\n","import { VBPopover } from './popover'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBPopoverPlugin = /*#__PURE__*/ pluginFactory({\n  directives: { VBPopover }\n})\n\nexport { VBPopoverPlugin, VBPopover }\n\nexport default VBPopoverPlugin\n","/*\n * ScrollSpy class definition\n */\n\nimport observeDom from '../../utils/observe-dom'\nimport warn from '../../utils/warn'\nimport {\n  isElement,\n  isVisible,\n  closest,\n  matches,\n  getBCR,\n  offset,\n  position,\n  selectAll,\n  select,\n  hasClass,\n  addClass,\n  removeClass,\n  getAttr,\n  eventOn,\n  eventOff\n} from '../../utils/dom'\nimport { isString, isUndefined } from '../../utils/inspect'\nimport { toString as objectToString } from '../../utils/object'\n\n/*\n * Constants / Defaults\n */\n\nconst NAME = 'v-b-scrollspy'\nconst ACTIVATE_EVENT = 'bv::scrollspy::activate'\n\nconst Default = {\n  element: 'body',\n  offset: 10,\n  method: 'auto',\n  throttle: 75\n}\n\nconst DefaultType = {\n  element: '(string|element|component)',\n  offset: 'number',\n  method: 'string',\n  throttle: 'number'\n}\n\nconst ClassName = {\n  DROPDOWN_ITEM: 'dropdown-item',\n  ACTIVE: 'active'\n}\n\nconst Selector = {\n  ACTIVE: '.active',\n  NAV_LIST_GROUP: '.nav, .list-group',\n  NAV_LINKS: '.nav-link',\n  NAV_ITEMS: '.nav-item',\n  LIST_ITEMS: '.list-group-item',\n  DROPDOWN: '.dropdown, .dropup',\n  DROPDOWN_ITEMS: '.dropdown-item',\n  DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n  OFFSET: 'offset',\n  POSITION: 'position'\n}\n\n// HREFs must end with a hash followed by at least one non-hash character.\n// HREFs in the links are assumed to point to non-external links.\n// Comparison to the current page base URL is not performed!\nconst HREF_REGEX = /^.*(#[^#]+)$/\n\n// Transition Events\nconst TransitionEndEvents = [\n  'webkitTransitionEnd',\n  'transitionend',\n  'otransitionend',\n  'oTransitionEnd'\n]\n\n// Options for events\nconst EventOptions = { passive: true, capture: false }\n\n/*\n * Utility Methods\n */\n\n// Better var type detection\nconst toType = obj => /* istanbul ignore next: not easy to test */ {\n  return objectToString(obj)\n    .match(/\\s([a-zA-Z]+)/)[1]\n    .toLowerCase()\n}\n\n// Check config properties for expected types\nconst typeCheckConfig = (\n  componentName,\n  config,\n  configTypes\n) => /* istanbul ignore next: not easy to test */ {\n  for (const property in configTypes) {\n    if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n      const expectedTypes = configTypes[property]\n      const value = config[property]\n      let valueType = value && isElement(value) ? 'element' : toType(value)\n      // handle Vue instances\n      valueType = value && value._isVue ? 'component' : valueType\n\n      if (!new RegExp(expectedTypes).test(valueType)) {\n        /* istanbul ignore next */\n        warn(\n          `${componentName}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\"`\n        )\n      }\n    }\n  }\n}\n\n/*\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n/* istanbul ignore next: not easy to test */\nclass ScrollSpy /* istanbul ignore next: not easy to test */ {\n  constructor(element, config, $root) {\n    // The element we activate links in\n    this.$el = element\n    this.$scroller = null\n    this.$selector = [Selector.NAV_LINKS, Selector.LIST_ITEMS, Selector.DROPDOWN_ITEMS].join(',')\n    this.$offsets = []\n    this.$targets = []\n    this.$activeTarget = null\n    this.$scrollHeight = 0\n    this.$resizeTimeout = null\n    this.$obs_scroller = null\n    this.$obs_targets = null\n    this.$root = $root || null\n    this.$config = null\n\n    this.updateConfig(config)\n  }\n\n  static get Name() {\n    return NAME\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  updateConfig(config, $root) {\n    if (this.$scroller) {\n      // Just in case out scroll element has changed\n      this.unlisten()\n      this.$scroller = null\n    }\n    const cfg = { ...this.constructor.Default, ...config }\n    if ($root) {\n      this.$root = $root\n    }\n    typeCheckConfig(this.constructor.Name, cfg, this.constructor.DefaultType)\n    this.$config = cfg\n\n    if (this.$root) {\n      const self = this\n      this.$root.$nextTick(() => {\n        self.listen()\n      })\n    } else {\n      this.listen()\n    }\n  }\n\n  dispose() {\n    this.unlisten()\n    clearTimeout(this.$resizeTimeout)\n    this.$resizeTimeout = null\n    this.$el = null\n    this.$config = null\n    this.$scroller = null\n    this.$selector = null\n    this.$offsets = null\n    this.$targets = null\n    this.$activeTarget = null\n    this.$scrollHeight = null\n  }\n\n  listen() {\n    const scroller = this.getScroller()\n    if (scroller && scroller.tagName !== 'BODY') {\n      eventOn(scroller, 'scroll', this, EventOptions)\n    }\n    eventOn(window, 'scroll', this, EventOptions)\n    eventOn(window, 'resize', this, EventOptions)\n    eventOn(window, 'orientationchange', this, EventOptions)\n    TransitionEndEvents.forEach(evtName => {\n      eventOn(window, evtName, this, EventOptions)\n    })\n    this.setObservers(true)\n    // Schedule a refresh\n    this.handleEvent('refresh')\n  }\n\n  unlisten() {\n    const scroller = this.getScroller()\n    this.setObservers(false)\n    if (scroller && scroller.tagName !== 'BODY') {\n      eventOff(scroller, 'scroll', this, EventOptions)\n    }\n    eventOff(window, 'scroll', this, EventOptions)\n    eventOff(window, 'resize', this, EventOptions)\n    eventOff(window, 'orientationchange', this, EventOptions)\n    TransitionEndEvents.forEach(evtName => {\n      eventOff(window, evtName, this, EventOptions)\n    })\n  }\n\n  setObservers(on) {\n    // We observe both the scroller for content changes, and the target links\n    if (this.$obs_scroller) {\n      this.$obs_scroller.disconnect()\n      this.$obs_scroller = null\n    }\n    if (this.$obs_targets) {\n      this.$obs_targets.disconnect()\n      this.$obs_targets = null\n    }\n    if (on) {\n      this.$obs_targets = observeDom(\n        this.$el,\n        () => {\n          this.handleEvent('mutation')\n        },\n        {\n          subtree: true,\n          childList: true,\n          attributes: true,\n          attributeFilter: ['href']\n        }\n      )\n      this.$obs_scroller = observeDom(\n        this.getScroller(),\n        () => {\n          this.handleEvent('mutation')\n        },\n        {\n          subtree: true,\n          childList: true,\n          characterData: true,\n          attributes: true,\n          attributeFilter: ['id', 'style', 'class']\n        }\n      )\n    }\n  }\n\n  // General event handler\n  handleEvent(evt) {\n    const type = isString(evt) ? evt : evt.type\n\n    const self = this\n    const resizeThrottle = () => {\n      if (!self.$resizeTimeout) {\n        self.$resizeTimeout = setTimeout(() => {\n          self.refresh()\n          self.process()\n          self.$resizeTimeout = null\n        }, self.$config.throttle)\n      }\n    }\n\n    if (type === 'scroll') {\n      if (!this.$obs_scroller) {\n        // Just in case we are added to the DOM before the scroll target is\n        // We re-instantiate our listeners, just in case\n        this.listen()\n      }\n      this.process()\n    } else if (/(resize|orientationchange|mutation|refresh)/.test(type)) {\n      // Postpone these events by throttle time\n      resizeThrottle()\n    }\n  }\n\n  // Refresh the list of target links on the element we are applied to\n  refresh() {\n    const scroller = this.getScroller()\n    if (!scroller) {\n      return\n    }\n    const autoMethod = scroller !== scroller.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET\n    const method = this.$config.method === 'auto' ? autoMethod : this.$config.method\n    const methodFn = method === OffsetMethod.POSITION ? position : offset\n    const offsetBase = method === OffsetMethod.POSITION ? this.getScrollTop() : 0\n\n    this.$offsets = []\n    this.$targets = []\n\n    this.$scrollHeight = this.getScrollHeight()\n\n    // Find all the unique link HREFs that we will control\n    selectAll(this.$selector, this.$el)\n      // Get HREF value\n      .map(link => getAttr(link, 'href'))\n      // Filter out HREFs that do not match our RegExp\n      .filter(href => href && HREF_REGEX.test(href || ''))\n      // Find all elements with ID that match HREF hash\n      .map(href => {\n        // Convert HREF into an ID (including # at beginning)\n        const id = href.replace(HREF_REGEX, '$1').trim()\n        if (!id) {\n          return null\n        }\n        // Find the element with the ID specified by id\n        const el = select(id, scroller)\n        if (el && isVisible(el)) {\n          return {\n            offset: parseInt(methodFn(el).top, 10) + offsetBase,\n            target: id\n          }\n        }\n        return null\n      })\n      .filter(Boolean)\n      // Sort them by their offsets (smallest first)\n      .sort((a, b) => a.offset - b.offset)\n      // record only unique targets/offsets\n      .reduce((memo, item) => {\n        if (!memo[item.target]) {\n          this.$offsets.push(item.offset)\n          this.$targets.push(item.target)\n          memo[item.target] = true\n        }\n        return memo\n      }, {})\n\n    // Return this for easy chaining\n    return this\n  }\n\n  // Handle activating/clearing\n  process() {\n    const scrollTop = this.getScrollTop() + this.$config.offset\n    const scrollHeight = this.getScrollHeight()\n    const maxScroll = this.$config.offset + scrollHeight - this.getOffsetHeight()\n\n    if (this.$scrollHeight !== scrollHeight) {\n      this.refresh()\n    }\n\n    if (scrollTop >= maxScroll) {\n      const target = this.$targets[this.$targets.length - 1]\n      if (this.$activeTarget !== target) {\n        this.activate(target)\n      }\n      return\n    }\n\n    if (this.$activeTarget && scrollTop < this.$offsets[0] && this.$offsets[0] > 0) {\n      this.$activeTarget = null\n      this.clear()\n      return\n    }\n\n    for (let i = this.$offsets.length; i--; ) {\n      const isActiveTarget =\n        this.$activeTarget !== this.$targets[i] &&\n        scrollTop >= this.$offsets[i] &&\n        (isUndefined(this.$offsets[i + 1]) || scrollTop < this.$offsets[i + 1])\n\n      if (isActiveTarget) {\n        this.activate(this.$targets[i])\n      }\n    }\n  }\n\n  getScroller() {\n    if (this.$scroller) {\n      return this.$scroller\n    }\n    let scroller = this.$config.element\n    if (!scroller) {\n      return null\n    } else if (isElement(scroller.$el)) {\n      scroller = scroller.$el\n    } else if (isString(scroller)) {\n      scroller = select(scroller)\n    }\n    if (!scroller) {\n      return null\n    }\n    this.$scroller = scroller.tagName === 'BODY' ? window : scroller\n    return this.$scroller\n  }\n\n  getScrollTop() {\n    const scroller = this.getScroller()\n    return scroller === window ? scroller.pageYOffset : scroller.scrollTop\n  }\n\n  getScrollHeight() {\n    return (\n      this.getScroller().scrollHeight ||\n      Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)\n    )\n  }\n\n  getOffsetHeight() {\n    const scroller = this.getScroller()\n    return scroller === window ? window.innerHeight : getBCR(scroller).height\n  }\n\n  activate(target) {\n    this.$activeTarget = target\n    this.clear()\n\n    // Grab the list of target links (<a href=\"{$target}\">)\n    const links = selectAll(\n      this.$selector\n        // Split out the base selectors\n        .split(',')\n        // Map to a selector that matches links with HREF ending in the ID (including '#')\n        .map(selector => `${selector}[href$=\"${target}\"]`)\n        // Join back into a single selector string\n        .join(','),\n      this.$el\n    )\n\n    links.forEach(link => {\n      if (hasClass(link, ClassName.DROPDOWN_ITEM)) {\n        // This is a dropdown item, so find the .dropdown-toggle and set it's state\n        const dropdown = closest(Selector.DROPDOWN, link)\n        if (dropdown) {\n          this.setActiveState(select(Selector.DROPDOWN_TOGGLE, dropdown), true)\n        }\n        // Also set this link's state\n        this.setActiveState(link, true)\n      } else {\n        // Set triggered link as active\n        this.setActiveState(link, true)\n        if (matches(link.parentElement, Selector.NAV_ITEMS)) {\n          // Handle nav-link inside nav-item, and set nav-item active\n          this.setActiveState(link.parentElement, true)\n        }\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        let el = link\n        while (el) {\n          el = closest(Selector.NAV_LIST_GROUP, el)\n          const sibling = el ? el.previousElementSibling : null\n          if (sibling && matches(sibling, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)) {\n            this.setActiveState(sibling, true)\n          }\n          // Handle special case where nav-link is inside a nav-item\n          if (sibling && matches(sibling, Selector.NAV_ITEMS)) {\n            this.setActiveState(select(Selector.NAV_LINKS, sibling), true)\n            // Add active state to nav-item as well\n            this.setActiveState(sibling, true)\n          }\n        }\n      }\n    })\n\n    // Signal event to via $root, passing ID of activated target and reference to array of links\n    if (links && links.length > 0 && this.$root) {\n      this.$root.$emit(ACTIVATE_EVENT, target, links)\n    }\n  }\n\n  clear() {\n    selectAll(`${this.$selector}, ${Selector.NAV_ITEMS}`, this.$el)\n      .filter(el => hasClass(el, ClassName.ACTIVE))\n      .forEach(el => this.setActiveState(el, false))\n  }\n\n  setActiveState(el, active) {\n    if (!el) {\n      return\n    }\n    if (active) {\n      addClass(el, ClassName.ACTIVE)\n    } else {\n      removeClass(el, ClassName.ACTIVE)\n    }\n  }\n}\n\nexport default ScrollSpy\n","import ScrollSpy from './scrollspy.class'\nimport { isBrowser } from '../../utils/env'\nimport { keys } from '../../utils/object'\nimport { isNumber, isObject, isString } from '../../utils/inspect'\n\n// Key we use to store our instance\nconst BV_SCROLLSPY = '__BV_ScrollSpy__'\n\n// Build a ScrollSpy config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n/* istanbul ignore next: not easy to test */\nconst parseBindings = bindings => /* istanbul ignore next: not easy to test */ {\n  const config = {}\n\n  // If argument, assume element ID\n  if (bindings.arg) {\n    // Element ID specified as arg\n    // We must prepend '#' to become a CSS selector\n    config.element = `#${bindings.arg}`\n  }\n\n  // Process modifiers\n  keys(bindings.modifiers).forEach(mod => {\n    if (/^\\d+$/.test(mod)) {\n      // Offset value\n      config.offset = parseInt(mod, 10)\n    } else if (/^(auto|position|offset)$/.test(mod)) {\n      // Offset method\n      config.method = mod\n    }\n  })\n\n  // Process value\n  if (isString(bindings.value)) {\n    // Value is a CSS ID or selector\n    config.element = bindings.value\n  } else if (isNumber(bindings.value)) {\n    // Value is offset\n    config.offset = Math.round(bindings.value)\n  } else if (isObject(bindings.value)) {\n    // Value is config object\n    // Filter the object based on our supported config options\n    keys(bindings.value)\n      .filter(k => Boolean(ScrollSpy.DefaultType[k]))\n      .forEach(k => {\n        config[k] = bindings.value[k]\n      })\n  }\n\n  return config\n}\n\n// Add or update ScrollSpy on our element\nconst applyScrollspy = (el, bindings, vnode) => /* istanbul ignore next: not easy to test */ {\n  if (!isBrowser) {\n    /* istanbul ignore next */\n    return\n  }\n  const config = parseBindings(bindings)\n  if (el[BV_SCROLLSPY]) {\n    el[BV_SCROLLSPY].updateConfig(config, vnode.context.$root)\n  } else {\n    el[BV_SCROLLSPY] = new ScrollSpy(el, config, vnode.context.$root)\n  }\n}\n\n// Remove ScrollSpy on our element\n/* istanbul ignore next: not easy to test */\nconst removeScrollspy = el => /* istanbul ignore next: not easy to test */ {\n  if (el[BV_SCROLLSPY]) {\n    el[BV_SCROLLSPY].dispose()\n    el[BV_SCROLLSPY] = null\n    delete el[BV_SCROLLSPY]\n  }\n}\n\n/*\n * Export our directive\n */\nexport const VBScrollspy = {\n  bind(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    applyScrollspy(el, bindings, vnode)\n  },\n  inserted(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    applyScrollspy(el, bindings, vnode)\n  },\n  update(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyScrollspy(el, bindings, vnode)\n    }\n  },\n  componentUpdated(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyScrollspy(el, bindings, vnode)\n    }\n  },\n  unbind(el) /* istanbul ignore next: not easy to test */ {\n    removeScrollspy(el)\n  }\n}\n\nexport default VBScrollspy\n","import { VBScrollspy } from './scrollspy'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBScrollspyPlugin = /*#__PURE__*/ pluginFactory({\n  directives: { VBScrollspy }\n})\n\nexport { VBScrollspyPlugin, VBScrollspy }\n\nexport default VBScrollspyPlugin\n","import { VBToggle } from './toggle'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBTogglePlugin = /*#__PURE__*/ pluginFactory({\n  directives: { VBToggle }\n})\n\nexport { VBTogglePlugin, VBToggle }\n\nexport default VBTogglePlugin\n","import { VBTooltip } from './tooltip'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBTooltipPlugin = /*#__PURE__*/ pluginFactory({\n  directives: { VBTooltip }\n})\n\nexport { VBTooltipPlugin, VBTooltip }\n\nexport default VBTooltipPlugin\n","// Index file used for the main builds, which does not include legacy plugin names\n// Once es/ buld is removed, then this file will be renamed to index.js\nimport { pluginFactory } from '../utils/plugins'\n\nimport { VBModalPlugin } from './modal'\nimport { VBPopoverPlugin } from './popover'\nimport { VBScrollspyPlugin } from './scrollspy'\nimport { VBTogglePlugin } from './toggle'\nimport { VBTooltipPlugin } from './tooltip'\n\n// Main plugin for installing all directive plugins\nexport const directivesPlugin = /*#__PURE__*/ pluginFactory({\n  plugins: {\n    VBModalPlugin,\n    VBPopoverPlugin,\n    VBScrollspyPlugin,\n    VBTogglePlugin,\n    VBTooltipPlugin\n  }\n})\n\n// Named exports of all directives (VB<Name>) and Plugins (VB<name>Plugin)\n// See src/compinents/index.esm.js for notes/comment\n\n// export * from './modal'\nexport { VBModalPlugin } from './modal'\nexport { VBModal } from './modal/modal'\n\n// export * from './popover'\nexport { VBPopoverPlugin } from './popover'\nexport { VBPopover } from './popover/popover'\n\n// export * from './scrollspy'\nexport { VBScrollspyPlugin } from './scrollspy'\nexport { VBScrollspy } from './scrollspy/scrollspy'\n\n// export * from './toggle'\nexport { VBTogglePlugin } from './toggle'\nexport { VBToggle } from './toggle/toggle'\n\n// export * from './tooltip'\nexport { VBTooltipPlugin } from './tooltip'\nexport { VBTooltip } from './tooltip/tooltip'\n","import { installFactory } from './utils/plugins'\nimport { setConfig } from './utils/config-set'\nimport { componentsPlugin } from './components/index.esm'\nimport { directivesPlugin } from './directives/index.esm'\nimport BVConfigPlugin from './bv-config'\n\n// Named exports of all components and component group plugins\nexport * from './components/index.esm'\n\n// Named exports of all directives and directive group plugins\nexport * from './directives/index.esm'\n\n// BootstrapVue installer\nconst install = /*#__PURE__*/ installFactory({ plugins: { componentsPlugin, directivesPlugin } })\n\n// BootstrapVue plugin\nconst BootstrapVue = /*#__PURE__*/ {\n  install: install,\n  // To be deprecated. not documented\n  setConfig: setConfig\n}\n\n// Named exports for BvConfigPlugin and BootstrapVue\nexport {\n  // BV Config Plugin\n  BVConfigPlugin,\n  // BVConfigPlugin has been documented as BVConfig as well,\n  // so we add an alias to the shorter name for backwards compat\n  BVConfigPlugin as BVConfig,\n  // Main BootstrapVue Plugin\n  BootstrapVue,\n  // Installer and setConfig exported in case the consumer does not\n  // import `default` as the plugin in CommonJS build (or does not\n  // have interop enabled for CommonJS). Both the following will work:\n  //   BootstrapVue = require('bootstrap-vue')\n  //   BootstrapVue = require('bootstrap-vue').default\n  //   Vue.use(BootstrapVue)\n  install,\n  // To be deprecated. not documented\n  setConfig\n}\n\n// Default export is the BootstrapVue plugin\nexport default BootstrapVue\n","// Main entry point for the browser build\nimport { vueUse } from './utils/plugins'\n\nimport BootstrapVue from './index'\n\n// Auto installation only occurs if window.Vue exists\nvueUse(BootstrapVue)\n\nexport default BootstrapVue\n"],"names":["hasWindowSupport","window","hasDocumentSupport","document","hasNavigatorSupport","navigator","hasPromiseSupport","Promise","hasMutationObserverSupport","MutationObserver","WebKitMutationObserver","MozMutationObserver","isBrowser","userAgent","toLowerCase","isJSDOM","indexOf","isIE","test","hasPassiveEventSupport","passiveEventSupported","options","passive","addEventListener","removeEventListener","err","hasTouchSupport","documentElement","maxTouchPoints","hasPointerEventSupport","Boolean","PointerEvent","MSPointerEvent","hasIntersectionObserverSupport","IntersectionObserverEntry","prototype","getEnv","key","fallback","env","process","getNoWarn","warn","message","console","warnNotClient","source","warnNoPromiseSupport","warnNoMutationObserverSupport","from","Array","isArray","arrayIncludes","array","value","concat","args","apply","assign","Object","getOwnPropertyNames","keys","defineProperties","defineProperty","freeze","create","hasOwnProperty","obj","prop","call","toString","isObject","isPlainObject","omit","props","filter","reduce","result","readonlyDescriptor","enumerable","configurable","writable","deepFreeze","forEach","toType","val","toRawType","slice","isUndefined","undefined","isNull","isUndefinedOrNull","isFunction","isBoolean","isString","isNumber","isDate","Date","isEvent","Event","isRegExp","isPromise","then","catch","cloneDeep","defaultValue","get","path","join","String","replace","steps","split","length","every","step","breakpoints","BAlert","dismissLabel","variant","BBadge","BButton","BButtonClose","textVariant","ariaLabel","BCardSubTitle","subTitleTextVariant","BCarousel","labelPrev","labelNext","labelGotoSlide","labelIndicators","BDropdown","toggleText","splitVariant","BFormFile","browseText","placeholder","dropPlaceholder","BFormText","BImg","blankColor","BImgLazy","BJumbotron","bgVariant","borderVariant","BListGroupItem","BModal","titleTag","size","headerBgVariant","headerBorderVariant","headerTextVariant","headerCloseVariant","bodyBgVariant","bodyTextVariant","footerBgVariant","footerBorderVariant","footerTextVariant","cancelTitle","cancelVariant","okTitle","okVariant","headerCloseLabel","BNavbar","BNavbarToggle","label","BPopover","boundary","boundaryPadding","customClass","delay","BProgress","BProgressBar","BSpinner","BTable","selectedVariant","headVariant","footVariant","BToast","toaster","autoHideDelay","toastClass","headerClass","bodyClass","solid","BToaster","ariaLive","ariaAtomic","role","BTooltip","PROP_NAME","BvConfig","$_config","$_cachedBreakpoints","defaults","config","configKeys","cmpName","DEFAULTS","cmpConfig","some","b","setConfig","Vue","OurVue","checkMultipleVue","checkMultipleVueWarned","MULTIPLE_VUE_WARNING","installFactory","components","directives","plugins","install","installed","registerComponents","registerDirectives","registerPlugins","pluginFactory","opts","extend","plugin","use","registerComponent","name","def","component","registerDirective","directive","vueUse","VuePlugin","memoize","fn","cache","argsKey","JSON","stringify","VueProto","getConfigValue","getComponentConfig","getBreakpoints","_getBreakpointsCached","getBreakpointsCached","getBreakpointsUpCached","w","d","elProto","Element","matchesEl","matches","msMatchesSelector","webkitMatchesSelector","closestEl","closest","sel","el","parentElement","parentNode","nodeType","Node","ELEMENT_NODE","requestAF","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","cb","setTimeout","MutationObs","parseEventOptions","useCapture","eventOn","evtName","handler","eventOff","isElement","isVisible","contains","body","style","display","bcr","getBCR","height","width","isDisabled","disabled","getAttr","hasClass","reflow","offsetHeight","selectAll","selector","root","arrayFrom","querySelectorAll","select","querySelector","parent","child","getById","id","getElementById","addClass","className","classList","add","removeClass","remove","setAttr","attr","setAttribute","removeAttr","removeAttribute","getAttribute","hasAttr","hasAttribute","getBoundingClientRect","getCS","getComputedStyle","getSel","getSelection","offset","_offset","top","left","getClientRects","win","ownerDocument","defaultView","pageYOffset","pageXOffset","position","parentOffset","elStyles","doc","offsetParent","offsetParentStyles","parseFloat","borderTopWidth","borderLeftWidth","marginTop","marginLeft","NO_FADE_PROPS","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","FADE_PROPS","BVTransition","functional","noFade","type","default","mode","transProps","render","h","children","data","listeners","css","mergeData","hasNormalizedSlot","$scopedSlots","$slots","normalizeSlot","scope","slot","methods","vNodes","NAME","slots","scopedSlots","componentData","staticClass","class","attrs","on","click","evt","stopPropagation","preventDefault","domProps","innerHTML","parseCountDown","show","parseInt","parseShow","isNumericLike","isNaN","mixins","normalizeSlotMixin","model","event","dismissible","Number","fade","countDownTimerId","countDown","localShow","watch","newVal","clearTimer","$emit","$nextTick","created","mounted","beforeDestroy","dismiss","clearInterval","$alert","$dismissBtn","_uid","AlertPlugin","identity","x","pluckProps","keysToPluck","objToPluck","transformFn","memo","spaces","ANCHOR_TAG","commaRE","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","encode","str","encodeURIComponent","decode","decodeURIComponent","stringifyQueryObj","query","map","results","val2","push","parseQuery","parsed","trim","param","parts","shift","isRouterLink","tag","computeTag","to","thisOrParent","$router","$nuxt","computeRel","target","rel","computeHref","href","toFallback","hash","charAt","propsFactory","active","append","activeClass","exact","exactActiveClass","routerTag","noPrefetch","BLink","inheritAttrs","computed","computedTag","computedRel","computedHref","computedProps","$props","onClick","evtIsEvent","suppliedHandler","$listeners","stopImmediatePropagation","currentTarget","__vue__","arguments","$root","focus","$el","blur","handlers","$attrs","tabindex","nativeOn","linkProps","linkPropsFactory","pill","BadgePlugin","stripTagsRegex","stripTags","text","htmlOrText","textContent","html","ariaCurrent","BBreadcrumbLink","suppliedProps","BBreadcrumbItem","items","BBreadcrumb","childNodes","activeDefined","item","idx","BreadcrumbPlugin","btnProps","block","squared","pressed","linkPropKeys","handleFocus","isLink","isToggle","isButton","isNonStandardTag","computeClass","computeLinkProps","computeAttrs","button","link","toggle","nonStdTag","autocomplete","focusin","focusout","ButtonPlugin","BBtn","BBtnClose","vertical","ariaRole","BButtonGroup","ButtonGroupPlugin","BBtnGroup","KEY_CODES","SPACE","ENTER","ESC","LEFT","UP","RIGHT","DOWN","PAGEUP","PAGEDOWN","HOME","END","TAB","SHIFT","CTRL","BACKSPACE","ALT","PAUSE","BREAK","INSERT","INS","DELETE","ITEM_SELECTOR","BButtonToolbar","justify","keyNav","getItems","onFocusin","focusFirst","stop","onKeydown","keyCode","shiftKey","KeyCodes","focusPrev","focusLast","focusNext","setItemFocus","index","reverse","tabIndex","keydown","ButtonToolbarPlugin","BBtnToolbar","upperFirst","toUpperCase","prefixPropName","prefix","lowerFirst","unprefixPropName","copyProps","copied","title","BCardTitle","subTitle","subTitleTag","cardMixin","bind","titleProps","subTitleProps","overlay","BCardBody","cardTitle","cardSubTitle","cardContent","bodyTag","bodyBorderVariant","header","headerHtml","BCardHeader","headerTag","footer","footerHtml","footerClass","BCardFooter","footerTag","src","required","alt","bottom","start","right","end","BCardImg","baseClass","cardImgProps","imgProps","imgSrc","bodyProps","headerProps","footerProps","align","noBody","BCard","imgFirst","content","imgLast","img","unPrefixPropName","imgBottom","imgLeft","imgStart","imgRight","imgEnd","BLANK_TEMPLATE","fluid","fluidGrow","rounded","thumbnail","center","blank","makeBlankImgSrc","color","THROTTLE","EVENT_OPTIONS","capture","blankSrc","blankWidth","blankHeight","throttle","isShown","scrollTimeout","observer","computedSrc","computedBlank","computedWidth","computedHeight","oldVal","setListeners","activated","deactivated","clearTimeout","unobserve","disconnect","winEvts","onScroll","checkView","IntersectionObserver","doShow","rootMargin","threshold","observe","entries","isIntersecting","intersectionRatio","docElement","view","l","t","clientHeight","r","clientWidth","box","lazyProps","imgLazyProps","BCardImgLazy","textTag","BCardText","deck","columns","BCardGroup","CardPlugin","noop","observeDom","callback","obs","mutations","changed","i","mutation","TEXT_NODE","addedNodes","removedNodes","childList","subtree","localId_","safeId","suffix","DIRECTION","next","dirClass","overlayClass","prev","TRANS_DURATION","TOUCH_EVENT_COMPAT_WAIT","SWIPE_THRESHOLD","PointerType","TOUCH","PEN","TransitionEndEvents","WebkitTransition","MozTransition","OTransition","transition","EventOptions","getTransitionEndEvent","idMixin","provide","bvCarousel","interval","indicators","controls","noAnimation","noTouch","noHoverPause","imgWidth","imgHeight","background","isSliding","transitionEndEvent","slides","direction","isPaused","touchStartX","touchDeltaX","setSlide","pause","doSlide","_intervalId","_animationTimeout","_touchTimeout","updateSlides","$refs","inner","attributes","attributeFilter","slide","visibilityState","hidden","len","$once","Math","floor","setInterval","max","restart","activeElement","isCycling","calcDirection","currentSlide","nextSlide","called","onceTransEnd","events","numSlides","min","n","curIndex","nextIndex","handleClick","handleSwipe","absDeltaX","abs","touchStart","pointerType","clientX","touches","touchMove","touchEnd","ref","rawName","expression","mouseenter","mouseleave","tagName","imgAlt","imgBlank","imgBlankColor","contentVisibleUp","contentTag","caption","captionHtml","captionTag","textHtml","BCarouselSlide","inject","contentClasses","noDrag","dragstart","e","contentChildren","CarouselPlugin","listenOnRoot","$on","$off","listenOnRootOnce","emitOnRoot","EVENT_STATE","EVENT_ACCORDION","EVENT_STATE_SYNC","EVENT_TOGGLE","EVENT_STATE_REQUEST","BCollapse","listenOnRootMixin","isNav","accordion","visible","transitioning","classObject","collapse","emitState","handleToggleEvt","handleAccordionEvt","setWindowEvents","handleResize","emitSync","updated","method","onEnter","scrollHeight","onAfterEnter","onLeave","onAfterLeave","checkDisplayBlock","restore","isBlock","clickHandler","openedId","enter","afterEnter","leave","afterLeave","compareArrays","a","equal","looseEqual","aValidType","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","allListenTypes","hover","BVBoundListeners","getTargets","binding","targets","modifiers","bindTargets","vnode","listenTypes","listener","elm","boundListeners","unbindTargets","BV_TOGGLE","BV_TOGGLE_STATE","BV_TOGGLE_CONTROLS","BV_TOGGLE_TARGETS","resetProp","handleTargets","context","handleUpdate","VBToggle","toggleDirectiveHandler","state","componentUpdated","unbind","CollapsePlugin","HTMLElement","BvEvent","eventInit","TypeError","constructor","Defaults","cancelable","nativeEvent","relatedTarget","vueTarget","componentId","defaultPrevented","listenForClickOut","newValue","oldValue","clickOutElement","clickOutEventName","_clickOutHandler","beforeCreate","isClickOut","clickOutHandler","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","filterVisibles","els","Selector","FORM_CHILD","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","clickOutMixin","focusInMixin","bvDropdown","dropup","dropright","dropleft","noFlip","lazy","popperOpts","inNavbar","visibleChangePrevented","toggler","directionClass","bvEvt","menu","emitEvent","focusToggler","showMenu","hideMenu","_popper","whileOpenListen","removePopper","Popper","element","createPopper","focusMenu","getPopperConfig","destroy","placement","popperConfig","flip","enabled","preventOverflow","boundariesElement","open","rootCloseListener","vm","hide","refocus","onEsc","up","focusItem","find","menuClass","toggleTag","toggleClass","noCaret","splitHref","splitTo","splitButtonType","validator","dropdownMixin","dropdownClasses","menuClasses","toggleClasses","buttonContent","BDropdownItem","nomalizeSlotMixin","closeDropdown","BDropdownItemButton","BDropdownHeader","BDropdownDivider","inline","novalidate","validated","BForm","BDropdownForm","formProps","BDropdownText","headerVariant","headerClasses","ariaDescribedby","BDropdownGroup","headerId","adb","ariaDescribedBy","DropdownPlugin","BDd","BDdItem","BDropdownItemBtn","BDdItemButton","BDdItemBtn","BDdHeader","BDdDivider","BDdForm","BDdText","BDdGroup","aspect","BEmbed","EmbedPlugin","valueField","textField","htmlField","disabledField","formOptions","option","BFormDatalist","formOptionsMixin","tooltip","forceShow","BFormInvalidFeedback","BFormValidFeedback","BFormRow","FormPlugin","BDatalist","BFormFeedback","computedState","stateClass","suffixPropName","boolStrNum","strNum","computeBreakpoint","breakpoint","computeBreakpointClass","breakpointPropMap","generateProps","breakpointCol","propMap","breakpointOffset","breakpointOrder","col","order","cols","alignSelf","BCol","hasColClasses","SELECTOR","DEPRECATED_MSG","renderInvalidFeedback","ctx","invalidFeedback","invalidFeedbackId","feedbackAriaLive","renderValidFeedback","validFeedback","validFeedbackId","renderHelpText","description","descriptionId","renderLabel","labelFor","isLegend","isHorizontal","labelTag","labelSrOnly","labelId","for","labelColProps","legendClick","labelSize","labelAlignClasses","labelClass","makePropName","BREAKPOINTS","bpLabelColProps","bpLabelAlignProps","horizontal","deprecated","BFormGroup","formStateMixin","bp","labelCols","propVal","bColPropName","classes","hasInvalidFeedback","hasValidFeedback","describedByIds","setInputDescribedBy","inputs","input","ids","isFieldset","FormGroupPlugin","BFormFieldset","looseIndexOf","arr","form","autofocus","handleAutofocus","checked","plain","buttonVariant","ariaLabelledby","localChecked","isGroup","bvGroup","hasFocus","computedLocalChecked","set","isBtnMode","buttons","isPlain","isCustom","isSwitch","isRadio","switches","switch","isInline","isRequired","getName","groupName","getForm","getSize","getState","getButtonVariant","buttonClasses","isChecked","defaultSlot","change","handleChange","isCheck","sizeFormClass","sizeBtnClass","BFormCheckbox","formRadioCheckMixin","formMixin","formSizeMixin","uncheckedValue","indeterminate","setIndeterminate","isArr","BFormRadio","ariaInvalid","stacked","groupClasses","computedAriaInvalid","uid","isRadioGroup","BFormCheckboxGroup","formRadioCheckGroupMixin","bvCheckGroup","FormCheckboxPlugin","BCheckbox","BCheck","BCheckboxGroup","BCheckGroup","BFormRadioGroup","bvRadioGroup","FormRadioPlugin","BRadio","BRadioGroup","readonly","plaintext","formatter","Function","number","lazyFormatter","localValue","stringifyValue","computedClass","getFormatted","force","updateValue","num","onInput","composing","formatted","onChange","onBlur","selectionStart","selectionEnd","selectionDirection","setSelectionRange","setRangeText","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","TYPES","BFormInput","formTextMixin","formSelectionMixin","formValidityMixin","noWheel","list","localType","setWheelStopper","onWheelFocus","onWheelBlur","stopWheel","self","FormInputPlugin","BInput","BFormTextarea","rows","maxRows","wrap","noResize","noAutoShrink","dontResize","heightInPx","computedStyle","styles","resize","computedRows","overflowY","computedMinRows","computedMaxRows","oldval","setHeight","computeHeight","$isServer","lineHeight","border","borderBottomWidth","padding","paddingTop","paddingBottom","minHeight","oldHeight","contentRows","ceil","FormTextareaPlugin","BTextarea","custom","formCustomMixin","accept","multiple","directory","noTraverse","noDrop","fileNameFormatter","selectedFile","dragging","selectLabel","files","names","f","file","v","reset","focusHandler","onFileChange","dataTransfer","queue","webkitGetAsEntry","traverseFileTree","all","filesArr","setFiles","filesArray","onReset","onDragover","dropEffect","onDragleave","onDrop","resolve","isFile","$path","isDirectory","createReader","readEntries","webkitdirectory","dragover","dragleave","drop","FormFilePlugin","BFile","BFormSelect","selectSize","computedSelectSize","inputClass","selectedVal","o","selected","_value","FormSelectPlugin","BSelect","ImagePlugin","BInputGroupText","commonProps","isText","BInputGroupAddon","BInputGroupPrepend","BInputGroupAppend","prepend","prependHtml","appendHtml","BInputGroup","InputGroupPlugin","BContainer","container","containerFluid","headerLevel","lead","leadHtml","leadTag","JumbotronPlugin","COMMON_ALIGNMENT","noGutters","alignV","alignH","alignContent","BRow","LayoutPlugin","LinkPlugin","flush","BListGroup","actionTags","action","isAction","itemProps","ListGroupPlugin","BMediaBody","verticalAlign","BMediaAside","rightAlign","BMedia","$aside","$default","MediaPlugin","DEFAULT_ZINDEX","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","ModalManager","modals","baseZIndex","scrollbarWidth","isBodyOverflowing","modalCount","modalsAreOpen","newCount","oldCount","getScrollbarWidth","checkScrollbar","setScrollbar","resetScrollbar","updateModals","registerModal","modal","unregisterModal","splice","_isBeingDestroyed","_isDestroyed","resetModal","getBaseZIndex","div","createElement","appendChild","zIndex","removeChild","isTop","innerWidth","_paddingChangedForModal","_marginChangedForModal","actualPadding","paddingRight","calculatedPadding","actualMargin","marginRight","calculatedMargin","BvModalEvent","trigger","BTransporterTargetSingle","abstract","nodes","updatedNodes","destroyed","BTransporterSingle","immediate","unmountTarget","mountTarget","_bv_defaultFn","_bv_target","beforeMount","updateTarget","getContainer","propsData","defaultFn","$destroy","OBSERVER_CONFIG","characterData","EVT_OPTIONS","centered","scrollable","buttonSize","noStacking","noCloseOnBackdrop","noCloseOnEsc","noEnforceFocus","titleHtml","titleClass","titleSrOnly","modalClass","dialogClass","contentClass","hideHeader","hideFooter","hideHeaderClose","hideBackdrop","okOnly","okDisabled","cancelDisabled","returnFocus","cancelTitleHtml","okTitleHtml","busy","static","isHidden","isTransitioning","isShow","isOpening","isClosing","ignoreBackdropClick","isModalOverflowing","return_focus","modalManager","modalClasses","modalStyles","sbWidth","paddingLeft","dialogClasses","titleClases","bodyClasses","footerClasses","modalOuterStyle","slotScope","ok","onOk","cancel","onCancel","close","onClose","_observer","showHandler","hideHandler","toggleHandler","modalListener","setEnforceFocus","setResizeEvent","updateModel","buildEvent","getActiveElement","showEvt","hideEvt","triggerEl","checkModalOverflow","onBeforeEnter","onBeforeLeave","returnFocusTo","bvModalEvt","onDialogMousedown","onceModalMouseup","onClickOut","preventScroll","scrollTop","makeModal","modalHeader","closeButton","modalFooter","cancelButton","cancelHtml","okHtml","okButton","modalContent","modalDialog","mousedown","beforeEnter","beforeLeave","backdrop","tabTrap","EVENT_SHOW","setRole","VBModal","PROP_NAME_PRIV","BASE_PROPS","modalProps","defaultResolver","propsToSlots","msgBoxContent","filterOptions","BMsgBox","extends","handleDestroy","$parent","$route","unwatch","$watch","asyncMsgBox","resolver","msgBox","reject","resolved","Error","$mount","BvModal","_vm","_root","mixin","BVModalPlugin","ModalPlugin","fill","justified","tabs","pills","small","isNavBar","computeJustifyContent","BNav","nav","BNavItem","linkAttrs","linkClasses","BNavText","BFormProps","BNavForm","BDropdownProps","extraMenuClasses","extraToggleClasses","BNavItemDropdown","NavPlugin","BNavItemDd","BNavDropdown","BNavDd","toggleable","fixed","sticky","print","xs","BNavProps","BNavbarNav","BNavbarBrand","toggleState","handleStateEvt","NavbarPlugin","BNavToggle","range","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","makePageArray","startNum","numPages","sanitizeLimit","limit","sanitizeCurPage","page","onSpaceKey","hideGotoEndButtons","labelFirstPage","firstText","labelPrevPage","prevText","labelNextPage","nextText","labelLastPage","lastText","labelPage","hideEllipsis","ellipsisText","curr","currentPage","localNumPages","localLimit","btnSize","alignment","computedCurrentPage","paginationParams","curPage","showFirstDots","showLastDots","numLinks","pageList","currPage","pages","getButtons","btn","setBtnFocus","focusCurrent","cnt","numberOfPages","isActivePage","pageNum","noCurrPage","makeEndBtn","linkTo","btnSlot","btnText","pageTest","btnContent","ariaControls","makeEllipsis","isLast","makePage","pagination","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","sanitizePerPage","perPage","sanitizeTotalRows","totalRows","BPagination","paginationMixin","PaginationPlugin","baseUrl","useRouter","linkGen","pageGen","noPageDetect","sanitizeNumPages","BPaginationNav","computedValue","setNumPages","guessCurrentPage","getPageInfo","info","makeLink","resolveLink","pathname","search","resolveRoute","route","guess","currRoute","loc","location","currLink","PaginationNavPlugin","CLASS_PREFIX","BS_CLASS_PREFIX_REGEX","RegExp","TRANSITION_DURATION","MODAL_CLOSE_EVENT","MODAL_SELECTOR","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","AUTO","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","HoverState","SHOW","OUT","ClassName","FADE","TOOLTIP","TOOLTIP_INNER","ARROW","animation","template","arrowPadding","fallbackPlacement","callbacks","EvtOpts","NEXTID","generateId","ToolTip","$isEnabled","$fadeTimeout","$hoverTimeout","$visibleInterval","$hoverState","$activeTrigger","$popper","$element","$tip","$id","$routeWatcher","$forceHide","forceHide","$doHide","doHide","$doShow","$doDisable","doDisable","$doEnable","doEnable","_noop","updateConfig","updatedConfig","Default","fixTitle","$config","unListen","listen","setWhileOpenListeners","enabledEvt","disabledEvt","dropdownOpen","isWithActiveTrigger","getTipElement","tip","setContent","isWithContent","addAriaDescribedby","getPlacement","attachment","getAttachment","addAttachmentClass","complete","fixTransition","prevHoverState","shownEvt","transitionOnce","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","removeAriaDescribedby","hiddenEvt","desc","transEvents","getTransitionEndEvents","fnOnce","scheduleUpdate","compileTemplate","node","firstElementChild","setElementContent","getTitle","allowHtml","innerText","triggers","setRootListener","disable","enable","getOffset","behavior","arrow","onCreate","originalPlacement","handlePopperPlacementChange","onUpdate","arrowOffset","tabClass","match","cls","cleanTipClass","initConfigAnimation","TITLE","CONTENT","PopOver","hasTitle","hasContent","getContent","PLACEMENTS","topleft","topright","righttop","rightbottom","bottomleft","bottomright","lefttop","leftbottom","auto","baseConfig","cont","onShow","shown","onShown","onHide","onHidden","onEnabled","onDisabled","old","onOpen","onDisable","onEnable","_toolpop","_obs_title","_obs_content","createToolpop","setObservers","getConfig","bringItBack","cfg","updatePosition","update","getTarget","toolpopMixin","BV_POPOVER","validTriggers","htmlRE","noFadeRE","placementRE","boundaryRE","delayRE","offsetRE","variantRE","parseBindings","bindings","arg","mod","selectedTriggers","applyPopover","removePopover","VBPopover","inserted","PopoverPlugin","bvProgress","labelHtml","precision","striped","animated","showProgress","showValue","progressBarClasses","computedVariant","computedStriped","computedAnimated","progressBarStyles","computedMax","computedProgress","p","pow","computedPrecision","round","computedShowProgress","computedShowValue","toFixed","progressHeight","ProgressPlugin","SpinnerPlugin","startCase","$1","$2","IGNORED_FIELD_KEYS","_rowVariant","_cellVariants","_showDetails","EVENT_FILTER","processField","field","normalizeFields","origFields","fields","sample","k","primaryKey","localItems","computedFields","computedFieldsObj","computedItems","paginatedItems","sortedItems","filteredItems","localFilter","sortBy","localSortBy","sortDesc","localSortDesc","apiUrl","newItems","getFieldFormatter","fieldsObj","sanitizeRow","row","stringifyObjectValues","sort","stringifyRecordValues","DEPRECATION_MSG","deprecation","filterFunction","isFiltered","localFiltering","hasProvider","noProviderFiltering","filteredCheck","localFilterFn","filterFn","criteria","filterFnFactory","defaultFilterFnFactory","regexp","pattern","lastIndex","stableSort","compareFn","defaultSortCompare","localeOpts","locale","aa","bb","localeCompare","sortDirection","sortCompare","sortCompareOptions","numeric","sortCompareLocale","noSortReset","labelSortAsc","labelSortDesc","labelSortClear","noLocalSorting","noFooterSorting","localSorting","noProviderSorting","isSortable","sortable","sortOptions","usage","sortLocale","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortTheadThClasses","sortTheadThAttrs","headerTitle","ariaLabelSorting","ariaSort","localPaging","noProviderPaging","captionTop","captionClasses","captionId","isStacked","renderCaption","$createElement","$captionSlot","$caption","renderColgroup","$colgroup","TABLE_TAG_NAMES","filterEvent","textSelectionActive","containsNode","theadClass","theadTrClass","headClasses","fieldClasses","thClass","headClicked","stopIfBusy","renderThead","makeCell","colIndex","hasHeadClickListener","sortAttrs","sortClass","thStyle","abbr","headerAbbr","fieldScope","column","$cells","th","$trs","tfootTrClass","footClasses","footClone","tfootClass","renderTfoot","tbodyTrClass","tdClasses","cellVariant","dark","getTdValues","tdClass","tdAttrs","isRowHeader","tdAttr","rowClasses","tdValue","defValue","getFormattedValue","tbodyRowKeydown","rowIndex","trs","itemRows","rowClicked","middleMouseRowClicked","rowDblClicked","rowHovered","rowUnhovered","rowContextmenu","renderTbodyRowCell","$scoped","detailsSlot","toggleDetailsFn","$set","unformatted","toggleDetails","detailsShowing","selectedRows","rowSelected","$childNodes","renderTbodyRow","tableStriped","hasRowClickHandler","selectable","$detailsSlot","rowShowDetails","$rows","detailsId","$tds","ariaRowIndex","rowKey","rowId","selectableClasses","selectableRowClasses","selectableAttrs","selectableRowAttrs","refInFor","auxclick","which","contextmenu","dblclick","colspan","trAttrs","$details","tbodyRowMixin","tbodyClass","tbodyTransitionProps","tbodyTransitionHandlers","renderTbody","$busy","renderBusy","renderTopRow","renderEmpty","renderBottomRow","isTransGroup","tbodyProps","tbodyOn","$tbody","showEmpty","emptyText","emptyHtml","emptyFilteredText","emptyFilteredHtml","$empty","computedBusy","localBusy","selectMode","selectedLastRow","selectableTableClasses","isSelecting","selectableTableAttrs","selectableIsMultiSelect","clearSelected","setSelectionHandlers","isRowSelected","base","hasSelection","selectedLastClicked","selectionHandler","ctrlKey","metaKey","providerTriggerContext","_providerUpdate","refresh","_providerSetLocal","bordered","borderless","outlined","responsive","tableClass","isResponsive","responsiveClass","tableClasses","tableAttrs","$thead","$tfoot","$table","itemsMixin","tableRendererMixin","theadMixin","tfootMixin","tbodyMixin","filteringMixin","sortingMixin","captionMixin","colgroupMixin","selectableMixin","emptyMixin","topRowMixin","bottomRowMixin","busyMixin","providerMixin","BTableLite","TablePlugin","navProps","notDisabled","tab","BTabButtonHelper","bvTabs","posInSet","setSize","noKeyNav","handleEvt","localActive","titleLinkClass","activeNavItemClass","titleItemClass","BTabs","card","noNavStyle","navClass","navWrapperClass","activeTabClass","tabIdx","currentTab","registeredTabs","isMounted","navStyle","localNavClass","previousTab","nextTab","updateTabs","setObserver","_bvObserver","registerTab","unregisterTab","tabsContainer","getTabs","$children","_isTab","getButtonForTab","updateButton","$forceUpdate","activateTab","deactivateTab","focusButton","emitTabClick","clickTab","firstTab","currentIndex","lastTab","activeTab","fallbackTab","controlledBy","first","last","empty","BTab","buttonId","headHtml","tabClasses","computedNoFade","computedLazy","activate","deactivate","TabsPlugin","_typeof","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","DefaultTransition","doRender","dead","staticName","Wormhole","hasTarget","$toaster","$target","PortalTarget","slim","MIN_DURATION","isStatus","appendToast","noAutoHide","noCloseButton","isHiding","timer","dismissStarted","resumeDismiss","bToastClasses","computedDuration","computedToaster","transitionHandlers","ensureToaster","clearDismissTimer","now","setHoverHandler","startDismissTimer","onPause","onUnPause","passed","onLinkClick","makeToast","$headerContent","$title","$header","$body","$toast","Portal","toastProps","toastContent","BToastPop","toast","BvToast","BVToastPlugin","ToastPlugin","BV_TOOLTIP","applyTooltip","removeTooltip","VBTooltip","TooltipPlugin","componentsPlugin","VBModalPlugin","VBPopoverPlugin","ACTIVATE_EVENT","DefaultType","DROPDOWN_ITEM","ACTIVE","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","HREF_REGEX","objectToString","typeCheckConfig","componentName","configTypes","property","expectedTypes","valueType","_isVue","ScrollSpy","$scroller","$selector","$offsets","$targets","$activeTarget","$scrollHeight","$resizeTimeout","$obs_scroller","$obs_targets","unlisten","Name","scroller","getScroller","handleEvent","resizeThrottle","autoMethod","methodFn","offsetBase","getScrollTop","getScrollHeight","maxScroll","getOffsetHeight","clear","isActiveTarget","innerHeight","links","dropdown","setActiveState","sibling","previousElementSibling","BV_SCROLLSPY","applyScrollspy","removeScrollspy","dispose","VBScrollspy","VBScrollspyPlugin","VBTogglePlugin","VBTooltipPlugin","directivesPlugin","BootstrapVue"],"mappings":"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M,CAAC,CAAC;;EAE9C,EAAE,OAAO,IAAI,CAAC;EACd,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,SAAS,GAAG;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,MAAM,EAAE;EACV;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAEoQ,QAAM;EACd;EACA;EACA;EACA,IAAI,MAAM,EAAE,CAAC;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,cAAc,EAAE,KAAK;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,uBAAuB,EAAE,KAAK;EAClC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;;EAErB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;;EAEtB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;;EAErB;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;;EAExB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;;EAElC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;;EAElC;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,SAAS;EACtB,CAAC,CAAC;;EAEF;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;;EAEA;EACA;EACA,IAAI,MAAM,GAAG,YAAY;EACzB;EAC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"}
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.min.css.map:1:{"version":3,"sources":["../scripts/build.scss","../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../src/_utilities.scss","../src/components/card/_card-img.scss","../node_modules/bootstrap/scss/mixins/_border-radius.scss","../src/components/dropdown/_dropdown.scss","../src/components/dropdown/_dropdown-form.scss","../src/components/dropdown/_dropdown-text.scss","dist/bootstrap-vue.css","../src/components/input-group/_input-group.scss","../src/components/form-input/_form-input.scss","../node_modules/bootstrap/scss/mixins/_transition.scss","../src/components/modal/_modal.scss","../src/components/popover/_popover.scss","../src/components/table/_table.scss","../src/components/toast/_toast.scss","../src/components/toast/_toaster.scss","../src/components/toast/_toaster-transition.scss","../src/components/tooltip/_tooltip.scss"],"names":[],"mappings":"iBAAA;;ACyEI,4BC9DE,mBACE,QAAA,gBD6DJ,4BC9DE,mBACE,QAAA,gBD6DJ,4BC9DE,mBACE,QAAA,gBD6DJ,6BC9DE,mBACE,QAAA,gBADF,mBACE,QAAA,eCZR,eCmCI,uBAAA,mBACA,0BAAA,mBDhCJ,gBCiBI,wBAAA,mBACA,2BAAA,mBCbF,0EAIQ,QAAA,eAJR,qEAaQ,QAAA,eCdR,sCAEI,QAAA,aACA,QAAA,OAAA,OACA,MAAA,KACA,MAAA,KACA,YAAA,IANJ,4CAcM,QAAA,IAAA,iBACA,QAAA,IAAA,KAAA,mCAfN,+CAAA,+CAoBM,QAAA,YACA,MAAA,QACA,eAAA,KCtBN,iBACE,QAAA,aACA,QAAA,OAAA,OACA,cAAA,EACA,MAAA,KACA,MAAA,KACA,YAAA,QCkEJ,mGADA,kECtEE,kDAKM,wBAAA,EACA,2BAAA,EANN,iDD8EF,gFADA,oEC/DQ,uBAAA,EACA,0BAAA,EDqE4B,yBAA0B,uBExF1D,qCFwFJ,mCEpFM,oBAAA,MAAA,wBAAA,OAON,+BACE,OAAA,2BAEA,QAAA,QAAA,OFoFF,+CEjFA,+CAEE,OAAA,0BAEA,QAAA,QAAA,OFmFF,+CEhFA,+CAEE,OAAA,yBACA,QAAA,QAAA,OAGF,wCAEE,iBAAA,QACA,QAAA,IAIF,2BAEI,SAAA,SACA,KAAA,EAAA,EAAA,KACA,MAAA,GACA,cAAA,EFmFJ,wCADA,yCADA,0CEtFA,yCFqFA,mDEzEM,YAAA,KFoFN,wCADA,yCADA,0CE9FA,yCF6FA,mDEvEM,YAAA,KAtBN,iCA2BI,QAAA,EA3BJ,4CNrBI,wBAAA,EACA,2BAAA,EMoBJ,6CNPI,uBAAA,EACA,0BAAA,EMMJ,2BAwCI,OAAA,2BACA,QAAA,EAAA,OACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,QACA,OAAA,2BAGE,cAAA,OCpFA,WAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCD+BJ,2BC9BM,WAAA,MD8BN,iCA2DM,MAAA,QACA,iBAAA,KACA,aAAA,QACA,QAAA,EAIE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAlER,oCAAA,qCAwEM,iBAAA,QAKN,8BACE,OAAA,yBACA,QAAA,EAAA,KNpHE,cAAA,MMwHJ,8BACE,OAAA,0BACA,QAAA,EAAA,MN1HE,cAAA,MMkIA,oCAAA,gDAEE,aAAA,QAFF,0CAAA,sDAKI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAMJ,mDAAA,+DAKM,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,QALN,+CAAA,2DAQM,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,QARN,wCAAA,oDAWM,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,QAXN,6CAAA,yDAgBI,iBAAA,QACA,iBAAA,KAjBJ,oDAAA,gEAoBM,iBAAA,QACA,iBAAA,KArBN,sDAAA,kEA0BI,iBAAA,oBA1BJ,yCAAA,qDA8BI,iBAAA,QACA,iBAAA,KA/BJ,gDAAA,4DAkCM,iBAAA,QACA,iBAAA,KAnCN,yCAAA,qDAwCI,WAAA,oBF4D6C,uCACrD,sCErGI,mDFoGJ,kDEvDQ,QAAA,MA7CJ,kCAAA,8CAiDI,iBAAA,QACA,iBAAA,KAlDJ,yCAAA,qDAqDM,iBAAA,QACA,iBAAA,KAtDN,wCAAA,oDA2DI,WAAA,oBA3DJ,wCAAA,oDA8DI,WAAA,oBA1EJ,sCAAA,kDAEE,aAAA,QAFF,4CAAA,wDAKI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAMJ,qDAAA,iEAKM,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,QALN,iDAAA,6DAQM,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,QARN,0CAAA,sDAWM,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,QAXN,+CAAA,2DAgBI,iBAAA,QACA,iBAAA,KAjBJ,sDAAA,kEAoBM,iBAAA,QACA,iBAAA,KArBN,wDAAA,oEA0BI,iBAAA,oBA1BJ,2CAAA,uDA8BI,iBAAA,QACA,iBAAA,KA/BJ,kDAAA,8DAkCM,iBAAA,QACA,iBAAA,KAnCN,2CAAA,uDAwCI,WAAA,oBFqIiD,2CACzD,0CE9KI,uDF6KJ,sDEhIQ,QAAA,MA7CJ,oCAAA,gDAiDI,iBAAA,QACA,iBAAA,KAlDJ,2CAAA,uDAqDM,iBAAA,QACA,iBAAA,KAtDN,0CAAA,sDA2DI,WAAA,oBA3DJ,0CAAA,sDA8DI,WAAA,oBE/MR,gBACE,QAAA,GCDE,2BAWI,iBAAA,QACA,aAAA,QAZJ,oEAAA,iDAkBQ,iBAAA,QAlBR,mEAAA,gDAsBQ,iBAAA,QAtBR,sEAAA,mDA8BQ,mBAAA,QA9BR,qEAAA,kDAkCQ,mBAAA,QAlCR,uEAAA,oDA0CQ,oBAAA,QA1CR,sEAAA,mDA+CQ,oBAAA,QA/CR,gFAAA,6DAoDM,oBAAA,QApDN,qEAAA,kDA2DQ,kBAAA,QA3DR,oEAAA,iDA+DQ,kBAAA,QA/DR,mCAoFI,MAAA,QACA,iBAAA,QACA,oBAAA,QAtFJ,iCA0FI,MAAA,QA1FJ,6BAWI,iBAAA,QACA,aAAA,QAZJ,sEAAA,mDAkBQ,iBAAA,QAlBR,qEAAA,kDAsBQ,iBAAA,QAtBR,wEAAA,qDA8BQ,mBAAA,QA9BR,uEAAA,oDAkCQ,mBAAA,QAlCR,yEAAA,sDA0CQ,oBAAA,QA1CR,wEAAA,qDA+CQ,oBAAA,QA/CR,kFAAA,+DAoDM,oBAAA,QApDN,uEAAA,oDA2DQ,kBAAA,QA3DR,sEAAA,mDA+DQ,kBAAA,QA/DR,qCAoFI,MAAA,QACA,iBAAA,QACA,oBAAA,QAtFJ,mCA0FI,MAAA,QA1FJ,2BAWI,iBAAA,QACA,aAAA,QAZJ,oEAAA,iDAkBQ,iBAAA,QAlBR,mEAAA,gDAsBQ,iBAAA,QAtBR,sEAAA,mDA8BQ,mBAAA,QA9BR,qEAAA,kDAkCQ,mBAAA,QAlCR,uEAAA,oDA0CQ,oBAAA,QA1CR,sEAAA,mDA+CQ,oBAAA,QA/CR,gFAAA,6DAoDM,oBAAA,QApDN,qEAAA,kDA2DQ,kBAAA,QA3DR,oEAAA,iDA+DQ,kBAAA,QA/DR,mCAoFI,MAAA,QACA,iBAAA,QACA,oBAAA,QAtFJ,iCA0FI,MAAA,QA1FJ,wBAWI,iBAAA,QACA,aAAA,QAZJ,iEAAA,8CAkBQ,iBAAA,QAlBR,gEAAA,6CAsBQ,iBAAA,QAtBR,mEAAA,gDA8BQ,mBAAA,QA9BR,kEAAA,+CAkCQ,mBAAA,QAlCR,oEAAA,iDA0CQ,oBAAA,QA1CR,mEAAA,gDA+CQ,oBAAA,QA/CR,6EAAA,0DAoDM,oBAAA,QApDN,kEAAA,+CA2DQ,kBAAA,QA3DR,iEAAA,8CA+DQ,kBAAA,QA/DR,gCAoFI,MAAA,QACA,iBAAA,QACA,oBAAA,QAtFJ,8BA0FI,MAAA,QA1FJ,2BAWI,iBAAA,QACA,aAAA,QAZJ,oEAAA,iDAkBQ,iBAAA,QAlBR,mEAAA,gDAsBQ,iBAAA,QAtBR,sEAAA,mDA8BQ,mBAAA,QA9BR,qEAAA,kDAkCQ,mBAAA,QAlCR,uEAAA,oDA0CQ,oBAAA,QA1CR,sEAAA,mDA+CQ,oBAAA,QA/CR,gFAAA,6DAoDM,oBAAA,QApDN,qEAAA,kDA2DQ,kBAAA,QA3DR,oEAAA,iDA+DQ,kBAAA,QA/DR,mCAoFI,MAAA,QACA,iBAAA,QACA,oBAAA,QAtFJ,iCA0FI,MAAA,QA1FJ,0BAWI,iBAAA,QACA,aAAA,QAZJ,mEAAA,gDAkBQ,iBAAA,QAlBR,kEAAA,+CAsBQ,iBAAA,QAtBR,qEAAA,kDA8BQ,mBAAA,QA9BR,oEAAA,iDAkCQ,mBAAA,QAlCR,sEAAA,mDA0CQ,oBAAA,QA1CR,qEAAA,kDA+CQ,oBAAA,QA/CR,+EAAA,4DAoDM,oBAAA,QApDN,oEAAA,iDA2DQ,kBAAA,QA3DR,mEAAA,gDA+DQ,kBAAA,QA/DR,kCAoFI,MAAA,QACA,iBAAA,QACA,oBAAA,QAtFJ,gCA0FI,MAAA,QA1FJ,yBAWI,iBAAA,QACA,aAAA,QAZJ,kEAAA,+CAkBQ,iBAAA,QAlBR,iEAAA,8CAsBQ,iBAAA,QAtBR,oEAAA,iDA8BQ,mBAAA,QA9BR,mEAAA,gDAkCQ,mBAAA,QAlCR,qEAAA,kDA0CQ,oBAAA,QA1CR,oEAAA,iDA+CQ,oBAAA,QA/CR,8EAAA,2DAoDM,oBAAA,QApDN,mEAAA,gDA2DQ,kBAAA,QA3DR,kEAAA,+CA+DQ,kBAAA,QA/DR,iCAoFI,MAAA,QACA,iBAAA,QACA,oBAAA,QAtFJ,+BA0FI,MAAA,QA1FJ,wBAWI,iBAAA,QACA,aAAA,QAZJ,iEAAA,8CAkBQ,iBAAA,QAlBR,gEAAA,6CAsBQ,iBAAA,QAtBR,mEAAA,gDA8BQ,mBAAA,QA9BR,kEAAA,+CAkCQ,mBAAA,QAlCR,oEAAA,iDA0CQ,oBAAA,QA1CR,mEAAA,gDA+CQ,oBAAA,QA/CR,6EAAA,0DAoDM,oBAAA,QApDN,kEAAA,+CA2DQ,kBAAA,QA3DR,iEAAA,8CA+DQ,kBAAA,QA/DR,gCAoFI,MAAA,QACA,iBAAA,QACA,oBAAA,QAtFJ,8BA0FI,MAAA,QC5FR,6BAMI,aAAA,MANJ,+BAWI,QAAA,IAXJ,2CAgBI,WAAA,eAhBJ,uBAqBI,aAAA,OArBJ,2CAwBM,aAAA,cNgvBN,sCM1uBA,sCAOU,OAAA,QNwuBV,8CM/uBA,8CAWY,QAAA,aACA,MAAA,MACA,YAAA,KACA,MAAA,KACA,UAAA,QACA,YAAA,QACA,QAAA,GACA,QAAA,IACA,MAAA,KNyuBZ,mEM5vBA,mEAyBY,QAAA,EACA,QAAA,INwuBZ,oEMlwBA,oEAgCY,QAAA,EACA,QAAA,IbUR,4BaDJ,kCAQU,QAAA,MACA,MAAA,KATV,0CNmuBE,wCACA,2CACA,8CMptBU,QAAA,MNytBV,wCM1uBF,wCAuBY,QAAA,KNytBV,8DADA,2DADA,8DM9uBF,2DA2Bc,QAAA,KA3Bd,0CAiCY,aAAA,cAjCZ,gEA0CkB,QAAA,iBACA,QAAA,aACA,MAAA,IACA,MAAA,KACA,WAAA,MACA,cAAA,WACA,YAAA,IACA,WAAA,OACA,QAAA,EACA,OAAA,EAnDlB,+DAwDkB,QAAA,MACA,MAAA,KACA,QAAA,GA1DlB,4DA+DkB,QAAA,aACA,MAAA,iBAEA,QAAA,EAAA,EAAA,EAAA,KACA,OAAA,EAnElB,sDAAA,mDA0EgB,QAAA,KA1EhB,wDA+EgB,iBAAA,Kb9EZ,4BaDJ,kCAQU,QAAA,MACA,MAAA,KATV,0CN2xBE,wCACA,2CACA,8CM5wBU,QAAA,MNixBV,wCMlyBF,wCAuBY,QAAA,KNixBV,8DADA,2DADA,8DMtyBF,2DA2Bc,QAAA,KA3Bd,0CAiCY,aAAA,cAjCZ,gEA0CkB,QAAA,iBACA,QAAA,aACA,MAAA,IACA,MAAA,KACA,WAAA,MACA,cAAA,WACA,YAAA,IACA,WAAA,OACA,QAAA,EACA,OAAA,EAnDlB,+DAwDkB,QAAA,MACA,MAAA,KACA,QAAA,GA1DlB,4DA+DkB,QAAA,aACA,MAAA,iBAEA,QAAA,EAAA,EAAA,EAAA,KACA,OAAA,EAnElB,sDAAA,mDA0EgB,QAAA,KA1EhB,wDA+EgB,iBAAA,Kb9EZ,4BaDJ,kCAQU,QAAA,MACA,MAAA,KATV,0CNm1BE,wCACA,2CACA,8CMp0BU,QAAA,MNy0BV,wCM11BF,wCAuBY,QAAA,KNy0BV,8DADA,2DADA,8DM91BF,2DA2Bc,QAAA,KA3Bd,0CAiCY,aAAA,cAjCZ,gEA0CkB,QAAA,iBACA,QAAA,aACA,MAAA,IACA,MAAA,KACA,WAAA,MACA,cAAA,WACA,YAAA,IACA,WAAA,OACA,QAAA,EACA,OAAA,EAnDlB,+DAwDkB,QAAA,MACA,MAAA,KACA,QAAA,GA1DlB,4DA+DkB,QAAA,aACA,MAAA,iBAEA,QAAA,EAAA,EAAA,EAAA,KACA,OAAA,EAnElB,sDAAA,mDA0EgB,QAAA,KA1EhB,wDA+EgB,iBAAA,Kb9EZ,6BaDJ,kCAQU,QAAA,MACA,MAAA,KATV,0CN24BE,wCACA,2CACA,8CM53BU,QAAA,MNi4BV,wCMl5BF,wCAuBY,QAAA,KNi4BV,8DADA,2DADA,8DMt5BF,2DA2Bc,QAAA,KA3Bd,0CAiCY,aAAA,cAjCZ,gEA0CkB,QAAA,iBACA,QAAA,aACA,MAAA,IACA,MAAA,KACA,WAAA,MACA,cAAA,WACA,YAAA,IACA,WAAA,OACA,QAAA,EACA,OAAA,EAnDlB,+DAwDkB,QAAA,MACA,MAAA,KACA,QAAA,GA1DlB,4DA+DkB,QAAA,aACA,MAAA,iBAEA,QAAA,EAAA,EAAA,EAAA,KACA,OAAA,EAnElB,sDAAA,mDA0EgB,QAAA,KA1EhB,wDA+EgB,iBAAA,KA/EhB,+BAQU,QAAA,MACA,MAAA,KATV,uCNm8BA,qCACA,wCACA,2CMp7BY,QAAA,MN07BZ,qCM38BA,qCAuBY,QAAA,KN27BZ,2DADA,wDADA,2DMh9BA,wDA2Bc,QAAA,KA3Bd,uCAiCY,aAAA,cAjCZ,6DA0CkB,QAAA,iBACA,QAAA,aACA,MAAA,IACA,MAAA,KACA,WAAA,MACA,cAAA,WACA,YAAA,IACA,WAAA,OACA,QAAA,EACA,OAAA,EAnDlB,4DAwDkB,QAAA,MACA,MAAA,KACA,QAAA,GA1DlB,yDA+DkB,QAAA,aACA,MAAA,iBAEA,QAAA,EAAA,EAAA,EAAA,KACA,OAAA,EAnElB,mDAAA,gDA0EgB,QAAA,KA1EhB,qDA+EgB,iBAAA,IAWhB,2CAGM,OAAA,QAHN,kFAUQ,oBAAA,KAAA,iBAAA,KAAA,gBAAA,KAAA,YAAA,KCzKR,SACE,QAAA,MACA,SAAA,SACA,UAAA,MACA,4BAAA,OAAA,oBAAA,OACA,gBAAA,YACA,QAAA,EXJE,cAAA,OWFJ,0BAUI,cAAA,OAVJ,8BAeM,iBAAA,KAfN,gBAsBI,QAAA,EAtBJ,gCAyBM,QAAA,EAzBN,4BA6BM,QAAA,MAOJ,wBACE,iBAAA,sBACA,aAAA,sBACA,MAAA,QAEA,sCACE,MAAA,QACA,iBAAA,sBACA,oBAAA,sBASF,sCACE,iBAAA,QAlBJ,0BACE,iBAAA,sBACA,aAAA,sBACA,MAAA,QAEA,wCACE,MAAA,QACA,iBAAA,sBACA,oBAAA,sBASF,wCACE,iBAAA,QAlBJ,wBACE,iBAAA,sBACA,aAAA,sBACA,MAAA,QAEA,sCACE,MAAA,QACA,iBAAA,sBACA,oBAAA,sBASF,sCACE,iBAAA,QAlBJ,qBACE,iBAAA,sBACA,aAAA,sBACA,MAAA,QAEA,mCACE,MAAA,QACA,iBAAA,sBACA,oBAAA,sBASF,mCACE,iBAAA,QAlBJ,wBACE,iBAAA,sBACA,aAAA,sBACA,MAAA,QAEA,sCACE,MAAA,QACA,iBAAA,sBACA,oBAAA,sBASF,sCACE,iBAAA,QAlBJ,uBACE,iBAAA,sBACA,aAAA,sBACA,MAAA,QAEA,qCACE,MAAA,QACA,iBAAA,sBACA,oBAAA,sBASF,qCACE,iBAAA,QAlBJ,sBACE,iBAAA,sBACA,aAAA,sBACA,MAAA,QAEA,oCACE,MAAA,QACA,iBAAA,sBACA,oBAAA,sBASF,oCACE,iBAAA,KAlBJ,qBACE,iBAAA,sBACA,aAAA,sBACA,MAAA,QAEA,mCACE,MAAA,QACA,iBAAA,sBACA,oBAAA,sBASF,mCACE,iBAAA,QCnDN,WACE,QAAA,KADF,2BAII,SAAA,SACA,QAAA,MALJ,iCAQM,QAAA,eAcN,mCAAA,iCAAA,iCAAA,kCAAA,gCAAA,8BAAA,8BAAA,+BASI,SAAA,MACA,KAAA,MACA,MAAA,MACA,OAAA,EACA,QAAA,EACA,OAAA,EACA,SAAA,QAfJ,mDAAA,iDAAA,iDAAA,kDAAA,gDAAA,8CAAA,8CAAA,+CAkBM,SAAA,SACA,UAAA,MACA,MAAA,KACA,KAAA,EACA,MAAA,EACA,QAAA,EACA,OAAA,EAxBN,iDAAA,8CA+BM,MAAA,KACA,UAAA,KR0tCgD,0DACtD,wDQ3vCA,uDR0vCA,qDQrtCQ,MAAA,KACA,UAAA,KAtCR,gCAAA,8BAAA,8BAAA,+BA+CI,IAAA,EA/CJ,gDAAA,8CAAA,8CAAA,+CAkDM,IAAA,MAlDN,mCAAA,iCAAA,iCAAA,kCA0DI,OAAA,EA1DJ,mDAAA,iDAAA,iDAAA,kDA6DM,OAAA,MA7DN,mDAAA,kDAAA,gDAAA,+CAsEM,YAAA,KAtEN,mDAAA,iDAAA,gDAAA,8CA+EM,aAAA,KCtGN,iEAAA,iEAAA,yDAAA,kEAAA,kEAAA,0DAAA,8DAAA,8DAAA,sDAAA,+DAAA,+DAAA,uDASQ,WAAA,kBAAA,MAAA,WAAA,UAAA,MAAA,WAAA,UAAA,KAAA,CAAA,kBAAA,MATR,6EAAA,yEAAA,8EAAA,0EAAA,0EAAA,sEAAA,2EAAA,uEAoBU,iBAAA,MApBV,iEAAA,kEAAA,8DAAA,+DA4BQ,SAAA,SACA,iBAAA,MA7BR,6EAAA,8EAAA,0EAAA,2EAgCU,iBAAA,GClCN,4EAAA,yDAMM,iBAAA,QANN,8EAAA,2DAYM,mBAAA,QAZN,+EAAA,4DAkBM,oBAAA,QAlBN,6EAAA,0DAwBM,kBAAA,QAxBN,0CA4CI,MAAA,KACA,iBAAA,QA7CJ,8EAAA,2DAMM,iBAAA,QANN,gFAAA,6DAYM,mBAAA,QAZN,iFAAA,8DAkBM,oBAAA,QAlBN,+EAAA,4DAwBM,kBAAA,QAxBN,4CA4CI,MAAA,KACA,iBAAA,QA7CJ,4EAAA,yDAMM,iBAAA,QANN,8EAAA,2DAYM,mBAAA,QAZN,+EAAA,4DAkBM,oBAAA,QAlBN,6EAAA,0DAwBM,kBAAA,QAxBN,0CA4CI,MAAA,KACA,iBAAA,QA7CJ,yEAAA,sDAMM,iBAAA,QANN,2EAAA,wDAYM,mBAAA,QAZN,4EAAA,yDAkBM,oBAAA,QAlBN,0EAAA,uDAwBM,kBAAA,QAxBN,uCA4CI,MAAA,KACA,iBAAA,QA7CJ,4EAAA,yDAMM,iBAAA,QANN,8EAAA,2DAYM,mBAAA,QAZN,+EAAA,4DAkBM,oBAAA,QAlBN,6EAAA,0DAwBM,kBAAA,QAxBN,0CA4CI,MAAA,QACA,iBAAA,QA7CJ,2EAAA,wDAMM,iBAAA,QANN,6EAAA,0DAYM,mBAAA,QAZN,8EAAA,2DAkBM,oBAAA,QAlBN,4EAAA,yDAwBM,kBAAA,QAxBN,yCA4CI,MAAA,KACA,iBAAA,QA7CJ,0EAAA,uDAMM,iBAAA,QANN,4EAAA,yDAYM,mBAAA,QAZN,6EAAA,0DAkBM,oBAAA,QAlBN,2EAAA,wDAwBM,kBAAA,QAxBN,wCA4CI,MAAA,QACA,iBAAA,QA7CJ,yEAAA,sDAMM,iBAAA,QANN,2EAAA,wDAYM,mBAAA,QAZN,4EAAA,yDAkBM,oBAAA,QAlBN,0EAAA,uDAwBM,kBAAA,QAxBN,uCA4CI,MAAA,KACA,iBAAA","sourcesContent":["/*!\n * BootstrapVue Custom CSS (https://bootstrap-vue.js.org)\n */\n\n// Include Bootstrap functions, variables, and mixins\n@import \"node_modules/bootstrap/scss/functions\";\n@import \"node_modules/bootstrap/scss/variables\";\n@import \"node_modules/bootstrap/scss/mixins\";\n\n// Import BootstrapVue custom SCSS\n@import \"../src/index.scss\";\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $next: breakpoint-next($name, $breakpoints);\n  @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  $max: breakpoint-max($name, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($name, $breakpoints) {\n      @content;\n    }\n  }\n}\n","// --- BootstrapVue Utility Classes ---\n\n$bv-utility-classes-defined: false !default;\n\n// Make sure to include these style definitions only once\n@if $bv-utility-classes-defined == false {\n  $bv-utility-classes-defined: true;\n\n  // Create `.bv-d-<bp>-down-none` helper classes\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    @include media-breakpoint-down($breakpoint) {\n      .bv-d-#{$breakpoint}-down-none {\n        display: none !important;\n      }\n    }\n  }\n}\n",".card-img-left {\n  @include border-left-radius($card-inner-border-radius);\n}\n\n.card-img-right {\n  @include border-right-radius($card-inner-border-radius);\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n  @if $enable-rounded {\n    border-radius: $radius;\n  }\n  @else if $fallback-border-radius != false {\n    border-radius: $fallback-border-radius;\n  }\n}\n\n@mixin border-top-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: $radius;\n    border-top-right-radius: $radius;\n  }\n}\n\n@mixin border-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: $radius;\n    border-bottom-right-radius: $radius;\n  }\n}\n\n@mixin border-bottom-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: $radius;\n    border-bottom-left-radius: $radius;\n  }\n}\n\n@mixin border-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: $radius;\n    border-bottom-left-radius: $radius;\n  }\n}\n\n@mixin border-top-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: $radius;\n  }\n}\n\n@mixin border-top-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: $radius;\n  }\n}\n\n@mixin border-bottom-right-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: $radius;\n  }\n}\n\n@mixin border-bottom-left-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-left-radius: $radius;\n  }\n}\n","$bv-dropdown-defined: false !default;\n\n// Make sure to include these style definitions only once\n@if $bv-dropdown-defined == false {\n  $bv-dropdown-defined: true;\n\n  // Hide the caret for `no-caret` setting\n  // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/1473\n  // See: https://github.com/twbs/bootstrap/issues/23724\n  .dropdown {\n    &:not(.dropleft) {\n      .dropdown-toggle {\n        &.dropdown-toggle-no-caret::after {\n          display: none !important;\n        }\n      }\n    }\n\n    // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2909\n    &.dropleft {\n      .dropdown-toggle {\n        &.dropdown-toggle-no-caret::before {\n          display: none !important;\n        }\n      }\n    }\n\n    // Prevent dropdown background overflow if there's no padding\n    // See https://github.com/twbs/bootstrap/pull/27703\n    // Added here to address <li> wrapping of items\n    @if $dropdown-padding-y == 0 {\n      .dropdown-menu {\n        > :first-child {\n          .dropdown-item,\n          .dropdown-form,\n          .dropdown-text {\n            @include border-top-radius($dropdown-inner-border-radius);\n          }\n        }\n\n        > :last-child {\n          .dropdown-item,\n          .dropdown-form,\n          .dropdown-text {\n            @include border-bottom-radius($dropdown-inner-border-radius);\n          }\n        }\n      }\n    }\n  }\n}\n","$bv-dropdown-form-defined: false !default;\n\n@if $bv-dropdown-form-defined == false {\n  // This test will only include these style definitions once\n  $bv-dropdown-form-defined: true;\n\n  // Custom styles for <b-dropdown-form>\n  // Based on class `.dropdown-item`\n  .dropdown.b-dropdown {\n    .b-dropdown-form {\n      display: inline-block;\n      padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n      width: 100%;\n      clear: both;\n      font-weight: $font-weight-normal;\n\n      &:focus {\n        // From https://github.com/twbs/bootstrap/blob/master/scss/_reboot.scss\n        // mimicking button:focus styling.\n        // We add important here as anything with tabindex `-1` and focused will not\n        // have a focus ring due to reboot.scss and it's `!important` override.\n        // Needed for keyboard navigation high-lighting\n        outline: 1px dotted !important;\n        outline: 5px auto -webkit-focus-ring-color !important;\n      }\n\n      &.disabled,\n      &:disabled {\n        outline: 0 !important;\n        color: $dropdown-link-disabled-color;\n        pointer-events: none;\n        // background-color: transparent;\n        // Remove CSS gradients if they're enabled\n        // @if $enable-gradients {\n        //   background-image: none;\n        // }\n      }\n    }\n  }\n}\n","$bv-dropdown-text-defined: false !default;\n\n@if $bv-dropdown-text-defined == false {\n  // This test will only include these style definitions once\n  $bv-dropdown-text-defined: true;\n\n  // Custom styles for <b-dropdown-text>\n  // Based on class `.dropdown-item`\n  .b-dropdown-text {\n    display: inline-block;\n    padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n    margin-bottom: 0;\n    width: 100%;\n    clear: both;\n    font-weight: $font-weight-lighter;\n  }\n}\n","@charset \"UTF-8\";\n/*!\n * BootstrapVue Custom CSS (https://bootstrap-vue.js.org)\n */\n@media (max-width: 575.98px) {\n  .bv-d-xs-down-none {\n    display: none !important;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .bv-d-sm-down-none {\n    display: none !important;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .bv-d-md-down-none {\n    display: none !important;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .bv-d-lg-down-none {\n    display: none !important;\n  }\n}\n\n.bv-d-xl-down-none {\n  display: none !important;\n}\n\n.card-img-left {\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-img-right {\n  border-top-right-radius: calc(0.25rem - 1px);\n  border-bottom-right-radius: calc(0.25rem - 1px);\n}\n\n.dropdown:not(.dropleft) .dropdown-toggle.dropdown-toggle-no-caret::after {\n  display: none !important;\n}\n\n.dropdown.dropleft .dropdown-toggle.dropdown-toggle-no-caret::before {\n  display: none !important;\n}\n\n.dropdown.b-dropdown .b-dropdown-form {\n  display: inline-block;\n  padding: 0.25rem 1.5rem;\n  width: 100%;\n  clear: both;\n  font-weight: 400;\n}\n\n.dropdown.b-dropdown .b-dropdown-form:focus {\n  outline: 1px dotted !important;\n  outline: 5px auto -webkit-focus-ring-color !important;\n}\n\n.dropdown.b-dropdown .b-dropdown-form.disabled, .dropdown.b-dropdown .b-dropdown-form:disabled {\n  outline: 0 !important;\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.b-dropdown-text {\n  display: inline-block;\n  padding: 0.25rem 1.5rem;\n  margin-bottom: 0;\n  width: 100%;\n  clear: both;\n  font-weight: lighter;\n}\n\n.input-group > .input-group-prepend > .btn-group > .btn,\n.input-group > .input-group-append:not(:last-child) > .btn-group > .btn,\n.input-group > .input-group-append:last-child > .btn-group:not(:last-child):not(.dropdown-toggle) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn-group > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .btn-group > .btn,\n.input-group > .input-group-prepend:first-child > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.was-validated .form-control:invalid,\n.was-validated .form-control:valid, .form-control.is-invalid, .form-control.is-valid {\n  background-position: right calc(0.375em + 0.1875rem) center;\n}\n\ninput[type=\"color\"].form-control {\n  height: calc(1.5em + 0.75rem + 2px);\n  padding: 0.125rem 0.25rem;\n}\n\ninput[type=\"color\"].form-control.form-control-sm,\n.input-group-sm input[type=\"color\"].form-control {\n  height: calc(1.5em + 0.5rem + 2px);\n  padding: 0.125rem 0.25rem;\n}\n\ninput[type=\"color\"].form-control.form-control-lg,\n.input-group-lg input[type=\"color\"].form-control {\n  height: calc(1.5em + 1rem + 2px);\n  padding: 0.125rem 0.25rem;\n}\n\ninput[type=\"color\"].form-control:disabled {\n  background-color: #adb5bd;\n  opacity: 0.65;\n}\n\n.input-group > .custom-range {\n  position: relative;\n  flex: 1 1 auto;\n  width: 1%;\n  margin-bottom: 0;\n}\n\n.input-group > .custom-range + .form-control,\n.input-group > .custom-range + .form-control-plaintext,\n.input-group > .custom-range + .custom-select,\n.input-group > .custom-range + .custom-range,\n.input-group > .custom-range + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control + .custom-range,\n.input-group > .form-control-plaintext + .custom-range,\n.input-group > .custom-select + .custom-range,\n.input-group > .custom-range + .custom-range,\n.input-group > .custom-file + .custom-range {\n  margin-left: -1px;\n}\n\n.input-group > .custom-range:focus {\n  z-index: 3;\n}\n\n.input-group > .custom-range:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-range:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-range {\n  height: calc(1.5em + 0.75rem + 2px);\n  padding: 0 0.75rem;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  height: calc(1.5em + 0.75rem + 2px);\n  border-radius: 0.25rem;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .input-group > .custom-range {\n    transition: none;\n  }\n}\n\n.input-group > .custom-range:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.input-group > .custom-range:disabled, .input-group > .custom-range[readonly] {\n  background-color: #e9ecef;\n}\n\n.input-group-lg > .custom-range {\n  height: calc(1.5em + 1rem + 2px);\n  padding: 0 1rem;\n  border-radius: 0.3rem;\n}\n\n.input-group-sm > .custom-range {\n  height: calc(1.5em + 0.5rem + 2px);\n  padding: 0 0.5rem;\n  border-radius: 0.2rem;\n}\n\n.was-validated .input-group .custom-range:valid, .input-group .custom-range.is-valid {\n  border-color: #28a745;\n}\n\n.was-validated .input-group .custom-range:valid:focus, .input-group .custom-range.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-range:valid:focus::-webkit-slider-thumb, .custom-range.is-valid:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;\n}\n\n.was-validated .custom-range:valid:focus::-moz-range-thumb, .custom-range.is-valid:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;\n}\n\n.was-validated .custom-range:valid:focus::-ms-thumb, .custom-range.is-valid:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac;\n}\n\n.was-validated .custom-range:valid::-webkit-slider-thumb, .custom-range.is-valid::-webkit-slider-thumb {\n  background-color: #28a745;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-webkit-slider-thumb:active, .custom-range.is-valid::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-webkit-slider-runnable-track, .custom-range.is-valid::-webkit-slider-runnable-track {\n  background-color: rgba(40, 167, 69, 0.35);\n}\n\n.was-validated .custom-range:valid::-moz-range-thumb, .custom-range.is-valid::-moz-range-thumb {\n  background-color: #28a745;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-moz-range-thumb:active, .custom-range.is-valid::-moz-range-thumb:active {\n  background-color: #9be7ac;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-moz-range-track, .custom-range.is-valid::-moz-range-track {\n  background: rgba(40, 167, 69, 0.35);\n}\n\n.was-validated .custom-range:valid ~ .valid-feedback,\n.was-validated .custom-range:valid ~ .valid-tooltip, .custom-range.is-valid ~ .valid-feedback,\n.custom-range.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-range:valid::-ms-thumb, .custom-range.is-valid::-ms-thumb {\n  background-color: #28a745;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-ms-thumb:active, .custom-range.is-valid::-ms-thumb:active {\n  background-color: #9be7ac;\n  background-image: none;\n}\n\n.was-validated .custom-range:valid::-ms-track-lower, .custom-range.is-valid::-ms-track-lower {\n  background: rgba(40, 167, 69, 0.35);\n}\n\n.was-validated .custom-range:valid::-ms-track-upper, .custom-range.is-valid::-ms-track-upper {\n  background: rgba(40, 167, 69, 0.35);\n}\n\n.was-validated .input-group .custom-range:invalid, .input-group .custom-range.is-invalid {\n  border-color: #dc3545;\n}\n\n.was-validated .input-group .custom-range:invalid:focus, .input-group .custom-range.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-range:invalid:focus::-webkit-slider-thumb, .custom-range.is-invalid:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;\n}\n\n.was-validated .custom-range:invalid:focus::-moz-range-thumb, .custom-range.is-invalid:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;\n}\n\n.was-validated .custom-range:invalid:focus::-ms-thumb, .custom-range.is-invalid:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1;\n}\n\n.was-validated .custom-range:invalid::-webkit-slider-thumb, .custom-range.is-invalid::-webkit-slider-thumb {\n  background-color: #dc3545;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-webkit-slider-thumb:active, .custom-range.is-invalid::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-webkit-slider-runnable-track, .custom-range.is-invalid::-webkit-slider-runnable-track {\n  background-color: rgba(220, 53, 69, 0.35);\n}\n\n.was-validated .custom-range:invalid::-moz-range-thumb, .custom-range.is-invalid::-moz-range-thumb {\n  background-color: #dc3545;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-moz-range-thumb:active, .custom-range.is-invalid::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-moz-range-track, .custom-range.is-invalid::-moz-range-track {\n  background: rgba(220, 53, 69, 0.35);\n}\n\n.was-validated .custom-range:invalid ~ .invalid-feedback,\n.was-validated .custom-range:invalid ~ .invalid-tooltip, .custom-range.is-invalid ~ .invalid-feedback,\n.custom-range.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-range:invalid::-ms-thumb, .custom-range.is-invalid::-ms-thumb {\n  background-color: #dc3545;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-ms-thumb:active, .custom-range.is-invalid::-ms-thumb:active {\n  background-color: #f6cdd1;\n  background-image: none;\n}\n\n.was-validated .custom-range:invalid::-ms-track-lower, .custom-range.is-invalid::-ms-track-lower {\n  background: rgba(220, 53, 69, 0.35);\n}\n\n.was-validated .custom-range:invalid::-ms-track-upper, .custom-range.is-invalid::-ms-track-upper {\n  background: rgba(220, 53, 69, 0.35);\n}\n\n.modal-backdrop {\n  opacity: 0.5;\n}\n\n.b-popover-primary.popover {\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.b-popover-primary.bs-popover-top > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #b8daff;\n}\n\n.b-popover-primary.bs-popover-top > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #cce5ff;\n}\n\n.b-popover-primary.bs-popover-right > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #b8daff;\n}\n\n.b-popover-primary.bs-popover-right > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #cce5ff;\n}\n\n.b-popover-primary.bs-popover-bottom > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #b8daff;\n}\n\n.b-popover-primary.bs-popover-bottom > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #bdddff;\n}\n\n.b-popover-primary.bs-popover-bottom .popover-header::before, .b-popover-primary.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #bdddff;\n}\n\n.b-popover-primary.bs-popover-left > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #b8daff;\n}\n\n.b-popover-primary.bs-popover-left > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #cce5ff;\n}\n\n.b-popover-primary .popover-header {\n  color: #212529;\n  background-color: #bdddff;\n  border-bottom-color: #a3d0ff;\n}\n\n.b-popover-primary .popover-body {\n  color: #004085;\n}\n\n.b-popover-secondary.popover {\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.b-popover-secondary.bs-popover-top > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #d6d8db;\n}\n\n.b-popover-secondary.bs-popover-top > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #e2e3e5;\n}\n\n.b-popover-secondary.bs-popover-right > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #d6d8db;\n}\n\n.b-popover-secondary.bs-popover-right > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #e2e3e5;\n}\n\n.b-popover-secondary.bs-popover-bottom > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #d6d8db;\n}\n\n.b-popover-secondary.bs-popover-bottom > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #dadbde;\n}\n\n.b-popover-secondary.bs-popover-bottom .popover-header::before, .b-popover-secondary.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #dadbde;\n}\n\n.b-popover-secondary.bs-popover-left > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #d6d8db;\n}\n\n.b-popover-secondary.bs-popover-left > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #e2e3e5;\n}\n\n.b-popover-secondary .popover-header {\n  color: #212529;\n  background-color: #dadbde;\n  border-bottom-color: #ccced2;\n}\n\n.b-popover-secondary .popover-body {\n  color: #383d41;\n}\n\n.b-popover-success.popover {\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.b-popover-success.bs-popover-top > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #c3e6cb;\n}\n\n.b-popover-success.bs-popover-top > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #d4edda;\n}\n\n.b-popover-success.bs-popover-right > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #c3e6cb;\n}\n\n.b-popover-success.bs-popover-right > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #d4edda;\n}\n\n.b-popover-success.bs-popover-bottom > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #c3e6cb;\n}\n\n.b-popover-success.bs-popover-bottom > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #c9e8d1;\n}\n\n.b-popover-success.bs-popover-bottom .popover-header::before, .b-popover-success.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #c9e8d1;\n}\n\n.b-popover-success.bs-popover-left > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #c3e6cb;\n}\n\n.b-popover-success.bs-popover-left > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #d4edda;\n}\n\n.b-popover-success .popover-header {\n  color: #212529;\n  background-color: #c9e8d1;\n  border-bottom-color: #b7e1c1;\n}\n\n.b-popover-success .popover-body {\n  color: #155724;\n}\n\n.b-popover-info.popover {\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.b-popover-info.bs-popover-top > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #bee5eb;\n}\n\n.b-popover-info.bs-popover-top > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #d1ecf1;\n}\n\n.b-popover-info.bs-popover-right > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #bee5eb;\n}\n\n.b-popover-info.bs-popover-right > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #d1ecf1;\n}\n\n.b-popover-info.bs-popover-bottom > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #bee5eb;\n}\n\n.b-popover-info.bs-popover-bottom > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #c5e7ed;\n}\n\n.b-popover-info.bs-popover-bottom .popover-header::before, .b-popover-info.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #c5e7ed;\n}\n\n.b-popover-info.bs-popover-left > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #bee5eb;\n}\n\n.b-popover-info.bs-popover-left > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #d1ecf1;\n}\n\n.b-popover-info .popover-header {\n  color: #212529;\n  background-color: #c5e7ed;\n  border-bottom-color: #b2dfe7;\n}\n\n.b-popover-info .popover-body {\n  color: #0c5460;\n}\n\n.b-popover-warning.popover {\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.b-popover-warning.bs-popover-top > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #ffeeba;\n}\n\n.b-popover-warning.bs-popover-top > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #fff3cd;\n}\n\n.b-popover-warning.bs-popover-right > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #ffeeba;\n}\n\n.b-popover-warning.bs-popover-right > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #fff3cd;\n}\n\n.b-popover-warning.bs-popover-bottom > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #ffeeba;\n}\n\n.b-popover-warning.bs-popover-bottom > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #ffefbe;\n}\n\n.b-popover-warning.bs-popover-bottom .popover-header::before, .b-popover-warning.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #ffefbe;\n}\n\n.b-popover-warning.bs-popover-left > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #ffeeba;\n}\n\n.b-popover-warning.bs-popover-left > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #fff3cd;\n}\n\n.b-popover-warning .popover-header {\n  color: #212529;\n  background-color: #ffefbe;\n  border-bottom-color: #ffe9a4;\n}\n\n.b-popover-warning .popover-body {\n  color: #856404;\n}\n\n.b-popover-danger.popover {\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.b-popover-danger.bs-popover-top > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #f5c6cb;\n}\n\n.b-popover-danger.bs-popover-top > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #f8d7da;\n}\n\n.b-popover-danger.bs-popover-right > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #f5c6cb;\n}\n\n.b-popover-danger.bs-popover-right > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #f8d7da;\n}\n\n.b-popover-danger.bs-popover-bottom > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #f5c6cb;\n}\n\n.b-popover-danger.bs-popover-bottom > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #f6cace;\n}\n\n.b-popover-danger.bs-popover-bottom .popover-header::before, .b-popover-danger.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #f6cace;\n}\n\n.b-popover-danger.bs-popover-left > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #f5c6cb;\n}\n\n.b-popover-danger.bs-popover-left > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #f8d7da;\n}\n\n.b-popover-danger .popover-header {\n  color: #212529;\n  background-color: #f6cace;\n  border-bottom-color: #f2b4ba;\n}\n\n.b-popover-danger .popover-body {\n  color: #721c24;\n}\n\n.b-popover-light.popover {\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.b-popover-light.bs-popover-top > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #fdfdfe;\n}\n\n.b-popover-light.bs-popover-top > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #fefefe;\n}\n\n.b-popover-light.bs-popover-right > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #fdfdfe;\n}\n\n.b-popover-light.bs-popover-right > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #fefefe;\n}\n\n.b-popover-light.bs-popover-bottom > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #fdfdfe;\n}\n\n.b-popover-light.bs-popover-bottom > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #f6f6f6;\n}\n\n.b-popover-light.bs-popover-bottom .popover-header::before, .b-popover-light.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #f6f6f6;\n}\n\n.b-popover-light.bs-popover-left > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #fdfdfe;\n}\n\n.b-popover-light.bs-popover-left > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #fefefe;\n}\n\n.b-popover-light .popover-header {\n  color: #212529;\n  background-color: #f6f6f6;\n  border-bottom-color: #eaeaea;\n}\n\n.b-popover-light .popover-body {\n  color: #818182;\n}\n\n.b-popover-dark.popover {\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.b-popover-dark.bs-popover-top > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  border-top-color: #c6c8ca;\n}\n\n.b-popover-dark.bs-popover-top > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  border-top-color: #d6d8d9;\n}\n\n.b-popover-dark.bs-popover-right > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  border-right-color: #c6c8ca;\n}\n\n.b-popover-dark.bs-popover-right > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  border-right-color: #d6d8d9;\n}\n\n.b-popover-dark.bs-popover-bottom > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  border-bottom-color: #c6c8ca;\n}\n\n.b-popover-dark.bs-popover-bottom > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  border-bottom-color: #ced0d2;\n}\n\n.b-popover-dark.bs-popover-bottom .popover-header::before, .b-popover-dark.bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  border-bottom-color: #ced0d2;\n}\n\n.b-popover-dark.bs-popover-left > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  border-left-color: #c6c8ca;\n}\n\n.b-popover-dark.bs-popover-left > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  border-left-color: #d6d8d9;\n}\n\n.b-popover-dark .popover-header {\n  color: #212529;\n  background-color: #ced0d2;\n  border-bottom-color: #c1c4c5;\n}\n\n.b-popover-dark .popover-body {\n  color: #1b1e21;\n}\n\n.table.b-table.b-table-fixed {\n  table-layout: fixed;\n}\n\n.table.b-table[aria-busy=\"true\"] {\n  opacity: 0.55;\n}\n\n.table.b-table > tbody > tr.b-table-details > td {\n  border-top: none !important;\n}\n\n.table.b-table > caption {\n  caption-side: bottom;\n}\n\n.table.b-table > caption.b-table-caption-top {\n  caption-side: top !important;\n}\n\n.table.b-table > thead > tr > th[aria-sort],\n.table.b-table > tfoot > tr > th[aria-sort] {\n  cursor: pointer;\n}\n\n.table.b-table > thead > tr > th[aria-sort]::before,\n.table.b-table > tfoot > tr > th[aria-sort]::before {\n  display: inline-block;\n  float: right;\n  margin-left: 0.5em;\n  width: 0.5em;\n  font-size: inherit;\n  line-height: inherit;\n  opacity: 0.4;\n  content: \"↕\";\n  speak: none;\n}\n\n.table.b-table > thead > tr > th[aria-sort][aria-sort=\"ascending\"]::before,\n.table.b-table > tfoot > tr > th[aria-sort][aria-sort=\"ascending\"]::before {\n  opacity: 1;\n  content: \"↓\";\n}\n\n.table.b-table > thead > tr > th[aria-sort][aria-sort=\"descending\"]::before,\n.table.b-table > tfoot > tr > th[aria-sort][aria-sort=\"descending\"]::before {\n  opacity: 1;\n  content: \"↑\";\n}\n\n@media (max-width: 575.98px) {\n  .table.b-table.b-table-stacked-sm {\n    display: block;\n    width: 100%;\n  }\n  .table.b-table.b-table-stacked-sm > caption,\n  .table.b-table.b-table-stacked-sm > tbody,\n  .table.b-table.b-table-stacked-sm > tbody > tr,\n  .table.b-table.b-table-stacked-sm > tbody > tr > td,\n  .table.b-table.b-table-stacked-sm > tbody > tr > td {\n    display: block;\n  }\n  .table.b-table.b-table-stacked-sm > thead,\n  .table.b-table.b-table-stacked-sm > tfoot {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-sm > thead > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-sm > thead > tr.b-table-bottom-row,\n  .table.b-table.b-table-stacked-sm > tfoot > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-sm > tfoot > tr.b-table-bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-sm > caption {\n    caption-side: top !important;\n  }\n  .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::before {\n    content: attr(data-label);\n    display: inline-block;\n    width: 40%;\n    float: left;\n    text-align: right;\n    overflow-wrap: break-word;\n    font-weight: bold;\n    font-style: normal;\n    padding: 0;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n  .table.b-table.b-table-stacked-sm > tbody > tr > [data-label] > div {\n    display: inline-block;\n    width: calc(100% - 40%);\n    padding: 0 0 0 1rem;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-sm > tbody > tr.top-row, .table.b-table.b-table-stacked-sm > tbody > tr.bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-sm > tbody > tr > :first-child {\n    border-top-width: 3px;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table.b-table.b-table-stacked-md {\n    display: block;\n    width: 100%;\n  }\n  .table.b-table.b-table-stacked-md > caption,\n  .table.b-table.b-table-stacked-md > tbody,\n  .table.b-table.b-table-stacked-md > tbody > tr,\n  .table.b-table.b-table-stacked-md > tbody > tr > td,\n  .table.b-table.b-table-stacked-md > tbody > tr > td {\n    display: block;\n  }\n  .table.b-table.b-table-stacked-md > thead,\n  .table.b-table.b-table-stacked-md > tfoot {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-md > thead > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-md > thead > tr.b-table-bottom-row,\n  .table.b-table.b-table-stacked-md > tfoot > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-md > tfoot > tr.b-table-bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-md > caption {\n    caption-side: top !important;\n  }\n  .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::before {\n    content: attr(data-label);\n    display: inline-block;\n    width: 40%;\n    float: left;\n    text-align: right;\n    overflow-wrap: break-word;\n    font-weight: bold;\n    font-style: normal;\n    padding: 0;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n  .table.b-table.b-table-stacked-md > tbody > tr > [data-label] > div {\n    display: inline-block;\n    width: calc(100% - 40%);\n    padding: 0 0 0 1rem;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-md > tbody > tr.top-row, .table.b-table.b-table-stacked-md > tbody > tr.bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-md > tbody > tr > :first-child {\n    border-top-width: 3px;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table.b-table.b-table-stacked-lg {\n    display: block;\n    width: 100%;\n  }\n  .table.b-table.b-table-stacked-lg > caption,\n  .table.b-table.b-table-stacked-lg > tbody,\n  .table.b-table.b-table-stacked-lg > tbody > tr,\n  .table.b-table.b-table-stacked-lg > tbody > tr > td,\n  .table.b-table.b-table-stacked-lg > tbody > tr > td {\n    display: block;\n  }\n  .table.b-table.b-table-stacked-lg > thead,\n  .table.b-table.b-table-stacked-lg > tfoot {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-lg > thead > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-lg > thead > tr.b-table-bottom-row,\n  .table.b-table.b-table-stacked-lg > tfoot > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-lg > tfoot > tr.b-table-bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-lg > caption {\n    caption-side: top !important;\n  }\n  .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::before {\n    content: attr(data-label);\n    display: inline-block;\n    width: 40%;\n    float: left;\n    text-align: right;\n    overflow-wrap: break-word;\n    font-weight: bold;\n    font-style: normal;\n    padding: 0;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n  .table.b-table.b-table-stacked-lg > tbody > tr > [data-label] > div {\n    display: inline-block;\n    width: calc(100% - 40%);\n    padding: 0 0 0 1rem;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-lg > tbody > tr.top-row, .table.b-table.b-table-stacked-lg > tbody > tr.bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-lg > tbody > tr > :first-child {\n    border-top-width: 3px;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table.b-table.b-table-stacked-xl {\n    display: block;\n    width: 100%;\n  }\n  .table.b-table.b-table-stacked-xl > caption,\n  .table.b-table.b-table-stacked-xl > tbody,\n  .table.b-table.b-table-stacked-xl > tbody > tr,\n  .table.b-table.b-table-stacked-xl > tbody > tr > td,\n  .table.b-table.b-table-stacked-xl > tbody > tr > td {\n    display: block;\n  }\n  .table.b-table.b-table-stacked-xl > thead,\n  .table.b-table.b-table-stacked-xl > tfoot {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-xl > thead > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-xl > thead > tr.b-table-bottom-row,\n  .table.b-table.b-table-stacked-xl > tfoot > tr.b-table-top-row,\n  .table.b-table.b-table-stacked-xl > tfoot > tr.b-table-bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-xl > caption {\n    caption-side: top !important;\n  }\n  .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::before {\n    content: attr(data-label);\n    display: inline-block;\n    width: 40%;\n    float: left;\n    text-align: right;\n    overflow-wrap: break-word;\n    font-weight: bold;\n    font-style: normal;\n    padding: 0;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n  .table.b-table.b-table-stacked-xl > tbody > tr > [data-label] > div {\n    display: inline-block;\n    width: calc(100% - 40%);\n    padding: 0 0 0 1rem;\n    margin: 0;\n  }\n  .table.b-table.b-table-stacked-xl > tbody > tr.top-row, .table.b-table.b-table-stacked-xl > tbody > tr.bottom-row {\n    display: none;\n  }\n  .table.b-table.b-table-stacked-xl > tbody > tr > :first-child {\n    border-top-width: 3px;\n  }\n}\n\n.table.b-table.b-table-stacked {\n  display: block;\n  width: 100%;\n}\n\n.table.b-table.b-table-stacked > caption,\n.table.b-table.b-table-stacked > tbody,\n.table.b-table.b-table-stacked > tbody > tr,\n.table.b-table.b-table-stacked > tbody > tr > td,\n.table.b-table.b-table-stacked > tbody > tr > td {\n  display: block;\n}\n\n.table.b-table.b-table-stacked > thead,\n.table.b-table.b-table-stacked > tfoot {\n  display: none;\n}\n\n.table.b-table.b-table-stacked > thead > tr.b-table-top-row,\n.table.b-table.b-table-stacked > thead > tr.b-table-bottom-row,\n.table.b-table.b-table-stacked > tfoot > tr.b-table-top-row,\n.table.b-table.b-table-stacked > tfoot > tr.b-table-bottom-row {\n  display: none;\n}\n\n.table.b-table.b-table-stacked > caption {\n  caption-side: top !important;\n}\n\n.table.b-table.b-table-stacked > tbody > tr > [data-label]::before {\n  content: attr(data-label);\n  display: inline-block;\n  width: 40%;\n  float: left;\n  text-align: right;\n  overflow-wrap: break-word;\n  font-weight: bold;\n  font-style: normal;\n  padding: 0;\n  margin: 0;\n}\n\n.table.b-table.b-table-stacked > tbody > tr > [data-label]::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.table.b-table.b-table-stacked > tbody > tr > [data-label] > div {\n  display: inline-block;\n  width: calc(100% - 40%);\n  padding: 0 0 0 1rem;\n  margin: 0;\n}\n\n.table.b-table.b-table-stacked > tbody > tr.top-row, .table.b-table.b-table-stacked > tbody > tr.bottom-row {\n  display: none;\n}\n\n.table.b-table.b-table-stacked > tbody > tr > :first-child {\n  border-top-width: 3px;\n}\n\n.table.b-table.b-table-selectable > tbody > tr {\n  cursor: pointer;\n}\n\n.table.b-table.b-table-selectable.b-table-selecting.b-table-select-range > tbody > tr {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.b-toast {\n  display: block;\n  position: relative;\n  max-width: 350px;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  background-clip: padding-box;\n  z-index: 1;\n  border-radius: 0.25rem;\n}\n\n.b-toast:not(:last-child) {\n  margin-bottom: 0.75rem;\n}\n\n.b-toast.b-toast-solid .toast {\n  background-color: white;\n}\n\n.b-toast .toast {\n  opacity: 1;\n}\n\n.b-toast .toast.fade:not(.show) {\n  opacity: 0;\n}\n\n.b-toast .toast .toast-body {\n  display: block;\n}\n\n.b-toast-primary .toast {\n  background-color: rgba(230, 242, 255, 0.85);\n  border-color: rgba(184, 218, 255, 0.85);\n  color: #004085;\n}\n\n.b-toast-primary .toast .toast-header {\n  color: #004085;\n  background-color: rgba(204, 229, 255, 0.85);\n  border-bottom-color: rgba(184, 218, 255, 0.85);\n}\n\n.b-toast-primary.b-toast-solid .toast {\n  background-color: #e6f2ff;\n}\n\n.b-toast-secondary .toast {\n  background-color: rgba(239, 240, 241, 0.85);\n  border-color: rgba(214, 216, 219, 0.85);\n  color: #383d41;\n}\n\n.b-toast-secondary .toast .toast-header {\n  color: #383d41;\n  background-color: rgba(226, 227, 229, 0.85);\n  border-bottom-color: rgba(214, 216, 219, 0.85);\n}\n\n.b-toast-secondary.b-toast-solid .toast {\n  background-color: #eff0f1;\n}\n\n.b-toast-success .toast {\n  background-color: rgba(230, 245, 233, 0.85);\n  border-color: rgba(195, 230, 203, 0.85);\n  color: #155724;\n}\n\n.b-toast-success .toast .toast-header {\n  color: #155724;\n  background-color: rgba(212, 237, 218, 0.85);\n  border-bottom-color: rgba(195, 230, 203, 0.85);\n}\n\n.b-toast-success.b-toast-solid .toast {\n  background-color: #e6f5e9;\n}\n\n.b-toast-info .toast {\n  background-color: rgba(229, 244, 247, 0.85);\n  border-color: rgba(190, 229, 235, 0.85);\n  color: #0c5460;\n}\n\n.b-toast-info .toast .toast-header {\n  color: #0c5460;\n  background-color: rgba(209, 236, 241, 0.85);\n  border-bottom-color: rgba(190, 229, 235, 0.85);\n}\n\n.b-toast-info.b-toast-solid .toast {\n  background-color: #e5f4f7;\n}\n\n.b-toast-warning .toast {\n  background-color: rgba(255, 249, 231, 0.85);\n  border-color: rgba(255, 238, 186, 0.85);\n  color: #856404;\n}\n\n.b-toast-warning .toast .toast-header {\n  color: #856404;\n  background-color: rgba(255, 243, 205, 0.85);\n  border-bottom-color: rgba(255, 238, 186, 0.85);\n}\n\n.b-toast-warning.b-toast-solid .toast {\n  background-color: #fff9e7;\n}\n\n.b-toast-danger .toast {\n  background-color: rgba(252, 237, 238, 0.85);\n  border-color: rgba(245, 198, 203, 0.85);\n  color: #721c24;\n}\n\n.b-toast-danger .toast .toast-header {\n  color: #721c24;\n  background-color: rgba(248, 215, 218, 0.85);\n  border-bottom-color: rgba(245, 198, 203, 0.85);\n}\n\n.b-toast-danger.b-toast-solid .toast {\n  background-color: #fcedee;\n}\n\n.b-toast-light .toast {\n  background-color: rgba(255, 255, 255, 0.85);\n  border-color: rgba(253, 253, 254, 0.85);\n  color: #818182;\n}\n\n.b-toast-light .toast .toast-header {\n  color: #818182;\n  background-color: rgba(254, 254, 254, 0.85);\n  border-bottom-color: rgba(253, 253, 254, 0.85);\n}\n\n.b-toast-light.b-toast-solid .toast {\n  background-color: white;\n}\n\n.b-toast-dark .toast {\n  background-color: rgba(227, 229, 229, 0.85);\n  border-color: rgba(198, 200, 202, 0.85);\n  color: #1b1e21;\n}\n\n.b-toast-dark .toast .toast-header {\n  color: #1b1e21;\n  background-color: rgba(214, 216, 217, 0.85);\n  border-bottom-color: rgba(198, 200, 202, 0.85);\n}\n\n.b-toast-dark.b-toast-solid .toast {\n  background-color: #e3e5e5;\n}\n\n.b-toaster {\n  z-index: 1100;\n}\n\n.b-toaster .b-toaster-slot {\n  position: relative;\n  display: block;\n}\n\n.b-toaster .b-toaster-slot:empty {\n  display: none !important;\n}\n\n.b-toaster.b-toaster-top-right, .b-toaster.b-toaster-top-left, .b-toaster.b-toaster-top-center, .b-toaster.b-toaster-top-full, .b-toaster.b-toaster-bottom-right, .b-toaster.b-toaster-bottom-left, .b-toaster.b-toaster-bottom-center, .b-toaster.b-toaster-bottom-full {\n  position: fixed;\n  left: 0.5rem;\n  right: 0.5rem;\n  margin: 0;\n  padding: 0;\n  height: 0;\n  overflow: visible;\n}\n\n.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-top-full .b-toaster-slot, .b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot {\n  position: absolute;\n  max-width: 350px;\n  width: 100%;\n  /* IE11 fix */\n  left: 0;\n  right: 0;\n  padding: 0;\n  margin: 0;\n}\n\n.b-toaster.b-toaster-top-full .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot {\n  width: 100%;\n  max-width: 100%;\n}\n\n.b-toaster.b-toaster-top-full .b-toaster-slot .b-toast,\n.b-toaster.b-toaster-top-full .b-toaster-slot .toast, .b-toaster.b-toaster-bottom-full .b-toaster-slot .b-toast,\n.b-toaster.b-toaster-bottom-full .b-toaster-slot .toast {\n  width: 100%;\n  max-width: 100%;\n}\n\n.b-toaster.b-toaster-top-right, .b-toaster.b-toaster-top-left, .b-toaster.b-toaster-top-center, .b-toaster.b-toaster-top-full {\n  top: 0;\n}\n\n.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-top-full .b-toaster-slot {\n  top: 0.5rem;\n}\n\n.b-toaster.b-toaster-bottom-right, .b-toaster.b-toaster-bottom-left, .b-toaster.b-toaster-bottom-center, .b-toaster.b-toaster-bottom-full {\n  bottom: 0;\n}\n\n.b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot {\n  bottom: 0.5rem;\n}\n\n.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot {\n  margin-left: auto;\n}\n\n.b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot {\n  margin-right: auto;\n}\n\n.b-toaster.b-toaster-top-right .b-toast, .b-toaster.b-toaster-top-left .b-toast, .b-toaster.b-toaster-bottom-right .b-toast, .b-toaster.b-toaster-bottom-left .b-toast {\n  /*\n      &.b-toaster-enter-active,\n      &.b-toaster-enter-to {\n        .toast.fade {\n          // Delay the appearance of the toast until\n          // the move transition has completed\n          transition-delay: 0.175s;\n        }\n      }\n\n      &.b-toaster-move {\n        transition: transform 0.175s;\n        // transition-delay: 0.175s;\n      }\n\n      &.b-toaster-enter-active {\n        z-index: 0;\n      }\n\n      &.b-toaster-leave-active {\n        transition: transform 0.175s;\n      }\n\n      &.b-toaster-leave,\n      &.b-toaster-leave-active {\n        position: absolute;\n        z-index: 0;\n        transition-delay: 0.175s;\n\n        .toast.fade {\n          transition-delay: 0s;\n        }\n      }\n\n      &.b-toaster-leave {\n      }\n\n      &.b-toaster-leave-to {\n      }\n      */\n}\n\n.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-right .b-toast.b-toaster-move, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-move, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-move, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-move {\n  transition: -webkit-transform 0.175s;\n  transition: transform 0.175s;\n  transition: transform 0.175s, -webkit-transform 0.175s;\n}\n\n.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active .toast.fade {\n  transition-delay: 0.175s;\n}\n\n.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active {\n  position: absolute;\n  transition-delay: 0.175s;\n}\n\n.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active .toast.fade {\n  transition-delay: 0s;\n}\n\n.tooltip.b-tooltip-primary.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #007bff;\n}\n\n.tooltip.b-tooltip-primary.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #007bff;\n}\n\n.tooltip.b-tooltip-primary.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #007bff;\n}\n\n.tooltip.b-tooltip-primary.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #007bff;\n}\n\n.tooltip.b-tooltip-primary .tooltip-inner {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.tooltip.b-tooltip-secondary.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #6c757d;\n}\n\n.tooltip.b-tooltip-secondary.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #6c757d;\n}\n\n.tooltip.b-tooltip-secondary.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #6c757d;\n}\n\n.tooltip.b-tooltip-secondary.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #6c757d;\n}\n\n.tooltip.b-tooltip-secondary .tooltip-inner {\n  color: #fff;\n  background-color: #6c757d;\n}\n\n.tooltip.b-tooltip-success.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #28a745;\n}\n\n.tooltip.b-tooltip-success.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #28a745;\n}\n\n.tooltip.b-tooltip-success.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #28a745;\n}\n\n.tooltip.b-tooltip-success.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #28a745;\n}\n\n.tooltip.b-tooltip-success .tooltip-inner {\n  color: #fff;\n  background-color: #28a745;\n}\n\n.tooltip.b-tooltip-info.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #17a2b8;\n}\n\n.tooltip.b-tooltip-info.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #17a2b8;\n}\n\n.tooltip.b-tooltip-info.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #17a2b8;\n}\n\n.tooltip.b-tooltip-info.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #17a2b8;\n}\n\n.tooltip.b-tooltip-info .tooltip-inner {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\n.tooltip.b-tooltip-warning.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #ffc107;\n}\n\n.tooltip.b-tooltip-warning.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #ffc107;\n}\n\n.tooltip.b-tooltip-warning.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #ffc107;\n}\n\n.tooltip.b-tooltip-warning.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #ffc107;\n}\n\n.tooltip.b-tooltip-warning .tooltip-inner {\n  color: #212529;\n  background-color: #ffc107;\n}\n\n.tooltip.b-tooltip-danger.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #dc3545;\n}\n\n.tooltip.b-tooltip-danger.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #dc3545;\n}\n\n.tooltip.b-tooltip-danger.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #dc3545;\n}\n\n.tooltip.b-tooltip-danger.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #dc3545;\n}\n\n.tooltip.b-tooltip-danger .tooltip-inner {\n  color: #fff;\n  background-color: #dc3545;\n}\n\n.tooltip.b-tooltip-light.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #f8f9fa;\n}\n\n.tooltip.b-tooltip-light.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #f8f9fa;\n}\n\n.tooltip.b-tooltip-light.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #f8f9fa;\n}\n\n.tooltip.b-tooltip-light.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #f8f9fa;\n}\n\n.tooltip.b-tooltip-light .tooltip-inner {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\n.tooltip.b-tooltip-dark.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  border-top-color: #343a40;\n}\n\n.tooltip.b-tooltip-dark.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  border-right-color: #343a40;\n}\n\n.tooltip.b-tooltip-dark.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  border-bottom-color: #343a40;\n}\n\n.tooltip.b-tooltip-dark.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  border-left-color: #343a40;\n}\n\n.tooltip.b-tooltip-dark .tooltip-inner {\n  color: #fff;\n  background-color: #343a40;\n}\n/*# sourceMappingURL=bootstrap-vue.css.map */","$bv-input-group-dropdown-patched: false !default;\n\n// Make sure to include these style definitions only once\n@if $bv-input-group-dropdown-patched == false {\n  $bv-input-group-dropdown-patched: true;\n\n  // Workaround for https://github.com/bootstrap-vue/bootstrap-vue/issues/1560\n  // Workaround for https://github.com/bootstrap-vue/bootstrap-vue/issues/2114 */\n  // Based on: `~bootstrap/scss/_input-group.scss`\n  .input-group {\n    > .input-group-prepend > .btn-group,\n    > .input-group-append:not(:last-child) > .btn-group,\n    > .input-group-append:last-child > .btn-group:not(:last-child):not(.dropdown-toggle) {\n      > .btn {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n\n    > .input-group-append > .btn-group,\n    > .input-group-prepend:not(:first-child) > .btn-group,\n    > .input-group-prepend:first-child > .btn-group:not(:first-child) {\n      > .btn {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n  }\n}\n","// Temporary fix for cssnano bug: https://github.com/cssnano/cssnano/issues/712\n// By moving center to last value in `background-position` property\n// See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2599\n@if $enable-validation-icons {\n  .form-control {\n    .was-validated &:invalid,\n    .was-validated &:valid,\n    &.is-invalid,\n    &.is-valid {\n      background-position: right $input-height-inner-quarter center;\n    }\n  }\n}\n\n// Bootstrap v4.x does not have special styling for color input\n// So we define some basic styles to compensate\ninput[type=\"color\"].form-control {\n  height: $input-height;\n  // We use the smaller padding to make the color block larger\n  padding: ($input-padding-y-sm / 2) ($input-padding-x-sm / 2);\n}\n\ninput[type=\"color\"].form-control.form-control-sm,\n.input-group-sm input[type=\"color\"].form-control {\n  height: $input-height-sm;\n  // We use the smaller padding to make the color block larger\n  padding: ($input-padding-y-sm / 2) ($input-padding-x-sm / 2);\n}\n\ninput[type=\"color\"].form-control.form-control-lg,\n.input-group-lg input[type=\"color\"].form-control {\n  height: $input-height-lg;\n  padding: ($input-padding-y-sm / 2) ($input-padding-x-sm / 2);\n}\n\ninput[type=\"color\"].form-control:disabled {\n  // Disabled styling needs to be a bit different than regular inputs\n  background-color: $gray-500;\n  opacity: $btn-disabled-opacity;\n}\n\n// --- Base `.input-group > .custom-range` styling (no PR yet on Bootstrap v4) ---\n.input-group {\n  > .custom-range {\n    position: relative;\n    flex: 1 1 auto;\n    width: 1%;\n    margin-bottom: 0;\n\n    + .form-control,\n    + .form-control-plaintext,\n    + .custom-select,\n    + .custom-range,\n    + .custom-file {\n      margin-left: -$input-border-width;\n    }\n  }\n\n  > .form-control,\n  > .form-control-plaintext,\n  > .custom-select,\n  > .custom-range,\n  > .custom-file {\n    + .custom-range {\n      margin-left: -$input-border-width;\n    }\n  }\n\n  > .custom-range:focus {\n    z-index: 3;\n  }\n\n  > .custom-range {\n    &:not(:last-child) {\n      @include border-right-radius(0);\n    }\n    &:not(:first-child) {\n      @include border-left-radius(0);\n    }\n  }\n\n  > .custom-range {\n    height: $input-height;\n    padding: 0 $input-padding-x;\n    background-color: $input-bg;\n    background-clip: padding-box;\n    border: $input-border-width solid $input-border-color;\n    height: $input-height;\n\n    @if $enable-rounded {\n      border-radius: $input-border-radius;\n    } @else {\n      border-radius: 0;\n    }\n\n    @include box-shadow($input-box-shadow);\n    @include transition($input-transition);\n    // Bootstrap v4.3.2 has deprecated this mixin\n    // @include form-control-focus();\n    // So we manually add it's content here\n    &:focus {\n      color: $input-focus-color; // only needed for fallback to text input\n      background-color: $input-focus-bg;\n      border-color: $input-focus-border-color;\n      outline: 0;\n      @if $enable-shadows {\n        box-shadow: $input-box-shadow, $input-focus-box-shadow;\n      } @else {\n        box-shadow: $input-focus-box-shadow;\n      }\n    }\n\n    &:disabled,\n    &[readonly] {\n      background-color: $input-disabled-bg;\n    }\n  }\n}\n\n.input-group-lg > .custom-range {\n  height: $input-height-lg;\n  padding: 0 $input-padding-x-lg;\n  @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .custom-range {\n  height: $input-height-sm;\n  padding: 0 $input-padding-x-sm;\n  @include border-radius($input-border-radius-sm);\n}\n\n// --- <b-form-input>: custom-range validation styling - valid (no PR yet for Bootstrap v4.2) ---\n// Mixin for generating `.input-group .custom-range` validation styling\n@mixin bv-custom-range-validation-state($state, $color) {\n  .input-group .custom-range {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      border-color: $color;\n\n      &:focus {\n        border-color: $color;\n        box-shadow: 0 0 0 $input-focus-width rgba($color, 0.25);\n      }\n    }\n  }\n\n  .custom-range {\n    .was-validated &:#{$state},\n    &.is-#{$state} {\n      // Pseudo-elements must be split across multiple rulesets to have an affect\n      &:focus {\n        &::-webkit-slider-thumb {\n          box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-btn-focus-width lighten($color, 35%);\n        }\n        &::-moz-range-thumb {\n          box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-btn-focus-width lighten($color, 35%);\n        }\n        &::-ms-thumb {\n          box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-btn-focus-width lighten($color, 35%);\n        }\n      }\n\n      &::-webkit-slider-thumb {\n        background-color: $color;\n        background-image: none;\n\n        &:active {\n          background-color: lighten($color, 35%);\n          background-image: none;\n        }\n      }\n\n      &::-webkit-slider-runnable-track {\n        background-color: rgba($color, 0.35);\n      }\n\n      &::-moz-range-thumb {\n        background-color: $color;\n        background-image: none;\n\n        &:active {\n          background-color: lighten($color, 35%);\n          background-image: none;\n        }\n      }\n\n      &::-moz-range-track {\n        background: rgba($color, 0.35);\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n\n      &::-ms-thumb {\n        background-color: $color;\n        background-image: none;\n\n        &:active {\n          background-color: lighten($color, 35%);\n          background-image: none;\n        }\n      }\n\n      &::-ms-track-lower {\n        background: rgba($color, 0.35);\n      }\n      &::-ms-track-upper {\n        background: rgba($color, 0.35);\n      }\n    }\n  }\n}\n\n@include bv-custom-range-validation-state(\"valid\", $form-feedback-valid-color);\n@include bv-custom-range-validation-state(\"invalid\", $form-feedback-invalid-color);\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n  @if $enable-transitions {\n    @if length($transition) == 0 {\n      transition: $transition-base;\n    } @else {\n      transition: $transition;\n    }\n  }\n\n  @if $enable-prefers-reduced-motion-media-query {\n    @media (prefers-reduced-motion: reduce) {\n      transition: none;\n    }\n  }\n}\n","// Needed to allow Vue transition system to work with Bootstrap v4 .modal-backdrop\n// as modal opacity is 1 by default\n.modal-backdrop {\n  opacity: $modal-backdrop-opacity;\n}\n","@if $bv-enable-popover-variants {\n  @each $color, $value in $theme-colors {\n    .b-popover-#{$color} {\n      $po-bg-color: theme-color-level($color, $bv-popover-bg-level);\n      $po-border-color: theme-color-level($color, $bv-popover-border-level);\n      $po-color: theme-color-level($color, $bv-popover-color-level);\n      $po-header-bg: darken($po-bg-color, 3%);\n      $po-header-color: color-yiq($po-header-bg);\n      $po-arrow-color: $po-bg-color;\n      $po-arrow-color-bottom: $po-header-bg;\n      $po-arrow-outer-color: fade-in($po-border-color, 0.05);\n\n      &.popover {\n        background-color: $po-bg-color;\n        border-color: $po-border-color;\n      }\n\n      &.bs-popover-top {\n        > .arrow {\n          &::before {\n            border-top-color: $po-arrow-outer-color;\n          }\n\n          &::after {\n            border-top-color: $po-arrow-color;\n          }\n        }\n      }\n\n      &.bs-popover-right {\n        > .arrow {\n          &::before {\n            border-right-color: $po-arrow-outer-color;\n          }\n\n          &::after {\n            border-right-color: $po-arrow-color;\n          }\n        }\n      }\n\n      &.bs-popover-bottom {\n        > .arrow {\n          &::before {\n            border-bottom-color: $po-arrow-outer-color;\n          }\n\n          &::after {\n            // Use the header bg color\n            border-bottom-color: $po-arrow-color-bottom;\n          }\n        }\n\n        .popover-header::before {\n          border-bottom-color: $po-header-bg;\n        }\n      }\n\n      &.bs-popover-left {\n        > .arrow {\n          &::before {\n            border-left-color: $po-arrow-outer-color;\n          }\n\n          &::after {\n            border-left-color: $po-arrow-color;\n          }\n        }\n      }\n\n      &.bs-popover-auto {\n        &[x-placement^=\"top\"] {\n          @extend .bs-popover-top;\n        }\n        &[x-placement^=\"right\"] {\n          @extend .bs-popover-right;\n        }\n        &[x-placement^=\"bottom\"] {\n          @extend .bs-popover-bottom;\n        }\n        &[x-placement^=\"left\"] {\n          @extend .bs-popover-left;\n        }\n      }\n\n      .popover-header {\n        color: $po-header-color;\n        background-color: $po-header-bg;\n        border-bottom-color: darken($po-header-bg, 5%);\n      }\n\n      .popover-body {\n        color: $po-color;\n      }\n    }\n  }\n}\n",".table.b-table {\n  // --- General styling ---\n\n  // Table fixed header width layout\n  &.b-table-fixed {\n    // Fixed width columns\n    table-layout: fixed;\n  }\n\n  // Table busy styling\n  &[aria-busy=\"true\"] {\n    opacity: $b-table-busy-opacity;\n  }\n\n  // Details row styling\n  > tbody > tr.b-table-details > td {\n    border-top: none !important;\n  }\n\n  // Caption positioning\n  > caption {\n    caption-side: bottom;\n\n    &.b-table-caption-top {\n      caption-side: top !important;\n    }\n  }\n}\n\n// --- Header sort styling ---\n.table.b-table {\n  > thead,\n  > tfoot {\n    > tr {\n      > th {\n        &[aria-sort] {\n          // `&.sorting`\n          cursor: pointer;\n\n          // Up/down sort=null indicator\n          &::before {\n            display: inline-block;\n            float: right;\n            margin-left: $b-table-sort-icon-margin-left;\n            width: $b-table-sort-icon-width;\n            font-size: inherit;\n            line-height: inherit;\n            opacity: 0.4;\n            content: $b-table-sort-icon-null; // Up/down arrow\n            speak: none;\n          }\n\n          // Ascending indicator\n          &[aria-sort=\"ascending\"]::before {\n            // `&.sorting_asc::after.sorting_asc`\n            opacity: 1;\n            content: $b-table-sort-icon-ascending; // Down arrow\n          }\n\n          // Descending indicator\n          &[aria-sort=\"descending\"]::before {\n            // `&.sorting_desc::after`\n            opacity: 1;\n            content: $b-table-sort-icon-descending; // Up arrow\n          }\n        }\n      }\n    }\n  }\n}\n\n// --- Stacked tables ---\n.table.b-table {\n  &.b-table-stacked {\n    @each $breakpoint in map-keys($grid-breakpoints) {\n      $next: breakpoint-next($breakpoint, $grid-breakpoints);\n      $infix: breakpoint-infix($next, $grid-breakpoints);\n\n      &#{$infix} {\n        @include media-breakpoint-down($breakpoint) {\n          display: block;\n          width: 100%;\n\n          // Convert to blocks when stacked\n          > caption,\n          > tbody,\n          > tbody > tr,\n          > tbody > tr > td,\n          > tbody > tr > td {\n            display: block;\n          }\n\n          // Hide when stacked\n          > thead,\n          > tfoot {\n            display: none;\n\n            > tr.b-table-top-row,\n            > tr.b-table-bottom-row {\n              display: none;\n            }\n          }\n\n          // Caption positioning\n          > caption {\n            caption-side: top !important;\n          }\n\n          > tbody {\n            > tr {\n              // Turn cells with labels into micro-grids\n              > [data-label] {\n                // Cell header label pseudo element\n                &::before {\n                  content: attr(data-label);\n                  display: inline-block;\n                  width: $b-table-stacked-heading-width;\n                  float: left;\n                  text-align: right;\n                  overflow-wrap: break-word;\n                  font-weight: bold;\n                  font-style: normal;\n                  padding: 0;\n                  margin: 0;\n                }\n\n                // Add clearfix in-case field label wraps\n                &::after {\n                  display: block;\n                  clear: both;\n                  content: \"\";\n                }\n\n                // Cell value (we wrap the cell value in a div when stacked)\n                > div {\n                  display: inline-block;\n                  width: calc(100% - #{$b-table-stacked-heading-width});\n                  // Add \"gap\" between \"cells\"\n                  padding: 0 0 0 $b-table-stacked-gap;\n                  margin: 0;\n                }\n              }\n\n              // Dont show the fixed top/bottom rows\n              &.top-row,\n              &.bottom-row {\n                display: none;\n              }\n\n              // Give the top cell of each \"row\" a heavy border\n              > :first-child {\n                border-top-width: (3 * $table-border-width);\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n// --- Selectable rows ---\n.table.b-table {\n  &.b-table-selectable {\n    & > tbody > tr {\n      cursor: pointer;\n    }\n\n    &.b-table-selecting {\n      // Disabled text-selection when in range mode when\n      // at least one row selected\n      &.b-table-select-range > tbody > tr {\n        user-select: none;\n      }\n    }\n  }\n}\n","// --- <b-toast> custom SCSS ---\n\n// Toast wrapper element class (needed for list transition in toasters)\n.b-toast {\n  display: block;\n  position: relative;\n  max-width: $toast-max-width;\n  backface-visibility: hidden;\n  background-clip: padding-box;\n  z-index: 1;\n  @include border-radius($toast-border-radius);\n\n  &:not(:last-child) {\n    margin-bottom: $toast-padding-x;\n  }\n\n  &.b-toast-solid {\n    .toast {\n      background-color: rgba($toast-background-color, 1);\n    }\n  }\n\n  .toast {\n    // Override default boostrap v4.x opacity of 0\n    // Needed for re-usable fade transition\n    opacity: 1;\n\n    &.fade:not(.show) {\n      opacity: 0;\n    }\n\n    .toast-body {\n      display: block; // Needed when we use a link as the body element\n    }\n  }\n}\n\n@mixin b-toast-variant($background, $border, $color) {\n  // Based on alert-variant mixin\n  .toast {\n    background-color: rgba(lighten($background, 5%), 0.85);\n    border-color: rgba($border, 0.85);\n    color: $color;\n\n    .toast-header {\n      color: $color;\n      background-color: rgba($background, 0.85);\n      border-bottom-color: rgba($border, 0.85);\n    }\n\n    // .toast-body[href] {\n    //   color: darken($color, 10%);\n    // }\n  }\n\n  &.b-toast-solid {\n    .toast {\n      background-color: rgba(lighten($background, 5%), 1);\n    }\n  }\n}\n\n// Toast variants\n@each $color, $value in $theme-colors {\n  .b-toast-#{$color} {\n    @include b-toast-variant(\n      theme-color-level($color, $b-toast-bg-level),\n      theme-color-level($color, $b-toast-border-level),\n      theme-color-level($color, $b-toast-color-level)\n    );\n  }\n}\n","// --- <b-toaster> custom SCSS ---\n\n// NOTE:\n// This SCSS is prelimiary, and may change in the future.\n\n// Base toaster styling\n.b-toaster {\n  z-index: $b-toaster-zindex;\n\n  .b-toaster-slot {\n    position: relative;\n    display: block;\n\n    &:empty {\n      display: none !important;\n    }\n  }\n}\n\n// Built-in toaster styling\n//  - b-toaster-top-right\n//  - b-toaster-top-left\n//  - b-toaster-top-center\n//  - b-toaster-top-full\n//  - b-toaster-bottom-right\n//  - b-toaster-bottom-left\n//  - b-toaster-bottom-center\n//  - b-toaster-bottom-full\n.b-toaster {\n  &.b-toaster-top-right,\n  &.b-toaster-top-left,\n  &.b-toaster-top-center,\n  &.b-toaster-top-full,\n  &.b-toaster-bottom-right,\n  &.b-toaster-bottom-left,\n  &.b-toaster-bottom-center,\n  &.b-toaster-bottom-full {\n    position: fixed;\n    left: $b-toaster-offset-left;\n    right: $b-toaster-offset-right;\n    margin: 0;\n    padding: 0;\n    height: 0;\n    overflow: visible;\n\n    .b-toaster-slot {\n      position: absolute;\n      max-width: $toast-max-width;\n      width: 100%; /* IE11 fix */\n      left: 0;\n      right: 0;\n      padding: 0;\n      margin: 0;\n    }\n  }\n\n  &.b-toaster-top-full,\n  &.b-toaster-bottom-full {\n    .b-toaster-slot {\n      width: 100%;\n      max-width: 100%;\n\n      .b-toast,\n      .toast {\n        // Override Bootstrap toast max-width\n        width: 100%;\n        max-width: 100%;\n      }\n    }\n  }\n\n  &.b-toaster-top-right,\n  &.b-toaster-top-left,\n  &.b-toaster-top-center,\n  &.b-toaster-top-full {\n    top: 0;\n\n    .b-toaster-slot {\n      top: $b-toaster-offset-top;\n    }\n  }\n\n  &.b-toaster-bottom-right,\n  &.b-toaster-bottom-left,\n  &.b-toaster-bottom-center,\n  &.b-toaster-bottom-full {\n    bottom: 0;\n\n    .b-toaster-slot {\n      bottom: $b-toaster-offset-bottom;\n    }\n  }\n\n  &.b-toaster-top-right,\n  &.b-toaster-bottom-right,\n  &.b-toaster-top-center,\n  &.b-toaster-bottom-center {\n    .b-toaster-slot {\n      margin-left: auto;\n    }\n  }\n\n  &.b-toaster-top-left,\n  &.b-toaster-bottom-left,\n  &.b-toaster-top-center,\n  &.b-toaster-bottom-center {\n    .b-toaster-slot {\n      margin-right: auto;\n    }\n  }\n}\n","// --- <b-toast> custom transition SCSS ---\n\n// This is still a work in progress... will be changing\n// PortalVue appears to have issues with transition classes on portaled items\n\n.b-toaster {\n  &.b-toaster-top-right,\n  &.b-toaster-top-left,\n  &.b-toaster-bottom-right,\n  &.b-toaster-bottom-left {\n    .b-toast {\n      &.b-toaster-enter-active,\n      &.b-toaster-leave-active,\n      &.b-toaster-move {\n        transition: transform 0.175s;\n      }\n\n      &.b-toaster-enter {\n      }\n\n      &.b-toaster-enter-to,\n      &.b-toaster-enter-active {\n        .toast.fade {\n          // Delay the appearance of the toast until\n          // the move transition has completed\n          transition-delay: 0.175s;\n        }\n      }\n\n      &.b-toaster-enter-to {\n      }\n\n      &.b-toaster-leave-active {\n        position: absolute;\n        transition-delay: 0.175s;\n\n        .toast.fade {\n          transition-delay: 0s;\n        }\n      }\n\n      &.b-toaster-leave-to {\n      }\n\n      /*\n      &.b-toaster-enter-active,\n      &.b-toaster-enter-to {\n        .toast.fade {\n          // Delay the appearance of the toast until\n          // the move transition has completed\n          transition-delay: 0.175s;\n        }\n      }\n\n      &.b-toaster-move {\n        transition: transform 0.175s;\n        // transition-delay: 0.175s;\n      }\n\n      &.b-toaster-enter-active {\n        z-index: 0;\n      }\n\n      &.b-toaster-leave-active {\n        transition: transform 0.175s;\n      }\n\n      &.b-toaster-leave,\n      &.b-toaster-leave-active {\n        position: absolute;\n        z-index: 0;\n        transition-delay: 0.175s;\n\n        .toast.fade {\n          transition-delay: 0s;\n        }\n      }\n\n      &.b-toaster-leave {\n      }\n\n      &.b-toaster-leave-to {\n      }\n      */\n    }\n  }\n}\n","// Create custom variants for tooltips\n@if $bv-enable-tooltip-variants {\n  @each $color, $value in $theme-colors {\n    .tooltip.b-tooltip-#{$color} {\n      $tip-bg-color: theme-color-level($color, $bv-tooltip-bg-level);\n      $tip-text-color: color-yiq($tip-bg-color);\n\n      &.bs-tooltip-top {\n        .arrow::before {\n          border-top-color: $tip-bg-color;\n        }\n      }\n\n      &.bs-tooltip-right {\n        .arrow::before {\n          border-right-color: $tip-bg-color;\n        }\n      }\n\n      &.bs-tooltip-bottom {\n        .arrow::before {\n          border-bottom-color: $tip-bg-color;\n        }\n      }\n\n      &.bs-tooltip-left {\n        .arrow::before {\n          border-left-color: $tip-bg-color;\n        }\n      }\n\n      &.bs-tooltip-auto {\n        &[x-placement^=\"top\"] {\n          @extend .bs-tooltip-top;\n        }\n        &[x-placement^=\"right\"] {\n          @extend .bs-tooltip-right;\n        }\n        &[x-placement^=\"bottom\"] {\n          @extend .bs-tooltip-bottom;\n        }\n        &[x-placement^=\"left\"] {\n          @extend .bs-tooltip-left;\n        }\n      }\n\n      .tooltip-inner {\n        color: $tip-text-color;\n        background-color: $tip-bg-color;\n      }\n    }\n  }\n}\n"]}
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.min.js-9- */
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.min.js:10:!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("vue")):"function"==typeof define&&define.amd?define(["vue"],e):(t=t||self).bootstrapVue=e(t.Vue)}(this,function(t){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t}function r(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function s(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),i.push.apply(i,n)}return i}function a(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?s(i,!0).forEach(function(e){r(t,e,i[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):s(i).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))})}return t}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function h(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?d(t):e}function f(t,e,i){return(f="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,i){var n=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t}(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(i):o.value}})(t,e,i||t)}function p(t){return function(t){if(Array.isArray(t)){for(var e=0,i=new Array(t.length);e<t.length;e++)i[e]=t[e];return i}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}t=t&&t.hasOwnProperty("default")?t.default:t;var m,g,v="undefined"!=typeof window,b="undefined"!=typeof document,y="undefined"!=typeof navigator,S="undefined"!=typeof Promise,B="undefined"!=typeof MutationObserver||"undefined"!=typeof WebKitMutationObserver||"undefined"!=typeof MozMutationObserver,w=v&&b&&y,T=w?window.navigator.userAgent.toLowerCase():"",k=T.indexOf("jsdom")>0,$=(/msie|trident/.test(T),function(){var t=!1;if(w)try{var e={get passive(){t=!0}};window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch(e){t=!1}return t}()),C=w&&("ontouchstart"in document.documentElement||navigator.maxTouchPoints>0),x=w&&Boolean(window.PointerEvent||window.MSPointerEvent),_=w&&"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype,P=function(){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i="undefined"!=typeof process&&process&&process.env||{};return t?i[t]||e:i}("BOOTSTRAP_VUE_NO_WARN")},O=function(t){P()||console.warn("[BootstrapVue warn]: ".concat(t))},I=function(t){return!w&&(O("".concat(t,": Can not be called during SSR.")),!0)},E=function(t){return!S&&(O("".concat(t,": Requires Promise support.")),!0)},F=Array.from,N=Array.isArray,V=function(t,e){return-1!==t.indexOf(e)},D=function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return Array.prototype.concat.apply([],e)},A=Object.assign,L=Object.getOwnPropertyNames,H=Object.keys,M=Object.defineProperties,R=Object.defineProperty,z=Object.freeze,j=Object.create,G=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},W=function(t){return null!==t&&"object"===e(t)},U=function(t){return"[object Object]"===Object.prototype.toString.call(t)},q=function(t,e){return H(t).filter(function(t){return-1===e.indexOf(t)}).reduce(function(e,i){return a({},e,r({},i,t[i]))},{})},K=function(){return{enumerable:!0,configurable:!1,writable:!1}},X=function(t){return e(t)},Y=function(t){return void 0===t},Z=function(t){return null===t},J=function(t){return Y(t)||Z(t)},Q=function(t){return"function"===X(t)},tt=function(t){return"boolean"===X(t)},et=function(t){return"string"===X(t)},it=function(t){return"number"===X(t)},nt=function(t){return t instanceof Date},ot=function(t){return t instanceof Event},rt=function(t){return"RegExp"===function(t){return Object.prototype.toString.call(t).slice(8,-1)}(t)},st=function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return N(e)?e.reduce(function(e,i){return[].concat(p(e),[t(i,i)])},[]):U(e)?H(e).reduce(function(i,n){return a({},i,r({},n,t(e[n],e[n])))},{}):i},at=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!(e=N(e)?e.join("."):e)||!W(t))return i;if(e in t)return t[e];var n=(e=String(e).replace(/\[(\d+)]/g,".$1")).split(".").filter(Boolean);return 0===n.length?i:n.every(function(e){return W(t)&&e in t&&null!=(t=t[e])})?t:i},lt=function t(e){return H(e).forEach(function(i){var n=e[i];e[i]=n&&(U(n)||N(n))?t(n):n}),z(e)}({breakpoints:["xs","sm","md","lg","xl"],BAlert:{dismissLabel:"Close",variant:"info"},BBadge:{variant:"secondary"},BButton:{variant:"secondary"},BButtonClose:{textVariant:null,ariaLabel:"Close"},BCardSubTitle:{subTitleTextVariant:"muted"},BCarousel:{labelPrev:"Previous Slide",labelNext:"Next Slide",labelGotoSlide:"Goto Slide",labelIndicators:"Select a slide to display"},BDropdown:{toggleText:"Toggle Dropdown",variant:"secondary",splitVariant:null},BFormFile:{browseText:"Browse",placeholder:"No file chosen",dropPlaceholder:"Drop files here"},BFormText:{textVariant:"muted"},BImg:{blankColor:"transparent"},BImgLazy:{blankColor:"transparent"},BJumbotron:{bgVariant:null,borderVariant:null,textVariant:null},BListGroupItem:{variant:null},BModal:{titleTag:"h5",size:"md",headerBgVariant:null,headerBorderVariant:null,headerTextVariant:null,headerCloseVariant:null,bodyBgVariant:null,bodyTextVariant:null,footerBgVariant:null,footerBorderVariant:null,footerTextVariant:null,cancelTitle:"Cancel",cancelVariant:"secondary",okTitle:"OK",okVariant:"primary",headerCloseLabel:"Close"},BNavbar:{variant:null},BNavbarToggle:{label:"Toggle navigation"},BPopover:{boundary:"scrollParent",boundaryPadding:5,customClass:null,delay:0,variant:null},BProgress:{variant:null},BProgressBar:{variant:null},BSpinner:{variant:null},BTable:{selectedVariant:"primary",headVariant:null,footVariant:null},BToast:{toaster:"b-toaster-top-right",autoHideDelay:5e3,variant:null,toastClass:null,headerClass:null,bodyClass:null,solid:!1},BToaster:{ariaLive:null,ariaAtomic:null,role:null},BTooltip:{boundary:"scrollParent",boundaryPadding:5,customClass:null,delay:0,variant:null}}),ut=function(){function t(){i(this,t),this.$_config={},this.$_cachedBreakpoints=null}return o(t,[{key:"getDefaults",value:function(){return this.defaults}},{key:"setConfig",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(U(e)){var i=L(e);i.forEach(function(i){if(G(lt,i)){var n=e[i];if("breakpoints"===i){var o=e.breakpoints;!N(o)||o.length<2||o.some(function(t){return!et(t)||0===t.length})?O('config: "breakpoints" must be an array of at least 2 breakpoint names'):t.$_config.breakpoints=st(o)}else if(U(n)){L(n).forEach(function(e){G(lt[i],e)?(t.$_config[i]=t.$_config[i]||{},Y(n[e])||(t.$_config[i][e]=st(n[e]))):O('config: unknown config property "'.concat(i,'.{$prop}"'))})}}else O('config: unknown config property "'.concat(i,'"'))})}}},{key:"resetConfig",value:function(){this.$_config={}}},{key:"getConfig",value:function(){return st(this.$_config)}},{key:"getConfigValue",value:function(t){return st(at(this.$_config,t,at(lt,t)))}},{key:"defaults",get:function(){return lt}}],[{key:"Defaults",get:function(){return lt}}]),t}(),ct=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;i.prototype.$bvConfig=t.prototype.$bvConfig=i.prototype.$bvConfig||t.prototype.$bvConfig||new ut,i.prototype.$bvConfig.setConfig(e)},dt=(m=!1,g=["Multiple instances of Vue detected!","You may need to set up an alias for Vue in your bundler config.","See: https://bootstrap-vue.js.org/docs#using-module-bundlers"].join("\n"),function(e){m||t===e||k||O(g),m=!0}),ht=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.components,i=t.directives,n=t.plugins,o=function t(o){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.installed||(t.installed=!0,dt(o),ct(r,o),gt(o,e),bt(o,i),pt(o,n))};return o.installed=!1,o},ft=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return a({},e,{install:ht(t)})},pt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var i in e)i&&e[i]&&t.use(e[i])},mt=function(t,e,i){t&&e&&i&&t.component(e,i)},gt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var i in e)mt(t,i,e[i])},vt=function(t,e,i){t&&e&&i&&t.directive(e.replace(/^VB/,"B"),i)},bt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var i in e)vt(t,i,e[i])},yt=function(t){var e=j(null);return function(){for(var i=arguments.length,n=new Array(i),o=0;o<i;o++)n[o]=arguments[o];var r=JSON.stringify(n);return e[r]=e[r]||t.apply(null,n)}},St=t.prototype,Bt=function(t){return St.$bvConfig?St.$bvConfig.getConfigValue(t):st(at(lt,t))},wt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e?Bt("".concat(t,".").concat(e)):Bt(t)||{}},Tt=function(){return Bt("breakpoints")},kt=yt(function(){return Tt()}),$t=yt(function(){var t=st(kt());return t[0]="",t}),Ct=v?window:{},xt=b?document:{},_t="undefined"!=typeof Element?Element.prototype:{},Pt=_t.matches||_t.msMatchesSelector||_t.webkitMatchesSelector,Ot=_t.closest||function(t){var e=this;do{if(zt(e,t))return e;e=e.parentElement||e.parentNode}while(!Z(e)&&e.nodeType===Node.ELEMENT_NODE);return null},It=Ct.requestAnimationFrame||Ct.webkitRequestAnimationFrame||Ct.mozRequestAnimationFrame||Ct.msRequestAnimationFrame||Ct.oRequestAnimationFrame||function(t){return setTimeout(t,16)},Et=Ct.MutationObserver||Ct.WebKitMutationObserver||Ct.MozMutationObserver||null,Ft=function(t){return $?W(t)?t:{useCapture:Boolean(t||!1)}:Boolean(W(t)?t.useCapture:t)},Nt=function(t,e,i,n){t&&t.addEventListener&&t.addEventListener(e,i,Ft(n))},Vt=function(t,e,i,n){t&&t.removeEventListener&&t.removeEventListener(e,i,Ft(n))},Dt=function(t){return Boolean(t&&t.nodeType===Node.ELEMENT_NODE)},At=function(t){if(!Dt(t)||!Gt(xt.body,t))return!1;if("none"===t.style.display)return!1;var e=Qt(t);return Boolean(e&&e.height>0&&e.width>0)},Lt=function(t){return!Dt(t)||t.disabled||Boolean(Zt(t,"disabled"))||Kt(t,"disabled")},Ht=function(t){return Dt(t)&&t.offsetHeight},Mt=function(t,e){return F((Dt(e)?e:xt).querySelectorAll(t))},Rt=function(t,e){return(Dt(e)?e:xt).querySelector(t)||null},zt=function(t,e){return!!Dt(t)&&Pt.call(t,e)},jt=function(t,e){if(!Dt(e))return null;var i=Ot.call(e,t);return i===e?null:i},Gt=function(t,e){return!(!t||!Q(t.contains))&&t.contains(e)},Wt=function(t){return xt.getElementById(/^#/.test(t)?t.slice(1):t)||null},Ut=function(t,e){e&&Dt(t)&&t.classList&&t.classList.add(e)},qt=function(t,e){e&&Dt(t)&&t.classList&&t.classList.remove(e)},Kt=function(t,e){return!!(e&&Dt(t)&&t.classList)&&t.classList.contains(e)},Xt=function(t,e,i){e&&Dt(t)&&t.setAttribute(e,i)},Yt=function(t,e){e&&Dt(t)&&t.removeAttribute(e)},Zt=function(t,e){return e&&Dt(t)?t.getAttribute(e):null},Jt=function(t,e){return e&&Dt(t)?t.hasAttribute(e):null},Qt=function(t){return Dt(t)?t.getBoundingClientRect():null},te=function(t){return v&&Dt(t)?Ct.getComputedStyle(t):{}},ee=function(){return v&&Ct.getSelection?Ct.getSelection():null},ie=function(t){var e={top:0,left:0};if(!Dt(t)||0===t.getClientRects().length)return e;var i=Qt(t);if(i){var n=t.ownerDocument.defaultView;e.top=i.top+n.pageYOffset,e.left=i.left+n.pageXOffset}return e},ne=function(t){var e={top:0,left:0};if(!Dt(t))return e;var i={top:0,left:0},n=te(t);if("fixed"===n.position)e=Qt(t)||e;else{e=ie(t);for(var o=t.ownerDocument,r=t.offsetParent||o.documentElement;r&&(r===o.body||r===o.documentElement)&&"static"===te(r).position;)r=r.parentNode;if(r&&r!==t&&r.nodeType===Node.ELEMENT_NODE){i=ie(r);var s=te(r);i.top+=parseFloat(s.borderTopWidth),i.left+=parseFloat(s.borderLeftWidth)}}return{top:e.top-i.top-parseFloat(n.marginTop),left:e.left-i.left-parseFloat(n.marginLeft)}},oe=function(){return(oe=Object.assign||function(t){for(var e,i=1,n=arguments.length;i<n;i++)for(var o in e=arguments[i])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},re={kebab:/-(\w)/g,styleProp:/:(.*)/,styleList:/;(?![^(]*\))/g};function se(t,e){return e?e.toUpperCase():""}function ae(t){for(var e,i={},n=0,o=t.split(re.styleList);n<o.length;n++){var r=o[n].split(re.styleProp),s=r[0],a=r[1];(s=s.trim())&&("string"==typeof a&&(a=a.trim()),i[(e=s,e.replace(re.kebab,se))]=a)}return i}function le(){for(var t,e,i={},n=arguments.length;n--;)for(var o=0,r=Object.keys(arguments[n]);o<r.length;o++)switch(t=r[o]){case"class":case"style":case"directives":if(Array.isArray(i[t])||(i[t]=[]),"style"===t){var s=void 0;s=Array.isArray(arguments[n].style)?arguments[n].style:[arguments[n].style];for(var a=0;a<s.length;a++){var l=s[a];"string"==typeof l&&(s[a]=ae(l))}arguments[n].style=s}i[t]=i[t].concat(arguments[n][t]);break;case"staticClass":if(!arguments[n][t])break;void 0===i[t]&&(i[t]=""),i[t]&&(i[t]+=" "),i[t]+=arguments[n][t].trim();break;case"on":case"nativeOn":i[t]||(i[t]={});for(var u=0,c=Object.keys(arguments[n][t]||{});u<c.length;u++)e=c[u],i[t][e]?i[t][e]=[].concat(i[t][e],arguments[n][t][e]):i[t][e]=arguments[n][t][e];break;case"attrs":case"props":case"domProps":case"scopedSlots":case"staticStyle":case"hook":case"transition":i[t]||(i[t]={}),i[t]=oe({},arguments[n][t],i[t]);break;case"slot":case"key":case"ref":case"tag":case"show":case"keepAlive":default:i[t]||(i[t]=arguments[n][t])}return i}var ue={name:"",enterClass:"",enterActiveClass:"",enterToClass:"show",leaveClass:"show",leaveActiveClass:"",leaveToClass:""},ce=a({},ue,{enterActiveClass:"fade",leaveActiveClass:"fade"}),de=t.extend({name:"BVTransition",functional:!0,props:{noFade:{type:Boolean,default:!1},mode:{type:String},transProps:{type:Object,default:null}},render:function(t,e){var i=e.children,n=e.data,o=(e.listeners,e.props),r=o.transProps;return U(r)||(r=o.noFade?ue:ce),t("transition",le(n,{props:r=a({mode:o.mode},r,{css:!0})}),i)}}),he=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Boolean(e[t]||i[t])},fe=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=i[t]||n[t];return Q(o)?o(e):o},pe={methods:{hasNormalizedSlot:function(t){return he(t,this.$scopedSlots,this.$slots)},normalizeSlot:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=fe(t,e,this.$scopedSlots,this.$slots);return i?D(i):i}}},me="BButtonClose",ge={disabled:{type:Boolean,default:!1},ariaLabel:{type:String,default:function(){return wt(me,"ariaLabel")}},textVariant:{type:String,default:function(){return wt(me,"textVariant")}}},ve=t.extend({name:me,functional:!0,props:ge,render:function(t,e){var i=e.props,n=e.data,o=(e.listeners,e.slots),s=e.scopedSlots,a=o(),l=s||{},u={staticClass:"close",class:r({},"text-".concat(i.textVariant),i.textVariant),attrs:{type:"button",disabled:i.disabled,"aria-label":i.ariaLabel?String(i.ariaLabel):null},on:{click:function(t){i.disabled&&ot(t)&&(t.stopPropagation(),t.preventDefault())}}};return he("default",l,a)||(u.domProps={innerHTML:"&times;"}),t("button",le(n,u),fe("default",{},l,a))}}),be=function(t){return""===t||tt(t)?0:(t=parseInt(t,10))>0?t:0},ye=function(t){return""===t||!0===t||!(parseInt(t,10)<1)&&Boolean(t)},Se=function(t){return!isNaN(parseInt(t,10))},Be=ft({components:{BAlert:t.extend({name:"BAlert",mixins:[pe],model:{prop:"show",event:"input"},props:{variant:{type:String,default:function(){return wt("BAlert","variant")}},dismissible:{type:Boolean,default:!1},dismissLabel:{type:String,default:function(){return wt("BAlert","dismissLabel")}},show:{type:[Boolean,Number,String],default:!1},fade:{type:Boolean,default:!1}},data:function(){return{countDownTimerId:null,countDown:0,localShow:ye(this.show)}},watch:{show:function(t){this.countDown=be(t),this.localShow=ye(t)},countDown:function(t){var e=this;this.clearTimer(),Se(this.show)&&(this.$emit("dismiss-count-down",t),this.show!==t&&this.$emit("input",t),t>0?(this.localShow=!0,this.countDownTimerId=setTimeout(function(){e.countDown--},1e3)):this.$nextTick(function(){It(function(){e.localShow=!1})}))},localShow:function(t){t||!this.dismissible&&!Se(this.show)||this.$emit("dismissed"),Se(this.show)||this.show===t||this.$emit("input",t)}},created:function(){this.countDown=be(this.show),this.localShow=ye(this.show)},mounted:function(){this.countDown=be(this.show),this.localShow=ye(this.show)},beforeDestroy:function(){this.clearTimer()},methods:{dismiss:function(){this.clearTimer(),this.countDown=0,this.localShow=!1},clearTimer:function(){this.countDownTimerId&&(clearInterval(this.countDownTimerId),this.countDownTimerId=null)}},render:function(t){var e;if(this.localShow){var i=t();this.dismissible&&(i=t(ve,{attrs:{"aria-label":this.dismissLabel},on:{click:this.dismiss}},[this.normalizeSlot("dismiss")])),e=[e=t("div",{key:this._uid,staticClass:"alert",class:r({"alert-dismissible":this.dismissible},"alert-".concat(this.variant),this.variant),attrs:{role:"alert","aria-live":"polite","aria-atomic":!0}},[i,this.normalizeSlot("default")])]}return t(de,{props:{noFade:!this.fade}},e)}})}}),we=function(t){return t},Te=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:we;return(N(t)?t.slice():H(t)).reduce(function(t,n){return t[i(n)]=e[n],t},{})},ke=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return J(t)?"":N(t)||U(t)&&t.toString===Object.prototype.toString?JSON.stringify(t,null,e):String(t)},$e=/%2C/g,Ce=/[!'()*]/g,xe=function(t){return"%"+t.charCodeAt(0).toString(16)},_e=function(t){return encodeURIComponent(ke(t)).replace(Ce,xe).replace($e,",")},Pe=decodeURIComponent,Oe=function(t){if(!U(t))return"";var e=H(t).map(function(e){var i=t[e];return Y(i)?"":Z(i)?_e(e):N(i)?i.reduce(function(t,i){return Z(i)?t.push(_e(e)):Y(i)||t.push(_e(e)+"="+_e(i)),t},[]).join("&"):_e(e)+"="+_e(i)}).filter(function(t){return t.length>0}).join("&");return e?"?".concat(e):""},Ie=function(t){var e={};return(t=ke(t).trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var i=t.replace(/\+/g," ").split("="),n=Pe(i.shift()),o=i.length>0?Pe(i.join("=")):null;Y(e[n])?e[n]=o:N(e[n])?e[n].push(o):e[n]=[e[n],o]}),e):e},Ee=function(t){return"a"!==ke(t).toLowerCase()},Fe=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.href,i=t.to,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"a",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"/";if(Ee(n))return null;if(e)return e;if(i){if(et(i))return i||r;if(U(i)&&(i.path||i.query||i.hash)){var s=ke(i.path),a=Oe(i.query),l=ke(i.hash);return l=l&&"#"!==l.charAt(0)?"#".concat(l):l,"".concat(s).concat(a).concat(l)||r}}return o},Ne=function(){return{href:{type:String,default:null},rel:{type:String,default:null},target:{type:String,default:"_self"},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},to:{type:[String,Object],default:null},append:{type:Boolean,default:!1},replace:{type:Boolean,default:!1},event:{type:[String,Array],default:"click"},activeClass:{type:String},exact:{type:Boolean,default:!1},exactActiveClass:{type:String},routerTag:{type:String,default:"a"},noPrefetch:{type:Boolean,default:!1}}},Ve=t.extend({name:"BLink",mixins:[pe],inheritAttrs:!1,props:Ne(),computed:{computedTag:function(){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.to,i=t.disabled,n=arguments.length>1?arguments[1]:void 0;return n.$router&&e&&!i?n.$nuxt?"nuxt-link":"router-link":"a"}({to:this.to,disabled:this.disabled},this)},isRouterLink:function(){return Ee(this.computedTag)},computedRel:function(){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.target,i=t.rel;return"_blank"===e&&Z(i)?"noopener":i||null}({target:this.target,rel:this.rel})},computedHref:function(){return Fe({to:this.to,href:this.href},this.computedTag)},computedProps:function(){return this.isRouterLink?a({},this.$props,{tag:this.routerTag}):{}}},methods:{onClick:function(t){var e=arguments,i=ot(t),n=this.isRouterLink,o=this.$listeners.click;i&&this.disabled?(t.stopPropagation(),t.stopImmediatePropagation()):(n&&t.currentTarget.__vue__&&t.currentTarget.__vue__.$emit("click",t),D(o).filter(function(t){return Q(t)}).forEach(function(t){t.apply(void 0,p(e))}),this.$root.$emit("clicked::link",t)),i&&(this.disabled||!n&&"#"===this.computedHref)&&t.preventDefault()},focus:function(){this.$el&&this.$el.focus&&this.$el.focus()},blur:function(){this.$el&&this.$el.blur&&this.$el.blur()}},render:function(t){var e=this.computedTag,i=this.computedRel,n=this.computedHref,o=this.isRouterLink,r=a({},this.$listeners,{click:this.onClick}),s={class:{active:this.active,disabled:this.disabled},attrs:a({},this.$attrs,{rel:i,target:this.target,tabindex:this.disabled?"-1":Y(this.$attrs.tabindex)?null:this.$attrs.tabindex,"aria-disabled":this.disabled?"true":null}),props:this.computedProps,on:o?{}:r,nativeOn:o?r:{}};return n?s.attrs.href=n:delete s.props.href,t(e,s,this.normalizeSlot("default"))}}),De=Ne();delete De.href.default,delete De.to.default;var Ae=a({},De,{tag:{type:String,default:"span"},variant:{type:String,default:function(){return wt("BBadge","variant")}},pill:{type:Boolean,default:!1}}),Le=ft({components:{BBadge:t.extend({name:"BBadge",functional:!0,props:Ae,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.href||i.to?Ve:i.tag,le(n,{staticClass:"badge",class:[i.variant?"badge-".concat(i.variant):"badge-secondary",{"badge-pill":Boolean(i.pill),active:i.active,disabled:i.disabled}],props:Te(De,i)}),o)}})}}),He=/(<([^>]+)>)/gi,Me=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return String(t).replace(He,"")},Re=function(t,e){return t?{innerHTML:t}:e?{textContent:e}:{}},ze=a({},Ne(),{text:{type:String,default:null},html:{type:String,default:null},ariaCurrent:{type:String,default:"location"}}),je=t.extend({name:"BBreadcrumbLink",functional:!0,props:ze,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.active?"span":Ve,s={props:Te(ze,i)};return i.active&&(s.attrs={"aria-current":i.ariaCurrent}),o||(s.domProps=Re(i.html,i.text)),t(r,le(n,s),o)}}),Ge=t.extend({name:"BBreadcrumbItem",functional:!0,props:ze,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t("li",le(n,{staticClass:"breadcrumb-item",class:{active:i.active}}),[t(je,{props:i},o)])}}),We={items:{type:Array,default:null}},Ue=ft({components:{BBreadcrumb:t.extend({name:"BBreadcrumb",functional:!0,props:We,render:function(t,e){var i=e.props,n=e.data,o=e.children;if(N(i.items)){var r=!1;o=i.items.map(function(e,n){W(e)||(e={text:ke(e)});var o=e.active;return o&&(r=!0),o||r||(o=n+1===i.items.length),t(Ge,{props:a({},e,{active:o})})})}return t("ol",le(n,{staticClass:"breadcrumb"}),o)}}),BBreadcrumbItem:Ge,BBreadcrumbLink:je}}),qe={block:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{type:String,default:null},variant:{type:String,default:function(){return wt("BButton","variant")}},type:{type:String,default:"button"},tag:{type:String,default:"button"},pill:{type:Boolean,default:!1},squared:{type:Boolean,default:!1},pressed:{type:Boolean,default:null}},Ke=Ne();delete Ke.href.default,delete Ke.to.default;var Xe=H(Ke),Ye=a({},Ke,{},qe),Ze=function(t){"focusin"===t.type?Ut(t.target,"focus"):"focusout"===t.type&&qt(t.target,"focus")},Je=function(t){return Boolean(t.href||t.to||t.tag&&"a"===String(t.tag).toLowerCase())},Qe=function(t){return tt(t.pressed)},ti=function(t){return!Je(t)&&(!t.tag||"button"===String(t.tag).toLowerCase())},ei=function(t){var e;return["btn-".concat(t.variant||wt("BButton","variant")),(e={},r(e,"btn-".concat(t.size),Boolean(t.size)),r(e,"btn-block",t.block),r(e,"rounded-pill",t.pill),r(e,"rounded-0",t.squared&&!t.pill),r(e,"disabled",t.disabled),r(e,"active",t.pressed),e)]},ii=function(t){return Je(t)?Te(Xe,t):null},ni=function(t,e){var i=ti(t),n=Je(t),o=Qe(t),r=function(t){return!Je(t)&&!ti(t)}(t),s=e.attrs&&e.attrs.role?e.attrs.role:null,a=e.attrs?e.attrs.tabindex:null;return r&&(a="0"),{type:i&&!n?t.type:null,disabled:i?t.disabled:null,role:r?"button":s,"aria-disabled":r?String(t.disabled):null,"aria-pressed":o?String(t.pressed):null,autocomplete:o?"off":null,tabindex:t.disabled&&!i?"-1":a}},oi=t.extend({name:"BButton",functional:!0,props:Ye,render:function(t,e){var i=e.props,n=e.data,o=e.listeners,r=e.children,s=Qe(i),a=Je(i),l={click:function(t){i.disabled&&ot(t)?(t.stopPropagation(),t.preventDefault()):s&&o&&o["update:pressed"]&&D(o["update:pressed"]).forEach(function(t){Q(t)&&t(!i.pressed)})}};s&&(l.focusin=Ze,l.focusout=Ze);var u={staticClass:"btn",class:ei(i),props:ii(i),attrs:ni(i,n),on:l};return t(a?Ve:i.tag,le(n,u),r)}}),ri=ft({components:{BButton:oi,BBtn:oi,BButtonClose:ve,BBtnClose:ve}}),si={vertical:{type:Boolean,default:!1},size:{type:String,default:null},tag:{type:String,default:"div"},ariaRole:{type:String,default:"group"}},ai=t.extend({name:"BButtonGroup",functional:!0,props:si,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,le(n,{class:r({"btn-group":!i.vertical,"btn-group-vertical":i.vertical},"btn-group-".concat(i.size),Boolean(i.size)),attrs:{role:i.ariaRole}}),o)}}),li=ft({components:{BButtonGroup:ai,BBtnGroup:ai}}),ui=32,ci=13,di=27,hi=37,fi=38,pi=39,mi=40,gi=36,vi=35,bi=[".btn:not(.disabled):not([disabled]):not(.dropdown-item)",".form-control:not(.disabled):not([disabled])","select:not(.disabled):not([disabled])",'input[type="checkbox"]:not(.disabled)','input[type="radio"]:not(.disabled)'].join(","),yi=t.extend({name:"BButtonToolbar",mixins:[pe],props:{justify:{type:Boolean,default:!1},keyNav:{type:Boolean,default:!1}},mounted:function(){this.keyNav&&this.getItems()},methods:{onFocusin:function(t){t.target===this.$el&&(t.preventDefault(),t.stopPropagation(),this.focusFirst(t))},stop:function(t){t.preventDefault(),t.stopPropagation()},onKeydown:function(t){if(this.keyNav){var e=t.keyCode,i=t.shiftKey;e===fi||e===hi?(this.stop(t),i?this.focusFirst(t):this.focusPrev(t)):e!==mi&&e!==pi||(this.stop(t),i?this.focusLast(t):this.focusNext(t))}},setItemFocus:function(t){t&&t.focus&&t.focus()},focusFirst:function(t){var e=this.getItems();this.setItemFocus(e[0])},focusPrev:function(t){var e=this.getItems(),i=e.indexOf(t.target);i>-1&&(e=e.slice(0,i).reverse(),this.setItemFocus(e[0]))},focusNext:function(t){var e=this.getItems(),i=e.indexOf(t.target);i>-1&&(e=e.slice(i+1),this.setItemFocus(e[0]))},focusLast:function(t){var e=this.getItems().reverse();this.setItemFocus(e[0])},getItems:function(){var t=Mt(bi,this.$el);return t.forEach(function(t){t.tabIndex=-1}),t.filter(function(t){return At(t)})}},render:function(t){return t("div",{staticClass:"btn-toolbar",class:{"justify-content-between":this.justify},attrs:{role:"toolbar",tabindex:this.keyNav?"0":null},on:this.keyNav?{focusin:this.onFocusin,keydown:this.onKeydown}:{}},[this.normalizeSlot("default")])}}),Si=ft({components:{BButtonToolbar:yi,BBtnToolbar:yi}}),Bi=function(t){return et(t)||(t=String(t)),(t=t.trim()).charAt(0).toUpperCase()+t.slice(1)},wi=function(t,e){return t+Bi(e)},Ti=function(t,e){return i=e.replace(t,""),(i=String(i)).charAt(0).toLowerCase()+i.slice(1);var i},ki=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:we;if(N(t))return t.map(e);var i={};for(var n in t)t.hasOwnProperty(n)&&(i[e(n)]=W(t[n])?a({},t[n]):t[n]);return i},$i={props:{tag:{type:String,default:"div"},bgVariant:{type:String,default:null},borderVariant:{type:String,default:null},textVariant:{type:String,default:null}}},Ci={title:{type:String,default:""},titleTag:{type:String,default:"h4"}},xi=t.extend({name:"BCardTitle",functional:!0,props:Ci,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.titleTag,le(n,{staticClass:"card-title"}),o||i.title)}}),_i={subTitle:{type:String,default:""},subTitleTag:{type:String,default:"h6"},subTitleTextVariant:{type:String,default:function(){return wt("BCardSubTitle","subTitleTextVariant")}}},Pi=t.extend({name:"BCardSubTitle",functional:!0,props:_i,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.subTitleTag,le(n,{staticClass:"card-subtitle",class:[i.subTitleTextVariant?"text-".concat(i.subTitleTextVariant):null]}),o||i.subTitle)}}),Oi=a({},ki($i.props,wi.bind(null,"body")),{bodyClass:{type:[String,Object,Array],default:null}},Ci,{},_i,{overlay:{type:Boolean,default:!1}}),Ii=t.extend({name:"BCardBody",functional:!0,props:Oi,render:function(t,e){var i,n=e.props,o=e.data,s=e.children,a=t(),l=t(),u=s||[t()];return n.title&&(a=t(xi,{props:Te(Ci,n)})),n.subTitle&&(l=t(Pi,{props:Te(_i,n),class:["mb-2"]})),t(n.bodyTag,le(o,{staticClass:"card-body",class:[(i={"card-img-overlay":n.overlay},r(i,"bg-".concat(n.bodyBgVariant),Boolean(n.bodyBgVariant)),r(i,"border-".concat(n.bodyBorderVariant),Boolean(n.bodyBorderVariant)),r(i,"text-".concat(n.bodyTextVariant),Boolean(n.bodyTextVariant)),i),n.bodyClass||{}]}),[a,l].concat(p(u)))}}),Ei=a({},ki($i.props,wi.bind(null,"header")),{header:{type:String,default:null},headerHtml:{type:String,default:null},headerClass:{type:[String,Object,Array],default:null}}),Fi=t.extend({name:"BCardHeader",functional:!0,props:Ei,render:function(t,e){var i,n=e.props,o=e.data,s=e.children;return t(n.headerTag,le(o,{staticClass:"card-header",class:[n.headerClass,(i={},r(i,"bg-".concat(n.headerBgVariant),Boolean(n.headerBgVariant)),r(i,"border-".concat(n.headerBorderVariant),Boolean(n.headerBorderVariant)),r(i,"text-".concat(n.headerTextVariant),Boolean(n.headerTextVariant)),i)]}),s||[t("div",{domProps:Re(n.headerHtml,n.header)})])}}),Ni=a({},ki($i.props,wi.bind(null,"footer")),{footer:{type:String,default:null},footerHtml:{type:String,default:null},footerClass:{type:[String,Object,Array],default:null}}),Vi=t.extend({name:"BCardFooter",functional:!0,props:Ni,render:function(t,e){var i,n=e.props,o=e.data,s=e.children;return t(n.footerTag,le(o,{staticClass:"card-footer",class:[n.footerClass,(i={},r(i,"bg-".concat(n.footerBgVariant),Boolean(n.footerBgVariant)),r(i,"border-".concat(n.footerBorderVariant),Boolean(n.footerBorderVariant)),r(i,"text-".concat(n.footerTextVariant),Boolean(n.footerTextVariant)),i)]}),s||[t("div",{domProps:Re(n.footerHtml,n.footer)})])}}),Di={src:{type:String,default:null,required:!0},alt:{type:String,default:null},top:{type:Boolean,default:!1},bottom:{type:Boolean,default:!1},left:{type:Boolean,default:!1},start:{type:Boolean,default:!1},right:{type:Boolean,default:!1},end:{type:Boolean,default:!1},height:{type:String,default:null},width:{type:String,default:null}},Ai=t.extend({name:"BCardImg",functional:!0,props:Di,render:function(t,e){var i=e.props,n=e.data,o="card-img";return i.top?o+="-top":i.right||i.end?o+="-right":i.bottom?o+="-bottom":(i.left||i.start)&&(o+="-left"),t("img",le(n,{class:[o],attrs:{src:i.src,alt:i.alt,height:i.height,width:i.width}}))}}),Li=ki(Di,wi.bind(null,"img"));Li.imgSrc.required=!1;for(var Hi=a({},Oi,{},Ei,{},Ni,{},Li,{},ki($i.props),{align:{type:String,default:null},noBody:{type:Boolean,default:!1}}),Mi=t.extend({name:"BCard",functional:!0,props:Hi,render:function(t,e){var i,n=e.props,o=e.data,s=e.slots,a=e.scopedSlots,l=s(),u=a||{},c=t(),d=t(),h=t(),f=t(),m=t();if(n.imgSrc){var g=t(Ai,{props:Te(Li,n,Ti.bind(null,"img"))});n.imgBottom?m=g:c=g}return(n.header||he("header",u,l))&&(d=t(Fi,{props:Te(Ei,n)},fe("header",{},u,l))),h=fe("default",{},u,l)||[],n.noBody||(h=[t(Ii,{props:Te(Oi,n)},p(h))]),(n.footer||he("footer",u,l))&&(f=t(Vi,{props:Te(Ni,n)},fe("footer",{},u,l))),t(n.tag,le(o,{staticClass:"card",class:(i={"flex-row":n.imgLeft||n.imgStart,"flex-row-reverse":(n.imgRight||n.imgEnd)&&!(n.imgLeft||n.imgStart)},r(i,"text-".concat(n.align),Boolean(n.align)),r(i,"bg-".concat(n.bgVariant),Boolean(n.bgVariant)),r(i,"border-".concat(n.borderVariant),Boolean(n.borderVariant)),r(i,"text-".concat(n.textVariant),Boolean(n.textVariant)),i)}),[c,d].concat(p(h),[f,m]))}}),Ri='<svg width="%{w}" height="%{h}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 %{w} %{h}" preserveAspectRatio="none"><rect width="100%" height="100%" style="fill:%{f};"></rect></svg>',zi={src:{type:String,default:null},alt:{type:String,default:null},width:{type:[Number,String],default:null},height:{type:[Number,String],default:null},block:{type:Boolean,default:!1},fluid:{type:Boolean,default:!1},fluidGrow:{type:Boolean,default:!1},rounded:{type:[Boolean,String],default:!1},thumbnail:{type:Boolean,default:!1},left:{type:Boolean,default:!1},right:{type:Boolean,default:!1},center:{type:Boolean,default:!1},blank:{type:Boolean,default:!1},blankColor:{type:String,default:function(){return wt("BImg","blankColor")}}},ji=t.extend({name:"BImg",functional:!0,props:zi,render:function(t,e){var i,n=e.props,o=e.data,s=n.src,a=parseInt(n.width,10)?parseInt(n.width,10):null,l=parseInt(n.height,10)?parseInt(n.height,10):null,u=null,c=n.block;return n.blank&&(!l&&Boolean(a)?l=a:!a&&Boolean(l)&&(a=l),a||l||(a=1,l=1),s=function(t,e,i){var n=encodeURIComponent(Ri.replace("%{w}",String(t)).replace("%{h}",String(e)).replace("%{f}",i));return"data:image/svg+xml;charset=UTF-8,".concat(n)}(a,l,n.blankColor||"transparent")),n.left?u="float-left":n.right?u="float-right":n.center&&(u="mx-auto",c=!0),t("img",le(o,{attrs:{src:s,alt:n.alt,width:a?String(a):null,height:l?String(l):null},class:(i={"img-thumbnail":n.thumbnail,"img-fluid":n.fluid||n.fluidGrow,"w-100":n.fluidGrow,rounded:""===n.rounded||!0===n.rounded},r(i,"rounded-".concat(n.rounded),et(n.rounded)&&""!==n.rounded),r(i,u,Boolean(u)),r(i,"d-block",c),i)}))}}),Gi={passive:!0,capture:!1},Wi={src:{type:String,default:null,required:!0},alt:{type:String,default:null},width:{type:[Number,String],default:null},height:{type:[Number,String],default:null},blankSrc:{type:String,default:null},blankColor:{type:String,default:function(){return wt("BImgLazy","blankColor")}},blankWidth:{type:[Number,String],default:null},blankHeight:{type:[Number,String],default:null},show:{type:Boolean,default:!1},fluid:{type:Boolean,default:!1},fluidGrow:{type:Boolean,default:!1},block:{type:Boolean,default:!1},thumbnail:{type:Boolean,default:!1},rounded:{type:[Boolean,String],default:!1},left:{type:Boolean,default:!1},right:{type:Boolean,default:!1},center:{type:Boolean,default:!1},offset:{type:[Number,String],default:360},throttle:{type:[Number,String],default:100}},Ui=t.extend({name:"BImgLazy",props:Wi,data:function(){return{isShown:!1,scrollTimeout:null,observer:null}},computed:{computedSrc:function(){return!this.blankSrc||this.isShown?this.src:this.blankSrc},computedBlank:function(){return!(this.isShown||this.blankSrc)},computedWidth:function(){return this.isShown?this.width:this.blankWidth||this.width},computedHeight:function(){return this.isShown?this.height:this.blankHeight||this.height}},watch:{show:function(t,e){t!==e&&(this.isShown=t,t||this.setListeners(!0))},isShown:function(t,e){t!==e&&this.$emit("update:show",t)}},created:function(){this.isShown=this.show},mounted:function(){this.isShown?this.setListeners(!1):this.setListeners(!0)},activated:function(){this.isShown||this.setListeners(!0)},deactivated:function(){this.setListeners(!1)},beforeDestroy:function(){this.setListeners(!1)},methods:{setListeners:function(t){var e=this;this.scrollTimeout&&(clearTimeout(this.scrollTimeout),this.scrollTimeout=null),this.observer&&(this.observer.unobserve(this.$el),this.observer.disconnect(),this.observer=null);var i=["scroll","resize","orientationchange"];i.forEach(function(t){return Vt(window,t,e.onScroll,Gi)}),Vt(this.$el,"load",this.checkView,Gi),Vt(document,"transitionend",this.onScroll,Gi),t&&(_?(this.observer=new IntersectionObserver(this.doShow,{root:null,rootMargin:"".concat(parseInt(this.offset,10)||0,"px"),threshold:0}),this.observer.observe(this.$el)):(i.forEach(function(t){return Nt(window,t,e.onScroll,Gi)}),Nt(this.$el,"load",this.checkView,Gi),Nt(document,"transitionend",this.onScroll,Gi)))},doShow:function(t){t&&(t[0].isIntersecting||t[0].intersectionRatio>0)&&(this.isShown=!0,this.setListeners(!1))},checkView:function(){if(this.isShown)this.setListeners(!1);else{var t=parseInt(this.offset,10)||0,e=document.documentElement,i=0-t,n=0-t,o=e.clientHeight+t,r=e.clientWidth+t,s=Qt(this.$el);s.right>=i&&s.bottom>=n&&s.left<=r&&s.top<=o&&this.doShow([{isIntersecting:!0}])}},onScroll:function(){this.isShown?this.setListeners(!1):(clearTimeout(this.scrollTimeout),this.scrollTimeout=setTimeout(this.checkView,parseInt(this.throttle,10)||100))}},render:function(t){return t(ji,{props:{src:this.computedSrc,blank:this.computedBlank,width:this.computedWidth,height:this.computedHeight,alt:this.alt,blankColor:this.blankColor,fluid:this.fluid,fluidGrow:this.fluidGrow,block:this.block,thumbnail:this.thumbnail,rounded:this.rounded,left:this.left,right:this.right,center:this.center}})}}),qi=a({},q(Wi,["left","right","center","block","rounded","thumbnail","fluid","fluidGrow"]),{top:{type:Boolean,default:!1},bottom:{type:Boolean,default:!1},left:{type:Boolean,default:!1},start:{type:Boolean,default:!1},right:{type:Boolean,default:!1},end:{type:Boolean,default:!1}}),Ki={textTag:{type:String,default:"p"}},Xi={tag:{type:String,default:"div"},deck:{type:Boolean,default:!1},columns:{type:Boolean,default:!1}},Yi=ft({components:{BCard:Mi,BCardHeader:Fi,BCardBody:Ii,BCardTitle:xi,BCardSubTitle:Pi,BCardFooter:Vi,BCardImg:Ai,BCardImgLazy:t.extend({name:"BCardImgLazy",functional:!0,props:qi,render:function(t,e){var i=e.props,n=e.data,o="card-img";i.top?o+="-top":i.right||i.end?o+="-right":i.bottom?o+="-bottom":(i.left||i.start)&&(o+="-left");var r=a({},i,{left:!1,right:!1,center:!1});return t(Ui,le(n,{class:[o],props:r}))}}),BCardText:t.extend({name:"BCardText",functional:!0,props:Ki,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.textTag,le(n,{staticClass:"card-text"}),o)}}),BCardGroup:t.extend({name:"BCardGroup",functional:!0,props:Xi,render:function(t,e){var i=e.props,n=e.data,o=e.children,r="card-group";return i.deck?r="card-deck":i.columns&&(r="card-columns"),t(i.tag,le(n,{class:r}),o)}})}}),Zi=function(){},Ji=function(t,e,i){if(t=t?t.$el||t:null,!Dt(t))return null;if(n="observeDom",!B&&(O("".concat(n,": Requires MutationObserver support.")),1))return null;var n,o=new Et(function(t){for(var i=!1,n=0;n<t.length&&!i;n++){var o=t[n],r=o.type,s=o.target;"characterData"===r&&s.nodeType===Node.TEXT_NODE?i=!0:"attributes"===r?i=!0:"childList"===r&&(o.addedNodes.length>0||o.removedNodes.length>0)&&(i=!0)}i&&e()});return o.observe(t,a({childList:!0,subtree:!0},i)),o},Qi={props:{id:{type:String,default:null}},data:function(){return{localId_:null}},computed:{safeId:function(){var t=this.id||this.localId_;return function(e){return t?(e=String(e||"").replace(/\s+/g,"_"))?t+"_"+e:t:null}}},mounted:function(){var t=this;this.$nextTick(function(){t.localId_="__BVID__".concat(t._uid)})}},tn="BCarousel",en={next:{dirClass:"carousel-item-left",overlayClass:"carousel-item-next"},prev:{dirClass:"carousel-item-right",overlayClass:"carousel-item-prev"}},nn={TOUCH:"touch",PEN:"pen"},on={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend oTransitionEnd",transition:"transitionend"},rn={passive:!0,capture:!1},sn=t.extend({name:"BCarousel",mixins:[Qi,pe],provide:function(){return{bvCarousel:this}},model:{prop:"value",event:"input"},props:{labelPrev:{type:String,default:function(){return wt(tn,"labelPrev")}},labelNext:{type:String,default:function(){return wt(tn,"labelNext")}},labelGotoSlide:{type:String,default:function(){return wt(tn,"labelGotoSlide")}},labelIndicators:{type:String,default:function(){return wt(tn,"labelIndicators")}},interval:{type:Number,default:5e3},indicators:{type:Boolean,default:!1},controls:{type:Boolean,default:!1},noAnimation:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},noTouch:{type:Boolean,default:!1},noHoverPause:{type:Boolean,default:!1},imgWidth:{type:[Number,String]},imgHeight:{type:[Number,String]},background:{type:String},value:{type:Number,default:0}},data:function(){return{index:this.value||0,isSliding:!1,transitionEndEvent:null,slides:[],direction:null,isPaused:!(parseInt(this.interval,10)>0),touchStartX:0,touchDeltaX:0}},watch:{value:function(t,e){t!==e&&this.setSlide(t)},interval:function(t,e){t!==e&&(t?(this.pause(!0),this.start(!1)):this.pause(!1))},isPaused:function(t,e){t!==e&&this.$emit(t?"paused":"unpaused")},index:function(t,e){t===e||this.isSliding||this.doSlide(t,e)}},created:function(){this._intervalId=null,this._animationTimeout=null,this._touchTimeout=null,this.isPaused=!(parseInt(this.interval,10)>0)},mounted:function(){this.transitionEndEvent=function(t){for(var e in on)if(!Y(t.style[e]))return on[e];return null}(this.$el)||null,this.updateSlides(),Ji(this.$refs.inner,this.updateSlides.bind(this),{subtree:!1,childList:!0,attributes:!0,attributeFilter:["id"]})},beforeDestroy:function(){clearTimeout(this._animationTimeout),clearTimeout(this._touchTimeout),clearInterval(this._intervalId),this._intervalId=null,this._animationTimeout=null,this._touchTimeout=null},methods:{setSlide:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!(w&&document.visibilityState&&document.hidden)){var n=this.slides.length;0!==n&&(this.isSliding?this.$once("sliding-end",function(){return e.setSlide(t,i)}):(this.direction=i,t=Math.floor(t),this.index=t>=n?0:t>=0?t:n-1))}},prev:function(){this.setSlide(this.index-1,"prev")},next:function(){this.setSlide(this.index+1,"next")},pause:function(t){t||(this.isPaused=!0),this._intervalId&&(clearInterval(this._intervalId),this._intervalId=null)},start:function(t){t||(this.isPaused=!1),this._intervalId&&(clearInterval(this._intervalId),this._intervalId=null),this.interval&&this.slides.length>1&&(this._intervalId=setInterval(this.next,Math.max(1e3,this.interval)))},restart:function(t){this.$el.contains(document.activeElement)||this.start()},doSlide:function(t,e){var i=this,n=Boolean(this.interval),o=this.calcDirection(this.direction,e,t),r=o.overlayClass,s=o.dirClass,a=this.slides[e],l=this.slides[t];if(a&&l){if(this.isSliding=!0,n&&this.pause(!1),this.$emit("sliding-start",t),this.$emit("input",this.index),this.noAnimation)Ut(l,"active"),qt(a,"active"),this.isSliding=!1,this.$nextTick(function(){return i.$emit("sliding-end",t)});else{Ut(l,r),Ht(l),Ut(a,s),Ut(l,s);var u=!1,c=function e(n){if(!u){if(u=!0,i.transitionEndEvent)i.transitionEndEvent.split(/\s+/).forEach(function(t){return Vt(a,t,e,rn)});i._animationTimeout=null,qt(l,s),qt(l,r),Ut(l,"active"),qt(a,"active"),qt(a,s),qt(a,r),Xt(a,"aria-current","false"),Xt(l,"aria-current","true"),Xt(a,"aria-hidden","true"),Xt(l,"aria-hidden","false"),i.isSliding=!1,i.direction=null,i.$nextTick(function(){return i.$emit("sliding-end",t)})}};if(this.transitionEndEvent)this.transitionEndEvent.split(/\s+/).forEach(function(t){return Nt(a,t,c,rn)});this._animationTimeout=setTimeout(c,650)}n&&this.start(!1)}},updateSlides:function(){this.pause(!0),this.slides=Mt(".carousel-item",this.$refs.inner);var t=this.slides.length,e=Math.max(0,Math.min(Math.floor(this.index),t-1));this.slides.forEach(function(i,n){var o=n+1;n===e?(Ut(i,"active"),Xt(i,"aria-current","true")):(qt(i,"active"),Xt(i,"aria-current","false")),Xt(i,"aria-posinset",String(o)),Xt(i,"aria-setsize",String(t))}),this.setSlide(e),this.start(this.isPaused)},calcDirection:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t?en[t]:i>e?en.next:en.prev},handleClick:function(t,e){var i=t.keyCode;"click"!==t.type&&i!==ui&&i!==ci||(t.preventDefault(),t.stopPropagation(),e())},handleSwipe:function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;e>0?this.prev():e<0&&this.next()}},touchStart:function(t){x&&nn[t.pointerType.toUpperCase()]?this.touchStartX=t.clientX:x||(this.touchStartX=t.touches[0].clientX)},touchMove:function(t){t.touches&&t.touches.length>1?this.touchDeltaX=0:this.touchDeltaX=t.touches[0].clientX-this.touchStartX},touchEnd:function(t){x&&nn[t.pointerType.toUpperCase()]&&(this.touchDeltaX=t.clientX-this.touchStartX),this.handleSwipe(),this.pause(!1),this._touchTimeout&&clearTimeout(this._touchTimeout),this._touchTimeout=setTimeout(this.start,500+Math.max(1e3,this.interval))}},render:function(t){var e=this,i=t("div",{ref:"inner",class:["carousel-inner"],attrs:{id:this.safeId("__BV_inner_"),role:"list"}},[this.normalizeSlot("default")]),n=t();this.controls&&(n=[t("a",{class:["carousel-control-prev"],attrs:{href:"#",role:"button","aria-controls":this.safeId("__BV_inner_")},on:{click:function(t){e.handleClick(t,e.prev)},keydown:function(t){e.handleClick(t,e.prev)}}},[t("span",{class:["carousel-control-prev-icon"],attrs:{"aria-hidden":"true"}}),t("span",{class:["sr-only"]},[this.labelPrev])]),t("a",{class:["carousel-control-next"],attrs:{href:"#",role:"button","aria-controls":this.safeId("__BV_inner_")},on:{click:function(t){e.handleClick(t,e.next)},keydown:function(t){e.handleClick(t,e.next)}}},[t("span",{class:["carousel-control-next-icon"],attrs:{"aria-hidden":"true"}}),t("span",{class:["sr-only"]},[this.labelNext])])]);var o=t("ol",{class:["carousel-indicators"],directives:[{name:"show",rawName:"v-show",value:this.indicators,expression:"indicators"}],attrs:{id:this.safeId("__BV_indicators_"),"aria-hidden":this.indicators?"false":"true","aria-label":this.labelIndicators,"aria-owns":this.safeId("__BV_inner_")}},this.slides.map(function(i,n){return t("li",{key:"slide_".concat(n),class:{active:n===e.index},attrs:{role:"button",id:e.safeId("__BV_indicator_".concat(n+1,"_")),tabindex:e.indicators?"0":"-1","aria-current":n===e.index?"true":"false","aria-label":"".concat(e.labelGotoSlide," ").concat(n+1),"aria-describedby":e.slides[n].id||null,"aria-controls":e.safeId("__BV_inner_")},on:{click:function(t){e.handleClick(t,function(){e.setSlide(n)})},keydown:function(t){e.handleClick(t,function(){e.setSlide(n)})}}})})),r={mouseenter:this.noHoverPause?Zi:this.pause,mouseleave:this.noHoverPause?Zi:this.restart,focusin:this.pause,focusout:this.restart,keydown:function(t){if(!/input|textarea/i.test(t.target.tagName)){var i=t.keyCode;i!==hi&&i!==pi||(t.preventDefault(),t.stopPropagation(),e[i===hi?"prev":"next"]())}}};return!this.noTouch&&C&&(x?(r["&pointerdown"]=this.touchStart,r["&pointerup"]=this.touchEnd):(r["&touchstart"]=this.touchStart,r["&touchmove"]=this.touchMove,r["&touchend"]=this.touchEnd)),t("div",{staticClass:"carousel",class:{slide:!this.noAnimation,"carousel-fade":!this.noAnimation&&this.fade,"pointer-event":!this.noTouch&&C&&x},style:{background:this.background},attrs:{role:"region",id:this.safeId(),"aria-busy":this.isSliding?"true":"false"},on:r},[i,n,o])}}),an={imgSrc:{type:String},imgAlt:{type:String},imgWidth:{type:[Number,String]},imgHeight:{type:[Number,String]},imgBlank:{type:Boolean,default:!1},imgBlankColor:{type:String,default:"transparent"},contentVisibleUp:{type:String},contentTag:{type:String,default:"div"},caption:{type:String},captionHtml:{type:String},captionTag:{type:String,default:"h3"},text:{type:String},textHtml:{type:String},textTag:{type:String,default:"p"},background:{type:String}},ln=ft({components:{BCarousel:sn,BCarouselSlide:t.extend({name:"BCarouselSlide",mixins:[Qi,pe],inject:{bvCarousel:{default:function(){return{noTouch:!0}}}},props:an,computed:{contentClasses:function(){return[this.contentVisibleUp?"d-none":"",this.contentVisibleUp?"d-".concat(this.contentVisibleUp,"-block"):""]},computedWidth:function(){return this.imgWidth||this.bvCarousel.imgWidth||null},computedHeight:function(){return this.imgHeight||this.bvCarousel.imgHeight||null}},render:function(t){var e=!this.bvCarousel.noTouch&&C,i=this.normalizeSlot("img");i||!this.imgSrc&&!this.imgBlank||(i=t(ji,{props:{fluidGrow:!0,block:!0,src:this.imgSrc,blank:this.imgBlank,blankColor:this.imgBlankColor,width:this.computedWidth,height:this.computedHeight,alt:this.imgAlt},on:e?{dragstart:function(t){t.preventDefault()}}:{}})),i||(i=t());var n=t(),o=[!(!this.caption&&!this.captionHtml)&&t(this.captionTag,{domProps:Re(this.captionHtml,this.caption)}),!(!this.text&&!this.textHtml)&&t(this.textTag,{domProps:Re(this.textHtml,this.text)}),this.normalizeSlot("default")||!1];return o.some(Boolean)&&(n=t(this.contentTag,{staticClass:"carousel-caption",class:this.contentClasses},o.map(function(e){return e||t()}))),t("div",{staticClass:"carousel-item",style:{background:this.background||this.bvCarousel.background||null},attrs:{id:this.safeId(),role:"listitem"}},[i,n])}})}}),un={methods:{listenOnRoot:function(t,e){var i=this;return this.$root.$on(t,e),this.$on("hook:beforeDestroy",function(){i.$root.$off(t,e)}),this},listenOnRootOnce:function(t,e){var i=this;return this.$root.$once(t,e),this.$on("hook:beforeDestroy",function(){i.$root.$off(t,e)}),this},emitOnRoot:function(t){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];return(e=this.$root).$emit.apply(e,[t].concat(n)),this}}},cn={passive:!0,capture:!1},dn=t.extend({name:"BCollapse",mixins:[un,pe],model:{prop:"visible",event:"input"},props:{id:{type:String,required:!0},isNav:{type:Boolean,default:!1},accordion:{type:String,default:null},visible:{type:Boolean,default:!1},tag:{type:String,default:"div"}},data:function(){return{show:this.visible,transitioning:!1}},computed:{classObject:function(){return{"navbar-collapse":this.isNav,collapse:!this.transitioning,show:this.show&&!this.transitioning}}},watch:{visible:function(t){t!==this.show&&(this.show=t)},show:function(t,e){t!==e&&this.emitState()}},created:function(){this.show=this.visible},mounted:function(){var t=this;this.show=this.visible,this.listenOnRoot("bv::toggle::collapse",this.handleToggleEvt),this.listenOnRoot("bv::collapse::accordion",this.handleAccordionEvt),this.isNav&&(this.setWindowEvents(!0),this.handleResize()),this.$nextTick(function(){t.emitState()}),this.listenOnRoot("bv::request::collapse::state",function(e){e===t.id&&t.$nextTick(t.emitSync)})},updated:function(){this.emitSync()},deactivated:function(){this.isNav&&this.setWindowEvents(!1)},activated:function(){this.isNav&&this.setWindowEvents(!0),this.emitSync()},beforeDestroy:function(){this.show=!1,this.isNav&&w&&this.setWindowEvents(!1)},methods:{setWindowEvents:function(t){var e=t?Nt:Vt;e(window,"resize",this.handleResize,cn),e(window,"orientationchange",this.handleResize,cn)},toggle:function(){this.show=!this.show},onEnter:function(t){t.style.height=0,Ht(t),t.style.height=t.scrollHeight+"px",this.transitioning=!0,this.$emit("show")},onAfterEnter:function(t){t.style.height=null,this.transitioning=!1,this.$emit("shown")},onLeave:function(t){t.style.height="auto",t.style.display="block",t.style.height=Qt(t).height+"px",Ht(t),this.transitioning=!0,t.style.height=0,this.$emit("hide")},onAfterLeave:function(t){t.style.height=null,this.transitioning=!1,this.$emit("hidden")},emitState:function(){this.$emit("input",this.show),this.$root.$emit("bv::collapse::state",this.id,this.show),this.accordion&&this.show&&this.$root.$emit("bv::collapse::accordion",this.id,this.accordion)},emitSync:function(){this.$root.$emit("bv::collapse::sync::state",this.id,this.show)},checkDisplayBlock:function(){var t=Kt(this.$el,"show");qt(this.$el,"show");var e="block"===te(this.$el).display;return t&&Ut(this.$el,"show"),e},clickHandler:function(t){var e=t.target;this.isNav&&e&&"block"===te(this.$el).display&&(zt(e,".nav-link,.dropdown-item")||jt(".nav-link,.dropdown-item",e))&&(this.checkDisplayBlock()||(this.show=!1))},handleToggleEvt:function(t){t===this.id&&this.toggle()},handleAccordionEvt:function(t,e){this.accordion&&e===this.accordion&&(t===this.id?this.show||this.toggle():this.show&&this.toggle())},handleResize:function(){this.show="block"===te(this.$el).display}},render:function(t){var e=t(this.tag,{class:this.classObject,directives:[{name:"show",value:this.show}],attrs:{id:this.id||null},on:{click:this.clickHandler}},[this.normalizeSlot("default")]);return t("transition",{props:{enterClass:"",enterActiveClass:"collapsing",enterToClass:"",leaveClass:"",leaveActiveClass:"collapsing",leaveToClass:""},on:{enter:this.onEnter,afterEnter:this.onAfterEnter,leave:this.onLeave,afterLeave:this.onAfterLeave}},[e])}}),hn=function(t,e){if(t.length!==e.length)return!1;for(var i=!0,n=0;i&&n<t.length;n++)i=fn(t[n],e[n]);return i},fn=function t(e,i){if(e===i)return!0;var n=nt(e),o=nt(i);if(n||o)return!(!n||!o)&&e.getTime()===i.getTime();if(n=N(e),o=N(i),n||o)return!(!n||!o)&&hn(e,i);if(n=W(e),o=W(i),n||o){if(!n||!o)return!1;if(H(e).length!==H(i).length)return!1;for(var r in e){var s=e.hasOwnProperty(r),a=i.hasOwnProperty(r);if(s&&!a||!s&&a||!t(e[r],i[r]))return!1}}return String(e)===String(i)},pn={hover:!0,click:!0,focus:!0},mn="__BV_boundEventListeners__",gn=function(t){var e=H(t.modifiers||{}).filter(function(t){return!pn[t]});return t.value&&e.push(t.value),e},vn=function(t,e,i,n){var o=gn(e),r=function(){n({targets:o,vnode:t})};return H(pn).forEach(function(n){if(i[n]||e.modifiers[n]){Nt(t.elm,n,r);var o=t.elm[mn]||{};o[n]=o[n]||[],o[n].push(r),t.elm[mn]=o}}),o},bn=function(t,e,i){H(pn).forEach(function(n){if(i[n]||e.modifiers[n]){var o=t.elm[mn]&&t.elm[mn][n];o&&(o.forEach(function(e){return Vt(t.elm,n,e)}),delete t.elm[mn][n])}})},yn={click:!0},Sn="__BV_toggle__",Bn=function(t,e){t[e]=null,delete t[e]},wn=function(t){var e=t.targets,i=t.vnode;e.forEach(function(t){i.context.$root.$emit("bv::toggle::collapse",t)})},Tn=function(t,e,i){if(w){if(!fn(gn(e),t.__BV_toggle_TARGETS__)){bn(i,e,yn);var n=vn(i,e,yn,wn);t.__BV_toggle_TARGETS__=n,t.__BV_toggle_CONTROLS__=n.join(" "),Xt(t,"aria-controls",t.__BV_toggle_CONTROLS__),n.forEach(function(t){i.context.$root.$emit("bv::request::collapse::state",t)})}!0===t.__BV_toggle_STATE__?(Ut(t,"collapsed"),Xt(t,"aria-expanded","true")):!1===t.__BV_toggle_STATE__&&(qt(t,"collapsed"),Xt(t,"aria-expanded","false")),Xt(t,"aria-controls",t.__BV_toggle_CONTROLS__)}},kn={bind:function(t,e,i){var n=vn(i,e,yn,wn);if(w&&i.context&&n.length>0){t.__BV_toggle_TARGETS__=n,t.__BV_toggle_CONTROLS__=n.join(" "),t.__BV_toggle_STATE__=!1,Xt(t,"aria-controls",t.__BV_toggle_CONTROLS__),Xt(t,"aria-expanded","false"),"BUTTON"!==t.tagName&&Xt(t,"role","button");t[Sn]=function(e,i){-1!==(t.__BV_toggle_TARGETS__||[]).indexOf(e)&&(Xt(t,"aria-expanded",i?"true":"false"),t.__BV_toggle_STATE__=i,i?qt(t,"collapsed"):Ut(t,"collapsed"))},i.context.$root.$on("bv::collapse::state",t[Sn]),i.context.$root.$on("bv::collapse::sync::state",t[Sn])}},componentUpdated:Tn,updated:Tn,unbind:function(t,e,i){bn(i,e,yn),t[Sn]&&(i.context.$root.$off("bv::collapse::state",t[Sn]),i.context.$root.$off("bv::collapse::sync::state",t[Sn])),Bn(t,Sn),Bn(t,"__BV_toggle_STATE__"),Bn(t,"__BV_toggle_CONTROLS__"),Bn(t,"__BV_toggle_TARGETS__"),qt(t,"collapsed"),Yt(t,"aria-expanded"),Yt(t,"aria-controls"),Yt(t,"role")}},$n=ft({components:{BCollapse:dn},directives:{VBToggle:kn}}),Cn=(v?window:{}).HTMLElement||Object,xn="undefined"!=typeof window&&"undefined"!=typeof document,_n=["Edge","Trident","Firefox"],Pn=0,On=0;On<_n.length;On+=1)if(xn&&navigator.userAgent.indexOf(_n[On])>=0){Pn=1;break}var In=xn&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},Pn))}};function En(t){return t&&"[object Function]"==={}.toString.call(t)}function Fn(t,e){if(1!==t.nodeType)return[];var i=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?i[e]:i}function Nn(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function Vn(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=Fn(t),i=e.overflow,n=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(i+o+n)?t:Vn(Nn(t))}var Dn=xn&&!(!window.MSInputMethodContext||!document.documentMode),An=xn&&/MSIE 10/.test(navigator.userAgent);function Ln(t){return 11===t?Dn:10===t?An:Dn||An}function Hn(t){if(!t)return document.documentElement;for(var e=Ln(10)?document.body:null,i=t.offsetParent||null;i===e&&t.nextElementSibling;)i=(t=t.nextElementSibling).offsetParent;var n=i&&i.nodeName;return n&&"BODY"!==n&&"HTML"!==n?-1!==["TH","TD","TABLE"].indexOf(i.nodeName)&&"static"===Fn(i,"position")?Hn(i):i:t?t.ownerDocument.documentElement:document.documentElement}function Mn(t){return null!==t.parentNode?Mn(t.parentNode):t}function Rn(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var i=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,n=i?t:e,o=i?e:t,r=document.createRange();r.setStart(n,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||n.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&Hn(s.firstElementChild)!==s?Hn(l):l;var u=Mn(t);return u.host?Rn(u.host,e):Rn(t,Mn(e).host)}function zn(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var n=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||n)[e]}return t[e]}function jn(t,e){var i="x"===e?"Left":"Top",n="Left"===i?"Right":"Bottom";return parseFloat(t["border"+i+"Width"],10)+parseFloat(t["border"+n+"Width"],10)}function Gn(t,e,i,n){return Math.max(e["offset"+t],e["scroll"+t],i["client"+t],i["offset"+t],i["scroll"+t],Ln(10)?parseInt(i["offset"+t])+parseInt(n["margin"+("Height"===t?"Top":"Left")])+parseInt(n["margin"+("Height"===t?"Bottom":"Right")]):0)}function Wn(t){var e=t.body,i=t.documentElement,n=Ln(10)&&getComputedStyle(i);return{height:Gn("Height",e,i,n),width:Gn("Width",e,i,n)}}var Un=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},qn=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),Kn=function(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t},Xn=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t};function Yn(t){return Xn({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Zn(t){var e={};try{if(Ln(10)){e=t.getBoundingClientRect();var i=zn(t,"top"),n=zn(t,"left");e.top+=i,e.left+=n,e.bottom+=i,e.right+=n}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?Wn(t.ownerDocument):{},s=r.width||t.clientWidth||o.right-o.left,a=r.height||t.clientHeight||o.bottom-o.top,l=t.offsetWidth-s,u=t.offsetHeight-a;if(l||u){var c=Fn(t);l-=jn(c,"x"),u-=jn(c,"y"),o.width-=l,o.height-=u}return Yn(o)}function Jn(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=Ln(10),o="HTML"===e.nodeName,r=Zn(t),s=Zn(e),a=Vn(t),l=Fn(e),u=parseFloat(l.borderTopWidth,10),c=parseFloat(l.borderLeftWidth,10);i&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var d=Yn({top:r.top-s.top-u,left:r.left-s.left-c,width:r.width,height:r.height});if(d.marginTop=0,d.marginLeft=0,!n&&o){var h=parseFloat(l.marginTop,10),f=parseFloat(l.marginLeft,10);d.top-=u-h,d.bottom-=u-h,d.left-=c-f,d.right-=c-f,d.marginTop=h,d.marginLeft=f}return(n&&!i?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(d=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=zn(e,"top"),o=zn(e,"left"),r=i?-1:1;return t.top+=n*r,t.bottom+=n*r,t.left+=o*r,t.right+=o*r,t}(d,e)),d}function Qn(t){if(!t||!t.parentElement||Ln())return document.documentElement;for(var e=t.parentElement;e&&"none"===Fn(e,"transform");)e=e.parentElement;return e||document.documentElement}function to(t,e,i,n){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Qn(t):Rn(t,e);if("viewport"===n)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=t.ownerDocument.documentElement,n=Jn(t,i),o=Math.max(i.clientWidth,window.innerWidth||0),r=Math.max(i.clientHeight,window.innerHeight||0),s=e?0:zn(i),a=e?0:zn(i,"left");return Yn({top:s-n.top+n.marginTop,left:a-n.left+n.marginLeft,width:o,height:r})}(s,o);else{var a=void 0;"scrollParent"===n?"BODY"===(a=Vn(Nn(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===n?t.ownerDocument.documentElement:n;var l=Jn(a,s,o);if("HTML"!==a.nodeName||function t(e){var i=e.nodeName;if("BODY"===i||"HTML"===i)return!1;if("fixed"===Fn(e,"position"))return!0;var n=Nn(e);return!!n&&t(n)}(s))r=l;else{var u=Wn(t.ownerDocument),c=u.height,d=u.width;r.top+=l.top-l.marginTop,r.bottom=c+l.top,r.left+=l.left-l.marginLeft,r.right=d+l.left}}var h="number"==typeof(i=i||0);return r.left+=h?i:i.left||0,r.top+=h?i:i.top||0,r.right-=h?i:i.right||0,r.bottom-=h?i:i.bottom||0,r}function eo(t,e,i,n,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=to(i,n,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return Xn({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),u=l.filter(function(t){var e=t.width,n=t.height;return e>=i.clientWidth&&n>=i.clientHeight}),c=u.length>0?u[0].key:l[0].key,d=t.split("-")[1];return c+(d?"-"+d:"")}function io(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return Jn(i,n?Qn(e):Rn(e,i),n)}function no(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),i=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),n=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+n,height:t.offsetHeight+i}}function oo(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function ro(t,e,i){i=i.split("-")[0];var n=no(t),o={width:n.width,height:n.height},r=-1!==["right","left"].indexOf(i),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",u=r?"width":"height";return o[s]=e[s]+e[l]/2-n[l]/2,o[a]=i===a?e[a]-n[u]:e[oo(a)],o}function so(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function ao(t,e,i){return(void 0===i?t:t.slice(0,function(t,e,i){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===i});var n=so(t,function(t){return t[e]===i});return t.indexOf(n)}(t,"name",i))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var i=t.function||t.fn;t.enabled&&En(i)&&(e.offsets.popper=Yn(e.offsets.popper),e.offsets.reference=Yn(e.offsets.reference),e=i(e,t))}),e}function lo(t,e){return t.some(function(t){var i=t.name;return t.enabled&&i===e})}function uo(t){for(var e=[!1,"ms","Webkit","Moz","O"],i=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<e.length;n++){var o=e[n],r=o?""+o+i:t;if("undefined"!=typeof document.body.style[r])return r}return null}function co(t){var e=t.ownerDocument;return e?e.defaultView:window}function ho(t,e,i,n){i.updateBound=n,co(t).addEventListener("resize",i.updateBound,{passive:!0});var o=Vn(t);return function t(e,i,n,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(i,n,{passive:!0}),r||t(Vn(s.parentNode),i,n,o),o.push(s)}(o,"scroll",i.updateBound,i.scrollParents),i.scrollElement=o,i.eventsEnabled=!0,i}function fo(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,co(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function po(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function mo(t,e){Object.keys(e).forEach(function(i){var n="";-1!==["width","height","top","right","bottom","left"].indexOf(i)&&po(e[i])&&(n="px"),t.style[i]=e[i]+n})}var go=xn&&/Firefox/i.test(navigator.userAgent);function vo(t,e,i){var n=so(t,function(t){return t.name===e}),o=!!n&&t.some(function(t){return t.name===i&&t.enabled&&t.order<n.order});if(!o){var r="`"+e+"`",s="`"+i+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var bo=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],yo=bo.slice(3);function So(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=yo.indexOf(t),n=yo.slice(i+1).concat(yo.slice(0,i));return e?n.reverse():n}var Bo={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function wo(t,e,i,n){var o=[0,0],r=-1!==["right","left"].indexOf(n),s=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=s.indexOf(so(s,function(t){return-1!==t.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,u=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(u=u.map(function(t,n){var o=(1===n?!r:r)?"height":"width",s=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,i,n){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=i;break;case"%":case"%r":default:a=n}return Yn(a)[e]/100*r}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r;return r}(t,o,e,i)})})).forEach(function(t,e){t.forEach(function(i,n){po(i)&&(o[e]+=i*("-"===t[n-1]?-1:1))})}),o}var To={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,i=e.split("-")[0],n=e.split("-")[1];if(n){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(i),l=a?"left":"top",u=a?"width":"height",c={start:Kn({},l,r[l]),end:Kn({},l,r[l]+r[u]-s[u])};t.offsets.popper=Xn({},s,c[n])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var i=e.offset,n=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=n.split("-")[0],l=void 0;return l=po(+i)?[+i,0]:wo(i,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var i=e.boundariesElement||Hn(t.instance.popper);t.instance.reference===i&&(i=Hn(i));var n=uo("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[n];o.top="",o.left="",o[n]="";var l=to(t.instance.popper,t.instance.reference,e.padding,i,t.positionFixed);o.top=r,o.left=s,o[n]=a,e.boundaries=l;var u=e.priority,c=t.offsets.popper,d={primary:function(t){var i=c[t];return c[t]<l[t]&&!e.escapeWithReference&&(i=Math.max(c[t],l[t])),Kn({},t,i)},secondary:function(t){var i="right"===t?"left":"top",n=c[i];return c[t]>l[t]&&!e.escapeWithReference&&(n=Math.min(c[i],l[t]-("right"===t?c.width:c.height))),Kn({},i,n)}};return u.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";c=Xn({},c,d[e](t))}),t.offsets.popper=c,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,i=e.popper,n=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",u=s?"width":"height";return i[a]<r(n[l])&&(t.offsets.popper[l]=r(n[l])-i[u]),i[l]>r(n[a])&&(t.offsets.popper[l]=r(n[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var i;if(!vo(t.instance.modifiers,"arrow","keepTogether"))return t;var n=e.element;if("string"==typeof n){if(!(n=t.instance.popper.querySelector(n)))return t}else if(!t.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),u=l?"height":"width",c=l?"Top":"Left",d=c.toLowerCase(),h=l?"left":"top",f=l?"bottom":"right",p=no(n)[u];a[f]-p<s[d]&&(t.offsets.popper[d]-=s[d]-(a[f]-p)),a[d]+p>s[f]&&(t.offsets.popper[d]+=a[d]+p-s[f]),t.offsets.popper=Yn(t.offsets.popper);var m=a[d]+a[u]/2-p/2,g=Fn(t.instance.popper),v=parseFloat(g["margin"+c],10),b=parseFloat(g["border"+c+"Width"],10),y=m-t.offsets.popper[d]-v-b;return y=Math.max(Math.min(s[u]-p,y),0),t.arrowElement=n,t.offsets.arrow=(Kn(i={},d,Math.round(y)),Kn(i,h,""),i),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(lo(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var i=to(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),n=t.placement.split("-")[0],o=oo(n),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case Bo.FLIP:s=[n,o];break;case Bo.CLOCKWISE:s=So(n);break;case Bo.COUNTERCLOCKWISE:s=So(n,!0);break;default:s=e.behavior}return s.forEach(function(a,l){if(n!==a||s.length===l+1)return t;n=t.placement.split("-")[0],o=oo(n);var u=t.offsets.popper,c=t.offsets.reference,d=Math.floor,h="left"===n&&d(u.right)>d(c.left)||"right"===n&&d(u.left)<d(c.right)||"top"===n&&d(u.bottom)>d(c.top)||"bottom"===n&&d(u.top)<d(c.bottom),f=d(u.left)<d(i.left),p=d(u.right)>d(i.right),m=d(u.top)<d(i.top),g=d(u.bottom)>d(i.bottom),v="left"===n&&f||"right"===n&&p||"top"===n&&m||"bottom"===n&&g,b=-1!==["top","bottom"].indexOf(n),y=!!e.flipVariations&&(b&&"start"===r&&f||b&&"end"===r&&p||!b&&"start"===r&&m||!b&&"end"===r&&g),S=!!e.flipVariationsByContent&&(b&&"start"===r&&p||b&&"end"===r&&f||!b&&"start"===r&&g||!b&&"end"===r&&m),B=y||S;(h||v||B)&&(t.flipped=!0,(h||v)&&(n=s[l+1]),B&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=n+(r?"-"+r:""),t.offsets.popper=Xn({},t.offsets.popper,ro(t.instance.popper,t.offsets.reference,t.placement)),t=ao(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,i=e.split("-")[0],n=t.offsets,o=n.popper,r=n.reference,s=-1!==["left","right"].indexOf(i),a=-1===["top","left"].indexOf(i);return o[s?"left":"top"]=r[i]-(a?o[s?"width":"height"]:0),t.placement=oo(e),t.offsets.popper=Yn(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!vo(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,i=so(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<i.top||e.left>i.right||e.top>i.bottom||e.right<i.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var i=e.x,n=e.y,o=t.offsets.popper,r=so(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==r?r:e.gpuAcceleration,a=Hn(t.instance.popper),l=Zn(a),u={position:o.position},c=function(t,e){var i=t.offsets,n=i.popper,o=i.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),u=r(n.width),c=-1!==["left","right"].indexOf(t.placement),d=-1!==t.placement.indexOf("-"),h=e?c||d||l%2==u%2?r:s:a,f=e?r:a;return{left:h(l%2==1&&u%2==1&&!d&&e?n.left-1:n.left),top:f(n.top),bottom:f(n.bottom),right:h(n.right)}}(t,window.devicePixelRatio<2||!go),d="bottom"===i?"top":"bottom",h="right"===n?"left":"right",f=uo("transform"),p=void 0,m=void 0;if(m="bottom"===d?"HTML"===a.nodeName?-a.clientHeight+c.bottom:-l.height+c.bottom:c.top,p="right"===h?"HTML"===a.nodeName?-a.clientWidth+c.right:-l.width+c.right:c.left,s&&f)u[f]="translate3d("+p+"px, "+m+"px, 0)",u[d]=0,u[h]=0,u.willChange="transform";else{var g="bottom"===d?-1:1,v="right"===h?-1:1;u[d]=m*g,u[h]=p*v,u.willChange=d+", "+h}var b={"x-placement":t.placement};return t.attributes=Xn({},b,t.attributes),t.styles=Xn({},u,t.styles),t.arrowStyles=Xn({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,i;return mo(t.instance.popper,t.styles),e=t.instance.popper,i=t.attributes,Object.keys(i).forEach(function(t){!1!==i[t]?e.setAttribute(t,i[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&mo(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,i,n,o){var r=io(o,e,t,i.positionFixed),s=eo(i.placement,r,e,t,i.modifiers.flip.boundariesElement,i.modifiers.flip.padding);return e.setAttribute("x-placement",s),mo(e,{position:i.positionFixed?"fixed":"absolute"}),i},gpuAcceleration:void 0}}},ko=function(){function t(e,i){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Un(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=In(this.update.bind(this)),this.options=Xn({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=i&&i.jquery?i[0]:i,this.options.modifiers={},Object.keys(Xn({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){n.options.modifiers[e]=Xn({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return Xn({name:t},n.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&En(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return qn(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=io(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=eo(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=ro(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=ao(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,lo(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[uo("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=ho(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return fo.call(this)}}]),t}();ko.Utils=("undefined"!=typeof window?window:global).PopperUtils,ko.placements=bo,ko.Defaults=To;var $o=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(i(this,t),!e)throw new TypeError("Failed to construct '".concat(this.constructor.name,"'. 1 argument required, ").concat(arguments.length," given."));A(this,t.Defaults,this.constructor.Defaults,n,{type:e}),M(this,{type:K(),cancelable:K(),nativeEvent:K(),target:K(),relatedTarget:K(),vueTarget:K(),componentId:K()});var o=!1;this.preventDefault=function(){this.cancelable&&(o=!0)},R(this,"defaultPrevented",{enumerable:!0,get:function(){return o}})}return o(t,null,[{key:"Defaults",get:function(){return{type:"",cancelable:!0,nativeEvent:null,target:null,relatedTarget:null,vueTarget:null,componentId:null}}}]),t}(),Co={data:function(){return{listenForClickOut:!1}},watch:{listenForClickOut:function(t,e){t!==e&&(Vt(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,!1),t&&Nt(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,!1))}},beforeCreate:function(){this.clickOutElement=null,this.clickOutEventName=null},mounted:function(){this.clickOutElement||(this.clickOutElement=document),this.clickOutEventName||(this.clickOutEventName="ontouchstart"in document.documentElement?"touchstart":"click"),this.listenForClickOut&&Nt(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,!1)},beforeDestroy:function(){Vt(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,!1)},methods:{isClickOut:function(t){return!Gt(this.$el,t.target)},_clickOutHandler:function(t){this.clickOutHandler&&this.isClickOut(t)&&this.clickOutHandler(t)}}},xo={data:function(){return{listenForFocusIn:!1}},watch:{listenForFocusIn:function(t,e){t!==e&&(Vt(this.focusInElement,"focusin",this._focusInHandler,!1),t&&Nt(this.focusInElement,"focusin",this._focusInHandler,!1))}},beforeCreate:function(){this.focusInElement=null},mounted:function(){this.focusInElement||(this.focusInElement=document),this.listenForFocusIn&&Nt(this.focusInElement,"focusin",this._focusInHandler,!1)},beforeDestroy:function(){Vt(this.focusInElement,"focusin",this._focusInHandler,!1)},methods:{_focusInHandler:function(t){this.focusInHandler&&this.focusInHandler(t)}}},_o={FORM_CHILD:".dropdown form",ITEM_SELECTOR:[".dropdown-item",".b-dropdown-form"].map(function(t){return"".concat(t,":not(.disabled):not([disabled])")}).join(", ")},Po="top-start",Oo="top-end",Io="bottom-start",Eo="bottom-end",Fo="right-start",No="left-start",Vo={mixins:[Co,xo],provide:function(){return{bvDropdown:this}},props:{disabled:{type:Boolean,default:!1},text:{type:String,default:""},html:{type:String},dropup:{type:Boolean,default:!1},dropright:{type:Boolean,default:!1},dropleft:{type:Boolean,default:!1},right:{type:Boolean,default:!1},offset:{type:[Number,String],default:0},noFlip:{type:Boolean,default:!1},lazy:{type:Boolean,default:!1},popperOpts:{default:function(){}}},data:function(){return{visible:!1,inNavbar:null,visibleChangePrevented:!1}},computed:{toggler:function(){var t=this.$refs.toggle;return t?t.$el||t:null},directionClass:function(){return this.dropup?"dropup":this.dropright?"dropright":this.dropleft?"dropleft":""}},watch:{visible:function(t,e){if(this.visibleChangePrevented)this.visibleChangePrevented=!1;else if(t!==e){var i=t?"show":"hide",n=new $o(i,{cancelable:!0,vueTarget:this,target:this.$refs.menu,relatedTarget:null});if(this.emitEvent(n),n.defaultPrevented)return this.visibleChangePrevented=!0,this.visible=e,void this.$off("hidden",this.focusToggler);"show"===i?this.showMenu():this.hideMenu()}},disabled:function(t,e){t!==e&&t&&this.visible&&(this.visible=!1)}},created:function(){this._popper=null},deactivated:function(){this.visible=!1,this.whileOpenListen(!1),this.removePopper()},beforeDestroy:function(){this.visible=!1,this.whileOpenListen(!1),this.removePopper()},methods:{emitEvent:function(t){var e=t.type;this.$emit(e,t),this.$root.$emit("bv::dropdown::".concat(e),t)},showMenu:function(){var t=this;if(!this.disabled){if(this.$root.$emit("bv::dropdown::shown",this),Z(this.inNavbar)&&this.isNav&&(this.inNavbar=Boolean(jt(".navbar",this.$el))),!this.inNavbar)if("undefined"==typeof ko)O("b-dropdown: Popper.js not found. Falling back to CSS positioning.");else{var e=this.dropup&&this.right||this.split?this.$el:this.$refs.toggle;e=e.$el||e,this.createPopper(e)}this.whileOpenListen(!0),this.$nextTick(function(){t.focusMenu(),t.$emit("shown")})}},hideMenu:function(){this.whileOpenListen(!1),this.$root.$emit("bv::dropdown::hidden",this),this.$emit("hidden"),this.removePopper()},createPopper:function(t){this.removePopper(),this._popper=new ko(t,this.$refs.menu,this.getPopperConfig())},removePopper:function(){this._popper&&this._popper.destroy(),this._popper=null},getPopperConfig:function(){var t=Io;this.dropup?t=this.right?Oo:Po:this.dropright?t=Fo:this.dropleft?t=No:this.right&&(t=Eo);var e={placement:t,modifiers:{offset:{offset:this.offset||0},flip:{enabled:!this.noFlip}}};return this.boundary&&(e.modifiers.preventOverflow={boundariesElement:this.boundary}),a({},e,{},this.popperOpts||{})},whileOpenListen:function(t){t?(this.$root.$on("bv::dropdown::shown",this.rootCloseListener),this.listenForClickOut=!0,this.listenForFocusIn=!0):(this.$root.$off("bv::dropdown::shown",this.rootCloseListener),this.listenForClickOut=!1,this.listenForFocusIn=!1)},rootCloseListener:function(t){t!==this&&(this.visible=!1)},show:function(){var t=this;this.disabled||It(function(){t.visible=!0})},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.disabled||(this.visible=!1,t&&this.$once("hidden",this.focusToggler))},toggle:function(t){var e=(t=t||{}).type,i=t.keyCode;"click"!==e&&("keydown"!==e||i!==ci&&i!==ui&&i!==mi)||(this.disabled?this.visible=!1:(this.$emit("toggle",t),t.preventDefault(),t.stopPropagation(),this.visible?this.hide(!0):this.show()))},click:function(t){this.disabled?this.visible=!1:this.$emit("click",t)},onKeydown:function(t){var e=t.keyCode;e===di?this.onEsc(t):e===mi?this.focusNext(t,!1):e===fi&&this.focusNext(t,!0)},onEsc:function(t){this.visible&&(this.visible=!1,t.preventDefault(),t.stopPropagation(),this.$once("hidden",this.focusToggler))},clickOutHandler:function(){this.visible&&(this.visible=!1)},focusInHandler:function(t){var e=t.target;!this.visible||Gt(this.$refs.menu,e)||Gt(this.toggler,e)||(this.visible=!1)},focusNext:function(t,e){var i=this;!this.visible||t&&jt(_o.FORM_CHILD,t.target)||(t.preventDefault(),t.stopPropagation(),this.$nextTick(function(){var n=i.getItems();if(!(n.length<1)){var o=n.indexOf(t.target);e&&o>0?o--:!e&&o<n.length-1&&o++,o<0&&(o=0),i.focusItem(o,n)}}))},focusItem:function(t,e){var i=e.find(function(e,i){return i===t});i&&i.focus&&i.focus()},getItems:function(){return(Mt(_o.ITEM_SELECTOR,this.$refs.menu)||[]).filter(At)},focusMenu:function(){this.$refs.menu.focus&&this.$refs.menu.focus()},focusToggler:function(){var t=this;this.$nextTick(function(){var e=t.toggler;e&&e.focus&&e.focus()})}}},Do="BDropdown",Ao={toggleText:{type:String,default:function(){return wt(Do,"toggleText")}},size:{type:String,default:null},variant:{type:String,default:function(){return wt(Do,"variant")}},menuClass:{type:[String,Array],default:null},toggleTag:{type:String,default:"button"},toggleClass:{type:[String,Array],default:null},noCaret:{type:Boolean,default:!1},split:{type:Boolean,default:!1},splitHref:{type:String},splitTo:{type:[String,Object]},splitVariant:{type:String,default:function(){return wt(Do,"splitVariant")}},splitButtonType:{type:String,default:"button",validator:function(t){return V(["button","submit","reset"],t)}},role:{type:String,default:"menu"},boundary:{type:[String,Cn],default:"scrollParent"}},Lo=t.extend({name:Do,mixins:[Qi,Vo,pe],props:Ao,computed:{dropdownClasses:function(){return[this.directionClass,{show:this.visible,"position-static":"scrollParent"!==this.boundary||!this.boundary}]},menuClasses:function(){return[this.menuClass,{"dropdown-menu-right":this.right,show:this.visible}]},toggleClasses:function(){return[this.toggleClass,{"dropdown-toggle-split":this.split,"dropdown-toggle-no-caret":this.noCaret&&!this.split}]}},render:function(t){var e=t(),i=this.normalizeSlot("button-content")||this.normalizeSlot("text")||this.html||Me(this.text);if(this.split){var n={disabled:this.disabled,variant:this.splitVariant||this.variant,size:this.size};this.splitTo?n.to=this.splitTo:this.splitHref?n.href=this.splitHref:this.splitButtonType&&(n.type=this.splitButtonType),e=t(oi,{ref:"button",props:n,attrs:{id:this.safeId("_BV_button_")},on:{click:this.click}},[i])}var o=t(oi,{ref:"toggle",staticClass:"dropdown-toggle",class:this.toggleClasses,props:{variant:this.variant,size:this.size,disabled:this.disabled,tag:this.toggleTag},attrs:{id:this.safeId("_BV_toggle_"),"aria-haspopup":"true","aria-expanded":this.visible?"true":"false"},on:{click:this.toggle,keydown:this.toggle}},[this.split?t("span",{class:["sr-only"]},[this.toggleText]):i]),r=t("ul",{ref:"menu",staticClass:"dropdown-menu",class:this.menuClasses,attrs:{role:this.role,tabindex:"-1","aria-labelledby":this.safeId(this.split?"_BV_button_":"_BV_toggle_")},on:{keydown:this.onKeydown}},!this.lazy||this.visible?this.normalizeSlot("default",{hide:this.hide}):[t()]);return t("div",{staticClass:"dropdown btn-group b-dropdown",class:this.dropdownClasses,attrs:{id:this.safeId()}},[e,o,r])}}),Ho=Ne(),Mo=t.extend({name:"BDropdownItem",mixins:[pe],inheritAttrs:!1,inject:{bvDropdown:{default:null}},props:a({},Ho,{variant:{type:String,default:null}}),methods:{closeDropdown:function(){var t=this;It(function(){t.bvDropdown&&t.bvDropdown.hide(!0)})},onClick:function(t){this.$emit("click",t),this.closeDropdown()}},render:function(t){return t("li",[t(Ve,{props:this.$props,staticClass:"dropdown-item",class:r({},"text-".concat(this.variant),this.variant&&!(this.active||this.disabled)),attrs:a({},this.$attrs,{role:"menuitem"}),on:{click:this.onClick},ref:"item"},this.normalizeSlot("default"))])}}),Ro={active:{type:Boolean,default:!1},activeClass:{type:String,default:"active"},disabled:{type:Boolean,default:!1},variant:{type:String,default:null}},zo=t.extend({name:"BDropdownItemButton",mixins:[pe],inheritAttrs:!1,inject:{bvDropdown:{default:null}},props:Ro,methods:{closeDropdown:function(){this.bvDropdown&&this.bvDropdown.hide(!0)},onClick:function(t){this.$emit("click",t),this.closeDropdown()}},render:function(t){var e;return t("li",[t("button",{staticClass:"dropdown-item",class:(e={},r(e,this.activeClass,this.active),r(e,"text-".concat(this.variant),this.variant&&!(this.active||this.disabled)),e),attrs:a({},this.$attrs,{role:"menuitem",type:"button",disabled:this.disabled}),on:{click:this.onClick},ref:"button"},this.normalizeSlot("default"))])}}),jo={id:{type:String,default:null},tag:{type:String,default:"header"},variant:{type:String,default:null}},Go=t.extend({name:"BDropdownHeader",functional:!0,inheritAttrs:!1,props:jo,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t("li",[t(i.tag,le(n,{staticClass:"dropdown-header",class:r({},"text-".concat(i.variant),i.variant),attrs:{id:i.id||null,role:"heading"},ref:"header"}),o)])}}),Wo={tag:{type:String,default:"hr"}},Uo=t.extend({name:"BDropdownDivider",functional:!0,inheritAttrs:!1,props:Wo,render:function(t,e){var i=e.props,n=e.data;return t("li",[t(i.tag,le(n,{staticClass:"dropdown-divider",attrs:{role:"separator","aria-orientation":"horizontal"},ref:"divider"}))])}}),qo={id:{type:String,default:null},inline:{type:Boolean,default:!1},novalidate:{type:Boolean,default:!1},validated:{type:Boolean,default:!1}},Ko=t.extend({name:"BForm",functional:!0,props:qo,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t("form",le(n,{class:{"form-inline":i.inline,"was-validated":i.validated},attrs:{id:i.id,novalidate:i.novalidate}}),o)}}),Xo=t.extend({name:"BDropdownForm",functional:!0,inheritAttrs:!1,props:a({},qo,{disabled:{type:Boolean,default:!1}}),render:function(t,e){var i=e.props,n=e.data,o=e.children;return t("li",[t(Ko,le(n,{ref:"form",staticClass:"b-dropdown-form",class:{disabled:i.disabled},props:i,attrs:{disabled:i.disabled,tabindex:i.disabled?null:"-1"}}),o)])}}),Yo=t.extend({name:"BDropdownText",functional:!0,inheritAttrs:!1,props:{tag:{type:String,default:"p"},variant:{type:String,default:null}},render:function(t,e){var i=e.props,n=e.data,o=e.children;return t("li",[t(i.tag,le(n,{staticClass:"b-dropdown-text",class:r({},"text-".concat(i.variant),i.variant),props:i,ref:"text"}),o)])}}),Zo={id:{type:String,default:null},header:{type:String,default:null},headerTag:{type:String,default:"header"},headerVariant:{type:String,default:null},headerClasses:{type:[String,Array,Object],default:null},ariaDescribedby:{type:String,default:null}},Jo=t.extend({name:"BDropdownGroup",functional:!0,inheritAttrs:!1,props:Zo,render:function(t,e){var i,n=e.props,o=e.data,s=e.slots,a=e.scopedSlots,l=s(),u=a||{},c=null;(he("header",u,l)||n.header)&&(c=n.id?"_bv_".concat(n.id,"_group_dd_header"):null,i=t(n.headerTag,{staticClass:"dropdown-header",class:[n.headerClasses,r({},"text-".concat(n.variant),n.variant)],attrs:{id:c,role:"heading"}},fe("header",{},u,l)||n.header));var d=[c,n.ariaDescribedBy].filter(Boolean).join(" ").trim();return t("li",[i||t(),t("ul",le(o,{staticClass:"list-unstyled",attrs:{id:n.id||null,"aria-describedby":d||null}}),fe("default",{},u,l))])}}),Qo=ft({components:{BDropdown:Lo,BDd:Lo,BDropdownItem:Mo,BDdItem:Mo,BDropdownItemButton:zo,BDropdownItemBtn:zo,BDdItemButton:zo,BDdItemBtn:zo,BDropdownHeader:Go,BDdHeader:Go,BDropdownDivider:Uo,BDdDivider:Uo,BDropdownForm:Xo,BDdForm:Xo,BDropdownText:Yo,BDdText:Yo,BDropdownGroup:Jo,BDdGroup:Jo}}),tr={type:{type:String,default:"iframe",validator:function(t){return V(["iframe","embed","video","object","img","b-img","b-img-lazy"],t)}},tag:{type:String,default:"div"},aspect:{type:String,default:"16by9"}},er=ft({components:{BEmbed:t.extend({name:"BEmbed",functional:!0,props:tr,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,{ref:n.ref,staticClass:"embed-responsive",class:r({},"embed-responsive-".concat(i.aspect),Boolean(i.aspect))},[t(i.type,le(n,{ref:"",staticClass:"embed-responsive-item"}),o)])}})}}),ir={props:{options:{type:[Array,Object],default:function(){return[]}},valueField:{type:String,default:"value"},textField:{type:String,default:"text"},htmlField:{type:String,default:"html"},disabledField:{type:String,default:"disabled"}},computed:{formOptions:function(){var t=this.options,e=this.valueField,i=this.textField,n=this.htmlField,o=this.disabledField;return N(t)?t.map(function(t){if(U(t)){var r=t[e],s=String(t[i]);return{value:Y(r)?s:r,text:Me(s),html:t[n],disabled:Boolean(t[o])}}return{value:t,text:Me(String(t)),disabled:!1}}):H(t).map(function(r){var s=t[r]||{};if(U(s)){var a=s[e],l=s[i];return{value:Y(a)?r:a,text:Y(l)?Me(String(r)):Me(String(l)),html:s[n],disabled:Boolean(s[o])}}return{value:r,text:Me(String(s)),disabled:!1}})}}},nr=t.extend({name:"BFormDatalist",mixins:[ir,pe],props:{id:{type:String,default:null,required:!0}},render:function(t){var e=this.formOptions.map(function(e,i){return t("option",{key:"option_".concat(i,"_opt"),attrs:{disabled:e.disabled},domProps:a({},Re(e.html,e.text),{value:e.value})})});return t("datalist",{attrs:{id:this.id}},[e,this.normalizeSlot("default")])}}),or={id:{type:String,default:null},tag:{type:String,default:"small"},textVariant:{type:String,default:function(){return wt("BFormText","textVariant")}},inline:{type:Boolean,default:!1}},rr=t.extend({name:"BFormText",functional:!0,props:or,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,le(n,{class:r({"form-text":!i.inline},"text-".concat(i.textVariant),Boolean(i.textVariant)),attrs:{id:i.id}}),o)}}),sr={id:{type:String,default:null},tag:{type:String,default:"div"},tooltip:{type:Boolean,default:!1},forceShow:{type:Boolean,default:!1},state:{type:[Boolean,String],default:null},ariaLive:{type:String,default:null},role:{type:String,default:null}},ar=t.extend({name:"BFormInvalidFeedback",functional:!0,props:sr,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=!0===i.forceShow||!1===i.state||"invalid"===i.state;return t(i.tag,le(n,{class:{"invalid-feedback":!i.tooltip,"invalid-tooltip":i.tooltip,"d-block":r},attrs:{id:i.id,role:i.role,"aria-live":i.ariaLive,"aria-atomic":i.ariaLive?"true":null}}),o)}}),lr={id:{type:String,default:null},tag:{type:String,default:"div"},tooltip:{type:Boolean,default:!1},forceShow:{type:Boolean,default:!1},state:{type:[Boolean,String],default:null},ariaLive:{type:String,default:null},role:{type:String,default:null}},ur=t.extend({name:"BFormValidFeedback",functional:!0,props:lr,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=!0===i.forceShow||!0===i.state||"valid"===i.state;return t(i.tag,le(n,{class:{"valid-feedback":!i.tooltip,"valid-tooltip":i.tooltip,"d-block":r},attrs:{id:i.id,role:i.role,"aria-live":i.ariaLive,"aria-atomic":i.ariaLive?"true":null}}),o)}}),cr={tag:{type:String,default:"div"}},dr=t.extend({name:"BFormRow",functional:!0,props:cr,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,le(n,{staticClass:"form-row"}),o)}}),hr=ft({components:{BForm:Ko,BFormDatalist:nr,BDatalist:nr,BFormText:rr,BFormInvalidFeedback:ar,BFormFeedback:ar,BFormValidFeedback:ur,BFormRow:dr}}),fr={props:{state:{type:[String,Boolean],default:null}},computed:{computedState:function(){var t=this.state;return""===t?null:!0===t||"valid"===t||!1!==t&&"invalid"!==t&&null},stateClass:function(){var t=this.computedState;return!0===t?"is-valid":!1===t?"is-invalid":null}}},pr=function(t,e){return e+(t?Bi(t):"")},mr=function(){return{type:[String,Number],default:null}},gr=yt(function(t,e,i){var n=t;if(!Y(i)&&!Z(i)&&!1!==i)return e&&(n+="-".concat(e)),"col"!==t||""!==i&&!0!==i?(n+="-".concat(i)).toLowerCase():n.toLowerCase()}),vr=j(null),br=function(){var t=$t().filter(Boolean),e=t.reduce(function(t,e){return e&&(t[e]={type:[Boolean,String,Number],default:!1}),t},j(null)),i=t.reduce(function(t,e){return t[pr(e,"offset")]=mr(),t},j(null)),n=t.reduce(function(t,e){return t[pr(e,"order")]=mr(),t},j(null));return vr=A(j(null),{col:H(e),offset:H(i),order:H(n)}),a({col:{type:Boolean,default:!1},cols:mr()},e,{offset:mr()},i,{order:mr()},n,{alignSelf:{type:String,default:null,validator:function(t){return V(["auto","start","end","center","baseline","stretch"],t)}},tag:{type:String,default:"div"}})},yr={name:"BCol",functional:!0,get props(){return delete this.props,this.props=br()},render:function(t,e){var i,n=e.props,o=e.data,s=e.children,a=[];for(var l in vr)for(var u=vr[l],c=0;c<u.length;c++){var d=gr(l,u[c].replace(l,""),n[u[c]]);d&&a.push(d)}var h=a.some(function(t){return/^col-/.test(t)});return a.push((r(i={col:n.col||!h&&!n.cols},"col-".concat(n.cols),n.cols),r(i,"offset-".concat(n.offset),n.offset),r(i,"order-".concat(n.order),n.order),r(i,"align-self-".concat(n.alignSelf),n.alignSelf),i)),t(n.tag,le(o,{class:a}),s)}},Sr='Props "horizontal" and "breakpoint" are deprecated. Use "label-cols(-{breakpoint})" props instead.',Br=function(t,e){var i=e.normalizeSlot("invalid-feedback")||e.invalidFeedback,n=t();return i&&(n=t(ar,{props:{id:e.invalidFeedbackId,state:e.computedState,tooltip:e.tooltip,ariaLive:e.feedbackAriaLive,role:e.feedbackAriaLive?"alert":null},attrs:{tabindex:i?"-1":null}},[i])),n},wr=function(t,e){var i=e.normalizeSlot("valid-feedback")||e.validFeedback,n=t();return i&&(n=t(ur,{props:{id:e.validFeedbackId,state:e.computedState,tooltip:e.tooltip,ariaLive:e.feedbackAriaLive,role:e.feedbackAriaLive?"alert":null},attrs:{tabindex:i?"-1":null}},[i])),n},Tr=function(t,e){var i=e.normalizeSlot("description")||e.description,n=t();return i&&(n=t(rr,{attrs:{id:e.descriptionId,tabindex:i?"-1":null}},[i])),n},kr=yt(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0;return"".concat(e).concat(Bi(t))}),$r={name:"BFormGroup",mixins:[Qi,fr,pe],get props(){return delete this.props,this.props=(t=$t(),e=t.reduce(function(t,e){return t[kr(e,"labelCols")]={type:[Number,String,Boolean],default:!e&&null},t},j(null)),i=t.reduce(function(t,e){return t[kr(e,"labelAlign")]={type:String,default:null},t},j(null)),a({label:{type:String,default:null},labelFor:{type:String,default:null},labelSize:{type:String,default:null},labelSrOnly:{type:Boolean,default:!1}},e,{},i,{labelClass:{type:[String,Array,Object],default:null},description:{type:String,default:null},invalidFeedback:{type:String,default:null},validFeedback:{type:String,default:null},tooltip:{type:Boolean,default:!1},feedbackAriaLive:{type:String,default:"assertive"},validated:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},horizontal:{type:Boolean,default:!1,deprecated:Sr},breakpoint:{type:String,default:null,deprecated:Sr}}));var t,e,i},computed:{labelColProps:function(){var t=this,e={};if(this.horizontal){O("b-form-group: ".concat(Sr));var i=this.breakpoint||$t()[1],n=parseInt(this.labelCols,10)||3;return e[i]=n>0?n:3,e}return $t().forEach(function(i){var n=t[kr(i,"labelCols")];if(tt(n=""===n||(n||!1))||(n=(n=parseInt(n,10)||0)>0&&n),n){var o=i||(tt(n)?"col":"cols");e[o]=n}}),e},labelAlignClasses:function(){var t=this,e=[];return $t().forEach(function(i){var n=t[kr(i,"labelAlign")]||null;if(n){var o=i?"text-".concat(i,"-").concat(n):"text-".concat(n);e.push(o)}}),e},isHorizontal:function(){return H(this.labelColProps).length>0},labelId:function(){return this.$slots.label||this.label?this.safeId("_BV_label_"):null},descriptionId:function(){return this.$slots.description||this.description?this.safeId("_BV_description_"):null},hasInvalidFeedback:function(){var t=this.$slots;return!1===this.computedState&&(t["invalid-feedback"]||this.invalidFeedback)},invalidFeedbackId:function(){return this.hasInvalidFeedback?this.safeId("_BV_feedback_invalid_"):null},hasValidFeedback:function(){return!0===this.computedState&&(this.$slots["valid-feedback"]||this.validFeedback)},validFeedbackId:function(){return this.hasValidFeedback?this.safeId("_BV_feedback_valid_"):null},describedByIds:function(){return[this.descriptionId,this.invalidFeedbackId,this.validFeedbackId].filter(Boolean).join(" ")||null}},watch:{describedByIds:function(t,e){t!==e&&this.setInputDescribedBy(t,e)}},mounted:function(){var t=this;this.$nextTick(function(){t.setInputDescribedBy(t.describedByIds)})},methods:{legendClick:function(t){if(!this.labelFor){var e=t.target?t.target.tagName:"";if(!/^(input|select|textarea|label|button|a)$/i.test(e)){var i=Mt("input:not([disabled]),textarea:not([disabled]),select:not([disabled])",this.$refs.content).filter(At);i&&1===i.length&&i[0].focus&&i[0].focus()}}},setInputDescribedBy:function(t,e){if(this.labelFor&&w){var i=Rt("#".concat(this.labelFor),this.$refs.content);if(i){var n="aria-describedby",o=(Zt(i,n)||"").split(/\s+/);t=(t||"").split(/\s+/),e=(e||"").split(/\s+/),o=o.filter(function(t){return!V(e,t)}).concat(t).filter(Boolean),(o=H(o.reduce(function(t,e){return a({},t,r({},e,!0))},{})).join(" ").trim())?Xt(i,n,o):Yt(i,n)}}}},render:function(t){var e=!this.labelFor,i=this.isHorizontal,n=function(t,e){var i=e.normalizeSlot("label")||e.label,n=e.labelFor,o=!n,r=e.isHorizontal,s=o?"legend":"label";if(i||r){if(e.labelSrOnly){var l=t();return i&&(l=t(s,{class:"sr-only",attrs:{id:e.labelId,for:n||null}},[i])),t(r?yr:"div",{props:r?e.labelColProps:{}},[l])}return t(r?yr:s,{on:o?{click:e.legendClick}:{},props:r?a({tag:s},e.labelColProps):{},attrs:{id:e.labelId,for:n||null,tabindex:o?"-1":null},class:[r||o?"col-form-label":"",!r&&o?"pt-0":"",r||o?"":"d-block",e.labelSize?"col-form-label-".concat(e.labelSize):"",e.labelAlignClasses,e.labelClass]},[i])}return t()}(t,this),o=t(i?yr:"div",{ref:"content",attrs:{tabindex:e?"-1":null,role:e?"group":null}},[this.normalizeSlot("default")||t(),Br(t,this),wr(t,this),Tr(t,this)]),r={staticClass:"form-group",class:[this.validated?"was-validated":null,this.stateClass],attrs:{id:this.safeId(),disabled:e?this.disabled:null,role:e?null:"group","aria-invalid":!1===this.computedState?"true":null,"aria-labelledby":e&&i?this.labelId:null,"aria-describedby":e?this.describedByIds:null}};return t(e?"fieldset":i?dr:"div",r,i&&e?[t(dr,{},[n,o])]:[n,o])}},Cr=ft({components:{BFormGroup:$r,BFormFieldset:$r}}),xr=function(t,e){for(var i=0;i<t.length;i++)if(fn(t[i],e))return i;return-1},_r={props:{name:{type:String},id:{type:String},disabled:{type:Boolean},required:{type:Boolean,default:!1},form:{type:String,default:null},autofocus:{type:Boolean,default:!1}},mounted:function(){this.handleAutofocus()},activated:function(){this.handleAutofocus()},methods:{handleAutofocus:function(){var t=this;this.$nextTick(function(){It(function(){var e=t.$el;t.autofocus&&At(e)&&(zt(e,"input, textarea, select")||(e=Rt("input, textarea, select",e)),e&&e.focus&&e.focus())})})}}},Pr={mixins:[pe],model:{prop:"checked",event:"input"},props:{value:{},checked:{},inline:{type:Boolean,default:!1},plain:{type:Boolean,default:!1},button:{type:Boolean,default:!1},buttonVariant:{type:String,default:null},ariaLabel:{type:String,default:null},ariaLabelledby:{type:String,default:null}},data:function(){return{localChecked:this.isGroup?this.bvGroup.checked:this.checked,hasFocus:!1}},computed:{computedLocalChecked:{get:function(){return this.isGroup?this.bvGroup.localChecked:this.localChecked},set:function(t){this.isGroup?this.bvGroup.localChecked=t:this.localChecked=t}},isGroup:function(){return Boolean(this.bvGroup)},isBtnMode:function(){return this.isGroup?this.bvGroup.buttons:this.button},isPlain:function(){return!this.isBtnMode&&(this.isGroup?this.bvGroup.plain:this.plain)},isCustom:function(){return!this.isBtnMode&&!this.isPlain},isSwitch:function(){return!(this.isBtnMode||this.isRadio||this.isPlain)&&(this.isGroup?this.bvGroup.switches:this.switch)},isInline:function(){return this.isGroup?this.bvGroup.inline:this.inline},isDisabled:function(){return this.isGroup&&this.bvGroup.disabled||this.disabled},isRequired:function(){return Boolean(this.getName&&(this.isGroup?this.bvGroup.required:this.required))},getName:function(){return(this.isGroup?this.bvGroup.groupName:this.name)||null},getForm:function(){return(this.isGroup?this.bvGroup.form:this.form)||null},getSize:function(){return(this.isGroup?this.bvGroup.size:this.size)||""},getState:function(){return this.isGroup?this.bvGroup.computedState:this.computedState},getButtonVariant:function(){return this.buttonVariant?this.buttonVariant:this.isGroup&&this.bvGroup.buttonVariant?this.bvGroup.buttonVariant:"secondary"},buttonClasses:function(){return["btn","btn-".concat(this.getButtonVariant),this.getSize?"btn-".concat(this.getSize):"",this.isDisabled?"disabled":"",this.isChecked?"active":"",this.hasFocus?"focus":""]}},watch:{checked:function(t,e){this.computedLocalChecked=t}},methods:{handleFocus:function(t){t.target&&("focus"===t.type?this.hasFocus=!0:"blur"===t.type&&(this.hasFocus=!1))},focus:function(){!this.isDisabled&&this.$refs.input&&this.$refs.input.focus&&this.$refs.input.focus()},blur:function(){!this.isDisabled&&this.$refs.input&&this.$refs.input.blur&&this.$refs.input.blur()}},render:function(t){var e=this.normalizeSlot("default"),i={change:this.handleChange};this.isBtnMode&&(i.focus=i.blur=this.handleFocus);var n=t("input",{ref:"input",key:"input",on:i,class:{"form-check-input":this.isPlain,"custom-control-input":this.isCustom,"is-valid":!0===this.getState&&!this.isBtnMode,"is-invalid":!1===this.getState&&!this.isBtnMode,"position-static":this.isPlain&&!e},directives:[{name:"model",rawName:"v-model",value:this.computedLocalChecked,expression:"computedLocalChecked"}],attrs:{id:this.safeId(),type:this.isRadio?"radio":"checkbox",name:this.getName,form:this.getForm,disabled:this.isDisabled,required:this.isRequired,autocomplete:"off","aria-required":this.isRequired||null,"aria-label":this.ariaLabel||null,"aria-labelledby":this.ariaLabelledby||null},domProps:{value:this.value,checked:this.isChecked}});if(this.isBtnMode){var o=t("label",{class:this.buttonClasses},[n,e]);return this.isGroup||(o=t("div",{class:["btn-group-toggle","d-inline-block"]},[o])),o}var s=t();return this.isPlain&&!e||(s=t("label",{class:{"form-check-label":this.isPlain,"custom-control-label":this.isCustom},attrs:{for:this.safeId()}},e)),t("div",{class:r({"form-check":this.isPlain,"form-check-inline":this.isPlain&&this.isInline,"custom-control":this.isCustom,"custom-control-inline":this.isCustom&&this.isInline,"custom-checkbox":this.isCustom&&this.isCheck&&!this.isSwitch,"custom-switch":this.isSwitch,"custom-radio":this.isCustom&&this.isRadio},"form-control-".concat(this.getSize),Boolean(this.getSize&&!this.isBtnMode))},[n,s])}},Or={props:{size:{type:String,default:null}},computed:{sizeFormClass:function(){return[this.size?"form-control-".concat(this.size):null]},sizeBtnClass:function(){return[this.size?"btn-".concat(this.size):null]}}},Ir=t.extend({name:"BFormCheckbox",mixins:[Pr,Qi,_r,Or,fr],inject:{bvGroup:{from:"bvCheckGroup",default:!1}},props:{value:{default:!0},uncheckedValue:{default:!1},indeterminate:{type:Boolean,default:!1},switch:{type:Boolean,default:!1},checked:{type:[String,Number,Object,Array,Boolean],default:null}},computed:{isChecked:function(){var t=this.computedLocalChecked,e=this.value;return N(t)?xr(t,e)>-1:fn(t,e)},isRadio:function(){return!1},isCheck:function(){return!0}},watch:{computedLocalChecked:function(t,e){this.$emit("input",t),this.$refs&&this.$refs.input&&this.$emit("update:indeterminate",this.$refs.input.indeterminate)},indeterminate:function(t,e){this.setIndeterminate(t)}},mounted:function(){this.setIndeterminate(this.indeterminate)},methods:{handleChange:function(t){var e=t.target,i=e.checked,n=e.indeterminate,o=this.computedLocalChecked,r=this.value,s=N(o),a=s?null:this.uncheckedValue;if(s){var l=xr(o,r);i&&l<0?o=o.concat(r):!i&&l>-1&&(o=o.slice(0,l).concat(o.slice(l+1)))}else o=i?r:a;this.computedLocalChecked=o,this.$emit("change",i?r:a),this.isGroup&&this.bvGroup.$emit("change",o),this.$emit("update:indeterminate",n)},setIndeterminate:function(t){N(this.computedLocalChecked)&&(t=!1),this.$refs&&this.$refs.input&&(this.$refs.input.indeterminate=t,this.$emit("update:indeterminate",t))}}}),Er=t.extend({name:"BFormRadio",mixins:[Qi,Pr,_r,Or,fr],inject:{bvGroup:{from:"bvRadioGroup",default:!1}},props:{checked:{type:[String,Object,Number,Boolean],default:null}},computed:{isChecked:function(){return fn(this.value,this.computedLocalChecked)},isRadio:function(){return!0},isCheck:function(){return!1}},watch:{computedLocalChecked:function(t,e){this.$emit("input",this.computedLocalChecked)}},methods:{handleChange:function(t){var e=t.target.checked,i=this.value;this.computedLocalChecked=i,this.$emit("change",e?i:null),this.isGroup&&this.bvGroup.$emit("change",e?i:null)}}}),Fr={mixins:[pe],model:{prop:"checked",event:"input"},props:{validated:{type:Boolean,default:!1},ariaInvalid:{type:[Boolean,String],default:!1},stacked:{type:Boolean,default:!1},plain:{type:Boolean,default:!1},buttons:{type:Boolean,default:!1},buttonVariant:{type:String,default:"secondary"}},computed:{inline:function(){return!this.stacked},groupName:function(){return this.name||this.safeId()},groupClasses:function(){return this.buttons?["btn-group-toggle",this.inline?"btn-group":"btn-group-vertical",this.size?"btn-group-".concat(this.size):"",this.validated?"was-validated":""]:[this.validated?"was-validated":""]},computedAriaInvalid:function(){var t=this.ariaInvalid;return!0===t||"true"===t||""===t?"true":!1===this.computedState?"true":null}},watch:{checked:function(t,e){this.localChecked=t},localChecked:function(t,e){this.$emit("input",t)}},render:function(t){var e=this,i=this.formOptions.map(function(i,n){var o="_BV_option_".concat(n,"_");return t(e.isRadioGroup?Er:Ir,{key:o,props:{id:e.safeId(o),value:i.value,disabled:i.disabled||!1}},[t("span",{domProps:Re(i.html,i.text)})])});return t("div",{class:this.groupClasses,attrs:{id:this.safeId(),role:this.isRadioGroup?"radiogroup":"group",tabindex:"-1","aria-required":this.required?"true":null,"aria-invalid":this.computedAriaInvalid}},[this.normalizeSlot("first"),i,this.normalizeSlot("default")])}},Nr={switches:{type:Boolean,default:!1},checked:{type:[String,Number,Object,Array,Boolean],default:null}},Vr=t.extend({name:"BFormCheckboxGroup",mixins:[Qi,_r,Fr,ir,Or,fr],provide:function(){return{bvCheckGroup:this}},props:Nr,data:function(){return{localChecked:this.checked||[]}},computed:{isRadioGroup:function(){return!1}}}),Dr=ft({components:{BFormCheckbox:Ir,BCheckbox:Ir,BCheck:Ir,BFormCheckboxGroup:Vr,BCheckboxGroup:Vr,BCheckGroup:Vr}}),Ar={checked:{type:[String,Object,Number,Boolean],default:null}},Lr=t.extend({name:"BFormRadioGroup",mixins:[Qi,_r,Fr,ir,Or,fr],provide:function(){return{bvRadioGroup:this}},props:Ar,data:function(){return{localChecked:this.checked}},computed:{isRadioGroup:function(){return!0}}}),Hr=ft({components:{BFormRadio:Er,BRadio:Er,BFormRadioGroup:Lr,BRadioGroup:Lr}}),Mr={model:{prop:"value",event:"update"},props:{value:{type:[String,Number],default:""},ariaInvalid:{type:[Boolean,String],default:!1},readonly:{type:Boolean,default:!1},plaintext:{type:Boolean,default:!1},autocomplete:{type:String,default:null},placeholder:{type:String,default:null},formatter:{type:Function,default:null},trim:{type:Boolean,default:!1},number:{type:Boolean,default:!1},lazyFormatter:{type:Boolean,value:!1}},data:function(){return{localValue:this.stringifyValue(this.value)}},computed:{computedClass:function(){return[{"custom-range":"range"===this.type,"form-control-plaintext":this.plaintext&&"range"!==this.type&&"color"!==this.type,"form-control":!this.plaintext&&"range"!==this.type||"color"===this.type},this.sizeFormClass,this.stateClass]},computedAriaInvalid:function(){return this.ariaInvalid&&"false"!==this.ariaInvalid?!0===this.ariaInvalid?"true":this.ariaInvalid:!1===this.computedState?"true":null}},watch:{value:function(t){t!==this.localValue&&(this.localValue=this.stringifyValue(t))}},mounted:function(){var t=this.stringifyValue(this.value);t!==this.localValue&&(this.localValue=t)},methods:{stringifyValue:function(t){return Y(t)||Z(t)?"":String(t)},getFormatted:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t=this.stringifyValue(t),this.lazyFormatter&&!i||!Q(this.formatter)||(t=this.formatter(t,e)),t},updateValue:function(t){if((t=this.stringifyValue(t))!==this.localValue){if(this.localValue=t,this.number){var e=parseFloat(t);t=isNaN(e)?t:e}else this.trim&&(t=t.trim());this.$emit("update",t)}else this.$refs.input&&t!==this.$refs.input.value&&(this.$refs.input.value=t)},onInput:function(t){if(!t.target.composing){var e=this.getFormatted(t.target.value,t);!1===e||t.defaultPrevented?t.preventDefault():(this.updateValue(e),this.$emit("input",e))}},onChange:function(t){if(!t.target.composing){var e=this.getFormatted(t.target.value,t);!1===e||t.defaultPrevented?t.preventDefault():(this.updateValue(e),this.$emit("change",e))}},onBlur:function(t){if(this.lazyFormatter){var e=this.getFormatted(t.target.value,t,!0);if(!1===e)return;this.updateValue(e)}this.$emit("blur",t)},focus:function(){this.disabled||this.$el.focus()},blur:function(){this.disabled||this.$el.blur()}}},Rr={computed:{selectionStart:{cache:!1,get:function(){return this.$refs.input.selectionStart},set:function(t){this.$refs.input.selectionStart=t}},selectionEnd:{cache:!1,get:function(){return this.$refs.input.selectionEnd},set:function(t){this.$refs.input.selectionEnd=t}},selectionDirection:{cache:!1,get:function(){return this.$refs.input.selectionDirection},set:function(t){this.$refs.input.selectionDirection=t}}},methods:{select:function(){var t;(t=this.$refs.input).select.apply(t,arguments)},setSelectionRange:function(){var t;(t=this.$refs.input).setSelectionRange.apply(t,arguments)},setRangeText:function(){var t;(t=this.$refs.input).setRangeText.apply(t,arguments)}}},zr={computed:{validity:{cache:!1,get:function(){return this.$refs.input.validity}},validationMessage:{cache:!1,get:function(){return this.$refs.input.validationMessage}},willValidate:{cache:!1,get:function(){return this.$refs.input.willValidate}}},methods:{setCustomValidity:function(){var t;return(t=this.$refs.input).setCustomValidity.apply(t,arguments)},checkValidity:function(){var t;return(t=this.$refs.input).checkValidity.apply(t,arguments)},reportValidity:function(){var t;return(t=this.$refs.input).reportValidity.apply(t,arguments)}}},jr=["text","password","email","number","url","tel","search","range","color","date","time","datetime","datetime-local","month","week"],Gr=t.extend({name:"BFormInput",mixins:[Qi,_r,Or,fr,Mr,Rr,zr],props:{type:{type:String,default:"text",validator:function(t){return V(jr,t)}},noWheel:{type:Boolean,default:!1},min:{type:[String,Number],default:null},max:{type:[String,Number],default:null},step:{type:[String,Number],default:null},list:{type:String,default:null}},computed:{localType:function(){return V(jr,this.type)?this.type:"text"}},watch:{noWheel:function(t){this.setWheelStopper(t)}},mounted:function(){this.setWheelStopper(this.noWheel)},deactivated:function(){this.setWheelStopper(!1)},activated:function(){this.setWheelStopper(this.noWheel)},beforeDestroy:function(){this.setWheelStopper(!1)},methods:{setWheelStopper:function(t){var e=this.$el;t?(Nt(e,"focus",this.onWheelFocus),Nt(e,"blur",this.onWheelBlur)):(Vt(e,"focus",this.onWheelFocus),Vt(e,"blur",this.onWheelBlur),Vt(document,"wheel",this.stopWheel))},onWheelFocus:function(t){Nt(document,"wheel",this.stopWheel)},onWheelBlur:function(t){Vt(document,"wheel",this.stopWheel)},stopWheel:function(t){t.preventDefault(),this.$el.blur()}},render:function(t){return t("input",{ref:"input",class:this.computedClass,directives:[{name:"model",rawName:"v-model",value:this.localValue,expression:"localValue"}],attrs:{id:this.safeId(),name:this.name,form:this.form||null,type:this.localType,disabled:this.disabled,placeholder:this.placeholder,required:this.required,autocomplete:this.autocomplete||null,readonly:this.readonly||this.plaintext,min:this.min,max:this.max,step:this.step,list:"password"!==this.localType?this.list:null,"aria-required":this.required?"true":null,"aria-invalid":this.computedAriaInvalid},domProps:{value:this.localValue},on:a({},this.$listeners,{input:this.onInput,change:this.onChange,blur:this.onBlur})})}}),Wr=ft({components:{BFormInput:Gr,BInput:Gr}}),Ur=t.extend({name:"BFormTextarea",mixins:[Qi,_r,Or,fr,Mr,Rr,zr],props:{rows:{type:[Number,String],default:2},maxRows:{type:[Number,String],default:null},wrap:{type:String,default:"soft"},noResize:{type:Boolean,default:!1},noAutoShrink:{type:Boolean,default:!1}},data:function(){return{dontResize:!0,heightInPx:null}},computed:{computedStyle:function(){var t={resize:!this.computedRows||this.noResize?"none":null};return this.computedRows||(t.height=this.heightInPx,t.overflowY="scroll"),t},computedMinRows:function(){return Math.max(parseInt(this.rows,10)||2,2)},computedMaxRows:function(){return Math.max(this.computedMinRows,parseInt(this.maxRows,10)||0)},computedRows:function(){return this.computedMinRows===this.computedMaxRows?this.computedMinRows:null}},watch:{dontResize:function(t,e){t||this.setHeight()},localValue:function(t,e){this.setHeight()}},mounted:function(){var t=this;this.$nextTick(function(){t.dontResize=!1})},activated:function(){var t=this;this.$nextTick(function(){t.dontResize=!1})},deactivated:function(){this.dontResize=!0},beforeDestroy:function(){this.dontResize=!0},methods:{setHeight:function(){var t=this;this.$nextTick(function(){t.heightInPx=t.computeHeight()})},computeHeight:function(){if(this.$isServer||!Z(this.computedRows))return null;var t=this.$el;if(!At(t))return null;var e=te(t),i=parseFloat(e.lineHeight),n=(parseFloat(e.borderTopWidth)||0)+(parseFloat(e.borderBottomWidth)||0),o=(parseFloat(e.paddingTop)||0)+(parseFloat(e.paddingBottom)||0),r=n+o,s=i*this.computedMinRows+r,a=t.style.height||e.height;t.style.height="auto";var l=t.scrollHeight;t.style.height=a;var u=Math.max((l-o)/i,2),c=Math.min(Math.max(u,this.computedMinRows),this.computedMaxRows),d=Math.max(Math.ceil(c*i+r),s);return this.noAutoShrink&&(parseFloat(a)||0)>d?a:"".concat(d,"px")}},render:function(t){return t("textarea",{ref:"input",class:this.computedClass,style:this.computedStyle,directives:[{name:"model",rawName:"v-model",value:this.localValue,expression:"localValue"}],attrs:{id:this.safeId(),name:this.name,form:this.form||null,disabled:this.disabled,placeholder:this.placeholder,required:this.required,autocomplete:this.autocomplete||null,readonly:this.readonly||this.plaintext,rows:this.computedRows,wrap:this.wrap||null,"aria-required":this.required?"true":null,"aria-invalid":this.computedAriaInvalid},domProps:{value:this.localValue},on:a({},this.$listeners,{input:this.onInput,change:this.onChange,blur:this.onBlur})})}}),qr=ft({components:{BFormTextarea:Ur,BTextarea:Ur}}),Kr={props:{plain:{type:Boolean,default:!1}},computed:{custom:function(){return!this.plain}}},Xr="BFormFile",Yr=t.extend({name:Xr,mixins:[Qi,_r,fr,Kr,pe],model:{prop:"value",event:"input"},props:{value:{default:null},accept:{type:String,default:""},capture:{type:Boolean,default:!1},placeholder:{type:String,default:function(){return wt(Xr,"placeholder")}},browseText:{type:String,default:function(){return wt(Xr,"browseText")}},dropPlaceholder:{type:String,default:function(){return wt(Xr,"dropPlaceholder")}},multiple:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},noTraverse:{type:Boolean,default:!1},noDrop:{type:Boolean,default:!1},fileNameFormatter:{type:Function,default:null}},data:function(){return{selectedFile:null,dragging:!1,hasFocus:!1}},computed:{selectLabel:function(){if(this.dragging&&this.dropPlaceholder)return this.dropPlaceholder;if(!this.selectedFile||0===this.selectedFile.length)return this.placeholder;var t=D(this.selectedFile).filter(Boolean);return this.hasNormalizedSlot("file-name")?[this.normalizeSlot("file-name",{files:t,names:t.map(function(t){return t.name})})]:Q(this.fileNameFormatter)?String(this.fileNameFormatter(t)):t.map(function(t){return t.name}).join(", ")}},watch:{selectedFile:function(t,e){t===e||N(t)&&N(e)&&t.length===e.length&&t.every(function(t,i){return t===e[i]})||(!t&&this.multiple?this.$emit("input",[]):this.$emit("input",t))},value:function(t){(!t||N(t)&&0===t.length)&&this.reset()}},methods:{focusHandler:function(t){this.plain||"focusout"===t.type?this.hasFocus=!1:this.hasFocus=!0},reset:function(){try{this.$refs.input.value=""}catch(t){}this.$refs.input.type="",this.$refs.input.type="file",this.selectedFile=this.multiple?[]:null},onFileChange:function(t){var e=this;this.$emit("change",t);var i=t.dataTransfer&&t.dataTransfer.items;if(!i||this.noTraverse)this.setFiles(t.target.files||t.dataTransfer.files);else{for(var n=[],o=0;o<i.length;o++){var r=i[o].webkitGetAsEntry();r&&n.push(this.traverseFileTree(r))}Promise.all(n).then(function(t){e.setFiles(F(t))})}},setFiles:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(t)if(this.multiple){for(var e=[],i=0;i<t.length;i++)e.push(t[i]);this.selectedFile=e}else this.selectedFile=t[0]||null;else this.selectedFile=null},onReset:function(){this.selectedFile=this.multiple?[]:null},onDragover:function(t){t.preventDefault(),t.stopPropagation(),!this.noDrop&&this.custom&&(this.dragging=!0,t.dataTransfer.dropEffect="copy")},onDragleave:function(t){t.preventDefault(),t.stopPropagation(),this.dragging=!1},onDrop:function(t){t.preventDefault(),t.stopPropagation(),this.noDrop||(this.dragging=!1,t.dataTransfer.files&&t.dataTransfer.files.length>0&&this.onFileChange(t))},traverseFileTree:function(t,e){var i=this;return new Promise(function(n){e=e||"",t.isFile?t.file(function(t){t.$path=e,n(t)}):t.isDirectory&&t.createReader().readEntries(function(o){for(var r=[],s=0;s<o.length;s++)r.push(i.traverseFileTree(o[s],e+t.name+"/"));Promise.all(r).then(function(t){n(F(t))})})})}},render:function(t){var e=t("input",{ref:"input",class:[{"form-control-file":this.plain,"custom-file-input":this.custom,focus:this.custom&&this.hasFocus},this.stateClass],attrs:{type:"file",id:this.safeId(),name:this.name,disabled:this.disabled,required:this.required,form:this.form||null,capture:this.capture||null,accept:this.accept||null,multiple:this.multiple,webkitdirectory:this.directory,"aria-required":this.required?"true":null},on:{change:this.onFileChange,focusin:this.focusHandler,focusout:this.focusHandler,reset:this.onReset}});if(this.plain)return e;var i=t("label",{staticClass:"custom-file-label",class:[this.dragging?"dragging":null],attrs:{for:this.safeId(),"data-browse":this.browseText||null}},this.selectLabel);return t("div",{staticClass:"custom-file b-form-file",class:this.stateClass,attrs:{id:this.safeId("_BV_file_outer_")},on:{dragover:this.onDragover,dragleave:this.onDragleave,drop:this.onDrop}},[e,i])}}),Zr=ft({components:{BFormFile:Yr,BFile:Yr}}),Jr=t.extend({name:"BFormSelect",mixins:[Qi,pe,_r,Or,fr,Kr,ir],model:{prop:"value",event:"input"},props:{value:{},multiple:{type:Boolean,default:!1},selectSize:{type:Number,default:0},ariaInvalid:{type:[Boolean,String],default:!1}},data:function(){return{localValue:this.value}},computed:{computedSelectSize:function(){return this.plain||0!==this.selectSize?this.selectSize:null},inputClass:function(){return[this.plain?"form-control":"custom-select",this.size&&this.plain?"form-control-".concat(this.size):null,this.size&&!this.plain?"custom-select-".concat(this.size):null,this.stateClass]},computedAriaInvalid:function(){return!0===this.ariaInvalid||"true"===this.ariaInvalid?"true":"is-invalid"===this.stateClass?"true":null}},watch:{value:function(t,e){this.localValue=t},localValue:function(t,e){this.$emit("input",this.localValue)}},methods:{focus:function(){this.$refs.input.focus()},blur:function(){this.$refs.input.blur()}},render:function(t){var e=this,i=this.formOptions.map(function(e,i){return t("option",{key:"option_".concat(i,"_opt"),attrs:{disabled:Boolean(e.disabled)},domProps:a({},Re(e.html,e.text),{value:e.value})})});return t("select",{ref:"input",class:this.inputClass,directives:[{name:"model",rawName:"v-model",value:this.localValue,expression:"localValue"}],attrs:{id:this.safeId(),name:this.name,form:this.form||null,multiple:this.multiple||null,size:this.computedSelectSize,disabled:this.disabled,required:this.required,"aria-required":this.required?"true":null,"aria-invalid":this.computedAriaInvalid},on:{change:function(t){var i=t.target,n=F(i.options).filter(function(t){return t.selected}).map(function(t){return"_value"in t?t._value:t.value});e.localValue=i.multiple?n:n[0],e.$nextTick(function(){e.$emit("change",e.localValue)})}}},[this.normalizeSlot("first"),i,this.normalizeSlot("default")])}}),Qr=ft({components:{BFormSelect:Jr,BSelect:Jr}}),ts=ft({components:{BImg:ji,BImgLazy:Ui}}),es={tag:{type:String,default:"div"}},is=t.extend({name:"BInputGroupText",functional:!0,props:es,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,le(n,{staticClass:"input-group-text"}),o)}}),ns={id:{type:String,default:null},tag:{type:String,default:"div"},isText:{type:Boolean,default:!1}},os=t.extend({name:"BInputGroupAddon",functional:!0,props:a({},ns,{append:{type:Boolean,default:!1}}),render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,le(n,{class:{"input-group-append":i.append,"input-group-prepend":!i.append},attrs:{id:i.id}}),i.isText?[t(is,o)]:o)}}),rs=t.extend({name:"BInputGroupPrepend",functional:!0,props:ns,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(os,le(n,{props:a({},i,{append:!1})}),o)}}),ss=t.extend({name:"BInputGroupAppend",functional:!0,props:ns,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(os,le(n,{props:a({},i,{append:!0})}),o)}}),as={id:{type:String},size:{type:String},prepend:{type:String},prependHtml:{type:String},append:{type:String},appendHtml:{type:String},tag:{type:String,default:"div"}},ls=ft({components:{BInputGroup:t.extend({name:"BInputGroup",functional:!0,props:as,render:function(t,e){var i=e.props,n=e.data,o=e.slots,s=e.scopedSlots,a=o(),l=s||{},u=[];return i.prepend||i.prependHtml||he("prepend",l,a)?u.push(t(rs,[i.prepend||i.prependHtml?t(is,{domProps:Re(i.prependHtml,i.prepend)}):t(),fe("prepend",{},l,a)||t()])):u.push(t()),he("default",l,a)?u.push.apply(u,p(fe("default",{},l,a))):u.push(t()),i.append||i.appendHtml||he("append",l,a)?u.push(t(ss,[i.append||i.appendHtml?t(is,{domProps:Re(i.appendHtml,i.append)}):t(),fe("append",{},l,a)||t()])):u.push(t()),t(i.tag,le(n,{staticClass:"input-group",class:r({},"input-group-".concat(i.size),Boolean(i.size)),attrs:{id:i.id||null,role:"group"}}),u)}}),BInputGroupAddon:os,BInputGroupPrepend:rs,BInputGroupAppend:ss,BInputGroupText:is}}),us={tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},cs=t.extend({name:"BContainer",functional:!0,props:us,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,le(n,{class:{container:!i.fluid,"container-fluid":i.fluid}}),o)}}),ds="BJumbotron",hs={fluid:{type:Boolean,default:!1},containerFluid:{type:Boolean,default:!1},header:{type:String,default:null},headerHtml:{type:String,default:null},headerTag:{type:String,default:"h1"},headerLevel:{type:[Number,String],default:"3"},lead:{type:String,default:null},leadHtml:{type:String,default:null},leadTag:{type:String,default:"p"},tag:{type:String,default:"div"},bgVariant:{type:String,default:function(){return wt(ds,"bgVariant")}},borderVariant:{type:String,default:function(){return wt(ds,"borderVariant")}},textVariant:{type:String,default:function(){return wt(ds,"textVariant")}}},fs=ft({components:{BJumbotron:t.extend({name:ds,functional:!0,props:hs,render:function(t,e){var i,n=e.props,o=e.data,s=e.slots,a=e.scopedSlots,l=[],u=s(),c=a||{};return(n.header||he("header",c,u)||n.headerHtml)&&l.push(t(n.headerTag,{class:r({},"display-".concat(n.headerLevel),Boolean(n.headerLevel))},fe("header",{},c,u)||n.headerHtml||Me(n.header))),(n.lead||he("lead",c,u)||n.leadHtml)&&l.push(t(n.leadTag,{staticClass:"lead"},fe("lead",{},c,u)||n.leadHtml||Me(n.lead))),he("default",c,u)&&l.push(fe("default",{},c,u)),n.fluid&&(l=[t(cs,{props:{fluid:n.containerFluid}},l)]),t(n.tag,le(o,{staticClass:"jumbotron",class:(i={"jumbotron-fluid":n.fluid},r(i,"text-".concat(n.textVariant),Boolean(n.textVariant)),r(i,"bg-".concat(n.bgVariant),Boolean(n.bgVariant)),r(i,"border-".concat(n.borderVariant),Boolean(n.borderVariant)),r(i,"border",Boolean(n.borderVariant)),i)}),l)}})}}),ps=["start","end","center"],ms={tag:{type:String,default:"div"},noGutters:{type:Boolean,default:!1},alignV:{type:String,default:null,validator:function(t){return V(ps.concat(["baseline","stretch"]),t)}},alignH:{type:String,default:null,validator:function(t){return V(ps.concat(["between","around"]),t)}},alignContent:{type:String,default:null,validator:function(t){return V(ps.concat(["between","around","stretch"]),t)}}},gs=ft({components:{BContainer:cs,BRow:t.extend({name:"BRow",functional:!0,props:ms,render:function(t,e){var i,n=e.props,o=e.data,s=e.children;return t(n.tag,le(o,{staticClass:"row",class:(i={"no-gutters":n.noGutters},r(i,"align-items-".concat(n.alignV),n.alignV),r(i,"justify-content-".concat(n.alignH),n.alignH),r(i,"align-content-".concat(n.alignContent),n.alignContent),i)}),s)}}),BCol:yr,BFormRow:dr}}),vs=ft({components:{BLink:Ve}}),bs={tag:{type:String,default:"div"},flush:{type:Boolean,default:!1},horizontal:{type:[Boolean,String],default:!1}},ys=t.extend({name:"BListGroup",functional:!0,props:bs,render:function(t,e){var i=e.props,n=e.data,o=e.children,s=""===i.horizontal||i.horizontal;s=!i.flush&&s;var a={staticClass:"list-group",class:r({"list-group-flush":i.flush,"list-group-horizontal":!0===s},"list-group-horizontal-".concat(s),et(s))};return t(i.tag,le(n,a),o)}}),Ss=["a","router-link","button","b-link"],Bs=Ne();delete Bs.href.default,delete Bs.to.default;var ws=a({tag:{type:String,default:"div"},action:{type:Boolean,default:null},button:{type:Boolean,default:null},variant:{type:String,default:function(){return wt("BListGroupItem","variant")}}},Bs),Ts=ft({components:{BListGroup:ys,BListGroupItem:t.extend({name:"BListGroupItem",functional:!0,props:ws,render:function(t,e){var i,n=e.props,o=e.data,s=e.children,a=n.button?"button":n.href||n.to?Ve:n.tag,l=Boolean(n.href||n.to||n.action||n.button||V(Ss,n.tag)),u={},c={};return"button"===a?(o.attrs&&o.attrs.type||(u.type="button"),n.disabled&&(u.disabled=!0)):c=Te(Bs,n),t(a,le(o,{attrs:u,props:c,staticClass:"list-group-item",class:(i={},r(i,"list-group-item-".concat(n.variant),Boolean(n.variant)),r(i,"list-group-item-action",l),r(i,"active",n.active),r(i,"disabled",n.disabled),i)}),s)}})}}),ks={tag:{type:String,default:"div"}},$s=t.extend({name:"BMediaBody",functional:!0,props:ks,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,le(n,{staticClass:"media-body"}),o)}}),Cs={tag:{type:String,default:"div"},verticalAlign:{type:String,default:"top"}},xs=t.extend({name:"BMediaAside",functional:!0,props:Cs,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,le(n,{staticClass:"d-flex",class:r({},"align-self-".concat(i.verticalAlign),i.verticalAlign)}),o)}}),_s={tag:{type:String,default:"div"},rightAlign:{type:Boolean,default:!1},verticalAlign:{type:String,default:"top"},noBody:{type:Boolean,default:!1}},Ps=ft({components:{BMedia:t.extend({name:"BMedia",functional:!0,props:_s,render:function(t,e){var i=e.props,n=e.data,o=e.slots,r=e.scopedSlots,s=e.children,a=i.noBody?s:[];if(!i.noBody){var l=o(),u=r||{},c=fe("aside",{},u,l),d=fe("default",{},u,l);c&&!i.rightAlign&&a.push(t(xs,{staticClass:"mr-3",props:{verticalAlign:i.verticalAlign}},c)),a.push(t($s,{},d)),c&&i.rightAlign&&a.push(t(xs,{staticClass:"ml-3",props:{verticalAlign:i.verticalAlign}},c))}return t(i.tag,le(n,{staticClass:"media"}),a)}}),BMediaAside:xs,BMediaBody:$s}}),Os=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Is=".sticky-top",Es=".navbar-toggler",Fs=new(t.extend({data:function(){return{modals:[],baseZIndex:null,scrollbarWidth:null,isBodyOverflowing:!1}},computed:{modalCount:function(){return this.modals.length},modalsAreOpen:function(){return this.modalCount>0}},watch:{modalCount:function(t,e){w&&(this.getScrollbarWidth(),t>0&&0===e?(this.checkScrollbar(),this.setScrollbar(),Ut(document.body,"modal-open")):0===t&&e>0&&(this.resetScrollbar(),qt(document.body,"modal-open")),Xt(document.body,"data-modal-open-count",String(t)))},modals:function(t,e){var i=this;this.checkScrollbar(),It(function(){i.updateModals(t||[])})}},methods:{registerModal:function(t){var e=this;t&&-1===this.modals.indexOf(t)&&(this.modals.push(t),t.$once("hook:beforeDestroy",function(){e.unregisterModal(t)}))},unregisterModal:function(t){var e=this.modals.indexOf(t);e>-1&&(this.modals.splice(e,1),t._isBeingDestroyed||t._isDestroyed||this.resetModal(t))},getBaseZIndex:function(){if(Z(this.baseZIndex)&&w){var t=document.createElement("div");t.className="modal-backdrop d-none",t.style.display="none",document.body.appendChild(t),this.baseZIndex=parseInt(te(t).zIndex||1040,10),document.body.removeChild(t)}return this.baseZIndex||1040},getScrollbarWidth:function(){if(Z(this.scrollbarWidth)&&w){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t),this.scrollbarWidth=Qt(t).width-t.clientWidth,document.body.removeChild(t)}return this.scrollbarWidth||0},updateModals:function(t){var e=this,i=this.getBaseZIndex(),n=this.getScrollbarWidth();t.forEach(function(t,o){t.zIndex=i+o,t.scrollbarWidth=n,t.isTop=o===e.modals.length-1,t.isBodyOverflowing=e.isBodyOverflowing})},resetModal:function(t){t&&(t.zIndex=this.getBaseZIndex(),t.isTop=!0,t.isBodyOverflowing=!1)},checkScrollbar:function(){var t=Qt(document.body),e=t.left,i=t.right;this.isBodyOverflowing=e+i<window.innerWidth},setScrollbar:function(){var t=document.body;if(t._paddingChangedForModal=t._paddingChangedForModal||[],t._marginChangedForModal=t._marginChangedForModal||[],this.isBodyOverflowing){var e=this.scrollbarWidth;Mt(Os).forEach(function(i){var n=i.style.paddingRight,o=te(i).paddingRight||0;Xt(i,"data-padding-right",n),i.style.paddingRight="".concat(parseFloat(o)+e,"px"),t._paddingChangedForModal.push(i)}),Mt(Is).forEach(function(i){var n=i.style.marginRight,o=te(i).marginRight||0;Xt(i,"data-margin-right",n),i.style.marginRight="".concat(parseFloat(o)-e,"px"),t._marginChangedForModal.push(i)}),Mt(Es).forEach(function(i){var n=i.style.marginRight,o=te(i).marginRight||0;Xt(i,"data-margin-right",n),i.style.marginRight="".concat(parseFloat(o)+e,"px"),t._marginChangedForModal.push(i)});var i=t.style.paddingRight,n=te(t).paddingRight;Xt(t,"data-padding-right",i),t.style.paddingRight="".concat(parseFloat(n)+e,"px")}},resetScrollbar:function(){var t=document.body;t._paddingChangedForModal&&t._paddingChangedForModal.forEach(function(t){Jt(t,"data-padding-right")&&(t.style.paddingRight=Zt(t,"data-padding-right")||"",Yt(t,"data-padding-right"))}),t._marginChangedForModal&&t._marginChangedForModal.forEach(function(t){Jt(t,"data-margin-right")&&(t.style.marginRight=Zt(t,"data-margin-right")||"",Yt(t,"data-margin-right"))}),t._paddingChangedForModal=null,t._marginChangedForModal=null,Jt(t,"data-padding-right")&&(t.style.paddingRight=Zt(t,"data-padding-right")||"",Yt(t,"data-padding-right"))}}})),Ns=function(t){function e(t){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return i(this,e),n=h(this,u(e).call(this,t,o)),M(d(n),{trigger:K()}),n}return l(e,$o),o(e,[{key:"cancel",value:function(){O("b-modal: evt.cancel() is deprecated. Please use evt.preventDefault()."),this.preventDefault()}},{key:"modalId",get:function(){return O("b-modal: evt.modalId is deprecated. Please use evt.componentId."),this.componentId}}],[{key:"Defaults",get:function(){return a({},f(u(e),"Defaults",this),{trigger:null})}}]),e}(),Vs=t.extend({abstract:!0,name:"BTransporterTargetSingle",props:{nodes:{type:[Array,Function]}},data:function(t){return{updatedNodes:t.nodes}},destroyed:function(){var t=this.$el;t&&t.parentNode&&t.parentNode.removeChild(t)},render:function(t){var e=Q(this.updatedNodes)?this.updatedNodes({}):this.updatedNodes;return(e=D(e).filter(Boolean))&&e.length>0&&!e[0].text?e[0]:t()}}),Ds=t.extend({name:"BTransporterSingle",mixins:[pe],props:{disabled:{type:Boolean,default:!1},container:{type:[String,Cn],default:"body"},tag:{type:String,default:"div"}},watch:{disabled:{immediate:!0,handler:function(t){t?this.unmountTarget():this.$nextTick(this.mountTarget)}}},created:function(){this._bv_defaultFn=null,this._bv_target=null},beforeMount:function(){this.mountTarget()},updated:function(){var t=this;this.$nextTick(function(){t.updateTarget()})},beforeDestroy:function(){this.unmountTarget(),this._bv_defaultFn=null},methods:{getContainer:function(){if(w){var t=this.container;return et(t)?Rt(t):t}return null},mountTarget:function(){if(!this._bv_target){var t=this.getContainer();if(t){var e=document.createElement("div");t.appendChild(e),this._bv_target=new Vs({el:e,parent:this,propsData:{nodes:D(this.normalizeSlot("default"))}})}}},updateTarget:function(){if(w&&this._bv_target){var t=this.$scopedSlots.default;this.disabled||(t&&this._bv_defaultFn!==t?this._bv_target.updatedNodes=t:t||(this._bv_target.updatedNodes=this.$slots.default)),this._bv_defaultFn=t}},unmountTarget:function(){this._bv_target&&(this._bv_target.$destroy(),this._bv_target=null)}},render:function(t){if(this.disabled){var e=D(this.normalizeSlot("default")).filter(Boolean);if(e.length>0&&!e[0].text)return e[0]}return t()}}),As="BModal",Ls={subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:["style","class"]},Hs={passive:!0,capture:!1},Ms={size:{type:String,default:function(){return wt(As,"size")}},centered:{type:Boolean,default:!1},scrollable:{type:Boolean,default:!1},buttonSize:{type:String,default:""},noStacking:{type:Boolean,default:!1},noFade:{type:Boolean,default:!1},noCloseOnBackdrop:{type:Boolean,default:!1},noCloseOnEsc:{type:Boolean,default:!1},noEnforceFocus:{type:Boolean,default:!1},title:{type:String,default:""},titleHtml:{type:String},titleTag:{type:String,default:function(){return wt(As,"titleTag")}},titleClass:{type:[String,Array,Object],default:null},titleSrOnly:{type:Boolean,default:!1},ariaLabel:{type:String,default:null},headerBgVariant:{type:String,default:function(){return wt(As,"headerBgVariant")}},headerBorderVariant:{type:String,default:function(){return wt(As,"headerBorderVariant")}},headerTextVariant:{type:String,default:function(){return wt(As,"headerTextVariant")}},headerCloseVariant:{type:String,default:function(){return wt(As,"headerCloseVariant")}},headerClass:{type:[String,Array,Object],default:null},bodyBgVariant:{type:String,default:function(){return wt(As,"bodyBgVariant")}},bodyTextVariant:{type:String,default:function(){return wt(As,"bodyTextVariant")}},modalClass:{type:[String,Array,Object],default:null},dialogClass:{type:[String,Array,Object],default:null},contentClass:{type:[String,Array,Object],default:null},bodyClass:{type:[String,Array,Object],default:null},footerBgVariant:{type:String,default:function(){return wt(As,"footerBgVariant")}},footerBorderVariant:{type:String,default:function(){return wt(As,"footerBorderVariant")}},footerTextVariant:{type:String,default:function(){return wt(As,"footerTextVariant")}},footerClass:{type:[String,Array,Object],default:null},hideHeader:{type:Boolean,default:!1},hideFooter:{type:Boolean,default:!1},hideHeaderClose:{type:Boolean,default:!1},hideBackdrop:{type:Boolean,default:!1},okOnly:{type:Boolean,default:!1},okDisabled:{type:Boolean,default:!1},cancelDisabled:{type:Boolean,default:!1},visible:{type:Boolean,default:!1},returnFocus:{default:null},headerCloseLabel:{type:String,default:function(){return wt(As,"headerCloseLabel")}},cancelTitle:{type:String,default:function(){return wt(As,"cancelTitle")}},cancelTitleHtml:{type:String},okTitle:{type:String,default:function(){return wt(As,"okTitle")}},okTitleHtml:{type:String},cancelVariant:{type:String,default:function(){return wt(As,"cancelVariant")}},okVariant:{type:String,default:function(){return wt(As,"okVariant")}},lazy:{type:Boolean,default:!1},busy:{type:Boolean,default:!1},static:{type:Boolean,default:!1}},Rs=t.extend({name:As,mixins:[Qi,un,pe],model:{prop:"visible",event:"change"},props:Ms,data:function(){return{isHidden:!0,isVisible:!1,isTransitioning:!1,isShow:!1,isBlock:!1,isOpening:!1,isClosing:!1,ignoreBackdropClick:!1,isModalOverflowing:!1,return_focus:this.returnFocus||null,scrollbarWidth:0,zIndex:Fs.getBaseZIndex(),isTop:!0,isBodyOverflowing:!1}},computed:{modalClasses:function(){return[{fade:!this.noFade,show:this.isShow},this.modalClass]},modalStyles:function(){var t="".concat(this.scrollbarWidth,"px");return{paddingLeft:!this.isBodyOverflowing&&this.isModalOverflowing?t:"",paddingRight:this.isBodyOverflowing&&!this.isModalOverflowing?t:"",display:this.isBlock?"block":"none"}},dialogClasses:function(){var t;return[(t={},r(t,"modal-".concat(this.size),Boolean(this.size)),r(t,"modal-dialog-centered",this.centered),r(t,"modal-dialog-scrollable",this.scrollable),t),this.dialogClass]},headerClasses:function(){var t;return[(t={},r(t,"bg-".concat(this.headerBgVariant),Boolean(this.headerBgVariant)),r(t,"text-".concat(this.headerTextVariant),Boolean(this.headerTextVariant)),r(t,"border-".concat(this.headerBorderVariant),Boolean(this.headerBorderVariant)),t),this.headerClass]},titleClases:function(){return[{"sr-only":this.titleSrOnly},this.titleClass]},bodyClasses:function(){var t;return[(t={},r(t,"bg-".concat(this.bodyBgVariant),Boolean(this.bodyBgVariant)),r(t,"text-".concat(this.bodyTextVariant),Boolean(this.bodyTextVariant)),t),this.bodyClass]},footerClasses:function(){var t;return[(t={},r(t,"bg-".concat(this.footerBgVariant),Boolean(this.footerBgVariant)),r(t,"text-".concat(this.footerTextVariant),Boolean(this.footerTextVariant)),r(t,"border-".concat(this.footerBorderVariant),Boolean(this.footerBorderVariant)),t),this.footerClass]},modalOuterStyle:function(){return{position:"absolute",zIndex:this.zIndex}},slotScope:function(){return{ok:this.onOk,cancel:this.onCancel,close:this.onClose,hide:this.hide,visible:this.isVisible}}},watch:{visible:function(t,e){t!==e&&this[t?"show":"hide"]()}},created:function(){this._observer=null},mounted:function(){this.zIndex=Fs.getBaseZIndex(),this.listenOnRoot("bv::show::modal",this.showHandler),this.listenOnRoot("bv::hide::modal",this.hideHandler),this.listenOnRoot("bv::toggle::modal",this.toggleHandler),this.listenOnRoot("bv::modal::show",this.modalListener),!0===this.visible&&this.$nextTick(this.show)},beforeDestroy:function(){this._observer&&(this._observer.disconnect(),this._observer=null),this.setEnforceFocus(!1),this.setResizeEvent(!1),this.isVisible&&(this.isVisible=!1,this.isShow=!1,this.isTransitioning=!1)},methods:{updateModel:function(t){t!==this.visible&&this.$emit("change",t)},buildEvent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Ns(t,a({cancelable:!1,target:this.$refs.modal||this.$el||null,relatedTarget:null,trigger:null},e,{vueTarget:this,componentId:this.safeId()}))},show:function(){if(!this.isVisible&&!this.isOpening)if(this.isClosing)this.$once("hidden",this.show);else{this.isOpening=!0,this.return_focus=this.return_focus||this.getActiveElement();var t=this.buildEvent("show",{cancelable:!0});if(this.emitEvent(t),t.defaultPrevented||this.isVisible)return this.isOpening=!1,void this.updateModel(!1);this.doShow()}},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(this.isVisible&&!this.isClosing){this.isClosing=!0;var e=this.buildEvent("hide",{cancelable:"FORCE"!==t,trigger:t||null});if("ok"===t?this.$emit("ok",e):"cancel"===t?this.$emit("cancel",e):"headerclose"===t&&this.$emit("close",e),this.emitEvent(e),e.defaultPrevented||!this.isVisible)return this.isClosing=!1,void this.updateModel(!0);this._observer&&(this._observer.disconnect(),this._observer=null),this.isVisible=!1,this.updateModel(!1)}},toggle:function(t){t&&(this.return_focus=t),this.isVisible?this.hide("toggle"):this.show()},getActiveElement:function(){if(w){var t=document.activeElement;if(t&&t!==document.body&&t.focus)return t}return null},doShow:function(){var t=this;Fs.modalsAreOpen&&this.noStacking?this.listenOnRootOnce("bv::modal::hidden",this.doShow):(Fs.registerModal(this),this.isHidden=!1,this.$nextTick(function(){t.isVisible=!0,t.isOpening=!1,t.updateModel(!0),t.$nextTick(function(){t._observer=Ji(t.$refs.content,t.checkModalOverflow.bind(t),Ls)})}))},onBeforeEnter:function(){this.isTransitioning=!0,this.setResizeEvent(!0)},onEnter:function(){this.isBlock=!0},onAfterEnter:function(){var t=this;this.checkModalOverflow(),this.isShow=!0,this.isTransitioning=!1,this.$nextTick(function(){t.emitEvent(t.buildEvent("shown")),t.focusFirst(),t.setEnforceFocus(!0)})},onBeforeLeave:function(){this.isTransitioning=!0,this.setResizeEvent(!1)},onLeave:function(){this.isShow=!1},onAfterLeave:function(){var t=this;this.isBlock=!1,this.isTransitioning=!1,this.setEnforceFocus(!1),this.isModalOverflowing=!1,this.isHidden=!0,this.$nextTick(function(){t.returnFocusTo(),t.isClosing=!1,t.return_focus=null,Fs.unregisterModal(t),t.emitEvent(t.buildEvent("hidden"))})},emitEvent:function(t){var e=t.type;this.emitOnRoot("bv::modal::".concat(e),t,t.componentId),this.$emit(e,t)},onDialogMousedown:function(){var t=this,e=this.$refs.modal;Nt(e,"mouseup",function i(n){Vt(e,"mouseup",i,Hs),n.target===e&&(t.ignoreBackdropClick=!0)},Hs)},onClickOut:function(t){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:this.isVisible&&!this.noCloseOnBackdrop&&Gt(document.body,t.target)&&(Gt(this.$refs.content,t.target)||this.hide("backdrop"))},onOk:function(){this.hide("ok")},onCancel:function(){this.hide("cancel")},onClose:function(){this.hide("headerclose")},onEsc:function(t){t.keyCode===di&&this.isVisible&&!this.noCloseOnEsc&&this.hide("esc")},focusHandler:function(t){var e=this.$refs.modal;!this.noEnforceFocus&&this.isTop&&this.isVisible&&e&&document!==t.target&&!Gt(e,t.target)&&e.focus({preventScroll:!0})},setEnforceFocus:function(t){(t?Nt:Vt)(document,"focusin",this.focusHandler,Hs)},setResizeEvent:function(t){var e=t?Nt:Vt;e(window,"resize",this.checkModalOverflow,Hs),e(window,"orientationchange",this.checkModalOverflow,Hs)},showHandler:function(t,e){t===this.safeId()&&(this.return_focus=e||this.getActiveElement(),this.show())},hideHandler:function(t){t===this.safeId()&&this.hide("event")},toggleHandler:function(t,e){t===this.safeId()&&this.toggle(e)},modalListener:function(t){this.noStacking&&t.vueTarget!==this&&this.hide()},focusFirst:function(){if(w){var t=this.$refs.modal,e=this.getActiveElement();!t||e&&Gt(t,e)||this.$nextTick(function(){t.scrollTop=0,t.focus()})}},returnFocusTo:function(){var t=this.returnFocus||this.return_focus||null;(t=et(t)?Rt(t):t)&&(t=t.$el||t,At(t)&&t.focus&&t.focus())},checkModalOverflow:function(){if(this.isVisible){var t=this.$refs.modal;this.isModalOverflowing=t.scrollHeight>document.documentElement.clientHeight}},makeModal:function(t){var e=t();if(!this.hideHeader){var i=this.normalizeSlot("modal-header",this.slotScope);if(!i){var n=t();this.hideHeaderClose||(n=t(ve,{props:{disabled:this.isTransitioning,ariaLabel:this.headerCloseLabel,textVariant:this.headerCloseVariant||this.headerTextVariant},on:{click:this.onClose}},[this.normalizeSlot("modal-header-close")]));var o=!this.hasNormalizedSlot("modal-title")&&this.titleHtml?{innerHTML:this.titleHtml}:{};i=[t(this.titleTag,{staticClass:"modal-title",class:this.titleClases,attrs:{id:this.safeId("__BV_modal_title_")},domProps:o},[this.normalizeSlot("modal-title",this.slotScope)||Me(this.title)]),n]}e=t("header",{ref:"header",staticClass:"modal-header",class:this.headerClasses,attrs:{id:this.safeId("__BV_modal_header_")}},[i])}var r=t("div",{ref:"body",staticClass:"modal-body",class:this.bodyClasses,attrs:{id:this.safeId("__BV_modal_body_")}},this.normalizeSlot("default",this.slotScope)),s=t();if(!this.hideFooter){var a=this.normalizeSlot("modal-footer",this.slotScope);if(!a){var l=t();if(!this.okOnly){var u=this.cancelTitleHtml?{innerHTML:this.cancelTitleHtml}:null;l=t(oi,{props:{variant:this.cancelVariant,size:this.buttonSize,disabled:this.cancelDisabled||this.busy||this.isTransitioning},on:{click:this.onCancel}},[this.normalizeSlot("modal-cancel")||(u?t("span",{domProps:u}):Me(this.cancelTitle))])}var c=this.okTitleHtml?{innerHTML:this.okTitleHtml}:null;a=[l,t(oi,{props:{variant:this.okVariant,size:this.buttonSize,disabled:this.okDisabled||this.busy||this.isTransitioning},on:{click:this.onOk}},[this.normalizeSlot("modal-ok")||(c?t("span",{domProps:c}):Me(this.okTitle))])]}s=t("footer",{ref:"footer",staticClass:"modal-footer",class:this.footerClasses,attrs:{id:this.safeId("__BV_modal_footer_")}},[a])}var d=t("div",{ref:"content",staticClass:"modal-content",class:this.contentClass,attrs:{role:"document",id:this.safeId("__BV_modal_content_")}},[e,r,s]),h=t("div",{staticClass:"modal-dialog",class:this.dialogClasses,on:{mousedown:this.onDialogMousedown}},[d]),f=t("div",{ref:"modal",staticClass:"modal",class:this.modalClasses,style:this.modalStyles,directives:[{name:"show",rawName:"v-show",value:this.isVisible,expression:"isVisible"}],attrs:{id:this.safeId(),role:"dialog",tabindex:"-1","aria-hidden":this.isVisible?null:"true","aria-modal":this.isVisible?"true":null,"aria-label":this.ariaLabel,"aria-labelledby":this.hideHeader||this.ariaLabel||!(this.hasNormalizedSlot("modal-title")||this.titleHtml||this.title)?null:this.safeId("__BV_modal_title_"),"aria-describedby":this.safeId("__BV_modal_body_")},on:{keydown:this.onEsc,click:this.onClickOut}},[h]);f=t("transition",{props:{enterClass:"",enterToClass:"",enterActiveClass:"",leaveClass:"",leaveActiveClass:"",leaveToClass:""},on:{beforeEnter:this.onBeforeEnter,enter:this.onEnter,afterEnter:this.onAfterEnter,beforeLeave:this.onBeforeLeave,leave:this.onLeave,afterLeave:this.onAfterLeave}},[f]);var p=t();!this.hideBackdrop&&this.isVisible&&(p=t("div",{staticClass:"modal-backdrop",attrs:{id:this.safeId("__BV_modal_backdrop_")}},[this.normalizeSlot("modal-backdrop")])),p=t(de,{props:{noFade:this.noFade}},[p]);var m=t();return this.isVisible&&this.isTop&&!this.noEnforceFocus&&(m=t("div",{attrs:{tabindex:"0"}})),t("div",{key:"modal-outer-".concat(this._uid),style:this.modalOuterStyle,attrs:{id:this.safeId("__BV_modal_outer_")}},[f,m,p])}},render:function(t){return this.static?this.lazy&&this.isHidden?t():this.makeModal(t):this.isHidden?t():t(Ds,{},[this.makeModal(t)])}}),zs={click:!0},js=function(t,e,i){"BUTTON"!==t.tagName&&Xt(t,"role","button")},Gs={bind:function(t,e,i){vn(i,e,zs,function(t){var e=t.targets,i=t.vnode;e.forEach(function(t){i.context.$root.$emit("bv::show::modal",t,i.elm)})}),js(t)},updated:js,componentUpdated:js,unbind:function(t,e,i){bn(i,e,zs),"BUTTON"!==t.tagName&&Yt(t,"role")}},Ws=["id"].concat(p(H(q(Ms,["busy","lazy","noStacking","static","visible"])))),Us=function(t){},qs={msgBoxContent:"default",title:"modal-title",okTitle:"modal-ok",cancelTitle:"modal-cancel"},Ks=function(t){return Ws.reduce(function(e,i){return Y(t[i])||(e[i]=t[i]),e},{})},Xs=ft({components:{BModal:Rs},directives:{VBModal:Gs},plugins:{BVModalPlugin:ft({plugins:{plugin:function(t){var e=t.extend({name:"BMsgBox",extends:Rs,destroyed:function(){this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)},mounted:function(){var t=this,e=function(){var e=t;t.$nextTick(function(){setTimeout(function(){return e.$destroy()},0)})};if(this.$parent.$once("hook:destroyed",e),this.$once("hidden",e),this.$router&&this.$route){var i=this.$watch("$router",e);this.$once("hook:beforeDestroy",i)}this.show()}}),n=function(t,i){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Us;if(!I("$bvModal")&&!E("$bvModal")){var o=new e({parent:i,propsData:a({},Ks(wt("BModal")||{}),{hideHeaderClose:!0,hideHeader:!(t.title||t.titleHtml)},q(t,H(qs)),{lazy:!1,busy:!1,visible:!1,noStacking:!1,noEnforceFocus:!1})});return H(qs).forEach(function(e){Y(t[e])||(o.$slots[qs[e]]=D(t[e]))}),new Promise(function(t,e){var i=!1;o.$once("hook:destroyed",function(){i||e(new Error("BootstrapVue MsgBox destroyed before resolve"))}),o.$on("hide",function(e){if(!e.defaultPrevented){var o=n(e);e.defaultPrevented||(i=!0,t(o))}});var r=document.createElement("div");document.body.appendChild(r),o.$mount(r)})}},r=function(){function t(e){i(this,t),A(this,{_vm:e,_root:e.$root}),M(this,{_vm:K(),_root:K()})}return o(t,[{key:"show",value:function(t){if(t&&this._root){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];(e=this._root).$emit.apply(e,["bv::show::modal",t].concat(n))}}},{key:"hide",value:function(t){if(t&&this._root){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];(e=this._root).$emit.apply(e,["bv::hide::modal",t].concat(n))}}},{key:"msgBox",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0;if(t&&!E("$bvModal")&&!I("$bvModal")&&Q(i))return n(a({},Ks(e),{msgBoxContent:t}),this._vm,i)}},{key:"msgBoxOk",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=a({},e,{okOnly:!0,okDisabled:!1,hideFooter:!1,msgBoxContent:t});return this.msgBox(t,i,function(t){return!0})}},{key:"msgBoxConfirm",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=a({},e,{okOnly:!1,okDisabled:!1,cancelDisabled:!1,hideFooter:!1});return this.msgBox(t,i,function(t){var e=t.trigger;return"ok"===e||"cancel"!==e&&null})}}]),t}();t.mixin({beforeCreate:function(){this._bv__modal=new r(this)}}),t.prototype.hasOwnProperty("$bvModal")||R(t.prototype,"$bvModal",{get:function(){return this&&this._bv__modal||O("'".concat("$bvModal","' must be accessed from a Vue instance 'this' context")),this._bv__modal}})}}})}}),Ys={tag:{type:String,default:"ul"},fill:{type:Boolean,default:!1},justified:{type:Boolean,default:!1},align:{type:String,default:null},tabs:{type:Boolean,default:!1},pills:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},small:{type:Boolean,default:!1},isNavBar:{type:Boolean,default:!1,deprecated:'Setting prop "is-nav-bar" is deprecated. Use the <b-navbar-nav> component instead.'}},Zs=t.extend({name:"BNav",functional:!0,props:Ys,render:function(t,e){var i,n,o=e.props,s=e.data,a=e.children;return t(o.tag,le(s,{class:(i={nav:!o.isNavBar,"navbar-nav":o.isNavBar,"nav-tabs":o.tabs&&!o.isNavBar,"nav-pills":o.pills&&!o.isNavBar,"flex-column":o.vertical&&!o.isNavBar,"nav-fill":!o.vertical&&o.fill,"nav-justified":!o.vertical&&o.justified},r(i,(n=o.align,"justify-content-".concat(n="left"===n?"start":"right"===n?"end":n)),!o.vertical&&o.align),r(i,"small",o.small),i)}),a)}}),Js=Ne(),Qs=t.extend({name:"BNavItem",functional:!0,props:a({},Js,{linkAttrs:{type:Object,default:function(){}},linkClasses:{type:[String,Object,Array],default:null}}),render:function(t,e){var i=e.props,n=e.data,o=e.listeners,r=e.children;return delete n.on,t("li",le(n,{staticClass:"nav-item"}),[t(Ve,{staticClass:"nav-link",class:i.linkClasses,attrs:i.linkAttrs,props:i,on:o},r)])}}),ta={tag:{type:String,default:"span"}},ea=t.extend({name:"BNavText",functional:!0,props:ta,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,le(n,{staticClass:"navbar-text"}),o)}}),ia=q(qo,["inline"]),na=t.extend({name:"BNavForm",functional:!0,props:ia,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(Ko,le(n,{props:a({},i,{inline:!0})}),o)}}),oa=a({},Te(["menuClass","toggleClass","noCaret","role"],Ao),{extraMenuClasses:{type:String,default:"",deprecated:'Setting prop "extra-menu-classes" is deprecated. Use "menu-class" prop instead.'},extraToggleClasses:{type:String,default:"",deprecated:'Setting prop "extra-toggle-classes" is deprecated. Use "toggle-class" prop instead.'}}),ra=t.extend({name:"BNavItemDropdown",mixins:[Qi,Vo,pe],props:oa,computed:{isNav:function(){return!0},dropdownClasses:function(){return[this.directionClass,{show:this.visible}]},menuClasses:function(){return[this.extraMenuClasses,this.menuClass,{"dropdown-menu-right":this.right,show:this.visible}]},toggleClasses:function(){return[this.extraToggleClasses,this.toggleClass,{"dropdown-toggle-no-caret":this.noCaret}]}},render:function(t){var e=t(Ve,{ref:"toggle",staticClass:"nav-link dropdown-toggle",class:this.toggleClasses,props:{href:"#",disabled:this.disabled},attrs:{id:this.safeId("_BV_button_"),"aria-haspopup":"true","aria-expanded":this.visible?"true":"false"},on:{click:this.toggle,keydown:this.toggle}},[this.$slots["button-content"]||this.$slots.text||t("span",{domProps:Re(this.html,this.text)})]),i=t("ul",{staticClass:"dropdown-menu",class:this.menuClasses,ref:"menu",attrs:{tabindex:"-1","aria-labelledby":this.safeId("_BV_button_")},on:{keydown:this.onKeydown}},!this.lazy||this.visible?this.normalizeSlot("default",{hide:this.hide}):[t()]);return t("li",{staticClass:"nav-item b-nav-dropdown dropdown",class:this.dropdownClasses,attrs:{id:this.safeId()}},[e,i])}}),sa=ft({components:{BNav:Zs,BNavItem:Qs,BNavText:ea,BNavForm:na,BNavItemDropdown:ra,BNavItemDd:ra,BNavDropdown:ra,BNavDd:ra},plugins:{DropdownPlugin:Qo}}),aa={tag:{type:String,default:"nav"},type:{type:String,default:"light"},variant:{type:String,default:function(){return wt("BNavbar","variant")}},toggleable:{type:[Boolean,String],default:!1},fixed:{type:String},sticky:{type:Boolean,default:!1},print:{type:Boolean,default:!1}},la=t.extend({name:"BNavbar",functional:!0,props:aa,render:function(t,e){var i,n=e.props,o=e.data,s=e.children,a="",l=Tt()[0];return n.toggleable&&et(n.toggleable)&&n.toggleable!==l?a="navbar-expand-".concat(n.toggleable):!1===n.toggleable&&(a="navbar-expand"),t(n.tag,le(o,{staticClass:"navbar",class:(i={"d-print":n.print,"sticky-top":n.sticky},r(i,"navbar-".concat(n.type),Boolean(n.type)),r(i,"bg-".concat(n.variant),Boolean(n.variant)),r(i,"fixed-".concat(n.fixed),Boolean(n.fixed)),r(i,"".concat(a),Boolean(a)),i),attrs:{role:"nav"===n.tag?null:"navigation"}}),s)}}),ua=Te(["tag","fill","justified","align","small"],Ys),ca=t.extend({name:"BNavbarNav",functional:!0,props:ua,render:function(t,e){var i,n,o=e.props,s=e.data,a=e.children;return t(o.tag,le(s,{staticClass:"navbar-nav",class:(i={"nav-fill":o.fill,"nav-justified":o.justified},r(i,(n=o.align,"justify-content-".concat(n="left"===n?"start":"right"===n?"end":n)),o.align),r(i,"small",o.small),i)}),a)}}),da=Ne();da.href.default=void 0,da.to.default=void 0;var ha=a({},da,{tag:{type:String,default:"div"}}),fa=t.extend({name:"BNavbarBrand",functional:!0,props:ha,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=Boolean(i.to||i.href);return t(r?Ve:i.tag,le(n,{staticClass:"navbar-brand",props:r?Te(da,i):{}}),o)}}),pa=t.extend({name:"BNavbarToggle",mixins:[un,pe],props:{label:{type:String,default:function(){return wt("BNavbarToggle","label")}},target:{type:String,required:!0}},data:function(){return{toggleState:!1}},created:function(){this.listenOnRoot("bv::collapse::state",this.handleStateEvt),this.listenOnRoot("bv::collapse::sync::state",this.handleStateEvt)},methods:{onClick:function(t){this.$emit("click",t),t.defaultPrevented||this.$root.$emit("bv::toggle::collapse",this.target)},handleStateEvt:function(t,e){t===this.target&&(this.toggleState=e)}},render:function(t){return t("button",{class:["navbar-toggler"],attrs:{type:"button","aria-label":this.label,"aria-controls":this.target,"aria-expanded":this.toggleState?"true":"false"},on:{click:this.onClick}},[this.normalizeSlot("default")||t("span",{class:["navbar-toggler-icon"]})])}}),ma=ft({components:{BNavbar:la,BNavbarNav:ca,BNavbarBrand:fa,BNavbarToggle:pa,BNavToggle:pa},plugins:{NavPlugin:sa,CollapsePlugin:$n,DropdownPlugin:Qo}}),ga=function(t,e){return(i=e,Array.apply(null,{length:i})).map(function(e,i){return{number:t+i,classes:null}});var i},va=function(t){var e=parseInt(t,10)||1;return e<1?5:e},ba=function(t,e){var i=parseInt(t,10)||1;return i>e?e:i<1?1:i},ya=function(t){if(t.keyCode===ui)return t.preventDefault(),t.stopImmediatePropagation(),t.stopPropagation(),t.currentTarget.click(),!1},Sa={mixins:[pe],model:{prop:"value",event:"input"},props:{disabled:{type:Boolean,default:!1},value:{type:[Number,String],default:null,validator:function(t){var e=parseInt(t,10);return!(!Z(t)&&(isNaN(e)||e<1))||(O("pagination: v-model value must be a number greater than 0"),!1)}},limit:{type:[Number,String],default:5,validator:function(t){var e=parseInt(t,10);return!(isNaN(e)||e<1)||(O('pagination: prop "limit" must be a number greater than 0'),!1)}},size:{type:String,default:"md"},align:{type:String,default:"left"},hideGotoEndButtons:{type:Boolean,default:!1},ariaLabel:{type:String,default:"Pagination"},labelFirstPage:{type:String,default:"Go to first page"},firstText:{type:String,default:"«"},labelPrevPage:{type:String,default:"Go to previous page"},prevText:{type:String,default:"‹"},labelNextPage:{type:String,default:"Go to next page"},nextText:{type:String,default:"›"},labelLastPage:{type:String,default:"Go to last page"},lastText:{type:String,default:"»"},labelPage:{type:[String,Function],default:"Go to page"},hideEllipsis:{type:Boolean,default:!1},ellipsisText:{type:String,default:"…"}},data:function(){var t=parseInt(this.value,10);return{currentPage:t>0?t:-1,localNumPages:1,localLimit:5}},computed:{btnSize:function(){return this.size?"pagination-".concat(this.size):""},alignment:function(){var t=this.align;return"center"===t?"justify-content-center":"end"===t||"right"===t?"justify-content-end":"fill"===t?"text-center":""},computedCurrentPage:function(){return ba(this.currentPage,this.localNumPages)},paginationParams:function(){var t=this.limit,e=this.localNumPages,i=this.computedCurrentPage,n=this.hideEllipsis,o=!1,r=!1,s=t,a=1;return e<=t?s=e:i<t-1&&t>3?n||(r=!0,s=t-1):e-i+2<t&&t>3?(n||(s=t-1,o=!0),a=e-s+1):(t>3&&!n&&(s=t-2,o=r=!0),a=i-Math.floor(s/2)),a<1?a=1:a>e-s&&(a=e-s+1),{showFirstDots:o,showLastDots:r,numLinks:s,startNum:a}},pageList:function(){var t=this.paginationParams,e=t.numLinks,i=t.startNum,n=this.computedCurrentPage,o=ga(i,e);if(o.length>3){var r=n-i,s="bv-d-xs-down-none";if(0===r)for(var a=3;a<o.length;a++)o[a].classes=s;else if(r===o.length-1)for(var l=0;l<o.length-3;l++)o[l].classes=s;else{for(var u=0;u<r-1;u++)o[u].classes=s;for(var c=o.length-1;c>r+1;c--)o[c].classes=s}}return o}},watch:{value:function(t,e){t!==e&&(this.currentPage=ba(t,this.localNumPages))},currentPage:function(t,e){t!==e&&this.$emit("input",t>0?t:null)},limit:function(t,e){t!==e&&(this.localLimit=va(t))}},created:function(){var t=this;this.localLimit=va(this.limit),this.$nextTick(function(){t.currentPage=t.currentPage>t.localNumPages?t.localNumPages:t.currentPage})},methods:{getButtons:function(){return Mt("a.page-link",this.$el).filter(function(t){return At(t)})},setBtnFocus:function(t){t.focus()},focusCurrent:function(){var t=this;this.$nextTick(function(){var e=t.getButtons().find(function(e){return parseInt(Zt(e,"aria-posinset"),10)===t.computedCurrentPage});e&&e.focus?t.setBtnFocus(e):t.focusFirst()})},focusFirst:function(){var t=this;this.$nextTick(function(){var e=t.getButtons().find(function(t){return!Lt(t)});e&&e.focus&&e!==document.activeElement&&t.setBtnFocus(e)})},focusLast:function(){var t=this;this.$nextTick(function(){var e=t.getButtons().reverse().find(function(t){return!Lt(t)});e&&e.focus&&e!==document.activeElement&&t.setBtnFocus(e)})},focusPrev:function(){var t=this;this.$nextTick(function(){var e=t.getButtons(),i=e.indexOf(document.activeElement);i>0&&!Lt(e[i-1])&&e[i-1].focus&&t.setBtnFocus(e[i-1])})},focusNext:function(){var t=this;this.$nextTick(function(){var e=t.getButtons(),i=e.indexOf(document.activeElement);i<e.length-1&&!Lt(e[i+1])&&e[i+1].focus&&t.setBtnFocus(e[i+1])})}},render:function(t){var e=this,i=[],n=this.localNumPages,o=this.disabled,r=this.paginationParams,s=r.showFirstDots,a=r.showLastDots,l=this.computedCurrentPage,u="fill"===this.align,c=function(t){return t===l},d=this.currentPage<1,h=function(i,r,s,a,l,h){var f=o||c(l)||d||i<1||i>n,p=i<1?1:i>n?n:i,m={disabled:f,page:p,index:p-1},g=e.normalizeSlot(s,m)||ke(a)||t(),v=t(f?"span":Ve,{staticClass:"page-link",props:f?{}:e.linkProps(i),attrs:{role:"menuitem",tabindex:f?null:"-1","aria-label":r,"aria-controls":e.ariaControls||null,"aria-disabled":f?"true":null},on:f?{}:{click:function(t){e.onClick(i,t)},keydown:ya}},[g]);return t("li",{key:h,staticClass:"page-item",class:{disabled:f,"flex-fill":u},attrs:{role:"none presentation","aria-hidden":f?"true":null}},[v])},f=function(i){return t("li",{key:"ellipsis-".concat(i?"last":"first"),staticClass:"page-item",class:["disabled","bv-d-xs-down-none",u?"flex-fill":""],attrs:{role:"separator"}},[t("span",{staticClass:"page-link"},[e.normalizeSlot("ellipsis-text")||ke(e.ellipsisText)||t()])])};i.push(this.hideGotoEndButtons?t():h(1,this.labelFirstPage,"first-text",this.firstText,1,"bookend-goto-first")),i.push(h(l-1,this.labelPrevPage,"prev-text",this.prevText,1,"bookend-goto-prev")),i.push(s?f(!1):t()),this.pageList.forEach(function(r,s){var a=c(r.number)&&!d,l=o?null:a||d&&0===s?"0":"-1",h={role:"menuitemradio","aria-disabled":o?"true":null,"aria-controls":e.ariaControls||null,"aria-label":Q(e.labelPage)?e.labelPage(r.number):"".concat(e.labelPage," ").concat(r.number),"aria-checked":a?"true":"false","aria-posinset":r.number,"aria-setsize":n,tabindex:l},f=ke(e.makePage(r.number)),p={page:r.number,index:r.number-1,content:f,active:a,disabled:o},m=t(o?"span":Ve,{props:o?{}:e.linkProps(r.number),staticClass:"page-link",attrs:h,on:o?{}:{click:function(t){e.onClick(r.number,t)},keydown:ya}},[e.normalizeSlot("page",p)||f]);i.push(t("li",{key:"page-".concat(r.number),staticClass:"page-item",class:[{disabled:o,active:a,"flex-fill":u},r.classes],attrs:{role:"none presentation"}},[m]))}),i.push(a?f(!0):t()),i.push(h(l+1,this.labelNextPage,"next-text",this.nextText,n,"bookend-goto-next")),i.push(this.hideGotoEndButtons?t():h(n,this.labelLastPage,"last-text",this.lastText,n,"bookend-goto-last"));var p=t("ul",{ref:"ul",staticClass:"pagination",class:["b-pagination",this.btnSize,this.alignment],attrs:{role:"menubar","aria-disabled":o?"true":"false","aria-label":this.ariaLabel||null},on:{keydown:function(t){var i=t.keyCode,n=t.shiftKey;i===hi?(t.preventDefault(),n?e.focusFirst():e.focusPrev()):i===pi&&(t.preventDefault(),n?e.focusLast():e.focusNext())}}},i);return this.isNav?t("nav",{attrs:{"aria-disabled":o?"true":null,"aria-hidden":o?"true":"false"}},[p]):p}},Ba={perPage:{type:[Number,String],default:20},totalRows:{type:[Number,String],default:0},ariaControls:{type:String,default:null}},wa=ft({components:{BPagination:t.extend({name:"BPagination",mixins:[Sa],props:Ba,computed:{numberOfPages:function(){var t,e,i=Math.ceil((t=this.totalRows,((e=parseInt(t,10)||0)<0?0:e)/function(t){var e=parseInt(t,10)||20;return e<1?1:e}(this.perPage)));return i<1?1:i}},watch:{numberOfPages:function(t){t!==this.localNumPages&&(this.localNumPages=t,this.currentPage=1)}},created:function(){var t=this;this.localNumPages=this.numberOfPages;var e=parseInt(this.value,10)||0;e>0?this.currentPage=e:this.$nextTick(function(){t.currentPage=0})},mounted:function(){this.localNumPages=this.numberOfPages},methods:{onClick:function(t,e){var i=this;t>this.numberOfPages?t=this.numberOfPages:t<1&&(t=1),this.currentPage=t,this.$emit("change",this.currentPage),this.$nextTick(function(){var t=e.target;At(t)&&i.$el.contains(t)&&t.focus?t.focus():i.focusCurrent()})},makePage:function(t){return t},linkProps:function(t){return{href:"#"}}}})}}),Ta={numberOfPages:{type:[Number,String],default:1,validator:function(t){var e=parseInt(t,10);return!(isNaN(e)||e<1)||(O('b-pagination: prop "number-of-pages" must be a number greater than 0'),!1)}},baseUrl:{type:String,default:"/"},useRouter:{type:Boolean,default:!1},linkGen:{type:Function,default:null},pageGen:{type:Function,default:null},pages:{type:Array,default:null},noPageDetect:{type:Boolean,default:!1},activeClass:{type:String},exact:{type:Boolean,default:!1},exactActiveClass:{type:String},noPrefetch:{type:Boolean,default:!1}},ka=ft({components:{BPaginationNav:t.extend({name:"BPaginationNav",mixins:[Sa],props:Ta,computed:{isNav:function(){return!0},computedValue:function(){var t=parseInt(this.value,10);return isNaN(t)||t<1?null:t}},watch:{numberOfPages:function(t,e){var i=this;this.$nextTick(function(){i.setNumPages()})},pages:function(t,e){var i=this;this.$nextTick(function(){i.setNumPages()})}},created:function(){this.setNumPages()},mounted:function(){var t=this;this.$router&&this.$watch("$route",function(e,i){t.$nextTick(function(){It(function(){t.guessCurrentPage()})})})},methods:{setNumPages:function(){var t,e,i=this;N(this.pages)&&this.pages.length>0?this.localNumPages=this.pages.length:this.localNumPages=(t=this.numberOfPages,(e=parseInt(t,10)||1)<1?1:e),this.$nextTick(function(){i.guessCurrentPage()})},onClick:function(t,e){var i=this;t!==this.currentPage&&(It(function(){i.currentPage=t,i.$emit("change",t)}),this.$nextTick(function(){try{(e.currentTarget||e.target).blur()}catch(t){}}))},getPageInfo:function(t){if(!N(this.pages)||0===this.pages.length||Y(this.pages[t-1])){var e="".concat(this.baseUrl).concat(t);return{link:this.useRouter?{path:e}:e,text:ke(t)}}var i=this.pages[t-1];if(W(i)){var n=i.link;return{link:W(n)?n:this.useRouter?{path:n}:n,text:ke(i.text||t)}}return{link:ke(i),text:ke(t)}},makePage:function(t){var e=this.getPageInfo(t);return this.pageGen&&Q(this.pageGen)?this.pageGen(t,e):e.text},makeLink:function(t){var e=this.getPageInfo(t);return this.linkGen&&Q(this.linkGen)?this.linkGen(t,e):e.link},linkProps:function(t){var e=this.makeLink(t),i={target:this.target||null,rel:this.rel||null,disabled:this.disabled,exact:this.exact,activeClass:this.activeClass,exactActiveClass:this.exactActiveClass,append:this.append,replace:this.replace,noPrefetch:this.noPrefetch};return this.useRouter||W(e)?i.to=e:i.href=e,i},resolveLink:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";try{(t=document.createElement("a")).href=Fe({to:e},"a","/","/"),document.body.appendChild(t);var i=t,n=i.pathname,o=i.hash,r=i.search;return document.body.removeChild(t),{path:n,hash:o,query:Ie(r)}}catch(e){try{t&&t.parentNode&&t.parentNode.removeChild(t)}catch(t){}return{}}},resolveRoute:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";try{var e=this.$router.resolve(t,this.$route).route;return{path:e.path,hash:e.hash,query:e.query}}catch(t){return{}}},guessCurrentPage:function(){var t=this.computedValue,e=this.$router,i=this.$route;if(!this.noPageDetect&&!t&&(w||!w&&e))for(var n=e&&i?{path:i.path,hash:i.hash,query:i.query}:{},o=w?window.location||document.location:null,r=o?{path:o.pathname,hash:o.hash,query:Ie(o.search)}:{},s=1;!t&&s<=this.localNumPages;s++){var a=this.makeLink(s);t=e&&(W(a)||this.useRouter)?fn(this.resolveRoute(a),n)?s:null:w?fn(this.resolveLink(a),r)?s:null:-1}this.currentPage=t>0?t:0}}})}}),$a=new RegExp("\\b".concat("bs-tooltip","\\S+"),"g"),Ca={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left",TOPLEFT:"top",TOPRIGHT:"top",RIGHTTOP:"right",RIGHTBOTTOM:"right",BOTTOMLEFT:"bottom",BOTTOMRIGHT:"bottom",LEFTTOP:"left",LEFTBOTTOM:"left"},xa={AUTO:0,TOPLEFT:-1,TOP:0,TOPRIGHT:1,RIGHTTOP:-1,RIGHT:0,RIGHTBOTTOM:1,BOTTOMLEFT:-1,BOTTOM:0,BOTTOMRIGHT:1,LEFTTOP:-1,LEFT:0,LEFTBOTTOM:1},_a="show",Pa="out",Oa="fade",Ia="show",Ea=".tooltip-inner",Fa=".arrow",Na={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,placement:"top",offset:0,arrowPadding:6,container:!1,fallbackPlacement:"flip",callbacks:{},boundary:"scrollParent",boundaryPadding:5,variant:null,customClass:null},Va={WebkitTransition:["webkitTransitionEnd"],MozTransition:["transitionend"],OTransition:["otransitionend","oTransitionEnd"],transition:["transitionend"]},Da={passive:!0,capture:!1},Aa=1,La=function(t){return"__BV_".concat(t,"_").concat(Aa++,"__")},Ha=function(){function t(e,n,o){i(this,t),this.$isEnabled=!0,this.$fadeTimeout=null,this.$hoverTimeout=null,this.$visibleInterval=null,this.$hoverState="",this.$activeTrigger={},this.$popper=null,this.$element=e,this.$tip=null,this.$id=La(this.constructor.NAME),this.$parent=o||null,this.$root=o&&o.$root?o.$root:null,this.$routeWatcher=null,this.$forceHide=this.forceHide.bind(this),this.$doHide=this.doHide.bind(this),this.$doShow=this.doShow.bind(this),this.$doDisable=this.doDisable.bind(this),this.$doEnable=this.doEnable.bind(this),this._noop=Zi.bind(this),this.updateConfig(n),o&&o.$once("hook:beforeDestroy",this.destroy.bind(this))}return o(t,[{key:"updateConfig",value:function(t){var e=a({},this.constructor.Default,{},t);t.delay&&it(t.delay)&&(e.delay={show:t.delay,hide:t.delay}),t.title&&it(t.title)&&(e.title=t.title.toString()),t.content&&it(t.content)&&(e.content=t.content.toString()),this.fixTitle(),this.$config=e,this.unListen(),this.listen()}},{key:"destroy",value:function(){this.unListen(),this.setWhileOpenListeners(!1),clearTimeout(this.$hoverTimeout),this.$hoverTimeout=null,clearTimeout(this.$fadeTimeout),this.$fadeTimeout=null,this.$popper&&this.$popper.destroy(),this.$popper=null,this.$tip&&this.$tip.parentElement&&this.$tip.parentElement.removeChild(this.$tip),this.$tip=null,this.$id=null,this.$isEnabled=null,this.$parent=null,this.$root=null,this.$element=null,this.$config=null,this.$hoverState=null,this.$activeTrigger=null,this.$forceHide=null,this.$doHide=null,this.$doShow=null,this.$doDisable=null,this.$doEnable=null}},{key:"enable",value:function(){var t=new $o("enabled",{cancelable:!1,target:this.$element,relatedTarget:null});this.$isEnabled=!0,this.emitEvent(t)}},{key:"disable",value:function(){var t=new $o("disabled",{cancelable:!1,target:this.$element,relatedTarget:null});this.$isEnabled=!1,this.emitEvent(t)}},{key:"toggle",value:function(t){this.$isEnabled&&(this.dropdownOpen()||(t?(this.$activeTrigger.click=!this.$activeTrigger.click,this.isWithActiveTrigger()?this.enter(null):this.leave(null)):Kt(this.getTipElement(),Ia)?this.leave(null):this.enter(null)))}},{key:"show",value:function(){var t=this;if(document.body.contains(this.$element)&&At(this.$element)&&!this.dropdownOpen()){var e=this.getTipElement();if(this.fixTitle(),this.setContent(e),this.isWithContent(e)){Xt(e,"id",this.$id),this.addAriaDescribedby(),this.$config.animation?Ut(e,Oa):qt(e,Oa);var i=this.getPlacement(),n=this.constructor.getAttachment(i);this.addAttachmentClass(n);var o=new $o("show",{cancelable:!0,target:this.$element,relatedTarget:e});if(this.emitEvent(o),o.defaultPrevented)this.$tip=null;else{var r=this.getContainer();document.body.contains(e)||r.appendChild(e),this.removePopper(),this.$popper=new ko(this.$element,e,this.getPopperConfig(i,e));this.setWhileOpenListeners(!0),Ut(e,Ia),this.transitionOnce(e,function(){t.$config.animation&&t.fixTransition(e);var i=t.$hoverState;t.$hoverState=null,i===Pa&&t.leave(null);var n=new $o("shown",{cancelable:!1,target:t.$element,relatedTarget:e});t.emitEvent(n)})}}else this.$tip=null}}},{key:"visibleCheck",value:function(t){var e=this;clearInterval(this.$visibleInterval),this.$visibleInterval=null,t&&(this.$visibleInterval=setInterval(function(){var t=e.$tip;t&&!At(e.$element)&&Kt(t,Ia)&&e.forceHide()},100))}},{key:"setWhileOpenListeners",value:function(t){this.setModalListener(t),this.setDropdownListener(t),this.visibleCheck(t),this.setOnTouchStartListener(t),t&&/(focus|blur)/.test(this.$config.trigger)?Nt(this.$tip,"focusout",this,Da):Vt(this.$tip,"focusout",this,Da)}},{key:"forceHide",value:function(){this.$tip&&Kt(this.$tip,Ia)&&(this.setWhileOpenListeners(!1),clearTimeout(this.$hoverTimeout),this.$hoverTimeout=null,this.$hoverState="",this.$activeTrigger={},this.hide(null,!0))}},{key:"hide",value:function(t,e){var i=this,n=this.$tip;if(n){var o=new $o("hide",{cancelable:!e,target:this.$element,relatedTarget:n});if(this.emitEvent(o),!o.defaultPrevented){this.setWhileOpenListeners(!1),e&&qt(n,Oa),qt(n,Ia),this.$activeTrigger={},this.transitionOnce(n,function(){i.$hoverState!==_a&&n.parentNode&&(n.parentNode.removeChild(n),i.removeAriaDescribedby(),i.removePopper(),i.$tip=null),t&&t();var e=new $o("hidden",{cancelable:!1,target:i.$element,relatedTarget:null});i.emitEvent(e)}),this.$hoverState=""}}}},{key:"emitEvent",value:function(t){var e=t.type,i=this.$root;i&&i.$emit&&i.$emit("bv::".concat(this.constructor.NAME,"::").concat(e),t);var n=this.$config.callbacks||{};Q(n[e])&&n[e](t)}},{key:"getContainer",value:function(){var t=this.$config.container,e=document.body;return!1===t?jt(".modal-content",this.$element)||e:Rt(t,e)||e}},{key:"addAriaDescribedby",value:function(){var t=Zt(this.$element,"aria-describedby")||"";t=t.split(/\s+/).concat(this.$id).join(" ").trim(),Xt(this.$element,"aria-describedby",t)}},{key:"removeAriaDescribedby",value:function(){var t=this,e=Zt(this.$element,"aria-describedby")||"";(e=e.split(/\s+/).filter(function(e){return e!==t.$id}).join(" ").trim())?Xt(this.$element,"aria-describedby",e):Yt(this.$element,"aria-describedby")}},{key:"removePopper",value:function(){this.$popper&&this.$popper.destroy(),this.$popper=null}},{key:"transitionOnce",value:function(t,e){var i=this,n=this.getTransitionEndEvents(),o=!1;clearTimeout(this.$fadeTimeout),this.$fadeTimeout=null;var r=function r(){o||(o=!0,clearTimeout(i.$fadeTimeout),i.$fadeTimeout=null,n.forEach(function(e){Vt(t,e,r,Da)}),e())};Kt(t,Oa)?(n.forEach(function(e){Nt(t,e,r,Da)}),this.$fadeTimeout=setTimeout(r,150)):r()}},{key:"getTransitionEndEvents",value:function(){for(var t in Va)if(!Y(this.$element.style[t]))return Va[t];return[]}},{key:"update",value:function(){Z(this.$popper)||this.$popper.scheduleUpdate()}},{key:"isWithContent",value:function(t){return!!(t=t||this.$tip)&&Boolean((Rt(Ea,t)||{}).innerHTML)}},{key:"addAttachmentClass",value:function(t){Ut(this.getTipElement(),"".concat("bs-tooltip","-").concat(t))}},{key:"getTipElement",value:function(){return this.$tip||(this.$tip=this.compileTemplate(this.$config.template)||this.compileTemplate(this.constructor.Default.template)),this.$tip.tabIndex=-1,this.$config.variant&&Ut(this.$tip,"b-".concat(this.constructor.NAME,"-").concat(this.$config.variant)),this.$config.customClass&&Ut(this.$tip,String(this.$config.customClass)),this.$tip}},{key:"compileTemplate",value:function(t){if(!t||!et(t))return null;var e=document.createElement("div");e.innerHTML=t.trim();var i=e.firstElementChild?e.removeChild(e.firstElementChild):null;return e=null,i}},{key:"setContent",value:function(t){this.setElementContent(Rt(Ea,t),this.getTitle()),qt(t,Oa),qt(t,Ia)}},{key:"setElementContent",value:function(t,e){if(t){var i=this.$config.html;W(e)&&e.nodeType?i?e.parentElement!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.innerText:t[i?"innerHTML":"innerText"]=e}}},{key:"getTitle",value:function(){var t=this.$config.title||"";return Q(t)&&(t=t(this.$element)),W(t)&&t.nodeType&&!t.innerHTML.trim()&&(t=""),et(t)&&(t=t.trim()),t||(t=(t=Zt(this.$element,"title")||Zt(this.$element,"data-original-title")||"").trim()),t}},{key:"listen",value:function(){var t=this,e=this.$element;if(e){var i=this.$config.trigger.trim().split(/\s+/);this.setRootListener(!0),i.forEach(function(i){"click"===i?Nt(e,"click",t,Da):"focus"===i?(Nt(e,"focusin",t,Da),Nt(e,"focusout",t,Da)):"blur"===i?Nt(e,"focusout",t,Da):"hover"===i&&(Nt(e,"mouseenter",t,Da),Nt(e,"mouseleave",t,Da))},this)}}},{key:"unListen",value:function(){var t=this,e=this.$element;if(e){["click","focusin","focusout","mouseenter","mouseleave"].forEach(function(i){Vt(e,i,t,Da)},this),this.setRootListener(!1)}}},{key:"handleEvent",value:function(t){if(!Lt(this.$element)&&this.$isEnabled&&!this.dropdownOpen()){var e=t.type,i=t.target,n=t.relatedTarget,o=this.$element,r=this.$tip;if("click"===e)this.toggle(t);else if("focusin"===e||"mouseenter"===e)this.enter(t);else if("focusout"===e){if(r&&o&&o.contains(i)&&r.contains(n))return;if(r&&o&&r.contains(i)&&o.contains(n))return;if(r&&r.contains(i)&&r.contains(n))return;if(o&&o.contains(i)&&o.contains(n))return;this.leave(t)}else"mouseleave"===e&&this.leave(t)}}},{key:"setModalListener",value:function(t){var e=this.$element;e&&this.$root&&(jt(".modal-content",e)&&this.$root[t?"$on":"$off"]("bv::modal::hidden",this.$forceHide))}},{key:"setDropdownListener",value:function(t){var e=this.$element;e&&this.$root&&Kt(e,"dropdown")&&e&&e.__vue__&&e.__vue__[t?"$on":"$off"]("shown",this.$forceHide)}},{key:"setRootListener",value:function(t){var e=this.$root;if(e){var i=t?"$on":"$off";e[i]("bv::hide::".concat(this.constructor.NAME),this.$doHide),e[i]("bv::show::".concat(this.constructor.NAME),this.$doShow),e[i]("bv::disable::".concat(this.constructor.NAME),this.$doDisable),e[i]("bv::enable::".concat(this.constructor.NAME),this.$doEnable)}}},{key:"dropdownOpen",value:function(){return Kt(this.$element,"dropdown")&&Rt(".dropdown-menu.show",this.$element)}},{key:"doHide",value:function(t){t?this.$element&&this.$element.id&&this.$element.id===t&&this.hide():this.forceHide()}},{key:"doShow",value:function(t){t?t&&this.$element&&this.$element.id&&this.$element.id===t&&this.show():this.show()}},{key:"doDisable",value:function(t){t?this.$element&&this.$element.id&&this.$element.id===t&&this.disable():this.disable()}},{key:"doEnable",value:function(t){t?this.$element&&this.$element.id&&this.$element.id===t&&this.enable():this.enable()}},{key:"setOnTouchStartListener",value:function(t){var e=this;"ontouchstart"in document.documentElement&&F(document.body.children).forEach(function(i){t?Nt(i,"mouseover",e._noop):Vt(i,"mouseover",e._noop)})}},{key:"fixTitle",value:function(){var t=this.$element;!Zt(t,"title")&&et(Zt(t,"data-original-title"))||(Xt(t,"data-original-title",Zt(t,"title")||""),Xt(t,"title",""))}},{key:"enter",value:function(t){var e=this;t&&(this.$activeTrigger["focusin"===t.type?"focus":"hover"]=!0),Kt(this.getTipElement(),Ia)||this.$hoverState===_a?this.$hoverState=_a:(clearTimeout(this.$hoverTimeout),this.$hoverState=_a,this.$config.delay&&this.$config.delay.show?this.$hoverTimeout=setTimeout(function(){e.$hoverState===_a&&e.show()},this.$config.delay.show):this.show())}},{key:"leave",value:function(t){var e=this;t&&(this.$activeTrigger["focusout"===t.type?"focus":"hover"]=!1,"focusout"===t.type&&/blur/.test(this.$config.trigger)&&(this.$activeTrigger.click=!1,this.$activeTrigger.hover=!1)),this.isWithActiveTrigger()||(clearTimeout(this.$hoverTimeout),this.$hoverState=Pa,this.$config.delay&&this.$config.delay.hide?this.$hoverTimeout=setTimeout(function(){e.$hoverState===Pa&&e.hide()},this.$config.delay.hide):this.hide())}},{key:"getPopperConfig",value:function(t,e){var i=this;return{placement:this.constructor.getAttachment(t),modifiers:{offset:{offset:this.getOffset(t,e)},flip:{behavior:this.$config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{padding:this.$config.boundaryPadding,boundariesElement:this.$config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&i.handlePopperPlacementChange(t)},onUpdate:function(t){i.handlePopperPlacementChange(t)}}}},{key:"getOffset",value:function(t,e){if(!this.$config.offset){var i=Rt(Fa,e),n=parseFloat(te(i).width)+parseFloat(this.$config.arrowPadding);switch(xa[t.toUpperCase()]){case 1:return"+50%p - ".concat(n,"px");case-1:return"-50%p + ".concat(n,"px");default:return 0}}return this.$config.offset}},{key:"getPlacement",value:function(){var t=this.$config.placement;return Q(t)?t.call(this,this.$tip,this.$element):t}},{key:"isWithActiveTrigger",value:function(){for(var t in this.$activeTrigger)if(this.$activeTrigger[t])return!0;return!1}},{key:"cleanTipClass",value:function(){var t=this.getTipElement(),e=t.className.match($a);!Z(e)&&e.length>0&&e.forEach(function(e){qt(t,e)})}},{key:"handlePopperPlacementChange",value:function(t){this.cleanTipClass(),this.addAttachmentClass(this.constructor.getAttachment(t.placement))}},{key:"fixTransition",value:function(t){var e=this.$config.animation||!1;Z(Zt(t,"x-placement"))&&(qt(t,Oa),this.$config.animation=!1,this.hide(),this.show(),this.$config.animation=e)}}],[{key:"getAttachment",value:function(t){return Ca[t.toUpperCase()]}},{key:"Default",get:function(){return Na}},{key:"NAME",get:function(){return"tooltip"}}]),t}(),Ma=new RegExp("\\b".concat("bs-popover","\\S+"),"g"),Ra=a({},Ha.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),za="fade",ja="show",Ga=".popover-header",Wa=".popover-body",Ua=function(t){function e(){return i(this,e),h(this,u(e).apply(this,arguments))}return l(e,Ha),o(e,[{key:"isWithContent",value:function(t){if(!(t=t||this.$tip))return!1;var e=Boolean((Rt(Ga,t)||{}).innerHTML),i=Boolean((Rt(Wa,t)||{}).innerHTML);return e||i}},{key:"addAttachmentClass",value:function(t){Ut(this.getTipElement(),"".concat("bs-popover","-").concat(t))}},{key:"setContent",value:function(t){this.setElementContent(Rt(Ga,t),this.getTitle()),this.setElementContent(Rt(Wa,t),this.getContent()),qt(t,za),qt(t,ja)}},{key:"cleanTipClass",value:function(){var t=this.getTipElement(),e=t.className.match(Ma);!Z(e)&&e.length>0&&e.forEach(function(e){qt(t,e)})}},{key:"getTitle",value:function(){var t=this.$config.title||"";return Q(t)&&(t=t(this.$element)),W(t)&&t.nodeType&&!t.innerHTML.trim()&&(t=""),et(t)&&(t=t.trim()),t||(t=(t=Zt(this.$element,"title")||Zt(this.$element,"data-original-title")||"").trim()),t}},{key:"getContent",value:function(){var t=this.$config.content||"";return Q(t)&&(t=t(this.$element)),W(t)&&t.nodeType&&!t.innerHTML.trim()&&(t=""),et(t)&&(t=t.trim()),t}}],[{key:"Default",get:function(){return Ra}},{key:"NAME",get:function(){return"popover"}}]),e}(),qa={top:"top",topleft:"topleft",topright:"topright",right:"right",righttop:"righttop",rightbottom:"rightbottom",bottom:"bottom",bottomleft:"bottomleft",bottomright:"bottomright",left:"left",lefttop:"lefttop",leftbottom:"leftbottom",auto:"auto"},Ka={subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:["class","style"]},Xa={props:{target:{type:[String,Object,Cn,Function]},offset:{type:[Number,String],default:0},noFade:{type:Boolean,default:!1},container:{type:String,default:null},show:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},data:function(){return{localShow:!1}},computed:{baseConfig:function(){var t=this.container,e=W(this.delay)?this.delay:parseInt(this.delay,10)||0;return{title:(this.title||"").trim()||"",content:(this.content||"").trim()||"",placement:qa[this.placement]||"auto",fallbackPlacement:this.fallbackPlacement||"flip",container:!!t&&(/^#/.test(t)?t:"#".concat(t)),boundary:this.boundary,boundaryPadding:this.boundaryPadding,delay:e||0,offset:this.offset||0,animation:!this.noFade,variant:this.variant,customClass:this.customClass,trigger:N(this.triggers)?this.triggers.join(" "):this.triggers,callbacks:{show:this.onShow,shown:this.onShown,hide:this.onHide,hidden:this.onHidden,enabled:this.onEnabled,disabled:this.onDisabled}}}},watch:{show:function(t,e){t!==e&&(t?this.onOpen():this.onClose())},disabled:function(t,e){t!==e&&(t?this.onDisable():this.onEnable())},localShow:function(t,e){t!==this.show&&this.$emit("update:show",t)}},created:function(){this._toolpop=null,this._obs_title=null,this._obs_content=null},mounted:function(){var t=this;this.$nextTick(function(){t.createToolpop()&&(t.disabled&&t.onDisable(),t.$on("open",t.onOpen),t.$on("close",t.onClose),t.$on("disable",t.onDisable),t.$on("enable",t.onEnable),t.setObservers(!0),t.show&&t.onOpen())})},updated:function(){this._toolpop&&this._toolpop.updateConfig(this.getConfig())},activated:function(){this.setObservers(!0)},deactivated:function(){this._toolpop&&(this.setObservers(!1),this._toolpop.hide())},beforeDestroy:function(){this.$off("open",this.onOpen),this.$off("close",this.onClose),this.$off("disable",this.onDisable),this.$off("enable",this.onEnable),this.setObservers(!1),this.bringItBack(),this._toolpop&&(this._toolpop.destroy(),this._toolpop=null)},methods:{getConfig:function(){var t=a({},this.baseConfig);return this.$refs.title&&this.$refs.title.innerHTML.trim()&&(t.title=this.$refs.title,t.html=!0),this.$refs.content&&this.$refs.content.innerHTML.trim()&&(t.content=this.$refs.content,t.html=!0),t},onOpen:function(){this._toolpop&&!this.localShow&&(this.localShow=!0,this._toolpop.show())},onClose:function(t){this._toolpop&&this.localShow?this._toolpop.hide(t):Q(t)&&t()},onDisable:function(){this._toolpop&&this._toolpop.disable()},onEnable:function(){this._toolpop&&this._toolpop.enable()},updatePosition:function(){this._toolpop&&this._toolpop.update()},getTarget:function(){var t=this.target;return Q(t)&&(t=t()),et(t)?Wt(t):W(t)&&Dt(t.$el)?t.$el:W(t)&&Dt(t)?t:null},onShow:function(t){this.$emit("show",t),this.localShow=!(t&&t.defaultPrevented)},onShown:function(t){this.setObservers(!0),this.$emit("shown",t),this.localShow=!0},onHide:function(t){this.$emit("hide",t),this.localShow=!(!t||!t.defaultPrevented)},onHidden:function(t){this.setObservers(!1),this.bringItBack(),this.$emit("hidden",t),this.localShow=!1},onEnabled:function(t){t&&"enabled"===t.type&&(this.$emit("update:disabled",!1),this.$emit("disabled"))},onDisabled:function(t){t&&"disabled"===t.type&&(this.$emit("update:disabled",!0),this.$emit("enabled"))},bringItBack:function(){this.$el&&this.$refs.title&&this.$el.appendChild(this.$refs.title),this.$el&&this.$refs.content&&this.$el.appendChild(this.$refs.content)},setObservers:function(t){t?(this.$refs.title&&(this._obs_title=Ji(this.$refs.title,this.updatePosition.bind(this),Ka)),this.$refs.content&&(this._obs_content=Ji(this.$refs.content,this.updatePosition.bind(this),Ka))):(this._obs_title&&(this._obs_title.disconnect(),this._obs_title=null),this._obs_content&&(this._obs_content.disconnect(),this._obs_content=null))}}},Ya="BPopover",Za={title:{type:String,default:""},content:{type:String,default:""},triggers:{type:[String,Array],default:"click"},placement:{type:String,default:"right"},fallbackPlacement:{type:[String,Array],default:"flip",validator:function(t){return N(t)||V(["flip","clockwise","counterclockwise"],t)}},variant:{type:String,default:function(){return wt(Ya,"variant")}},customClass:{type:String,default:function(){return wt(Ya,"customClass")}},delay:{type:[Number,Object,String],default:function(){return wt(Ya,"delay")}},boundary:{type:[String,Cn],default:function(){return wt(Ya,"boundary")}},boundaryPadding:{type:Number,default:function(){return wt(Ya,"boundaryPadding")}}},Ja="__BV_PopOver__",Qa={focus:!0,hover:!0,click:!0,blur:!0},tl=/^html$/,el=/^nofade$/i,il=/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/,nl=/^(window|viewport|scrollParent)$/,ol=/^d\d+$/,rl=/^o-?\d+$/,sl=/^v-.+$/,al=function(t,e,i){if(w)if(ko){var n=function(t){var e="BPopover",i={delay:wt(e,"delay"),boundary:String(wt(e,"boundary")),boundaryPadding:parseInt(wt(e,"boundaryPadding"),10)||0,variant:wt(e,"variant"),customClass:wt(e,"customClass")};et(t.value)?i.content=t.value:Q(t.value)?i.content=t.value:W(t.value)&&(i=a({},i,{},t.value)),t.arg&&(i.container="#".concat(t.arg)),H(t.modifiers).forEach(function(t){if(tl.test(t))i.html=!0;else if(el.test(t))i.animation=!1;else if(il.test(t))i.placement=t;else if(nl.test(t))i.boundary=t;else if(ol.test(t)){var e=parseInt(t.slice(1),10)||0;e&&(i.delay=e)}else if(rl.test(t)){var n=parseInt(t.slice(1),10)||0;n&&(i.offset=n)}else sl.test(t)&&(i.variant=t.slice(2)||null)});var n={};return(et(i.trigger)?i.trigger.trim().split(/\s+/):[]).forEach(function(t){Qa[t]&&(n[t]=!0)}),H(Qa).forEach(function(e){t.modifiers[e]&&(n[e]=!0)}),i.trigger=H(n).join(" "),"blur"===i.trigger&&(i.trigger="focus"),i.trigger||delete i.trigger,i}(e);t[Ja]?t[Ja].updateConfig(n):t[Ja]=new Ua(t,n,i.context)}else O("v-b-popover: Popper.js is required for PopOvers to work")},ll={bind:function(t,e,i){al(t,e,i)},inserted:function(t,e,i){al(t,e,i)},update:function(t,e,i){e.value!==e.oldValue&&al(t,e,i)},componentUpdated:function(t,e,i){e.value!==e.oldValue&&al(t,e,i)},unbind:function(t){!function(t){t[Ja]&&(t[Ja].destroy(),t[Ja]=null,delete t[Ja])}(t)}},ul=ft({components:{BPopover:t.extend({name:Ya,mixins:[Xa,pe],props:Za,methods:{createToolpop:function(){var t=this.getTarget();return t?this._toolpop=new Ua(t,this.getConfig(),this):(this._toolpop=null,O("b-popover: 'target' element not found!")),this._toolpop}},render:function(t){return t("div",{class:["d-none"],style:{display:"none"},attrs:{"aria-hidden":!0}},[t("div",{ref:"title"},this.normalizeSlot("title")),t("div",{ref:"content"},this.normalizeSlot("default"))])}})},directives:{VBPopover:ll}}),cl=t.extend({name:"BProgressBar",mixins:[pe],inject:{bvProgress:{default:function(){return{}}}},props:{value:{type:Number,default:0},label:{type:String,default:null},labelHtml:{type:String},max:{type:Number,default:null},precision:{type:Number,default:null},variant:{type:String,default:function(){return wt("BProgressBar","variant")}},striped:{type:Boolean,default:null},animated:{type:Boolean,default:null},showProgress:{type:Boolean,default:null},showValue:{type:Boolean,default:null}},computed:{progressBarClasses:function(){return[this.computedVariant?"bg-".concat(this.computedVariant):"",this.computedStriped||this.computedAnimated?"progress-bar-striped":"",this.computedAnimated?"progress-bar-animated":""]},progressBarStyles:function(){return{width:this.value/this.computedMax*100+"%"}},computedProgress:function(){var t=Math.pow(10,this.computedPrecision);return Math.round(100*t*this.value/this.computedMax)/t},computedMax:function(){return it(this.max)?this.max:this.bvProgress.max||100},computedVariant:function(){return this.variant||this.bvProgress.variant},computedPrecision:function(){return it(this.precision)?this.precision:this.bvProgress.precision||0},computedStriped:function(){return tt(this.striped)?this.striped:this.bvProgress.striped||!1},computedAnimated:function(){return tt(this.animated)?this.animated:this.bvProgress.animated||!1},computedShowProgress:function(){return tt(this.showProgress)?this.showProgress:this.bvProgress.showProgress||!1},computedShowValue:function(){return tt(this.showValue)?this.showValue:this.bvProgress.showValue||!1}},render:function(t){var e=t();return this.hasNormalizedSlot("default")?e=this.normalizeSlot("default"):this.label||this.labelHtml?e=t("span",{domProps:Re(this.labelHtml,this.label)}):this.computedShowProgress?e=this.computedProgress.toFixed(this.computedPrecision):this.computedShowValue&&(e=this.value.toFixed(this.computedPrecision)),t("div",{staticClass:"progress-bar",class:this.progressBarClasses,style:this.progressBarStyles,attrs:{role:"progressbar","aria-valuemin":"0","aria-valuemax":this.computedMax.toString(),"aria-valuenow":this.value.toFixed(this.computedPrecision)}},[e])}}),dl=ft({components:{BProgress:t.extend({name:"BProgress",mixins:[pe],provide:function(){return{bvProgress:this}},props:{variant:{type:String,default:function(){return wt("BProgress","variant")}},striped:{type:Boolean,default:!1},animated:{type:Boolean,default:!1},height:{type:String,default:null},precision:{type:Number,default:0},showProgress:{type:Boolean,default:!1},showValue:{type:Boolean,default:!1},max:{type:Number,default:100},value:{type:Number,default:0}},computed:{progressHeight:function(){return{height:this.height||null}}},render:function(t){var e=this.normalizeSlot("default");return e||(e=t(cl,{props:{value:this.value,max:this.max,precision:this.precision,variant:this.variant,animated:this.animated,striped:this.striped,showProgress:this.showProgress,showValue:this.showValue}})),t("div",{class:["progress"],style:this.progressHeight},[e])}}),BProgressBar:cl}}),hl=ft({components:{BSpinner:t.extend({name:"BSpinner",functional:!0,props:{type:{type:String,default:"border"},label:{type:String,default:null},variant:{type:String,default:function(){return wt("BSpinner","variant")}},small:{type:Boolean,default:!1},role:{type:String,default:"status"},tag:{type:String,default:"span"}},render:function(t,e){var i,n=e.props,o=e.data,s=e.slots,a=e.scopedSlots,l=s(),u=fe("label",{},a||{},l)||n.label;return u&&(u=t("span",{staticClass:"sr-only"},u)),t(n.tag,le(o,{attrs:{role:u?n.role||"status":null,"aria-hidden":u?null:"true"},class:(i={},r(i,"spinner-".concat(n.type),Boolean(n.type)),r(i,"spinner-".concat(n.type,"-sm"),n.small),r(i,"text-".concat(n.variant),Boolean(n.variant)),i)}),[u||t()])}})}}),fl=function(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,function(t,e,i){return e+" "+i}).replace(/(\s|^)(\w)/g,function(t,e,i){return e+i.toUpperCase()})},pl={_rowVariant:!0,_cellVariants:!0,_showDetails:!0},ml=["a","a *","button","button *","input:not(.disabled):not([disabled])","select:not(.disabled):not([disabled])","textarea:not(.disabled):not([disabled])",'[role="link"]','[role="link"] *','[role="button"]','[role="button"] *',"[tabindex]:not(.disabled):not([disabled])"].join(","),gl=function(t,e){var i=null;return et(e)?i={key:t,label:e}:Q(e)?i={key:t,formatter:e}:W(e)?(i=a({},e)).key=i.key||t:!1!==e&&(i={key:t}),i},vl={props:{items:{type:Array,default:function(){return[]}},fields:{type:[Array,Object],default:null},primaryKey:{type:String,default:null},value:{type:Array,default:function(){return[]}}},data:function(){return{localItems:N(this.items)?this.items.slice():[]}},computed:{computedFields:function(){return function(t,e){var i=[];if(N(t)?t.filter(function(t){return t}).forEach(function(t){if(et(t))i.push({key:t,label:fl(t)});else if(W(t)&&t.key&&et(t.key))i.push(a({},t));else if(W(t)&&1===H(t).length){var e=H(t)[0],n=gl(e,t[e]);n&&i.push(n)}}):t&&W(t)&&H(t).length>0&&H(t).forEach(function(e){var n=gl(e,t[e]);n&&i.push(n)}),0===i.length&&N(e)&&e.length>0){var n=e[0];H(n).forEach(function(t){pl[t]||i.push({key:t,label:fl(t)})})}var o={};return i.filter(function(t){return!o[t.key]&&(o[t.key]=!0,t.label=et(t.label)?t.label:fl(t.key),!0)})}(this.fields,this.localItems)},computedFieldsObj:function(){return this.computedFields.reduce(function(t,e){return t[e.key]=e,t},{})},computedItems:function(){return(this.paginatedItems||this.sortedItems||this.filteredItems||this.localItems||[]).slice()},context:function(){return{filter:this.localFilter,sortBy:this.localSortBy,sortDesc:this.localSortDesc,perPage:parseInt(this.perPage,10)||0,currentPage:parseInt(this.currentPage,10)||1,apiUrl:this.apiUrl}}},watch:{items:function(t){N(t)?this.localItems=t.slice():(Y(t)||Z(t))&&(this.localItems=[])},computedItems:function(t){this.$emit("input",t)},context:function(t,e){fn(t,e)||this.$emit("context-changed",t)}},mounted:function(){this.$emit("input",this.computedItems)},methods:{getFieldFormatter:function(t){var e=this.computedFieldsObj[t],i=this.$parent,n=e&&e.formatter;return et(n)&&Q(i[n])?n=i[n]:Q(n)||(n=void 0),n}}},bl=function(t){return H(t).reduce(function(e,i){return pl[i]||(e[i]=t[i]),e},{})},yl=function t(e){return J(e)?"":W(e)&&!nt(e)?H(e).sort().filter(function(t){return!J(t)}).map(function(i){return t(e[i])}).join(" "):String(e)},Sl='Supplying a function to prop "filter" is deprecated. Use "filter-function" instead.',Bl={props:{filter:{type:[String,RegExp,Object,Array,Function],default:null,deprecation:Sl},filterFunction:{type:Function,default:null}},data:function(){return{isFiltered:!1}},computed:{localFiltering:function(){return!this.hasProvider||!!this.noProviderFiltering},filteredCheck:function(){return{filteredItems:this.filteredItems,localItems:this.localItems,localFilter:this.localFilter}},localFilter:function(){return Q(this.filter)?"":!this.localFiltering||Q(this.filterFunction)||et(this.filter)||rt(this.filter)?st(this.filter):""},localFilterFn:function(){var t=this.filterFunction,e=this.filter;return Q(t)?t:Q(e)?(O("b-table: ".concat(Sl)),e):null},filteredItems:function(){var t=this.localItems||[],e=null;if(this.localFiltering){var i=this.localFilter;e=this.filterFnFactory(this.localFilterFn,i)||this.defaultFilterFnFactory(i)}return e&&t.length>0?t.filter(e):t}},watch:{filteredCheck:function(t){var e=t.filteredItems,i=(t.localItems,t.localFilter),n=!1;i?fn(i,[])||fn(i,{})?n=!1:i&&(n=!0):n=!1,n&&this.$emit("filtered",e,e.length),this.isFiltered=n},isFiltered:function(t,e){!1===t&&!0===e&&this.$emit("filtered",this.localItems,this.localItems.length)}},created:function(){var t=this;this.$nextTick(function(){t.isFiltered=Boolean(t.localFilter)})},methods:{filterFnFactory:function(t,e){if(!t||!Q(t)||!e||fn(e,[])||fn(e,{}))return null;return function(i){return t(i,e)}},defaultFilterFnFactory:function(t){if(!t||!et(t)&&!rt(t))return null;var e=t;if(et(e)){var i=t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&").replace(/[\s\uFEFF\xA0]+/g,"\\s+");e=new RegExp(".*".concat(i,".*"),"i")}return function(t){return e.lastIndex=0,e.test(W(i=t)?yl(bl(i)):"");var i}}}},wl=function(t,e){return t.map(function(t,e){return[e,t]}).sort(function(t,e){return this(t[1],e[1])||t[0]-e[0]}.bind(e)).map(function(t){return t[1]})},Tl={props:{sortBy:{type:String,default:""},sortDesc:{type:Boolean,default:!1},sortDirection:{type:String,default:"asc",validator:function(t){return V(["asc","desc","last"],t)}},sortCompare:{type:Function,default:null},sortCompareOptions:{type:Object,default:function(){return{numeric:!0}}},sortCompareLocale:{type:String},noSortReset:{type:Boolean,default:!1},labelSortAsc:{type:String,default:"Click to sort Ascending"},labelSortDesc:{type:String,default:"Click to sort Descending"},labelSortClear:{type:String,default:"Click to clear sorting"},noLocalSorting:{type:Boolean,default:!1},noFooterSorting:{type:Boolean,default:!1}},data:function(){return{localSortBy:this.sortBy||"",localSortDesc:this.sortDesc||!1}},computed:{localSorting:function(){return this.hasProvider?!!this.noProviderSorting:!this.noLocalSorting},isSortable:function(){return this.computedFields.some(function(t){return t.sortable})},sortedItems:function(){var t=(this.filteredItems||this.localItems||[]).slice(),e=this.localSortBy,i=this.localSortDesc,n=this.sortCompare,o=this.localSorting,r=a({},this.sortCompareOptions,{usage:"sort"}),s=this.sortCompareLocale||void 0;if(e&&o){var l=this.getFieldFormatter(e);return wl(t,function(t,o){var a=null;return Q(n)&&(a=n(t,o,e,i,l,r,s)),(Y(a)||Z(a)||!1===a)&&(a=function(t,e,i,n,o,r){var s=at(t,i,""),a=at(e,i,"");return Q(n)&&(s=n(s,i,t),a=n(a,i,e)),s=Y(s)||Z(s)?"":s,a=Y(a)||Z(a)?"":a,nt(s)&&nt(a)||it(s)&&it(a)?s<a?-1:s>a?1:0:yl(s).localeCompare(yl(a),r,o)}(t,o,e,l,r,s)),(a||0)*(i?-1:1)})}return t}},watch:{isSortable:function(t,e){t?this.isSortable&&this.$on("head-clicked",this.handleSort):this.$off("head-clicked",this.handleSort)},sortDesc:function(t,e){t!==this.localSortDesc&&(this.localSortDesc=t||!1)},sortBy:function(t,e){t!==this.localSortBy&&(this.localSortBy=t||"")},localSortDesc:function(t,e){t!==e&&this.$emit("update:sortDesc",t)},localSortBy:function(t,e){t!==e&&this.$emit("update:sortBy",t)}},created:function(){this.isSortable&&this.$on("head-clicked",this.handleSort)},methods:{handleSort:function(t,e,i,n){var o=this;if(this.isSortable&&(!n||!this.noFooterSorting)){var r=!1,s=function(){var t=e.sortDirection||o.sortDirection;"asc"===t?o.localSortDesc=!1:"desc"===t&&(o.localSortDesc=!0)};e.sortable?(t===this.localSortBy?this.localSortDesc=!this.localSortDesc:(this.localSortBy=t,s()),r=!0):this.localSortBy&&!this.noSortReset&&(this.localSortBy="",s(),r=!0),r&&this.$emit("sort-changed",this.context)}},sortTheadThClasses:function(t,e,i){return{}},sortTheadThAttrs:function(t,e,i){if(!this.isSortable||i&&this.noFooterSorting)return{};var n=e.sortable,o="";e.label&&e.label.trim()||e.headerTitle||(o=fl(t));var r="";if(n)if(this.localSortBy===t)r=this.localSortDesc?this.labelSortAsc:this.labelSortDesc;else{r=this.localSortDesc?this.labelSortDesc:this.labelSortAsc;var s=this.sortDirection||e.sortDirection;"asc"===s?r=this.labelSortAsc:"desc"===s&&(r=this.labelSortDesc)}else this.noSortReset||(r=this.localSortBy?this.labelSortClear:"");return{"aria-label":(o=[o.trim(),r.trim()].filter(Boolean).join(": "))||null,"aria-sort":n&&this.localSortBy===t?this.localSortDesc?"descending":"ascending":n?"none":null}}}},kl={props:{perPage:{type:[Number,String],default:0},currentPage:{type:[Number,String],default:1}},computed:{localPaging:function(){return!this.hasProvider||!!this.noProviderPaging},paginatedItems:function(){var t=this.sortedItems||this.filteredItems||this.localItems||[],e=Math.max(parseInt(this.currentPage,10)||1,1),i=Math.max(parseInt(this.perPage,10)||0,0);return this.localPaging&&i&&(t=t.slice((e-1)*i,e*i)),t}}},$l={props:{caption:{type:String,default:null},captionHtml:{type:String},captionTop:{type:Boolean,default:!1}},computed:{captionClasses:function(){return{"b-table-caption-top":this.captionTop}},captionId:function(){return this.isStacked?this.safeId("_caption_"):null}},methods:{renderCaption:function(){var t=this.$createElement,e=this.normalizeSlot("table-caption"),i=t();if(e||this.caption||this.captionHtml){var n={key:"caption",class:this.captionClasses,attrs:{id:this.captionId}};e||(n.domProps=Re(this.captionHtml,this.caption)),i=t("caption",n,[e])}return i}}},Cl={methods:{renderColgroup:function(){var t=this.$createElement,e=this.computedFields,i=t();return this.hasNormalizedSlot("table-colgroup")&&(i=t("colgroup",{key:"colgroup"},[this.normalizeSlot("table-colgroup",{columns:e.length,fields:e})])),i}}},xl=["TD","TH","TR"],_l=function(t){if(!t||!t.target)return!1;var e=t.target;if(e.disabled||-1!==xl.indexOf(e.tagName))return!1;if(jt(".dropdown-menu",e))return!0;var i="LABEL"===e.tagName?e:jt("label",e);if(i){var n=Zt(i,"for"),o=n?Wt(n):Rt("input, select, textarea",i);if(o&&!o.disabled)return!0}return zt(e,ml)},Pl=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,e=ee();return!!(e&&""!==e.toString()&&e.containsNode&&Dt(t))&&e.containsNode(t,!0)},Ol={props:{headVariant:{type:String,default:function(){return wt("BTable","headVariant")}},theadClass:{type:[String,Array,Object],default:null},theadTrClass:{type:[String,Array,Object],default:null}},computed:{headClasses:function(){return[this.headVariant?"thead-"+this.headVariant:"",this.theadClass]}},methods:{fieldClasses:function(t){return[t.variant?"table-"+t.variant:"",t.class?t.class:"",t.thClass?t.thClass:""]},headClicked:function(t,e,i){this.stopIfBusy&&this.stopIfBusy(t)||_l(t)||Pl(this.$el)||(t.stopPropagation(),t.preventDefault(),this.$emit("head-clicked",e.key,e,t,i))},renderThead:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=this.$createElement,n=this.computedFields||[];if(!0===this.isStacked||0===n.length)return i();var o=function(n,o){var r=null;n.label.trim()||n.headerTitle||(r=fl(n.key));var s=t.$listeners["head-clicked"]||t.isSortable,l={};s&&(l.click=function(i){t.headClicked(i,n,e)},l.keydown=function(i){var o=i.keyCode;o!==ci&&o!==ui||t.headClicked(i,n,e)});var u=t.isSortable?t.sortTheadThAttrs(n.key,n,e):{},c=t.isSortable?t.sortTheadThClasses(n.key,n,e):null,d={key:n.key,class:[t.fieldClasses(n),c],style:n.thStyle||{},attrs:a({tabindex:s?"0":null,abbr:n.headerAbbr||null,title:n.headerTitle||null,role:"columnheader",scope:"col","aria-colindex":String(o+1),"aria-label":r},u),on:l},h={label:n.label,column:n.key,field:n},f=e&&t.hasNormalizedSlot("FOOT_".concat(n.key))?t.normalizeSlot("FOOT_".concat(n.key),h):t.normalizeSlot("HEAD_".concat(n.key),h);return f||(d.domProps=Re(n.labelHtml)),i("th",d,f||n.label)},r=n.map(o).filter(function(t){return t}),s=[];if(e)s.push(i("tr",{class:this.tfootTrClass,attrs:{role:"row"}},r));else{var l={columns:n.length,fields:n};s.push(this.normalizeSlot("thead-top",l)||i()),s.push(i("tr",{class:this.theadTrClass,attrs:{role:"row"}},r))}return i(e?"tfoot":"thead",{key:e?"tfoot":"thead",class:e?this.footClasses:this.headClasses,attrs:{role:"rowgroup"}},s)}}},Il={props:{footClone:{type:Boolean,default:!1},footVariant:{type:String,default:function(){return wt("BTable","footVariant")}},tfootClass:{type:[String,Array,Object],default:null},tfootTrClass:{type:[String,Array,Object],default:null}},computed:{footClasses:function(){var t=this.footVariant||this.headVariant||null;return[t?"thead-".concat(t):"",this.tfootClass]}},methods:{renderTfoot:function(){var t=this.$createElement;return this.footClone?this.renderThead(!0):t()}}},El={mixins:[{props:{tbodyTrClass:{type:[String,Array,Function],default:null}},methods:{tdClasses:function(t,e){var i="";return e._cellVariants&&e._cellVariants[t.key]&&(i="".concat(this.dark?"bg":"table","-").concat(e._cellVariants[t.key])),[t.variant&&!i?"".concat(this.dark?"bg":"table","-").concat(t.variant):"",i,t.class?t.class:"",this.getTdValues(e,t.key,t.tdClass,"")]},tdAttrs:function(t,e,i){var n={role:"cell","aria-colindex":String(i+1)};return t.isRowHeader&&(n.scope="row",n.role="rowheader"),this.isStacked&&(n["data-label"]=t.label),a({},n,{},this.getTdValues(e,t.key,t.tdAttr,{}))},rowClasses:function(t){return[t._rowVariant?"".concat(this.dark?"bg":"table","-").concat(t._rowVariant):"",Q(this.tbodyTrClass)?this.tbodyTrClass(t,"row"):this.tbodyTrClass]},getTdValues:function(t,e,i,n){var o=this.$parent;if(i){var r=at(t,e,"");return Q(i)?i(r,e,t):et(i)&&Q(o[i])?o[i](r,e,t):i}return n},getFormattedValue:function(t,e){var i=e.key,n=this.getFieldFormatter(i),o=at(t,i,null);return Q(n)&&(o=n(o,i,t)),Y(o)||Z(o)?"":o},tbodyRowKeydown:function(t,e,i){var n=t.keyCode,o=t.target,r=this.$refs.itemRows;if((!this.stopIfBusy||!this.stopIfBusy(t))&&o&&"TR"===o.tagName&&o===document.activeElement&&0===o.tabIndex&&(!r||0!==r.length)){var s=r.indexOf(o);if(n===ci||n===ui)t.stopPropagation(),t.preventDefault(),this.rowClicked(t,e,i);else if(V([fi,mi,gi,vi],n)){t.stopPropagation(),t.preventDefault();var a=t.shiftKey;n===gi||a&&n===fi?r[0].focus():n===vi||a&&n===mi?r[r.length-1].focus():n===fi&&s>0?r[s-1].focus():n===mi&&s<r.length-1&&r[s+1].focus()}}},rowClicked:function(t,e,i){this.stopIfBusy&&this.stopIfBusy(t)||_l(t)||Pl(this.$el)||this.$emit("row-clicked",e,i,t)},middleMouseRowClicked:function(t,e,i){this.stopIfBusy&&this.stopIfBusy(t)||this.$emit("row-middle-clicked",e,i,t)},rowDblClicked:function(t,e,i){this.stopIfBusy&&this.stopIfBusy(t)||_l(t)||this.$emit("row-dblclicked",e,i,t)},rowHovered:function(t,e,i){this.stopIfBusy&&this.stopIfBusy(t)||this.$emit("row-hovered",e,i,t)},rowUnhovered:function(t,e,i){this.stopIfBusy&&this.stopIfBusy(t)||this.$emit("row-unhovered",e,i,t)},rowContextmenu:function(t,e,i){this.stopIfBusy&&this.stopIfBusy(t)||this.$emit("row-contextmenu",e,i,t)},renderTbodyRowCell:function(t,e,i,n){var o=this,r=this.$createElement,s=this.$scopedSlots,a=s["row-details"],l=this.getFormattedValue(i,t),u={key:"row-".concat(n,"-cell-").concat(e,"-").concat(t.key),class:this.tdClasses(t,i),attrs:this.tdAttrs(t,i,e)},c={item:i,index:n,field:t,unformatted:at(i,t.key,""),value:l,toggleDetails:function(){a&&o.$set(i,"_showDetails",!i._showDetails)},detailsShowing:Boolean(i._showDetails)};this.selectedRows&&(c.rowSelected=Boolean(this.selectedRows[n]));var d=s[t.key]?s[t.key](c):ke(l);return this.isStacked&&(d=[r("div",{},[d])]),r(t.isRowHeader?"th":"td",u,[d])},renderTbodyRow:function(t,e){var i=this,n=this.$createElement,o=this.$scopedSlots,r=this.computedFields,s=this.striped,l=this.$listeners["row-clicked"]||this.selectable,u=o["row-details"],c=Boolean(t._showDetails&&u),d=[],h=c?this.safeId("_details_".concat(e,"_")):null,f=r.map(function(n,o){return i.renderTbodyRowCell(n,o,t,e)}),p=null;this.currentPage&&this.perPage&&this.perPage>0&&(p=String((this.currentPage-1)*this.perPage+e+1));var m=this.primaryKey,g=!m||Y(t[m])||Z(t[m])?String(e):ke(t[m]),v=!m||Y(t[m])||Z(t[m])?null:this.safeId("_row_".concat(t[m])),b={};l&&(b.click=function(n){i.rowClicked(n,t,e)},b.keydown=function(n){i.tbodyRowKeydown(n,t,e)});var y=this.selectableRowClasses?this.selectableRowClasses(e):{},S=this.selectableRowAttrs?this.selectableRowAttrs(e):{};if(d.push(n("tr",{key:"__b-table-row-".concat(g,"__"),ref:"itemRows",refInFor:!0,class:[this.rowClasses(t),y,{"b-table-has-details":c}],attrs:a({id:v,tabindex:l?"0":null,"data-pk":v?String(t[m]):null,"aria-describedby":h,"aria-owns":h,"aria-rowindex":p,role:"row"},S),on:a({},b,{auxclick:function(n){2===n.which&&i.middleMouseRowClicked(n,t,e)},contextmenu:function(n){i.rowContextmenu(n,t,e)},dblclick:function(n){i.rowDblClicked(n,t,e)},mouseenter:function(n){i.rowHovered(n,t,e)},mouseleave:function(n){i.rowUnhovered(n,t,e)}})},f)),c){var B={id:h,role:"row"},w=n("td",{attrs:{colspan:String(r.length),role:"cell"}},[u({item:t,index:e,fields:r,toggleDetails:function(){u&&i.$set(t,"_showDetails",!t._showDetails)}})]);s&&d.push(n("tr",{key:"__b-table-details-".concat(e,"-stripe__"),staticClass:"d-none",attrs:{"aria-hidden":"true",role:"presentation"}})),d.push(n("tr",{key:"__b-table-details-".concat(e,"__"),staticClass:"b-table-details",class:[Q(this.tbodyTrClass)?this.tbodyTrClass(t,"row-details"):this.tbodyTrClass],attrs:B},[w]))}else u&&(d.push(n()),s&&d.push(n()));return d}}}],props:{tbodyClass:{type:[String,Array],default:null},tbodyTransitionProps:{type:Object},tbodyTransitionHandlers:{type:Object}},methods:{renderTbody:function(){var t=this,e=this.$createElement,i=this.computedItems,n=[],o=this.renderBusy?this.renderBusy():null;o?n.push(o):(n.push(this.renderTopRow?this.renderTopRow():e()),i.forEach(function(e,i){n.push(t.renderTbodyRow(e,i))}),n.push(this.renderEmpty?this.renderEmpty():e()),n.push(this.renderBottomRow?this.renderBottomRow():e()));var r=this.tbodyTransitionProps||this.tbodyTransitionHandlers,s={},l={};return r&&(l=this.tbodyTransitionHandlers||{},s=a({},this.tbodyTransitionProps||{},{tag:"tbody"})),e(r?"transition-group":"tbody",{props:s,on:l,class:[this.tbodyClass],attrs:{role:"rowgroup"}},n)}}},Fl={props:{showEmpty:{type:Boolean,default:!1},emptyText:{type:String,default:"There are no records to show"},emptyHtml:{type:String},emptyFilteredText:{type:String,default:"There are no records matching your request"},emptyFilteredHtml:{type:String}},methods:{renderEmpty:function(){var t,e=this.$createElement,i=this.computedItems;return!this.showEmpty||i&&0!==i.length||this.computedBusy&&this.hasNormalizedSlot("table-busy")||((t=this.normalizeSlot(this.isFiltered?"emptyfiltered":"empty",{emptyFilteredHtml:this.emptyFilteredHtml,emptyFilteredText:this.emptyFilteredText,emptyHtml:this.emptyHtml,emptyText:this.emptyText,fields:this.computedFields,items:this.computedItems}))||(t=e("div",{class:["text-center","my-2"],domProps:this.isFiltered?Re(this.emptyFilteredHtml,this.emptyFilteredText):Re(this.emptyHtml,this.emptyText)})),t=e("td",{attrs:{colspan:String(this.computedFields.length),role:"cell"}},[e("div",{attrs:{role:"alert","aria-live":"polite"}},[t])]),t=e("tr",{key:this.isFiltered?"_b-table-empty-filtered-row_":"_b-table-empty-row_",staticClass:"b-table-empty-row",class:[Q(this.tbodyTrClass)?this.tbodyTrClass(null,"row-empty"):this.tbodyTrClass],attrs:{role:"row"}},[t])),t||e()}}},Nl={methods:{renderTopRow:function(){var t=this.$createElement;if(!this.hasNormalizedSlot("top-row")||!0===this.isStacked)return t();var e=this.computedFields;return t("tr",{key:"top-row",staticClass:"b-table-top-row",class:[Q(this.tbodyTrClass)?this.tbodyTrClass(null,"row-top"):this.tbodyTrClass],attrs:{role:"row"}},[this.normalizeSlot("top-row",{columns:e.length,fields:e})])}}},Vl={methods:{renderBottomRow:function(){var t=this.$createElement;if(!this.hasNormalizedSlot("bottom-row")||!0===this.isStacked)return t();var e=this.computedFields;return t("tr",{key:"__b-table-bottom-row__",staticClass:"b-table-bottom-row",class:[Q(this.tbodyTrClass)?this.tbodyTrClass(null,"row-bottom"):this.tbodyTrClass],attrs:{role:"row"}},this.normalizeSlot("bottom-row",{columns:e.length,fields:e}))}}},Dl={props:{busy:{type:Boolean,default:!1}},data:function(){return{localBusy:!1}},computed:{computedBusy:function(){return this.busy||this.localBusy}},watch:{localBusy:function(t,e){t!==e&&this.$emit("update:busy",t)}},methods:{stopIfBusy:function(t){return!!this.computedBusy&&(t.preventDefault(),t.stopPropagation(),!0)},renderBusy:function(){var t=this.$createElement;if(this.computedBusy&&this.hasNormalizedSlot("table-busy")){var e={role:this.isStacked?"row":null},i={colspan:String(this.computedFields.length),role:this.isStacked?"cell":null};return t("tr",{key:"table-busy-slot",staticClass:"b-table-busy-slot",class:[Q(this.tbodyTrClass)?this.tbodyTrClass(null,"table-busy"):this.tbodyTrClass],attrs:e},[t("td",{attrs:i},[this.normalizeSlot("table-busy")])])}return null}}},Al={props:{selectable:{type:Boolean,default:!1},selectMode:{type:String,default:"multi"},selectedVariant:{type:String,default:function(){return wt("BTable","selectedVariant")}}},data:function(){return{selectedRows:[],selectedLastRow:-1}},computed:{selectableTableClasses:function(){var t,e=this.selectable,i=e&&this.selectedRows&&this.selectedRows.some(Boolean);return r(t={"b-table-selectable":e},"b-table-select-".concat(this.selectMode),e),r(t,"b-table-selecting",i),t},selectableTableAttrs:function(){return{"aria-multiselectable":this.selectableIsMultiSelect}},selectableIsMultiSelect:function(){return this.selectable?V(["range","multi"],this.selectMode)?"true":"false":null}},watch:{computedItems:function(t,e){this.selectedLastRow=-1;var i=!1;if(this.selectable&&this.selectedRows.length>0){i=N(t)&&N(e)&&t.length===e.length;for(var n=0;i&&n<t.length;n++)i=fn(bl(t[n]),bl(e[n]))}i||this.clearSelected()},selectable:function(t,e){this.clearSelected(),this.setSelectionHandlers(t)},selectMode:function(t,e){this.clearSelected()},selectedRows:function(t,e){var i=this;if(this.selectable&&!fn(t,e)){var n=[];t.forEach(function(t,e){t&&n.push(i.computedItems[e])}),this.$emit("row-selected",n)}}},beforeMount:function(){this.selectable&&this.setSelectionHandlers(!0)},methods:{isRowSelected:function(t){return Boolean(this.selectedRows[t])},selectableRowClasses:function(t){var e=this.isRowSelected(t),i=this.dark?"bg":"table",n=this.selectedVariant;return r({"b-table-row-selected":this.selectable&&e},"".concat(i,"-").concat(n),this.selectable&&e&&n)},selectableRowAttrs:function(t){return{"aria-selected":this.selectable?this.isRowSelected(t)?"true":"false":null}},clearSelected:function(){this.selectedRows.reduce(function(t,e){return t||e},!1)&&(this.selectedLastClicked=-1,this.selectedRows=[])},setSelectionHandlers:function(t){var e=t?"$on":"$off";this[e]("row-clicked",this.selectionHandler),this[e]("filtered",this.clearSelected),this[e]("context-changed",this.clearSelected)},selectionHandler:function(t,e,i){if(this.selectable){var n=this.selectedRows.slice(),o=!n[e],r=this.selectMode;if("single"===r)n=[];else if("range"===r)if(this.selectedLastRow>-1&&i.shiftKey){for(var s=Math.min(this.selectedLastRow,e);s<=Math.max(this.selectedLastRow,e);s++)n[s]=!0;o=!0}else i.ctrlKey||i.metaKey||(n=[],o=!0),this.selectedLastRow=o?e:-1;n[e]=o,this.selectedRows=n}else this.clearSelected()}}},Ll={mixins:[un],props:{items:{type:[Array,Function],default:function(){return[]}},noProviderPaging:{type:Boolean,default:!1},noProviderSorting:{type:Boolean,default:!1},noProviderFiltering:{type:Boolean,default:!1},apiUrl:{type:String,default:""}},computed:{hasProvider:function(){return Q(this.items)},providerTriggerContext:function(){var t={apiUrl:this.apiUrl,filter:null,sortBy:null,sortDesc:null,perPage:null,currentPage:null};return this.noProviderFiltering||(t.filter=this.localFilter),this.noProviderSorting||(t.sortBy=this.localSortBy,t.sortDesc=this.localSortDesc),this.noProviderPaging||(t.perPage=this.perPage,t.currentPage=this.currentPage),a({},t)}},watch:{items:function(t,e){(this.hasProvider||Q(t))&&this.$nextTick(this._providerUpdate)},providerTriggerContext:function(t,e){fn(t,e)||this.$nextTick(this._providerUpdate)}},mounted:function(){var t=this;!this.hasProvider||this.localItems&&0!==this.localItems.length||this._providerUpdate(),this.listenOnRoot("bv::refresh::table",function(e){e!==t.id&&e!==t||t.refresh()})},methods:{refresh:function(){this.$off("refreshed",this.refresh),this.computedBusy?this.localBusy&&this.hasProvider&&this.$on("refreshed",this.refresh):(this.clearSelected(),this.hasProvider?this.$nextTick(this._providerUpdate):this.localItems=N(this.items)?this.items.slice():[])},_providerSetLocal:function(t){this.localItems=N(t)?t.slice():[],this.localBusy=!1,this.$emit("refreshed"),this.id&&this.emitOnRoot("bv::table::refreshed",this.id)},_providerUpdate:function(){var t=this;this.hasProvider&&(this.computedBusy?this.$nextTick(this.refresh):(this.localBusy=!0,this.$nextTick(function(){try{var e=t.items(t.context,t._providerSetLocal);!J(i=e)&&Q(i.then)&&Q(i.catch)?e.then(function(e){t._providerSetLocal(e)}):N(e)?t._providerSetLocal(e):2!==t.items.length&&(O("b-table provider function didn't request callback and did not return a promise or data"),t.localBusy=!1)}catch(e){O("b-table provider function error [".concat(e.name,"] ").concat(e.message)),t.localBusy=!1,t.$off("refreshed",t.refresh)}var i})))}}},Hl={inheritAttrs:!1,props:{striped:{type:Boolean,default:!1},bordered:{type:Boolean,default:!1},borderless:{type:Boolean,default:!1},outlined:{type:Boolean,default:!1},dark:{type:Boolean,default:!1},hover:{type:Boolean,default:!1},small:{type:Boolean,default:!1},fixed:{type:Boolean,default:!1},responsive:{type:[Boolean,String],default:!1},stacked:{type:[Boolean,String],default:!1},tableClass:{type:[String,Array,Object],default:null}},computed:{isStacked:function(){return""===this.stacked||this.stacked},isResponsive:function(){var t=""===this.responsive||this.responsive;return!this.isStacked&&t},responsiveClass:function(){return!0===this.isResponsive?"table-responsive":this.isResponsive?"table-responsive-".concat(this.responsive):""},tableClasses:function(){return[this.tableClass,r({"table-striped":this.striped,"table-hover":this.hover&&this.computedItems.length>0&&!this.computedBusy,"table-dark":this.dark,"table-bordered":this.bordered,"table-borderless":this.borderless,"table-sm":this.small,border:this.outlined,"b-table-fixed":this.fixed,"b-table-stacked":!0===this.stacked||""===this.stacked},"b-table-stacked-".concat(this.stacked),!0!==this.stacked&&this.stacked),this.selectableTableClasses]},tableAttrs:function(){var t=[(this.$attrs||{})["aria-describedby"],this.captionId].filter(Boolean).join(" ")||null,e=this.computedItems,i=this.computedFields,n=this.selectableTableAttrs||{};return a({"aria-rowcount":this.filteredItems&&this.filteredItems.length>e.length?String(this.filteredItems.length):null},this.$attrs,{id:this.safeId(),role:this.isStacked?"table":null,"aria-busy":this.computedBusy?"true":"false","aria-colcount":String(i.length),"aria-describedby":t},n)}},render:function(t){var e=this.renderCaption?this.renderCaption():null,i=this.renderColgroup?this.renderColgroup():null,n=this.renderThead(),o=this.renderTfoot(),r=this.renderTbody(),s=t("table",{key:"b-table",staticClass:"table b-table",class:this.tableClasses,attrs:this.tableAttrs},[e,i,n,o,r].filter(Boolean));return this.isResponsive?t("div",{key:"b-table-responsive",class:this.responsiveClass},[s]):s}},Ml=ft({components:{BTable:t.extend({name:"BTable",mixins:[Qi,pe,vl,Hl,Ol,Il,El,Bl,Tl,kl,$l,Cl,Al,Fl,Nl,Vl,Dl,Ll]}),BTableLite:t.extend({name:"BTableLite",mixins:[Qi,pe,vl,Hl,Ol,Il,El,$l,Cl]})}}),Rl=q(Ys,["tabs","isNavBar"]),zl=function(t){return!t.disabled},jl=t.extend({name:"BTabButtonHelper",inject:{bvTabs:{default:function(){return{}}}},props:{tab:{default:null},tabs:{type:Array,default:function(){return[]}},id:{type:String,default:null},controls:{type:String,default:null},tabIndex:{type:Number,default:null},posInSet:{type:Number,default:null},setSize:{type:Number,default:null},noKeyNav:{type:Boolean,default:!1}},methods:{focus:function(){this.$refs&&this.$refs.link&&this.$refs.link.focus&&this.$refs.link.focus()},handleEvt:function(t){var e=function(){t.preventDefault(),t.stopPropagation()};if(!this.tab.disabled){var i=t.type,n=t.keyCode,o=t.shiftKey;"click"===i?(e(),this.$emit("click",t)):"keydown"!==i||this.noKeyNav||n!==ui?"keydown"!==i||this.noKeyNav||(n===fi||n===hi||n===gi?(e(),o||n===gi?this.$emit("first",t):this.$emit("prev",t)):n!==mi&&n!==pi&&n!==vi||(e(),o||n===vi?this.$emit("last",t):this.$emit("next",t))):(e(),this.$emit("click",t))}}},render:function(t){var e=t(Ve,{ref:"link",staticClass:"nav-link",class:[{active:this.tab.localActive&&!this.tab.disabled,disabled:this.tab.disabled},this.tab.titleLinkClass,this.tab.localActive?this.bvTabs.activeNavItemClass:null],props:{href:this.tab.href,disabled:this.tab.disabled},attrs:{role:"tab",id:this.id,tabindex:this.tabIndex,"aria-selected":this.tab.localActive&&!this.tab.disabled?"true":"false","aria-setsize":this.setSize,"aria-posinset":this.posInSet,"aria-controls":this.controls},on:{click:this.handleEvt,keydown:this.handleEvt}},[this.tab.normalizeSlot("title")||this.tab.title]);return t("li",{staticClass:"nav-item",class:[this.tab.titleItemClass],attrs:{role:"presentation"}},[e])}}),Gl=t.extend({name:"BTabs",mixins:[Qi,pe],provide:function(){return{bvTabs:this}},model:{prop:"value",event:"input"},props:a({},Rl,{tag:{type:String,default:"div"},card:{type:Boolean,default:!1},bottom:{type:Boolean,default:!1},end:{type:Boolean,default:!1},noFade:{type:Boolean,default:!1},noNavStyle:{type:Boolean,default:!1},noKeyNav:{type:Boolean,default:!1},lazy:{type:Boolean,default:!1},contentClass:{type:[String,Array,Object],default:null},navClass:{type:[String,Array,Object],default:null},navWrapperClass:{type:[String,Array,Object],default:null},activeNavItemClass:{type:[String,Array,Object],default:null},activeTabClass:{type:[String,Array,Object],default:null},value:{type:Number,default:null}}),data:function(){var t=parseInt(this.value,10);return{currentTab:t=isNaN(t)?-1:t,tabs:[],registeredTabs:[],isMounted:!1}},computed:{fade:function(){return!this.noFade},navStyle:function(){return this.pills?"pills":"tabs"},localNavClass:function(){var t=[];return this.card&&(this.vertical?t.push("card-header","h-100","border-bottom-0","rounded-0"):t.push("card-header-".concat(this.navStyle))),[].concat(t,[this.navClass])}},watch:{currentTab:function(t,e){var i=-1;this.tabs.forEach(function(e,n){t!==n||e.disabled?e.localActive=!1:(e.localActive=!0,i=n)}),this.$emit("input",i)},value:function(t,e){if(t!==e){t=parseInt(t,10),t=isNaN(t)?-1:t,e=parseInt(e,10)||0;var i=this.tabs;i[t]&&!i[t].disabled?this.currentTab=t:t<e?this.previousTab():this.nextTab()}},registeredTabs:function(t,e){var i=this;this.$nextTick(function(){It(function(){i.updateTabs()})})},tabs:function(t,e){var i=this;fn(t.map(function(t){return t._uid}),e.map(function(t){return t._uid}))||this.$nextTick(function(){i.$emit("changed",t.slice(),e.slice())})},isMounted:function(t,e){var i=this;t&&It(function(){i.updateTabs()}),this.setObserver(t)}},created:function(){var t=this,e=parseInt(this.value,10);this.currentTab=isNaN(e)?-1:e,this._bvObserver=null,this.$nextTick(function(){t.updateTabs()})},mounted:function(){var t=this;this.updateTabs(),this.$nextTick(function(){t.isMounted=!0})},deactivated:function(){this.isMounted=!1},activated:function(){var t=this,e=parseInt(this.value,10);this.currentTab=isNaN(e)?-1:e,this.$nextTick(function(){t.updateTabs(),t.isMounted=!0})},beforeDestroy:function(){this.isMounted=!1},destroyed:function(){this.tabs=[]},methods:{registerTab:function(t){var e=this;V(this.registeredTabs,t)||(this.registeredTabs.push(t),t.$once("hook:destroyed",function(){e.unregisterTab(t)}))},unregisterTab:function(t){this.registeredTabs=this.registeredTabs.slice().filter(function(e){return e!==t})},setObserver:function(t){if(t){this.setObserver(!1);var e=this;this._bvObserver=Ji(this.$refs.tabsContainer,function(){e.$nextTick(function(){It(function(){e.updateTabs()})})},{childList:!0,subtree:!1,attributes:!0,attributeFilter:["id"]})}else this._bvObserver&&this._bvObserver.disconnect&&this._bvObserver.disconnect(),this._bvObserver=null},getTabs:function(){var t=this.registeredTabs.filter(function(t){return 0===t.$children.filter(function(t){return t._isTab}).length}),e=[];if(this.isMounted&&t.length>0){var i=t.map(function(t){return"#".concat(t.safeId())}).join(", ");e=Mt(i,this.$el).map(function(t){return t.id}).filter(Boolean)}return wl(t,function(t,i){return e.indexOf(t.safeId())-e.indexOf(i.safeId())})},updateTabs:function(){var t=this.getTabs(),e=t.indexOf(t.slice().reverse().find(function(t){return t.localActive&&!t.disabled}));if(e<0){var i=this.currentTab;i>=t.length?e=t.indexOf(t.slice().reverse().find(zl)):t[i]&&!t[i].disabled&&(e=i)}e<0&&(e=t.indexOf(t.find(zl))),t.forEach(function(t,e){t.localActive=!1}),t[e]&&(t[e].localActive=!0),this.tabs=t,this.currentTab=e},getButtonForTab:function(t){return(this.$refs.buttons||[]).find(function(e){return e.tab===t})},updateButton:function(t){var e=this.getButtonForTab(t);e&&e.$forceUpdate&&e.$forceUpdate()},activateTab:function(t){var e=!1;if(t){var i=this.tabs.indexOf(t);!t.disabled&&i>-1&&(e=!0,this.currentTab=i)}return e||this.$emit("input",this.currentTab),e},deactivateTab:function(t){return!!t&&this.activateTab(this.tabs.filter(function(e){return e!==t}).find(zl))},focusButton:function(t){var e=this;this.$nextTick(function(){var i=e.getButtonForTab(t);i&&i.focus&&i.focus()})},emitTabClick:function(t,e){ot(e)&&t&&t.$emit&&!t.disabled&&t.$emit("click",e)},clickTab:function(t,e){this.activateTab(t),this.emitTabClick(t,e)},firstTab:function(t){var e=this.tabs.find(zl);this.activateTab(e)&&t&&(this.focusButton(e),this.emitTabClick(e,t))},previousTab:function(t){var e=Math.max(this.currentTab,0),i=this.tabs.slice(0,e).reverse().find(zl);this.activateTab(i)&&t&&(this.focusButton(i),this.emitTabClick(i,t))},nextTab:function(t){var e=Math.max(this.currentTab,-1),i=this.tabs.slice(e+1).find(zl);this.activateTab(i)&&t&&(this.focusButton(i),this.emitTabClick(i,t))},lastTab:function(t){var e=this.tabs.slice().reverse().find(zl);this.activateTab(e)&&t&&(this.focusButton(e),this.emitTabClick(e,t))}},render:function(t){var e=this,i=this.tabs,n=i.find(function(t){return t.localActive&&!t.disabled}),o=i.find(function(t){return!t.disabled}),r=i.map(function(r,s){var a=null;return e.noKeyNav||(a=-1,(n===r||!n&&o===r)&&(a=null)),t(jl,{key:r._uid||s,ref:"buttons",refInFor:!0,props:{tab:r,tabs:i,id:r.controlledBy||(e.tab&&e.tab.safeId?e.tab.safeId("_BV_tab_button_"):null),controls:e.tab&&e.tab.safeId?e.tab.safeId():null,tabIndex:a,setSize:i.length,posInSet:s+1,noKeyNav:e.noKeyNav},on:{click:function(t){e.clickTab(r,t)},first:e.firstTab,prev:e.previousTab,next:e.nextTab,last:e.lastTab}})}),s=t(Zs,{ref:"nav",class:this.localNavClass,attrs:{role:"tablist",id:this.safeId("_BV_tab_controls_")},props:{fill:this.fill,justified:this.justified,align:this.align,tabs:!this.noNavStyle&&!this.pills,pills:!this.noNavStyle&&this.pills,vertical:this.vertical,small:this.small}},[this.normalizeSlot("tabs-start")||t(!1),r,this.normalizeSlot("tabs-end")||this.normalizeSlot("tabs")||t(!1)]);s=t("div",{key:"bv-tabs-nav",class:[{"card-header":this.card&&!this.vertical&&!(this.end||this.bottom),"card-footer":this.card&&!this.vertical&&(this.end||this.bottom),"col-auto":this.vertical},this.navWrapperClass]},[s]);var a=t();i&&0!==i.length||(a=t("div",{key:"bv-empty-tab",class:["tab-pane","active",{"card-body":this.card}]},this.normalizeSlot("empty")));var l=t("div",{ref:"tabsContainer",key:"bv-tabs-container",staticClass:"tab-content",class:[{col:this.vertical},this.contentClass],attrs:{id:this.safeId("_BV_tab_container_")}},D(this.normalizeSlot("default"),a));return t(this.tag,{staticClass:"tabs",class:{row:this.vertical,"no-gutters":this.vertical&&this.card},attrs:{id:this.safeId()}},[this.end||this.bottom?l:t(),[s],this.end||this.bottom?t():l])}}),Wl='Setting prop "href" is deprecated. Use the <b-nav> component instead.',Ul=ft({components:{BTabs:Gl,BTab:t.extend({name:"BTab",mixins:[Qi,pe],inject:{bvTabs:{default:function(){return{noKeyNav:!0}}}},props:{active:{type:Boolean,default:!1},tag:{type:String,default:"div"},buttonId:{type:String,default:""},title:{type:String,default:""},titleItemClass:{type:[String,Array,Object],default:null},titleLinkClass:{type:[String,Array,Object],default:null},headHtml:{type:String,default:null},disabled:{type:Boolean,default:!1},noBody:{type:Boolean,default:!1},href:{type:String,default:"#",deprecated:Wl},lazy:{type:Boolean,default:!1}},data:function(){return{localActive:this.active&&!this.disabled,show:!1}},computed:{tabClasses:function(){return[{active:this.localActive,disabled:this.disabled,"card-body":this.bvTabs.card&&!this.noBody},this.localActive?this.bvTabs.activeTabClass:null]},controlledBy:function(){return this.buttonId||this.safeId("__BV_tab_button__")},computedNoFade:function(){return!this.bvTabs.fade},computedLazy:function(){return this.bvTabs.lazy||this.lazy},_isTab:function(){return!0}},watch:{localActive:function(t,e){this.$emit("update:active",t)},active:function(t,e){t!==e&&(t?this.activate():this.deactivate()||this.$emit("update:active",this.localActive))},disabled:function(t,e){t!==e&&t&&this.localActive&&this.bvTabs.firstTab&&(this.localActive=!1,this.bvTabs.firstTab())}},mounted:function(){this.registerTab(),this.show=this.localActive,this.href&&"#"!==this.href&&O("b-tab: ".concat(Wl))},updated:function(){this.hasNormalizedSlot("title")&&this.bvTabs.updateButton&&this.bvTabs.updateButton(this)},destroyed:function(){this.unregisterTab()},methods:{registerTab:function(){this.bvTabs.registerTab&&this.bvTabs.registerTab(this)},unregisterTab:function(){this.bvTabs.unregisterTab&&this.bvTabs.unregisterTab(this)},activate:function(){return!(!this.bvTabs.activateTab||this.disabled)&&this.bvTabs.activateTab(this)},deactivate:function(){return!(!this.bvTabs.deactivateTab||!this.localActive)&&this.bvTabs.deactivateTab(this)}},render:function(t){var e=t(this.tag,{ref:"panel",staticClass:"tab-pane",class:this.tabClasses,directives:[{name:"show",rawName:"v-show",value:this.localActive,expression:"localActive"}],attrs:{role:"tabpanel",id:this.safeId(),tabindex:this.localActive&&!this.bvTabs.noKeyNav?"-1":null,"aria-hidden":this.localActive?"false":"true","aria-labelledby":this.controlledBy||null}},[this.localActive||!this.computedLazy?this.normalizeSlot("default"):t()]);return t(de,{props:{mode:"out-in",noFade:this.computedNoFade}},[e])}})}});function ql(t){return(ql="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Kl(t){return function(t){if(Array.isArray(t)){for(var e=0,i=new Array(t.length);e<t.length;e++)i[e]=t[e];return i}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var Xl="undefined"!=typeof window;function Yl(t,e){return e.reduce(function(e,i){return t.hasOwnProperty(i)&&(e[i]=t[i]),e},{})}var Zl,Jl={},Ql={},tu={},eu=new(t.extend({data:function(){return{transports:Jl,targets:Ql,sources:tu,trackInstances:Xl}},methods:{open:function(e){if(Xl){var i=e.to,n=e.from,o=e.passengers,r=e.order,s=void 0===r?1/0:r;if(i&&n&&o){var a,l={to:i,from:n,passengers:(a=o,Array.isArray(a)||"object"===ql(a)?Object.freeze(a):a),order:s};-1===Object.keys(this.transports).indexOf(i)&&t.set(this.transports,i,[]);var u,c=this.$_getTransportIndex(l),d=this.transports[i].slice(0);-1===c?d.push(l):d[c]=l,this.transports[i]=(u=function(t,e){return t.order-e.order},d.map(function(t,e){return[e,t]}).sort(function(t,e){return u(t[1],e[1])||t[0]-e[0]}).map(function(t){return t[1]}))}}},close:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=t.to,n=t.from;if(i&&n&&this.transports[i])if(e)this.transports[i]=[];else{var o=this.$_getTransportIndex(t);if(o>=0){var r=this.transports[i].slice(0);r.splice(o,1),this.transports[i]=r}}},registerTarget:function(t,e,i){Xl&&(this.trackInstances&&!i&&this.targets[t]&&console.warn("[portal-vue]: Target ".concat(t," already exists")),this.$set(this.targets,t,Object.freeze([e])))},unregisterTarget:function(t){this.$delete(this.targets,t)},registerSource:function(t,e,i){Xl&&(this.trackInstances&&!i&&this.sources[t]&&console.warn("[portal-vue]: source ".concat(t," already exists")),this.$set(this.sources,t,Object.freeze([e])))},unregisterSource:function(t){this.$delete(this.sources,t)},hasTarget:function(t){return!(!this.targets[t]||!this.targets[t][0])},hasSource:function(t){return!(!this.sources[t]||!this.sources[t][0])},hasContentFor:function(t){return!!this.transports[t]&&!!this.transports[t].length},$_getTransportIndex:function(t){var e=t.to,i=t.from;for(var n in this.transports[e])if(this.transports[e][n].from===i)return+n;return-1}}}))(Jl),iu=1,nu=t.extend({name:"portal",props:{disabled:{type:Boolean},name:{type:String,default:function(){return String(iu++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}}},created:function(){var t=this;this.$nextTick(function(){eu.registerSource(t.name,t)})},mounted:function(){this.disabled||this.sendUpdate()},updated:function(){this.disabled?this.clear():this.sendUpdate()},beforeDestroy:function(){eu.unregisterSource(this.name),this.clear()},watch:{to:function(t,e){e&&e!==t&&this.clear(e),this.sendUpdate()}},methods:{clear:function(t){var e={from:this.name,to:t||this.to};eu.close(e)},normalizeSlots:function(){return this.$scopedSlots.default?[this.$scopedSlots.default]:this.$slots.default},normalizeOwnChildren:function(t){return"function"==typeof t?t(this.slotProps):t},sendUpdate:function(){var t=this.normalizeSlots();if(t){var e={from:this.name,to:this.to,passengers:Kl(t),order:this.order};eu.open(e)}else this.clear()}},render:function(t){var e=this.$slots.default||this.$scopedSlots.default||[],i=this.tag;return e&&this.disabled?e.length<=1&&this.slim?this.normalizeOwnChildren(e)[0]:t(i,[this.normalizeOwnChildren(e)]):this.slim?t():t(i,{class:{"v-portal":!0},style:{display:"none"},key:"v-portal-placeholder"})}}),ou=t.extend({name:"portalTarget",props:{multiple:{type:Boolean,default:!1},name:{type:String,required:!0},slim:{type:Boolean,default:!1},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},data:function(){return{transports:eu.transports,firstRender:!0}},created:function(){var t=this;this.$nextTick(function(){eu.registerTarget(t.name,t)})},watch:{ownTransports:function(){this.$emit("change",this.children().length>0)},name:function(t,e){eu.unregisterTarget(e),eu.registerTarget(t,this)}},mounted:function(){var t=this;this.transition&&this.$nextTick(function(){t.firstRender=!1})},beforeDestroy:function(){eu.unregisterTarget(this.name)},computed:{ownTransports:function(){var t=this.transports[this.name]||[];return this.multiple?t:0===t.length?[]:[t[t.length-1]]},passengers:function(){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.reduce(function(t,i){var n=i.passengers[0],o="function"==typeof n?n(e):i.passengers;return t.concat(o)},[])}(this.ownTransports,this.slotProps)}},methods:{children:function(){return 0!==this.passengers.length?this.passengers:this.$scopedSlots.default?this.$scopedSlots.default(this.slotProps):this.$slots.default||[]},noWrapper:function(){var t=this.slim&&!this.transition;return t&&this.children().length>1&&console.warn("[portal-vue]: PortalTarget with `slim` option received more than one child element."),t}},render:function(t){var e=this.noWrapper(),i=this.children(),n=this.transition||this.tag;return e?i[0]:this.slim&&!n?t():t(n,{props:{tag:this.transition&&this.tag?this.tag:void 0},class:{"vue-portal-target":!0}},i)}}),ru=0,su=["disabled","name","order","slim","slotProps","tag","to"],au=["multiple","transition"],lu=(t.extend({name:"MountingPortal",inheritAttrs:!1,props:{append:{type:[Boolean,String]},bail:{type:Boolean},mountTo:{type:String,required:!0},disabled:{type:Boolean},name:{type:String,default:function(){return"mounted_"+String(ru++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}},multiple:{type:Boolean,default:!1},targetSlim:{type:Boolean},targetSlotProps:{type:Object,default:function(){return{}}},targetTag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},created:function(){if("undefined"!=typeof document){var t=document.querySelector(this.mountTo);if(t){var e=this.$props;if(eu.targets[e.name])e.bail?console.warn("[portal-vue]: Target ".concat(e.name," is already mounted.\n        Aborting because 'bail: true' is set")):this.portalTarget=eu.targets[e.name];else{var i=e.append;if(i){var n="string"==typeof i?i:"DIV",o=document.createElement(n);t.appendChild(o),t=o}var r=Yl(this.$props,au);r.slim=this.targetSlim,r.tag=this.targetTag,r.slotProps=this.targetSlotProps,r.name=this.to,this.portalTarget=new ou({el:t,parent:this.$parent||this,propsData:r})}}else console.error("[portal-vue]: Mount Point '".concat(this.mountTo,"' not found in document"))}},beforeDestroy:function(){var t=this.portalTarget;if(this.append){var e=t.$el;e.parentNode.removeChild(e)}t.$destroy()},render:function(t){if(!this.portalTarget)return console.warn("[portal-vue] Target wasn't mounted"),t();if(!this.$scopedSlots.manual){var e=Yl(this.$props,su);return t(nu,{props:e,attrs:this.$attrs,on:this.$listeners,scopedSlots:this.$scopedSlots},this.$slots.default)}var i=this.$scopedSlots.manual({to:this.to});return Array.isArray(i)&&(i=i[0]),i||t()}}),{name:{type:String,required:!0},ariaLive:{type:String,default:function(){return wt("BToaster","ariaLive")}},ariaAtomic:{type:String,default:function(){return wt("BToaster","ariaAtomic")}},role:{type:String,default:function(){return wt("BToaster","role")}}}),uu=t.extend({data:function(){return{name:"b-toaster"}},methods:{onAfterEnter:function(t){var e=this;It(function(){qt(t,"".concat(e.name,"-enter-to"))})}},render:function(t){return t("transition-group",{props:{tag:"div",name:this.name},on:{afterEnter:this.onAfterEnter}},this.$slots.default)}}),cu=t.extend({name:"BToaster",props:lu,data:function(){return{doRender:!1,dead:!1,staticName:this.name}},beforeMount:function(){var t=this;this.staticName=this.name,eu.hasTarget(this.staticName)?(O("b-toaster: A <portal-target> with name '".concat(this.name,"' already exists in the document.")),this.dead=!0):(this.doRender=!0,this.$once("hook:beforeDestroy",function(){t.$root.$emit("bv::toaster::destroyed",t.staticName)}))},destroyed:function(){this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)},render:function(t){var e=t("div",{class:["d-none",{"b-dead-toaster":this.dead}]});if(this.doRender){var i=t(ou,{staticClass:"b-toaster-slot",props:{name:this.staticName,multiple:!0,tag:"div",slim:!1,transition:uu}});e=t("div",{staticClass:"b-toaster",class:[this.staticName],attrs:{id:this.staticName,role:this.role||null,"aria-live":this.ariaLive,"aria-atomic":this.ariaAtomic}},[i])}return e}}),du={passive:!0,capture:!1},hu={id:{type:String,default:null},title:{type:String,default:null},toaster:{type:String,default:function(){return wt("BToast","toaster")}},visible:{type:Boolean,default:!1},variant:{type:String,default:function(){return wt("BToast","variant")}},isStatus:{type:Boolean,default:!1},appendToast:{type:Boolean,default:!1},noAutoHide:{type:Boolean,default:!1},autoHideDelay:{type:[Number,String],default:function(){return wt("BToast","autoHideDelay")}},noCloseButton:{type:Boolean,default:!1},noFade:{type:Boolean,default:!1},noHoverPause:{type:Boolean,default:!1},solid:{type:Boolean,default:!1},toastClass:{type:[String,Object,Array],default:function(){return wt("BToast","toastClass")}},headerClass:{type:[String,Object,Array],default:function(){return wt("BToast","headerClass")}},bodyClass:{type:[String,Object,Array],default:function(){return wt("BToast","bodyClass")}},href:{type:String,default:null},to:{type:[String,Object],default:null},static:{type:Boolean,default:!1}},fu=t.extend({name:"BToast",mixins:[Qi,un,pe],inheritAttrs:!1,model:{prop:"visible",event:"change"},props:hu,data:function(){return{isMounted:!1,doRender:!1,localShow:!1,isTransitioning:!1,isHiding:!1,order:0,timer:null,dismissStarted:0,resumeDismiss:0}},computed:{bToastClasses:function(){return r({"b-toast-solid":this.solid,"b-toast-append":this.appendToast,"b-toast-prepend":!this.appendToast},"b-toast-".concat(this.variant),this.variant)},slotScope:function(){return{hide:this.hide}},computedDuration:function(){return Math.max(parseInt(this.autoHideDelay,10)||0,1e3)},computedToaster:function(){return String(this.toaster)},transitionHandlers:function(){return{beforeEnter:this.onBeforeEnter,afterEnter:this.onAfterEnter,beforeLeave:this.onBeforeLeave,afterLeave:this.onAfterLeave}}},watch:{visible:function(t){t?this.show():this.hide()},localShow:function(t){t!==this.visible&&this.$emit("change",t)},toaster:function(t){var e=this;this.$nextTick(function(){return e.ensureToaster})},static:function(t){t&&this.localShow&&this.ensureToaster()}},mounted:function(){var t=this;this.isMounted=!0,this.$nextTick(function(){t.visible&&It(function(){t.show()})}),this.listenOnRoot("bv::show::toast",function(e){e===t.safeId()&&t.show()}),this.listenOnRoot("bv::hide::toast",function(e){e&&e!==t.safeId()||t.hide()}),this.listenOnRoot("bv::toaster::destroyed",function(e){e===t.computedToaster&&t.hide()})},beforeDestroy:function(){this.clearDismissTimer()},methods:{show:function(){var t=this;if(!this.localShow){this.ensureToaster();var e=this.buildEvent("show");this.emitEvent(e),this.dismissStarted=this.resumeDismiss=0,this.order=Date.now()*(this.appendToast?1:-1),this.isHiding=!1,this.doRender=!0,this.$nextTick(function(){It(function(){t.localShow=!0})})}},hide:function(){var t=this;if(this.localShow){var e=this.buildEvent("hide");this.emitEvent(e),this.setHoverHandler(!1),this.dismissStarted=this.resumeDismiss=0,this.clearDismissTimer(),this.isHiding=!0,It(function(){t.localShow=!1})}},buildEvent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new $o(t,a({cancelable:!1,target:this.$el||null,relatedTarget:null},e,{vueTarget:this,componentId:this.safeId()}))},emitEvent:function(t){var e=t.type;this.$root.$emit("bv::toast:".concat(e),t),this.$emit(e,t)},ensureToaster:function(){if(!this.static&&!eu.hasTarget(this.computedToaster)){var t=document.createElement("div");document.body.appendChild(t),new cu({parent:this.$root,propsData:{name:this.computedToaster}}).$mount(t)}},startDismissTimer:function(){this.clearDismissTimer(),this.noAutoHide||(this.timer=setTimeout(this.hide,this.resumeDismiss||this.computedDuration),this.dismissStarted=Date.now(),this.resumeDismiss=0)},clearDismissTimer:function(){clearTimeout(this.timer),this.timer=null},setHoverHandler:function(t){var e=t?Nt:Vt,i=this.$refs["b-toast"];e(i,"mouseenter",this.onPause,du),e(i,"mouseleave",this.onUnPause,du)},onPause:function(t){if(!this.noAutoHide&&!this.noHoverPause&&this.timer&&!this.resumeDismiss){var e=Date.now()-this.dismissStarted;e>0&&(this.clearDismissTimer(),this.resumeDismiss=Math.max(this.computedDuration-e,1e3))}},onUnPause:function(t){this.noAutoHide||this.noHoverPause||!this.resumeDismiss?this.resumeDismiss=this.dismissStarted=0:this.startDismissTimer()},onLinkClick:function(){var t=this;this.$nextTick(function(){It(function(){t.hide()})})},onBeforeEnter:function(){this.isTransitioning=!0},onAfterEnter:function(){this.isTransitioning=!1;var t=this.buildEvent("shown");this.emitEvent(t),this.startDismissTimer(),this.setHoverHandler(!0)},onBeforeLeave:function(){this.isTransitioning=!0},onAfterLeave:function(){this.isTransitioning=!1,this.order=0,this.resumeDismiss=this.dismissStarted=0;var t=this.buildEvent("hidden");this.emitEvent(t),this.doRender=!1},makeToast:function(t){var e=this,i=[],n=this.normalizeSlot("toast-title",this.slotScope);n?i.push(n):this.title&&i.push(t("strong",{staticClass:"mr-2"},this.title)),this.noCloseButton||i.push(t(ve,{staticClass:"ml-auto mb-1",on:{click:function(t){e.hide()}}}));var o=t();i.length>0&&(o=t("header",{staticClass:"toast-header",class:this.headerClass},i));var r=this.href||this.to,s=t(r?Ve:"div",{staticClass:"toast-body",class:this.bodyClass,props:r?{to:this.to,href:this.href}:{},on:r?{click:this.onLinkClick}:{}},[this.normalizeSlot("default",this.slotScope)||t()]);return t("div",{key:"toast-".concat(this._uid),ref:"toast",staticClass:"toast",class:this.toastClass,attrs:a({},this.$attrs,{tabindex:"0",id:this.safeId()})},[o,s])}},render:function(t){if(!this.doRender||!this.isMounted)return t();var e="b-toast-".concat(this._uid);return t(nu,{props:{name:e,to:this.computedToaster,order:this.order,slim:!0,disabled:this.static}},[t("div",{key:e,ref:"b-toast",staticClass:"b-toast",class:this.bToastClasses,attrs:{id:this.safeId("_toast_outer"),role:this.isHiding?null:this.isStatus?"status":"alert","aria-live":this.isHiding?null:this.isStatus?"polite":"assertive","aria-atomic":this.isHiding?null:"true"}},[t(de,{props:{noFade:this.noFade},on:this.transitionHandlers},[this.localShow?this.makeToast(t):t()])])])}}),pu=["id"].concat(p(H(q(hu,["static","visible"])))),mu={toastContent:"default",title:"toast-title"},gu=function(t){return pu.reduce(function(e,i){return Y(t[i])||(e[i]=t[i]),e},{})},vu=ft({components:{BToast:fu,BToaster:cu},plugins:{BVToastPlugin:ft({plugins:{plugin:function(t){var e=t.extend({name:"BToastPop",extends:fu,destroyed:function(){this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)},mounted:function(){var t=this,e=function(){t.localShow=!1,t.doRender=!1,t.$nextTick(function(){t.$nextTick(function(){It(function(){t.$destroy()})})})};this.$parent.$once("hook:destroyed",e),this.$once("hidden",e),this.listenOnRoot("bv::toaster::destroyed",function(i){i===t.toaster&&e()})}}),n=function(t,i){if(!I("$bvToast")){var n=new e({parent:i,propsData:a({},gu(wt("BToast")||{}),{},q(t,H(mu)),{static:!1,visible:!0})});H(mu).forEach(function(e){var o=t[e];Y(o)||("title"===e&&et(o)&&(o=[i.$createElement("strong",{class:"mr-2"},o)]),n.$slots[mu[e]]=D(o))});var o=document.createElement("div");document.body.appendChild(o),n.$mount(o)}},r=function(){function t(e){i(this,t),A(this,{_vm:e,_root:e.$root}),M(this,{_vm:K(),_root:K()})}return o(t,[{key:"toast",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t&&!I("$bvToast")&&n(a({},gu(e),{toastContent:t}),this._vm)}},{key:"show",value:function(t){t&&this._root.$emit("bv::show::toast",t)}},{key:"hide",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this._root.$emit("bv::hide::toast",t)}}]),t}();t.mixin({beforeCreate:function(){this._bv__toast=new r(this)}}),t.prototype.hasOwnProperty("$bvToast")||R(t.prototype,"$bvToast",{get:function(){return this&&this._bv__toast||O("'".concat("$bvToast","' must be accessed from a Vue instance 'this' context")),this._bv__toast}})}}})}}),bu="BTooltip",yu=t.extend({name:bu,mixins:[Xa,pe],props:{title:{type:String,default:""},triggers:{type:[String,Array],default:"hover focus"},placement:{type:String,default:"top"},fallbackPlacement:{type:[String,Array],default:"flip",validator:function(t){return N(t)||V(["flip","clockwise","counterclockwise"],t)}},variant:{type:String,default:function(){return wt(bu,"variant")}},customClass:{type:String,default:function(){return wt(bu,"customClass")}},delay:{type:[Number,Object,String],default:function(){return wt(bu,"delay")}},boundary:{type:[String,Cn],default:function(){return wt(bu,"boundary")}},boundaryPadding:{type:Number,default:function(){return wt(bu,"boundaryPadding")}}},methods:{createToolpop:function(){var t=this.getTarget();return t?this._toolpop=new Ha(t,this.getConfig(),this):(this._toolpop=null,O("b-tooltip: 'target' element not found!")),this._toolpop}},render:function(t){return t("div",{class:["d-none"],style:{display:"none"},attrs:{"aria-hidden":!0}},[t("div",{ref:"title"},this.normalizeSlot("default"))])}}),Su="__BV_ToolTip__",Bu={focus:!0,hover:!0,click:!0,blur:!0},wu=/^html$/,Tu=/^nofade$/i,ku=/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/,$u=/^(window|viewport|scrollParent)$/,Cu=/^d\d+$/,xu=/^o-?\d+$/,_u=/^v-.+$/,Pu=function(t,e,i){if(w)if(ko){var n=function(t){var e="BTooltip",i={delay:wt(e,"delay"),boundary:String(wt(e,"boundary")),boundaryPadding:parseInt(wt(e,"boundaryPadding"),10)||0,variant:wt(e,"variant"),customClass:wt(e,"customClass")};et(t.value)?i.title=t.value:Q(t.value)?i.title=t.value:W(t.value)&&(i=a({},i,{},t.value)),t.arg&&(i.container="#".concat(t.arg)),H(t.modifiers).forEach(function(t){if(wu.test(t))i.html=!0;else if(Tu.test(t))i.animation=!1;else if(ku.test(t))i.placement=t;else if($u.test(t))i.boundary=t;else if(Cu.test(t)){var e=parseInt(t.slice(1),10)||0;e&&(i.delay=e)}else if(xu.test(t)){var n=parseInt(t.slice(1),10)||0;n&&(i.offset=n)}else _u.test(t)&&(i.variant=t.slice(2)||null)});var n={};return(et(i.trigger)?i.trigger.trim().split(/\s+/):[]).forEach(function(t){Bu[t]&&(n[t]=!0)}),H(Bu).forEach(function(e){t.modifiers[e]&&(n[e]=!0)}),i.trigger=H(n).join(" "),"blur"===i.trigger&&(i.trigger="focus"),i.trigger||delete i.trigger,i}(e);t[Su]?t[Su].updateConfig(n):t[Su]=new Ha(t,n,i.context)}else O("v-b-tooltip: Popper.js is required for ToolTips to work")},Ou={bind:function(t,e,i){Pu(t,e,i)},inserted:function(t,e,i){Pu(t,e,i)},update:function(t,e,i){e.value!==e.oldValue&&Pu(t,e,i)},componentUpdated:function(t,e,i){e.value!==e.oldValue&&Pu(t,e,i)},unbind:function(t){!function(t){t[Su]&&(t[Su].destroy(),t[Su]=null,delete t[Su])}(t)}},Iu=ft({plugins:{AlertPlugin:Be,BadgePlugin:Le,BreadcrumbPlugin:Ue,ButtonPlugin:ri,ButtonGroupPlugin:li,ButtonToolbarPlugin:Si,CardPlugin:Yi,CarouselPlugin:ln,CollapsePlugin:$n,DropdownPlugin:Qo,EmbedPlugin:er,FormPlugin:hr,FormGroupPlugin:Cr,FormCheckboxPlugin:Dr,FormRadioPlugin:Hr,FormInputPlugin:Wr,FormTextareaPlugin:qr,FormFilePlugin:Zr,FormSelectPlugin:Qr,ImagePlugin:ts,InputGroupPlugin:ls,JumbotronPlugin:fs,LayoutPlugin:gs,LinkPlugin:vs,ListGroupPlugin:Ts,MediaPlugin:Ps,ModalPlugin:Xs,NavPlugin:sa,NavbarPlugin:ma,PaginationPlugin:wa,PaginationNavPlugin:ka,PopoverPlugin:ul,ProgressPlugin:dl,SpinnerPlugin:hl,TablePlugin:Ml,TabsPlugin:Ul,ToastPlugin:vu,TooltipPlugin:ft({components:{BTooltip:yu},directives:{VBTooltip:Ou}})}}),Eu=ft({directives:{VBModal:Gs}}),Fu=ft({directives:{VBPopover:ll}}),Nu={element:"body",offset:10,method:"auto",throttle:75},Vu={element:"(string|element|component)",offset:"number",method:"string",throttle:"number"},Du="dropdown-item",Au="active",Lu={ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown, .dropup",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},Hu="offset",Mu="position",Ru=/^.*(#[^#]+)$/,zu=["webkitTransitionEnd","transitionend","otransitionend","oTransitionEnd"],ju={passive:!0,capture:!1},Gu=function(t){return function(t){return Object.prototype.toString.call(t)}(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()},Wu=function(){function t(e,n,o){i(this,t),this.$el=e,this.$scroller=null,this.$selector=[Lu.NAV_LINKS,Lu.LIST_ITEMS,Lu.DROPDOWN_ITEMS].join(","),this.$offsets=[],this.$targets=[],this.$activeTarget=null,this.$scrollHeight=0,this.$resizeTimeout=null,this.$obs_scroller=null,this.$obs_targets=null,this.$root=o||null,this.$config=null,this.updateConfig(n)}return o(t,[{key:"updateConfig",value:function(t,e){this.$scroller&&(this.unlisten(),this.$scroller=null);var i=a({},this.constructor.Default,{},t);if(e&&(this.$root=e),function(t,e,i){for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n)){var o=i[n],r=e[n],s=r&&Dt(r)?"element":Gu(r);s=r&&r._isVue?"component":s,new RegExp(o).test(s)||O("".concat(t,': Option "').concat(n,'" provided type "').concat(s,'" but expected type "').concat(o,'"'))}}(this.constructor.Name,i,this.constructor.DefaultType),this.$config=i,this.$root){var n=this;this.$root.$nextTick(function(){n.listen()})}else this.listen()}},{key:"dispose",value:function(){this.unlisten(),clearTimeout(this.$resizeTimeout),this.$resizeTimeout=null,this.$el=null,this.$config=null,this.$scroller=null,this.$selector=null,this.$offsets=null,this.$targets=null,this.$activeTarget=null,this.$scrollHeight=null}},{key:"listen",value:function(){var t=this,e=this.getScroller();e&&"BODY"!==e.tagName&&Nt(e,"scroll",this,ju),Nt(window,"scroll",this,ju),Nt(window,"resize",this,ju),Nt(window,"orientationchange",this,ju),zu.forEach(function(e){Nt(window,e,t,ju)}),this.setObservers(!0),this.handleEvent("refresh")}},{key:"unlisten",value:function(){var t=this,e=this.getScroller();this.setObservers(!1),e&&"BODY"!==e.tagName&&Vt(e,"scroll",this,ju),Vt(window,"scroll",this,ju),Vt(window,"resize",this,ju),Vt(window,"orientationchange",this,ju),zu.forEach(function(e){Vt(window,e,t,ju)})}},{key:"setObservers",value:function(t){var e=this;this.$obs_scroller&&(this.$obs_scroller.disconnect(),this.$obs_scroller=null),this.$obs_targets&&(this.$obs_targets.disconnect(),this.$obs_targets=null),t&&(this.$obs_targets=Ji(this.$el,function(){e.handleEvent("mutation")},{subtree:!0,childList:!0,attributes:!0,attributeFilter:["href"]}),this.$obs_scroller=Ji(this.getScroller(),function(){e.handleEvent("mutation")},{subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:["id","style","class"]}))}},{key:"handleEvent",value:function(t){var e=et(t)?t:t.type,i=this;"scroll"===e?(this.$obs_scroller||this.listen(),this.process()):/(resize|orientationchange|mutation|refresh)/.test(e)&&(i.$resizeTimeout||(i.$resizeTimeout=setTimeout(function(){i.refresh(),i.process(),i.$resizeTimeout=null},i.$config.throttle)))}},{key:"refresh",value:function(){var t=this,e=this.getScroller();if(e){var i=e!==e.window?Mu:Hu,n="auto"===this.$config.method?i:this.$config.method,o=n===Mu?ne:ie,r=n===Mu?this.getScrollTop():0;return this.$offsets=[],this.$targets=[],this.$scrollHeight=this.getScrollHeight(),Mt(this.$selector,this.$el).map(function(t){return Zt(t,"href")}).filter(function(t){return t&&Ru.test(t||"")}).map(function(t){var i=t.replace(Ru,"$1").trim();if(!i)return null;var n=Rt(i,e);return n&&At(n)?{offset:parseInt(o(n).top,10)+r,target:i}:null}).filter(Boolean).sort(function(t,e){return t.offset-e.offset}).reduce(function(e,i){return e[i.target]||(t.$offsets.push(i.offset),t.$targets.push(i.target),e[i.target]=!0),e},{}),this}}},{key:"process",value:function(){var t=this.getScrollTop()+this.$config.offset,e=this.getScrollHeight(),i=this.$config.offset+e-this.getOffsetHeight();if(this.$scrollHeight!==e&&this.refresh(),t>=i){var n=this.$targets[this.$targets.length-1];this.$activeTarget!==n&&this.activate(n)}else{if(this.$activeTarget&&t<this.$offsets[0]&&this.$offsets[0]>0)return this.$activeTarget=null,void this.clear();for(var o=this.$offsets.length;o--;){this.$activeTarget!==this.$targets[o]&&t>=this.$offsets[o]&&(Y(this.$offsets[o+1])||t<this.$offsets[o+1])&&this.activate(this.$targets[o])}}}},{key:"getScroller",value:function(){if(this.$scroller)return this.$scroller;var t=this.$config.element;return t?(Dt(t.$el)?t=t.$el:et(t)&&(t=Rt(t)),t?(this.$scroller="BODY"===t.tagName?window:t,this.$scroller):null):null}},{key:"getScrollTop",value:function(){var t=this.getScroller();return t===window?t.pageYOffset:t.scrollTop}},{key:"getScrollHeight",value:function(){return this.getScroller().scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}},{key:"getOffsetHeight",value:function(){var t=this.getScroller();return t===window?window.innerHeight:Qt(t).height}},{key:"activate",value:function(t){var e=this;this.$activeTarget=t,this.clear();var i=Mt(this.$selector.split(",").map(function(e){return"".concat(e,'[href$="').concat(t,'"]')}).join(","),this.$el);i.forEach(function(t){if(Kt(t,Du)){var i=jt(Lu.DROPDOWN,t);i&&e.setActiveState(Rt(Lu.DROPDOWN_TOGGLE,i),!0),e.setActiveState(t,!0)}else{e.setActiveState(t,!0),zt(t.parentElement,Lu.NAV_ITEMS)&&e.setActiveState(t.parentElement,!0);for(var n=t;n;){var o=(n=jt(Lu.NAV_LIST_GROUP,n))?n.previousElementSibling:null;o&&zt(o,"".concat(Lu.NAV_LINKS,", ").concat(Lu.LIST_ITEMS))&&e.setActiveState(o,!0),o&&zt(o,Lu.NAV_ITEMS)&&(e.setActiveState(Rt(Lu.NAV_LINKS,o),!0),e.setActiveState(o,!0))}}}),i&&i.length>0&&this.$root&&this.$root.$emit("bv::scrollspy::activate",t,i)}},{key:"clear",value:function(){var t=this;Mt("".concat(this.$selector,", ").concat(Lu.NAV_ITEMS),this.$el).filter(function(t){return Kt(t,Au)}).forEach(function(e){return t.setActiveState(e,!1)})}},{key:"setActiveState",value:function(t,e){t&&(e?Ut(t,Au):qt(t,Au))}}],[{key:"Name",get:function(){return"v-b-scrollspy"}},{key:"Default",get:function(){return Nu}},{key:"DefaultType",get:function(){return Vu}}]),t}(),Uu="__BV_ScrollSpy__",qu=function(t,e,i){if(w){var n=function(t){var e={};return t.arg&&(e.element="#".concat(t.arg)),H(t.modifiers).forEach(function(t){/^\d+$/.test(t)?e.offset=parseInt(t,10):/^(auto|position|offset)$/.test(t)&&(e.method=t)}),et(t.value)?e.element=t.value:it(t.value)?e.offset=Math.round(t.value):W(t.value)&&H(t.value).filter(function(t){return Boolean(Wu.DefaultType[t])}).forEach(function(i){e[i]=t.value[i]}),e}(e);t[Uu]?t[Uu].updateConfig(n,i.context.$root):t[Uu]=new Wu(t,n,i.context.$root)}},Ku={install:ht({plugins:{componentsPlugin:Iu,directivesPlugin:ft({plugins:{VBModalPlugin:Eu,VBPopoverPlugin:Fu,VBScrollspyPlugin:ft({directives:{VBScrollspy:{bind:function(t,e,i){qu(t,e,i)},inserted:function(t,e,i){qu(t,e,i)},update:function(t,e,i){e.value!==e.oldValue&&qu(t,e,i)},componentUpdated:function(t,e,i){e.value!==e.oldValue&&qu(t,e,i)},unbind:function(t){!function(t){t[Uu]&&(t[Uu].dispose(),t[Uu]=null,delete t[Uu])}(t)}}}}),VBTogglePlugin:ft({directives:{VBToggle:kn}}),VBTooltipPlugin:ft({directives:{VBTooltip:Ou}})}})}}),setConfig:ct};return Zl=Ku,v&&window.Vue&&window.Vue.use(Zl),Ku});
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.min.js-11-//# sourceMappingURL=bootstrap-vue.min.js.map
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/bootstrap-vue/bootstrap-vue.min.js.map:1:{"version":3,"sources":["../src/utils/env.js","../src/utils/plugins.js","../src/utils/warn.js","../src/utils/array.js","../src/utils/object.js","../src/utils/inspect.js","../src/utils/clone-deep.js","../src/utils/get.js","../src/utils/config-defaults.js","../src/utils/config-set.js","../src/utils/memoize.js","../src/utils/config.js","../src/utils/dom.js","../node_modules/vue-functional-data-merge/dist/lib.esm.js","../src/utils/bv-transition.js","../src/utils/normalize-slot.js","../src/mixins/normalize-slot.js","../src/components/button/button-close.js","../src/components/alert/alert.js","../src/components/alert/index.js","../src/utils/identity.js","../src/utils/pluck-props.js","../src/utils/to-string.js","../src/utils/router.js","../src/components/link/link.js","../src/components/badge/badge.js","../src/components/badge/index.js","../src/utils/html.js","../src/components/breadcrumb/breadcrumb-link.js","../src/components/breadcrumb/breadcrumb-item.js","../src/components/breadcrumb/breadcrumb.js","../src/components/breadcrumb/index.js","../src/components/button/button.js","../src/components/button/index.js","../src/components/button-group/button-group.js","../src/components/button-group/index.js","../src/utils/key-codes.js","../src/components/button-toolbar/button-toolbar.js","../src/components/button-toolbar/index.js","../src/utils/upper-first.js","../src/utils/prefix-prop-name.js","../src/utils/unprefix-prop-name.js","../src/utils/lower-first.js","../src/utils/copy-props.js","../src/mixins/card-mixin.js","../src/components/card/card-title.js","../src/components/card/card-sub-title.js","../src/components/card/card-body.js","../src/components/card/card-header.js","../src/components/card/card-footer.js","../src/components/card/card-img.js","../src/components/card/card.js","../node_modules/popper.js/dist/esm/popper.js","../src/components/image/img.js","../src/components/image/img-lazy.js","../src/components/card/card-img-lazy.js","../src/components/card/card-text.js","../src/components/card/card-group.js","../src/components/card/index.js","../src/utils/noop.js","../src/utils/observe-dom.js","../src/mixins/id.js","../src/components/carousel/carousel.js","../src/components/carousel/carousel-slide.js","../src/components/carousel/index.js","../src/mixins/listen-on-root.js","../src/components/collapse/collapse.js","../src/utils/loose-equal.js","../src/utils/target.js","../src/directives/toggle/toggle.js","../src/components/collapse/index.js","../src/utils/safe-types.js","../src/utils/bv-event.class.js","../src/mixins/click-out.js","../src/mixins/focus-in.js","../src/mixins/dropdown.js","../src/components/dropdown/dropdown.js","../src/components/dropdown/dropdown-item.js","../src/components/dropdown/dropdown-item-button.js","../src/components/dropdown/dropdown-header.js","../src/components/dropdown/dropdown-divider.js","../src/components/form/form.js","../src/components/dropdown/dropdown-form.js","../src/components/dropdown/dropdown-text.js","../src/components/dropdown/dropdown-group.js","../src/components/dropdown/index.js","../src/components/embed/embed.js","../src/components/embed/index.js","../src/mixins/form-options.js","../src/components/form/form-datalist.js","../src/components/form/form-text.js","../src/components/form/form-invalid-feedback.js","../src/components/form/form-valid-feedback.js","../src/components/layout/form-row.js","../src/components/form/index.js","../src/mixins/form-state.js","../src/utils/suffix-prop-name.js","../src/components/layout/col.js","../src/components/form-group/form-group.js","../src/components/form-group/index.js","../src/utils/loose-index-of.js","../src/mixins/form.js","../src/mixins/form-radio-check.js","../src/mixins/form-size.js","../src/components/form-checkbox/form-checkbox.js","../src/components/form-radio/form-radio.js","../src/mixins/form-radio-check-group.js","../src/components/form-checkbox/form-checkbox-group.js","../src/components/form-checkbox/index.js","../src/components/form-radio/form-radio-group.js","../src/components/form-radio/index.js","../src/mixins/form-text.js","../src/mixins/form-selection.js","../src/mixins/form-validity.js","../src/components/form-input/form-input.js","../src/components/form-input/index.js","../src/components/form-textarea/form-textarea.js","../src/components/form-textarea/index.js","../src/mixins/form-custom.js","../src/components/form-file/form-file.js","../src/components/form-file/index.js","../src/components/form-select/form-select.js","../src/components/form-select/index.js","../src/components/image/index.js","../src/components/input-group/input-group-text.js","../src/components/input-group/input-group-addon.js","../src/components/input-group/input-group-prepend.js","../src/components/input-group/input-group-append.js","../src/components/input-group/input-group.js","../src/components/input-group/index.js","../src/components/layout/container.js","../src/components/jumbotron/jumbotron.js","../src/components/jumbotron/index.js","../src/components/layout/row.js","../src/components/layout/index.js","../src/components/link/index.js","../src/components/list-group/list-group.js","../src/components/list-group/list-group-item.js","../src/components/list-group/index.js","../src/components/media/media-body.js","../src/components/media/media-aside.js","../src/components/media/media.js","../src/components/media/index.js","../src/components/modal/helpers/modal-manager.js","../src/components/modal/helpers/bv-modal-event.class.js","../src/utils/transporter.js","../src/components/modal/modal.js","../src/directives/modal/modal.js","../src/components/modal/helpers/bv-modal.js","../src/components/modal/index.js","../src/components/nav/nav.js","../src/components/nav/nav-item.js","../src/components/nav/nav-text.js","../src/components/nav/nav-form.js","../src/components/nav/nav-item-dropdown.js","../src/components/nav/index.js","../src/components/navbar/navbar.js","../src/components/navbar/navbar-nav.js","../src/components/navbar/navbar-brand.js","../src/components/navbar/navbar-toggle.js","../src/components/navbar/index.js","../src/mixins/pagination.js","../src/utils/range.js","../src/components/pagination/pagination.js","../src/components/pagination/index.js","../src/components/pagination-nav/pagination-nav.js","../src/components/pagination-nav/index.js","../src/utils/tooltip.class.js","../src/utils/popover.class.js","../src/mixins/toolpop.js","../src/components/popover/popover.js","../src/directives/popover/popover.js","../src/components/popover/index.js","../src/components/progress/progress-bar.js","../src/components/progress/index.js","../src/components/progress/progress.js","../src/components/spinner/index.js","../src/components/spinner/spinner.js","../src/utils/startcase.js","../src/components/table/helpers/constants.js","../src/components/table/helpers/normalize-fields.js","../src/components/table/helpers/mixin-items.js","../src/components/table/helpers/sanitize-row.js","../src/components/table/helpers/stringify-object-values.js","../src/components/table/helpers/mixin-filtering.js","../src/components/table/helpers/stringify-record-values.js","../src/utils/stable-sort.js","../src/components/table/helpers/mixin-sorting.js","../src/components/table/helpers/default-sort-compare.js","../src/components/table/helpers/mixin-pagination.js","../src/components/table/helpers/mixin-caption.js","../src/components/table/helpers/mixin-colgroup.js","../src/components/table/helpers/filter-event.js","../src/components/table/helpers/text-selection-active.js","../src/components/table/helpers/mixin-thead.js","../src/components/table/helpers/mixin-tfoot.js","../src/components/table/helpers/mixin-tbody.js","../src/components/table/helpers/mixin-tbody-row.js","../src/components/table/helpers/mixin-empty.js","../src/components/table/helpers/mixin-top-row.js","../src/components/table/helpers/mixin-bottom-row.js","../src/components/table/helpers/mixin-busy.js","../src/components/table/helpers/mixin-selectable.js","../src/components/table/helpers/mixin-provider.js","../src/components/table/helpers/mixin-table-renderer.js","../src/components/table/index.js","../src/components/table/table.js","../src/components/table/table-lite.js","../src/components/tabs/tabs.js","../src/components/tabs/tab.js","../src/components/tabs/index.js","../node_modules/portal-vue/dist/portal-vue.esm.js","../src/components/toast/toaster.js","../src/components/toast/toast.js","../src/components/toast/helpers/bv-toast.js","../src/components/toast/index.js","../src/components/tooltip/tooltip.js","../src/directives/tooltip/tooltip.js","../src/components/index.esm.js","../src/components/tooltip/index.js","../src/directives/modal/index.js","../src/directives/popover/index.js","../src/directives/scrollspy/scrollspy.class.js","../src/directives/scrollspy/scrollspy.js","../src/index.js","../src/directives/index.esm.js","../src/directives/scrollspy/index.js","../src/directives/toggle/index.js","../src/directives/tooltip/index.js","../src/browser.js"],"names":["checkMultipleVueWarned","MULTIPLE_VUE_WARNING","hasWindowSupport","window","hasDocumentSupport","document","hasNavigatorSupport","navigator","hasPromiseSupport","Promise","hasMutationObserverSupport","MutationObserver","WebKitMutationObserver","MozMutationObserver","isBrowser","userAgent","toLowerCase","isJSDOM","indexOf","hasPassiveEventSupport","test","passiveEventSupported","options","passive","addEventListener","removeEventListener","err","hasTouchSupport","documentElement","maxTouchPoints","hasPointerEventSupport","Boolean","PointerEvent","MSPointerEvent","hasIntersectionObserverSupport","IntersectionObserverEntry","prototype","getNoWarn","key","fallback","arguments","length","undefined","env","process","getEnv","warn","message","console","concat","warnNotClient","source","warnNoPromiseSupport","from","Array","isArray","arrayIncludes","array","value","_len","args","_key","apply","assign","Object","getOwnPropertyNames","keys","defineProperties","defineProperty","freeze","create","hasOwnProperty","obj","prop","call","isObject","_typeof","isPlainObject","toString","omit","props","filter","reduce","result","_objectSpread2","_defineProperty","readonlyDescriptor","enumerable","configurable","writable","toType","val","isUndefined","isNull","isUndefinedOrNull","isFunction","isBoolean","isString","isNumber","isDate","Date","isEvent","Event","isRegExp","slice","toRawType","cloneDeep","defaultValue","_toConsumableArray","get","path","join","steps","String","replace","split","every","step","DEFAULTS","deepFreeze","forEach","breakpoints","BAlert","dismissLabel","variant","BBadge","BButton","BButtonClose","textVariant","ariaLabel","BCardSubTitle","subTitleTextVariant","BCarousel","labelPrev","labelNext","labelGotoSlide","labelIndicators","BDropdown","toggleText","splitVariant","BFormFile","browseText","placeholder","dropPlaceholder","BFormText","BImg","blankColor","BImgLazy","BJumbotron","bgVariant","borderVariant","BListGroupItem","BModal","titleTag","size","headerBgVariant","headerBorderVariant","headerTextVariant","headerCloseVariant","bodyBgVariant","bodyTextVariant","footerBgVariant","footerBorderVariant","footerTextVariant","cancelTitle","cancelVariant","okTitle","okVariant","headerCloseLabel","BNavbar","BNavbarToggle","label","BPopover","boundary","boundaryPadding","customClass","delay","BProgress","BProgressBar","BSpinner","BTable","selectedVariant","headVariant","footVariant","BToast","toaster","autoHideDelay","toastClass","headerClass","bodyClass","solid","BToaster","ariaLive","ariaAtomic","role","BTooltip","BvConfig","_classCallCheck","this","$_config","$_cachedBreakpoints","defaults","_this","config","configKeys","cmpName","cmpConfig","some","b","setConfig","Vue","OurVue","checkMultipleVue","installFactory","_ref","components","directives","plugins","install","installed","registerComponents","registerDirectives","registerPlugins","pluginFactory","opts","extend","plugin","use","registerComponent","name","def","component","registerDirective","directive","memoize","fn","cache","argsKey","JSON","stringify","VueProto","getConfigValue","getComponentConfig","getBreakpoints","_getBreakpointsCached","getBreakpointsUpCached","w","d","elProto","Element","matchesEl","matches","msMatchesSelector","webkitMatchesSelector","closestEl","closest","sel","el","parentElement","parentNode","nodeType","Node","ELEMENT_NODE","requestAF","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","cb","setTimeout","MutationObs","parseEventOptions","useCapture","eventOn","evtName","handler","eventOff","isElement","isVisible","contains","body","style","display","bcr","getBCR","height","width","isDisabled","disabled","getAttr","hasClass","reflow","offsetHeight","selectAll","selector","root","arrayFrom","querySelectorAll","select","querySelector","parent","child","getById","id","getElementById","addClass","className","classList","add","removeClass","remove","setAttr","attr","setAttribute","removeAttr","removeAttribute","getAttribute","hasAttr","hasAttribute","getBoundingClientRect","getCS","getComputedStyle","getSel","getSelection","offset","_offset","top","left","getClientRects","win","ownerDocument","defaultView","pageYOffset","pageXOffset","position","parentOffset","elStyles","doc","offsetParent","offsetParentStyles","parseFloat","borderTopWidth","borderLeftWidth","marginTop","marginLeft","e","t","r","s","a","kebab","styleProp","styleList","toUpperCase","c","o","n","i","l","trim","y","p","f","NO_FADE_PROPS","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","FADE_PROPS","BVTransition","functional","noFade","type","default","mode","transProps","render","h","children","data","listeners","mergeData","css","hasNormalizedSlot","$scopedSlots","$slots","normalizeSlot","scope","slot","normalizeSlotMixin","methods","vNodes","NAME","slots","scopedSlots","componentData","staticClass","class","attrs","aria-label","on","click","evt","stopPropagation","preventDefault","domProps","innerHTML","parseCountDown","show","parseInt","parseShow","isNumericLike","isNaN","AlertPlugin","mixins","model","event","dismissible","Number","fade","countDownTimerId","countDown","localShow","watch","newVal","clearTimer","$emit","$nextTick","created","mounted","beforeDestroy","dismiss","clearInterval","$alert","$dismissBtn","_uid","alert-dismissible","aria-live","aria-atomic","identity","x","pluckProps","keysToPluck","objToPluck","transformFn","memo","spaces","commaRE","encodeReserveRE","encodeReserveReplacer","charCodeAt","encode","str","encodeURIComponent","decode","decodeURIComponent","stringifyQueryObj","query","map","results","val2","push","parseQuery","parsed","param","parts","shift","isRouterLink","tag","computeHref","_ref3","href","to","toFallback","hash","charAt","propsFactory","rel","target","active","append","activeClass","exact","exactActiveClass","routerTag","noPrefetch","BLink","inheritAttrs","computed","computedTag","thisOrParent","$router","$nuxt","computeTag","computedRel","_ref2","computeRel","computedHref","computedProps","$props","onClick","_arguments","evtIsEvent","suppliedHandler","$listeners","stopImmediatePropagation","currentTarget","__vue__","$root","focus","$el","blur","handlers","$attrs","tabindex","aria-disabled","nativeOn","linkProps","linkPropsFactory","pill","BadgePlugin","badge-pill","stripTagsRegex","stripTags","text","htmlOrText","textContent","html","ariaCurrent","BBreadcrumbLink","suppliedProps","aria-current","BBreadcrumbItem","items","BreadcrumbPlugin","BBreadcrumb","childNodes","activeDefined","item","idx","btnProps","block","squared","pressed","linkPropKeys","handleFocus","isLink","isToggle","isButton","computeClass","computeLinkProps","computeAttrs","button","link","toggle","nonStdTag","isNonStandardTag","aria-pressed","autocomplete","focusin","focusout","ButtonPlugin","BBtn","BBtnClose","vertical","ariaRole","BButtonGroup","btn-group","btn-group-vertical","ButtonGroupPlugin","BBtnGroup","KEY_CODES","ITEM_SELECTOR","BButtonToolbar","justify","keyNav","getItems","onFocusin","focusFirst","stop","onKeydown","keyCode","shiftKey","KeyCodes","focusPrev","focusLast","focusNext","setItemFocus","index","reverse","tabIndex","justify-content-between","keydown","ButtonToolbarPlugin","BBtnToolbar","upperFirst","prefixPropName","prefix","unprefixPropName","copyProps","copied","cardMixin","title","BCardTitle","subTitle","subTitleTag","bind","titleProps","subTitleProps","overlay","BCardBody","cardTitle","cardSubTitle","cardContent","bodyTag","card-img-overlay","bodyBorderVariant","header","headerHtml","BCardHeader","headerTag","footer","footerHtml","footerClass","BCardFooter","footerTag","src","required","alt","bottom","start","right","end","BCardImg","baseClass","cardImgProps","imgProps","imgSrc","bodyProps","headerProps","footerProps","align","noBody","BCard","_class","imgFirst","content","imgLast","img","unPrefixPropName","imgBottom","flex-row","imgLeft","imgStart","flex-row-reverse","imgRight","imgEnd","BLANK_TEMPLATE","fluid","fluidGrow","rounded","thumbnail","center","blank","color","makeBlankImgSrc","img-thumbnail","img-fluid","w-100","EVENT_OPTIONS","capture","blankSrc","blankWidth","blankHeight","throttle","isShown","scrollTimeout","observer","computedSrc","computedBlank","computedWidth","computedHeight","oldVal","setListeners","activated","deactivated","clearTimeout","unobserve","disconnect","winEvts","onScroll","checkView","IntersectionObserver","doShow","rootMargin","threshold","observe","entries","isIntersecting","intersectionRatio","docElement","view","clientHeight","clientWidth","box","imgLazyProps","textTag","deck","columns","CardPlugin","BCardImgLazy","lazyProps","BCardText","BCardGroup","noop","observeDom","callback","obs","mutations","changed","mutation","TEXT_NODE","addedNodes","removedNodes","childList","subtree","idMixin","localId_","safeId","suffix","DIRECTION","next","dirClass","overlayClass","prev","PointerType","TOUCH","PEN","TransitionEndEvents","WebkitTransition","MozTransition","OTransition","transition","EventOptions","provide","bvCarousel","interval","indicators","controls","noAnimation","noTouch","noHoverPause","imgWidth","imgHeight","background","isSliding","transitionEndEvent","slides","direction","isPaused","touchStartX","touchDeltaX","setSlide","pause","doSlide","_intervalId","_animationTimeout","_touchTimeout","getTransitionEndEvent","updateSlides","$refs","inner","attributes","attributeFilter","slide","visibilityState","hidden","len","$once","Math","floor","setInterval","max","restart","activeElement","_this2","isCycling","calcDirection","currentSlide","nextSlide","called","onceTransEnd","numSlides","min","curIndex","nextIndex","handleClick","handleSwipe","absDeltaX","abs","touchStart","pointerType","clientX","touches","touchMove","touchEnd","_this3","ref","aria-controls","aria-hidden","rawName","expression","aria-owns","aria-describedby","mouseenter","mouseleave","tagName","carousel-fade","pointer-event","aria-busy","imgAlt","imgBlank","imgBlankColor","contentVisibleUp","contentTag","caption","captionHtml","captionTag","textHtml","CarouselPlugin","BCarouselSlide","inject","contentClasses","noDrag","dragstart","contentChildren","listenOnRootMixin","listenOnRoot","$on","$off","listenOnRootOnce","emitOnRoot","_this$$root","BCollapse","isNav","accordion","visible","transitioning","classObject","navbar-collapse","collapse","emitState","handleToggleEvt","handleAccordionEvt","setWindowEvents","handleResize","emitSync","updated","method","onEnter","scrollHeight","onAfterEnter","onLeave","onAfterLeave","checkDisplayBlock","restore","isBlock","clickHandler","openedId","enter","afterEnter","leave","afterLeave","compareArrays","equal","looseEqual","aValidType","bValidType","getTime","aHasKey","bHasKey","allListenTypes","hover","BVBoundListeners","getTargets","binding","targets","modifiers","bindTargets","vnode","listenTypes","listener","elm","boundListeners","unbindTargets","BV_TOGGLE","resetProp","handleTargets","context","handleUpdate","VBToggle","state","componentUpdated","unbind","CollapsePlugin","HTMLElement","longerTimeoutBrowsers","timeoutDuration","debounce","resolve","then","scheduled","functionToCheck","getStyleComputedProperty","element","property","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","scrollingElement","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","instance","Constructor","TypeError","createClass","descriptor","protoProps","staticProps","_extends","getClientRect","offsets","rect","scrollTop","scrollLeft","sizes","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","subtract","modifier","includeScroll","getFixedPositionOffsetParent","getBoundaries","popper","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","sort","filteredAreas","computedPlacement","variation","getReferenceOffsets","getOuterSizes","marginBottom","marginRight","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","runModifiers","ends","findIndex","cur","match","enabled","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","getWindow","setupEventListeners","updateBound","scrollElement","attachToScrollParents","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","isNumeric","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","onLoad","modifierOptions","Popper","update","isDestroyed","isCreated","jquery","enableEventListeners","removeChild","Utils","global","PopperUtils","BvEvent","eventInit","constructor","cancelable","nativeEvent","relatedTarget","vueTarget","componentId","defaultPrevented","clickOutMixin","listenForClickOut","newValue","oldValue","clickOutElement","clickOutEventName","_clickOutHandler","beforeCreate","isClickOut","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","Selector","FORM_CHILD","AttachmentMap","dropdownMixin","bvDropdown","dropup","dropright","dropleft","noFlip","lazy","popperOpts","inNavbar","visibleChangePrevented","toggler","directionClass","bvEvt","menu","emitEvent","focusToggler","showMenu","hideMenu","_popper","whileOpenListen","removePopper","createPopper","focusMenu","getPopperConfig","destroy","popperConfig","open","rootCloseListener","vm","refocus","onEsc","up","focusItem","_this4","menuClass","toggleTag","toggleClass","noCaret","splitHref","splitTo","splitButtonType","validator","dropdownClasses","position-static","menuClasses","dropdown-menu-right","toggleClasses","dropdown-toggle-split","dropdown-toggle-no-caret","buttonContent","aria-haspopup","aria-expanded","aria-labelledby","BDropdownItem","nomalizeSlotMixin","closeDropdown","BDropdownItemButton","BDropdownHeader","BDropdownDivider","aria-orientation","inline","novalidate","validated","BForm","form-inline","was-validated","BDropdownForm","formProps","BDropdownText","headerVariant","headerClasses","ariaDescribedby","BDropdownGroup","headerId","adb","ariaDescribedBy","DropdownPlugin","BDd","BDdItem","BDropdownItemBtn","BDdItemButton","BDdItemBtn","BDdHeader","BDdDivider","BDdForm","BDdText","BDdGroup","aspect","EmbedPlugin","BEmbed","formOptionsMixin","valueField","textField","htmlField","disabledField","formOptions","option","BFormDatalist","form-text","tooltip","forceShow","BFormInvalidFeedback","invalid-feedback","invalid-tooltip","d-block","BFormValidFeedback","valid-feedback","valid-tooltip","BFormRow","FormPlugin","BDatalist","BFormFeedback","formStateMixin","computedState","stateClass","suffixPropName","strNum","computeBreakpointClass","breakpoint","breakpointPropMap","generateProps","breakpointCol","propMap","breakpointOffset","breakpointOrder","col","cols","alignSelf","BCol","_classList$push","hasColClasses","DEPRECATED_MSG","renderInvalidFeedback","ctx","invalidFeedback","invalidFeedbackId","feedbackAriaLive","renderValidFeedback","validFeedback","validFeedbackId","renderHelpText","description","descriptionId","makePropName","BFormGroup","BREAKPOINTS","bpLabelColProps","bpLabelAlignProps","labelFor","labelSize","labelSrOnly","labelClass","horizontal","deprecated","labelColProps","bp","labelCols","propVal","bColPropName","labelAlignClasses","classes","isHorizontal","labelId","hasInvalidFeedback","hasValidFeedback","describedByIds","setInputDescribedBy","legendClick","inputs","input","ids","isFieldset","isLegend","labelTag","for","renderLabel","aria-invalid","FormGroupPlugin","BFormFieldset","looseIndexOf","formMixin","form","autofocus","handleAutofocus","formRadioCheckMixin","checked","plain","buttonVariant","ariaLabelledby","localChecked","isGroup","bvGroup","hasFocus","computedLocalChecked","set","isBtnMode","buttons","isPlain","isCustom","isSwitch","isRadio","switches","switch","isInline","getName","groupName","getForm","getState","getButtonVariant","buttonClasses","isChecked","defaultSlot","change","handleChange","form-check-input","custom-control-input","is-valid","is-invalid","aria-required","form-check-label","custom-control-label","form-check","form-check-inline","custom-control","custom-control-inline","custom-checkbox","isCheck","custom-switch","custom-radio","formSizeMixin","sizeFormClass","sizeBtnClass","BFormCheckbox","uncheckedValue","indeterminate","setIndeterminate","_ref$target","isArr","BFormRadio","formRadioCheckGroupMixin","ariaInvalid","stacked","groupClasses","computedAriaInvalid","uid","isRadioGroup","BFormCheckboxGroup","bvCheckGroup","FormCheckboxPlugin","BCheckbox","BCheck","BCheckboxGroup","BCheckGroup","BFormRadioGroup","bvRadioGroup","FormRadioPlugin","BRadio","BRadioGroup","formTextMixin","readonly","plaintext","formatter","Function","number","lazyFormatter","localValue","stringifyValue","computedClass","custom-range","form-control-plaintext","form-control","getFormatted","force","updateValue","num","onInput","composing","formatted","onChange","onBlur","formSelectionMixin","selectionStart","selectionEnd","selectionDirection","_this$$refs$input","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","TYPES","BFormInput","noWheel","list","localType","setWheelStopper","onWheelFocus","onWheelBlur","stopWheel","FormInputPlugin","BInput","BFormTextarea","rows","maxRows","wrap","noResize","noAutoShrink","dontResize","heightInPx","resize","computedRows","computedMinRows","computedMaxRows","oldval","setHeight","computeHeight","$isServer","lineHeight","border","borderBottomWidth","paddingTop","paddingBottom","minHeight","oldHeight","contentRows","ceil","FormTextareaPlugin","BTextarea","formCustomMixin","custom","accept","multiple","directory","noTraverse","noDrop","fileNameFormatter","selectedFile","dragging","selectLabel","files","names","file","reset","focusHandler","onFileChange","dataTransfer","setFiles","queue","webkitGetAsEntry","traverseFileTree","all","filesArr","filesArray","onReset","onDragover","dropEffect","onDragleave","onDrop","isFile","$path","isDirectory","createReader","readEntries","form-control-file","custom-file-input","webkitdirectory","data-browse","dragover","dragleave","drop","FormFilePlugin","BFile","BFormSelect","selectSize","computedSelectSize","inputClass","selectedVal","selected","_value","FormSelectPlugin","BSelect","ImagePlugin","BInputGroupText","commonProps","isText","BInputGroupAddon","input-group-append","input-group-prepend","BInputGroupPrepend","BInputGroupAppend","prepend","prependHtml","appendHtml","InputGroupPlugin","BInputGroup","BContainer","container","container-fluid","containerFluid","headerLevel","lead","leadHtml","leadTag","JumbotronPlugin","_class2","jumbotron-fluid","COMMON_ALIGNMENT","noGutters","alignV","alignH","alignContent","LayoutPlugin","BRow","no-gutters","LinkPlugin","flush","BListGroup","list-group-flush","list-group-horizontal","actionTags","action","ListGroupPlugin","isAction","itemProps","BMediaBody","verticalAlign","BMediaAside","rightAlign","MediaPlugin","BMedia","$aside","$default","modalManager","modals","baseZIndex","scrollbarWidth","isBodyOverflowing","modalCount","modalsAreOpen","newCount","oldCount","getScrollbarWidth","checkScrollbar","setScrollbar","resetScrollbar","updateModals","registerModal","modal","unregisterModal","splice","_isBeingDestroyed","_isDestroyed","resetModal","getBaseZIndex","div","createElement","appendChild","zIndex","isTop","_getBCR","_paddingChangedForModal","_marginChangedForModal","actualPadding","paddingRight","calculatedPadding","actualMargin","calculatedMargin","BvModalEvent","_possibleConstructorReturn","_getPrototypeOf","_assertThisInitialized","trigger","_get","BTransporterTargetSingle","abstract","nodes","updatedNodes","destroyed","BTransporterSingle","immediate","unmountTarget","mountTarget","_bv_defaultFn","_bv_target","beforeMount","updateTarget","getContainer","propsData","defaultFn","$destroy","OBSERVER_CONFIG","characterData","EVT_OPTIONS","centered","scrollable","buttonSize","noStacking","noCloseOnBackdrop","noCloseOnEsc","noEnforceFocus","titleHtml","titleClass","titleSrOnly","modalClass","dialogClass","contentClass","hideHeader","hideFooter","hideHeaderClose","hideBackdrop","okOnly","okDisabled","cancelDisabled","returnFocus","cancelTitleHtml","okTitleHtml","busy","static","isHidden","isTransitioning","isShow","isOpening","isClosing","ignoreBackdropClick","isModalOverflowing","return_focus","modalClasses","modalStyles","sbWidth","paddingLeft","dialogClasses","titleClases","sr-only","bodyClasses","footerClasses","_ref4","modalOuterStyle","slotScope","ok","onOk","cancel","onCancel","close","onClose","_observer","showHandler","hideHandler","toggleHandler","modalListener","setEnforceFocus","setResizeEvent","updateModel","buildEvent","getActiveElement","showEvt","hideEvt","triggerEl","checkModalOverflow","onBeforeEnter","onBeforeLeave","returnFocusTo","bvModalEvt","onDialogMousedown","onceModalMouseup","onClickOut","preventScroll","makeModal","modalHeader","closeButton","modalFooter","cancelButton","cancelHtml","okHtml","modalContent","modalDialog","mousedown","aria-modal","beforeEnter","beforeLeave","backdrop","tabTrap","setRole","VBModal","BASE_PROPS","modalProps","defaultResolver","propsToSlots","msgBoxContent","filterOptions","ModalPlugin","BVModalPlugin","BMsgBox","extends","handleDestroy","self","$parent","$route","unwatch","$watch","asyncMsgBox","resolver","msgBox","reject","resolved","Error","$mount","BvModal","_vm","_root","_createClass","_this$_root","_this$_root2","_len2","_key2","mixin","fill","justified","tabs","pills","small","isNavBar","BNav","nav","navbar-nav","nav-tabs","nav-pills","flex-column","nav-fill","nav-justified","BNavItem","linkAttrs","linkClasses","BNavText","BFormProps","BNavForm","BDropdownProps","extraMenuClasses","extraToggleClasses","BNavItemDropdown","NavPlugin","BNavItemDd","BNavDropdown","BNavDd","toggleable","fixed","sticky","print","xs","d-print","sticky-top","BNavProps","BNavbarNav","BNavbarBrand","toggleState","handleStateEvt","NavbarPlugin","BNavToggle","makePageArray","startNum","numPages","sanitizeLimit","limit","sanitizeCurPage","page","onSpaceKey","paginationMixin","hideGotoEndButtons","labelFirstPage","firstText","labelPrevPage","prevText","labelNextPage","nextText","labelLastPage","lastText","labelPage","hideEllipsis","ellipsisText","curr","currentPage","localNumPages","localLimit","btnSize","alignment","computedCurrentPage","paginationParams","curPage","showFirstDots","showLastDots","numLinks","pageList","_this$paginationParam","currPage","pages","getButtons","btn","setBtnFocus","focusCurrent","_this5","_this6","_this7","numberOfPages","_this$paginationParam2","isActivePage","pageNum","noCurrPage","makeEndBtn","linkTo","btnSlot","btnText","pageTest","btnContent","ariaControls","flex-fill","makeEllipsis","isLast","aria-checked","aria-posinset","aria-setsize","makePage","pagination","perPage","totalRows","PaginationPlugin","BPagination","sanitizePerPage","baseUrl","useRouter","linkGen","pageGen","noPageDetect","PaginationNavPlugin","BPaginationNav","computedValue","setNumPages","guessCurrentPage","getPageInfo","info","makeLink","resolveLink","_link2","pathname","resolveRoute","route","guess","currRoute","loc","location","currLink","BS_CLASS_PREFIX_REGEX","RegExp","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","HoverState","ClassName","animation","template","arrowPadding","fallbackPlacement","callbacks","EvtOpts","NEXTID","generateId","ToolTip","$isEnabled","$fadeTimeout","$hoverTimeout","$visibleInterval","$hoverState","$activeTrigger","$popper","$element","$tip","$id","$routeWatcher","$forceHide","forceHide","$doHide","doHide","$doShow","$doDisable","doDisable","$doEnable","doEnable","_noop","updateConfig","updatedConfig","Default","fixTitle","$config","unListen","listen","setWhileOpenListeners","enabledEvt","disabledEvt","dropdownOpen","isWithActiveTrigger","getTipElement","tip","setContent","isWithContent","addAriaDescribedby","getPlacement","attachment","getAttachment","addAttachmentClass","transitionOnce","fixTransition","prevHoverState","shownEvt","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","removeAriaDescribedby","hiddenEvt","desc","complete","transEvents","getTransitionEndEvents","fnOnce","compileTemplate","setElementContent","getTitle","allowHtml","innerText","triggers","setRootListener","disable","enable","_this8","_this9","_this10","_this11","getOffset","handlePopperPlacementChange","arrowOffset","tabClass","cls","cleanTipClass","initConfigAnimation","PopOver","hasTitle","hasContent","getContent","PLACEMENTS","topleft","topright","righttop","rightbottom","bottomleft","bottomright","lefttop","leftbottom","auto","toolpopMixin","baseConfig","cont","onShow","shown","onShown","onHide","onHidden","onEnabled","onDisabled","old","onOpen","onDisable","onEnable","_toolpop","_obs_title","_obs_content","createToolpop","setObservers","getConfig","bringItBack","cfg","updatePosition","getTarget","BV_POPOVER","validTriggers","htmlRE","noFadeRE","placementRE","boundaryRE","delayRE","offsetRE","variantRE","applyPopover","bindings","arg","mod","selectedTriggers","parseBindings","VBPopover","inserted","removePopover","PopoverPlugin","bvProgress","labelHtml","precision","striped","animated","showProgress","showValue","progressBarClasses","computedVariant","computedStriped","computedAnimated","progressBarStyles","computedMax","computedProgress","pow","computedPrecision","computedShowProgress","computedShowValue","toFixed","aria-valuemin","aria-valuemax","aria-valuenow","ProgressPlugin","progressHeight","SpinnerPlugin","startCase","$1","$2","IGNORED_FIELD_KEYS","_rowVariant","_cellVariants","_showDetails","EVENT_FILTER","processField","field","itemsMixin","fields","primaryKey","localItems","computedFields","origFields","sample","k","normalizeFields","computedFieldsObj","computedItems","paginatedItems","sortedItems","filteredItems","localFilter","sortBy","localSortBy","sortDesc","localSortDesc","apiUrl","newItems","getFieldFormatter","sanitizeRow","row","stringifyObjectValues","DEPRECATION_MSG","filteringMixin","deprecation","filterFunction","isFiltered","localFiltering","hasProvider","noProviderFiltering","filteredCheck","localFilterFn","filterFn","criteria","filterFnFactory","defaultFilterFnFactory","regexp","pattern","lastIndex","stableSort","compareFn","sortingMixin","sortDirection","sortCompare","sortCompareOptions","numeric","sortCompareLocale","noSortReset","labelSortAsc","labelSortDesc","labelSortClear","noLocalSorting","noFooterSorting","localSorting","noProviderSorting","isSortable","sortable","sortOptions","usage","sortLocale","localeOpts","locale","aa","bb","localeCompare","defaultSortCompare","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortTheadThClasses","sortTheadThAttrs","headerTitle","ariaLabelSorting","aria-sort","paginationMixin$1","localPaging","noProviderPaging","captionMixin","captionTop","captionClasses","b-table-caption-top","captionId","isStacked","renderCaption","$createElement","$captionSlot","$caption","colgroupMixin","renderColgroup","$colgroup","TABLE_TAG_NAMES","filterEvent","textSelectionActive","containsNode","theadMixin","theadClass","theadTrClass","headClasses","fieldClasses","thClass","headClicked","stopIfBusy","renderThead","makeCell","colIndex","hasHeadClickListener","sortAttrs","sortClass","thStyle","abbr","headerAbbr","aria-colindex","fieldScope","column","$cells","th","$trs","tfootTrClass","footClasses","tfootMixin","footClone","tfootClass","renderTfoot","tbodyMixin","tbodyTrClass","tdClasses","cellVariant","dark","getTdValues","tdClass","tdAttrs","isRowHeader","tdAttr","rowClasses","tdValue","defValue","getFormattedValue","tbodyRowKeydown","rowIndex","trs","itemRows","rowClicked","middleMouseRowClicked","rowDblClicked","rowHovered","rowUnhovered","rowContextmenu","renderTbodyRowCell","$scoped","detailsSlot","unformatted","toggleDetails","$set","detailsShowing","selectedRows","rowSelected","$childNodes","renderTbodyRow","tableStriped","hasRowClickHandler","selectable","$detailsSlot","rowShowDetails","$rows","detailsId","$tds","ariaRowIndex","rowKey","rowId","selectableClasses","selectableRowClasses","selectableAttrs","selectableRowAttrs","refInFor","b-table-has-details","data-pk","aria-rowindex","auxclick","which","contextmenu","dblclick","trAttrs","$details","colspan","tbodyClass","tbodyTransitionProps","tbodyTransitionHandlers","renderTbody","$busy","renderBusy","renderTopRow","renderEmpty","renderBottomRow","isTransGroup","tbodyProps","tbodyOn","emptyMixin","showEmpty","emptyText","emptyHtml","emptyFilteredText","emptyFilteredHtml","$empty","computedBusy","topRowMixin","bottomRowMixin","busyMixin","localBusy","selectableMixin","selectMode","selectedLastRow","selectableTableClasses","isSelecting","b-table-selectable","selectableTableAttrs","aria-multiselectable","selectableIsMultiSelect","clearSelected","setSelectionHandlers","isRowSelected","base","b-table-row-selected","aria-selected","selectedLastClicked","selectionHandler","ctrlKey","metaKey","providerMixin","providerTriggerContext","_providerUpdate","refresh","_providerSetLocal","catch","tableRendererMixin","bordered","borderless","outlined","responsive","tableClass","isResponsive","responsiveClass","tableClasses","table-striped","table-hover","table-dark","table-bordered","table-borderless","table-sm","b-table-fixed","b-table-stacked","tableAttrs","aria-rowcount","aria-colcount","$thead","$tfoot","$tbody","$table","TablePlugin","BTableLite","navProps","notDisabled","tab","BTabButtonHelper","bvTabs","posInSet","setSize","noKeyNav","handleEvt","localActive","titleLinkClass","activeNavItemClass","titleItemClass","BTabs","card","noNavStyle","navClass","navWrapperClass","activeTabClass","tabIdx","currentTab","registeredTabs","isMounted","navStyle","localNavClass","previousTab","nextTab","updateTabs","setObserver","_bvObserver","registerTab","unregisterTab","tabsContainer","getTabs","$children","_isTab","getButtonForTab","updateButton","$forceUpdate","activateTab","deactivateTab","focusButton","emitTabClick","clickTab","firstTab","currentIndex","lastTab","activeTab","fallbackTab","controlledBy","first","last","card-header","card-footer","col-auto","empty","card-body","TabsPlugin","BTab","buttonId","headHtml","tabClasses","computedNoFade","computedLazy","activate","deactivate","Symbol","iterator","arr2","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","inBrowser","pick","acc","VuePlugin","transports","sources","wormhole","trackInstances","transport","passengers","_transport$order","Infinity","newTransport","$_getTransportIndex","newTransports","registerTarget","unregisterTarget","$delete","registerSource","unregisterSource","hasTarget","hasSource","hasContentFor","_id","Portal","slim","slotProps","random","sendUpdate","clear","closer","normalizeSlots","normalizeOwnChildren","slotContent","Tag","v-portal","PortalTarget","firstRender","ownTransports","temp","newPassengers","combinePassengers","noWrapper","vue-portal-target","_id$1","portalProps","targetProps","bail","mountTo","targetSlim","targetSlotProps","targetTag","portalTarget","mountEl","_props","error","manual","DefaultTransition","doRender","dead","staticName","Wormhole","$toaster","b-dead-toaster","$target","isStatus","appendToast","noAutoHide","noCloseButton","isHiding","timer","dismissStarted","resumeDismiss","bToastClasses","b-toast-solid","b-toast-append","b-toast-prepend","computedDuration","computedToaster","transitionHandlers","ensureToaster","clearDismissTimer","now","setHoverHandler","startDismissTimer","onPause","onUnPause","passed","onLinkClick","makeToast","$headerContent","$title","$header","$body","toastProps","toastContent","ToastPlugin","BVToastPlugin","BToastPop","toast","BvToast","BV_TOOLTIP","applyTooltip","VBTooltip","removeTooltip","componentsPlugin","TooltipPlugin","VBModalPlugin","VBPopoverPlugin","DefaultType","ACTIVE","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","HREF_REGEX","objectToString","ScrollSpy","$scroller","$selector","$offsets","$targets","$activeTarget","$scrollHeight","$resizeTimeout","$obs_scroller","$obs_targets","unlisten","componentName","configTypes","expectedTypes","valueType","_isVue","typeCheckConfig","Name","scroller","getScroller","handleEvent","autoMethod","methodFn","offsetBase","getScrollTop","getScrollHeight","maxScroll","getOffsetHeight","links","dropdown","setActiveState","sibling","previousElementSibling","BV_SCROLLSPY","applyScrollspy","BootstrapVue","directivesPlugin","VBScrollspyPlugin","VBScrollspy","dispose","removeScrollspy","VBTogglePlugin","VBTooltipPlugin"],"mappings":"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","sourcesContent":["/**\n * Utilities to get information about the current environment\n */\n\n// --- Constants ---\n\nexport const hasWindowSupport = typeof window !== 'undefined'\nexport const hasDocumentSupport = typeof document !== 'undefined'\nexport const hasNavigatorSupport = typeof navigator !== 'undefined'\nexport const hasPromiseSupport = typeof Promise !== 'undefined'\nexport const hasMutationObserverSupport =\n  typeof MutationObserver !== 'undefined' ||\n  typeof WebKitMutationObserver !== 'undefined' ||\n  typeof MozMutationObserver !== 'undefined'\n\nexport const isBrowser = hasWindowSupport && hasDocumentSupport && hasNavigatorSupport\n\n// Browser type sniffing\nexport const userAgent = isBrowser ? window.navigator.userAgent.toLowerCase() : ''\n\nexport const isJSDOM = userAgent.indexOf('jsdom') > 0\nexport const isIE = /msie|trident/.test(userAgent)\n\n// Determine if the browser supports the option passive for events\nexport const hasPassiveEventSupport = (() => {\n  let passiveEventSupported = false\n  if (isBrowser) {\n    try {\n      const options = {\n        get passive() {\n          // This function will be called when the browser\n          // attempts to access the passive property.\n          /* istanbul ignore next: will never be called in JSDOM */\n          passiveEventSupported = true\n        }\n      }\n      window.addEventListener('test', options, options)\n      window.removeEventListener('test', options, options)\n    } catch (err) {\n      /* istanbul ignore next: will never be called in JSDOM */\n      passiveEventSupported = false\n    }\n  }\n  return passiveEventSupported\n})()\n\nexport const hasTouchSupport =\n  isBrowser && ('ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0)\n\nexport const hasPointerEventSupport =\n  isBrowser && Boolean(window.PointerEvent || window.MSPointerEvent)\n\nexport const hasIntersectionObserverSupport =\n  isBrowser &&\n  'IntersectionObserver' in window &&\n  'IntersectionObserverEntry' in window &&\n  // Edge 15 and UC Browser lack support for `isIntersecting`\n  // but we an use intersectionRatio > 0 instead\n  // 'isIntersecting' in window.IntersectionObserverEntry.prototype &&\n  'intersectionRatio' in window.IntersectionObserverEntry.prototype\n\n// --- Getters ---\n\nexport const getEnv = (key, fallback = null) => {\n  const env = typeof process !== 'undefined' && process ? process.env || {} : {}\n  if (!key) {\n    /* istanbul ignore next */\n    return env\n  }\n  return env[key] || fallback\n}\n\nexport const getNoWarn = () => getEnv('BOOTSTRAP_VUE_NO_WARN')\n","import OurVue from './vue'\nimport warn from './warn'\nimport { setConfig } from './config-set'\nimport { hasWindowSupport, isJSDOM } from './env'\n\n/**\n * Checks if there are multiple instances of Vue, and warns (once) about possible issues.\n * @param {object} Vue\n */\nexport const checkMultipleVue = (() => {\n  let checkMultipleVueWarned = false\n\n  const MULTIPLE_VUE_WARNING = [\n    'Multiple instances of Vue detected!',\n    'You may need to set up an alias for Vue in your bundler config.',\n    'See: https://bootstrap-vue.js.org/docs#using-module-bundlers'\n  ].join('\\n')\n\n  return Vue => {\n    /* istanbul ignore next */\n    if (!checkMultipleVueWarned && OurVue !== Vue && !isJSDOM) {\n      warn(MULTIPLE_VUE_WARNING)\n    }\n    checkMultipleVueWarned = true\n  }\n})()\n\n/**\n * Plugin install factory function.\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\nexport const installFactory = ({ components, directives, plugins } = {}) => {\n  const install = (Vue, config = {}) => {\n    if (install.installed) {\n      /* istanbul ignore next */\n      return\n    }\n    install.installed = true\n    checkMultipleVue(Vue)\n    setConfig(config, Vue)\n    registerComponents(Vue, components)\n    registerDirectives(Vue, directives)\n    registerPlugins(Vue, plugins)\n  }\n\n  install.installed = false\n\n  return install\n}\n\n/**\n * Plugin object factory function.\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\nexport const pluginFactory = (opts = {}, extend = {}) => ({\n  ...extend,\n  install: installFactory(opts)\n})\n\n/**\n * Load a group of plugins.\n * @param {object} Vue\n * @param {object} Plugin definitions\n */\nexport const registerPlugins = (Vue, plugins = {}) => {\n  for (const plugin in plugins) {\n    if (plugin && plugins[plugin]) {\n      Vue.use(plugins[plugin])\n    }\n  }\n}\n\n/**\n * Load a component.\n * @param {object} Vue\n * @param {string} Component name\n * @param {object} Component definition\n */\nexport const registerComponent = (Vue, name, def) => {\n  if (Vue && name && def) {\n    Vue.component(name, def)\n  }\n}\n\n/**\n * Load a group of components.\n * @param {object} Vue\n * @param {object} Object of component definitions\n */\nexport const registerComponents = (Vue, components = {}) => {\n  for (const component in components) {\n    registerComponent(Vue, component, components[component])\n  }\n}\n\n/**\n * Load a directive.\n * @param {object} Vue\n * @param {string} Directive name\n * @param {object} Directive definition\n */\nexport const registerDirective = (Vue, name, def) => {\n  if (Vue && name && def) {\n    // Ensure that any leading V is removed from the\n    // name, as Vue adds it automatically\n    Vue.directive(name.replace(/^VB/, 'B'), def)\n  }\n}\n\n/**\n * Load a group of directives.\n * @param {object} Vue\n * @param {object} Object of directive definitions\n */\nexport const registerDirectives = (Vue, directives = {}) => {\n  for (const directive in directives) {\n    registerDirective(Vue, directive, directives[directive])\n  }\n}\n\n/**\n * Install plugin if window.Vue available\n * @param {object} Plugin definition\n */\nexport const vueUse = VuePlugin => {\n  /* istanbul ignore next */\n  if (hasWindowSupport && window.Vue) {\n    window.Vue.use(VuePlugin)\n  }\n}\n","import { isBrowser, hasPromiseSupport, hasMutationObserverSupport, getNoWarn } from './env'\n\n/**\n * Log a warning message to the console with BootstrapVue formatting\n * @param {string} message\n */\nexport const warn = message => /* istanbul ignore next */ {\n  if (!getNoWarn()) {\n    console.warn(`[BootstrapVue warn]: ${message}`)\n  }\n}\n\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\nexport const warnNotClient = source => {\n  /* istanbul ignore else */\n  if (isBrowser) {\n    return false\n  } else {\n    warn(`${source}: Can not be called during SSR.`)\n    return true\n  }\n}\n\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\nexport const warnNoPromiseSupport = source => {\n  /* istanbul ignore else */\n  if (hasPromiseSupport) {\n    return false\n  } else {\n    warn(`${source}: Requires Promise support.`)\n    return true\n  }\n}\n\n/**\n * Warn when no MutationObserver support is given\n * @param {string} source\n * @returns {boolean} warned\n */\nexport const warnNoMutationObserverSupport = source => {\n  /* istanbul ignore else */\n  if (hasMutationObserverSupport) {\n    return false\n  } else {\n    warn(`${source}: Requires MutationObserver support.`)\n    return true\n  }\n}\n\n// Default export\nexport default warn\n","// --- Static ---\n\nexport const from = Array.from\nexport const isArray = Array.isArray\n\n// --- Instance ---\n\nexport const arrayIncludes = (array, value) => array.indexOf(value) !== -1\nexport const concat = (...args) => Array.prototype.concat.apply([], args)\n","import { isArray } from './array'\n\n// --- Static ---\n\nexport const assign = Object.assign\nexport const getOwnPropertyNames = Object.getOwnPropertyNames\nexport const keys = Object.keys\nexport const defineProperties = Object.defineProperties\nexport const defineProperty = Object.defineProperty\nexport const freeze = Object.freeze\nexport const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\nexport const getOwnPropertySymbols = Object.getOwnPropertySymbols\nexport const getPrototypeOf = Object.getPrototypeOf\nexport const create = Object.create\nexport const isFrozen = Object.isFrozen\nexport const is = Object.is\n\n// --- \"Instance\" ---\n\nexport const hasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)\nexport const toString = obj => Object.prototype.toString.call(obj)\n\n// --- Utilities ---\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n * Note object could be a complex type like array, date, etc.\n */\nexport const isObject = obj => obj !== null && typeof obj === 'object'\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nexport const isPlainObject = obj => Object.prototype.toString.call(obj) === '[object Object]'\n\n// @link https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\nexport const omit = (obj, props) =>\n  keys(obj)\n    .filter(key => props.indexOf(key) === -1)\n    .reduce((result, key) => ({ ...result, [key]: obj[key] }), {})\n\nexport const readonlyDescriptor = () => ({ enumerable: true, configurable: false, writable: false })\n\n/**\n * Deep-freezes and object, making it immutable / read-only.\n * Returns the same object passed-in, but frozen.\n * Freezes inner object/array/values first.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n * Note: this method will not work for property values using Symbol() as a key\n */\nexport const deepFreeze = obj => {\n  // Retrieve the property names defined on object/array\n  // Note: `keys` will ignore properties that are keyed by a `Symbol()`\n  const props = keys(obj)\n  // Iterate over each prop and recursively freeze it\n  props.forEach(prop => {\n    const value = obj[prop]\n    // If value is a plain object or array, we deepFreeze it\n    obj[prop] = value && (isPlainObject(value) || isArray(value)) ? deepFreeze(value) : value\n  })\n  return freeze(obj)\n}\n","import { isArray } from './array'\nimport { isObject, isPlainObject } from './object'\n\n// --- Convenience inspection utilities ---\n\nexport const toType = val => typeof val\n\nexport const toRawType = val => Object.prototype.toString.call(val).slice(8, -1)\n\nexport const toRawTypeLC = val => toRawType(val).toLowerCase()\n\nexport const isUndefined = val => val === undefined\n\nexport const isNull = val => val === null\n\nexport const isUndefinedOrNull = val => isUndefined(val) || isNull(val)\n\nexport const isFunction = val => toType(val) === 'function'\n\nexport const isBoolean = val => toType(val) === 'boolean'\n\nexport const isString = val => toType(val) === 'string'\n\nexport const isNumber = val => toType(val) === 'number'\n\nexport const isPrimitive = val => isBoolean(val) || isString(val) || isNumber(val)\n\nexport const isDate = val => val instanceof Date\n\nexport const isEvent = val => val instanceof Event\n\nexport const isRegExp = val => toRawType(val) === 'RegExp'\n\nexport const isPromise = val =>\n  !isUndefinedOrNull(val) && isFunction(val.then) && isFunction(val.catch)\n\n// Extra convenience named re-exports\nexport { isArray, isObject, isPlainObject }\n","import { isArray, isPlainObject } from './inspect'\nimport { keys } from './object'\n\nexport const cloneDeep = (obj, defaultValue = obj) => {\n  if (isArray(obj)) {\n    return obj.reduce((result, val) => [...result, cloneDeep(val, val)], [])\n  }\n  if (isPlainObject(obj)) {\n    return keys(obj).reduce(\n      (result, key) => ({ ...result, [key]: cloneDeep(obj[key], obj[key]) }),\n      {}\n    )\n  }\n  return defaultValue\n}\n\nexport default cloneDeep\n","import { isArray, isObject } from './inspect'\n\n/**\n * Get property defined by dot/array notation in string.\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @param {*} defaultValue (optional)\n * @return {*}\n */\nconst get = (obj, path, defaultValue = null) => {\n  // Handle array of path values\n  path = isArray(path) ? path.join('.') : path\n\n  // If no path or no object passed\n  if (!path || !isObject(obj)) {\n    return defaultValue\n  }\n\n  // Handle edge case where user has dot(s) in top-level item field key\n  // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762\n  // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n  // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n  if (path in obj) {\n    return obj[path]\n  }\n\n  // Handle string array notation (numeric indices only)\n  path = String(path).replace(/\\[(\\d+)]/g, '.$1')\n\n  const steps = path.split('.').filter(Boolean)\n\n  // Handle case where someone passes a string of only dots\n  if (steps.length === 0) {\n    return defaultValue\n  }\n\n  // Traverse path in object to find result\n  // We use `!=` vs `!==` to test for both `null` and `undefined`\n  // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n  // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n  return steps.every(step => isObject(obj) && step in obj && (obj = obj[step]) != null)\n    ? obj\n    : defaultValue\n}\n\nexport default get\n","import { deepFreeze } from './object'\n\n// General BootstrapVue configuration\n//\n// BREAKPOINT DEFINITIONS\n//\n// Some components (BCol and BFormGroup) generate props based on breakpoints, and this\n// occurs when the component is first loaded (evaluated), which may happen before the\n// config is created/modified\n//\n// To get around this we make these components async (lazy evaluation)\n// The component definition is only called/executed when the first access to the\n// component is used (and cached on subsequent uses)\n//\n// See: https://vuejs.org/v2/guide/components-dynamic-async.html#Async-Components\n//\n// PROP DEFAULTS\n//\n// For default values on props, we use the default value factory function approach so\n// so that the default values are pulled in at each component instantiation\n//\n//  props: {\n//    variant: {\n//      type: String,\n//      default: () => getConfigComponent('BAlert', 'variant')\n//    }\n//  }\n\n// prettier-ignore\nexport default deepFreeze({\n  // Breakpoints\n  breakpoints: ['xs', 'sm', 'md', 'lg', 'xl'],\n\n  // Component Specific defaults are keyed by the component\n  // name (PascalCase) and prop name (camelCase)\n  BAlert: {\n    dismissLabel: 'Close',\n    variant: 'info'\n  },\n  BBadge: {\n    variant: 'secondary'\n  },\n  BButton: {\n    variant: 'secondary'\n  },\n  BButtonClose: {\n    // `textVariant` is `null` to inherit the current text color\n    textVariant: null,\n    ariaLabel: 'Close'\n  },\n  BCardSubTitle: {\n    // BCard and BCardBody also inherit this prop\n    subTitleTextVariant: 'muted'\n  },\n  BCarousel: {\n    labelPrev: 'Previous Slide',\n    labelNext: 'Next Slide',\n    labelGotoSlide: 'Goto Slide',\n    labelIndicators: 'Select a slide to display'\n  },\n  BDropdown: {\n    toggleText: 'Toggle Dropdown',\n    variant: 'secondary',\n    splitVariant: null\n  },\n  BFormFile: {\n    browseText: 'Browse',\n    // Chrome default file prompt\n    placeholder: 'No file chosen',\n    dropPlaceholder: 'Drop files here'\n  },\n  BFormText: {\n    textVariant: 'muted'\n  },\n  BImg: {\n    blankColor: 'transparent'\n  },\n  BImgLazy: {\n    blankColor: 'transparent'\n  },\n  BJumbotron: {\n    bgVariant: null,\n    borderVariant: null,\n    textVariant: null\n  },\n  BListGroupItem: {\n    variant: null\n  },\n  BModal: {\n    titleTag: 'h5',\n    size: 'md',\n    headerBgVariant: null,\n    headerBorderVariant: null,\n    headerTextVariant: null,\n    headerCloseVariant: null,\n    bodyBgVariant: null,\n    bodyTextVariant: null,\n    footerBgVariant: null,\n    footerBorderVariant: null,\n    footerTextVariant: null,\n    cancelTitle: 'Cancel',\n    cancelVariant: 'secondary',\n    okTitle: 'OK',\n    okVariant: 'primary',\n    headerCloseLabel: 'Close'\n  },\n  BNavbar: {\n    variant: null\n  },\n  BNavbarToggle: {\n    label: 'Toggle navigation'\n  },\n  BPopover: {\n    boundary: 'scrollParent',\n    boundaryPadding: 5,\n    customClass: null,\n    delay: 0,\n    variant: null\n  },\n  BProgress: {\n    variant: null\n  },\n  BProgressBar: {\n    variant: null\n  },\n  BSpinner: {\n    variant: null\n  },\n  BTable: {\n    selectedVariant: 'primary',\n    headVariant: null,\n    footVariant: null\n  },\n  BToast: {\n    toaster: 'b-toaster-top-right',\n    autoHideDelay: 5000,\n    variant: null,\n    toastClass: null,\n    headerClass: null,\n    bodyClass: null,\n    solid: false\n  },\n  BToaster: {\n    ariaLive: null,\n    ariaAtomic: null,\n    role: null\n  },\n  BTooltip: {\n    boundary: 'scrollParent',\n    boundaryPadding: 5,\n    customClass: null,\n    delay: 0,\n    variant: null\n  }\n})\n","import OurVue from './vue'\nimport cloneDeep from './clone-deep'\nimport get from './get'\nimport warn from './warn'\nimport { isArray, isPlainObject, isString, isUndefined } from './inspect'\nimport { getOwnPropertyNames, hasOwnProperty } from './object'\nimport DEFAULTS from './config-defaults'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvConfig'\n\n// Config manager class\nclass BvConfig {\n  constructor() {\n    // TODO: pre-populate with default config values (needs updated tests)\n    // this.$_config = cloneDeep(DEFAULTS)\n    this.$_config = {}\n    this.$_cachedBreakpoints = null\n  }\n\n  static get Defaults() /* istanbul ignore next */ {\n    return DEFAULTS\n  }\n\n  get defaults() /* istanbul ignore next */ {\n    return DEFAULTS\n  }\n\n  // Returns the defaults\n  getDefaults() /* istanbul ignore next */ {\n    return this.defaults\n  }\n\n  // Method to merge in user config parameters\n  setConfig(config = {}) {\n    if (!isPlainObject(config)) {\n      /* istanbul ignore next */\n      return\n    }\n    const configKeys = getOwnPropertyNames(config)\n    configKeys.forEach(cmpName => {\n      /* istanbul ignore next */\n      if (!hasOwnProperty(DEFAULTS, cmpName)) {\n        warn(`config: unknown config property \"${cmpName}\"`)\n        return\n      }\n      const cmpConfig = config[cmpName]\n      if (cmpName === 'breakpoints') {\n        // Special case for breakpoints\n        const breakpoints = config.breakpoints\n        /* istanbul ignore if */\n        if (\n          !isArray(breakpoints) ||\n          breakpoints.length < 2 ||\n          breakpoints.some(b => !isString(b) || b.length === 0)\n        ) {\n          warn('config: \"breakpoints\" must be an array of at least 2 breakpoint names')\n        } else {\n          this.$_config.breakpoints = cloneDeep(breakpoints)\n        }\n      } else if (isPlainObject(cmpConfig)) {\n        // Component prop defaults\n        const props = getOwnPropertyNames(cmpConfig)\n        props.forEach(prop => {\n          /* istanbul ignore if */\n          if (!hasOwnProperty(DEFAULTS[cmpName], prop)) {\n            warn(`config: unknown config property \"${cmpName}.{$prop}\"`)\n          } else {\n            // TODO: If we pre-populate the config with defaults, we can skip this line\n            this.$_config[cmpName] = this.$_config[cmpName] || {}\n            if (!isUndefined(cmpConfig[prop])) {\n              this.$_config[cmpName][prop] = cloneDeep(cmpConfig[prop])\n            }\n          }\n        })\n      }\n    })\n  }\n\n  // Clear the config. For testing purposes only\n  resetConfig() {\n    this.$_config = {}\n  }\n\n  // Returns a deep copy of the user config\n  getConfig() {\n    return cloneDeep(this.$_config)\n  }\n\n  getConfigValue(key) {\n    // First we try the user config, and if key not found we fall back to default value\n    // NOTE: If we deep clone DEFAULTS into config, then we can skip the fallback for get\n    return cloneDeep(get(this.$_config, key, get(DEFAULTS, key)))\n  }\n}\n\n// Method for applying a global config\nexport const setConfig = (config = {}, Vue = OurVue) => {\n  // Ensure we have a $bvConfig Object on the Vue prototype.\n  // We set on Vue and OurVue just in case consumer has not set an alias of `vue`.\n  Vue.prototype[PROP_NAME] = OurVue.prototype[PROP_NAME] =\n    Vue.prototype[PROP_NAME] || OurVue.prototype[PROP_NAME] || new BvConfig()\n  // Apply the config values\n  Vue.prototype[PROP_NAME].setConfig(config)\n}\n\n// Method for resetting the user config. Exported for testing purposes only.\nexport const resetConfig = () => {\n  if (OurVue.prototype[PROP_NAME] && OurVue.prototype[PROP_NAME].resetConfig) {\n    OurVue.prototype[PROP_NAME].resetConfig()\n  }\n}\n","import { create } from './object'\n\nconst memoize = fn => {\n  const cache = create(null)\n\n  return (...args) => {\n    const argsKey = JSON.stringify(args)\n    return (cache[argsKey] = cache[argsKey] || fn.apply(null, args))\n  }\n}\n\nexport default memoize\n","import Vue from './vue'\nimport cloneDeep from './clone-deep'\nimport get from './get'\nimport memoize from './memoize'\nimport DEFAULTS from './config-defaults'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvConfig'\nconst VueProto = Vue.prototype\n\n// --- Getter methods ---\n// All methods return a deep clone (immutable) copy of the config\n// value, to prevent mutation of the user config object.\n\n// Get the current user config. For testing purposes only\nexport const getConfig = () => {\n  return VueProto[PROP_NAME] ? VueProto[PROP_NAME].getConfig() : {}\n}\n\n// Method to grab a config value based on a dotted/array notation key\nexport const getConfigValue = key => {\n  return VueProto[PROP_NAME]\n    ? VueProto[PROP_NAME].getConfigValue(key)\n    : cloneDeep(get(DEFAULTS, key))\n}\n\n// Method to grab a config value for a particular component\nexport const getComponentConfig = (cmpName, key = null) => {\n  // Return the particular config value for key for if specified,\n  // otherwise we return the full config (or an empty object if not found)\n  return key ? getConfigValue(`${cmpName}.${key}`) : getConfigValue(cmpName) || {}\n}\n\n// Convenience method for getting all breakpoint names\nexport const getBreakpoints = () => {\n  return getConfigValue('breakpoints')\n}\n\n// Private function for caching / locking-in breakpoint names\nconst _getBreakpointsCached = memoize(() => {\n  return getBreakpoints()\n})\n\n// Convenience method for getting all breakpoint names.\n// Caches the results after first access.\nexport const getBreakpointsCached = () => {\n  return cloneDeep(_getBreakpointsCached())\n}\n\n// Convenience method for getting breakpoints with\n// the smallest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\nexport const getBreakpointsUp = () => {\n  const breakpoints = getBreakpoints()\n  breakpoints[0] = ''\n  return breakpoints\n}\n\n// Convenience method for getting breakpoints with\n// the smallest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\n// Caches the results after first access.\nexport const getBreakpointsUpCached = memoize(() => {\n  const breakpoints = getBreakpointsCached()\n  breakpoints[0] = ''\n  return breakpoints\n})\n\n// Convenience method for getting breakpoints with\n// the largest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\nexport const getBreakpointsDown = () => {\n  const breakpoints = getBreakpoints()\n  breakpoints[breakpoints.length - 1] = ''\n  return breakpoints\n}\n\n// Convenience method for getting breakpoints with\n// the largest breakpoint set as ''.\n// Useful for components that create breakpoint specific props.\n// Caches the results after first access.\n/* istanbul ignore next: we don't use this method anywhere, yet */\nexport const getBreakpointsDownCached = () => /* istanbul ignore next */ {\n  const breakpoints = getBreakpointsCached()\n  breakpoints[breakpoints.length - 1] = ''\n  return breakpoints\n}\n","import { from as arrayFrom } from './array'\nimport { hasWindowSupport, hasDocumentSupport, hasPassiveEventSupport } from './env'\nimport { isFunction, isNull, isObject } from '../utils/inspect'\n\n// --- Constants ---\n\nconst w = hasWindowSupport ? window : {}\nconst d = hasDocumentSupport ? document : {}\nconst elProto = typeof Element !== 'undefined' ? Element.prototype : {}\n\n// --- Normalization utils ---\n\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n/* istanbul ignore next */\nexport const matchesEl =\n  elProto.matches || elProto.msMatchesSelector || elProto.webkitMatchesSelector\n\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n/* istanbul ignore next */\nexport const closestEl =\n  elProto.closest ||\n  function(sel) /* istanbul ignore next */ {\n    let el = this\n    do {\n      // Use our \"patched\" matches function\n      if (matches(el, sel)) {\n        return el\n      }\n      el = el.parentElement || el.parentNode\n    } while (!isNull(el) && el.nodeType === Node.ELEMENT_NODE)\n    return null\n  }\n\n// `requestAnimationFrame()` convenience method\nexport const requestAF =\n  w.requestAnimationFrame ||\n  w.webkitRequestAnimationFrame ||\n  w.mozRequestAnimationFrame ||\n  w.msRequestAnimationFrame ||\n  w.oRequestAnimationFrame ||\n  // Fallback, but not a true polyfill\n  // Only needed for Opera Mini\n  /* istanbul ignore next */\n  (cb => setTimeout(cb, 16))\n\nexport const MutationObs =\n  w.MutationObserver || w.WebKitMutationObserver || w.MozMutationObserver || null\n\n// --- Utils ---\n\n// Normalize event options based on support of passive option\n// Exported only for testing purposes\nexport const parseEventOptions = options => {\n  /* istanbul ignore else: can't test in JSDOM, as it supports passive */\n  if (hasPassiveEventSupport) {\n    return isObject(options) ? options : { useCapture: Boolean(options || false) }\n  } else {\n    // Need to translate to actual Boolean value\n    return Boolean(isObject(options) ? options.useCapture : options)\n  }\n}\n\n// Attach an event listener to an element\nexport const eventOn = (el, evtName, handler, options) => {\n  if (el && el.addEventListener) {\n    el.addEventListener(evtName, handler, parseEventOptions(options))\n  }\n}\n\n// Remove an event listener from an element\nexport const eventOff = (el, evtName, handler, options) => {\n  if (el && el.removeEventListener) {\n    el.removeEventListener(evtName, handler, parseEventOptions(options))\n  }\n}\n\n// Determine if an element is an HTML Element\nexport const isElement = el => Boolean(el && el.nodeType === Node.ELEMENT_NODE)\n\n// Determine if an HTML element is visible - Faster than CSS check\nexport const isVisible = el => {\n  if (!isElement(el) || !contains(d.body, el)) {\n    return false\n  }\n  if (el.style.display === 'none') {\n    // We do this check to help with vue-test-utils when using v-show\n    /* istanbul ignore next */\n    return false\n  }\n  // All browsers support getBoundingClientRect(), except JSDOM as it returns all 0's for values :(\n  // So any tests that need isVisible will fail in JSDOM\n  // Except when we override the getBCR prototype in some tests\n  const bcr = getBCR(el)\n  return Boolean(bcr && bcr.height > 0 && bcr.width > 0)\n}\n\n// Determine if an element is disabled\nexport const isDisabled = el =>\n  !isElement(el) || el.disabled || Boolean(getAttr(el, 'disabled')) || hasClass(el, 'disabled')\n\n// Cause/wait-for an element to reflow it's content (adjusting it's height/width)\nexport const reflow = el => {\n  // Requesting an elements offsetHight will trigger a reflow of the element content\n  /* istanbul ignore next: reflow doesn't happen in JSDOM */\n  return isElement(el) && el.offsetHeight\n}\n\n// Select all elements matching selector. Returns `[]` if none found\nexport const selectAll = (selector, root) =>\n  arrayFrom((isElement(root) ? root : d).querySelectorAll(selector))\n\n// Select a single element, returns `null` if not found\nexport const select = (selector, root) =>\n  (isElement(root) ? root : d).querySelector(selector) || null\n\n// Determine if an element matches a selector\nexport const matches = (el, selector) => {\n  if (!isElement(el)) {\n    return false\n  }\n  return matchesEl.call(el, selector)\n}\n\n// Finds closest element matching selector. Returns `null` if not found\nexport const closest = (selector, root) => {\n  if (!isElement(root)) {\n    return null\n  }\n  const el = closestEl.call(root, selector)\n  // Emulate jQuery closest and return `null` if match is the passed in element (root)\n  return el === root ? null : el\n}\n\n// Returns true if the parent element contains the child element\nexport const contains = (parent, child) => {\n  if (!parent || !isFunction(parent.contains)) {\n    return false\n  }\n  return parent.contains(child)\n}\n\n// Get an element given an ID\nexport const getById = id => d.getElementById(/^#/.test(id) ? id.slice(1) : id) || null\n\n// Add a class to an element\nexport const addClass = (el, className) => {\n  // We are checking for `el.classList` existence here since IE 11\n  // returns `undefined` for some elements (e.g. SVG elements)\n  // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n  if (className && isElement(el) && el.classList) {\n    el.classList.add(className)\n  }\n}\n\n// Remove a class from an element\nexport const removeClass = (el, className) => {\n  // We are checking for `el.classList` existence here since IE 11\n  // returns `undefined` for some elements (e.g. SVG elements)\n  // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n  if (className && isElement(el) && el.classList) {\n    el.classList.remove(className)\n  }\n}\n\n// Test if an element has a class\nexport const hasClass = (el, className) => {\n  // We are checking for `el.classList` existence here since IE 11\n  // returns `undefined` for some elements (e.g. SVG elements)\n  // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n  if (className && isElement(el) && el.classList) {\n    return el.classList.contains(className)\n  }\n  return false\n}\n\n// Set an attribute on an element\nexport const setAttr = (el, attr, val) => {\n  if (attr && isElement(el)) {\n    el.setAttribute(attr, val)\n  }\n}\n\n// Remove an attribute from an element\nexport const removeAttr = (el, attr) => {\n  if (attr && isElement(el)) {\n    el.removeAttribute(attr)\n  }\n}\n\n// Get an attribute value from an element\n// Returns `null` if not found\nexport const getAttr = (el, attr) => (attr && isElement(el) ? el.getAttribute(attr) : null)\n\n// Determine if an attribute exists on an element\n// Returns `true` or `false`, or `null` if element not found\nexport const hasAttr = (el, attr) => (attr && isElement(el) ? el.hasAttribute(attr) : null)\n\n// Return the Bounding Client Rect of an element\n// Returns `null` if not an element\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\nexport const getBCR = el => (isElement(el) ? el.getBoundingClientRect() : null)\n\n// Get computed style object for an element\n/* istanbul ignore next: getComputedStyle() doesn't work in JSDOM */\nexport const getCS = el => (hasWindowSupport && isElement(el) ? w.getComputedStyle(el) : {})\n\n// Returns a `Selection` object representing the range of text selected\n// Returns `null` if no window support is given\n/* istanbul ignore next: getSelection() doesn't work in JSDOM */\nexport const getSel = () => (hasWindowSupport && w.getSelection ? w.getSelection() : null)\n\n// Return an element's offset with respect to document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\nexport const offset = el => /* istanbul ignore next: getBoundingClientRect(), getClientRects() doesn't work in JSDOM */ {\n  const _offset = { top: 0, left: 0 }\n  if (!isElement(el) || el.getClientRects().length === 0) {\n    return _offset\n  }\n  const bcr = getBCR(el)\n  if (bcr) {\n    const win = el.ownerDocument.defaultView\n    _offset.top = bcr.top + win.pageYOffset\n    _offset.left = bcr.left + win.pageXOffset\n  }\n  return _offset\n}\n\n// Return an element's offset with respect to to it's offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\nexport const position = el => /* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */ {\n  let _offset = { top: 0, left: 0 }\n  if (!isElement(el)) {\n    return _offset\n  }\n  let parentOffset = { top: 0, left: 0 }\n  const elStyles = getCS(el)\n  if (elStyles.position === 'fixed') {\n    _offset = getBCR(el) || _offset\n  } else {\n    _offset = offset(el)\n    const doc = el.ownerDocument\n    let offsetParent = el.offsetParent || doc.documentElement\n    while (\n      offsetParent &&\n      (offsetParent === doc.body || offsetParent === doc.documentElement) &&\n      getCS(offsetParent).position === 'static'\n    ) {\n      offsetParent = offsetParent.parentNode\n    }\n    if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n      parentOffset = offset(offsetParent)\n      const offsetParentStyles = getCS(offsetParent)\n      parentOffset.top += parseFloat(offsetParentStyles.borderTopWidth)\n      parentOffset.left += parseFloat(offsetParentStyles.borderLeftWidth)\n    }\n  }\n  return {\n    top: _offset.top - parentOffset.top - parseFloat(elStyles.marginTop),\n    left: _offset.left - parentOffset.left - parseFloat(elStyles.marginLeft)\n  }\n}\n","var e=function(){return(e=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},t={kebab:/-(\\w)/g,styleProp:/:(.*)/,styleList:/;(?![^(]*\\))/g};function r(e,t){return t?t.toUpperCase():\"\"}function s(e){for(var s,a={},c=0,o=e.split(t.styleList);c<o.length;c++){var n=o[c].split(t.styleProp),i=n[0],l=n[1];(i=i.trim())&&(\"string\"==typeof l&&(l=l.trim()),a[(s=i,s.replace(t.kebab,r))]=l)}return a}function a(){for(var t,r,a={},c=arguments.length;c--;)for(var o=0,n=Object.keys(arguments[c]);o<n.length;o++)switch(t=n[o]){case\"class\":case\"style\":case\"directives\":if(Array.isArray(a[t])||(a[t]=[]),\"style\"===t){var i=void 0;i=Array.isArray(arguments[c].style)?arguments[c].style:[arguments[c].style];for(var l=0;l<i.length;l++){var y=i[l];\"string\"==typeof y&&(i[l]=s(y))}arguments[c].style=i}a[t]=a[t].concat(arguments[c][t]);break;case\"staticClass\":if(!arguments[c][t])break;void 0===a[t]&&(a[t]=\"\"),a[t]&&(a[t]+=\" \"),a[t]+=arguments[c][t].trim();break;case\"on\":case\"nativeOn\":a[t]||(a[t]={});for(var p=0,f=Object.keys(arguments[c][t]||{});p<f.length;p++)r=f[p],a[t][r]?a[t][r]=[].concat(a[t][r],arguments[c][t][r]):a[t][r]=arguments[c][t][r];break;case\"attrs\":case\"props\":case\"domProps\":case\"scopedSlots\":case\"staticStyle\":case\"hook\":case\"transition\":a[t]||(a[t]={}),a[t]=e({},arguments[c][t],a[t]);break;case\"slot\":case\"key\":case\"ref\":case\"tag\":case\"show\":case\"keepAlive\":default:a[t]||(a[t]=arguments[c][t])}return a}export{a as mergeData};\n//# sourceMappingURL=lib.esm.js.map\n","// Generic Bootstrap v4 fade (no-fade) transition component\n\nimport Vue from './vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { isPlainObject } from './inspect'\n\nconst NO_FADE_PROPS = {\n  name: '',\n  enterClass: '',\n  enterActiveClass: '',\n  enterToClass: 'show',\n  leaveClass: 'show',\n  leaveActiveClass: '',\n  leaveToClass: ''\n}\n\nconst FADE_PROPS = {\n  ...NO_FADE_PROPS,\n  enterActiveClass: 'fade',\n  leaveActiveClass: 'fade'\n}\n\nexport const BVTransition = /*#__PURE__*/ Vue.extend({\n  name: 'BVTransition',\n  functional: true,\n  props: {\n    noFade: {\n      // Only applicable to the built in transition\n      // Has no effect if `trans-props` provided\n      type: Boolean,\n      default: false\n    },\n    mode: {\n      type: String\n      // default: undefined\n    },\n    // For user supplied transitions (if needed)\n    transProps: {\n      type: Object,\n      default: null\n    }\n  },\n  render(h, { children, data, listeners, props }) {\n    let transProps = props.transProps\n    if (!isPlainObject(transProps)) {\n      transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS\n    }\n    transProps = {\n      mode: props.mode,\n      ...transProps,\n      // We always need `css` true\n      css: true\n    }\n    return h(\n      'transition',\n      // Any listeners will get merged here\n      mergeData(data, { props: transProps }),\n      children\n    )\n  }\n})\n\nexport default BVTransition\n","import { isFunction } from './inspect'\n\n// Note for functional components:\n// In functional components, `slots` is a function so it must be called\n// first before passing to the below methods. `scopedSlots` is always an\n// object and may be undefined (for Vue < 2.6.x)\n\n/**\n * Returns true if either scoped or unscoped named slot exists\n *\n * @param {String} name\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} vNodes\n */\nconst hasNormalizedSlot = (name, $scopedSlots = {}, $slots = {}) => {\n  // Returns true if the either a $scopedSlot or $slot exists with the specified name\n  return Boolean($scopedSlots[name] || $slots[name])\n}\n\n/**\n * Returns vNodes for named slot either scoped or unscoped\n *\n * @param {String} name\n * @param {String} scope\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} vNodes\n */\nconst normalizeSlot = (name, scope = {}, $scopedSlots = {}, $slots = {}) => {\n  // Note: in Vue 2.6.x, all names slots are also scoped slots\n  const slot = $scopedSlots[name] || $slots[name]\n  return isFunction(slot) ? slot(scope) : slot\n}\n\n// Named exports\nexport { hasNormalizedSlot, normalizeSlot }\n\n// Default export (backwards compatibility)\nexport default normalizeSlot\n","import { hasNormalizedSlot, normalizeSlot } from '../utils/normalize-slot'\nimport { concat } from '../utils/array'\n\nexport default {\n  methods: {\n    hasNormalizedSlot(name) {\n      // Returns true if the either a $scopedSlot or $slot exists with the specified name\n      return hasNormalizedSlot(name, this.$scopedSlots, this.$slots)\n    },\n    normalizeSlot(name, scope = {}) {\n      // Returns an array of rendered vNodes if slot found.\n      // Returns undefined if not found.\n      const vNodes = normalizeSlot(name, scope, this.$scopedSlots, this.$slots)\n      return vNodes ? concat(vNodes) : vNodes\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { isEvent } from '../../utils/inspect'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\n\nconst NAME = 'BButtonClose'\n\nconst props = {\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  ariaLabel: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'ariaLabel')\n  },\n  textVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'textVariant')\n  }\n}\n\n// @vue/component\nexport const BButtonClose = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, listeners, slots, scopedSlots }) {\n    const $slots = slots()\n    const $scopedSlots = scopedSlots || {}\n\n    const componentData = {\n      staticClass: 'close',\n      class: {\n        [`text-${props.textVariant}`]: props.textVariant\n      },\n      attrs: {\n        type: 'button',\n        disabled: props.disabled,\n        'aria-label': props.ariaLabel ? String(props.ariaLabel) : null\n      },\n      on: {\n        click(evt) {\n          // Ensure click on button HTML content is also disabled\n          /* istanbul ignore if: bug in JSDOM still emits click on inner element */\n          if (props.disabled && isEvent(evt)) {\n            evt.stopPropagation()\n            evt.preventDefault()\n          }\n        }\n      }\n    }\n    // Careful not to override the default slot with innerHTML\n    if (!hasNormalizedSlot('default', $scopedSlots, $slots)) {\n      componentData.domProps = { innerHTML: '&times;' }\n    }\n    return h(\n      'button',\n      mergeData(data, componentData),\n      normalizeSlot('default', {}, $scopedSlots, $slots)\n    )\n  }\n})\n\nexport default BButtonClose\n","import Vue from '../../utils/vue'\nimport { getComponentConfig } from '../../utils/config'\nimport { requestAF } from '../../utils/dom'\nimport { isBoolean } from '../../utils/inspect'\nimport BVTransition from '../../utils/bv-transition'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BButtonClose } from '../button/button-close'\n\nconst NAME = 'BAlert'\n\n// Convert `show` value to a number\nconst parseCountDown = show => {\n  if (show === '' || isBoolean(show)) {\n    return 0\n  }\n  show = parseInt(show, 10)\n  return show > 0 ? show : 0\n}\n\n// Convert `show` value to a boolean\nconst parseShow = show => {\n  if (show === '' || show === true) {\n    return true\n  }\n  if (parseInt(show, 10) < 1) {\n    // Boolean will always return false for the above comparison\n    return false\n  }\n  return Boolean(show)\n}\n\n// Is a value number like (i.e. a number or a number as string)\nconst isNumericLike = value => !isNaN(parseInt(value, 10))\n\n// @vue/component\nexport const BAlert = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [normalizeSlotMixin],\n  model: {\n    prop: 'show',\n    event: 'input'\n  },\n  props: {\n    variant: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'variant')\n    },\n    dismissible: {\n      type: Boolean,\n      default: false\n    },\n    dismissLabel: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'dismissLabel')\n    },\n    show: {\n      type: [Boolean, Number, String],\n      default: false\n    },\n    fade: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      countDownTimerId: null,\n      countDown: 0,\n      // If initially shown, we need to set these for SSR\n      localShow: parseShow(this.show)\n    }\n  },\n  watch: {\n    show(newVal) {\n      this.countDown = parseCountDown(newVal)\n      this.localShow = parseShow(newVal)\n    },\n    countDown(newVal) {\n      this.clearTimer()\n      if (isNumericLike(this.show)) {\n        // Ignore if this.show transitions to a boolean value.\n        this.$emit('dismiss-count-down', newVal)\n        if (this.show !== newVal) {\n          // Update the v-model if needed\n          this.$emit('input', newVal)\n        }\n        if (newVal > 0) {\n          this.localShow = true\n          this.countDownTimerId = setTimeout(() => {\n            this.countDown--\n          }, 1000)\n        } else {\n          // Slightly delay the hide to allow any UI updates\n          this.$nextTick(() => {\n            requestAF(() => {\n              this.localShow = false\n            })\n          })\n        }\n      }\n    },\n    localShow(newVal) {\n      if (!newVal && (this.dismissible || isNumericLike(this.show))) {\n        // Only emit dismissed events for dismissible or auto dismissing alerts\n        this.$emit('dismissed')\n      }\n      if (!isNumericLike(this.show) && this.show !== newVal) {\n        // Only emit booleans if we weren't passed a number via `this.show`\n        this.$emit('input', newVal)\n      }\n    }\n  },\n  created() {\n    this.countDown = parseCountDown(this.show)\n    this.localShow = parseShow(this.show)\n  },\n  mounted() {\n    this.countDown = parseCountDown(this.show)\n    this.localShow = parseShow(this.show)\n  },\n  beforeDestroy() {\n    this.clearTimer()\n  },\n  methods: {\n    dismiss() {\n      this.clearTimer()\n      this.countDown = 0\n      this.localShow = false\n    },\n    clearTimer() {\n      if (this.countDownTimerId) {\n        clearInterval(this.countDownTimerId)\n        this.countDownTimerId = null\n      }\n    }\n  },\n  render(h) {\n    let $alert // undefined\n    if (this.localShow) {\n      let $dismissBtn = h()\n      if (this.dismissible) {\n        // Add dismiss button\n        $dismissBtn = h(\n          BButtonClose,\n          { attrs: { 'aria-label': this.dismissLabel }, on: { click: this.dismiss } },\n          [this.normalizeSlot('dismiss')]\n        )\n      }\n      $alert = h(\n        'div',\n        {\n          key: this._uid,\n          staticClass: 'alert',\n          class: {\n            'alert-dismissible': this.dismissible,\n            [`alert-${this.variant}`]: this.variant\n          },\n          attrs: { role: 'alert', 'aria-live': 'polite', 'aria-atomic': true }\n        },\n        [$dismissBtn, this.normalizeSlot('default')]\n      )\n      $alert = [$alert]\n    }\n    return h(BVTransition, { props: { noFade: !this.fade } }, $alert)\n  }\n})\n\nexport default BAlert\n","import { BAlert } from './alert'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst AlertPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BAlert }\n})\n\nexport { AlertPlugin, BAlert }\n\nexport default AlertPlugin\n","const identity = x => x\n\nexport default identity\n","import identity from './identity'\nimport { isArray } from './inspect'\nimport { keys } from './object'\n\n/**\n * Given an array of properties or an object of property keys,\n * plucks all the values off the target object, returning a new object\n * that has props that reference the original prop values\n *\n * @param {{}|string[]} keysToPluck\n * @param {{}} objToPluck\n * @param {Function} transformFn\n * @return {{}}\n */\nconst pluckProps = (keysToPluck, objToPluck, transformFn = identity) =>\n  (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce((memo, prop) => {\n    memo[transformFn(prop)] = objToPluck[prop]\n    return memo\n  }, {})\n\nexport default pluckProps\n","import { isArray, isPlainObject, isUndefinedOrNull } from './inspect'\n\n/**\n * Convert a value to a string that can be rendered.\n */\nconst toString = (val, spaces = 2) => {\n  return isUndefinedOrNull(val)\n    ? ''\n    : isArray(val) || (isPlainObject(val) && val.toString === Object.prototype.toString)\n      ? JSON.stringify(val, null, spaces)\n      : String(val)\n}\n\nexport default toString\n","import toString from './to-string'\nimport { isArray, isNull, isPlainObject, isString, isUndefined } from './inspect'\nimport { keys } from './object'\n\nconst ANCHOR_TAG = 'a'\n\n// Precompile RegExp\nconst commaRE = /%2C/g\nconst encodeReserveRE = /[!'()*]/g\n// Method to replace reserved chars\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16)\n\n// Fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nconst encode = str =>\n  encodeURIComponent(toString(str))\n    .replace(encodeReserveRE, encodeReserveReplacer)\n    .replace(commaRE, ',')\n\nconst decode = decodeURIComponent\n\n// Stringifies an object of query parameters\n// See: https://github.com/vuejs/vue-router/blob/dev/src/util/query.js\nexport const stringifyQueryObj = obj => {\n  if (!isPlainObject(obj)) {\n    return ''\n  }\n\n  const query = keys(obj)\n    .map(key => {\n      const val = obj[key]\n      if (isUndefined(val)) {\n        return ''\n      } else if (isNull(val)) {\n        return encode(key)\n      } else if (isArray(val)) {\n        return val\n          .reduce((results, val2) => {\n            if (isNull(val2)) {\n              results.push(encode(key))\n            } else if (!isUndefined(val2)) {\n              // Faster than string interpolation\n              results.push(encode(key) + '=' + encode(val2))\n            }\n            return results\n          }, [])\n          .join('&')\n      }\n      // Faster than string interpolation\n      return encode(key) + '=' + encode(val)\n    })\n    /* must check for length, as we only want to filter empty strings, not things that look falsey! */\n    .filter(x => x.length > 0)\n    .join('&')\n\n  return query ? `?${query}` : ''\n}\n\nexport const parseQuery = query => {\n  const parsed = {}\n  query = toString(query)\n    .trim()\n    .replace(/^(\\?|#|&)/, '')\n\n  if (!query) {\n    return parsed\n  }\n\n  query.split('&').forEach(param => {\n    const parts = param.replace(/\\+/g, ' ').split('=')\n    const key = decode(parts.shift())\n    const val = parts.length > 0 ? decode(parts.join('=')) : null\n\n    if (isUndefined(parsed[key])) {\n      parsed[key] = val\n    } else if (isArray(parsed[key])) {\n      parsed[key].push(val)\n    } else {\n      parsed[key] = [parsed[key], val]\n    }\n  })\n\n  return parsed\n}\n\nexport const isRouterLink = tag => toString(tag).toLowerCase() !== ANCHOR_TAG\n\nexport const computeTag = ({ to, disabled } = {}, thisOrParent) => {\n  return thisOrParent.$router && to && !disabled\n    ? thisOrParent.$nuxt\n      ? 'nuxt-link'\n      : 'router-link'\n    : ANCHOR_TAG\n}\n\nexport const computeRel = ({ target, rel } = {}) => {\n  if (target === '_blank' && isNull(rel)) {\n    return 'noopener'\n  }\n  return rel || null\n}\n\nexport const computeHref = (\n  { href, to } = {},\n  tag = ANCHOR_TAG,\n  fallback = '#',\n  toFallback = '/'\n) => {\n  // We've already checked the $router in computeTag(), so isRouterLink() indicates a live router.\n  // When deferring to Vue Router's router-link, don't use the href attribute at all.\n  // We return null, and then remove href from the attributes passed to router-link\n  if (isRouterLink(tag)) {\n    return null\n  }\n\n  // Return `href` when explicitly provided\n  if (href) {\n    return href\n  }\n\n  // Reconstruct `href` when `to` used, but no router\n  if (to) {\n    // Fallback to `to` prop (if `to` is a string)\n    if (isString(to)) {\n      return to || toFallback\n    }\n    // Fallback to `to.path + to.query + to.hash` prop (if `to` is an object)\n    if (isPlainObject(to) && (to.path || to.query || to.hash)) {\n      const path = toString(to.path)\n      const query = stringifyQueryObj(to.query)\n      let hash = toString(to.hash)\n      hash = !hash || hash.charAt(0) === '#' ? hash : `#${hash}`\n      return `${path}${query}${hash}` || toFallback\n    }\n  }\n\n  // If nothing is provided return the fallback\n  return fallback\n}\n","import Vue from '../../utils/vue'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { concat } from '../../utils/array'\nimport { isEvent, isFunction, isUndefined } from '../../utils/inspect'\nimport { computeHref, computeRel, computeTag, isRouterLink } from '../../utils/router'\n\n/**\n * The Link component is used in many other BV components.\n * As such, sharing its props makes supporting all its features easier.\n * However, some components need to modify the defaults for their own purpose.\n * Prefer sharing a fresh copy of the props to ensure mutations\n * do not affect other component references to the props.\n *\n * https://github.com/vuejs/vue-router/blob/dev/src/components/link.js\n * @return {{}}\n */\nexport const propsFactory = () => ({\n  href: {\n    type: String,\n    default: null\n  },\n  rel: {\n    type: String,\n    default: null\n  },\n  target: {\n    type: String,\n    default: '_self'\n  },\n  active: {\n    type: Boolean,\n    default: false\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  // router-link specific props\n  to: {\n    type: [String, Object],\n    default: null\n  },\n  append: {\n    type: Boolean,\n    default: false\n  },\n  replace: {\n    type: Boolean,\n    default: false\n  },\n  event: {\n    type: [String, Array],\n    default: 'click'\n  },\n  activeClass: {\n    type: String\n    // default: undefined\n  },\n  exact: {\n    type: Boolean,\n    default: false\n  },\n  exactActiveClass: {\n    type: String\n    // default: undefined\n  },\n  routerTag: {\n    type: String,\n    default: 'a'\n  },\n  // nuxt-link specific prop(s)\n  noPrefetch: {\n    type: Boolean,\n    default: false\n  }\n})\n\nexport const props = propsFactory()\n\n// @vue/component\nexport const BLink = /*#__PURE__*/ Vue.extend({\n  name: 'BLink',\n  mixins: [normalizeSlotMixin],\n  inheritAttrs: false,\n  props: propsFactory(),\n  computed: {\n    computedTag() {\n      // We don't pass `this` as the first arg as we need reactivity of the props\n      return computeTag({ to: this.to, disabled: this.disabled }, this)\n    },\n    isRouterLink() {\n      return isRouterLink(this.computedTag)\n    },\n    computedRel() {\n      // We don't pass `this` as the first arg as we need reactivity of the props\n      return computeRel({ target: this.target, rel: this.rel })\n    },\n    computedHref() {\n      // We don't pass `this` as the first arg as we need reactivity of the props\n      return computeHref({ to: this.to, href: this.href }, this.computedTag)\n    },\n    computedProps() {\n      return this.isRouterLink ? { ...this.$props, tag: this.routerTag } : {}\n    }\n  },\n  methods: {\n    onClick(evt) {\n      const evtIsEvent = isEvent(evt)\n      const isRouterLink = this.isRouterLink\n      const suppliedHandler = this.$listeners.click\n      if (evtIsEvent && this.disabled) {\n        // Stop event from bubbling up\n        evt.stopPropagation()\n        // Kill the event loop attached to this specific `EventTarget`\n        // Needed to prevent `vue-router` for doing it's thing\n        evt.stopImmediatePropagation()\n      } else {\n        /* istanbul ignore next: difficult to test, but we know it works */\n        if (isRouterLink && evt.currentTarget.__vue__) {\n          // Router links do not emit instance `click` events, so we\n          // add in an $emit('click', evt) on it's vue instance\n          evt.currentTarget.__vue__.$emit('click', evt)\n        }\n        // Call the suppliedHandler(s), if any provided\n        concat(suppliedHandler)\n          .filter(h => isFunction(h))\n          .forEach(handler => {\n            handler(...arguments)\n          })\n        // Emit the global $root click event\n        this.$root.$emit('clicked::link', evt)\n      }\n      // Stop scroll-to-top behavior or navigation on\n      // regular links when href is just '#'\n      if (evtIsEvent && (this.disabled || (!isRouterLink && this.computedHref === '#'))) {\n        evt.preventDefault()\n      }\n    },\n    focus() {\n      if (this.$el && this.$el.focus) {\n        this.$el.focus()\n      }\n    },\n    blur() {\n      if (this.$el && this.$el.blur) {\n        this.$el.blur()\n      }\n    }\n  },\n  render(h) {\n    const tag = this.computedTag\n    const rel = this.computedRel\n    const href = this.computedHref\n    const isRouterLink = this.isRouterLink\n\n    // We want to overwrite any click handler since our callback\n    // will invoke the user supplied handler9s) if !props.disabled\n    const handlers = { ...this.$listeners, click: this.onClick }\n\n    const componentData = {\n      class: { active: this.active, disabled: this.disabled },\n      attrs: {\n        ...this.$attrs,\n        rel,\n        target: this.target,\n        tabindex: this.disabled\n          ? '-1'\n          : isUndefined(this.$attrs.tabindex)\n            ? null\n            : this.$attrs.tabindex,\n        'aria-disabled': this.disabled ? 'true' : null\n      },\n      props: this.computedProps,\n      on: isRouterLink ? {} : handlers,\n      nativeOn: isRouterLink ? handlers : {}\n    }\n\n    // If href attribute exists on <router-link> (even undefined or null) it fails working on\n    // SSR, so we explicitly add it here if needed (i.e. if computedHref() is truthy)\n    if (href) {\n      componentData.attrs.href = href\n    } else {\n      // Ensure the prop HREF does not exist for router links\n      delete componentData.props.href\n    }\n\n    return h(tag, componentData, this.normalizeSlot('default'))\n  }\n})\n\nexport default BLink\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport pluckProps from '../../utils/pluck-props'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nconst NAME = 'BBadge'\n\nconst linkProps = linkPropsFactory()\ndelete linkProps.href.default\ndelete linkProps.to.default\n\nexport const props = {\n  ...linkProps,\n  tag: {\n    type: String,\n    default: 'span'\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  pill: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BBadge = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    const tag = !props.href && !props.to ? props.tag : BLink\n\n    const componentData = {\n      staticClass: 'badge',\n      class: [\n        props.variant ? `badge-${props.variant}` : 'badge-secondary',\n        {\n          'badge-pill': Boolean(props.pill),\n          active: props.active,\n          disabled: props.disabled\n        }\n      ],\n      props: pluckProps(linkProps, props)\n    }\n\n    return h(tag, mergeData(data, componentData), children)\n  }\n})\n\nexport default BBadge\n","import { BBadge } from './badge'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst BadgePlugin = /*#__PURE__*/ pluginFactory({\n  components: { BBadge }\n})\n\nexport { BadgePlugin, BBadge }\n\nexport default BadgePlugin\n","const stripTagsRegex = /(<([^>]+)>)/gi\n\n// Removes any thing that looks like an HTML tag from the supplied string\nexport const stripTags = (text = '') => String(text).replace(stripTagsRegex, '')\n\n// Generate a domProps object for either innerHTML, textContent or nothing\nexport const htmlOrText = (innerHTML, textContent) => {\n  return innerHTML ? { innerHTML } : textContent ? { textContent } : {}\n}\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { htmlOrText } from '../../utils/html'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nexport const props = {\n  ...linkPropsFactory(),\n  text: {\n    type: String,\n    default: null\n  },\n  html: {\n    type: String,\n    default: null\n  },\n  ariaCurrent: {\n    type: String,\n    default: 'location'\n  }\n}\n\n// @vue/component\nexport const BBreadcrumbLink = /*#__PURE__*/ Vue.extend({\n  name: 'BBreadcrumbLink',\n  functional: true,\n  props,\n  render(h, { props: suppliedProps, data, children }) {\n    const tag = suppliedProps.active ? 'span' : BLink\n\n    const componentData = { props: pluckProps(props, suppliedProps) }\n    if (suppliedProps.active) {\n      componentData.attrs = { 'aria-current': suppliedProps.ariaCurrent }\n    }\n\n    if (!children) {\n      componentData.domProps = htmlOrText(suppliedProps.html, suppliedProps.text)\n    }\n\n    return h(tag, mergeData(data, componentData), children)\n  }\n})\n\nexport default BBreadcrumbLink\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BBreadcrumbLink, props } from './breadcrumb-link'\n\n// @vue/component\nexport const BBreadcrumbItem = /*#__PURE__*/ Vue.extend({\n  name: 'BBreadcrumbItem',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      'li',\n      mergeData(data, {\n        staticClass: 'breadcrumb-item',\n        class: { active: props.active }\n      }),\n      [h(BBreadcrumbLink, { props }, children)]\n    )\n  }\n})\n\nexport default BBreadcrumbItem\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport toString from '../../utils/to-string'\nimport { isArray, isObject } from '../../utils/inspect'\nimport { BBreadcrumbItem } from './breadcrumb-item'\n\nexport const props = {\n  items: {\n    type: Array,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BBreadcrumb = /*#__PURE__*/ Vue.extend({\n  name: 'BBreadcrumb',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    let childNodes = children\n    // Build child nodes from items if given.\n    if (isArray(props.items)) {\n      let activeDefined = false\n      childNodes = props.items.map((item, idx) => {\n        if (!isObject(item)) {\n          item = { text: toString(item) }\n        }\n        // Copy the value here so we can normalize it.\n        let active = item.active\n        if (active) {\n          activeDefined = true\n        }\n        if (!active && !activeDefined) {\n          // Auto-detect active by position in list.\n          active = idx + 1 === props.items.length\n        }\n\n        return h(BBreadcrumbItem, { props: { ...item, active } })\n      })\n    }\n\n    return h('ol', mergeData(data, { staticClass: 'breadcrumb' }), childNodes)\n  }\n})\n\nexport default BBreadcrumb\n","import { BBreadcrumb } from './breadcrumb'\nimport { BBreadcrumbItem } from './breadcrumb-item'\nimport { BBreadcrumbLink } from './breadcrumb-link'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst BreadcrumbPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BBreadcrumb, BBreadcrumbItem, BBreadcrumbLink }\n})\n\nexport { BreadcrumbPlugin, BBreadcrumb, BBreadcrumbItem, BBreadcrumbLink }\n\nexport default BreadcrumbPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { concat } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { addClass, removeClass } from '../../utils/dom'\nimport { isBoolean, isEvent, isFunction } from '../../utils/inspect'\nimport { keys } from '../../utils/object'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\n// --- Constants --\n\nconst NAME = 'BButton'\n\nconst btnProps = {\n  block: {\n    type: Boolean,\n    default: false\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  size: {\n    type: String,\n    default: null\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  type: {\n    type: String,\n    default: 'button'\n  },\n  tag: {\n    type: String,\n    default: 'button'\n  },\n  pill: {\n    type: Boolean,\n    default: false\n  },\n  squared: {\n    type: Boolean,\n    default: false\n  },\n  pressed: {\n    // tri-state prop: true, false or null\n    // => on, off, not a toggle\n    type: Boolean,\n    default: null\n  }\n}\n\nconst linkProps = linkPropsFactory()\ndelete linkProps.href.default\ndelete linkProps.to.default\nconst linkPropKeys = keys(linkProps)\n\nexport const props = { ...linkProps, ...btnProps }\n\n// --- Helper methods ---\n\n// Focus handler for toggle buttons.  Needs class of 'focus' when focused.\nconst handleFocus = evt => {\n  if (evt.type === 'focusin') {\n    addClass(evt.target, 'focus')\n  } else if (evt.type === 'focusout') {\n    removeClass(evt.target, 'focus')\n  }\n}\n\n// Is the requested button a link?\nconst isLink = props => {\n  // If tag prop is set to `a`, we use a b-link to get proper disabled handling\n  return Boolean(props.href || props.to || (props.tag && String(props.tag).toLowerCase() === 'a'))\n}\n\n// Is the button to be a toggle button?\nconst isToggle = props => isBoolean(props.pressed)\n\n// Is the button \"really\" a button?\nconst isButton = props => {\n  if (isLink(props)) {\n    return false\n  } else if (props.tag && String(props.tag).toLowerCase() !== 'button') {\n    return false\n  }\n  return true\n}\n\n// Is the requested tag not a button or link?\nconst isNonStandardTag = props => !isLink(props) && !isButton(props)\n\n// Compute required classes (non static classes)\nconst computeClass = props => [\n  `btn-${props.variant || getComponentConfig(NAME, 'variant')}`,\n  {\n    [`btn-${props.size}`]: Boolean(props.size),\n    'btn-block': props.block,\n    'rounded-pill': props.pill,\n    'rounded-0': props.squared && !props.pill,\n    disabled: props.disabled,\n    active: props.pressed\n  }\n]\n\n// Compute the link props to pass to b-link (if required)\nconst computeLinkProps = props => (isLink(props) ? pluckProps(linkPropKeys, props) : null)\n\n// Compute the attributes for a button\nconst computeAttrs = (props, data) => {\n  const button = isButton(props)\n  const link = isLink(props)\n  const toggle = isToggle(props)\n  const nonStdTag = isNonStandardTag(props)\n  const role = data.attrs && data.attrs['role'] ? data.attrs['role'] : null\n  let tabindex = data.attrs ? data.attrs['tabindex'] : null\n  if (nonStdTag) {\n    tabindex = '0'\n  }\n  return {\n    // Type only used for \"real\" buttons\n    type: button && !link ? props.type : null,\n    // Disabled only set on \"real\" buttons\n    disabled: button ? props.disabled : null,\n    // We add a role of button when the tag is not a link or button for ARIA.\n    // Don't bork any role provided in data.attrs when isLink or isButton\n    role: nonStdTag ? 'button' : role,\n    // We set the aria-disabled state for non-standard tags\n    'aria-disabled': nonStdTag ? String(props.disabled) : null,\n    // For toggles, we need to set the pressed state for ARIA\n    'aria-pressed': toggle ? String(props.pressed) : null,\n    // autocomplete off is needed in toggle mode to prevent some browsers from\n    // remembering the previous setting when using the back button.\n    autocomplete: toggle ? 'off' : null,\n    // Tab index is used when the component is not a button.\n    // Links are tabbable, but don't allow disabled, while non buttons or links\n    // are not tabbable, so we mimic that functionality by disabling tabbing\n    // when disabled, and adding a tabindex of '0' to non buttons or non links.\n    tabindex: props.disabled && !button ? '-1' : tabindex\n  }\n}\n\n// @vue/component\nexport const BButton = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, listeners, children }) {\n    const toggle = isToggle(props)\n    const link = isLink(props)\n    const on = {\n      click(evt) {\n        /* istanbul ignore if: blink/button disabled should handle this */\n        if (props.disabled && isEvent(evt)) {\n          evt.stopPropagation()\n          evt.preventDefault()\n        } else if (toggle && listeners && listeners['update:pressed']) {\n          // Send .sync updates to any \"pressed\" prop (if .sync listeners)\n          // Concat will normalize the value to an array\n          // without double wrapping an array value in an array.\n          concat(listeners['update:pressed']).forEach(fn => {\n            if (isFunction(fn)) {\n              fn(!props.pressed)\n            }\n          })\n        }\n      }\n    }\n\n    if (toggle) {\n      on.focusin = handleFocus\n      on.focusout = handleFocus\n    }\n\n    const componentData = {\n      staticClass: 'btn',\n      class: computeClass(props),\n      props: computeLinkProps(props),\n      attrs: computeAttrs(props, data),\n      on\n    }\n\n    return h(link ? BLink : props.tag, mergeData(data, componentData), children)\n  }\n})\n\nexport default BButton\n","import { BButton } from './button'\nimport { BButtonClose } from './button-close'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ButtonPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BButton,\n    BBtn: BButton,\n    BButtonClose,\n    BBtnClose: BButtonClose\n  }\n})\n\nexport { ButtonPlugin, BButton, BButtonClose }\n\nexport default ButtonPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  vertical: {\n    type: Boolean,\n    default: false\n  },\n  size: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  ariaRole: {\n    type: String,\n    default: 'group'\n  }\n}\n\n// @vue/component\nexport const BButtonGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BButtonGroup',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          'btn-group': !props.vertical,\n          'btn-group-vertical': props.vertical,\n          [`btn-group-${props.size}`]: Boolean(props.size)\n        },\n        attrs: { role: props.ariaRole }\n      }),\n      children\n    )\n  }\n})\n\nexport default BButtonGroup\n","import { BButtonGroup } from './button-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ButtonGroupPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BButtonGroup,\n    BBtnGroup: BButtonGroup\n  }\n})\n\nexport { ButtonGroupPlugin, BButtonGroup }\n\nexport default ButtonGroupPlugin\n","/*\n * Key Codes (events)\n */\n\nconst KEY_CODES = {\n  SPACE: 32,\n  ENTER: 13,\n  ESC: 27,\n  LEFT: 37,\n  UP: 38,\n  RIGHT: 39,\n  DOWN: 40,\n  PAGEUP: 33,\n  PAGEDOWN: 34,\n  HOME: 36,\n  END: 35,\n  TAB: 9,\n  SHIFT: 16,\n  CTRL: 17,\n  BACKSPACE: 8,\n  ALT: 18,\n  PAUSE: 19,\n  BREAK: 19,\n  INSERT: 45,\n  INS: 45,\n  DELETE: 46\n}\n\nexport default KEY_CODES\n","import Vue from '../../utils/vue'\nimport { isVisible, selectAll } from '../../utils/dom'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport KeyCodes from '../../utils/key-codes'\n\nconst ITEM_SELECTOR = [\n  '.btn:not(.disabled):not([disabled]):not(.dropdown-item)',\n  '.form-control:not(.disabled):not([disabled])',\n  'select:not(.disabled):not([disabled])',\n  'input[type=\"checkbox\"]:not(.disabled)',\n  'input[type=\"radio\"]:not(.disabled)'\n].join(',')\n\n// @vue/component\nexport const BButtonToolbar = /*#__PURE__*/ Vue.extend({\n  name: 'BButtonToolbar',\n  mixins: [normalizeSlotMixin],\n  props: {\n    justify: {\n      type: Boolean,\n      default: false\n    },\n    keyNav: {\n      type: Boolean,\n      default: false\n    }\n  },\n  mounted() {\n    if (this.keyNav) {\n      // Pre-set the tabindexes if the markup does not include tabindex=\"-1\" on the toolbar items\n      this.getItems()\n    }\n  },\n  methods: {\n    onFocusin(evt) {\n      if (evt.target === this.$el) {\n        evt.preventDefault()\n        evt.stopPropagation()\n        this.focusFirst(evt)\n      }\n    },\n    stop(evt) {\n      evt.preventDefault()\n      evt.stopPropagation()\n    },\n    onKeydown(evt) {\n      if (!this.keyNav) {\n        /* istanbul ignore next: should never happen */\n        return\n      }\n      const key = evt.keyCode\n      const shift = evt.shiftKey\n      if (key === KeyCodes.UP || key === KeyCodes.LEFT) {\n        this.stop(evt)\n        shift ? this.focusFirst(evt) : this.focusPrev(evt)\n      } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT) {\n        this.stop(evt)\n        shift ? this.focusLast(evt) : this.focusNext(evt)\n      }\n    },\n    setItemFocus(item) {\n      item && item.focus && item.focus()\n    },\n    focusFirst(evt) {\n      const items = this.getItems()\n      this.setItemFocus(items[0])\n    },\n    focusPrev(evt) {\n      let items = this.getItems()\n      const index = items.indexOf(evt.target)\n      if (index > -1) {\n        items = items.slice(0, index).reverse()\n        this.setItemFocus(items[0])\n      }\n    },\n    focusNext(evt) {\n      let items = this.getItems()\n      const index = items.indexOf(evt.target)\n      if (index > -1) {\n        items = items.slice(index + 1)\n        this.setItemFocus(items[0])\n      }\n    },\n    focusLast(evt) {\n      const items = this.getItems().reverse()\n      this.setItemFocus(items[0])\n    },\n    getItems() {\n      const items = selectAll(ITEM_SELECTOR, this.$el)\n      items.forEach(item => {\n        // Ensure tabfocus is -1 on any new elements\n        item.tabIndex = -1\n      })\n      return items.filter(el => isVisible(el))\n    }\n  },\n  render(h) {\n    return h(\n      'div',\n      {\n        staticClass: 'btn-toolbar',\n        class: { 'justify-content-between': this.justify },\n        attrs: {\n          role: 'toolbar',\n          tabindex: this.keyNav ? '0' : null\n        },\n        on: this.keyNav\n          ? {\n              focusin: this.onFocusin,\n              keydown: this.onKeydown\n            }\n          : {}\n      },\n      [this.normalizeSlot('default')]\n    )\n  }\n})\n\nexport default BButtonToolbar\n","import { BButtonToolbar } from './button-toolbar'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ButtonToolbarPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BButtonToolbar,\n    BBtnToolbar: BButtonToolbar\n  }\n})\n\nexport { ButtonToolbarPlugin, BButtonToolbar }\n\nexport default ButtonToolbarPlugin\n","import { isString } from './inspect'\n\n/**\n * Transform the first character to uppercase\n * @param {string} str\n */\nconst upperFirst = str => {\n  if (!isString(str)) {\n    str = String(str)\n  }\n  str = str.trim()\n  return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport default upperFirst\n","import upperFirst from './upper-first'\n\n/**\n * @param {string} prefix\n * @param {string} value\n */\nconst prefixPropName = (prefix, value) => prefix + upperFirst(value)\n\nexport default prefixPropName\n","import lowerFirst from './lower-first'\n\n/**\n * @param {string} prefix\n * @param {string} value\n */\nconst unprefixPropName = (prefix, value) => lowerFirst(value.replace(prefix, ''))\n\nexport default unprefixPropName\n","/**\n * @param {string} str\n */\nconst lowerFirst = str => {\n  str = String(str)\n  return str.charAt(0).toLowerCase() + str.slice(1)\n}\n\nexport default lowerFirst\n","import identity from './identity'\nimport { isArray, isObject } from './inspect'\n\n/**\n * Copies props from one array/object to a new array/object. Prop values\n * are also cloned as new references to prevent possible mutation of original\n * prop object values. Optionally accepts a function to transform the prop name.\n *\n * @param {[]|{}} props\n * @param {Function} transformFn\n */\nconst copyProps = (props, transformFn = identity) => {\n  if (isArray(props)) {\n    return props.map(transformFn)\n  }\n  // Props as an object.\n  const copied = {}\n\n  for (const prop in props) {\n    /* istanbul ignore else */\n    // eslint-disable-next-line no-prototype-builtins\n    if (props.hasOwnProperty(prop)) {\n      // If the prop value is an object, do a shallow clone to prevent\n      // potential mutations to the original object.\n      copied[transformFn(prop)] = isObject(props[prop]) ? { ...props[prop] } : props[prop]\n    }\n  }\n\n  return copied\n}\n\nexport default copyProps\n","// @vue/component\nexport default {\n  props: {\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    bgVariant: {\n      type: String,\n      default: null\n    },\n    borderVariant: {\n      type: String,\n      default: null\n    },\n    textVariant: {\n      type: String,\n      default: null\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  title: {\n    type: String,\n    default: ''\n  },\n  titleTag: {\n    type: String,\n    default: 'h4'\n  }\n}\n\n// @vue/component\nexport const BCardTitle = /*#__PURE__*/ Vue.extend({\n  name: 'BCardTitle',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.titleTag,\n      mergeData(data, {\n        staticClass: 'card-title'\n      }),\n      children || props.title\n    )\n  }\n})\n\nexport default BCardTitle\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\n\nconst NAME = 'BCardSubTitle'\n\nexport const props = {\n  subTitle: {\n    type: String,\n    default: ''\n  },\n  subTitleTag: {\n    type: String,\n    default: 'h6'\n  },\n  subTitleTextVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'subTitleTextVariant')\n  }\n}\n\n// @vue/component\nexport const BCardSubTitle = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.subTitleTag,\n      mergeData(data, {\n        staticClass: 'card-subtitle',\n        class: [props.subTitleTextVariant ? `text-${props.subTitleTextVariant}` : null]\n      }),\n      children || props.subTitle\n    )\n  }\n})\n\nexport default BCardSubTitle\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport pluckProps from '../../utils/pluck-props'\nimport cardMixin from '../../mixins/card-mixin'\nimport { BCardTitle, props as titleProps } from './card-title'\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'\n\nexport const props = {\n  // Import common card props and prefix them with `body-`\n  ...copyProps(cardMixin.props, prefixPropName.bind(null, 'body')),\n  bodyClass: {\n    type: [String, Object, Array],\n    default: null\n  },\n  ...titleProps,\n  ...subTitleProps,\n  overlay: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BCardBody = /*#__PURE__*/ Vue.extend({\n  name: 'BCardBody',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    let cardTitle = h()\n    let cardSubTitle = h()\n    const cardContent = children || [h()]\n\n    if (props.title) {\n      cardTitle = h(BCardTitle, { props: pluckProps(titleProps, props) })\n    }\n\n    if (props.subTitle) {\n      cardSubTitle = h(BCardSubTitle, {\n        props: pluckProps(subTitleProps, props),\n        class: ['mb-2']\n      })\n    }\n\n    return h(\n      props.bodyTag,\n      mergeData(data, {\n        staticClass: 'card-body',\n        class: [\n          {\n            'card-img-overlay': props.overlay,\n            [`bg-${props.bodyBgVariant}`]: Boolean(props.bodyBgVariant),\n            [`border-${props.bodyBorderVariant}`]: Boolean(props.bodyBorderVariant),\n            [`text-${props.bodyTextVariant}`]: Boolean(props.bodyTextVariant)\n          },\n          props.bodyClass || {}\n        ]\n      }),\n      [cardTitle, cardSubTitle, ...cardContent]\n    )\n  }\n})\n\nexport default BCardBody\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport { htmlOrText } from '../../utils/html'\nimport cardMixin from '../../mixins/card-mixin'\n\nexport const props = {\n  ...copyProps(cardMixin.props, prefixPropName.bind(null, 'header')),\n  header: {\n    type: String,\n    default: null\n  },\n  headerHtml: {\n    type: String,\n    default: null\n  },\n  headerClass: {\n    type: [String, Object, Array],\n    default: null\n  }\n}\n\n// @vue/component\nexport const BCardHeader = /*#__PURE__*/ Vue.extend({\n  name: 'BCardHeader',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.headerTag,\n      mergeData(data, {\n        staticClass: 'card-header',\n        class: [\n          props.headerClass,\n          {\n            [`bg-${props.headerBgVariant}`]: Boolean(props.headerBgVariant),\n            [`border-${props.headerBorderVariant}`]: Boolean(props.headerBorderVariant),\n            [`text-${props.headerTextVariant}`]: Boolean(props.headerTextVariant)\n          }\n        ]\n      }),\n      children || [h('div', { domProps: htmlOrText(props.headerHtml, props.header) })]\n    )\n  }\n})\n\nexport default BCardHeader\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport { htmlOrText } from '../../utils/html'\nimport cardMixin from '../../mixins/card-mixin'\n\nexport const props = {\n  ...copyProps(cardMixin.props, prefixPropName.bind(null, 'footer')),\n  footer: {\n    type: String,\n    default: null\n  },\n  footerHtml: {\n    type: String,\n    default: null\n  },\n  footerClass: {\n    type: [String, Object, Array],\n    default: null\n  }\n}\n\n// @vue/component\nexport const BCardFooter = /*#__PURE__*/ Vue.extend({\n  name: 'BCardFooter',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.footerTag,\n      mergeData(data, {\n        staticClass: 'card-footer',\n        class: [\n          props.footerClass,\n          {\n            [`bg-${props.footerBgVariant}`]: Boolean(props.footerBgVariant),\n            [`border-${props.footerBorderVariant}`]: Boolean(props.footerBorderVariant),\n            [`text-${props.footerTextVariant}`]: Boolean(props.footerTextVariant)\n          }\n        ]\n      }),\n      children || [h('div', { domProps: htmlOrText(props.footerHtml, props.footer) })]\n    )\n  }\n})\n\nexport default BCardFooter\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  src: {\n    type: String,\n    default: null,\n    required: true\n  },\n  alt: {\n    type: String,\n    default: null\n  },\n  top: {\n    type: Boolean,\n    default: false\n  },\n  bottom: {\n    type: Boolean,\n    default: false\n  },\n  left: {\n    type: Boolean,\n    default: false\n  },\n  start: {\n    type: Boolean,\n    default: false\n    // alias of 'left'\n  },\n  right: {\n    type: Boolean,\n    default: false\n  },\n  end: {\n    type: Boolean,\n    default: false\n    // alias of 'right'\n  },\n  height: {\n    type: String,\n    default: null\n  },\n  width: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BCardImg = /*#__PURE__*/ Vue.extend({\n  name: 'BCardImg',\n  functional: true,\n  props,\n  render(h, { props, data }) {\n    let baseClass = 'card-img'\n    if (props.top) {\n      baseClass += '-top'\n    } else if (props.right || props.end) {\n      baseClass += '-right'\n    } else if (props.bottom) {\n      baseClass += '-bottom'\n    } else if (props.left || props.start) {\n      baseClass += '-left'\n    }\n\n    return h(\n      'img',\n      mergeData(data, {\n        class: [baseClass],\n        attrs: {\n          src: props.src,\n          alt: props.alt,\n          height: props.height,\n          width: props.width\n        }\n      })\n    )\n  }\n})\n\nexport default BCardImg\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport prefixPropName from '../../utils/prefix-prop-name'\nimport unPrefixPropName from '../../utils/unprefix-prop-name'\nimport copyProps from '../../utils/copy-props'\nimport pluckProps from '../../utils/pluck-props'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\nimport cardMixin from '../../mixins/card-mixin'\nimport { BCardBody, props as bodyProps } from './card-body'\nimport { BCardHeader, props as headerProps } from './card-header'\nimport { BCardFooter, props as footerProps } from './card-footer'\nimport { BCardImg, props as imgProps } from './card-img'\n\nconst cardImgProps = copyProps(imgProps, prefixPropName.bind(null, 'img'))\ncardImgProps.imgSrc.required = false\n\nexport const props = {\n  ...bodyProps,\n  ...headerProps,\n  ...footerProps,\n  ...cardImgProps,\n  ...copyProps(cardMixin.props),\n  align: {\n    type: String,\n    default: null\n  },\n  noBody: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BCard = /*#__PURE__*/ Vue.extend({\n  name: 'BCard',\n  functional: true,\n  props,\n  render(h, { props, data, slots, scopedSlots }) {\n    const $slots = slots()\n    // Vue < 2.6.x may return undefined for scopedSlots\n    const $scopedSlots = scopedSlots || {}\n\n    // Create placeholder elements for each section\n    let imgFirst = h()\n    let header = h()\n    let content = h()\n    let footer = h()\n    let imgLast = h()\n\n    if (props.imgSrc) {\n      const img = h(BCardImg, {\n        props: pluckProps(cardImgProps, props, unPrefixPropName.bind(null, 'img'))\n      })\n      if (props.imgBottom) {\n        imgLast = img\n      } else {\n        imgFirst = img\n      }\n    }\n\n    if (props.header || hasNormalizedSlot('header', $scopedSlots, $slots)) {\n      header = h(\n        BCardHeader,\n        { props: pluckProps(headerProps, props) },\n        normalizeSlot('header', {}, $scopedSlots, $slots)\n      )\n    }\n\n    content = normalizeSlot('default', {}, $scopedSlots, $slots) || []\n    if (!props.noBody) {\n      // Wrap content in card-body\n      content = [h(BCardBody, { props: pluckProps(bodyProps, props) }, [...content])]\n    }\n\n    if (props.footer || hasNormalizedSlot('footer', $scopedSlots, $slots)) {\n      footer = h(\n        BCardFooter,\n        {\n          props: pluckProps(footerProps, props)\n        },\n        normalizeSlot('footer', {}, $scopedSlots, $slots)\n      )\n    }\n\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'card',\n        class: {\n          'flex-row': props.imgLeft || props.imgStart,\n          'flex-row-reverse':\n            (props.imgRight || props.imgEnd) && !(props.imgLeft || props.imgStart),\n          [`text-${props.align}`]: Boolean(props.align),\n          [`bg-${props.bgVariant}`]: Boolean(props.bgVariant),\n          [`border-${props.borderVariant}`]: Boolean(props.borderVariant),\n          [`text-${props.textVariant}`]: Boolean(props.textVariant)\n        }\n      }),\n      [imgFirst, header, ...content, footer, imgLast]\n    )\n  }\n})\n\nexport default BCard\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.15.0\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop, 10);\n    var marginLeft = parseFloat(styles.marginLeft, 10);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var round = Math.round,\n      floor = Math.floor;\n\n  var noRound = function noRound(v) {\n    return v;\n  };\n\n  var referenceWidth = round(reference.width);\n  var popperWidth = round(popper.width);\n\n  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  var isVariation = data.placement.indexOf('-') !== -1;\n  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  var verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    // flips variation if popper content overflows boundaries\n    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n    var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  var transformProp = getSupportedPropertyName('transform');\n  var popperStyles = data.instance.popper.style; // assignment to help minification\n  var top = popperStyles.top,\n      left = popperStyles.left,\n      transform = popperStyles[transformProp];\n\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedules an update. It will run on the next UI update available.\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { isString } from '../../utils/inspect'\n\n// --- Constants --\n\nconst NAME = 'BImg'\n\n// Blank image with fill template\nconst BLANK_TEMPLATE =\n  '<svg width=\"%{w}\" height=\"%{h}\" ' +\n  'xmlns=\"http://www.w3.org/2000/svg\" ' +\n  'viewBox=\"0 0 %{w} %{h}\" preserveAspectRatio=\"none\">' +\n  '<rect width=\"100%\" height=\"100%\" style=\"fill:%{f};\"></rect>' +\n  '</svg>'\n\nexport const props = {\n  src: {\n    type: String,\n    default: null\n  },\n  alt: {\n    type: String,\n    default: null\n  },\n  width: {\n    type: [Number, String],\n    default: null\n  },\n  height: {\n    type: [Number, String],\n    default: null\n  },\n  block: {\n    type: Boolean,\n    default: false\n  },\n  fluid: {\n    type: Boolean,\n    default: false\n  },\n  fluidGrow: {\n    // Gives fluid images class `w-100` to make them grow to fit container\n    type: Boolean,\n    default: false\n  },\n  rounded: {\n    // rounded can be:\n    //   false: no rounding of corners\n    //   true: slightly rounded corners\n    //   'top': top corners rounded\n    //   'right': right corners rounded\n    //   'bottom': bottom corners rounded\n    //   'left': left corners rounded\n    //   'circle': circle/oval\n    //   '0': force rounding off\n    type: [Boolean, String],\n    default: false\n  },\n  thumbnail: {\n    type: Boolean,\n    default: false\n  },\n  left: {\n    type: Boolean,\n    default: false\n  },\n  right: {\n    type: Boolean,\n    default: false\n  },\n  center: {\n    type: Boolean,\n    default: false\n  },\n  blank: {\n    type: Boolean,\n    default: false\n  },\n  blankColor: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'blankColor')\n  }\n}\n\n// --- Helper methods ---\n\nconst makeBlankImgSrc = (width, height, color) => {\n  const src = encodeURIComponent(\n    BLANK_TEMPLATE.replace('%{w}', String(width))\n      .replace('%{h}', String(height))\n      .replace('%{f}', color)\n  )\n  return `data:image/svg+xml;charset=UTF-8,${src}`\n}\n\n// @vue/component\nexport const BImg = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data }) {\n    let src = props.src\n    let width = parseInt(props.width, 10) ? parseInt(props.width, 10) : null\n    let height = parseInt(props.height, 10) ? parseInt(props.height, 10) : null\n    let align = null\n    let block = props.block\n    if (props.blank) {\n      if (!height && Boolean(width)) {\n        height = width\n      } else if (!width && Boolean(height)) {\n        width = height\n      }\n      if (!width && !height) {\n        width = 1\n        height = 1\n      }\n      // Make a blank SVG image\n      src = makeBlankImgSrc(width, height, props.blankColor || 'transparent')\n    }\n    if (props.left) {\n      align = 'float-left'\n    } else if (props.right) {\n      align = 'float-right'\n    } else if (props.center) {\n      align = 'mx-auto'\n      block = true\n    }\n    return h(\n      'img',\n      mergeData(data, {\n        attrs: {\n          src: src,\n          alt: props.alt,\n          width: width ? String(width) : null,\n          height: height ? String(height) : null\n        },\n        class: {\n          'img-thumbnail': props.thumbnail,\n          'img-fluid': props.fluid || props.fluidGrow,\n          'w-100': props.fluidGrow,\n          rounded: props.rounded === '' || props.rounded === true,\n          [`rounded-${props.rounded}`]: isString(props.rounded) && props.rounded !== '',\n          [align]: Boolean(align),\n          'd-block': block\n        }\n      })\n    )\n  }\n})\n\nexport default BImg\n","import Vue from '../../utils/vue'\nimport { BImg } from './img'\nimport { getComponentConfig } from '../../utils/config'\nimport { getBCR, eventOn, eventOff } from '../../utils/dom'\nimport { hasIntersectionObserverSupport } from '../../utils/env'\n\nconst NAME = 'BImgLazy'\n\nconst THROTTLE = 100\nconst EVENT_OPTIONS = { passive: true, capture: false }\n\nexport const props = {\n  src: {\n    type: String,\n    default: null,\n    required: true\n  },\n  alt: {\n    type: String,\n    default: null\n  },\n  width: {\n    type: [Number, String],\n    default: null\n  },\n  height: {\n    type: [Number, String],\n    default: null\n  },\n  blankSrc: {\n    // If null, a blank image is generated\n    type: String,\n    default: null\n  },\n  blankColor: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'blankColor')\n  },\n  blankWidth: {\n    type: [Number, String],\n    default: null\n  },\n  blankHeight: {\n    type: [Number, String],\n    default: null\n  },\n  show: {\n    type: Boolean,\n    default: false\n  },\n  fluid: {\n    type: Boolean,\n    default: false\n  },\n  fluidGrow: {\n    type: Boolean,\n    default: false\n  },\n  block: {\n    type: Boolean,\n    default: false\n  },\n  thumbnail: {\n    type: Boolean,\n    default: false\n  },\n  rounded: {\n    type: [Boolean, String],\n    default: false\n  },\n  left: {\n    type: Boolean,\n    default: false\n  },\n  right: {\n    type: Boolean,\n    default: false\n  },\n  center: {\n    type: Boolean,\n    default: false\n  },\n  offset: {\n    type: [Number, String],\n    default: 360\n  },\n  throttle: {\n    type: [Number, String],\n    default: THROTTLE\n  }\n}\n\n// @vue/component\nexport const BImgLazy = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  props,\n  data() {\n    return {\n      isShown: false,\n      scrollTimeout: null,\n      observer: null\n    }\n  },\n  computed: {\n    computedSrc() {\n      return !this.blankSrc || this.isShown ? this.src : this.blankSrc\n    },\n    computedBlank() {\n      return !(this.isShown || this.blankSrc)\n    },\n    computedWidth() {\n      return this.isShown ? this.width : this.blankWidth || this.width\n    },\n    computedHeight() {\n      return this.isShown ? this.height : this.blankHeight || this.height\n    }\n  },\n  watch: {\n    show(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.isShown = newVal\n        if (!newVal) {\n          // Make sure listeners are re-enabled if img is force set to blank\n          this.setListeners(true)\n        }\n      }\n    },\n    isShown(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        // Update synched show prop\n        this.$emit('update:show', newVal)\n      }\n    }\n  },\n  created() {\n    this.isShown = this.show\n  },\n  mounted() {\n    if (this.isShown) {\n      this.setListeners(false)\n    } else {\n      this.setListeners(true)\n    }\n  },\n  activated() /* istanbul ignore next */ {\n    if (!this.isShown) {\n      this.setListeners(true)\n    }\n  },\n  deactivated() /* istanbul ignore next */ {\n    this.setListeners(false)\n  },\n  beforeDestroy() {\n    this.setListeners(false)\n  },\n  methods: {\n    setListeners(on) {\n      if (this.scrollTimeout) {\n        clearTimeout(this.scrollTimeout)\n        this.scrollTimeout = null\n      }\n      /* istanbul ignore next: JSDOM doen't support IntersectionObserver */\n      if (this.observer) {\n        this.observer.unobserve(this.$el)\n        this.observer.disconnect()\n        this.observer = null\n      }\n      const winEvts = ['scroll', 'resize', 'orientationchange']\n      winEvts.forEach(evt => eventOff(window, evt, this.onScroll, EVENT_OPTIONS))\n      eventOff(this.$el, 'load', this.checkView, EVENT_OPTIONS)\n      eventOff(document, 'transitionend', this.onScroll, EVENT_OPTIONS)\n      if (on) {\n        /* istanbul ignore if: JSDOM doen't support IntersectionObserver */\n        if (hasIntersectionObserverSupport) {\n          this.observer = new IntersectionObserver(this.doShow, {\n            root: null, // viewport\n            rootMargin: `${parseInt(this.offset, 10) || 0}px`,\n            threshold: 0 // percent intersection\n          })\n          this.observer.observe(this.$el)\n        } else {\n          // Fallback to scroll/etc events\n          winEvts.forEach(evt => eventOn(window, evt, this.onScroll, EVENT_OPTIONS))\n          eventOn(this.$el, 'load', this.checkView, EVENT_OPTIONS)\n          eventOn(document, 'transitionend', this.onScroll, EVENT_OPTIONS)\n        }\n      }\n    },\n    doShow(entries) {\n      if (entries && (entries[0].isIntersecting || entries[0].intersectionRatio > 0.0)) {\n        this.isShown = true\n        this.setListeners(false)\n      }\n    },\n    checkView() {\n      // check bounding box + offset to see if we should show\n      /* istanbul ignore next: should rarely occur */\n      if (this.isShown) {\n        this.setListeners(false)\n        return\n      }\n      const offset = parseInt(this.offset, 10) || 0\n      const docElement = document.documentElement\n      const view = {\n        l: 0 - offset,\n        t: 0 - offset,\n        b: docElement.clientHeight + offset,\n        r: docElement.clientWidth + offset\n      }\n      // JSDOM Doesn't support BCR, but we fake it in the tests\n      const box = getBCR(this.$el)\n      if (box.right >= view.l && box.bottom >= view.t && box.left <= view.r && box.top <= view.b) {\n        // image is in view (or about to be in view)\n        this.doShow([{ isIntersecting: true }])\n      }\n    },\n    onScroll() {\n      /* istanbul ignore if: should rarely occur */\n      if (this.isShown) {\n        this.setListeners(false)\n      } else {\n        clearTimeout(this.scrollTimeout)\n        this.scrollTimeout = setTimeout(this.checkView, parseInt(this.throttle, 10) || THROTTLE)\n      }\n    }\n  },\n  render(h) {\n    return h(BImg, {\n      props: {\n        // Computed value props\n        src: this.computedSrc,\n        blank: this.computedBlank,\n        width: this.computedWidth,\n        height: this.computedHeight,\n        // Passthough props\n        alt: this.alt,\n        blankColor: this.blankColor,\n        fluid: this.fluid,\n        fluidGrow: this.fluidGrow,\n        block: this.block,\n        thumbnail: this.thumbnail,\n        rounded: this.rounded,\n        left: this.left,\n        right: this.right,\n        center: this.center\n      }\n    })\n  }\n})\n\nexport default BImgLazy\n","import Vue from '../../utils/vue'\nimport { omit } from '../../utils/object'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BImgLazy, props as imgLazyProps } from '../image/img-lazy'\n\n// Copy of `<b-img-lazy>` props, and remove conflicting/non-applicable props\n// The `omit()` util creates a new object, so we can just pass the original props\nconst lazyProps = omit(imgLazyProps, [\n  'left',\n  'right',\n  'center',\n  'block',\n  'rounded',\n  'thumbnail',\n  'fluid',\n  'fluidGrow'\n])\n\nexport const props = {\n  ...lazyProps,\n  top: {\n    type: Boolean,\n    default: false\n  },\n  bottom: {\n    type: Boolean,\n    default: false\n  },\n  left: {\n    type: Boolean,\n    default: false\n  },\n  start: {\n    type: Boolean,\n    default: false\n    // alias of 'left'\n  },\n  right: {\n    type: Boolean,\n    default: false\n  },\n  end: {\n    type: Boolean,\n    default: false\n    // alias of 'right'\n  }\n}\n\n// @vue/component\nexport const BCardImgLazy = /*#__PURE__*/ Vue.extend({\n  name: 'BCardImgLazy',\n  functional: true,\n  props,\n  render(h, { props, data }) {\n    let baseClass = 'card-img'\n    if (props.top) {\n      baseClass += '-top'\n    } else if (props.right || props.end) {\n      baseClass += '-right'\n    } else if (props.bottom) {\n      baseClass += '-bottom'\n    } else if (props.left || props.start) {\n      baseClass += '-left'\n    }\n\n    // False out the left/center/right props before passing to b-img-lazy\n    const lazyProps = { ...props, left: false, right: false, center: false }\n    return h(\n      BImgLazy,\n      mergeData(data, {\n        class: [baseClass],\n        props: lazyProps\n      })\n    )\n  }\n})\n\nexport default BCardImgLazy\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  textTag: {\n    type: String,\n    default: 'p'\n  }\n}\n\n// @vue/component\nexport const BCardText = /*#__PURE__*/ Vue.extend({\n  name: 'BCardText',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(props.textTag, mergeData(data, { staticClass: 'card-text' }), children)\n  }\n})\n\nexport default BCardText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  deck: {\n    type: Boolean,\n    default: false\n  },\n  columns: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BCardGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BCardGroup',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    let baseClass = 'card-group'\n    if (props.deck) {\n      baseClass = 'card-deck'\n    } else if (props.columns) {\n      baseClass = 'card-columns'\n    }\n\n    return h(props.tag, mergeData(data, { class: baseClass }), children)\n  }\n})\n\nexport default BCardGroup\n","import { BCard } from './card'\nimport { BCardHeader } from './card-header'\nimport { BCardBody } from './card-body'\nimport { BCardTitle } from './card-title'\nimport { BCardSubTitle } from './card-sub-title'\nimport { BCardFooter } from './card-footer'\nimport { BCardImg } from './card-img'\nimport { BCardImgLazy } from './card-img-lazy'\nimport { BCardText } from './card-text'\nimport { BCardGroup } from './card-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst CardPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BCard,\n    BCardHeader,\n    BCardBody,\n    BCardTitle,\n    BCardSubTitle,\n    BCardFooter,\n    BCardImg,\n    BCardImgLazy,\n    BCardText,\n    BCardGroup\n  }\n})\n\nexport {\n  CardPlugin,\n  BCard,\n  BCardHeader,\n  BCardBody,\n  BCardTitle,\n  BCardSubTitle,\n  BCardFooter,\n  BCardImg,\n  BCardImgLazy,\n  BCardText,\n  BCardGroup\n}\n\nexport default CardPlugin\n","const noop = () => {}\n\nexport default noop\n","import { MutationObs, isElement } from './dom'\nimport { warnNoMutationObserverSupport } from './warn'\n\n/**\n * Observe a DOM element changes, falls back to eventListener mode\n * @param {Element} el The DOM element to observe\n * @param {Function} callback callback to be called on change\n * @param {object} [opts={childList: true, subtree: true}] observe options\n * @see http://stackoverflow.com/questions/3219758\n */\nconst observeDom = (el, callback, opts) => /* istanbul ignore next: difficult to test in JSDOM */ {\n  // Handle cases where we might be passed a Vue instance\n  el = el ? el.$el || el : null\n\n  // Early exit when we have no element\n  /* istanbul ignore next: difficult to test in JSDOM */\n  if (!isElement(el)) {\n    return null\n  }\n\n  // Exit and throw a warning when `MutationObserver` isn't available\n  if (warnNoMutationObserverSupport('observeDom')) {\n    return null\n  }\n\n  // Define a new observer\n  const obs = new MutationObs(mutations => {\n    let changed = false\n\n    // A mutation can contain several change records, so we loop\n    // through them to see what has changed\n    // We break out of the loop early if any \"significant\" change\n    // has been detected\n    for (let i = 0; i < mutations.length && !changed; i++) {\n      // The mutation record\n      const mutation = mutations[i]\n      // Mutation type\n      const type = mutation.type\n      // DOM node (could be any DOM node type - HTMLElement, Text, comment, etc.)\n      const target = mutation.target\n\n      // Detect whether a change happened based on type and target\n      if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\n        // We ignore nodes that are not TEXT (i.e. comments, etc)\n        // as they don't change layout\n        changed = true\n      } else if (type === 'attributes') {\n        changed = true\n      } else if (\n        type === 'childList' &&\n        (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)\n      ) {\n        // This includes HTMLElement and text nodes being\n        // added/removed/re-arranged\n        changed = true\n      }\n    }\n\n    // We only call the callback if a change that could affect\n    // layout/size truely happened\n    if (changed) {\n      callback()\n    }\n  })\n\n  // Have the observer observe foo for changes in children, etc\n  obs.observe(el, { childList: true, subtree: true, ...opts })\n\n  // We return a reference to the observer so that `obs.disconnect()`\n  // can be called if necessary\n  // To reduce overhead when the root element is hidden\n  return obs\n}\n\nexport default observeDom\n","/*\n * SSR Safe Client Side ID attribute generation\n * id's can only be generated client side, after mount.\n * this._uid is not synched between server and client.\n */\n\n// @vue/component\nexport default {\n  props: {\n    id: {\n      type: String,\n      default: null\n    }\n  },\n  data() {\n    return {\n      localId_: null\n    }\n  },\n  computed: {\n    safeId() {\n      // Computed property that returns a dynamic function for creating the ID.\n      // Reacts to changes in both .id and .localId_ And regens a new function\n      const id = this.id || this.localId_\n\n      // We return a function that accepts an optional suffix string\n      // So this computed prop looks and works like a method!!!\n      // But benefits from Vue's Computed prop caching\n      const fn = suffix => {\n        if (!id) {\n          return null\n        }\n        suffix = String(suffix || '').replace(/\\s+/g, '_')\n        return suffix ? id + '_' + suffix : id\n      }\n      return fn\n    }\n  },\n  mounted() {\n    // mounted only occurs client side\n    this.$nextTick(() => {\n      // Update dom with auto ID after dom loaded to prevent\n      // SSR hydration errors.\n      this.localId_ = `__BVID__${this._uid}`\n    })\n  }\n}\n","import Vue from '../../utils/vue'\nimport KeyCodes from '../../utils/key-codes'\nimport noop from '../../utils/noop'\nimport observeDom from '../../utils/observe-dom'\nimport { getComponentConfig } from '../../utils/config'\nimport {\n  selectAll,\n  reflow,\n  addClass,\n  removeClass,\n  setAttr,\n  eventOn,\n  eventOff\n} from '../../utils/dom'\nimport { isBrowser, hasTouchSupport, hasPointerEventSupport } from '../../utils/env'\nimport { isUndefined } from '../../utils/inspect'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\nconst NAME = 'BCarousel'\n\n// Slide directional classes\nconst DIRECTION = {\n  next: {\n    dirClass: 'carousel-item-left',\n    overlayClass: 'carousel-item-next'\n  },\n  prev: {\n    dirClass: 'carousel-item-right',\n    overlayClass: 'carousel-item-prev'\n  }\n}\n\n// Fallback Transition duration (with a little buffer) in ms\nconst TRANS_DURATION = 600 + 50\n\n// Time for mouse compat events to fire after touch\nconst TOUCH_EVENT_COMPAT_WAIT = 500\n\n// Number of pixels to consider touch move a swipe\nconst SWIPE_THRESHOLD = 40\n\n// PointerEvent pointer types\nconst PointerType = {\n  TOUCH: 'touch',\n  PEN: 'pen'\n}\n\n// Transition Event names\nconst TransitionEndEvents = {\n  WebkitTransition: 'webkitTransitionEnd',\n  MozTransition: 'transitionend',\n  OTransition: 'otransitionend oTransitionEnd',\n  transition: 'transitionend'\n}\n\nconst EventOptions = { passive: true, capture: false }\n\n// Return the browser specific transitionEnd event name\nconst getTransitionEndEvent = el => {\n  for (const name in TransitionEndEvents) {\n    if (!isUndefined(el.style[name])) {\n      return TransitionEndEvents[name]\n    }\n  }\n  // Fallback\n  /* istanbul ignore next */\n  return null\n}\n\n// @vue/component\nexport const BCarousel = /*#__PURE__*/ Vue.extend({\n  name: 'BCarousel',\n  mixins: [idMixin, normalizeSlotMixin],\n  provide() {\n    return { bvCarousel: this }\n  },\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props: {\n    labelPrev: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'labelPrev')\n    },\n    labelNext: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'labelNext')\n    },\n    labelGotoSlide: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'labelGotoSlide')\n    },\n    labelIndicators: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'labelIndicators')\n    },\n    interval: {\n      type: Number,\n      default: 5000\n    },\n    indicators: {\n      type: Boolean,\n      default: false\n    },\n    controls: {\n      type: Boolean,\n      default: false\n    },\n    noAnimation: {\n      // Disable slide/fade animation\n      type: Boolean,\n      default: false\n    },\n    fade: {\n      // Enable cross-fade animation instead of slide animation\n      type: Boolean,\n      default: false\n    },\n    noTouch: {\n      // Sniffed by carousel-slide\n      type: Boolean,\n      default: false\n    },\n    noHoverPause: {\n      // Disable pause on hover\n      type: Boolean,\n      default: false\n    },\n    imgWidth: {\n      // Sniffed by carousel-slide\n      type: [Number, String]\n      // default: undefined\n    },\n    imgHeight: {\n      // Sniffed by carousel-slide\n      type: [Number, String]\n      // default: undefined\n    },\n    background: {\n      type: String\n      // default: undefined\n    },\n    value: {\n      type: Number,\n      default: 0\n    }\n  },\n  data() {\n    return {\n      index: this.value || 0,\n      isSliding: false,\n      transitionEndEvent: null,\n      slides: [],\n      direction: null,\n      isPaused: !(parseInt(this.interval, 10) > 0),\n      // Touch event handling values\n      touchStartX: 0,\n      touchDeltaX: 0\n    }\n  },\n  watch: {\n    value(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.setSlide(newVal)\n      }\n    },\n    interval(newVal, oldVal) {\n      if (newVal === oldVal) {\n        /* istanbul ignore next */\n        return\n      }\n      if (!newVal) {\n        // Pausing slide show\n        this.pause(false)\n      } else {\n        // Restarting or Changing interval\n        this.pause(true)\n        this.start(false)\n      }\n    },\n    isPaused(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.$emit(newVal ? 'paused' : 'unpaused')\n      }\n    },\n    index(to, from) {\n      if (to === from || this.isSliding) {\n        /* istanbul ignore next */\n        return\n      }\n      this.doSlide(to, from)\n    }\n  },\n  created() {\n    // Create private non-reactive props\n    this._intervalId = null\n    this._animationTimeout = null\n    this._touchTimeout = null\n    // Set initial paused state\n    this.isPaused = !(parseInt(this.interval, 10) > 0)\n  },\n  mounted() {\n    // Cache current browser transitionend event name\n    this.transitionEndEvent = getTransitionEndEvent(this.$el) || null\n    // Get all slides\n    this.updateSlides()\n    // Observe child changes so we can update slide list\n    observeDom(this.$refs.inner, this.updateSlides.bind(this), {\n      subtree: false,\n      childList: true,\n      attributes: true,\n      attributeFilter: ['id']\n    })\n  },\n  beforeDestroy() {\n    clearTimeout(this._animationTimeout)\n    clearTimeout(this._touchTimeout)\n    clearInterval(this._intervalId)\n    this._intervalId = null\n    this._animationTimeout = null\n    this._touchTimeout = null\n  },\n  methods: {\n    // Set slide\n    setSlide(slide, direction = null) {\n      // Don't animate when page is not visible\n      /* istanbul ignore if: difficult to test */\n      if (isBrowser && document.visibilityState && document.hidden) {\n        return\n      }\n      const len = this.slides.length\n      // Don't do anything if nothing to slide to\n      if (len === 0) {\n        return\n      }\n      // Don't change slide while transitioning, wait until transition is done\n      if (this.isSliding) {\n        // Schedule slide after sliding complete\n        this.$once('sliding-end', () => this.setSlide(slide, direction))\n        return\n      }\n      this.direction = direction\n      // Make sure we have an integer (you never know!)\n      slide = Math.floor(slide)\n      // Set new slide index. Wrap around if necessary\n      this.index = slide >= len ? 0 : slide >= 0 ? slide : len - 1\n    },\n    // Previous slide\n    prev() {\n      this.setSlide(this.index - 1, 'prev')\n    },\n    // Next slide\n    next() {\n      this.setSlide(this.index + 1, 'next')\n    },\n    // Pause auto rotation\n    pause(evt) {\n      if (!evt) {\n        this.isPaused = true\n      }\n      if (this._intervalId) {\n        clearInterval(this._intervalId)\n        this._intervalId = null\n      }\n    },\n    // Start auto rotate slides\n    start(evt) {\n      if (!evt) {\n        this.isPaused = false\n      }\n      /* istanbul ignore next: most likely will never happen, but just in case */\n      if (this._intervalId) {\n        clearInterval(this._intervalId)\n        this._intervalId = null\n      }\n      // Don't start if no interval, or less than 2 slides\n      if (this.interval && this.slides.length > 1) {\n        this._intervalId = setInterval(this.next, Math.max(1000, this.interval))\n      }\n    },\n    // Restart auto rotate slides when focus/hover leaves the carousel\n    restart(evt) /* istanbul ignore next: difficult to test */ {\n      if (!this.$el.contains(document.activeElement)) {\n        this.start()\n      }\n    },\n    doSlide(to, from) {\n      const isCycling = Boolean(this.interval)\n      // Determine sliding direction\n      const direction = this.calcDirection(this.direction, from, to)\n      const overlayClass = direction.overlayClass\n      const dirClass = direction.dirClass\n      // Determine current and next slides\n      const currentSlide = this.slides[from]\n      const nextSlide = this.slides[to]\n      // Don't do anything if there aren't any slides to slide to\n      if (!currentSlide || !nextSlide) {\n        /* istanbul ignore next */\n        return\n      }\n      // Start animating\n      this.isSliding = true\n      if (isCycling) {\n        this.pause(false)\n      }\n      this.$emit('sliding-start', to)\n      // Update v-model\n      this.$emit('input', this.index)\n      if (this.noAnimation) {\n        addClass(nextSlide, 'active')\n        removeClass(currentSlide, 'active')\n        this.isSliding = false\n        // Notify ourselves that we're done sliding (slid)\n        this.$nextTick(() => this.$emit('sliding-end', to))\n      } else {\n        addClass(nextSlide, overlayClass)\n        // Trigger a reflow of next slide\n        reflow(nextSlide)\n        addClass(currentSlide, dirClass)\n        addClass(nextSlide, dirClass)\n        // Transition End handler\n        let called = false\n        /* istanbul ignore next: difficult to test */\n        const onceTransEnd = evt => {\n          if (called) {\n            return\n          }\n          called = true\n          /* istanbul ignore if: transition events cant be tested in JSDOM */\n          if (this.transitionEndEvent) {\n            const events = this.transitionEndEvent.split(/\\s+/)\n            events.forEach(evt => eventOff(currentSlide, evt, onceTransEnd, EventOptions))\n          }\n          this._animationTimeout = null\n          removeClass(nextSlide, dirClass)\n          removeClass(nextSlide, overlayClass)\n          addClass(nextSlide, 'active')\n          removeClass(currentSlide, 'active')\n          removeClass(currentSlide, dirClass)\n          removeClass(currentSlide, overlayClass)\n          setAttr(currentSlide, 'aria-current', 'false')\n          setAttr(nextSlide, 'aria-current', 'true')\n          setAttr(currentSlide, 'aria-hidden', 'true')\n          setAttr(nextSlide, 'aria-hidden', 'false')\n          this.isSliding = false\n          this.direction = null\n          // Notify ourselves that we're done sliding (slid)\n          this.$nextTick(() => this.$emit('sliding-end', to))\n        }\n        // Set up transitionend handler\n        /* istanbul ignore if: transition events cant be tested in JSDOM */\n        if (this.transitionEndEvent) {\n          const events = this.transitionEndEvent.split(/\\s+/)\n          events.forEach(event => eventOn(currentSlide, event, onceTransEnd, EventOptions))\n        }\n        // Fallback to setTimeout()\n        this._animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION)\n      }\n      if (isCycling) {\n        this.start(false)\n      }\n    },\n    // Update slide list\n    updateSlides() {\n      this.pause(true)\n      // Get all slides as DOM elements\n      this.slides = selectAll('.carousel-item', this.$refs.inner)\n      const numSlides = this.slides.length\n      // Keep slide number in range\n      const index = Math.max(0, Math.min(Math.floor(this.index), numSlides - 1))\n      this.slides.forEach((slide, idx) => {\n        const n = idx + 1\n        if (idx === index) {\n          addClass(slide, 'active')\n          setAttr(slide, 'aria-current', 'true')\n        } else {\n          removeClass(slide, 'active')\n          setAttr(slide, 'aria-current', 'false')\n        }\n        setAttr(slide, 'aria-posinset', String(n))\n        setAttr(slide, 'aria-setsize', String(numSlides))\n      })\n      // Set slide as active\n      this.setSlide(index)\n      this.start(this.isPaused)\n    },\n    calcDirection(direction = null, curIndex = 0, nextIndex = 0) {\n      if (!direction) {\n        return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev\n      }\n      return DIRECTION[direction]\n    },\n    handleClick(evt, fn) {\n      const keyCode = evt.keyCode\n      if (evt.type === 'click' || keyCode === KeyCodes.SPACE || keyCode === KeyCodes.ENTER) {\n        evt.preventDefault()\n        evt.stopPropagation()\n        fn()\n      }\n    },\n    handleSwipe() /* istanbul ignore next: JSDOM doesn't support touch events */ {\n      const absDeltaX = Math.abs(this.touchDeltaX)\n      if (absDeltaX <= SWIPE_THRESHOLD) {\n        return\n      }\n      const direction = absDeltaX / this.touchDeltaX\n      if (direction > 0) {\n        // Swipe left\n        this.prev()\n      } else if (direction < 0) {\n        // Swipe right\n        this.next()\n      }\n    },\n    touchStart(evt) /* istanbul ignore next: JSDOM doesn't support touch events */ {\n      if (hasPointerEventSupport && PointerType[evt.pointerType.toUpperCase()]) {\n        this.touchStartX = evt.clientX\n      } else if (!hasPointerEventSupport) {\n        this.touchStartX = evt.touches[0].clientX\n      }\n    },\n    touchMove(evt) /* istanbul ignore next: JSDOM doesn't support touch events */ {\n      // Ensure swiping with one touch and not pinching\n      if (evt.touches && evt.touches.length > 1) {\n        this.touchDeltaX = 0\n      } else {\n        this.touchDeltaX = evt.touches[0].clientX - this.touchStartX\n      }\n    },\n    touchEnd(evt) /* istanbul ignore next: JSDOM doesn't support touch events */ {\n      if (hasPointerEventSupport && PointerType[evt.pointerType.toUpperCase()]) {\n        this.touchDeltaX = evt.clientX - this.touchStartX\n      }\n      this.handleSwipe()\n      // If it's a touch-enabled device, mouseenter/leave are fired as\n      // part of the mouse compatibility events on first tap - the carousel\n      // would stop cycling until user tapped out of it;\n      // here, we listen for touchend, explicitly pause the carousel\n      // (as if it's the second time we tap on it, mouseenter compat event\n      // is NOT fired) and after a timeout (to allow for mouse compatibility\n      // events to fire) we explicitly restart cycling\n      this.pause(false)\n      if (this._touchTimeout) {\n        clearTimeout(this._touchTimeout)\n      }\n      this._touchTimeout = setTimeout(\n        this.start,\n        TOUCH_EVENT_COMPAT_WAIT + Math.max(1000, this.interval)\n      )\n    }\n  },\n  render(h) {\n    // Wrapper for slides\n    const inner = h(\n      'div',\n      {\n        ref: 'inner',\n        class: ['carousel-inner'],\n        attrs: {\n          id: this.safeId('__BV_inner_'),\n          role: 'list'\n        }\n      },\n      [this.normalizeSlot('default')]\n    )\n\n    // Prev and next controls\n    let controls = h()\n    if (this.controls) {\n      controls = [\n        h(\n          'a',\n          {\n            class: ['carousel-control-prev'],\n            attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },\n            on: {\n              click: evt => {\n                this.handleClick(evt, this.prev)\n              },\n              keydown: evt => {\n                this.handleClick(evt, this.prev)\n              }\n            }\n          },\n          [\n            h('span', { class: ['carousel-control-prev-icon'], attrs: { 'aria-hidden': 'true' } }),\n            h('span', { class: ['sr-only'] }, [this.labelPrev])\n          ]\n        ),\n        h(\n          'a',\n          {\n            class: ['carousel-control-next'],\n            attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },\n            on: {\n              click: evt => {\n                this.handleClick(evt, this.next)\n              },\n              keydown: evt => {\n                this.handleClick(evt, this.next)\n              }\n            }\n          },\n          [\n            h('span', { class: ['carousel-control-next-icon'], attrs: { 'aria-hidden': 'true' } }),\n            h('span', { class: ['sr-only'] }, [this.labelNext])\n          ]\n        )\n      ]\n    }\n\n    // Indicators\n    const indicators = h(\n      'ol',\n      {\n        class: ['carousel-indicators'],\n        directives: [\n          { name: 'show', rawName: 'v-show', value: this.indicators, expression: 'indicators' }\n        ],\n        attrs: {\n          id: this.safeId('__BV_indicators_'),\n          'aria-hidden': this.indicators ? 'false' : 'true',\n          'aria-label': this.labelIndicators,\n          'aria-owns': this.safeId('__BV_inner_')\n        }\n      },\n      this.slides.map((slide, n) => {\n        return h('li', {\n          key: `slide_${n}`,\n          class: { active: n === this.index },\n          attrs: {\n            role: 'button',\n            id: this.safeId(`__BV_indicator_${n + 1}_`),\n            tabindex: this.indicators ? '0' : '-1',\n            'aria-current': n === this.index ? 'true' : 'false',\n            'aria-label': `${this.labelGotoSlide} ${n + 1}`,\n            'aria-describedby': this.slides[n].id || null,\n            'aria-controls': this.safeId('__BV_inner_')\n          },\n          on: {\n            click: evt => {\n              this.handleClick(evt, () => {\n                this.setSlide(n)\n              })\n            },\n            keydown: evt => {\n              this.handleClick(evt, () => {\n                this.setSlide(n)\n              })\n            }\n          }\n        })\n      })\n    )\n\n    const on = {\n      mouseenter: this.noHoverPause ? noop : this.pause,\n      mouseleave: this.noHoverPause ? noop : this.restart,\n      focusin: this.pause,\n      focusout: this.restart,\n      keydown: evt => {\n        if (/input|textarea/i.test(evt.target.tagName)) {\n          /* istanbul ignore next */\n          return\n        }\n        const keyCode = evt.keyCode\n        if (keyCode === KeyCodes.LEFT || keyCode === KeyCodes.RIGHT) {\n          evt.preventDefault()\n          evt.stopPropagation()\n          this[keyCode === KeyCodes.LEFT ? 'prev' : 'next']()\n        }\n      }\n    }\n    // Touch support event handlers for environment\n    if (!this.noTouch && hasTouchSupport) {\n      // Attach appropriate listeners (prepend event name with '&' for passive mode)\n      /* istanbul ignore next: JSDOM doesn't support touch events */\n      if (hasPointerEventSupport) {\n        on['&pointerdown'] = this.touchStart\n        on['&pointerup'] = this.touchEnd\n      } else {\n        on['&touchstart'] = this.touchStart\n        on['&touchmove'] = this.touchMove\n        on['&touchend'] = this.touchEnd\n      }\n    }\n\n    // Return the carousel\n    return h(\n      'div',\n      {\n        staticClass: 'carousel',\n        class: {\n          slide: !this.noAnimation,\n          'carousel-fade': !this.noAnimation && this.fade,\n          'pointer-event': !this.noTouch && hasTouchSupport && hasPointerEventSupport\n        },\n        style: { background: this.background },\n        attrs: {\n          role: 'region',\n          id: this.safeId(),\n          'aria-busy': this.isSliding ? 'true' : 'false'\n        },\n        on\n      },\n      [inner, controls, indicators]\n    )\n  }\n})\n\nexport default BCarousel\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { hasTouchSupport } from '../../utils/env'\nimport { htmlOrText } from '../../utils/html'\nimport { BImg } from '../image/img'\n\nexport const props = {\n  imgSrc: {\n    type: String\n    // default: undefined\n  },\n  imgAlt: {\n    type: String\n    // default: undefined\n  },\n  imgWidth: {\n    type: [Number, String]\n    // default: undefined\n  },\n  imgHeight: {\n    type: [Number, String]\n    // default: undefined\n  },\n  imgBlank: {\n    type: Boolean,\n    default: false\n  },\n  imgBlankColor: {\n    type: String,\n    default: 'transparent'\n  },\n  contentVisibleUp: {\n    type: String\n  },\n  contentTag: {\n    type: String,\n    default: 'div'\n  },\n  caption: {\n    type: String\n  },\n  captionHtml: {\n    type: String\n  },\n  captionTag: {\n    type: String,\n    default: 'h3'\n  },\n  text: {\n    type: String\n  },\n  textHtml: {\n    type: String\n  },\n  textTag: {\n    type: String,\n    default: 'p'\n  },\n  background: {\n    type: String\n  }\n}\n\n// @vue/component\nexport const BCarouselSlide = /*#__PURE__*/ Vue.extend({\n  name: 'BCarouselSlide',\n  mixins: [idMixin, normalizeSlotMixin],\n  inject: {\n    bvCarousel: {\n      default() {\n        return {\n          // Explicitly disable touch if not a child of carousel\n          noTouch: true\n        }\n      }\n    }\n  },\n  props,\n  computed: {\n    contentClasses() {\n      return [\n        this.contentVisibleUp ? 'd-none' : '',\n        this.contentVisibleUp ? `d-${this.contentVisibleUp}-block` : ''\n      ]\n    },\n    computedWidth() {\n      // Use local width, or try parent width\n      return this.imgWidth || this.bvCarousel.imgWidth || null\n    },\n    computedHeight() {\n      // Use local height, or try parent height\n      return this.imgHeight || this.bvCarousel.imgHeight || null\n    }\n  },\n  render(h) {\n    const noDrag = !this.bvCarousel.noTouch && hasTouchSupport\n\n    let img = this.normalizeSlot('img')\n    if (!img && (this.imgSrc || this.imgBlank)) {\n      img = h(BImg, {\n        props: {\n          fluidGrow: true,\n          block: true,\n          src: this.imgSrc,\n          blank: this.imgBlank,\n          blankColor: this.imgBlankColor,\n          width: this.computedWidth,\n          height: this.computedHeight,\n          alt: this.imgAlt\n        },\n        // Touch support event handler\n        on: noDrag\n          ? {\n              dragstart: e => {\n                /* istanbul ignore next: difficult to test in JSDOM */\n                e.preventDefault()\n              }\n            }\n          : {}\n      })\n    }\n    if (!img) {\n      img = h()\n    }\n\n    let content = h()\n\n    const contentChildren = [\n      this.caption || this.captionHtml\n        ? h(this.captionTag, {\n            domProps: htmlOrText(this.captionHtml, this.caption)\n          })\n        : false,\n      this.text || this.textHtml\n        ? h(this.textTag, { domProps: htmlOrText(this.textHtml, this.text) })\n        : false,\n      this.normalizeSlot('default') || false\n    ]\n\n    if (contentChildren.some(Boolean)) {\n      content = h(\n        this.contentTag,\n        { staticClass: 'carousel-caption', class: this.contentClasses },\n        contentChildren.map(i => i || h())\n      )\n    }\n\n    return h(\n      'div',\n      {\n        staticClass: 'carousel-item',\n        style: { background: this.background || this.bvCarousel.background || null },\n        attrs: { id: this.safeId(), role: 'listitem' }\n      },\n      [img, content]\n    )\n  }\n})\n\nexport default BCarouselSlide\n","import { BCarousel } from './carousel'\nimport { BCarouselSlide } from './carousel-slide'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst CarouselPlugin = /*#__PURE*/ pluginFactory({\n  components: {\n    BCarousel,\n    BCarouselSlide\n  }\n})\n\nexport { CarouselPlugin, BCarousel, BCarouselSlide }\n\nexport default CarouselPlugin\n","/**\n * Issue #569: collapse::toggle::state triggered too many times\n * @link https://github.com/bootstrap-vue/bootstrap-vue/issues/569\n */\n\n// @vue/component\nexport default {\n  methods: {\n    /**\n     * Safely register event listeners on the root Vue node.\n     * While Vue automatically removes listeners for individual components,\n     * when a component registers a listener on root and is destroyed,\n     * this orphans a callback because the node is gone,\n     * but the root does not clear the callback.\n     *\n     * When registering a $root listener, it also registers a listener on\n     * the component's `beforeDestroy` hook to automatically remove the\n     * event listener from the $root instance.\n     *\n     * @param {string} event\n     * @param {function} callback\n     * @chainable\n     */\n    listenOnRoot(event, callback) {\n      this.$root.$on(event, callback)\n      this.$on('hook:beforeDestroy', () => {\n        this.$root.$off(event, callback)\n      })\n      // Return this for easy chaining\n      return this\n    },\n\n    /**\n     * Safely register a $once event listener on the root Vue node.\n     * While Vue automatically removes listeners for individual components,\n     * when a component registers a listener on root and is destroyed,\n     * this orphans a callback because the node is gone,\n     * but the root does not clear the callback.\n     *\n     * When registering a $root listener, it also registers a listener on\n     * the component's `beforeDestroy` hook to automatically remove the\n     * event listener from the $root instance.\n     *\n     * @param {string} event\n     * @param {function} callback\n     * @chainable\n     */\n    listenOnRootOnce(event, callback) {\n      this.$root.$once(event, callback)\n      this.$on('hook:beforeDestroy', () => {\n        this.$root.$off(event, callback)\n      })\n      // Return this for easy chaining\n      return this\n    },\n\n    /**\n     * Convenience method for calling vm.$emit on vm.$root.\n     * @param {string} event\n     * @param {*} args\n     * @chainable\n     */\n    emitOnRoot(event, ...args) {\n      this.$root.$emit(event, ...args)\n      // Return this for easy chaining\n      return this\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { isBrowser } from '../../utils/env'\nimport {\n  addClass,\n  hasClass,\n  removeClass,\n  closest,\n  matches,\n  reflow,\n  getCS,\n  getBCR,\n  eventOn,\n  eventOff\n} from '../../utils/dom'\n\n// Events we emit on $root\nconst EVENT_STATE = 'bv::collapse::state'\nconst EVENT_ACCORDION = 'bv::collapse::accordion'\n// Private event we emit on `$root` to ensure the toggle state is\n// always synced. It gets emitted even if the state has not changed!\n// This event is NOT to be documented as people should not be using it\nconst EVENT_STATE_SYNC = 'bv::collapse::sync::state'\n// Events we listen to on `$root`\nconst EVENT_TOGGLE = 'bv::toggle::collapse'\nconst EVENT_STATE_REQUEST = 'bv::request::collapse::state'\n\n// Event listener options\nconst EventOptions = { passive: true, capture: false }\n\n// @vue/component\nexport const BCollapse = /*#__PURE__*/ Vue.extend({\n  name: 'BCollapse',\n  mixins: [listenOnRootMixin, normalizeSlotMixin],\n  model: {\n    prop: 'visible',\n    event: 'input'\n  },\n  props: {\n    id: {\n      type: String,\n      required: true\n    },\n    isNav: {\n      type: Boolean,\n      default: false\n    },\n    accordion: {\n      type: String,\n      default: null\n    },\n    visible: {\n      type: Boolean,\n      default: false\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    }\n  },\n  data() {\n    return {\n      show: this.visible,\n      transitioning: false\n    }\n  },\n  computed: {\n    classObject() {\n      return {\n        'navbar-collapse': this.isNav,\n        collapse: !this.transitioning,\n        show: this.show && !this.transitioning\n      }\n    }\n  },\n  watch: {\n    visible(newVal) {\n      if (newVal !== this.show) {\n        this.show = newVal\n      }\n    },\n    show(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.emitState()\n      }\n    }\n  },\n  created() {\n    this.show = this.visible\n  },\n  mounted() {\n    this.show = this.visible\n    // Listen for toggle events to open/close us\n    this.listenOnRoot(EVENT_TOGGLE, this.handleToggleEvt)\n    // Listen to other collapses for accordion events\n    this.listenOnRoot(EVENT_ACCORDION, this.handleAccordionEvt)\n    if (this.isNav) {\n      // Set up handlers\n      this.setWindowEvents(true)\n      this.handleResize()\n    }\n    this.$nextTick(() => {\n      this.emitState()\n    })\n    // Listen for \"Sync state\" requests from `v-b-toggle`\n    this.listenOnRoot(EVENT_STATE_REQUEST, id => {\n      if (id === this.id) {\n        this.$nextTick(this.emitSync)\n      }\n    })\n  },\n  updated() {\n    // Emit a private event every time this component updates to ensure\n    // the toggle button is in sync with the collapse's state\n    // It is emitted regardless if the visible state changes\n    this.emitSync()\n  },\n  deactivated() /* istanbul ignore next */ {\n    if (this.isNav) {\n      this.setWindowEvents(false)\n    }\n  },\n  activated() /* istanbul ignore next */ {\n    if (this.isNav) {\n      this.setWindowEvents(true)\n    }\n    this.emitSync()\n  },\n  beforeDestroy() {\n    // Trigger state emit if needed\n    this.show = false\n    if (this.isNav && isBrowser) {\n      this.setWindowEvents(false)\n    }\n  },\n  methods: {\n    setWindowEvents(on) {\n      const method = on ? eventOn : eventOff\n      method(window, 'resize', this.handleResize, EventOptions)\n      method(window, 'orientationchange', this.handleResize, EventOptions)\n    },\n    toggle() {\n      this.show = !this.show\n    },\n    onEnter(el) {\n      el.style.height = 0\n      reflow(el)\n      el.style.height = el.scrollHeight + 'px'\n      this.transitioning = true\n      // This should be moved out so we can add cancellable events\n      this.$emit('show')\n    },\n    onAfterEnter(el) {\n      el.style.height = null\n      this.transitioning = false\n      this.$emit('shown')\n    },\n    onLeave(el) {\n      el.style.height = 'auto'\n      el.style.display = 'block'\n      el.style.height = getBCR(el).height + 'px'\n      reflow(el)\n      this.transitioning = true\n      el.style.height = 0\n      // This should be moved out so we can add cancellable events\n      this.$emit('hide')\n    },\n    onAfterLeave(el) {\n      el.style.height = null\n      this.transitioning = false\n      this.$emit('hidden')\n    },\n    emitState() {\n      this.$emit('input', this.show)\n      // Let v-b-toggle know the state of this collapse\n      this.$root.$emit(EVENT_STATE, this.id, this.show)\n      if (this.accordion && this.show) {\n        // Tell the other collapses in this accordion to close\n        this.$root.$emit(EVENT_ACCORDION, this.id, this.accordion)\n      }\n    },\n    emitSync() {\n      // Emit a private event every time this component updates to ensure\n      // the toggle button is in sync with the collapse's state\n      // It is emitted regardless if the visible state changes\n      this.$root.$emit(EVENT_STATE_SYNC, this.id, this.show)\n    },\n    checkDisplayBlock() {\n      // Check to see if the collapse has `display: block !important;` set.\n      // We can't set `display: none;` directly on this.$el, as it would\n      // trigger a new transition to start (or cancel a current one).\n      const restore = hasClass(this.$el, 'show')\n      removeClass(this.$el, 'show')\n      const isBlock = getCS(this.$el).display === 'block'\n      restore && addClass(this.$el, 'show')\n      return isBlock\n    },\n    clickHandler(evt) {\n      // If we are in a nav/navbar, close the collapse when non-disabled link clicked\n      const el = evt.target\n      if (!this.isNav || !el || getCS(this.$el).display !== 'block') {\n        /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n        return\n      }\n      if (matches(el, '.nav-link,.dropdown-item') || closest('.nav-link,.dropdown-item', el)) {\n        if (!this.checkDisplayBlock()) {\n          // Only close the collapse if it is not forced to be 'display: block !important;'\n          this.show = false\n        }\n      }\n    },\n    handleToggleEvt(target) {\n      if (target !== this.id) {\n        return\n      }\n      this.toggle()\n    },\n    handleAccordionEvt(openedId, accordion) {\n      if (!this.accordion || accordion !== this.accordion) {\n        return\n      }\n      if (openedId === this.id) {\n        // Open this collapse if not shown\n        if (!this.show) {\n          this.toggle()\n        }\n      } else {\n        // Close this collapse if shown\n        if (this.show) {\n          this.toggle()\n        }\n      }\n    },\n    handleResize() {\n      // Handler for orientation/resize to set collapsed state in nav/navbar\n      this.show = getCS(this.$el).display === 'block'\n    }\n  },\n  render(h) {\n    const content = h(\n      this.tag,\n      {\n        class: this.classObject,\n        directives: [{ name: 'show', value: this.show }],\n        attrs: { id: this.id || null },\n        on: { click: this.clickHandler }\n      },\n      [this.normalizeSlot('default')]\n    )\n    return h(\n      'transition',\n      {\n        props: {\n          enterClass: '',\n          enterActiveClass: 'collapsing',\n          enterToClass: '',\n          leaveClass: '',\n          leaveActiveClass: 'collapsing',\n          leaveToClass: ''\n        },\n        on: {\n          enter: this.onEnter,\n          afterEnter: this.onAfterEnter,\n          leave: this.onLeave,\n          afterLeave: this.onAfterLeave\n        }\n      },\n      [content]\n    )\n  }\n})\n\nexport default BCollapse\n","import { keys } from './object'\nimport { isArray, isDate, isObject } from './inspect'\n\n// Assumes both a and b are arrays!\n// Handles when arrays are \"sparse\" (array.every(...) doesn't handle sparse)\nconst compareArrays = (a, b) => {\n  if (a.length !== b.length) {\n    return false\n  }\n  let equal = true\n  for (let i = 0; equal && i < a.length; i++) {\n    equal = looseEqual(a[i], b[i])\n  }\n  return equal\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n * Returns boolean true or false\n */\nconst looseEqual = (a, b) => {\n  if (a === b) {\n    return true\n  }\n  let aValidType = isDate(a)\n  let bValidType = isDate(b)\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? a.getTime() === b.getTime() : false\n  }\n  aValidType = isArray(a)\n  bValidType = isArray(b)\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? compareArrays(a, b) : false\n  }\n  aValidType = isObject(a)\n  bValidType = isObject(b)\n  if (aValidType || bValidType) {\n    /* istanbul ignore if: this if will probably never be called */\n    if (!aValidType || !bValidType) {\n      return false\n    }\n    const aKeysCount = keys(a).length\n    const bKeysCount = keys(b).length\n    if (aKeysCount !== bKeysCount) {\n      return false\n    }\n    for (const key in a) {\n      // eslint-disable-next-line no-prototype-builtins\n      const aHasKey = a.hasOwnProperty(key)\n      // eslint-disable-next-line no-prototype-builtins\n      const bHasKey = b.hasOwnProperty(key)\n      if ((aHasKey && !bHasKey) || (!aHasKey && bHasKey) || !looseEqual(a[key], b[key])) {\n        return false\n      }\n    }\n  }\n  return String(a) === String(b)\n}\n\nexport default looseEqual\n","import { keys } from './object'\nimport { eventOn, eventOff } from './dom'\n\nconst allListenTypes = { hover: true, click: true, focus: true }\n\nconst BVBoundListeners = '__BV_boundEventListeners__'\n\nconst getTargets = binding => {\n  const targets = keys(binding.modifiers || {}).filter(t => !allListenTypes[t])\n\n  if (binding.value) {\n    targets.push(binding.value)\n  }\n\n  return targets\n}\n\nconst bindTargets = (vnode, binding, listenTypes, fn) => {\n  const targets = getTargets(binding)\n\n  const listener = () => {\n    fn({ targets, vnode })\n  }\n\n  keys(allListenTypes).forEach(type => {\n    if (listenTypes[type] || binding.modifiers[type]) {\n      eventOn(vnode.elm, type, listener)\n      const boundListeners = vnode.elm[BVBoundListeners] || {}\n      boundListeners[type] = boundListeners[type] || []\n      boundListeners[type].push(listener)\n      vnode.elm[BVBoundListeners] = boundListeners\n    }\n  })\n\n  // Return the list of targets\n  return targets\n}\n\nconst unbindTargets = (vnode, binding, listenTypes) => {\n  keys(allListenTypes).forEach(type => {\n    if (listenTypes[type] || binding.modifiers[type]) {\n      const boundListeners = vnode.elm[BVBoundListeners] && vnode.elm[BVBoundListeners][type]\n      if (boundListeners) {\n        boundListeners.forEach(listener => eventOff(vnode.elm, type, listener))\n        delete vnode.elm[BVBoundListeners][type]\n      }\n    }\n  })\n}\n\nexport { bindTargets, unbindTargets, getTargets }\n\nexport default bindTargets\n","import looseEqual from '../../utils/loose-equal'\nimport { addClass, removeAttr, removeClass, setAttr } from '../../utils/dom'\nimport { isBrowser } from '../../utils/env'\nimport { bindTargets, getTargets, unbindTargets } from '../../utils/target'\n\n// Target listen types\nconst listenTypes = { click: true }\n\n// Property key for handler storage\nconst BV_TOGGLE = '__BV_toggle__'\nconst BV_TOGGLE_STATE = '__BV_toggle_STATE__'\nconst BV_TOGGLE_CONTROLS = '__BV_toggle_CONTROLS__'\nconst BV_TOGGLE_TARGETS = '__BV_toggle_TARGETS__'\n\n// Emitted control event for collapse (emitted to collapse)\nconst EVENT_TOGGLE = 'bv::toggle::collapse'\n\n// Listen to event for toggle state update (emitted by collapse)\nconst EVENT_STATE = 'bv::collapse::state'\n\n// Private event emitted on $root to ensure the toggle state is always synced.\n// Gets emitted even if the state of b-collapse has not changed.\n// This event is NOT to be documented as people should not be using it.\nconst EVENT_STATE_SYNC = 'bv::collapse::sync::state'\n// Private event we send to collapse to request state update sync event\nconst EVENT_STATE_REQUEST = 'bv::request::collapse::state'\n\n// Reset and remove a property from the provided element\nconst resetProp = (el, prop) => {\n  el[prop] = null\n  delete el[prop]\n}\n\n// Handle targets update\nconst handleTargets = ({ targets, vnode }) => {\n  targets.forEach(target => {\n    vnode.context.$root.$emit(EVENT_TOGGLE, target)\n  })\n}\n\n// Handle directive updates\n/* istanbul ignore next: not easy to test */\nconst handleUpdate = (el, binding, vnode) => {\n  if (!isBrowser) {\n    return\n  }\n\n  if (!looseEqual(getTargets(binding), el[BV_TOGGLE_TARGETS])) {\n    // Targets have changed, so update accordingly\n    unbindTargets(vnode, binding, listenTypes)\n    const targets = bindTargets(vnode, binding, listenTypes, handleTargets)\n    // Update targets array to element\n    el[BV_TOGGLE_TARGETS] = targets\n    // Add aria attributes to element\n    el[BV_TOGGLE_CONTROLS] = targets.join(' ')\n    // ensure aria-controls is up to date\n    setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS])\n    // Request a state update from targets so that we can ensure\n    // expanded state is correct\n    targets.forEach(target => {\n      vnode.context.$root.$emit(EVENT_STATE_REQUEST, target)\n    })\n  }\n\n  // Ensure the collapse class and aria-* attributes persist\n  // after element is updated (either by parent re-rendering\n  // or changes to this element or it's contents\n  if (el[BV_TOGGLE_STATE] === true) {\n    addClass(el, 'collapsed')\n    setAttr(el, 'aria-expanded', 'true')\n  } else if (el[BV_TOGGLE_STATE] === false) {\n    removeClass(el, 'collapsed')\n    setAttr(el, 'aria-expanded', 'false')\n  }\n  setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS])\n}\n\n/*\n * Export our directive\n */\nexport const VBToggle = {\n  bind(el, binding, vnode) {\n    const targets = bindTargets(vnode, binding, listenTypes, handleTargets)\n    if (isBrowser && vnode.context && targets.length > 0) {\n      // Add targets array to element\n      el[BV_TOGGLE_TARGETS] = targets\n      // Add aria attributes to element\n      el[BV_TOGGLE_CONTROLS] = targets.join(' ')\n      // State is initially collapsed until we receive a state event\n      el[BV_TOGGLE_STATE] = false\n      setAttr(el, 'aria-controls', el[BV_TOGGLE_CONTROLS])\n      setAttr(el, 'aria-expanded', 'false')\n      // If element is not a button, we add `role=\"button\"` for accessibility\n      if (el.tagName !== 'BUTTON') {\n        setAttr(el, 'role', 'button')\n      }\n\n      // Toggle state handler\n      const toggleDirectiveHandler = (id, state) => {\n        const targets = el[BV_TOGGLE_TARGETS] || []\n        if (targets.indexOf(id) !== -1) {\n          // Set aria-expanded state\n          setAttr(el, 'aria-expanded', state ? 'true' : 'false')\n          // Set/Clear 'collapsed' class state\n          el[BV_TOGGLE_STATE] = state\n          if (state) {\n            removeClass(el, 'collapsed')\n          } else {\n            addClass(el, 'collapsed')\n          }\n        }\n      }\n\n      // Store the toggle handler on the element\n      el[BV_TOGGLE] = toggleDirectiveHandler\n\n      // Listen for toggle state changes (public)\n      vnode.context.$root.$on(EVENT_STATE, el[BV_TOGGLE])\n      // Listen for toggle state sync (private)\n      vnode.context.$root.$on(EVENT_STATE_SYNC, el[BV_TOGGLE])\n    }\n  },\n  componentUpdated: handleUpdate,\n  updated: handleUpdate,\n  unbind(el, binding, vnode) /* istanbul ignore next */ {\n    unbindTargets(vnode, binding, listenTypes)\n    // Remove our $root listener\n    if (el[BV_TOGGLE]) {\n      vnode.context.$root.$off(EVENT_STATE, el[BV_TOGGLE])\n      vnode.context.$root.$off(EVENT_STATE_SYNC, el[BV_TOGGLE])\n    }\n    // Reset custom  props\n    resetProp(el, BV_TOGGLE)\n    resetProp(el, BV_TOGGLE_STATE)\n    resetProp(el, BV_TOGGLE_CONTROLS)\n    resetProp(el, BV_TOGGLE_TARGETS)\n    // Reset classes/attrs\n    removeClass(el, 'collapsed')\n    removeAttr(el, 'aria-expanded')\n    removeAttr(el, 'aria-controls')\n    removeAttr(el, 'role')\n  }\n}\n\nexport default VBToggle\n","import { BCollapse } from './collapse'\nimport { VBToggle } from '../../directives/toggle/toggle'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst CollapsePlugin = /*#__PURE__*/ pluginFactory({\n  components: { BCollapse },\n  directives: { VBToggle }\n})\n\nexport { CollapsePlugin, BCollapse }\n\nexport default CollapsePlugin\n","/**\n * SSR safe types\n */\n\nimport { hasWindowSupport } from './env'\n\nconst w = hasWindowSupport ? window : {}\n\nexport const HTMLElement = w.HTMLElement || Object\n","import { assign, defineProperty, defineProperties, readonlyDescriptor } from './object'\n\nclass BvEvent {\n  constructor(type, eventInit = {}) {\n    // Start by emulating native Event constructor\n    if (!type) {\n      /* istanbul ignore next */\n      throw new TypeError(\n        `Failed to construct '${this.constructor.name}'. 1 argument required, ${\n          arguments.length\n        } given.`\n      )\n    }\n\n    // Merge defaults first, the eventInit, and the type last\n    // so it can't be overwritten\n    assign(this, BvEvent.Defaults, this.constructor.Defaults, eventInit, { type })\n\n    // Freeze some props as readonly, but leave them enumerable\n    defineProperties(this, {\n      type: readonlyDescriptor(),\n      cancelable: readonlyDescriptor(),\n      nativeEvent: readonlyDescriptor(),\n      target: readonlyDescriptor(),\n      relatedTarget: readonlyDescriptor(),\n      vueTarget: readonlyDescriptor(),\n      componentId: readonlyDescriptor()\n    })\n\n    // Create a private variable using closure scoping\n    let defaultPrevented = false\n    // Recreate preventDefault method. One way setter\n    this.preventDefault = function preventDefault() {\n      if (this.cancelable) {\n        defaultPrevented = true\n      }\n    }\n\n    // Create `defaultPrevented` publicly accessible prop that\n    // can only be altered by the preventDefault method\n    defineProperty(this, 'defaultPrevented', {\n      enumerable: true,\n      get() {\n        return defaultPrevented\n      }\n    })\n  }\n\n  static get Defaults() {\n    return {\n      type: '',\n      cancelable: true,\n      nativeEvent: null,\n      target: null,\n      relatedTarget: null,\n      vueTarget: null,\n      componentId: null\n    }\n  }\n}\n\n// Named Exports\nexport { BvEvent }\n\n// Default Export\nexport default BvEvent\n","import { contains, eventOff, eventOn } from '../utils/dom'\n\n// @vue/component\nexport default {\n  data() {\n    return {\n      listenForClickOut: false\n    }\n  },\n  watch: {\n    listenForClickOut(newValue, oldValue) {\n      if (newValue !== oldValue) {\n        eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n        if (newValue) {\n          eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n        }\n      }\n    }\n  },\n  beforeCreate() {\n    // Declare non-reactive properties\n    this.clickOutElement = null\n    this.clickOutEventName = null\n  },\n  mounted() {\n    if (!this.clickOutElement) {\n      this.clickOutElement = document\n    }\n    if (!this.clickOutEventName) {\n      this.clickOutEventName = 'ontouchstart' in document.documentElement ? 'touchstart' : 'click'\n    }\n    if (this.listenForClickOut) {\n      eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n    }\n  },\n  beforeDestroy() /* istanbul ignore next */ {\n    eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, false)\n  },\n  methods: {\n    isClickOut(evt) {\n      return !contains(this.$el, evt.target)\n    },\n    _clickOutHandler(evt) {\n      if (this.clickOutHandler && this.isClickOut(evt)) {\n        this.clickOutHandler(evt)\n      }\n    }\n  }\n}\n","import { eventOff, eventOn } from '../utils/dom'\n\n// @vue/component\nexport default {\n  data() {\n    return {\n      listenForFocusIn: false\n    }\n  },\n  watch: {\n    listenForFocusIn(newValue, oldValue) {\n      if (newValue !== oldValue) {\n        eventOff(this.focusInElement, 'focusin', this._focusInHandler, false)\n        if (newValue) {\n          eventOn(this.focusInElement, 'focusin', this._focusInHandler, false)\n        }\n      }\n    }\n  },\n  beforeCreate() {\n    // Declare non-reactive properties\n    this.focusInElement = null\n  },\n  mounted() {\n    if (!this.focusInElement) {\n      this.focusInElement = document\n    }\n    if (this.listenForFocusIn) {\n      eventOn(this.focusInElement, 'focusin', this._focusInHandler, false)\n    }\n  },\n  beforeDestroy() /* istanbul ignore next */ {\n    eventOff(this.focusInElement, 'focusin', this._focusInHandler, false)\n  },\n  methods: {\n    _focusInHandler(evt) {\n      if (this.focusInHandler) {\n        this.focusInHandler(evt)\n      }\n    }\n  }\n}\n","import Popper from 'popper.js'\nimport BvEvent from '../utils/bv-event.class'\nimport KeyCodes from '../utils/key-codes'\nimport warn from '../utils/warn'\nimport { closest, contains, isVisible, requestAF, selectAll } from '../utils/dom'\nimport { isNull } from '../utils/inspect'\nimport clickOutMixin from './click-out'\nimport focusInMixin from './focus-in'\n\n// Return an array of visible items\nconst filterVisibles = els => (els || []).filter(isVisible)\n\n// Dropdown item CSS selectors\nconst Selector = {\n  FORM_CHILD: '.dropdown form',\n  ITEM_SELECTOR: ['.dropdown-item', '.b-dropdown-form']\n    .map(selector => `${selector}:not(.disabled):not([disabled])`)\n    .join(', ')\n}\n\n// Popper attachment positions\nconst AttachmentMap = {\n  // Dropup left align\n  TOP: 'top-start',\n  // Dropup right align\n  TOPEND: 'top-end',\n  // Dropdown left align\n  BOTTOM: 'bottom-start',\n  // Dropdown right align\n  BOTTOMEND: 'bottom-end',\n  // Dropright left align\n  RIGHT: 'right-start',\n  // Dropright right align\n  RIGHTEND: 'right-end',\n  // Dropleft left align\n  LEFT: 'left-start',\n  // Dropleft right align\n  LEFTEND: 'left-end'\n}\n\n// @vue/component\nexport default {\n  mixins: [clickOutMixin, focusInMixin],\n  provide() {\n    return {\n      bvDropdown: this\n    }\n  },\n  props: {\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    text: {\n      // Button label\n      type: String,\n      default: ''\n    },\n    html: {\n      // Button label\n      type: String\n    },\n    dropup: {\n      // place on top if possible\n      type: Boolean,\n      default: false\n    },\n    dropright: {\n      // place right if possible\n      type: Boolean,\n      default: false\n    },\n    dropleft: {\n      // place left if possible\n      type: Boolean,\n      default: false\n    },\n    right: {\n      // Right align menu (default is left align)\n      type: Boolean,\n      default: false\n    },\n    offset: {\n      // Number of pixels to offset menu, or a CSS unit value (i.e. 1px, 1rem, etc)\n      type: [Number, String],\n      default: 0\n    },\n    noFlip: {\n      // Disable auto-flipping of menu from bottom<=>top\n      type: Boolean,\n      default: false\n    },\n    lazy: {\n      // If true, only render menu contents when open\n      type: Boolean,\n      default: false\n    },\n    popperOpts: {\n      // type: Object,\n      default: () => {}\n    }\n  },\n  data() {\n    return {\n      visible: false,\n      inNavbar: null,\n      visibleChangePrevented: false\n    }\n  },\n  computed: {\n    toggler() {\n      const toggle = this.$refs.toggle\n      return toggle ? toggle.$el || toggle : null\n    },\n    directionClass() {\n      if (this.dropup) {\n        return 'dropup'\n      } else if (this.dropright) {\n        return 'dropright'\n      } else if (this.dropleft) {\n        return 'dropleft'\n      }\n      return ''\n    }\n  },\n  watch: {\n    visible(newValue, oldValue) {\n      if (this.visibleChangePrevented) {\n        this.visibleChangePrevented = false\n        return\n      }\n\n      if (newValue !== oldValue) {\n        const evtName = newValue ? 'show' : 'hide'\n        const bvEvt = new BvEvent(evtName, {\n          cancelable: true,\n          vueTarget: this,\n          target: this.$refs.menu,\n          relatedTarget: null\n        })\n        this.emitEvent(bvEvt)\n        if (bvEvt.defaultPrevented) {\n          // Reset value and exit if canceled\n          this.visibleChangePrevented = true\n          this.visible = oldValue\n          // Just in case a child element triggered this.hide(true)\n          this.$off('hidden', this.focusToggler)\n          return\n        }\n        if (evtName === 'show') {\n          this.showMenu()\n        } else {\n          this.hideMenu()\n        }\n      }\n    },\n    disabled(newValue, oldValue) {\n      if (newValue !== oldValue && newValue && this.visible) {\n        // Hide dropdown if disabled changes to true\n        this.visible = false\n      }\n    }\n  },\n  created() {\n    // Create non-reactive property\n    this._popper = null\n  },\n  deactivated() /* istanbul ignore next: not easy to test */ {\n    // In case we are inside a `<keep-alive>`\n    this.visible = false\n    this.whileOpenListen(false)\n    this.removePopper()\n  },\n  beforeDestroy() {\n    this.visible = false\n    this.whileOpenListen(false)\n    this.removePopper()\n  },\n  methods: {\n    // Event emitter\n    emitEvent(bvEvt) {\n      const type = bvEvt.type\n      this.$emit(type, bvEvt)\n      this.$root.$emit(`bv::dropdown::${type}`, bvEvt)\n    },\n    showMenu() {\n      if (this.disabled) {\n        /* istanbul ignore next */\n        return\n      }\n      // Ensure other menus are closed\n      this.$root.$emit('bv::dropdown::shown', this)\n\n      // Are we in a navbar ?\n      if (isNull(this.inNavbar) && this.isNav) {\n        // We should use an injection for this\n        /* istanbul ignore next */\n        this.inNavbar = Boolean(closest('.navbar', this.$el))\n      }\n\n      // Disable totally Popper.js for Dropdown in Navbar\n      if (!this.inNavbar) {\n        if (typeof Popper === 'undefined') {\n          /* istanbul ignore next */\n          warn('b-dropdown: Popper.js not found. Falling back to CSS positioning.')\n        } else {\n          // for dropup with alignment we use the parent element as popper container\n          let element = (this.dropup && this.right) || this.split ? this.$el : this.$refs.toggle\n          // Make sure we have a reference to an element, not a component!\n          element = element.$el || element\n          // Instantiate popper.js\n          this.createPopper(element)\n        }\n      }\n\n      this.whileOpenListen(true)\n\n      // Wrap in nextTick to ensure menu is fully rendered/shown\n      this.$nextTick(() => {\n        // Focus on the menu container on show\n        this.focusMenu()\n        // Emit the shown event\n        this.$emit('shown')\n      })\n    },\n    hideMenu() {\n      this.whileOpenListen(false)\n      this.$root.$emit('bv::dropdown::hidden', this)\n      this.$emit('hidden')\n      this.removePopper()\n    },\n    createPopper(element) {\n      this.removePopper()\n      this._popper = new Popper(element, this.$refs.menu, this.getPopperConfig())\n    },\n    removePopper() {\n      if (this._popper) {\n        // Ensure popper event listeners are removed cleanly\n        this._popper.destroy()\n      }\n      this._popper = null\n    },\n    getPopperConfig() {\n      let placement = AttachmentMap.BOTTOM\n      if (this.dropup) {\n        placement = this.right ? AttachmentMap.TOPEND : AttachmentMap.TOP\n      } else if (this.dropright) {\n        placement = AttachmentMap.RIGHT\n      } else if (this.dropleft) {\n        placement = AttachmentMap.LEFT\n      } else if (this.right) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      const popperConfig = {\n        placement,\n        modifiers: {\n          offset: { offset: this.offset || 0 },\n          flip: { enabled: !this.noFlip }\n        }\n      }\n      if (this.boundary) {\n        popperConfig.modifiers.preventOverflow = { boundariesElement: this.boundary }\n      }\n      return { ...popperConfig, ...(this.popperOpts || {}) }\n    },\n    whileOpenListen(open) {\n      // turn listeners on/off while open\n      if (open) {\n        // If another dropdown is opened\n        this.$root.$on('bv::dropdown::shown', this.rootCloseListener)\n        // Hide the dropdown when clicked outside\n        this.listenForClickOut = true\n        // Hide the dropdown when it loses focus\n        this.listenForFocusIn = true\n      } else {\n        this.$root.$off('bv::dropdown::shown', this.rootCloseListener)\n        this.listenForClickOut = false\n        this.listenForFocusIn = false\n      }\n    },\n    rootCloseListener(vm) {\n      if (vm !== this) {\n        this.visible = false\n      }\n    },\n    show() {\n      // Public method to show dropdown\n      if (this.disabled) {\n        return\n      }\n      // Wrap in a requestAnimationFrame to allow any previous\n      // click handling to occur first\n      requestAF(() => {\n        this.visible = true\n      })\n    },\n    hide(refocus = false) {\n      // Public method to hide dropdown\n      if (this.disabled) {\n        /* istanbul ignore next */\n        return\n      }\n      this.visible = false\n      if (refocus) {\n        // Child element is closing the dropdown on click\n        this.$once('hidden', this.focusToggler)\n      }\n    },\n    // Called only by a button that toggles the menu\n    toggle(evt) {\n      evt = evt || {}\n      const type = evt.type\n      const key = evt.keyCode\n      if (\n        type !== 'click' &&\n        !(\n          type === 'keydown' &&\n          (key === KeyCodes.ENTER || key === KeyCodes.SPACE || key === KeyCodes.DOWN)\n        )\n      ) {\n        // We only toggle on Click, Enter, Space, and Arrow Down\n        /* istanbul ignore next */\n        return\n      }\n      /* istanbul ignore next */\n      if (this.disabled) {\n        this.visible = false\n        return\n      }\n      this.$emit('toggle', evt)\n      evt.preventDefault()\n      evt.stopPropagation()\n      // Toggle visibility\n      if (this.visible) {\n        this.hide(true)\n      } else {\n        this.show()\n      }\n    },\n    // Called only in split button mode, for the split button\n    click(evt) {\n      /* istanbul ignore next */\n      if (this.disabled) {\n        this.visible = false\n        return\n      }\n      this.$emit('click', evt)\n    },\n    // Called from dropdown menu context\n    onKeydown(evt) {\n      const key = evt.keyCode\n      if (key === KeyCodes.ESC) {\n        // Close on ESC\n        this.onEsc(evt)\n      } else if (key === KeyCodes.DOWN) {\n        // Down Arrow\n        this.focusNext(evt, false)\n      } else if (key === KeyCodes.UP) {\n        // Up Arrow\n        this.focusNext(evt, true)\n      }\n    },\n    onEsc(evt) {\n      if (this.visible) {\n        this.visible = false\n        evt.preventDefault()\n        evt.stopPropagation()\n        // Return focus to original trigger button\n        this.$once('hidden', this.focusToggler)\n      }\n    },\n    // Document click out listener\n    clickOutHandler() {\n      if (this.visible) {\n        this.visible = false\n      }\n    },\n    // Document focusin listener\n    focusInHandler(evt) {\n      const target = evt.target\n      // If focus leaves dropdown, hide it\n      if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n        this.visible = false\n      }\n    },\n    // Keyboard nav\n    focusNext(evt, up) {\n      // Ignore key up/down on form elements\n      if (!this.visible || (evt && closest(Selector.FORM_CHILD, evt.target))) {\n        /* istanbul ignore next: should never happen */\n        return\n      }\n      evt.preventDefault()\n      evt.stopPropagation()\n      this.$nextTick(() => {\n        const items = this.getItems()\n        if (items.length < 1) {\n          /* istanbul ignore next: should never happen */\n          return\n        }\n        let index = items.indexOf(evt.target)\n        if (up && index > 0) {\n          index--\n        } else if (!up && index < items.length - 1) {\n          index++\n        }\n        if (index < 0) {\n          /* istanbul ignore next: should never happen */\n          index = 0\n        }\n        this.focusItem(index, items)\n      })\n    },\n    focusItem(idx, items) {\n      const el = items.find((el, i) => i === idx)\n      if (el && el.focus) {\n        el.focus()\n      }\n    },\n    getItems() {\n      // Get all items\n      return filterVisibles(selectAll(Selector.ITEM_SELECTOR, this.$refs.menu))\n    },\n    focusMenu() {\n      this.$refs.menu.focus && this.$refs.menu.focus()\n    },\n    focusToggler() {\n      this.$nextTick(() => {\n        const toggler = this.toggler\n        if (toggler && toggler.focus) {\n          toggler.focus()\n        }\n      })\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport { arrayIncludes } from '../../utils/array'\nimport { stripTags } from '../../utils/html'\nimport { getComponentConfig } from '../../utils/config'\nimport { HTMLElement } from '../../utils/safe-types'\nimport idMixin from '../../mixins/id'\nimport dropdownMixin from '../../mixins/dropdown'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BButton } from '../button/button'\n\nconst NAME = 'BDropdown'\n\nexport const props = {\n  toggleText: {\n    // This really should be toggleLabel\n    type: String,\n    default: () => getComponentConfig(NAME, 'toggleText')\n  },\n  size: {\n    type: String,\n    default: null\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  menuClass: {\n    type: [String, Array],\n    default: null\n  },\n  toggleTag: {\n    type: String,\n    default: 'button'\n  },\n  toggleClass: {\n    type: [String, Array],\n    default: null\n  },\n  noCaret: {\n    type: Boolean,\n    default: false\n  },\n  split: {\n    type: Boolean,\n    default: false\n  },\n  splitHref: {\n    type: String\n    // default: undefined\n  },\n  splitTo: {\n    type: [String, Object]\n    // default: undefined\n  },\n  splitVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'splitVariant')\n  },\n  splitButtonType: {\n    type: String,\n    default: 'button',\n    validator: value => arrayIncludes(['button', 'submit', 'reset'], value)\n  },\n  role: {\n    type: String,\n    default: 'menu'\n  },\n  boundary: {\n    // String: `scrollParent`, `window` or `viewport`\n    // HTMLElement: HTML Element reference\n    type: [String, HTMLElement],\n    default: 'scrollParent'\n  }\n}\n\n// @vue/component\nexport const BDropdown = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n  props,\n  computed: {\n    dropdownClasses() {\n      return [\n        this.directionClass,\n        {\n          show: this.visible,\n          // Position `static` is needed to allow menu to \"breakout\" of the scrollParent boundaries\n          // when boundary is anything other than `scrollParent`\n          // See https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n          'position-static': this.boundary !== 'scrollParent' || !this.boundary\n        }\n      ]\n    },\n    menuClasses() {\n      return [\n        this.menuClass,\n        {\n          'dropdown-menu-right': this.right,\n          show: this.visible\n        }\n      ]\n    },\n    toggleClasses() {\n      return [\n        this.toggleClass,\n        {\n          'dropdown-toggle-split': this.split,\n          'dropdown-toggle-no-caret': this.noCaret && !this.split\n        }\n      ]\n    }\n  },\n  render(h) {\n    let split = h()\n    const buttonContent =\n      this.normalizeSlot('button-content') ||\n      this.normalizeSlot('text') ||\n      this.html ||\n      stripTags(this.text)\n    if (this.split) {\n      const btnProps = {\n        disabled: this.disabled,\n        variant: this.splitVariant || this.variant,\n        size: this.size\n      }\n      // We add these as needed due to router-link issues with defined property with undefined/null values\n      if (this.splitTo) {\n        btnProps.to = this.splitTo\n      } else if (this.splitHref) {\n        btnProps.href = this.splitHref\n      } else if (this.splitButtonType) {\n        btnProps.type = this.splitButtonType\n      }\n      split = h(\n        BButton,\n        {\n          ref: 'button',\n          props: btnProps,\n          attrs: {\n            id: this.safeId('_BV_button_')\n          },\n          on: {\n            click: this.click\n          }\n        },\n        [buttonContent]\n      )\n    }\n    const toggle = h(\n      BButton,\n      {\n        ref: 'toggle',\n        staticClass: 'dropdown-toggle',\n        class: this.toggleClasses,\n        props: {\n          variant: this.variant,\n          size: this.size,\n          disabled: this.disabled,\n          tag: this.toggleTag\n        },\n        attrs: {\n          id: this.safeId('_BV_toggle_'),\n          'aria-haspopup': 'true',\n          'aria-expanded': this.visible ? 'true' : 'false'\n        },\n        on: {\n          click: this.toggle, // click\n          keydown: this.toggle // enter, space, down\n        }\n      },\n      [this.split ? h('span', { class: ['sr-only'] }, [this.toggleText]) : buttonContent]\n    )\n    const menu = h(\n      'ul',\n      {\n        ref: 'menu',\n        staticClass: 'dropdown-menu',\n        class: this.menuClasses,\n        attrs: {\n          role: this.role,\n          tabindex: '-1',\n          'aria-labelledby': this.safeId(this.split ? '_BV_button_' : '_BV_toggle_')\n        },\n        on: {\n          keydown: this.onKeydown // up, down, esc\n        }\n      },\n      !this.lazy || this.visible ? this.normalizeSlot('default', { hide: this.hide }) : [h()]\n    )\n    return h(\n      'div',\n      {\n        staticClass: 'dropdown btn-group b-dropdown',\n        class: this.dropdownClasses,\n        attrs: { id: this.safeId() }\n      },\n      [split, toggle, menu]\n    )\n  }\n})\n\nexport default BDropdown\n","import Vue from '../../utils/vue'\nimport { requestAF } from '../../utils/dom'\nimport nomalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nexport const props = linkPropsFactory()\n\n// @vue/component\nexport const BDropdownItem = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownItem',\n  mixins: [nomalizeSlotMixin],\n  inheritAttrs: false,\n  inject: {\n    bvDropdown: {\n      default: null\n    }\n  },\n  props: {\n    ...props,\n    variant: {\n      type: String,\n      default: null\n    }\n  },\n  methods: {\n    closeDropdown() {\n      // Close on next animation frame to allow <b-link> time to process\n      requestAF(() => {\n        if (this.bvDropdown) {\n          this.bvDropdown.hide(true)\n        }\n      })\n    },\n    onClick(evt) {\n      this.$emit('click', evt)\n      this.closeDropdown()\n    }\n  },\n  render(h) {\n    return h('li', [\n      h(\n        BLink,\n        {\n          props: this.$props,\n          staticClass: 'dropdown-item',\n          class: {\n            [`text-${this.variant}`]: this.variant && !(this.active || this.disabled)\n          },\n          attrs: { ...this.$attrs, role: 'menuitem' },\n          on: { click: this.onClick },\n          ref: 'item'\n        },\n        this.normalizeSlot('default')\n      )\n    ])\n  }\n})\n\nexport default BDropdownItem\n","import Vue from '../../utils/vue'\nimport nomalizeSlotMixin from '../../mixins/normalize-slot'\n\nexport const props = {\n  active: {\n    type: Boolean,\n    default: false\n  },\n  activeClass: {\n    type: String,\n    default: 'active'\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  variant: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BDropdownItemButton = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownItemButton',\n  mixins: [nomalizeSlotMixin],\n  inheritAttrs: false,\n  inject: {\n    bvDropdown: {\n      default: null\n    }\n  },\n  props,\n  methods: {\n    closeDropdown() {\n      if (this.bvDropdown) {\n        this.bvDropdown.hide(true)\n      }\n    },\n    onClick(evt) {\n      this.$emit('click', evt)\n      this.closeDropdown()\n    }\n  },\n  render(h) {\n    return h('li', [\n      h(\n        'button',\n        {\n          staticClass: 'dropdown-item',\n          class: {\n            [this.activeClass]: this.active,\n            [`text-${this.variant}`]: this.variant && !(this.active || this.disabled)\n          },\n          attrs: {\n            ...this.$attrs,\n            role: 'menuitem',\n            type: 'button',\n            disabled: this.disabled\n          },\n          on: { click: this.onClick },\n          ref: 'button'\n        },\n        this.normalizeSlot('default')\n      )\n    ])\n  }\n})\n\nexport default BDropdownItemButton\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'header'\n  },\n  variant: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BDropdownHeader = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownHeader',\n  functional: true,\n  inheritAttrs: false,\n  props,\n  render(h, { props, data, children }) {\n    return h('li', [\n      h(\n        props.tag,\n        mergeData(data, {\n          staticClass: 'dropdown-header',\n          class: {\n            [`text-${props.variant}`]: props.variant\n          },\n          attrs: {\n            id: props.id || null,\n            role: 'heading'\n          },\n          ref: 'header'\n        }),\n        children\n      )\n    ])\n  }\n})\n\nexport default BDropdownHeader\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'hr'\n  }\n}\n\n// @vue/component\nexport const BDropdownDivider = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownDivider',\n  functional: true,\n  inheritAttrs: false,\n  props,\n  render(h, { props, data }) {\n    return h('li', [\n      h(\n        props.tag,\n        mergeData(data, {\n          staticClass: 'dropdown-divider',\n          attrs: {\n            role: 'separator',\n            'aria-orientation': 'horizontal'\n          },\n          ref: 'divider'\n        })\n      )\n    ])\n  }\n})\n\nexport default BDropdownDivider\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  inline: {\n    type: Boolean,\n    default: false\n  },\n  novalidate: {\n    type: Boolean,\n    default: false\n  },\n  validated: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BForm = /*#__PURE__*/ Vue.extend({\n  name: 'BForm',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      'form',\n      mergeData(data, {\n        class: {\n          'form-inline': props.inline,\n          'was-validated': props.validated\n        },\n        attrs: {\n          id: props.id,\n          novalidate: props.novalidate\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BForm\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BForm, props as formProps } from '../form/form'\n\nexport const BDropdownForm = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownForm',\n  functional: true,\n  inheritAttrs: false,\n  props: {\n    ...formProps,\n    disabled: {\n      type: Boolean,\n      default: false\n    }\n  },\n  render(h, { props, data, children }) {\n    return h('li', [\n      h(\n        BForm,\n        mergeData(data, {\n          ref: 'form',\n          staticClass: 'b-dropdown-form',\n          class: { disabled: props.disabled },\n          props,\n          attrs: {\n            disabled: props.disabled,\n            // Tab index of -1 for keyboard navigation\n            tabindex: props.disabled ? null : '-1'\n          }\n        }),\n        children\n      )\n    ])\n  }\n})\n\nexport default BDropdownForm\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\n// @vue/component\nexport const BDropdownText = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownText',\n  functional: true,\n  inheritAttrs: false,\n  props: {\n    tag: {\n      type: String,\n      default: 'p'\n    },\n    variant: {\n      type: String,\n      default: null\n    }\n  },\n  render(h, { props, data, children }) {\n    return h('li', [\n      h(\n        props.tag,\n        mergeData(data, {\n          staticClass: 'b-dropdown-text',\n          class: {\n            [`text-${props.variant}`]: props.variant\n          },\n          props,\n          ref: 'text'\n        }),\n        children\n      )\n    ])\n  }\n})\n\nexport default BDropdownText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  header: {\n    type: String,\n    default: null\n  },\n  headerTag: {\n    type: String,\n    default: 'header'\n  },\n  headerVariant: {\n    type: String,\n    default: null\n  },\n  headerClasses: {\n    type: [String, Array, Object],\n    default: null\n  },\n  ariaDescribedby: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BDropdownGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BDropdownGroup',\n  functional: true,\n  inheritAttrs: false,\n  props,\n  render(h, { props, data, slots, scopedSlots }) {\n    const $slots = slots()\n    const $scopedSlots = scopedSlots || {}\n    let header\n    let headerId = null\n\n    if (hasNormalizedSlot('header', $scopedSlots, $slots) || props.header) {\n      headerId = props.id ? `_bv_${props.id}_group_dd_header` : null\n      header = h(\n        props.headerTag,\n        {\n          staticClass: 'dropdown-header',\n          class: [props.headerClasses, { [`text-${props.variant}`]: props.variant }],\n          attrs: {\n            id: headerId,\n            role: 'heading'\n          }\n        },\n        normalizeSlot('header', {}, $scopedSlots, $slots) || props.header\n      )\n    }\n\n    const adb = [headerId, props.ariaDescribedBy]\n      .filter(Boolean)\n      .join(' ')\n      .trim()\n\n    return h('li', [\n      header || h(),\n      h(\n        'ul',\n        mergeData(data, {\n          staticClass: 'list-unstyled',\n          attrs: {\n            id: props.id || null,\n            'aria-describedby': adb || null\n          }\n        }),\n        normalizeSlot('default', {}, $scopedSlots, $slots)\n      )\n    ])\n  }\n})\n\nexport default BDropdownGroup\n","import { BDropdown } from './dropdown'\nimport { BDropdownItem } from './dropdown-item'\nimport { BDropdownItemButton } from './dropdown-item-button'\nimport { BDropdownHeader } from './dropdown-header'\nimport { BDropdownDivider } from './dropdown-divider'\nimport { BDropdownForm } from './dropdown-form'\nimport { BDropdownText } from './dropdown-text'\nimport { BDropdownGroup } from './dropdown-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst DropdownPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BDropdown,\n    BDd: BDropdown,\n    BDropdownItem,\n    BDdItem: BDropdownItem,\n    BDropdownItemButton,\n    BDropdownItemBtn: BDropdownItemButton,\n    BDdItemButton: BDropdownItemButton,\n    BDdItemBtn: BDropdownItemButton,\n    BDropdownHeader,\n    BDdHeader: BDropdownHeader,\n    BDropdownDivider,\n    BDdDivider: BDropdownDivider,\n    BDropdownForm,\n    BDdForm: BDropdownForm,\n    BDropdownText,\n    BDdText: BDropdownText,\n    BDropdownGroup,\n    BDdGroup: BDropdownGroup\n  }\n})\n\nexport {\n  DropdownPlugin,\n  BDropdown,\n  BDropdownItem,\n  BDropdownItemButton,\n  BDropdownHeader,\n  BDropdownDivider,\n  BDropdownForm,\n  BDropdownText,\n  BDropdownGroup\n}\n\nexport default DropdownPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { arrayIncludes } from '../../utils/array'\n\nexport const props = {\n  type: {\n    type: String,\n    default: 'iframe',\n    validator: str =>\n      arrayIncludes(['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy'], str)\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  aspect: {\n    type: String,\n    default: '16by9'\n  }\n}\n\n// @vue/component\nexport const BEmbed = /*#__PURE__*/ Vue.extend({\n  name: 'BEmbed',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      {\n        ref: data.ref,\n        staticClass: 'embed-responsive',\n        class: {\n          [`embed-responsive-${props.aspect}`]: Boolean(props.aspect)\n        }\n      },\n      [h(props.type, mergeData(data, { ref: '', staticClass: 'embed-responsive-item' }), children)]\n    )\n  }\n})\n\nexport default BEmbed\n","import { BEmbed } from './embed'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst EmbedPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BEmbed }\n})\n\nexport { EmbedPlugin, BEmbed }\n\nexport default EmbedPlugin\n","import { stripTags } from '../utils/html'\nimport { isArray, isPlainObject, isUndefined } from '../utils/inspect'\nimport { keys } from '../utils/object'\n\n// @vue/component\nexport default {\n  props: {\n    options: {\n      type: [Array, Object],\n      default() {\n        return []\n      }\n    },\n    valueField: {\n      type: String,\n      default: 'value'\n    },\n    textField: {\n      type: String,\n      default: 'text'\n    },\n    htmlField: {\n      type: String,\n      default: 'html'\n    },\n    disabledField: {\n      type: String,\n      default: 'disabled'\n    }\n  },\n  computed: {\n    formOptions() {\n      const options = this.options\n      const valueField = this.valueField\n      const textField = this.textField\n      const htmlField = this.htmlField\n      const disabledField = this.disabledField\n\n      if (isArray(options)) {\n        // Normalize flat-ish arrays to Array of Objects\n        return options.map(option => {\n          if (isPlainObject(option)) {\n            const value = option[valueField]\n            const text = String(option[textField])\n            return {\n              value: isUndefined(value) ? text : value,\n              text: stripTags(text),\n              html: option[htmlField],\n              disabled: Boolean(option[disabledField])\n            }\n          }\n          return {\n            value: option,\n            text: stripTags(String(option)),\n            disabled: false\n          }\n        })\n      } else {\n        // options is Object\n        // Normalize Objects to Array of Objects\n        return keys(options).map(key => {\n          const option = options[key] || {}\n          if (isPlainObject(option)) {\n            const value = option[valueField]\n            const text = option[textField]\n            return {\n              value: isUndefined(value) ? key : value,\n              text: isUndefined(text) ? stripTags(String(key)) : stripTags(String(text)),\n              html: option[htmlField],\n              disabled: Boolean(option[disabledField])\n            }\n          }\n          return {\n            value: key,\n            text: stripTags(String(option)),\n            disabled: false\n          }\n        })\n      }\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport formOptionsMixin from '../../mixins/form-options'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { htmlOrText } from '../../utils/html'\n\n// @vue/component\nexport const BFormDatalist = /*#__PURE__*/ Vue.extend({\n  name: 'BFormDatalist',\n  mixins: [formOptionsMixin, normalizeSlotMixin],\n  props: {\n    id: {\n      type: String,\n      default: null,\n      required: true\n    }\n  },\n  render(h) {\n    const options = this.formOptions.map((option, index) => {\n      return h('option', {\n        key: `option_${index}_opt`,\n        attrs: { disabled: option.disabled },\n        domProps: { ...htmlOrText(option.html, option.text), value: option.value }\n      })\n    })\n    return h('datalist', { attrs: { id: this.id } }, [options, this.normalizeSlot('default')])\n  }\n})\n\nexport default BFormDatalist\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\n\nconst NAME = 'BFormText'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'small'\n  },\n  textVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'textVariant')\n  },\n  inline: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BFormText = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          'form-text': !props.inline,\n          [`text-${props.textVariant}`]: Boolean(props.textVariant)\n        },\n        attrs: {\n          id: props.id\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BFormText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  tooltip: {\n    type: Boolean,\n    default: false\n  },\n  forceShow: {\n    type: Boolean,\n    default: false\n  },\n  state: {\n    type: [Boolean, String],\n    default: null\n  },\n  ariaLive: {\n    type: String,\n    default: null\n  },\n  role: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BFormInvalidFeedback = /*#__PURE__*/ Vue.extend({\n  name: 'BFormInvalidFeedback',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    const show = props.forceShow === true || props.state === false || props.state === 'invalid'\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          'invalid-feedback': !props.tooltip,\n          'invalid-tooltip': props.tooltip,\n          'd-block': show\n        },\n        attrs: {\n          id: props.id,\n          role: props.role,\n          'aria-live': props.ariaLive,\n          'aria-atomic': props.ariaLive ? 'true' : null\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BFormInvalidFeedback\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  id: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  tooltip: {\n    type: Boolean,\n    default: false\n  },\n  forceShow: {\n    type: Boolean,\n    default: false\n  },\n  state: {\n    type: [Boolean, String],\n    default: null\n  },\n  ariaLive: {\n    type: String,\n    default: null\n  },\n  role: {\n    type: String,\n    default: null\n  }\n}\n\n// @vue/component\nexport const BFormValidFeedback = /*#__PURE__*/ Vue.extend({\n  name: 'BFormValidFeedback',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    const show = props.forceShow === true || props.state === true || props.state === 'valid'\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          'valid-feedback': !props.tooltip,\n          'valid-tooltip': props.tooltip,\n          'd-block': show\n        },\n        attrs: {\n          id: props.id,\n          role: props.role,\n          'aria-live': props.ariaLive,\n          'aria-atomic': props.ariaLive ? 'true' : null\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BFormValidFeedback\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  }\n}\n\n// @vue/component\nexport const BFormRow = /*#__PURE__*/ Vue.extend({\n  name: 'BFormRow',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'form-row'\n      }),\n      children\n    )\n  }\n})\n\nexport default BFormRow\n","import { BForm } from './form'\nimport { BFormDatalist } from './form-datalist'\nimport { BFormText } from './form-text'\nimport { BFormInvalidFeedback } from './form-invalid-feedback'\nimport { BFormValidFeedback } from './form-valid-feedback'\nimport { BFormRow } from '../layout/form-row'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BForm,\n    BFormDatalist,\n    BDatalist: BFormDatalist,\n    BFormText,\n    BFormInvalidFeedback,\n    BFormFeedback: BFormInvalidFeedback,\n    BFormValidFeedback,\n    // Added here for convenience\n    BFormRow\n  }\n})\n\n// BFormRow is not exported here as a named export, as it is exported by Layout\nexport { FormPlugin, BForm, BFormDatalist, BFormText, BFormInvalidFeedback, BFormValidFeedback }\n\nexport default FormPlugin\n","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n *  - true or 'valid' for is-valid\n *  - false or 'invalid' for is-invalid\n *  - null (or empty string) for no contextual state\n */\n\n// @vue/component\nexport default {\n  props: {\n    state: {\n      // true/'valid', false/'invalid', '',null\n      // The order must be String first, then Boolean!\n      type: [String, Boolean],\n      default: null\n    }\n  },\n  computed: {\n    computedState() {\n      const state = this.state\n      if (state === '') {\n        return null\n      } else if (state === true || state === 'valid') {\n        return true\n      } else if (state === false || state === 'invalid') {\n        return false\n      }\n      return null\n    },\n    stateClass() {\n      const state = this.computedState\n      if (state === true) {\n        return 'is-valid'\n      } else if (state === false) {\n        return 'is-invalid'\n      }\n      return null\n    }\n  }\n}\n","import upperFirst from './upper-first'\n\n/**\n * Suffix can be a falsey value so nothing is appended to string.\n * (helps when looping over props & some shouldn't change)\n * Use data last parameters to allow for currying.\n * @param {string} suffix\n * @param {string} str\n */\nconst suffixPropName = (suffix, str) => str + (suffix ? upperFirst(suffix) : '')\n\nexport default suffixPropName\n","import { mergeData } from 'vue-functional-data-merge'\nimport memoize from '../../utils/memoize'\nimport suffixPropName from '../../utils/suffix-prop-name'\nimport { arrayIncludes } from '../../utils/array'\nimport { isUndefined, isNull } from '../../utils/inspect'\nimport { keys, assign, create } from '../../utils/object'\nimport { getBreakpointsUpCached } from '../../utils/config'\n\n// Generates a prop object with a type of `[Boolean, String, Number]`\nconst boolStrNum = () => ({\n  type: [Boolean, String, Number],\n  default: false\n})\n\n// Generates a prop object with a type of `[String, Number]`\nconst strNum = () => ({\n  type: [String, Number],\n  default: null\n})\n\n// Compute a breakpoint class name\nconst computeBreakpoint = (type, breakpoint, val) => {\n  let className = type\n  if (isUndefined(val) || isNull(val) || val === false) {\n    return undefined\n  }\n  if (breakpoint) {\n    className += `-${breakpoint}`\n  }\n  // Handling the boolean style prop when accepting [Boolean, String, Number]\n  // means Vue will not convert <b-col sm></b-col> to sm: true for us.\n  // Since the default is false, an empty string indicates the prop's presence.\n  if (type === 'col' && (val === '' || val === true)) {\n    // .col-md\n    return className.toLowerCase()\n  }\n  // .order-md-6\n  className += `-${val}`\n  return className.toLowerCase()\n}\n\n// Memoized function for better performance on generating class names\nconst computeBreakpointClass = memoize(computeBreakpoint)\n\n// Cached copy of the breakpoint prop names\nlet breakpointPropMap = create(null)\n\n// Lazy evaled props factory for BCol\nconst generateProps = () => {\n  // Grab the breakpoints from the cached config (exclude the '' (xs) breakpoint)\n  const breakpoints = getBreakpointsUpCached().filter(Boolean)\n\n  // Supports classes like: .col-sm, .col-md-6, .col-lg-auto\n  const breakpointCol = breakpoints.reduce((propMap, breakpoint) => {\n    if (breakpoint) {\n      // We filter out the '' breakpoint (xs), as making a prop name ''\n      // would not work. The `cols` prop is used for `xs`\n      propMap[breakpoint] = boolStrNum()\n    }\n    return propMap\n  }, create(null))\n\n  // Supports classes like: .offset-md-1, .offset-lg-12\n  const breakpointOffset = breakpoints.reduce((propMap, breakpoint) => {\n    propMap[suffixPropName(breakpoint, 'offset')] = strNum()\n    return propMap\n  }, create(null))\n\n  // Supports classes like: .order-md-1, .order-lg-12\n  const breakpointOrder = breakpoints.reduce((propMap, breakpoint) => {\n    propMap[suffixPropName(breakpoint, 'order')] = strNum()\n    return propMap\n  }, create(null))\n\n  // For loop doesn't need to check hasOwnProperty\n  // when using an object created from null\n  breakpointPropMap = assign(create(null), {\n    col: keys(breakpointCol),\n    offset: keys(breakpointOffset),\n    order: keys(breakpointOrder)\n  })\n\n  // Return the generated props\n  return {\n    // Generic flexbox .col (xs)\n    col: {\n      type: Boolean,\n      default: false\n    },\n    // .col-[1-12]|auto  (xs)\n    cols: strNum(),\n    // Breakpoint Specific props\n    ...breakpointCol,\n    offset: strNum(),\n    ...breakpointOffset,\n    order: strNum(),\n    ...breakpointOrder,\n    // Flex alignment\n    alignSelf: {\n      type: String,\n      default: null,\n      validator: str =>\n        arrayIncludes(['auto', 'start', 'end', 'center', 'baseline', 'stretch'], str)\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    }\n  }\n}\n\n// We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\nexport const BCol = {\n  name: 'BCol',\n  functional: true,\n  get props() {\n    // Allow props to be lazy evaled on first access and\n    // then they become a non-getter afterwards.\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n    delete this.props\n    // eslint-disable-next-line no-return-assign\n    return (this.props = generateProps())\n  },\n  render(h, { props, data, children }) {\n    const classList = []\n    // Loop through `col`, `offset`, `order` breakpoint props\n    for (const type in breakpointPropMap) {\n      // Returns colSm, offset, offsetSm, orderMd, etc.\n      const keys = breakpointPropMap[type]\n      for (let i = 0; i < keys.length; i++) {\n        // computeBreakpoint(col, colSm => Sm, value=[String, Number, Boolean])\n        const c = computeBreakpointClass(type, keys[i].replace(type, ''), props[keys[i]])\n        // If a class is returned, push it onto the array.\n        if (c) {\n          classList.push(c)\n        }\n      }\n    }\n\n    const hasColClasses = classList.some(className => /^col-/.test(className))\n\n    classList.push({\n      // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n      col: props.col || (!hasColClasses && !props.cols),\n      [`col-${props.cols}`]: props.cols,\n      [`offset-${props.offset}`]: props.offset,\n      [`order-${props.order}`]: props.order,\n      [`align-self-${props.alignSelf}`]: props.alignSelf\n    })\n\n    return h(props.tag, mergeData(data, { class: classList }), children)\n  }\n}\n\nexport default BCol\n","// Utils\nimport memoize from '../../utils/memoize'\nimport upperFirst from '../../utils/upper-first'\nimport warn from '../../utils/warn'\nimport { arrayIncludes } from '../../utils/array'\nimport { getBreakpointsUpCached } from '../../utils/config'\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr } from '../../utils/dom'\nimport { isBrowser } from '../../utils/env'\nimport { isBoolean } from '../../utils/inspect'\nimport { keys, create } from '../../utils/object'\n// Mixins\nimport formStateMixin from '../../mixins/form-state'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n// Sub components\nimport { BCol } from '../layout/col'\nimport { BFormRow } from '../layout/form-row'\nimport { BFormText } from '../form/form-text'\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback'\nimport { BFormValidFeedback } from '../form/form-valid-feedback'\n\n// Component name\nconst NAME = 'BFormGroup'\n\n// Selector for finding first input in the form-group\nconst SELECTOR = 'input:not([disabled]),textarea:not([disabled]),select:not([disabled])'\n\nconst DEPRECATED_MSG =\n  'Props \"horizontal\" and \"breakpoint\" are deprecated. Use \"label-cols(-{breakpoint})\" props instead.'\n\n// Render helper functions (here rather than polluting the instance with more methods)\nconst renderInvalidFeedback = (h, ctx) => {\n  const content = ctx.normalizeSlot('invalid-feedback') || ctx.invalidFeedback\n  let invalidFeedback = h()\n  if (content) {\n    invalidFeedback = h(\n      BFormInvalidFeedback,\n      {\n        props: {\n          id: ctx.invalidFeedbackId,\n          // If state is explicitly false, always show the feedback\n          state: ctx.computedState,\n          tooltip: ctx.tooltip,\n          ariaLive: ctx.feedbackAriaLive,\n          role: ctx.feedbackAriaLive ? 'alert' : null\n        },\n        attrs: { tabindex: content ? '-1' : null }\n      },\n      [content]\n    )\n  }\n  return invalidFeedback\n}\n\nconst renderValidFeedback = (h, ctx) => {\n  const content = ctx.normalizeSlot('valid-feedback') || ctx.validFeedback\n  let validFeedback = h()\n  if (content) {\n    validFeedback = h(\n      BFormValidFeedback,\n      {\n        props: {\n          id: ctx.validFeedbackId,\n          // If state is explicitly true, always show the feedback\n          state: ctx.computedState,\n          tooltip: ctx.tooltip,\n          ariaLive: ctx.feedbackAriaLive,\n          role: ctx.feedbackAriaLive ? 'alert' : null\n        },\n        attrs: { tabindex: content ? '-1' : null }\n      },\n      [content]\n    )\n  }\n  return validFeedback\n}\n\nconst renderHelpText = (h, ctx) => {\n  // Form help text (description)\n  const content = ctx.normalizeSlot('description') || ctx.description\n  let description = h()\n  if (content) {\n    description = h(\n      BFormText,\n      {\n        attrs: {\n          id: ctx.descriptionId,\n          tabindex: content ? '-1' : null\n        }\n      },\n      [content]\n    )\n  }\n  return description\n}\n\nconst renderLabel = (h, ctx) => {\n  // Render label/legend inside b-col if necessary\n  const content = ctx.normalizeSlot('label') || ctx.label\n  const labelFor = ctx.labelFor\n  const isLegend = !labelFor\n  const isHorizontal = ctx.isHorizontal\n  const labelTag = isLegend ? 'legend' : 'label'\n  if (!content && !isHorizontal) {\n    return h()\n  } else if (ctx.labelSrOnly) {\n    let label = h()\n    if (content) {\n      label = h(\n        labelTag,\n        {\n          class: 'sr-only',\n          attrs: { id: ctx.labelId, for: labelFor || null }\n        },\n        [content]\n      )\n    }\n    return h(isHorizontal ? BCol : 'div', { props: isHorizontal ? ctx.labelColProps : {} }, [label])\n  } else {\n    return h(\n      isHorizontal ? BCol : labelTag,\n      {\n        on: isLegend ? { click: ctx.legendClick } : {},\n        props: isHorizontal ? { tag: labelTag, ...ctx.labelColProps } : {},\n        attrs: {\n          id: ctx.labelId,\n          for: labelFor || null,\n          // We add a tab index to legend so that screen readers\n          // will properly read the aria-labelledby in IE.\n          tabindex: isLegend ? '-1' : null\n        },\n        class: [\n          // When horizontal or if a legend is rendered, add col-form-label\n          // for correct sizing as Bootstrap has inconsistent font styling\n          // for legend in non-horizontal form-groups.\n          // See: https://github.com/twbs/bootstrap/issues/27805\n          isHorizontal || isLegend ? 'col-form-label' : '',\n          // Emulate label padding top of 0 on legend when not horizontal\n          !isHorizontal && isLegend ? 'pt-0' : '',\n          // If not horizontal and not a legend, we add d-block to label\n          // so that label-align works\n          !isHorizontal && !isLegend ? 'd-block' : '',\n          ctx.labelSize ? `col-form-label-${ctx.labelSize}` : '',\n          ctx.labelAlignClasses,\n          ctx.labelClass\n        ]\n      },\n      [content]\n    )\n  }\n}\n\n// -- BFormGroup Prop factory -- used for lazy generation of props\n\n// Memoize this function to return cached values to\n// save time in computed functions\nconst makePropName = memoize((breakpoint = '', prefix) => {\n  return `${prefix}${upperFirst(breakpoint)}`\n})\n\n// BFormGroup prop generator for lazy generation of props\nconst generateProps = () => {\n  const BREAKPOINTS = getBreakpointsUpCached()\n\n  // Generate the labelCol breakpoint props\n  const bpLabelColProps = BREAKPOINTS.reduce((props, breakpoint) => {\n    // i.e. label-cols, label-cols-sm, label-cols-md, ...\n    props[makePropName(breakpoint, 'labelCols')] = {\n      type: [Number, String, Boolean],\n      default: breakpoint ? false : null\n    }\n    return props\n  }, create(null))\n\n  // Generate the labelAlign breakpoint props\n  const bpLabelAlignProps = BREAKPOINTS.reduce((props, breakpoint) => {\n    // label-align, label-align-sm, label-align-md, ...\n    props[makePropName(breakpoint, 'labelAlign')] = {\n      type: String, // left, right, center\n      default: null\n    }\n    return props\n  }, create(null))\n\n  return {\n    label: {\n      type: String,\n      default: null\n    },\n    labelFor: {\n      type: String,\n      default: null\n    },\n    labelSize: {\n      type: String,\n      default: null\n    },\n    labelSrOnly: {\n      type: Boolean,\n      default: false\n    },\n    // label-cols prop and all label-cols-{bp} props\n    ...bpLabelColProps,\n    // label-align prop and all label-align-{bp} props\n    ...bpLabelAlignProps,\n    labelClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    description: {\n      type: String,\n      default: null\n    },\n    invalidFeedback: {\n      type: String,\n      default: null\n    },\n    validFeedback: {\n      type: String,\n      default: null\n    },\n    tooltip: {\n      // Enable tooltip style feedback\n      type: Boolean,\n      default: false\n    },\n    feedbackAriaLive: {\n      type: String,\n      default: 'assertive'\n    },\n    validated: {\n      type: Boolean,\n      default: false\n    },\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    horizontal: {\n      // Deprecated\n      type: Boolean,\n      default: false,\n      deprecated: DEPRECATED_MSG\n    },\n    breakpoint: {\n      // Deprecated (ignored if horizontal is not true)\n      type: String,\n      default: null, // legacy value 'sm',\n      deprecated: DEPRECATED_MSG\n    }\n  }\n}\n\n// We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\nexport const BFormGroup = {\n  name: NAME,\n  mixins: [idMixin, formStateMixin, normalizeSlotMixin],\n  get props() {\n    // Allow props to be lazy evaled on first access and\n    // then they become a non-getter afterwards.\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n    delete this.props\n    // eslint-disable-next-line no-return-assign\n    return (this.props = generateProps())\n  },\n  computed: {\n    labelColProps() {\n      const props = {}\n      /* istanbul ignore next: deprecated */\n      if (this.horizontal) {\n        // Deprecated setting of horizontal/breakpoint props\n        /* istanbul ignore next */\n        warn(`b-form-group: ${DEPRECATED_MSG}`)\n        // Legacy default is breakpoint sm and cols 3\n        const bp = this.breakpoint || getBreakpointsUpCached()[1] // 'sm'\n        const cols = parseInt(this.labelCols, 10) || 3\n        props[bp] = cols > 0 ? cols : 3\n        // We then return the single breakpoint prop for legacy compatibility\n        return props\n      }\n      getBreakpointsUpCached().forEach(breakpoint => {\n        // Grab the value if the label column breakpoint prop\n        let propVal = this[makePropName(breakpoint, 'labelCols')]\n        // Handle case where the prop's value is an empty string,\n        // which represents true\n        propVal = propVal === '' ? true : propVal || false\n        if (!isBoolean(propVal)) {\n          // Convert to column size to number\n          propVal = parseInt(propVal, 10) || 0\n          // Ensure column size is greater than 0\n          propVal = propVal > 0 ? propVal : false\n        }\n        if (propVal) {\n          // Add the prop to the list of props to give to b-col\n          // If breakpoint is '' (labelCols=true), then we use the\n          // col prop to make equal width at xs\n          const bColPropName = breakpoint || (isBoolean(propVal) ? 'col' : 'cols')\n          // Add it to the props\n          props[bColPropName] = propVal\n        }\n      })\n      return props\n    },\n    labelAlignClasses() {\n      const classes = []\n      getBreakpointsUpCached().forEach(breakpoint => {\n        // Assemble the label column breakpoint align classes\n        const propVal = this[makePropName(breakpoint, 'labelAlign')] || null\n        if (propVal) {\n          const className = breakpoint ? `text-${breakpoint}-${propVal}` : `text-${propVal}`\n          classes.push(className)\n        }\n      })\n      return classes\n    },\n    isHorizontal() {\n      // Determine if the resultant form-group will be rendered\n      // horizontal (meaning it has label-col breakpoints)\n      return keys(this.labelColProps).length > 0\n    },\n    labelId() {\n      return this.$slots['label'] || this.label ? this.safeId('_BV_label_') : null\n    },\n    descriptionId() {\n      return this.$slots['description'] || this.description ? this.safeId('_BV_description_') : null\n    },\n    hasInvalidFeedback() {\n      // Used for computing aria-describedby\n      const $slots = this.$slots\n      return this.computedState === false && ($slots['invalid-feedback'] || this.invalidFeedback)\n    },\n    invalidFeedbackId() {\n      return this.hasInvalidFeedback ? this.safeId('_BV_feedback_invalid_') : null\n    },\n    hasValidFeedback() {\n      // Used for computing aria-describedby\n      return this.computedState === true && (this.$slots['valid-feedback'] || this.validFeedback)\n    },\n    validFeedbackId() {\n      return this.hasValidFeedback ? this.safeId('_BV_feedback_valid_') : null\n    },\n    describedByIds() {\n      // Screen readers will read out any content linked to by aria-describedby\n      // even if the content is hidden with `display: none;`, hence we only include\n      // feedback IDs if the form-group's state is explicitly valid or invalid.\n      return (\n        [this.descriptionId, this.invalidFeedbackId, this.validFeedbackId]\n          .filter(Boolean)\n          .join(' ') || null\n      )\n    }\n  },\n  watch: {\n    describedByIds(add, remove) {\n      if (add !== remove) {\n        this.setInputDescribedBy(add, remove)\n      }\n    }\n  },\n  mounted() {\n    this.$nextTick(() => {\n      // Set the aria-describedby IDs on the input specified by label-for\n      // We do this in a nextTick to ensure the children have finished rendering\n      this.setInputDescribedBy(this.describedByIds)\n    })\n  },\n  methods: {\n    legendClick(evt) {\n      if (this.labelFor) {\n        // Don't do anything if labelFor is set\n        /* istanbul ignore next: clicking a label will focus the input, so no need to test */\n        return\n      }\n      const tagName = evt.target ? evt.target.tagName : ''\n      if (/^(input|select|textarea|label|button|a)$/i.test(tagName)) {\n        // If clicked an interactive element inside legend,\n        // we just let the default happen\n        /* istanbul ignore next */\n        return\n      }\n      const inputs = selectAll(SELECTOR, this.$refs.content).filter(isVisible)\n      if (inputs && inputs.length === 1 && inputs[0].focus) {\n        // if only a single input, focus it, emulating label behaviour\n        inputs[0].focus()\n      }\n    },\n    setInputDescribedBy(add, remove) {\n      // Sets the `aria-describedby` attribute on the input if label-for is set.\n      // Optionally accepts a string of IDs to remove as the second parameter.\n      // Preserves any aria-describedby value(s) user may have on input.\n      if (this.labelFor && isBrowser) {\n        const input = select(`#${this.labelFor}`, this.$refs.content)\n        if (input) {\n          const adb = 'aria-describedby'\n          let ids = (getAttr(input, adb) || '').split(/\\s+/)\n          add = (add || '').split(/\\s+/)\n          remove = (remove || '').split(/\\s+/)\n          // Update ID list, preserving any original IDs\n          // and ensuring the ID's are unique\n          ids = ids\n            .filter(id => !arrayIncludes(remove, id))\n            .concat(add)\n            .filter(Boolean)\n          ids = keys(ids.reduce((memo, id) => ({ ...memo, [id]: true }), {}))\n            .join(' ')\n            .trim()\n          if (ids) {\n            setAttr(input, adb, ids)\n          } else {\n            // No IDs, so remove the attribute\n            removeAttr(input, adb)\n          }\n        }\n      }\n    }\n  },\n  render(h) {\n    const isFieldset = !this.labelFor\n    const isHorizontal = this.isHorizontal\n    // Generate the label\n    const label = renderLabel(h, this)\n    // Generate the content\n    const content = h(\n      isHorizontal ? BCol : 'div',\n      {\n        ref: 'content',\n        attrs: {\n          tabindex: isFieldset ? '-1' : null,\n          role: isFieldset ? 'group' : null\n        }\n      },\n      [\n        this.normalizeSlot('default') || h(),\n        renderInvalidFeedback(h, this),\n        renderValidFeedback(h, this),\n        renderHelpText(h, this)\n      ]\n    )\n    // Create the form-group\n    const data = {\n      staticClass: 'form-group',\n      class: [this.validated ? 'was-validated' : null, this.stateClass],\n      attrs: {\n        id: this.safeId(),\n        disabled: isFieldset ? this.disabled : null,\n        role: isFieldset ? null : 'group',\n        'aria-invalid': this.computedState === false ? 'true' : null,\n        // Only apply aria-labelledby if we are a horizontal fieldset\n        // as the legend is no longer a direct child of fieldset\n        'aria-labelledby': isFieldset && isHorizontal ? this.labelId : null,\n        // Only apply aria-describedby IDs if we are a fieldset\n        // as the input will have the IDs when not a fieldset\n        'aria-describedby': isFieldset ? this.describedByIds : null\n      }\n    }\n    // Return it wrapped in a form-group\n    // Note: Fieldsets do not support adding `row` or `form-row` directly\n    // to them due to browser specific render issues, so we move the `form-row`\n    // to an inner wrapper div when horizontal and using a fieldset\n    return h(\n      isFieldset ? 'fieldset' : isHorizontal ? BFormRow : 'div',\n      data,\n      isHorizontal && isFieldset ? [h(BFormRow, {}, [label, content])] : [label, content]\n    )\n  }\n}\n\nexport default BFormGroup\n","import { BFormGroup } from './form-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormGroupPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormGroup,\n    BFormFieldset: BFormGroup\n  }\n})\n\nexport { FormGroupPlugin, BFormGroup }\n\nexport default FormGroupPlugin\n","import looseEqual from './loose-equal'\n\nconst looseIndexOf = (arr, val) => {\n  // Assumes that the first argument is an array\n  for (let i = 0; i < arr.length; i++) {\n    if (looseEqual(arr[i], val)) {\n      return i\n    }\n  }\n  return -1\n}\n\nexport default looseIndexOf\n","import { matches, select, isVisible, requestAF } from '../utils/dom'\n\nconst SELECTOR = 'input, textarea, select'\n\n// @vue/component\nexport default {\n  props: {\n    name: {\n      type: String\n      // default: undefined\n    },\n    id: {\n      type: String\n      // default: undefined\n    },\n    disabled: {\n      type: Boolean\n    },\n    required: {\n      type: Boolean,\n      default: false\n    },\n    form: {\n      type: String,\n      default: null\n    },\n    autofocus: {\n      type: Boolean,\n      default: false\n    }\n  },\n  mounted() {\n    this.handleAutofocus()\n  },\n  activated() /* istanbul ignore next */ {\n    this.handleAutofocus()\n  },\n  methods: {\n    handleAutofocus() {\n      this.$nextTick(() => {\n        requestAF(() => {\n          let el = this.$el\n          if (this.autofocus && isVisible(el)) {\n            if (!matches(el, SELECTOR)) {\n              el = select(SELECTOR, el)\n            }\n            el && el.focus && el.focus()\n          }\n        })\n      })\n    }\n  }\n}\n","import normalizeSlotMixin from './normalize-slot'\n\n// @vue/component\nexport default {\n  mixins: [normalizeSlotMixin],\n  model: {\n    prop: 'checked',\n    event: 'input'\n  },\n  props: {\n    value: {\n      // Value when checked\n      // type: Object,\n      // default: undefined\n    },\n    checked: {\n      // This is the v-model\n      // type: Object,\n      // default: undefined\n    },\n    inline: {\n      type: Boolean,\n      default: false\n    },\n    plain: {\n      type: Boolean,\n      default: false\n    },\n    button: {\n      // Only applicable in standalone mode (non group)\n      type: Boolean,\n      default: false\n    },\n    buttonVariant: {\n      // Only applicable when rendered with button style\n      type: String,\n      default: null\n    },\n    ariaLabel: {\n      // Placed on the input if present.\n      type: String,\n      default: null\n    },\n    ariaLabelledby: {\n      // Placed on the input if present.\n      type: String,\n      default: null\n    }\n  },\n  data() {\n    return {\n      localChecked: this.isGroup ? this.bvGroup.checked : this.checked,\n      hasFocus: false\n    }\n  },\n  computed: {\n    computedLocalChecked: {\n      get() {\n        return this.isGroup ? this.bvGroup.localChecked : this.localChecked\n      },\n      set(val) {\n        if (this.isGroup) {\n          this.bvGroup.localChecked = val\n        } else {\n          this.localChecked = val\n        }\n      }\n    },\n    isGroup() {\n      // Is this check/radio a child of check-group or radio-group?\n      return Boolean(this.bvGroup)\n    },\n    isBtnMode() {\n      // Support button style in single input mode\n      return this.isGroup ? this.bvGroup.buttons : this.button\n    },\n    isPlain() {\n      return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain\n    },\n    isCustom() {\n      return this.isBtnMode ? false : !this.isPlain\n    },\n    isSwitch() {\n      // Custom switch styling (checkboxes only)\n      return this.isBtnMode || this.isRadio || this.isPlain\n        ? false\n        : this.isGroup\n          ? this.bvGroup.switches\n          : this.switch\n    },\n    isInline() {\n      return this.isGroup ? this.bvGroup.inline : this.inline\n    },\n    isDisabled() {\n      // Child can be disabled while parent isn't, but is always disabled if group is\n      return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled\n    },\n    isRequired() {\n      // Required only works when a name is provided for the input(s)\n      // Child can only be required when parent is\n      // Groups will always have a name (either user supplied or auto generated)\n      return Boolean(this.getName && (this.isGroup ? this.bvGroup.required : this.required))\n    },\n    getName() {\n      // Group name preferred over local name\n      return (this.isGroup ? this.bvGroup.groupName : this.name) || null\n    },\n    getForm() {\n      return (this.isGroup ? this.bvGroup.form : this.form) || null\n    },\n    getSize() {\n      return (this.isGroup ? this.bvGroup.size : this.size) || ''\n    },\n    getState() {\n      return this.isGroup ? this.bvGroup.computedState : this.computedState\n    },\n    getButtonVariant() {\n      // Local variant preferred over group variant\n      if (this.buttonVariant) {\n        return this.buttonVariant\n      } else if (this.isGroup && this.bvGroup.buttonVariant) {\n        return this.bvGroup.buttonVariant\n      }\n      // default variant\n      return 'secondary'\n    },\n    buttonClasses() {\n      // Same for radio & check\n      return [\n        'btn',\n        `btn-${this.getButtonVariant}`,\n        this.getSize ? `btn-${this.getSize}` : '',\n        // 'disabled' class makes \"button\" look disabled\n        this.isDisabled ? 'disabled' : '',\n        // 'active' class makes \"button\" look pressed\n        this.isChecked ? 'active' : '',\n        // Focus class makes button look focused\n        this.hasFocus ? 'focus' : ''\n      ]\n    }\n  },\n  watch: {\n    checked(newVal, oldVal) {\n      this.computedLocalChecked = newVal\n    }\n  },\n  methods: {\n    handleFocus(evt) {\n      // When in buttons mode, we need to add 'focus' class to label when input focused\n      // As it is the hidden input which has actual focus\n      if (evt.target) {\n        if (evt.type === 'focus') {\n          this.hasFocus = true\n        } else if (evt.type === 'blur') {\n          this.hasFocus = false\n        }\n      }\n    },\n    // Convenience methods for focusing the input\n    focus() {\n      if (!this.isDisabled && this.$refs.input && this.$refs.input.focus) {\n        this.$refs.input.focus()\n      }\n    },\n    blur() {\n      if (!this.isDisabled && this.$refs.input && this.$refs.input.blur) {\n        this.$refs.input.blur()\n      }\n    }\n  },\n  render(h) {\n    const defaultSlot = this.normalizeSlot('default')\n\n    // Generate the input element\n    const on = { change: this.handleChange }\n    if (this.isBtnMode) {\n      // Handlers for focus styling when in button mode\n      on.focus = on.blur = this.handleFocus\n    }\n    const input = h('input', {\n      ref: 'input',\n      key: 'input',\n      on,\n      class: {\n        'form-check-input': this.isPlain,\n        'custom-control-input': this.isCustom,\n        'is-valid': this.getState === true && !this.isBtnMode,\n        'is-invalid': this.getState === false && !this.isBtnMode,\n        // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n        'position-static': this.isPlain && !defaultSlot\n      },\n      directives: [\n        {\n          name: 'model',\n          rawName: 'v-model',\n          value: this.computedLocalChecked,\n          expression: 'computedLocalChecked'\n        }\n      ],\n      attrs: {\n        id: this.safeId(),\n        type: this.isRadio ? 'radio' : 'checkbox',\n        name: this.getName,\n        form: this.getForm,\n        disabled: this.isDisabled,\n        required: this.isRequired,\n        autocomplete: 'off',\n        'aria-required': this.isRequired || null,\n        'aria-label': this.ariaLabel || null,\n        'aria-labelledby': this.ariaLabelledby || null\n      },\n      domProps: {\n        value: this.value,\n        checked: this.isChecked\n      }\n    })\n\n    if (this.isBtnMode) {\n      // Button mode\n      let button = h('label', { class: this.buttonClasses }, [input, defaultSlot])\n      if (!this.isGroup) {\n        // Standalone button mode, so wrap in 'btn-group-toggle'\n        // and flag it as inline-block to mimic regular buttons\n        button = h('div', { class: ['btn-group-toggle', 'd-inline-block'] }, [button])\n      }\n      return button\n    } else {\n      // Not button mode\n      let label = h()\n      // If no label content in plain mode we dont render the label\n      // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n      if (!(this.isPlain && !defaultSlot)) {\n        label = h(\n          'label',\n          {\n            class: {\n              'form-check-label': this.isPlain,\n              'custom-control-label': this.isCustom\n            },\n            attrs: { for: this.safeId() }\n          },\n          defaultSlot\n        )\n      }\n      // Wrap it in a div\n      return h(\n        'div',\n        {\n          class: {\n            'form-check': this.isPlain,\n            'form-check-inline': this.isPlain && this.isInline,\n            'custom-control': this.isCustom,\n            'custom-control-inline': this.isCustom && this.isInline,\n            'custom-checkbox': this.isCustom && this.isCheck && !this.isSwitch,\n            'custom-switch': this.isSwitch,\n            'custom-radio': this.isCustom && this.isRadio,\n            // Temporary until Bootstrap v4 supports sizing (most likely in V5)\n            [`form-control-${this.getSize}`]: Boolean(this.getSize && !this.isBtnMode)\n          }\n        },\n        [input, label]\n      )\n    }\n  }\n}\n","// @vue/component\nexport default {\n  props: {\n    size: {\n      type: String,\n      default: null\n    }\n  },\n  computed: {\n    sizeFormClass() {\n      return [this.size ? `form-control-${this.size}` : null]\n    },\n    sizeBtnClass() /* istanbul ignore next: don't think this is used */ {\n      return [this.size ? `btn-${this.size}` : null]\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport looseEqual from '../../utils/loose-equal'\nimport looseIndexOf from '../../utils/loose-index-of'\nimport { isArray } from '../../utils/inspect'\nimport formMixin from '../../mixins/form'\nimport formRadioCheckMixin from '../../mixins/form-radio-check'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport idMixin from '../../mixins/id'\n\n// @vue/component\nexport const BFormCheckbox = /*#__PURE__*/ Vue.extend({\n  name: 'BFormCheckbox',\n  mixins: [\n    formRadioCheckMixin, // Includes shared render function\n    idMixin,\n    formMixin,\n    formSizeMixin,\n    formStateMixin\n  ],\n  inject: {\n    bvGroup: {\n      from: 'bvCheckGroup',\n      default: false\n    }\n  },\n  props: {\n    value: {\n      // type: [Object, Boolean],\n      default: true\n    },\n    uncheckedValue: {\n      // type: [Object, Boolean],\n      // Not applicable in multi-check mode\n      default: false\n    },\n    indeterminate: {\n      // Not applicable in multi-check mode\n      type: Boolean,\n      default: false\n    },\n    switch: {\n      // Custom switch styling\n      type: Boolean,\n      default: false\n    },\n    checked: {\n      // v-model\n      type: [String, Number, Object, Array, Boolean],\n      default: null\n    }\n  },\n  computed: {\n    isChecked() {\n      const checked = this.computedLocalChecked\n      const value = this.value\n      if (isArray(checked)) {\n        return looseIndexOf(checked, value) > -1\n      } else {\n        return looseEqual(checked, value)\n      }\n    },\n    isRadio() {\n      return false\n    },\n    isCheck() {\n      return true\n    }\n  },\n  watch: {\n    computedLocalChecked(newVal, oldVal) {\n      this.$emit('input', newVal)\n      if (this.$refs && this.$refs.input) {\n        this.$emit('update:indeterminate', this.$refs.input.indeterminate)\n      }\n    },\n    indeterminate(newVal, oldVal) {\n      this.setIndeterminate(newVal)\n    }\n  },\n  mounted() {\n    // Set initial indeterminate state\n    this.setIndeterminate(this.indeterminate)\n  },\n  methods: {\n    handleChange({ target: { checked, indeterminate } }) {\n      let localChecked = this.computedLocalChecked\n      const value = this.value\n      const isArr = isArray(localChecked)\n      const uncheckedValue = isArr ? null : this.uncheckedValue\n      // Update computedLocalChecked\n      if (isArr) {\n        const idx = looseIndexOf(localChecked, value)\n        if (checked && idx < 0) {\n          // Add value to array\n          localChecked = localChecked.concat(value)\n        } else if (!checked && idx > -1) {\n          // Remove value from array\n          localChecked = localChecked.slice(0, idx).concat(localChecked.slice(idx + 1))\n        }\n      } else {\n        localChecked = checked ? value : uncheckedValue\n      }\n      this.computedLocalChecked = localChecked\n      // Change is only emitted on user interaction\n      this.$emit('change', checked ? value : uncheckedValue)\n      // If this is a child of form-checkbox-group, we emit a change event on it as well\n      if (this.isGroup) {\n        this.bvGroup.$emit('change', localChecked)\n      }\n      this.$emit('update:indeterminate', indeterminate)\n    },\n    setIndeterminate(state) {\n      // Indeterminate only supported in single checkbox mode\n      if (isArray(this.computedLocalChecked)) {\n        state = false\n      }\n      if (this.$refs && this.$refs.input) {\n        this.$refs.input.indeterminate = state\n        // Emit update event to prop\n        this.$emit('update:indeterminate', state)\n      }\n    }\n  }\n})\n\nexport default BFormCheckbox\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formStateMixin from '../../mixins/form-state'\nimport formSizeMixin from '../../mixins/form-size'\nimport formRadioCheckMixin from '../../mixins/form-radio-check'\nimport looseEqual from '../../utils/loose-equal'\n\n// @vue/component\nexport const BFormRadio = /*#__PURE__*/ Vue.extend({\n  name: 'BFormRadio',\n  mixins: [\n    idMixin,\n    formRadioCheckMixin, // Includes shared render function\n    formMixin,\n    formSizeMixin,\n    formStateMixin\n  ],\n  inject: {\n    bvGroup: {\n      from: 'bvRadioGroup',\n      default: false\n    }\n  },\n  props: {\n    checked: {\n      // v-model\n      type: [String, Object, Number, Boolean],\n      default: null\n    }\n  },\n  computed: {\n    // Radio Groups can only have a single value, so determining if checked is simple\n    isChecked() {\n      return looseEqual(this.value, this.computedLocalChecked)\n    },\n    // Flags for form-radio-check mixin\n    isRadio() {\n      return true\n    },\n    isCheck() {\n      return false\n    }\n  },\n  watch: {\n    // Radio Groups can only have a single value, so our watchers are simple\n    computedLocalChecked(newVal, oldVal) {\n      this.$emit('input', this.computedLocalChecked)\n    }\n  },\n  methods: {\n    handleChange({ target: { checked } }) {\n      const value = this.value\n      this.computedLocalChecked = value\n      // Change is only emitted on user interaction\n      this.$emit('change', checked ? value : null)\n      // If this is a child of form-radio-group, we emit a change event on it as well\n      if (this.isGroup) {\n        this.bvGroup.$emit('change', checked ? value : null)\n      }\n    }\n  }\n})\n\nexport default BFormRadio\n","import { htmlOrText } from '../utils/html'\nimport normalizeSlotMixin from './normalize-slot'\nimport { BFormCheckbox } from '../components/form-checkbox/form-checkbox'\nimport { BFormRadio } from '../components/form-radio/form-radio'\n\n// @vue/component\nexport default {\n  mixins: [normalizeSlotMixin],\n  model: {\n    prop: 'checked',\n    event: 'input'\n  },\n  props: {\n    validated: {\n      type: Boolean,\n      default: false\n    },\n    ariaInvalid: {\n      type: [Boolean, String],\n      default: false\n    },\n    stacked: {\n      type: Boolean,\n      default: false\n    },\n    plain: {\n      type: Boolean,\n      default: false\n    },\n    buttons: {\n      // Render as button style\n      type: Boolean,\n      default: false\n    },\n    buttonVariant: {\n      // Only applicable when rendered with button style\n      type: String,\n      default: 'secondary'\n    }\n  },\n  computed: {\n    inline() {\n      return !this.stacked\n    },\n    groupName() {\n      // Checks/Radios tied to the same model must have the same name,\n      // especially for ARIA accessibility.\n      return this.name || this.safeId()\n    },\n    groupClasses() {\n      if (this.buttons) {\n        return [\n          'btn-group-toggle',\n          this.inline ? 'btn-group' : 'btn-group-vertical',\n          this.size ? `btn-group-${this.size}` : '',\n          this.validated ? `was-validated` : ''\n        ]\n      }\n      return [this.validated ? `was-validated` : '']\n    },\n    computedAriaInvalid() {\n      const ariaInvalid = this.ariaInvalid\n      if (ariaInvalid === true || ariaInvalid === 'true' || ariaInvalid === '') {\n        return 'true'\n      }\n      return this.computedState === false ? 'true' : null\n    }\n  },\n  watch: {\n    checked(newVal, oldVal) {\n      this.localChecked = newVal\n    },\n    localChecked(newVal, oldVal) {\n      this.$emit('input', newVal)\n    }\n  },\n  render(h) {\n    const inputs = this.formOptions.map((option, idx) => {\n      const uid = `_BV_option_${idx}_`\n      return h(\n        this.isRadioGroup ? BFormRadio : BFormCheckbox,\n        {\n          key: uid,\n          props: {\n            id: this.safeId(uid),\n            value: option.value,\n            // Individual radios or checks can be disabled in a group\n            disabled: option.disabled || false\n            // We don't need to include these, since the input's will know they are inside here\n            // name: this.groupName,\n            // form: this.form || null,\n            // required: Boolean(this.name && this.required)\n          }\n        },\n        [h('span', { domProps: htmlOrText(option.html, option.text) })]\n      )\n    })\n    return h(\n      'div',\n      {\n        class: this.groupClasses,\n        attrs: {\n          id: this.safeId(),\n          role: this.isRadioGroup ? 'radiogroup' : 'group',\n          // Tabindex to allow group to be focused if needed\n          tabindex: '-1',\n          'aria-required': this.required ? 'true' : null,\n          'aria-invalid': this.computedAriaInvalid\n        }\n      },\n      [this.normalizeSlot('first'), inputs, this.normalizeSlot('default')]\n    )\n  }\n}\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formOptionsMixin from '../../mixins/form-options'\nimport formRadioCheckGroupMixin from '../../mixins/form-radio-check-group'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\n\nexport const props = {\n  switches: {\n    // Custom switch styling\n    type: Boolean,\n    default: false\n  },\n  checked: {\n    type: [String, Number, Object, Array, Boolean],\n    default: null\n  }\n}\n\n// @vue/component\nexport const BFormCheckboxGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BFormCheckboxGroup',\n  mixins: [\n    idMixin,\n    formMixin,\n    formRadioCheckGroupMixin, // Includes render function\n    formOptionsMixin,\n    formSizeMixin,\n    formStateMixin\n  ],\n  provide() {\n    return {\n      bvCheckGroup: this\n    }\n  },\n  props,\n  data() {\n    return {\n      localChecked: this.checked || []\n    }\n  },\n  computed: {\n    isRadioGroup() {\n      return false\n    }\n  }\n})\n\nexport default BFormCheckboxGroup\n","import { BFormCheckbox } from './form-checkbox'\nimport { BFormCheckboxGroup } from './form-checkbox-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormCheckboxPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormCheckbox,\n    BCheckbox: BFormCheckbox,\n    BCheck: BFormCheckbox,\n    BFormCheckboxGroup,\n    BCheckboxGroup: BFormCheckboxGroup,\n    BCheckGroup: BFormCheckboxGroup\n  }\n})\n\nexport { FormCheckboxPlugin, BFormCheckbox, BFormCheckboxGroup }\n\nexport default FormCheckboxPlugin\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formOptionsMixin from '../../mixins/form-options'\nimport formRadioCheckGroupMixin from '../../mixins/form-radio-check-group'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\n\nexport const props = {\n  checked: {\n    type: [String, Object, Number, Boolean],\n    default: null\n  }\n}\n\n// @vue/component\nexport const BFormRadioGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BFormRadioGroup',\n  mixins: [\n    idMixin,\n    formMixin,\n    formRadioCheckGroupMixin, // Includes render function\n    formOptionsMixin,\n    formSizeMixin,\n    formStateMixin\n  ],\n  provide() {\n    return {\n      bvRadioGroup: this\n    }\n  },\n  props,\n  data() {\n    return {\n      localChecked: this.checked\n    }\n  },\n  computed: {\n    isRadioGroup() {\n      return true\n    }\n  }\n})\n\nexport default BFormRadioGroup\n","import { BFormRadio } from './form-radio'\nimport { BFormRadioGroup } from './form-radio-group'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormRadioPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormRadio,\n    BRadio: BFormRadio,\n    BFormRadioGroup,\n    BRadioGroup: BFormRadioGroup\n  }\n})\n\nexport { FormRadioPlugin, BFormRadio, BFormRadioGroup }\n\nexport default FormRadioPlugin\n","import { isFunction, isNull, isUndefined } from '../utils/inspect'\n\n// @vue/component\nexport default {\n  model: {\n    prop: 'value',\n    event: 'update'\n  },\n  props: {\n    value: {\n      type: [String, Number],\n      default: ''\n    },\n    ariaInvalid: {\n      type: [Boolean, String],\n      default: false\n    },\n    readonly: {\n      type: Boolean,\n      default: false\n    },\n    plaintext: {\n      type: Boolean,\n      default: false\n    },\n    autocomplete: {\n      type: String,\n      default: null\n    },\n    placeholder: {\n      type: String,\n      default: null\n    },\n    formatter: {\n      type: Function,\n      default: null\n    },\n    trim: {\n      type: Boolean,\n      default: false\n    },\n    number: {\n      type: Boolean,\n      default: false\n    },\n    lazyFormatter: {\n      type: Boolean,\n      value: false\n    }\n  },\n  data() {\n    return {\n      localValue: this.stringifyValue(this.value)\n    }\n  },\n  computed: {\n    computedClass() {\n      return [\n        {\n          // Range input needs class custom-range\n          'custom-range': this.type === 'range',\n          // plaintext not supported by type=range or type=color\n          'form-control-plaintext':\n            this.plaintext && this.type !== 'range' && this.type !== 'color',\n          // form-control not used by type=range or plaintext. Always used by type=color\n          'form-control': (!this.plaintext && this.type !== 'range') || this.type === 'color'\n        },\n        this.sizeFormClass,\n        this.stateClass\n      ]\n    },\n    computedAriaInvalid() {\n      if (!this.ariaInvalid || this.ariaInvalid === 'false') {\n        // this.ariaInvalid is null or false or 'false'\n        return this.computedState === false ? 'true' : null\n      }\n      if (this.ariaInvalid === true) {\n        // User wants explicit aria-invalid=true\n        return 'true'\n      }\n      // Most likely a string value (which could be the string 'true')\n      return this.ariaInvalid\n    }\n  },\n  watch: {\n    value(newVal) {\n      if (newVal !== this.localValue) {\n        this.localValue = this.stringifyValue(newVal)\n      }\n    }\n  },\n  mounted() {\n    const value = this.stringifyValue(this.value)\n    if (value !== this.localValue) {\n      /* istanbul ignore next */\n      this.localValue = value\n    }\n  },\n  methods: {\n    stringifyValue(value) {\n      return isUndefined(value) || isNull(value) ? '' : String(value)\n    },\n    getFormatted(value, evt, force = false) {\n      value = this.stringifyValue(value)\n      if ((!this.lazyFormatter || force) && isFunction(this.formatter)) {\n        value = this.formatter(value, evt)\n      }\n      return value\n    },\n    updateValue(value) {\n      value = this.stringifyValue(value)\n      if (value !== this.localValue) {\n        // Keep the input set to the value before modifiers\n        this.localValue = value\n        if (this.number) {\n          // Emulate `.number` modifier behaviour\n          const num = parseFloat(value)\n          value = isNaN(num) ? value : num\n        } else if (this.trim) {\n          // Emulate `.trim` modifier behaviour\n          value = value.trim()\n        }\n        // Update the v-model\n        this.$emit('update', value)\n      } else if (this.$refs.input && value !== this.$refs.input.value) {\n        // When the `localValue` hasn't changed but the actual input value\n        // is out of sync, make sure to change it to the given one.\n        // Usually casued by browser autocomplete and how it triggers the\n        // change or input event, or depending on the formatter function.\n        // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n        // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n        /* istanbul ignore next: hard to test */\n        this.$refs.input.value = value\n      }\n    },\n    onInput(evt) {\n      // `evt.target.composing` is set by Vue\n      // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n      /* istanbul ignore if: hard to test composition events */\n      if (evt.target.composing) {\n        return\n      }\n      const formatted = this.getFormatted(evt.target.value, evt)\n      // Exit when the `formatter` function strictly returned `false`\n      // or prevented the input event\n      if (formatted === false || evt.defaultPrevented) {\n        /* istanbul ignore next */\n        evt.preventDefault()\n        return\n      }\n      this.updateValue(formatted)\n      this.$emit('input', formatted)\n    },\n    onChange(evt) {\n      // `evt.target.composing` is set by Vue\n      // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n      /* istanbul ignore if: hard to test composition events */\n      if (evt.target.composing) {\n        return\n      }\n      const formatted = this.getFormatted(evt.target.value, evt)\n      // Exit when the `formatter` function strictly returned `false`\n      // or prevented the input event\n      if (formatted === false || evt.defaultPrevented) {\n        /* istanbul ignore next */\n        evt.preventDefault()\n        return\n      }\n      this.updateValue(formatted)\n      this.$emit('change', formatted)\n    },\n    onBlur(evt) {\n      // Lazy formatter\n      if (this.lazyFormatter) {\n        const formatted = this.getFormatted(evt.target.value, evt, true)\n        // Exit when the `formatter` function strictly returned `false`\n        if (formatted === false) {\n          return\n        }\n        this.updateValue(formatted)\n      }\n      // Emit native blur event\n      this.$emit('blur', evt)\n    },\n    focus() {\n      // For external handler that may want a focus method\n      if (!this.disabled) {\n        this.$el.focus()\n      }\n    },\n    blur() {\n      // For external handler that may want a blur method\n      if (!this.disabled) {\n        this.$el.blur()\n      }\n    }\n  }\n}\n","// @vue/component\nexport default {\n  computed: {\n    selectionStart: {\n      // Expose selectionStart for formatters, etc\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.selectionStart\n      },\n      set(val) /* istanbul ignore next */ {\n        this.$refs.input.selectionStart = val\n      }\n    },\n    selectionEnd: {\n      // Expose selectionEnd for formatters, etc\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.selectionEnd\n      },\n      set(val) /* istanbul ignore next */ {\n        this.$refs.input.selectionEnd = val\n      }\n    },\n    selectionDirection: {\n      // Expose selectionDirection for formatters, etc\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.selectionDirection\n      },\n      set(val) /* istanbul ignore next */ {\n        this.$refs.input.selectionDirection = val\n      }\n    }\n  },\n  methods: {\n    select() /* istanbul ignore next */ {\n      // For external handler that may want a select() method\n      this.$refs.input.select(...arguments)\n    },\n    setSelectionRange() /* istanbul ignore next */ {\n      // For external handler that may want a setSelectionRange(a,b,c) method\n      this.$refs.input.setSelectionRange(...arguments)\n    },\n    setRangeText() /* istanbul ignore next */ {\n      // For external handler that may want a setRangeText(a,b,c) method\n      this.$refs.input.setRangeText(...arguments)\n    }\n  }\n}\n","// @vue/component\nexport default {\n  computed: {\n    validity: {\n      // Expose validity property\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.validity\n      }\n    },\n    validationMessage: {\n      // Expose validationMessage property\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.validationMessage\n      }\n    },\n    willValidate: {\n      // Expose willValidate property\n      cache: false,\n      get() /* istanbul ignore next */ {\n        return this.$refs.input.willValidate\n      }\n    }\n  },\n  methods: {\n    setCustomValidity() /* istanbul ignore next */ {\n      // For external handler that may want a setCustomValidity(...) method\n      return this.$refs.input.setCustomValidity(...arguments)\n    },\n    checkValidity() /* istanbul ignore next */ {\n      // For external handler that may want a checkValidity(...) method\n      return this.$refs.input.checkValidity(...arguments)\n    },\n    reportValidity() /* istanbul ignore next */ {\n      // For external handler that may want a reportValidity(...) method\n      return this.$refs.input.reportValidity(...arguments)\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport formTextMixin from '../../mixins/form-text'\nimport formSelectionMixin from '../../mixins/form-selection'\nimport formValidityMixin from '../../mixins/form-validity'\nimport { arrayIncludes } from '../../utils/array'\nimport { eventOn, eventOff } from '../../utils/dom'\n\n// Valid supported input types\nconst TYPES = [\n  'text',\n  'password',\n  'email',\n  'number',\n  'url',\n  'tel',\n  'search',\n  'range',\n  'color',\n  'date',\n  'time',\n  'datetime',\n  'datetime-local',\n  'month',\n  'week'\n]\n\n// @vue/component\nexport const BFormInput = /*#__PURE__*/ Vue.extend({\n  name: 'BFormInput',\n  mixins: [\n    idMixin,\n    formMixin,\n    formSizeMixin,\n    formStateMixin,\n    formTextMixin,\n    formSelectionMixin,\n    formValidityMixin\n  ],\n  props: {\n    // value prop defined in form-text mixin\n    // value: { },\n    type: {\n      type: String,\n      default: 'text',\n      validator: type => arrayIncludes(TYPES, type)\n    },\n    noWheel: {\n      // Disable mousewheel to prevent wheel from changing values (i.e. number/date).\n      type: Boolean,\n      default: false\n    },\n    min: {\n      type: [String, Number],\n      default: null\n    },\n    max: {\n      type: [String, Number],\n      default: null\n    },\n    step: {\n      type: [String, Number],\n      default: null\n    },\n    list: {\n      type: String,\n      default: null\n    }\n  },\n  computed: {\n    localType() {\n      // We only allow certain types\n      return arrayIncludes(TYPES, this.type) ? this.type : 'text'\n    }\n  },\n  watch: {\n    noWheel(newVal) {\n      this.setWheelStopper(newVal)\n    }\n  },\n  mounted() {\n    this.setWheelStopper(this.noWheel)\n  },\n  deactivated() {\n    // Turn off listeners when keep-alive component deactivated\n    /* istanbul ignore next */\n    this.setWheelStopper(false)\n  },\n  activated() {\n    // Turn on listeners (if no-wheel) when keep-alive component activated\n    /* istanbul ignore next */\n    this.setWheelStopper(this.noWheel)\n  },\n  beforeDestroy() {\n    /* istanbul ignore next */\n    this.setWheelStopper(false)\n  },\n  methods: {\n    setWheelStopper(on) {\n      const input = this.$el\n      // We use native events, so that we don't interfere with propgation\n      if (on) {\n        eventOn(input, 'focus', this.onWheelFocus)\n        eventOn(input, 'blur', this.onWheelBlur)\n      } else {\n        eventOff(input, 'focus', this.onWheelFocus)\n        eventOff(input, 'blur', this.onWheelBlur)\n        eventOff(document, 'wheel', this.stopWheel)\n      }\n    },\n    onWheelFocus(evt) {\n      eventOn(document, 'wheel', this.stopWheel)\n    },\n    onWheelBlur(evt) {\n      eventOff(document, 'wheel', this.stopWheel)\n    },\n    stopWheel(evt) {\n      evt.preventDefault()\n      this.$el.blur()\n    }\n  },\n  render(h) {\n    var self = this\n    return h('input', {\n      ref: 'input',\n      class: self.computedClass,\n      directives: [\n        {\n          name: 'model',\n          rawName: 'v-model',\n          value: self.localValue,\n          expression: 'localValue'\n        }\n      ],\n      attrs: {\n        id: self.safeId(),\n        name: self.name,\n        form: self.form || null,\n        type: self.localType,\n        disabled: self.disabled,\n        placeholder: self.placeholder,\n        required: self.required,\n        autocomplete: self.autocomplete || null,\n        readonly: self.readonly || self.plaintext,\n        min: self.min,\n        max: self.max,\n        step: self.step,\n        list: self.localType !== 'password' ? self.list : null,\n        'aria-required': self.required ? 'true' : null,\n        'aria-invalid': self.computedAriaInvalid\n      },\n      domProps: {\n        value: self.localValue\n      },\n      on: {\n        ...self.$listeners,\n        input: self.onInput,\n        change: self.onChange,\n        blur: self.onBlur\n      }\n    })\n  }\n})\n\nexport default BFormInput\n","import { BFormInput } from './form-input'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormInputPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormInput,\n    BInput: BFormInput\n  }\n})\n\nexport { FormInputPlugin, BFormInput }\n\nexport default FormInputPlugin\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formMixin from '../../mixins/form'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport formTextMixin from '../../mixins/form-text'\nimport formSelectionMixin from '../../mixins/form-selection'\nimport formValidityMixin from '../../mixins/form-validity'\nimport { getCS, isVisible } from '../../utils/dom'\nimport { isNull } from '../../utils/inspect'\n\n// @vue/component\nexport const BFormTextarea = /*#__PURE__*/ Vue.extend({\n  name: 'BFormTextarea',\n  mixins: [\n    idMixin,\n    formMixin,\n    formSizeMixin,\n    formStateMixin,\n    formTextMixin,\n    formSelectionMixin,\n    formValidityMixin\n  ],\n  props: {\n    rows: {\n      type: [Number, String],\n      default: 2\n    },\n    maxRows: {\n      type: [Number, String],\n      default: null\n    },\n    wrap: {\n      // 'soft', 'hard' or 'off'. Browser default is 'soft'\n      type: String,\n      default: 'soft'\n    },\n    noResize: {\n      // Disable the resize handle of textarea\n      type: Boolean,\n      default: false\n    },\n    noAutoShrink: {\n      // When in auto resize mode, disable shrinking to content height\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      dontResize: true,\n      heightInPx: null\n    }\n  },\n  computed: {\n    computedStyle() {\n      const styles = {\n        // Setting `noResize` to true will disable the ability for the user to\n        // manually resize the textarea. We also disable when in auto height mode\n        resize: !this.computedRows || this.noResize ? 'none' : null\n      }\n      if (!this.computedRows) {\n        // Conditionaly set the computed CSS height when auto rows/height is enabled.\n        // We avoid setting the style to null, which can override user manual resize handle.\n        styles.height = this.heightInPx\n        // We always add a vertical scrollbar to the textarea when auto-height is\n        // enabled so that the computed height calcaultion returns a stable value.\n        styles.overflowY = 'scroll'\n      }\n      return styles\n    },\n    computedMinRows() {\n      // Ensure rows is at least 2 and positive (2 is the native textarea value).\n      // A value of 1 can cause issues in some browsers, and most browsers only support\n      // 2 as the smallest value.\n      return Math.max(parseInt(this.rows, 10) || 2, 2)\n    },\n    computedMaxRows() {\n      return Math.max(this.computedMinRows, parseInt(this.maxRows, 10) || 0)\n    },\n    computedRows() {\n      // This is used to set the attribute 'rows' on the textarea.\n      // If auto-height is enabled, then we return null as we use CSS to control height.\n      return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null\n    }\n  },\n  watch: {\n    dontResize(newVal, oldval) {\n      if (!newVal) {\n        this.setHeight()\n      }\n    },\n    localValue(newVal, oldVal) {\n      this.setHeight()\n    }\n  },\n  mounted() {\n    // Enable opt-in resizing once mounted\n    this.$nextTick(() => {\n      this.dontResize = false\n    })\n  },\n  activated() {\n    // If we are being re-activated in <keep-alive>, enable opt-in resizing\n    this.$nextTick(() => {\n      this.dontResize = false\n    })\n  },\n  deactivated() {\n    // If we are in a deactivated <keep-alive>, disable opt-in resizing\n    this.dontResize = true\n  },\n  beforeDestroy() {\n    /* istanbul ignore next */\n    this.dontResize = true\n  },\n  methods: {\n    setHeight() {\n      this.$nextTick(() => {\n        this.heightInPx = this.computeHeight()\n      })\n    },\n    computeHeight() /* istanbul ignore next: can't test getComputedStyle in JSDOM */ {\n      if (this.$isServer || !isNull(this.computedRows)) {\n        return null\n      }\n\n      const el = this.$el\n\n      // Element must be visible (not hidden) and in document.\n      // Must be checked after above checks\n      if (!isVisible(el)) {\n        return null\n      }\n\n      // Get current computed styles\n      const computedStyle = getCS(el)\n      // Height of one line of text in px\n      const lineHeight = parseFloat(computedStyle.lineHeight)\n      // Calculate height of border and padding\n      const border =\n        (parseFloat(computedStyle.borderTopWidth) || 0) +\n        (parseFloat(computedStyle.borderBottomWidth) || 0)\n      const padding =\n        (parseFloat(computedStyle.paddingTop) || 0) + (parseFloat(computedStyle.paddingBottom) || 0)\n      // Calculate offset\n      const offset = border + padding\n      // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n      const minHeight = lineHeight * this.computedMinRows + offset\n\n      // Get the current style height (with `px` units)\n      const oldHeight = el.style.height || computedStyle.height\n      // Probe scrollHeight by temporarily changing the height to `auto`\n      el.style.height = 'auto'\n      const scrollHeight = el.scrollHeight\n      // Place the original old height back on the element, just in case this computedProp\n      // returns the same value as before.\n      el.style.height = oldHeight\n\n      // Calculate content height in \"rows\" (scrollHeight includes padding but not border)\n      const contentRows = Math.max((scrollHeight - padding) / lineHeight, 2)\n      // Calculate number of rows to display (limited within min/max rows)\n      const rows = Math.min(Math.max(contentRows, this.computedMinRows), this.computedMaxRows)\n      // Calculate the required height of the textarea including border and padding (in pixels)\n      const height = Math.max(Math.ceil(rows * lineHeight + offset), minHeight)\n\n      // Computed height remains the larger of oldHeight and new height,\n      // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n      if (this.noAutoShrink && (parseFloat(oldHeight) || 0) > height) {\n        return oldHeight\n      }\n\n      // Return the new computed CSS height in px units\n      return `${height}px`\n    }\n  },\n  render(h) {\n    // Using self instead of this helps reduce code size during minification\n    const self = this\n    return h('textarea', {\n      ref: 'input',\n      class: self.computedClass,\n      style: self.computedStyle,\n      directives: [\n        {\n          name: 'model',\n          rawName: 'v-model',\n          value: self.localValue,\n          expression: 'localValue'\n        }\n      ],\n      attrs: {\n        id: self.safeId(),\n        name: self.name,\n        form: self.form || null,\n        disabled: self.disabled,\n        placeholder: self.placeholder,\n        required: self.required,\n        autocomplete: self.autocomplete || null,\n        readonly: self.readonly || self.plaintext,\n        rows: self.computedRows,\n        wrap: self.wrap || null,\n        'aria-required': self.required ? 'true' : null,\n        'aria-invalid': self.computedAriaInvalid\n      },\n      domProps: {\n        value: self.localValue\n      },\n      on: {\n        ...self.$listeners,\n        input: self.onInput,\n        change: self.onChange,\n        blur: self.onBlur\n      }\n    })\n  }\n})\n\nexport default BFormTextarea\n","import { BFormTextarea } from './form-textarea'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormTextareaPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormTextarea,\n    BTextarea: BFormTextarea\n  }\n})\n\nexport { FormTextareaPlugin, BFormTextarea }\n\nexport default FormTextareaPlugin\n","// @vue/component\nexport default {\n  props: {\n    plain: {\n      type: Boolean,\n      default: false\n    }\n  },\n  computed: {\n    custom() {\n      return !this.plain\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport { from as arrayFrom, isArray, concat } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { isFunction } from '../../utils/inspect'\nimport formCustomMixin from '../../mixins/form-custom'\nimport formMixin from '../../mixins/form'\nimport formStateMixin from '../../mixins/form-state'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\nconst NAME = 'BFormFile'\n\n// @vue/component\nexport const BFormFile = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [idMixin, formMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props: {\n    value: {\n      // type: Object,\n      default: null\n    },\n    accept: {\n      type: String,\n      default: ''\n    },\n    // Instruct input to capture from camera\n    capture: {\n      type: Boolean,\n      default: false\n    },\n    placeholder: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'placeholder')\n    },\n    browseText: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'browseText')\n    },\n    dropPlaceholder: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'dropPlaceholder')\n    },\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    directory: {\n      type: Boolean,\n      default: false\n    },\n    noTraverse: {\n      type: Boolean,\n      default: false\n    },\n    noDrop: {\n      type: Boolean,\n      default: false\n    },\n    fileNameFormatter: {\n      type: Function,\n      default: null\n    }\n  },\n  data() {\n    return {\n      selectedFile: null,\n      dragging: false,\n      hasFocus: false\n    }\n  },\n  computed: {\n    selectLabel() {\n      // Draging active\n      if (this.dragging && this.dropPlaceholder) {\n        return this.dropPlaceholder\n      }\n\n      // No file chosen\n      if (!this.selectedFile || this.selectedFile.length === 0) {\n        return this.placeholder\n      }\n\n      // Convert selectedFile to an array (if not already one)\n      const files = concat(this.selectedFile).filter(Boolean)\n\n      if (this.hasNormalizedSlot('file-name')) {\n        // There is a slot for formatting the files/names\n        return [\n          this.normalizeSlot('file-name', {\n            files: files,\n            names: files.map(f => f.name)\n          })\n        ]\n      } else {\n        // Use the user supplied formatter, or the built in one.\n        return isFunction(this.fileNameFormatter)\n          ? String(this.fileNameFormatter(files))\n          : files.map(file => file.name).join(', ')\n      }\n    }\n  },\n  watch: {\n    selectedFile(newVal, oldVal) {\n      // The following test is needed when the file input is \"reset\" or the\n      // exact same file(s) are selected to prevent an infinite loop.\n      // When in `multiple` mode we need to check for two empty arrays or\n      // two arrays with identical files\n      if (\n        newVal === oldVal ||\n        (isArray(newVal) &&\n          isArray(oldVal) &&\n          newVal.length === oldVal.length &&\n          newVal.every((v, i) => v === oldVal[i]))\n      ) {\n        return\n      }\n      if (!newVal && this.multiple) {\n        this.$emit('input', [])\n      } else {\n        this.$emit('input', newVal)\n      }\n    },\n    value(newVal) {\n      if (!newVal || (isArray(newVal) && newVal.length === 0)) {\n        this.reset()\n      }\n    }\n  },\n  methods: {\n    focusHandler(evt) {\n      // Bootstrap v4 doesn't have focus styling for custom file input\n      // Firefox has a '[type=file]:focus ~ sibling' selector issue,\n      // so we add a 'focus' class to get around these bugs\n      if (this.plain || evt.type === 'focusout') {\n        this.hasFocus = false\n      } else {\n        // Add focus styling for custom file input\n        this.hasFocus = true\n      }\n    },\n    reset() {\n      try {\n        // Wrapped in try in case IE 11 craps out\n        this.$refs.input.value = ''\n      } catch (e) {}\n      // IE 11 doesn't support setting `input.value` to '' or null\n      // So we use this little extra hack to reset the value, just in case.\n      // This also appears to work on modern browsers as well.\n      this.$refs.input.type = ''\n      this.$refs.input.type = 'file'\n      this.selectedFile = this.multiple ? [] : null\n    },\n    onFileChange(evt) {\n      // Always emit original event\n      this.$emit('change', evt)\n      // Check if special `items` prop is available on event (drop mode)\n      // Can be disabled by setting no-traverse\n      const items = evt.dataTransfer && evt.dataTransfer.items\n      /* istanbul ignore next: not supported in JSDOM */\n      if (items && !this.noTraverse) {\n        const queue = []\n        for (let i = 0; i < items.length; i++) {\n          const item = items[i].webkitGetAsEntry()\n          if (item) {\n            queue.push(this.traverseFileTree(item))\n          }\n        }\n        Promise.all(queue).then(filesArr => {\n          this.setFiles(arrayFrom(filesArr))\n        })\n        return\n      }\n      // Normal handling\n      this.setFiles(evt.target.files || evt.dataTransfer.files)\n    },\n    setFiles(files = []) {\n      if (!files) {\n        /* istanbul ignore next: this will probably not happen */\n        this.selectedFile = null\n      } else if (this.multiple) {\n        // Convert files to array\n        const filesArray = []\n        for (let i = 0; i < files.length; i++) {\n          filesArray.push(files[i])\n        }\n        // Return file(s) as array\n        this.selectedFile = filesArray\n      } else {\n        // Return single file object\n        this.selectedFile = files[0] || null\n      }\n    },\n    onReset() {\n      // Triggered when the parent form (if any) is reset\n      this.selectedFile = this.multiple ? [] : null\n    },\n    onDragover(evt) /* istanbul ignore next: difficult to test in JSDOM */ {\n      evt.preventDefault()\n      evt.stopPropagation()\n      if (this.noDrop || !this.custom) {\n        return\n      }\n      this.dragging = true\n      evt.dataTransfer.dropEffect = 'copy'\n    },\n    onDragleave(evt) /* istanbul ignore next: difficult to test in JSDOM */ {\n      evt.preventDefault()\n      evt.stopPropagation()\n      this.dragging = false\n    },\n    onDrop(evt) /* istanbul ignore next: difficult to test in JSDOM */ {\n      evt.preventDefault()\n      evt.stopPropagation()\n      if (this.noDrop) {\n        return\n      }\n      this.dragging = false\n      if (evt.dataTransfer.files && evt.dataTransfer.files.length > 0) {\n        this.onFileChange(evt)\n      }\n    },\n    traverseFileTree(item, path) /* istanbul ignore next: not supported in JSDOM */ {\n      // Based on http://stackoverflow.com/questions/3590058\n      return new Promise(resolve => {\n        path = path || ''\n        if (item.isFile) {\n          // Get file\n          item.file(file => {\n            file.$path = path // Inject $path to file obj\n            resolve(file)\n          })\n        } else if (item.isDirectory) {\n          // Get folder contents\n          item.createReader().readEntries(entries => {\n            const queue = []\n            for (let i = 0; i < entries.length; i++) {\n              queue.push(this.traverseFileTree(entries[i], path + item.name + '/'))\n            }\n            Promise.all(queue).then(filesArr => {\n              resolve(arrayFrom(filesArr))\n            })\n          })\n        }\n      })\n    }\n  },\n  render(h) {\n    // Form Input\n    const input = h('input', {\n      ref: 'input',\n      class: [\n        {\n          'form-control-file': this.plain,\n          'custom-file-input': this.custom,\n          focus: this.custom && this.hasFocus\n        },\n        this.stateClass\n      ],\n      attrs: {\n        type: 'file',\n        id: this.safeId(),\n        name: this.name,\n        disabled: this.disabled,\n        required: this.required,\n        form: this.form || null,\n        capture: this.capture || null,\n        accept: this.accept || null,\n        multiple: this.multiple,\n        webkitdirectory: this.directory,\n        'aria-required': this.required ? 'true' : null\n      },\n      on: {\n        change: this.onFileChange,\n        focusin: this.focusHandler,\n        focusout: this.focusHandler,\n        reset: this.onReset\n      }\n    })\n\n    if (this.plain) {\n      return input\n    }\n\n    // Overlay Labels\n    const label = h(\n      'label',\n      {\n        staticClass: 'custom-file-label',\n        class: [this.dragging ? 'dragging' : null],\n        attrs: {\n          for: this.safeId(),\n          'data-browse': this.browseText || null\n        }\n      },\n      this.selectLabel\n    )\n\n    // Return rendered custom file input\n    return h(\n      'div',\n      {\n        staticClass: 'custom-file b-form-file',\n        class: this.stateClass,\n        attrs: { id: this.safeId('_BV_file_outer_') },\n        on: {\n          dragover: this.onDragover,\n          dragleave: this.onDragleave,\n          drop: this.onDrop\n        }\n      },\n      [input, label]\n    )\n  }\n})\n\nexport default BFormFile\n","import { BFormFile } from './form-file'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormFilePlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormFile,\n    BFile: BFormFile\n  }\n})\n\nexport { FormFilePlugin, BFormFile }\n\nexport default FormFilePlugin\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport formOptionsMixin from '../../mixins/form-options'\nimport formMixin from '../../mixins/form'\nimport formSizeMixin from '../../mixins/form-size'\nimport formStateMixin from '../../mixins/form-state'\nimport formCustomMixin from '../../mixins/form-custom'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { from as arrayFrom } from '../../utils/array'\nimport { htmlOrText } from '../../utils/html'\n\n// @vue/component\nexport const BFormSelect = /*#__PURE__*/ Vue.extend({\n  name: 'BFormSelect',\n  mixins: [\n    idMixin,\n    normalizeSlotMixin,\n    formMixin,\n    formSizeMixin,\n    formStateMixin,\n    formCustomMixin,\n    formOptionsMixin\n  ],\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props: {\n    value: {\n      // type: [Object, Array, String, Number, Boolean],\n      // default: undefined\n    },\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    selectSize: {\n      // Browsers default size to 0, which shows 4 rows in most browsers in multiple mode\n      // Size of 1 can bork out Firefox\n      type: Number,\n      default: 0\n    },\n    ariaInvalid: {\n      type: [Boolean, String],\n      default: false\n    }\n  },\n  data() {\n    return {\n      localValue: this.value\n    }\n  },\n  computed: {\n    computedSelectSize() {\n      // Custom selects with a size of zero causes the arrows to be hidden,\n      // so dont render the size attribute in this case\n      return !this.plain && this.selectSize === 0 ? null : this.selectSize\n    },\n    inputClass() {\n      return [\n        this.plain ? 'form-control' : 'custom-select',\n        this.size && this.plain ? `form-control-${this.size}` : null,\n        this.size && !this.plain ? `custom-select-${this.size}` : null,\n        this.stateClass\n      ]\n    },\n    computedAriaInvalid() {\n      if (this.ariaInvalid === true || this.ariaInvalid === 'true') {\n        return 'true'\n      }\n      return this.stateClass === 'is-invalid' ? 'true' : null\n    }\n  },\n  watch: {\n    value(newVal, oldVal) {\n      this.localValue = newVal\n    },\n    localValue(newVal, oldVal) {\n      this.$emit('input', this.localValue)\n    }\n  },\n  methods: {\n    focus() {\n      this.$refs.input.focus()\n    },\n    blur() {\n      this.$refs.input.blur()\n    }\n  },\n  render(h) {\n    const options = this.formOptions.map((option, index) => {\n      return h('option', {\n        key: `option_${index}_opt`,\n        attrs: { disabled: Boolean(option.disabled) },\n        domProps: { ...htmlOrText(option.html, option.text), value: option.value }\n      })\n    })\n    return h(\n      'select',\n      {\n        ref: 'input',\n        class: this.inputClass,\n        directives: [\n          {\n            name: 'model',\n            rawName: 'v-model',\n            value: this.localValue,\n            expression: 'localValue'\n          }\n        ],\n        attrs: {\n          id: this.safeId(),\n          name: this.name,\n          form: this.form || null,\n          multiple: this.multiple || null,\n          size: this.computedSelectSize,\n          disabled: this.disabled,\n          required: this.required,\n          'aria-required': this.required ? 'true' : null,\n          'aria-invalid': this.computedAriaInvalid\n        },\n        on: {\n          change: evt => {\n            const target = evt.target\n            const selectedVal = arrayFrom(target.options)\n              .filter(o => o.selected)\n              .map(o => ('_value' in o ? o._value : o.value))\n            this.localValue = target.multiple ? selectedVal : selectedVal[0]\n            this.$nextTick(() => {\n              this.$emit('change', this.localValue)\n            })\n          }\n        }\n      },\n      [this.normalizeSlot('first'), options, this.normalizeSlot('default')]\n    )\n  }\n})\n\nexport default BFormSelect\n","import { BFormSelect } from './form-select'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst FormSelectPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BFormSelect,\n    BSelect: BFormSelect\n  }\n})\n\nexport { FormSelectPlugin, BFormSelect }\n\nexport default FormSelectPlugin\n","import { BImg } from './img'\nimport { BImgLazy } from './img-lazy'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ImagePlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BImg,\n    BImgLazy\n  }\n})\n\nexport { ImagePlugin, BImg, BImgLazy }\n\nexport default ImagePlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  }\n}\n\n// @vue/component\nexport const BInputGroupText = /*#__PURE__*/ Vue.extend({\n  name: 'BInputGroupText',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'input-group-text'\n      }),\n      children\n    )\n  }\n})\n\nexport default BInputGroupText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BInputGroupText } from './input-group-text'\n\nexport const commonProps = {\n  id: {\n    type: String,\n    default: null\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  isText: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BInputGroupAddon = /*#__PURE__*/ Vue.extend({\n  name: 'BInputGroupAddon',\n  functional: true,\n  props: {\n    ...commonProps,\n    append: {\n      type: Boolean,\n      default: false\n    }\n  },\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          'input-group-append': props.append,\n          'input-group-prepend': !props.append\n        },\n        attrs: {\n          id: props.id\n        }\n      }),\n      props.isText ? [h(BInputGroupText, children)] : children\n    )\n  }\n})\n\nexport default BInputGroupAddon\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BInputGroupAddon, commonProps } from './input-group-addon'\n\n// @vue/component\nexport const BInputGroupPrepend = /*#__PURE__*/ Vue.extend({\n  name: 'BInputGroupPrepend',\n  functional: true,\n  props: commonProps,\n  render(h, { props, data, children }) {\n    // pass all our props/attrs down to child, and set`append` to false\n    return h(\n      BInputGroupAddon,\n      mergeData(data, {\n        props: { ...props, append: false }\n      }),\n      children\n    )\n  }\n})\n\nexport default BInputGroupPrepend\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BInputGroupAddon, commonProps } from './input-group-addon'\n\n// @vue/component\nexport const BInputGroupAppend = /*#__PURE__*/ Vue.extend({\n  name: 'BInputGroupAppend',\n  functional: true,\n  props: commonProps,\n  render(h, { props, data, children }) {\n    // pass all our props/attrs down to child, and set`append` to true\n    return h(\n      BInputGroupAddon,\n      mergeData(data, {\n        props: { ...props, append: true }\n      }),\n      children\n    )\n  }\n})\n\nexport default BInputGroupAppend\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { htmlOrText } from '../../utils/html'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\nimport { BInputGroupPrepend } from './input-group-prepend'\nimport { BInputGroupAppend } from './input-group-append'\nimport { BInputGroupText } from './input-group-text'\n\nexport const props = {\n  id: {\n    type: String\n  },\n  size: {\n    type: String\n  },\n  prepend: {\n    type: String\n  },\n  prependHtml: {\n    type: String\n  },\n  append: {\n    type: String\n  },\n  appendHtml: {\n    type: String\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  }\n}\n\n// @vue/component\nexport const BInputGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BInputGroup',\n  functional: true,\n  props: props,\n  render(h, { props, data, slots, scopedSlots }) {\n    const $slots = slots()\n    const $scopedSlots = scopedSlots || {}\n\n    const childNodes = []\n\n    // Prepend prop/slot\n    if (props.prepend || props.prependHtml || hasNormalizedSlot('prepend', $scopedSlots, $slots)) {\n      childNodes.push(\n        h(BInputGroupPrepend, [\n          // Prop\n          props.prepend || props.prependHtml\n            ? h(BInputGroupText, { domProps: htmlOrText(props.prependHtml, props.prepend) })\n            : h(),\n          // Slot\n          normalizeSlot('prepend', {}, $scopedSlots, $slots) || h()\n        ])\n      )\n    } else {\n      childNodes.push(h())\n    }\n\n    // Default slot\n    if (hasNormalizedSlot('default', $scopedSlots, $slots)) {\n      childNodes.push(...normalizeSlot('default', {}, $scopedSlots, $slots))\n    } else {\n      childNodes.push(h())\n    }\n\n    // Append prop\n    if (props.append || props.appendHtml || hasNormalizedSlot('append', $scopedSlots, $slots)) {\n      childNodes.push(\n        h(BInputGroupAppend, [\n          // prop\n          props.append || props.appendHtml\n            ? h(BInputGroupText, { domProps: htmlOrText(props.appendHtml, props.append) })\n            : h(),\n          // Slot\n          normalizeSlot('append', {}, $scopedSlots, $slots) || h()\n        ])\n      )\n    } else {\n      childNodes.push(h())\n    }\n\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'input-group',\n        class: {\n          [`input-group-${props.size}`]: Boolean(props.size)\n        },\n        attrs: {\n          id: props.id || null,\n          role: 'group'\n        }\n      }),\n      childNodes\n    )\n  }\n})\n\nexport default BInputGroup\n","import { BInputGroup } from './input-group'\nimport { BInputGroupAddon } from './input-group-addon'\nimport { BInputGroupPrepend } from './input-group-prepend'\nimport { BInputGroupAppend } from './input-group-append'\nimport { BInputGroupText } from './input-group-text'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst InputGroupPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BInputGroup,\n    BInputGroupAddon,\n    BInputGroupPrepend,\n    BInputGroupAppend,\n    BInputGroupText\n  }\n})\n\nexport {\n  InputGroupPlugin,\n  BInputGroup,\n  BInputGroupAddon,\n  BInputGroupPrepend,\n  BInputGroupAppend,\n  BInputGroupText\n}\n\nexport default InputGroupPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  fluid: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BContainer = /*#__PURE__*/ Vue.extend({\n  name: 'BContainer',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          container: !props.fluid,\n          'container-fluid': props.fluid\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BContainer\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { stripTags } from '../../utils/html'\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'\nimport { BContainer } from '../layout/container'\n\nconst NAME = 'BJumbotron'\n\nexport const props = {\n  fluid: {\n    type: Boolean,\n    default: false\n  },\n  containerFluid: {\n    type: Boolean,\n    default: false\n  },\n  header: {\n    type: String,\n    default: null\n  },\n  headerHtml: {\n    type: String,\n    default: null\n  },\n  headerTag: {\n    type: String,\n    default: 'h1'\n  },\n  headerLevel: {\n    type: [Number, String],\n    default: '3'\n  },\n  lead: {\n    type: String,\n    default: null\n  },\n  leadHtml: {\n    type: String,\n    default: null\n  },\n  leadTag: {\n    type: String,\n    default: 'p'\n  },\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  bgVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'bgVariant')\n  },\n  borderVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'borderVariant')\n  },\n  textVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'textVariant')\n  }\n}\n\n// @vue/component\nexport const BJumbotron = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, slots, scopedSlots }) {\n    // The order of the conditionals matter.\n    // We are building the component markup in order.\n    let childNodes = []\n    const $slots = slots()\n    const $scopedSlots = scopedSlots || {}\n\n    // Header\n    if (props.header || hasNormalizedSlot('header', $scopedSlots, $slots) || props.headerHtml) {\n      childNodes.push(\n        h(\n          props.headerTag,\n          {\n            class: {\n              [`display-${props.headerLevel}`]: Boolean(props.headerLevel)\n            }\n          },\n          normalizeSlot('header', {}, $scopedSlots, $slots) ||\n            props.headerHtml ||\n            stripTags(props.header)\n        )\n      )\n    }\n\n    // Lead\n    if (props.lead || hasNormalizedSlot('lead', $scopedSlots, $slots) || props.leadHtml) {\n      childNodes.push(\n        h(\n          props.leadTag,\n          { staticClass: 'lead' },\n          normalizeSlot('lead', {}, $scopedSlots, $slots) || props.leadHtml || stripTags(props.lead)\n        )\n      )\n    }\n\n    // Default slot\n    if (hasNormalizedSlot('default', $scopedSlots, $slots)) {\n      childNodes.push(normalizeSlot('default', {}, $scopedSlots, $slots))\n    }\n\n    // If fluid, wrap content in a container/container-fluid\n    if (props.fluid) {\n      // Children become a child of a container\n      childNodes = [h(BContainer, { props: { fluid: props.containerFluid } }, childNodes)]\n    }\n    // Return the jumbotron\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'jumbotron',\n        class: {\n          'jumbotron-fluid': props.fluid,\n          [`text-${props.textVariant}`]: Boolean(props.textVariant),\n          [`bg-${props.bgVariant}`]: Boolean(props.bgVariant),\n          [`border-${props.borderVariant}`]: Boolean(props.borderVariant),\n          border: Boolean(props.borderVariant)\n        }\n      }),\n      childNodes\n    )\n  }\n})\n\nexport default BJumbotron\n","import { BJumbotron } from './jumbotron'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst JumbotronPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BJumbotron }\n})\n\nexport { JumbotronPlugin, BJumbotron }\n\nexport default JumbotronPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { arrayIncludes } from '../../utils/array'\n\nconst COMMON_ALIGNMENT = ['start', 'end', 'center']\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  noGutters: {\n    type: Boolean,\n    default: false\n  },\n  alignV: {\n    type: String,\n    default: null,\n    validator: str => arrayIncludes(COMMON_ALIGNMENT.concat(['baseline', 'stretch']), str)\n  },\n  alignH: {\n    type: String,\n    default: null,\n    validator: str => arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around']), str)\n  },\n  alignContent: {\n    type: String,\n    default: null,\n    validator: str => arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around', 'stretch']), str)\n  }\n}\n\n// @vue/component\nexport const BRow = /*#__PURE__*/ Vue.extend({\n  name: 'BRow',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'row',\n        class: {\n          'no-gutters': props.noGutters,\n          [`align-items-${props.alignV}`]: props.alignV,\n          [`justify-content-${props.alignH}`]: props.alignH,\n          [`align-content-${props.alignContent}`]: props.alignContent\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BRow\n","import { BContainer } from './container'\nimport { BRow } from './row'\nimport { BCol } from './col'\nimport { BFormRow } from './form-row'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst LayoutPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BContainer,\n    BRow,\n    BCol,\n    BFormRow\n  }\n})\n\nexport { LayoutPlugin, BContainer, BRow, BCol, BFormRow }\n\nexport default LayoutPlugin\n","import { BLink } from './link'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst LinkPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BLink }\n})\n\nexport { LinkPlugin, BLink }\n\nexport default LinkPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { isString } from '../../utils/inspect'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  flush: {\n    type: Boolean,\n    default: false\n  },\n  horizontal: {\n    type: [Boolean, String],\n    default: false\n  }\n}\n\n// @vue/component\nexport const BListGroup = /*#__PURE__*/ Vue.extend({\n  name: 'BListGroup',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    let horizontal = props.horizontal === '' ? true : props.horizontal\n    horizontal = props.flush ? false : horizontal\n    const componentData = {\n      staticClass: 'list-group',\n      class: {\n        'list-group-flush': props.flush,\n        'list-group-horizontal': horizontal === true,\n        [`list-group-horizontal-${horizontal}`]: isString(horizontal)\n      }\n    }\n    return h(props.tag, mergeData(data, componentData), children)\n  }\n})\n\nexport default BListGroup\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { arrayIncludes } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nconst NAME = 'BListGroupItem'\n\nconst actionTags = ['a', 'router-link', 'button', 'b-link']\nconst linkProps = linkPropsFactory()\ndelete linkProps.href.default\ndelete linkProps.to.default\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  action: {\n    type: Boolean,\n    default: null\n  },\n  button: {\n    type: Boolean,\n    default: null\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  ...linkProps\n}\n// @vue/component\nexport const BListGroupItem = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    const tag = props.button ? 'button' : !props.href && !props.to ? props.tag : BLink\n    const isAction = Boolean(\n      props.href || props.to || props.action || props.button || arrayIncludes(actionTags, props.tag)\n    )\n    const attrs = {}\n    let itemProps = {}\n    if (tag === 'button') {\n      if (!data.attrs || !data.attrs.type) {\n        // Add a type for button is one not provided in passed attributes\n        attrs.type = 'button'\n      }\n      if (props.disabled) {\n        // Set disabled attribute if button and disabled\n        attrs.disabled = true\n      }\n    } else {\n      itemProps = pluckProps(linkProps, props)\n    }\n    const componentData = {\n      attrs,\n      props: itemProps,\n      staticClass: 'list-group-item',\n      class: {\n        [`list-group-item-${props.variant}`]: Boolean(props.variant),\n        'list-group-item-action': isAction,\n        active: props.active,\n        disabled: props.disabled\n      }\n    }\n\n    return h(tag, mergeData(data, componentData), children)\n  }\n})\n\nexport default BListGroupItem\n","import { BListGroup } from './list-group'\nimport { BListGroupItem } from './list-group-item'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ListGroupPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BListGroup,\n    BListGroupItem\n  }\n})\n\nexport { ListGroupPlugin, BListGroup, BListGroupItem }\n\nexport default ListGroupPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  }\n}\n\n// @vue/component\nexport const BMediaBody = /*#__PURE__*/ Vue.extend({\n  name: 'BMediaBody',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'media-body'\n      }),\n      children\n    )\n  }\n})\n\nexport default BMediaBody\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  verticalAlign: {\n    type: String,\n    default: 'top'\n  }\n}\n\n// @vue/component\nexport const BMediaAside = /*#__PURE__*/ Vue.extend({\n  name: 'BMediaAside',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'd-flex',\n        class: {\n          [`align-self-${props.verticalAlign}`]: props.verticalAlign\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BMediaAside\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { normalizeSlot } from '../../utils/normalize-slot'\nimport { BMediaBody } from './media-body'\nimport { BMediaAside } from './media-aside'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  rightAlign: {\n    type: Boolean,\n    default: false\n  },\n  verticalAlign: {\n    type: String,\n    default: 'top'\n  },\n  noBody: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BMedia = /*#__PURE__*/ Vue.extend({\n  name: 'BMedia',\n  functional: true,\n  props,\n  render(h, { props, data, slots, scopedSlots, children }) {\n    const childNodes = props.noBody ? children : []\n\n    if (!props.noBody) {\n      const $slots = slots()\n      const $scopedSlots = scopedSlots || {}\n      const $aside = normalizeSlot('aside', {}, $scopedSlots, $slots)\n      const $default = normalizeSlot('default', {}, $scopedSlots, $slots)\n\n      if ($aside && !props.rightAlign) {\n        childNodes.push(\n          h(\n            BMediaAside,\n            { staticClass: 'mr-3', props: { verticalAlign: props.verticalAlign } },\n            $aside\n          )\n        )\n      }\n\n      childNodes.push(h(BMediaBody, {}, $default))\n\n      if ($aside && props.rightAlign) {\n        childNodes.push(\n          h(\n            BMediaAside,\n            { staticClass: 'ml-3', props: { verticalAlign: props.verticalAlign } },\n            $aside\n          )\n        )\n      }\n    }\n\n    return h(props.tag, mergeData(data, { staticClass: 'media' }), childNodes)\n  }\n})\n\nexport default BMedia\n","import { BMedia } from './media'\nimport { BMediaAside } from './media-aside'\nimport { BMediaBody } from './media-body'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst MediaPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BMedia,\n    BMediaAside,\n    BMediaBody\n  }\n})\n\nexport { MediaPlugin, BMedia, BMediaAside, BMediaBody }\n\nexport default MediaPlugin\n","/**\n * Private ModalManager helper\n * Handles controlling modal stacking zIndexes and body adjustments/classes\n */\n\nimport Vue from '../../../utils/vue'\nimport {\n  getAttr,\n  hasAttr,\n  removeAttr,\n  setAttr,\n  addClass,\n  removeClass,\n  getBCR,\n  getCS,\n  selectAll,\n  requestAF\n} from '../../../utils/dom'\nimport { isBrowser } from '../../../utils/env'\nimport { isNull } from '../../../utils/inspect'\n\n// --- Constants ---\n\n// Default modal backdrop z-index\nconst DEFAULT_ZINDEX = 1040\n\n// Selectors for padding/margin adjustments\nconst Selector = {\n  FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n  STICKY_CONTENT: '.sticky-top',\n  NAVBAR_TOGGLER: '.navbar-toggler'\n}\n\n// @vue/component\nconst ModalManager = /*#__PURE__*/ Vue.extend({\n  data() {\n    return {\n      modals: [],\n      baseZIndex: null,\n      scrollbarWidth: null,\n      isBodyOverflowing: false\n    }\n  },\n  computed: {\n    modalCount() {\n      return this.modals.length\n    },\n    modalsAreOpen() {\n      return this.modalCount > 0\n    }\n  },\n  watch: {\n    modalCount(newCount, oldCount) {\n      if (isBrowser) {\n        this.getScrollbarWidth()\n        if (newCount > 0 && oldCount === 0) {\n          // Transitioning to modal(s) open\n          this.checkScrollbar()\n          this.setScrollbar()\n          addClass(document.body, 'modal-open')\n        } else if (newCount === 0 && oldCount > 0) {\n          // Transitioning to modal(s) closed\n          this.resetScrollbar()\n          removeClass(document.body, 'modal-open')\n        }\n        setAttr(document.body, 'data-modal-open-count', String(newCount))\n      }\n    },\n    modals(newVal, oldVal) {\n      this.checkScrollbar()\n      requestAF(() => {\n        this.updateModals(newVal || [])\n      })\n    }\n  },\n  methods: {\n    // Public methods\n    registerModal(modal) {\n      // Register the modal if not already registered\n      if (modal && this.modals.indexOf(modal) === -1) {\n        // Add modal to modals array\n        this.modals.push(modal)\n        modal.$once('hook:beforeDestroy', () => {\n          this.unregisterModal(modal)\n        })\n      }\n    },\n    unregisterModal(modal) {\n      const index = this.modals.indexOf(modal)\n      if (index > -1) {\n        // Remove modal from modals array\n        this.modals.splice(index, 1)\n        // Reset the modal's data\n        if (!(modal._isBeingDestroyed || modal._isDestroyed)) {\n          this.resetModal(modal)\n        }\n      }\n    },\n    getBaseZIndex() {\n      if (isNull(this.baseZIndex) && isBrowser) {\n        // Create a temporary `div.modal-backdrop` to get computed z-index\n        const div = document.createElement('div')\n        div.className = 'modal-backdrop d-none'\n        div.style.display = 'none'\n        document.body.appendChild(div)\n        this.baseZIndex = parseInt(getCS(div).zIndex || DEFAULT_ZINDEX, 10)\n        document.body.removeChild(div)\n      }\n      return this.baseZIndex || DEFAULT_ZINDEX\n    },\n    getScrollbarWidth() {\n      if (isNull(this.scrollbarWidth) && isBrowser) {\n        // Create a temporary `div.measure-scrollbar` to get computed z-index\n        const div = document.createElement('div')\n        div.className = 'modal-scrollbar-measure'\n        document.body.appendChild(div)\n        this.scrollbarWidth = getBCR(div).width - div.clientWidth\n        document.body.removeChild(div)\n      }\n      return this.scrollbarWidth || 0\n    },\n    // Private methods\n    updateModals(modals) {\n      const baseZIndex = this.getBaseZIndex()\n      const scrollbarWidth = this.getScrollbarWidth()\n      modals.forEach((modal, index) => {\n        // We update data values on each modal\n        modal.zIndex = baseZIndex + index\n        modal.scrollbarWidth = scrollbarWidth\n        modal.isTop = index === this.modals.length - 1\n        modal.isBodyOverflowing = this.isBodyOverflowing\n      })\n    },\n    resetModal(modal) {\n      if (modal) {\n        modal.zIndex = this.getBaseZIndex()\n        modal.isTop = true\n        modal.isBodyOverflowing = false\n      }\n    },\n    checkScrollbar() {\n      // Determine if the body element is overflowing\n      const { left, right } = getBCR(document.body)\n      this.isBodyOverflowing = left + right < window.innerWidth\n    },\n    setScrollbar() {\n      const body = document.body\n      // Storage place to cache changes to margins and padding\n      // Note: This assumes the following element types are not added to the\n      // document after the modal has opened.\n      body._paddingChangedForModal = body._paddingChangedForModal || []\n      body._marginChangedForModal = body._marginChangedForModal || []\n      if (this.isBodyOverflowing) {\n        const scrollbarWidth = this.scrollbarWidth\n        // Adjust fixed content padding\n        /* istanbul ignore next: difficult to test in JSDOM */\n        selectAll(Selector.FIXED_CONTENT).forEach(el => {\n          const actualPadding = el.style.paddingRight\n          const calculatedPadding = getCS(el).paddingRight || 0\n          setAttr(el, 'data-padding-right', actualPadding)\n          el.style.paddingRight = `${parseFloat(calculatedPadding) + scrollbarWidth}px`\n          body._paddingChangedForModal.push(el)\n        })\n        // Adjust sticky content margin\n        /* istanbul ignore next: difficult to test in JSDOM */\n        selectAll(Selector.STICKY_CONTENT).forEach(el => {\n          const actualMargin = el.style.marginRight\n          const calculatedMargin = getCS(el).marginRight || 0\n          setAttr(el, 'data-margin-right', actualMargin)\n          el.style.marginRight = `${parseFloat(calculatedMargin) - scrollbarWidth}px`\n          body._marginChangedForModal.push(el)\n        })\n        // Adjust <b-navbar-toggler> margin\n        /* istanbul ignore next: difficult to test in JSDOM */\n        selectAll(Selector.NAVBAR_TOGGLER).forEach(el => {\n          const actualMargin = el.style.marginRight\n          const calculatedMargin = getCS(el).marginRight || 0\n          setAttr(el, 'data-margin-right', actualMargin)\n          el.style.marginRight = `${parseFloat(calculatedMargin) + scrollbarWidth}px`\n          body._marginChangedForModal.push(el)\n        })\n        // Adjust body padding\n        const actualPadding = body.style.paddingRight\n        const calculatedPadding = getCS(body).paddingRight\n        setAttr(body, 'data-padding-right', actualPadding)\n        body.style.paddingRight = `${parseFloat(calculatedPadding) + scrollbarWidth}px`\n      }\n    },\n    resetScrollbar() {\n      const body = document.body\n      if (body._paddingChangedForModal) {\n        // Restore fixed content padding\n        body._paddingChangedForModal.forEach(el => {\n          /* istanbul ignore next: difficult to test in JSDOM */\n          if (hasAttr(el, 'data-padding-right')) {\n            el.style.paddingRight = getAttr(el, 'data-padding-right') || ''\n            removeAttr(el, 'data-padding-right')\n          }\n        })\n      }\n      if (body._marginChangedForModal) {\n        // Restore sticky content and navbar-toggler margin\n        body._marginChangedForModal.forEach(el => {\n          /* istanbul ignore next: difficult to test in JSDOM */\n          if (hasAttr(el, 'data-margin-right')) {\n            el.style.marginRight = getAttr(el, 'data-margin-right') || ''\n            removeAttr(el, 'data-margin-right')\n          }\n        })\n      }\n      body._paddingChangedForModal = null\n      body._marginChangedForModal = null\n      // Restore body padding\n      if (hasAttr(body, 'data-padding-right')) {\n        body.style.paddingRight = getAttr(body, 'data-padding-right') || ''\n        removeAttr(body, 'data-padding-right')\n      }\n    }\n  }\n})\n\n// Export our ModalManager\nexport default new ModalManager()\n","import BvEvent from '../../../utils/bv-event.class'\nimport warn from '../../../utils/warn'\nimport { defineProperties, readonlyDescriptor } from '../../../utils/object'\n\nclass BvModalEvent extends BvEvent {\n  constructor(type, eventInit = {}) {\n    super(type, eventInit)\n    // Freeze our new props as readonly, but leave them enumerable\n    defineProperties(this, {\n      trigger: readonlyDescriptor()\n    })\n  }\n\n  get modalId() /* istanbul ignore next */ {\n    // Backwards compatability <= 2.0.0-rc.19\n    warn('b-modal: evt.modalId is deprecated. Please use evt.componentId.')\n    return this.componentId\n  }\n\n  cancel() /* istanbul ignore next */ {\n    // Backwards compatibility for BootstrapVue 1.x\n    warn('b-modal: evt.cancel() is deprecated. Please use evt.preventDefault().')\n    this.preventDefault()\n  }\n\n  static get Defaults() {\n    return {\n      ...super.Defaults,\n      trigger: null\n    }\n  }\n}\n\n// Named exports\nexport { BvModalEvent }\n\n// Default export\nexport default BvModalEvent\n","import Vue from './vue'\nimport { concat } from './array'\nimport { select } from './dom'\nimport { isBrowser } from './env'\nimport { isFunction, isString } from './inspect'\nimport { HTMLElement } from './safe-types'\nimport normalizeSlotMixin from '../mixins/normalize-slot'\n\n// BTransporterSingle/BTransporterTargetSingle:\n//\n// Single root node portaling of content, which retains parent/child hierarchy\n// Unlike Portal-Vue where portaled content is no longer a descendent of it's\n// intended parent components\n//\n// Private components for use by Tooltips, Popovers and Modals\n//\n// Based on vue-simple-portal\n// https://github.com/LinusBorg/vue-simple-portal\n\n// Transporter target used by BTransporterSingle\n// Supports only a single root element\n// @vue/component\nconst BTransporterTargetSingle = /*#__PURE__*/ Vue.extend({\n  // As an abstract component, it doesn't appear in the $parent chain of\n  // components, which means the next parent of any component rendered inside\n  // of this one will be the parent from which is was portal'd\n  abstract: true,\n  name: 'BTransporterTargetSingle',\n  props: {\n    nodes: {\n      // Even though we only support a single root element,\n      // vNodes are always passed as an array\n      type: [Array, Function]\n      // default: undefined\n    }\n  },\n  data: vm => {\n    return {\n      updatedNodes: vm.nodes\n    }\n  },\n  destroyed() {\n    const el = this.$el\n    el && el.parentNode && el.parentNode.removeChild(el)\n  },\n  render(h) {\n    let nodes = isFunction(this.updatedNodes) ? this.updatedNodes({}) : this.updatedNodes\n    nodes = concat(nodes).filter(Boolean)\n    /* istanbul ignore else */\n    if (nodes && nodes.length > 0 && !nodes[0].text) {\n      return nodes[0]\n    } else {\n      return h()\n    }\n  }\n})\n\n// This component has no root element, so only a single VNode is allowed\n// @vue/component\nexport const BTransporterSingle = /*#__PURE__*/ Vue.extend({\n  name: 'BTransporterSingle',\n  mixins: [normalizeSlotMixin],\n  props: {\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    container: {\n      // String: CSS selector,\n      // HTMLElement: Element reference\n      // Mainly needed for tooltips/popovers inside modals\n      type: [String, HTMLElement],\n      default: 'body'\n    },\n    tag: {\n      // This should be set to match the root element type\n      type: String,\n      default: 'div'\n    }\n  },\n  watch: {\n    disabled: {\n      immediate: true,\n      handler(disabled) {\n        disabled ? this.unmountTarget() : this.$nextTick(this.mountTarget)\n      }\n    }\n  },\n  created() {\n    this._bv_defaultFn = null\n    this._bv_target = null\n  },\n  beforeMount() {\n    this.mountTarget()\n  },\n  updated() {\n    // Placed in a nextTick to ensure that children have completed\n    // updating before rendering in the target\n    this.$nextTick(() => {\n      this.updateTarget()\n    })\n  },\n  beforeDestroy() {\n    this.unmountTarget()\n    this._bv_defaultFn = null\n  },\n  methods: {\n    // Get the element which the target should be appended to\n    getContainer() {\n      /* istanbul ignore else */\n      if (isBrowser) {\n        const container = this.container\n        return isString(container) ? select(container) : container\n      } else {\n        return null\n      }\n    },\n    // Mount the target\n    mountTarget() {\n      if (!this._bv_target) {\n        const container = this.getContainer()\n        if (container) {\n          const el = document.createElement('div')\n          container.appendChild(el)\n          this._bv_target = new BTransporterTargetSingle({\n            el,\n            parent: this,\n            propsData: {\n              // Initial nodes to be rendered\n              nodes: concat(this.normalizeSlot('default'))\n            }\n          })\n        }\n      }\n    },\n    // Update the content of the target\n    updateTarget() {\n      if (isBrowser && this._bv_target) {\n        const defaultFn = this.$scopedSlots.default\n        if (!this.disabled) {\n          /* istanbul ignore else: only applicable in Vue 2.5.x */\n          if (defaultFn && this._bv_defaultFn !== defaultFn) {\n            // We only update the target component if the scoped slot\n            // function is a fresh one. The new slot syntax (since Vue 2.6)\n            // can cache unchanged slot functions and we want to respect that here\n            this._bv_target.updatedNodes = defaultFn\n          } else if (!defaultFn) {\n            // We also need to be back compatible with non-scoped default slot (i.e. 2.5.x)\n            this._bv_target.updatedNodes = this.$slots.default\n          }\n        }\n        // Update the scoped slot function cache\n        this._bv_defaultFn = defaultFn\n      }\n    },\n    // Unmount the target\n    unmountTarget() {\n      if (this._bv_target) {\n        this._bv_target.$destroy()\n        this._bv_target = null\n      }\n    }\n  },\n  render(h) {\n    if (this.disabled) {\n      const nodes = concat(this.normalizeSlot('default')).filter(Boolean)\n      if (nodes.length > 0 && !nodes[0].text) {\n        return nodes[0]\n      }\n    }\n    return h()\n  }\n})\n","import Vue from '../../utils/vue'\nimport modalManager from './helpers/modal-manager'\nimport BvModalEvent from './helpers/bv-modal-event.class'\nimport idMixin from '../../mixins/id'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport BVTransition from '../../utils/bv-transition'\nimport KeyCodes from '../../utils/key-codes'\nimport observeDom from '../../utils/observe-dom'\nimport { BTransporterSingle } from '../../utils/transporter'\nimport { isBrowser } from '../../utils/env'\nimport { isString } from '../../utils/inspect'\nimport { getComponentConfig } from '../../utils/config'\nimport { stripTags } from '../../utils/html'\nimport { contains, eventOff, eventOn, isVisible, select } from '../../utils/dom'\nimport { BButton } from '../button/button'\nimport { BButtonClose } from '../button/button-close'\n\n// --- Constants ---\n\nconst NAME = 'BModal'\n\n// ObserveDom config to detect changes in modal content\n// so that we can adjust the modal padding if needed\nconst OBSERVER_CONFIG = {\n  subtree: true,\n  childList: true,\n  characterData: true,\n  attributes: true,\n  attributeFilter: ['style', 'class']\n}\n\n// Options for DOM event listeners\nconst EVT_OPTIONS = { passive: true, capture: false }\n\nexport const props = {\n  size: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'size')\n  },\n  centered: {\n    type: Boolean,\n    default: false\n  },\n  scrollable: {\n    type: Boolean,\n    default: false\n  },\n  buttonSize: {\n    type: String,\n    default: ''\n  },\n  noStacking: {\n    type: Boolean,\n    default: false\n  },\n  noFade: {\n    type: Boolean,\n    default: false\n  },\n  noCloseOnBackdrop: {\n    type: Boolean,\n    default: false\n  },\n  noCloseOnEsc: {\n    type: Boolean,\n    default: false\n  },\n  noEnforceFocus: {\n    type: Boolean,\n    default: false\n  },\n  title: {\n    type: String,\n    default: ''\n  },\n  titleHtml: {\n    type: String\n  },\n  titleTag: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'titleTag')\n  },\n  titleClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  titleSrOnly: {\n    type: Boolean,\n    default: false\n  },\n  ariaLabel: {\n    type: String,\n    default: null\n  },\n  headerBgVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'headerBgVariant')\n  },\n  headerBorderVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'headerBorderVariant')\n  },\n  headerTextVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'headerTextVariant')\n  },\n  headerCloseVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'headerCloseVariant')\n  },\n  headerClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  bodyBgVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'bodyBgVariant')\n  },\n  bodyTextVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'bodyTextVariant')\n  },\n  modalClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  dialogClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  contentClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  bodyClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  footerBgVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'footerBgVariant')\n  },\n  footerBorderVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'footerBorderVariant')\n  },\n  footerTextVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'footerTextVariant')\n  },\n  footerClass: {\n    type: [String, Array, Object],\n    default: null\n  },\n  hideHeader: {\n    type: Boolean,\n    default: false\n  },\n  hideFooter: {\n    type: Boolean,\n    default: false\n  },\n  hideHeaderClose: {\n    type: Boolean,\n    default: false\n  },\n  hideBackdrop: {\n    type: Boolean,\n    default: false\n  },\n  okOnly: {\n    type: Boolean,\n    default: false\n  },\n  okDisabled: {\n    type: Boolean,\n    default: false\n  },\n  cancelDisabled: {\n    type: Boolean,\n    default: false\n  },\n  visible: {\n    type: Boolean,\n    default: false\n  },\n  returnFocus: {\n    // type: Object,\n    default: null\n  },\n  headerCloseLabel: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'headerCloseLabel')\n  },\n  cancelTitle: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'cancelTitle')\n  },\n  cancelTitleHtml: {\n    type: String\n  },\n  okTitle: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'okTitle')\n  },\n  okTitleHtml: {\n    type: String\n  },\n  cancelVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'cancelVariant')\n  },\n  okVariant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'okVariant')\n  },\n  lazy: {\n    type: Boolean,\n    default: false\n  },\n  busy: {\n    type: Boolean,\n    default: false\n  },\n  static: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BModal = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [idMixin, listenOnRootMixin, normalizeSlotMixin],\n  model: {\n    prop: 'visible',\n    event: 'change'\n  },\n  props,\n  data() {\n    return {\n      isHidden: true, // If modal should not be in document\n      isVisible: false, // Controls modal visible state\n      isTransitioning: false, // Used for style control\n      isShow: false, // Used for style control\n      isBlock: false, // Used for style control\n      isOpening: false, // To signal that the modal is in the process of opening\n      isClosing: false, // To signal that the modal is in the process of closing\n      ignoreBackdropClick: false, // Used to signify if click out listener should ignore the click\n      isModalOverflowing: false,\n      return_focus: this.returnFocus || null,\n      // The following items are controlled by the modalManager instance\n      scrollbarWidth: 0,\n      zIndex: modalManager.getBaseZIndex(),\n      isTop: true,\n      isBodyOverflowing: false\n    }\n  },\n  computed: {\n    modalClasses() {\n      return [\n        {\n          fade: !this.noFade,\n          show: this.isShow\n        },\n        this.modalClass\n      ]\n    },\n    modalStyles() {\n      const sbWidth = `${this.scrollbarWidth}px`\n      return {\n        paddingLeft: !this.isBodyOverflowing && this.isModalOverflowing ? sbWidth : '',\n        paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : '',\n        // Needed to fix issue https://github.com/bootstrap-vue/bootstrap-vue/issues/3457\n        // Even though we are using v-show, we must ensure 'none' is restored in the styles\n        display: this.isBlock ? 'block' : 'none'\n      }\n    },\n    dialogClasses() {\n      return [\n        {\n          [`modal-${this.size}`]: Boolean(this.size),\n          'modal-dialog-centered': this.centered,\n          'modal-dialog-scrollable': this.scrollable\n        },\n        this.dialogClass\n      ]\n    },\n    headerClasses() {\n      return [\n        {\n          [`bg-${this.headerBgVariant}`]: Boolean(this.headerBgVariant),\n          [`text-${this.headerTextVariant}`]: Boolean(this.headerTextVariant),\n          [`border-${this.headerBorderVariant}`]: Boolean(this.headerBorderVariant)\n        },\n        this.headerClass\n      ]\n    },\n    titleClases() {\n      return [{ 'sr-only': this.titleSrOnly }, this.titleClass]\n    },\n    bodyClasses() {\n      return [\n        {\n          [`bg-${this.bodyBgVariant}`]: Boolean(this.bodyBgVariant),\n          [`text-${this.bodyTextVariant}`]: Boolean(this.bodyTextVariant)\n        },\n        this.bodyClass\n      ]\n    },\n    footerClasses() {\n      return [\n        {\n          [`bg-${this.footerBgVariant}`]: Boolean(this.footerBgVariant),\n          [`text-${this.footerTextVariant}`]: Boolean(this.footerTextVariant),\n          [`border-${this.footerBorderVariant}`]: Boolean(this.footerBorderVariant)\n        },\n        this.footerClass\n      ]\n    },\n    modalOuterStyle() {\n      // Styles needed for proper stacking of modals\n      return {\n        position: 'absolute',\n        zIndex: this.zIndex\n      }\n    },\n    slotScope() {\n      return {\n        ok: this.onOk,\n        cancel: this.onCancel,\n        close: this.onClose,\n        hide: this.hide,\n        visible: this.isVisible\n      }\n    }\n  },\n  watch: {\n    visible(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this[newVal ? 'show' : 'hide']()\n      }\n    }\n  },\n  created() {\n    // Define non-reactive properties\n    this._observer = null\n  },\n  mounted() {\n    // Set initial z-index as queried from the DOM\n    this.zIndex = modalManager.getBaseZIndex()\n    // Listen for events from others to either open or close ourselves\n    // and listen to all modals to enable/disable enforce focus\n    this.listenOnRoot('bv::show::modal', this.showHandler)\n    this.listenOnRoot('bv::hide::modal', this.hideHandler)\n    this.listenOnRoot('bv::toggle::modal', this.toggleHandler)\n    // Listen for `bv:modal::show events`, and close ourselves if the\n    // opening modal not us\n    this.listenOnRoot('bv::modal::show', this.modalListener)\n    // Initially show modal?\n    if (this.visible === true) {\n      this.$nextTick(this.show)\n    }\n  },\n  beforeDestroy() {\n    // Ensure everything is back to normal\n    if (this._observer) {\n      this._observer.disconnect()\n      this._observer = null\n    }\n    this.setEnforceFocus(false)\n    this.setResizeEvent(false)\n    if (this.isVisible) {\n      this.isVisible = false\n      this.isShow = false\n      this.isTransitioning = false\n    }\n  },\n  methods: {\n    // Private method to update the v-model\n    updateModel(val) {\n      if (val !== this.visible) {\n        this.$emit('change', val)\n      }\n    },\n    // Private method to create a BvModalEvent object\n    buildEvent(type, opts = {}) {\n      return new BvModalEvent(type, {\n        // Default options\n        cancelable: false,\n        target: this.$refs.modal || this.$el || null,\n        relatedTarget: null,\n        trigger: null,\n        // Supplied options\n        ...opts,\n        // Options that can't be overridden\n        vueTarget: this,\n        componentId: this.safeId()\n      })\n    },\n    // Public method to show modal\n    show() {\n      if (this.isVisible || this.isOpening) {\n        // If already open, on in the process of opening, do nothing\n        /* istanbul ignore next */\n        return\n      }\n      if (this.isClosing) {\n        // If we are in the process of closing, wait until hidden before re-opening\n        /* istanbul ignore next: very difficult to test */\n        this.$once('hidden', this.show)\n        /* istanbul ignore next */\n        return\n      }\n      this.isOpening = true\n      // Set the element to return focus to when closed\n      this.return_focus = this.return_focus || this.getActiveElement()\n      const showEvt = this.buildEvent('show', {\n        cancelable: true\n      })\n      this.emitEvent(showEvt)\n      // Don't show if canceled\n      if (showEvt.defaultPrevented || this.isVisible) {\n        this.isOpening = false\n        // Ensure the v-model reflects the current state\n        this.updateModel(false)\n        return\n      }\n      // Show the modal\n      this.doShow()\n    },\n    // Public method to hide modal\n    hide(trigger = '') {\n      if (!this.isVisible || this.isClosing) {\n        /* istanbul ignore next */\n        return\n      }\n      this.isClosing = true\n      const hideEvt = this.buildEvent('hide', {\n        cancelable: trigger !== 'FORCE',\n        trigger: trigger || null\n      })\n      // We emit specific event for one of the three built-in buttons\n      if (trigger === 'ok') {\n        this.$emit('ok', hideEvt)\n      } else if (trigger === 'cancel') {\n        this.$emit('cancel', hideEvt)\n      } else if (trigger === 'headerclose') {\n        this.$emit('close', hideEvt)\n      }\n      this.emitEvent(hideEvt)\n      // Hide if not canceled\n      if (hideEvt.defaultPrevented || !this.isVisible) {\n        this.isClosing = false\n        // Ensure v-model reflects current state\n        this.updateModel(true)\n        return\n      }\n      // Stop observing for content changes\n      if (this._observer) {\n        this._observer.disconnect()\n        this._observer = null\n      }\n      // Trigger the hide transition\n      this.isVisible = false\n      // Update the v-model\n      this.updateModel(false)\n    },\n    // Public method to toggle modal visibility\n    toggle(triggerEl) {\n      if (triggerEl) {\n        this.return_focus = triggerEl\n      }\n      if (this.isVisible) {\n        this.hide('toggle')\n      } else {\n        this.show()\n      }\n    },\n    // Private method to get the current document active element\n    getActiveElement() {\n      if (isBrowser) {\n        const activeElement = document.activeElement\n        // Note: On IE11, `document.activeElement` may be null.\n        // So we test it for truthiness first.\n        // https://github.com/bootstrap-vue/bootstrap-vue/issues/3206\n        // Returning focus to document.body may cause unwanted scrolls, so we\n        // exclude setting focus on body\n        if (activeElement && activeElement !== document.body && activeElement.focus) {\n          // Preset the fallback return focus value if it is not set\n          // `document.activeElement` should be the trigger element that was clicked or\n          // in the case of using the v-model, which ever element has current focus\n          // Will be overridden by some commands such as toggle, etc.\n          return activeElement\n        }\n      }\n      return null\n    },\n    // Private method to finish showing modal\n    doShow() {\n      /* istanbul ignore next: commenting out for now until we can test stacking */\n      if (modalManager.modalsAreOpen && this.noStacking) {\n        // If another modal(s) is already open, wait for it(them) to close\n        this.listenOnRootOnce('bv::modal::hidden', this.doShow)\n        return\n      }\n      modalManager.registerModal(this)\n      // Place modal in DOM\n      this.isHidden = false\n      this.$nextTick(() => {\n        // We do this in `$nextTick()` to ensure the modal is in DOM first\n        // before we show it\n        this.isVisible = true\n        this.isOpening = false\n        // Update the v-model\n        this.updateModel(true)\n        this.$nextTick(() => {\n          // In a nextTick in case modal content is lazy\n          // Observe changes in modal content and adjust if necessary\n          this._observer = observeDom(\n            this.$refs.content,\n            this.checkModalOverflow.bind(this),\n            OBSERVER_CONFIG\n          )\n        })\n      })\n    },\n    // Transition handlers\n    onBeforeEnter() {\n      this.isTransitioning = true\n      this.setResizeEvent(true)\n    },\n    onEnter() {\n      this.isBlock = true\n    },\n    onAfterEnter() {\n      this.checkModalOverflow()\n      this.isShow = true\n      this.isTransitioning = false\n      this.$nextTick(() => {\n        this.emitEvent(this.buildEvent('shown'))\n        this.focusFirst()\n        this.setEnforceFocus(true)\n      })\n    },\n    onBeforeLeave() {\n      this.isTransitioning = true\n      this.setResizeEvent(false)\n    },\n    onLeave() {\n      // Remove the 'show' class\n      this.isShow = false\n    },\n    onAfterLeave() {\n      this.isBlock = false\n      this.isTransitioning = false\n      this.setEnforceFocus(false)\n      this.isModalOverflowing = false\n      this.isHidden = true\n      this.$nextTick(() => {\n        this.returnFocusTo()\n        this.isClosing = false\n        this.return_focus = null\n        modalManager.unregisterModal(this)\n        // TODO: Need to find a way to pass the `trigger` property\n        //       to the `hidden` event, not just only the `hide` event\n        this.emitEvent(this.buildEvent('hidden'))\n      })\n    },\n    // Event emitter\n    emitEvent(bvModalEvt) {\n      const type = bvModalEvt.type\n      // We emit on root first incase a global listener wants to cancel\n      // the event first before the instance emits it's event\n      this.emitOnRoot(`bv::modal::${type}`, bvModalEvt, bvModalEvt.componentId)\n      this.$emit(type, bvModalEvt)\n    },\n    // UI event handlers\n    onDialogMousedown() {\n      // Watch to see if the matching mouseup event occurs outside the dialog\n      // And if it does, cancel the clickOut handler\n      const modal = this.$refs.modal\n      const onceModalMouseup = evt => {\n        eventOff(modal, 'mouseup', onceModalMouseup, EVT_OPTIONS)\n        if (evt.target === modal) {\n          this.ignoreBackdropClick = true\n        }\n      }\n      eventOn(modal, 'mouseup', onceModalMouseup, EVT_OPTIONS)\n    },\n    onClickOut(evt) {\n      if (this.ignoreBackdropClick) {\n        // Click was initiated inside the modal content, but finished outside.\n        // Set by the above onDialogMousedown handler\n        this.ignoreBackdropClick = false\n        return\n      }\n      // Do nothing if not visible, backdrop click disabled, or element\n      // that generated click event is no longer in document body\n      if (!this.isVisible || this.noCloseOnBackdrop || !contains(document.body, evt.target)) {\n        return\n      }\n      // If backdrop clicked, hide modal\n      if (!contains(this.$refs.content, evt.target)) {\n        this.hide('backdrop')\n      }\n    },\n    onOk() {\n      this.hide('ok')\n    },\n    onCancel() {\n      this.hide('cancel')\n    },\n    onClose() {\n      this.hide('headerclose')\n    },\n    onEsc(evt) {\n      // If ESC pressed, hide modal\n      if (evt.keyCode === KeyCodes.ESC && this.isVisible && !this.noCloseOnEsc) {\n        this.hide('esc')\n      }\n    },\n    // Document focusin listener\n    focusHandler(evt) {\n      // If focus leaves modal, bring it back\n      const modal = this.$refs.modal\n      if (\n        !this.noEnforceFocus &&\n        this.isTop &&\n        this.isVisible &&\n        modal &&\n        document !== evt.target &&\n        !contains(modal, evt.target)\n      ) {\n        modal.focus({ preventScroll: true })\n      }\n    },\n    // Turn on/off focusin listener\n    setEnforceFocus(on) {\n      const method = on ? eventOn : eventOff\n      method(document, 'focusin', this.focusHandler, EVT_OPTIONS)\n    },\n    // Resize listener\n    setResizeEvent(on) {\n      const method = on ? eventOn : eventOff\n      // These events should probably also check if\n      // body is overflowing\n      method(window, 'resize', this.checkModalOverflow, EVT_OPTIONS)\n      method(window, 'orientationchange', this.checkModalOverflow, EVT_OPTIONS)\n    },\n    // Root listener handlers\n    showHandler(id, triggerEl) {\n      if (id === this.safeId()) {\n        this.return_focus = triggerEl || this.getActiveElement()\n        this.show()\n      }\n    },\n    hideHandler(id) {\n      if (id === this.safeId()) {\n        this.hide('event')\n      }\n    },\n    toggleHandler(id, triggerEl) {\n      if (id === this.safeId()) {\n        this.toggle(triggerEl)\n      }\n    },\n    modalListener(bvEvt) {\n      // If another modal opens, close this one if stacking not permitted\n      if (this.noStacking && bvEvt.vueTarget !== this) {\n        this.hide()\n      }\n    },\n    // Focus control handlers\n    focusFirst() {\n      // Don't try and focus if we are SSR\n      if (isBrowser) {\n        const modal = this.$refs.modal\n        const activeElement = this.getActiveElement()\n        // If the modal contains the activeElement, we don't do anything\n        if (modal && !(activeElement && contains(modal, activeElement))) {\n          // Make sure top of modal is showing (if longer than the viewport)\n          // and focus the modal content wrapper\n          this.$nextTick(() => {\n            modal.scrollTop = 0\n            modal.focus()\n          })\n        }\n      }\n    },\n    returnFocusTo() {\n      // Prefer `returnFocus` prop over event specified\n      // `return_focus` value\n      let el = this.returnFocus || this.return_focus || null\n      // Is el a string CSS selector?\n      el = isString(el) ? select(el) : el\n      if (el) {\n        // Possibly could be a component reference\n        el = el.$el || el\n        if (isVisible(el) && el.focus) {\n          el.focus()\n        }\n      }\n    },\n    checkModalOverflow() {\n      if (this.isVisible) {\n        const modal = this.$refs.modal\n        this.isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight\n      }\n    },\n    makeModal(h) {\n      // Modal header\n      let header = h()\n      if (!this.hideHeader) {\n        let modalHeader = this.normalizeSlot('modal-header', this.slotScope)\n        if (!modalHeader) {\n          let closeButton = h()\n          if (!this.hideHeaderClose) {\n            closeButton = h(\n              BButtonClose,\n              {\n                props: {\n                  disabled: this.isTransitioning,\n                  ariaLabel: this.headerCloseLabel,\n                  textVariant: this.headerCloseVariant || this.headerTextVariant\n                },\n                on: { click: this.onClose }\n              },\n              [this.normalizeSlot('modal-header-close')]\n            )\n          }\n          const domProps =\n            !this.hasNormalizedSlot('modal-title') && this.titleHtml\n              ? { innerHTML: this.titleHtml }\n              : {}\n          modalHeader = [\n            h(\n              this.titleTag,\n              {\n                staticClass: 'modal-title',\n                class: this.titleClases,\n                attrs: { id: this.safeId('__BV_modal_title_') },\n                domProps\n              },\n              [this.normalizeSlot('modal-title', this.slotScope) || stripTags(this.title)]\n            ),\n            closeButton\n          ]\n        }\n        header = h(\n          'header',\n          {\n            ref: 'header',\n            staticClass: 'modal-header',\n            class: this.headerClasses,\n            attrs: { id: this.safeId('__BV_modal_header_') }\n          },\n          [modalHeader]\n        )\n      }\n\n      // Modal body\n      const body = h(\n        'div',\n        {\n          ref: 'body',\n          staticClass: 'modal-body',\n          class: this.bodyClasses,\n          attrs: { id: this.safeId('__BV_modal_body_') }\n        },\n        this.normalizeSlot('default', this.slotScope)\n      )\n\n      // Modal footer\n      let footer = h()\n      if (!this.hideFooter) {\n        let modalFooter = this.normalizeSlot('modal-footer', this.slotScope)\n        if (!modalFooter) {\n          let cancelButton = h()\n          if (!this.okOnly) {\n            const cancelHtml = this.cancelTitleHtml ? { innerHTML: this.cancelTitleHtml } : null\n            cancelButton = h(\n              BButton,\n              {\n                props: {\n                  variant: this.cancelVariant,\n                  size: this.buttonSize,\n                  disabled: this.cancelDisabled || this.busy || this.isTransitioning\n                },\n                on: { click: this.onCancel }\n              },\n              [\n                this.normalizeSlot('modal-cancel') ||\n                  (cancelHtml ? h('span', { domProps: cancelHtml }) : stripTags(this.cancelTitle))\n              ]\n            )\n          }\n          const okHtml = this.okTitleHtml ? { innerHTML: this.okTitleHtml } : null\n          const okButton = h(\n            BButton,\n            {\n              props: {\n                variant: this.okVariant,\n                size: this.buttonSize,\n                disabled: this.okDisabled || this.busy || this.isTransitioning\n              },\n              on: { click: this.onOk }\n            },\n            [\n              this.normalizeSlot('modal-ok') ||\n                (okHtml ? h('span', { domProps: okHtml }) : stripTags(this.okTitle))\n            ]\n          )\n          modalFooter = [cancelButton, okButton]\n        }\n        footer = h(\n          'footer',\n          {\n            ref: 'footer',\n            staticClass: 'modal-footer',\n            class: this.footerClasses,\n            attrs: { id: this.safeId('__BV_modal_footer_') }\n          },\n          [modalFooter]\n        )\n      }\n\n      // Assemble modal content\n      const modalContent = h(\n        'div',\n        {\n          ref: 'content',\n          staticClass: 'modal-content',\n          class: this.contentClass,\n          attrs: {\n            role: 'document',\n            id: this.safeId('__BV_modal_content_')\n          }\n        },\n        [header, body, footer]\n      )\n\n      // Modal dialog wrapper\n      const modalDialog = h(\n        'div',\n        {\n          staticClass: 'modal-dialog',\n          class: this.dialogClasses,\n          on: { mousedown: this.onDialogMousedown }\n        },\n        [modalContent]\n      )\n\n      // Modal\n      let modal = h(\n        'div',\n        {\n          ref: 'modal',\n          staticClass: 'modal',\n          class: this.modalClasses,\n          style: this.modalStyles,\n          directives: [\n            { name: 'show', rawName: 'v-show', value: this.isVisible, expression: 'isVisible' }\n          ],\n          attrs: {\n            id: this.safeId(),\n            role: 'dialog',\n            tabindex: '-1',\n            'aria-hidden': this.isVisible ? null : 'true',\n            'aria-modal': this.isVisible ? 'true' : null,\n            'aria-label': this.ariaLabel,\n            'aria-labelledby':\n              this.hideHeader ||\n              this.ariaLabel ||\n              !(this.hasNormalizedSlot('modal-title') || this.titleHtml || this.title)\n                ? null\n                : this.safeId('__BV_modal_title_'),\n            'aria-describedby': this.safeId('__BV_modal_body_')\n          },\n          on: { keydown: this.onEsc, click: this.onClickOut }\n        },\n        [modalDialog]\n      )\n\n      // Wrap modal in transition\n      // Sadly, we can't use BVTransition here due to the differences in\n      // transition durations for .modal and .modal-dialog. Not until\n      // issue https://github.com/vuejs/vue/issues/9986 is resolved\n      modal = h(\n        'transition',\n        {\n          props: {\n            enterClass: '',\n            enterToClass: '',\n            enterActiveClass: '',\n            leaveClass: '',\n            leaveActiveClass: '',\n            leaveToClass: ''\n          },\n          on: {\n            beforeEnter: this.onBeforeEnter,\n            enter: this.onEnter,\n            afterEnter: this.onAfterEnter,\n            beforeLeave: this.onBeforeLeave,\n            leave: this.onLeave,\n            afterLeave: this.onAfterLeave\n          }\n        },\n        [modal]\n      )\n\n      // Modal backdrop\n      let backdrop = h()\n      if (!this.hideBackdrop && this.isVisible) {\n        backdrop = h(\n          'div',\n          { staticClass: 'modal-backdrop', attrs: { id: this.safeId('__BV_modal_backdrop_') } },\n          [this.normalizeSlot('modal-backdrop')]\n        )\n      }\n      backdrop = h(BVTransition, { props: { noFade: this.noFade } }, [backdrop])\n\n      // Tab trap to prevent page from scrolling to next element in\n      // tab index during enforce focus tab cycle\n      let tabTrap = h()\n      if (this.isVisible && this.isTop && !this.noEnforceFocus) {\n        tabTrap = h('div', { attrs: { tabindex: '0' } })\n      }\n      // Assemble modal and backdrop in an outer <div>\n      return h(\n        'div',\n        {\n          key: `modal-outer-${this._uid}`,\n          style: this.modalOuterStyle,\n          attrs: { id: this.safeId('__BV_modal_outer_') }\n        },\n        [modal, tabTrap, backdrop]\n      )\n    }\n  },\n  render(h) {\n    if (this.static) {\n      return this.lazy && this.isHidden ? h() : this.makeModal(h)\n    } else {\n      return this.isHidden ? h() : h(BTransporterSingle, {}, [this.makeModal(h)])\n    }\n  }\n})\n\nexport default BModal\n","import { setAttr, removeAttr } from '../../utils/dom'\nimport { bindTargets, unbindTargets } from '../../utils/target'\n\n// Target listen types\nconst listenTypes = { click: true }\n\n// Emitted show event for modal\nconst EVENT_SHOW = 'bv::show::modal'\n\nconst setRole = (el, binding, vnode) => {\n  if (el.tagName !== 'BUTTON') {\n    setAttr(el, 'role', 'button')\n  }\n}\n\n/*\n * Export our directive\n */\nexport const VBModal = {\n  // eslint-disable-next-line no-shadow-restricted-names\n  bind(el, binding, vnode) {\n    bindTargets(vnode, binding, listenTypes, ({ targets, vnode }) => {\n      targets.forEach(target => {\n        vnode.context.$root.$emit(EVENT_SHOW, target, vnode.elm)\n      })\n    })\n    // If element is not a button, we add `role=\"button\"` for accessibility\n    setRole(el, binding, vnode)\n  },\n  updated: setRole,\n  componentUpdated: setRole,\n  unbind(el, binding, vnode) {\n    unbindTargets(vnode, binding, listenTypes)\n    // If element is not a button, we add `role=\"button\"` for accessibility\n    if (el.tagName !== 'BUTTON') {\n      removeAttr(el, 'role', 'button')\n    }\n  }\n}\n\nexport default VBModal\n","/**\n * Plugin for adding `$bvModal` property to all Vue instances\n */\n\nimport BModal, { props as modalProps } from '../modal'\nimport { concat } from '../../../utils/array'\nimport { getComponentConfig } from '../../../utils/config'\nimport { isUndefined, isFunction } from '../../../utils/inspect'\nimport {\n  assign,\n  keys,\n  omit,\n  defineProperty,\n  defineProperties,\n  readonlyDescriptor\n} from '../../../utils/object'\nimport { pluginFactory } from '../../../utils/plugins'\nimport { warn, warnNotClient, warnNoPromiseSupport } from '../../../utils/warn'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvModal'\nconst PROP_NAME_PRIV = '_bv__modal'\n\n// Base modal props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\nconst BASE_PROPS = [\n  'id',\n  ...keys(omit(modalProps, ['busy', 'lazy', 'noStacking', `static`, 'visible']))\n]\n\n// Fallback event resolver (returns undefined)\nconst defaultResolver = bvModalEvt => {}\n\n// Map prop names to modal slot names\nconst propsToSlots = {\n  msgBoxContent: 'default',\n  title: 'modal-title',\n  okTitle: 'modal-ok',\n  cancelTitle: 'modal-cancel'\n}\n\n// --- Utility methods ---\n\n// Method to filter only recognized props that are not undefined\nconst filterOptions = options => {\n  return BASE_PROPS.reduce((memo, key) => {\n    if (!isUndefined(options[key])) {\n      memo[key] = options[key]\n    }\n    return memo\n  }, {})\n}\n\n// Method to install `$bvModal` VM injection\nconst plugin = Vue => {\n  // Create a private sub-component that extends BModal\n  // which self-destructs after hidden\n  // @vue/component\n  const BMsgBox = Vue.extend({\n    name: 'BMsgBox',\n    extends: BModal,\n    destroyed() {\n      // Make sure we not in document any more\n      if (this.$el && this.$el.parentNode) {\n        this.$el.parentNode.removeChild(this.$el)\n      }\n    },\n    mounted() {\n      // Self destruct handler\n      const handleDestroy = () => {\n        const self = this\n        this.$nextTick(() => {\n          // In a `setTimeout()` to release control back to application\n          setTimeout(() => self.$destroy(), 0)\n        })\n      }\n      // Self destruct if parent destroyed\n      this.$parent.$once('hook:destroyed', handleDestroy)\n      // Self destruct after hidden\n      this.$once('hidden', handleDestroy)\n      // Self destruct on route change\n      /* istanbul ignore if */\n      if (this.$router && this.$route) {\n        const unwatch = this.$watch('$router', handleDestroy)\n        this.$once('hook:beforeDestroy', unwatch)\n      }\n      // Show the `BMsgBox`\n      this.show()\n    }\n  })\n\n  // Method to generate the on-demand modal message box\n  // Returns a promise that resolves to a value returned by the resolve\n  const asyncMsgBox = (props, $parent, resolver = defaultResolver) => {\n    if (warnNotClient(PROP_NAME) || warnNoPromiseSupport(PROP_NAME)) {\n      /* istanbul ignore next */\n      return\n    }\n    // Create an instance of `BMsgBox` component\n    const msgBox = new BMsgBox({\n      // We set parent as the local VM so these modals can emit events on\n      // the app `$root`, as needed by things like tooltips and popovers\n      // And it helps to ensure `BMsgBox` is destroyed when parent is destroyed\n      parent: $parent,\n      // Preset the prop values\n      propsData: {\n        ...filterOptions(getComponentConfig('BModal') || {}),\n        // Defaults that user can override\n        hideHeaderClose: true,\n        hideHeader: !(props.title || props.titleHtml),\n        // Add in (filtered) user supplied props\n        ...omit(props, keys(propsToSlots)),\n        // Props that can't be overridden\n        lazy: false,\n        busy: false,\n        visible: false,\n        noStacking: false,\n        noEnforceFocus: false\n      }\n    })\n    // Convert certain props to scoped slots\n    keys(propsToSlots).forEach(prop => {\n      if (!isUndefined(props[prop])) {\n        // Can be a string, or array of VNodes.\n        // Alternatively, user can use HTML version of prop to pass an HTML string.\n        msgBox.$slots[propsToSlots[prop]] = concat(props[prop])\n      }\n    })\n    // Return a promise that resolves when hidden, or rejects on destroyed\n    return new Promise((resolve, reject) => {\n      let resolved = false\n      msgBox.$once('hook:destroyed', () => {\n        if (!resolved) {\n          /* istanbul ignore next */\n          reject(new Error('BootstrapVue MsgBox destroyed before resolve'))\n        }\n      })\n      msgBox.$on('hide', bvModalEvt => {\n        if (!bvModalEvt.defaultPrevented) {\n          const result = resolver(bvModalEvt)\n          // If resolver didn't cancel hide, we resolve\n          if (!bvModalEvt.defaultPrevented) {\n            resolved = true\n            resolve(result)\n          }\n        }\n      })\n      // Create a mount point (a DIV) and mount the msgBo which will trigger it to show\n      const div = document.createElement('div')\n      document.body.appendChild(div)\n      msgBox.$mount(div)\n    })\n  }\n\n  // BvModal instance class\n  class BvModal {\n    constructor(vm) {\n      // Assign the new properties to this instance\n      assign(this, { _vm: vm, _root: vm.$root })\n      // Set these properties as read-only and non-enumerable\n      defineProperties(this, {\n        _vm: readonlyDescriptor(),\n        _root: readonlyDescriptor()\n      })\n    }\n\n    // --- Instance methods ---\n\n    // Show modal with the specified ID args are for future use\n    show(id, ...args) {\n      if (id && this._root) {\n        this._root.$emit('bv::show::modal', id, ...args)\n      }\n    }\n\n    // Hide modal with the specified ID args are for future use\n    hide(id, ...args) {\n      if (id && this._root) {\n        this._root.$emit('bv::hide::modal', id, ...args)\n      }\n    }\n\n    // The following methods require Promise support!\n    // IE 11 and others do not support Promise natively, so users\n    // should have a Polyfill loaded (which they need anyways for IE 11 support)\n\n    // Opens a user defined message box and returns a promise\n    // Not yet documented\n    msgBox(content, options = {}, resolver) {\n      if (\n        !content ||\n        warnNoPromiseSupport(PROP_NAME) ||\n        warnNotClient(PROP_NAME) ||\n        !isFunction(resolver)\n      ) {\n        /* istanbul ignore next */\n        return\n      }\n      return asyncMsgBox({ ...filterOptions(options), msgBoxContent: content }, this._vm, resolver)\n    }\n\n    // Open a message box with OK button only and returns a promise\n    msgBoxOk(message, options = {}) {\n      // Pick the modal props we support from options\n      const props = {\n        ...options,\n        // Add in overrides and our content prop\n        okOnly: true,\n        okDisabled: false,\n        hideFooter: false,\n        msgBoxContent: message\n      }\n      return this.msgBox(message, props, bvModalEvt => {\n        // Always resolve to true for OK\n        return true\n      })\n    }\n\n    // Open a message box modal with OK and CANCEL buttons\n    // and returns a promise\n    msgBoxConfirm(message, options = {}) {\n      // Set the modal props we support from options\n      const props = {\n        ...options,\n        // Add in overrides and our content prop\n        okOnly: false,\n        okDisabled: false,\n        cancelDisabled: false,\n        hideFooter: false\n      }\n      return this.msgBox(message, props, bvModalEvt => {\n        const trigger = bvModalEvt.trigger\n        return trigger === 'ok' ? true : trigger === 'cancel' ? false : null\n      })\n    }\n  }\n\n  // Add our instance mixin\n  Vue.mixin({\n    beforeCreate() {\n      // Because we need access to `$root` for `$emits`, and VM for parenting,\n      // we have to create a fresh instance of `BvModal` for each VM\n      this[PROP_NAME_PRIV] = new BvModal(this)\n    }\n  })\n\n  // Define our read-only `$bvModal` instance property\n  // Placed in an if just in case in HMR mode\n  // eslint-disable-next-line no-prototype-builtins\n  if (!Vue.prototype.hasOwnProperty(PROP_NAME)) {\n    defineProperty(Vue.prototype, PROP_NAME, {\n      get() {\n        /* istanbul ignore next */\n        if (!this || !this[PROP_NAME_PRIV]) {\n          warn(`'${PROP_NAME}' must be accessed from a Vue instance 'this' context`)\n        }\n        return this[PROP_NAME_PRIV]\n      }\n    })\n  }\n}\n\nexport const BVModalPlugin = /*#__PURE__*/ pluginFactory({\n  plugins: { plugin }\n})\n\nexport default BVModalPlugin\n","import { BModal } from './modal'\nimport { VBModal } from '../../directives/modal/modal'\nimport { BVModalPlugin } from './helpers/bv-modal'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ModalPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BModal },\n  directives: { VBModal },\n  // $bvModal injection\n  plugins: { BVModalPlugin }\n})\n\nexport { ModalPlugin, BModal }\n\nexport default ModalPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\n// -- Constants --\n\nconst DEPRECATED_MSG =\n  'Setting prop \"is-nav-bar\" is deprecated. Use the <b-navbar-nav> component instead.'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'ul'\n  },\n  fill: {\n    type: Boolean,\n    default: false\n  },\n  justified: {\n    type: Boolean,\n    default: false\n  },\n  align: {\n    type: String,\n    default: null\n  },\n  tabs: {\n    type: Boolean,\n    default: false\n  },\n  pills: {\n    type: Boolean,\n    default: false\n  },\n  vertical: {\n    type: Boolean,\n    default: false\n  },\n  small: {\n    type: Boolean,\n    default: false\n  },\n  isNavBar: {\n    type: Boolean,\n    default: false,\n    // `deprecated` -> Don't use this prop\n    // `deprecation` -> Refers to a change in prop usage\n    deprecated: DEPRECATED_MSG\n  }\n}\n\n// -- Utils --\n\nconst computeJustifyContent = value => {\n  // Normalize value\n  value = value === 'left' ? 'start' : value === 'right' ? 'end' : value\n  return `justify-content-${value}`\n}\n\n// @vue/component\nexport const BNav = /*#__PURE__*/ Vue.extend({\n  name: 'BNav',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        class: {\n          nav: !props.isNavBar,\n          'navbar-nav': props.isNavBar,\n          'nav-tabs': props.tabs && !props.isNavBar,\n          'nav-pills': props.pills && !props.isNavBar,\n          'flex-column': props.vertical && !props.isNavBar,\n          'nav-fill': !props.vertical && props.fill,\n          'nav-justified': !props.vertical && props.justified,\n          [computeJustifyContent(props.align)]: !props.vertical && props.align,\n          small: props.small\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BNav\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { BLink, propsFactory as linkPropsFactory } from '../link/link'\n\nexport const props = linkPropsFactory()\n\n// @vue/component\nexport const BNavItem = /*#__PURE__*/ Vue.extend({\n  name: 'BNavItem',\n  functional: true,\n  props: {\n    ...props,\n    linkAttrs: {\n      type: Object,\n      default: () => {}\n    },\n    linkClasses: {\n      type: [String, Object, Array],\n      default: null\n    }\n  },\n  render(h, { props, data, listeners, children }) {\n    // We transfer the listeners to the link\n    delete data.on\n    return h(\n      'li',\n      mergeData(data, {\n        staticClass: 'nav-item'\n      }),\n      [\n        h(\n          BLink,\n          {\n            staticClass: 'nav-link',\n            class: props.linkClasses,\n            attrs: props.linkAttrs,\n            props,\n            on: listeners\n          },\n          children\n        )\n      ]\n    )\n  }\n})\n\nexport default BNavItem\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'span'\n  }\n}\n\n// @vue/component\nexport const BNavText = /*#__PURE__*/ Vue.extend({\n  name: 'BNavText',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(props.tag, mergeData(data, { staticClass: 'navbar-text' }), children)\n  }\n})\n\nexport default BNavText\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { omit } from '../../utils/object'\nimport { BForm, props as BFormProps } from '../form/form'\n\nexport const props = omit(BFormProps, ['inline'])\n\n// @vue/component\nexport const BNavForm = /*#__PURE__*/ Vue.extend({\n  name: 'BNavForm',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(BForm, mergeData(data, { props: { ...props, inline: true } }), children)\n  }\n})\n\nexport default BNavForm\n","import Vue from '../../utils/vue'\nimport { props as BDropdownProps } from '../dropdown/dropdown'\nimport idMixin from '../../mixins/id'\nimport dropdownMixin from '../../mixins/dropdown'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport pluckProps from '../../utils/pluck-props'\nimport { htmlOrText } from '../../utils/html'\nimport { BLink } from '../link/link'\n\n// -- Constants --\n\nexport const props = {\n  ...pluckProps(['menuClass', 'toggleClass', 'noCaret', 'role'], BDropdownProps),\n  extraMenuClasses: {\n    type: String,\n    default: '',\n    // `deprecated` -> Don't use this prop\n    // `deprecation` -> Refers to a change in prop usage\n    deprecated: 'Setting prop \"extra-menu-classes\" is deprecated. Use \"menu-class\" prop instead.'\n  },\n  extraToggleClasses: {\n    type: String,\n    default: '',\n    // `deprecated` -> Don't use this prop\n    // `deprecation` -> Refers to a change in prop usage\n    deprecated:\n      'Setting prop \"extra-toggle-classes\" is deprecated. Use \"toggle-class\" prop instead.'\n  }\n}\n\n// @vue/component\nexport const BNavItemDropdown = /*#__PURE__*/ Vue.extend({\n  name: 'BNavItemDropdown',\n  mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n  props,\n  computed: {\n    isNav() {\n      // Signal to dropdown mixin that we are in a navbar\n      return true\n    },\n    dropdownClasses() {\n      return [this.directionClass, { show: this.visible }]\n    },\n    menuClasses() {\n      return [\n        this.extraMenuClasses, // Deprecated\n        this.menuClass,\n        {\n          'dropdown-menu-right': this.right,\n          show: this.visible\n        }\n      ]\n    },\n    toggleClasses() {\n      return [\n        this.extraToggleClasses, // Deprecated\n        this.toggleClass,\n        {\n          'dropdown-toggle-no-caret': this.noCaret\n        }\n      ]\n    }\n  },\n  render(h) {\n    const button = h(\n      BLink,\n      {\n        ref: 'toggle',\n        staticClass: 'nav-link dropdown-toggle',\n        class: this.toggleClasses,\n        props: {\n          href: '#',\n          disabled: this.disabled\n        },\n        attrs: {\n          id: this.safeId('_BV_button_'),\n          'aria-haspopup': 'true',\n          'aria-expanded': this.visible ? 'true' : 'false'\n        },\n        on: {\n          click: this.toggle,\n          keydown: this.toggle // space, enter, down\n        }\n      },\n      [\n        this.$slots['button-content'] ||\n          this.$slots.text ||\n          h('span', { domProps: htmlOrText(this.html, this.text) })\n      ]\n    )\n    const menu = h(\n      'ul',\n      {\n        staticClass: 'dropdown-menu',\n        class: this.menuClasses,\n        ref: 'menu',\n        attrs: {\n          tabindex: '-1',\n          'aria-labelledby': this.safeId('_BV_button_')\n        },\n        on: {\n          keydown: this.onKeydown // up, down, esc\n        }\n      },\n      !this.lazy || this.visible ? this.normalizeSlot('default', { hide: this.hide }) : [h()]\n    )\n    return h(\n      'li',\n      {\n        staticClass: 'nav-item b-nav-dropdown dropdown',\n        class: this.dropdownClasses,\n        attrs: { id: this.safeId() }\n      },\n      [button, menu]\n    )\n  }\n})\n\nexport default BNavItemDropdown\n","import { BNav } from './nav'\nimport { BNavItem } from './nav-item'\nimport { BNavText } from './nav-text'\nimport { BNavForm } from './nav-form'\nimport { BNavItemDropdown } from './nav-item-dropdown'\nimport { DropdownPlugin } from '../dropdown'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst NavPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BNav,\n    BNavItem,\n    BNavText,\n    BNavForm,\n    BNavItemDropdown,\n    BNavItemDd: BNavItemDropdown,\n    BNavDropdown: BNavItemDropdown,\n    BNavDd: BNavItemDropdown\n  },\n  plugins: {\n    DropdownPlugin\n  }\n})\n\nexport { NavPlugin, BNav, BNavItem, BNavText, BNavForm, BNavItemDropdown }\n\nexport default NavPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig, getBreakpoints } from '../../utils/config'\nimport { isString } from '../../utils/inspect'\n\nconst NAME = 'BNavbar'\n\nexport const props = {\n  tag: {\n    type: String,\n    default: 'nav'\n  },\n  type: {\n    type: String,\n    default: 'light'\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  toggleable: {\n    type: [Boolean, String],\n    default: false\n  },\n  fixed: {\n    type: String\n  },\n  sticky: {\n    type: Boolean,\n    default: false\n  },\n  print: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BNavbar = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    let breakpoint = ''\n    const xs = getBreakpoints()[0]\n    if (props.toggleable && isString(props.toggleable) && props.toggleable !== xs) {\n      breakpoint = `navbar-expand-${props.toggleable}`\n    } else if (props.toggleable === false) {\n      breakpoint = 'navbar-expand'\n    }\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'navbar',\n        class: {\n          'd-print': props.print,\n          'sticky-top': props.sticky,\n          [`navbar-${props.type}`]: Boolean(props.type),\n          [`bg-${props.variant}`]: Boolean(props.variant),\n          [`fixed-${props.fixed}`]: Boolean(props.fixed),\n          [`${breakpoint}`]: Boolean(breakpoint)\n        },\n        attrs: {\n          role: props.tag === 'nav' ? null : 'navigation'\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BNavbar\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { props as BNavProps } from '../nav/nav'\n\n// -- Constants --\n\nexport const props = pluckProps(['tag', 'fill', 'justified', 'align', 'small'], BNavProps)\n\n// -- Utils --\n\nconst computeJustifyContent = value => {\n  // Normalize value\n  value = value === 'left' ? 'start' : value === 'right' ? 'end' : value\n  return `justify-content-${value}`\n}\n\n// @vue/component\nexport const BNavbarNav = /*#__PURE__*/ Vue.extend({\n  name: 'BNavbarNav',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'navbar-nav',\n        class: {\n          'nav-fill': props.fill,\n          'nav-justified': props.justified,\n          [computeJustifyContent(props.align)]: props.align,\n          small: props.small\n        }\n      }),\n      children\n    )\n  }\n})\n\nexport default BNavbarNav\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport pluckProps from '../../utils/pluck-props'\nimport { BLink, propsFactory } from '../link/link'\n\nconst linkProps = propsFactory()\nlinkProps.href.default = undefined\nlinkProps.to.default = undefined\n\nexport const props = {\n  ...linkProps,\n  tag: {\n    type: String,\n    default: 'div'\n  }\n}\n\n// @vue/component\nexport const BNavbarBrand = /*#__PURE__*/ Vue.extend({\n  name: 'BNavbarBrand',\n  functional: true,\n  props,\n  render(h, { props, data, children }) {\n    const isLink = Boolean(props.to || props.href)\n    const tag = isLink ? BLink : props.tag\n\n    return h(\n      tag,\n      mergeData(data, {\n        staticClass: 'navbar-brand',\n        props: isLink ? pluckProps(linkProps, props) : {}\n      }),\n      children\n    )\n  }\n})\n\nexport default BNavbarBrand\n","import Vue from '../../utils/vue'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { getComponentConfig } from '../../utils/config'\n\nconst NAME = 'BNavbarToggle'\n\n// TODO: Switch to using VBToggle directive, will reduce code footprint\n\n// Events we emit on $root\nconst EVENT_TOGGLE = 'bv::toggle::collapse'\n\n// Events we listen to on $root\nconst EVENT_STATE = 'bv::collapse::state'\n// This private event is NOT to be documented as people should not be using it.\nconst EVENT_STATE_SYNC = 'bv::collapse::sync::state'\n\n// @vue/component\nexport const BNavbarToggle = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [listenOnRootMixin, normalizeSlotMixin],\n  props: {\n    label: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'label')\n    },\n    target: {\n      type: String,\n      required: true\n    }\n  },\n  data() {\n    return {\n      toggleState: false\n    }\n  },\n  created() {\n    this.listenOnRoot(EVENT_STATE, this.handleStateEvt)\n    this.listenOnRoot(EVENT_STATE_SYNC, this.handleStateEvt)\n  },\n  methods: {\n    onClick(evt) {\n      this.$emit('click', evt)\n      if (!evt.defaultPrevented) {\n        this.$root.$emit(EVENT_TOGGLE, this.target)\n      }\n    },\n    handleStateEvt(id, state) {\n      if (id === this.target) {\n        this.toggleState = state\n      }\n    }\n  },\n  render(h) {\n    return h(\n      'button',\n      {\n        class: ['navbar-toggler'],\n        attrs: {\n          type: 'button',\n          'aria-label': this.label,\n          'aria-controls': this.target,\n          'aria-expanded': this.toggleState ? 'true' : 'false'\n        },\n        on: { click: this.onClick }\n      },\n      [this.normalizeSlot('default') || h('span', { class: ['navbar-toggler-icon'] })]\n    )\n  }\n})\n\nexport default BNavbarToggle\n","import { BNavbar } from './navbar'\nimport { BNavbarNav } from './navbar-nav'\nimport { BNavbarBrand } from './navbar-brand'\nimport { BNavbarToggle } from './navbar-toggle'\nimport { NavPlugin } from '../nav'\nimport { CollapsePlugin } from '../collapse'\nimport { DropdownPlugin } from '../dropdown'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst NavbarPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BNavbar,\n    BNavbarNav,\n    BNavbarBrand,\n    BNavbarToggle,\n    BNavToggle: BNavbarToggle\n  },\n  plugins: {\n    NavPlugin,\n    CollapsePlugin,\n    DropdownPlugin\n  }\n})\n\nexport { NavbarPlugin, BNavbar, BNavbarNav, BNavbarBrand, BNavbarToggle }\n\nexport default NavbarPlugin\n","/*\n * Common props, computed, data, render function, and methods\n * for <b-pagination> and <b-pagination-nav>\n */\n\nimport KeyCodes from '../utils/key-codes'\nimport range from '../utils/range'\nimport toString from '../utils/to-string'\nimport warn from '../utils/warn'\nimport { isFunction, isNull } from '../utils/inspect'\nimport { isVisible, isDisabled, selectAll, getAttr } from '../utils/dom'\nimport normalizeSlotMixin from '../mixins/normalize-slot'\nimport { BLink } from '../components/link/link'\n\n// Threshold of limit size when we start/stop showing ellipsis\nconst ELLIPSIS_THRESHOLD = 3\n\n// Default # of buttons limit\nconst DEFAULT_LIMIT = 5\n\n// Make an array of N to N+X\nconst makePageArray = (startNum, numPages) =>\n  range(numPages).map((val, i) => ({ number: startNum + i, classes: null }))\n\n// Sanitize the provided limit value (converting to a number)\nconst sanitizeLimit = val => {\n  const limit = parseInt(val, 10) || 1\n  return limit < 1 ? DEFAULT_LIMIT : limit\n}\n\n// Sanitize the provided current page number (converting to a number)\nconst sanitizeCurPage = (val, numPages) => {\n  const page = parseInt(val, 10) || 1\n  return page > numPages ? numPages : page < 1 ? 1 : page\n}\n\n// Links don't normally respond to SPACE, so we add that\n// functionality via this handler\nconst onSpaceKey = evt => {\n  if (evt.keyCode === KeyCodes.SPACE) {\n    evt.preventDefault() // Stop page from scrolling\n    evt.stopImmediatePropagation()\n    evt.stopPropagation()\n    // Trigger the click event on the link\n    evt.currentTarget.click()\n    return false\n  }\n}\n\n// Props object\nconst props = {\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  value: {\n    type: [Number, String],\n    default: null,\n    validator(value) {\n      const num = parseInt(value, 10)\n      /* istanbul ignore if */\n      if (!isNull(value) && (isNaN(num) || num < 1)) {\n        warn('pagination: v-model value must be a number greater than 0')\n        return false\n      }\n      return true\n    }\n  },\n  limit: {\n    type: [Number, String],\n    default: DEFAULT_LIMIT,\n    validator(value) {\n      const num = parseInt(value, 10)\n      /* istanbul ignore if */\n      if (isNaN(num) || num < 1) {\n        warn('pagination: prop \"limit\" must be a number greater than 0')\n        return false\n      }\n      return true\n    }\n  },\n  size: {\n    type: String,\n    default: 'md'\n  },\n  align: {\n    type: String,\n    default: 'left'\n  },\n  hideGotoEndButtons: {\n    type: Boolean,\n    default: false\n  },\n  ariaLabel: {\n    type: String,\n    default: 'Pagination'\n  },\n  labelFirstPage: {\n    type: String,\n    default: 'Go to first page'\n  },\n  firstText: {\n    type: String,\n    default: '\\u00AB' // '«'\n  },\n  labelPrevPage: {\n    type: String,\n    default: 'Go to previous page'\n  },\n  prevText: {\n    type: String,\n    default: '\\u2039' // '‹'\n  },\n  labelNextPage: {\n    type: String,\n    default: 'Go to next page'\n  },\n  nextText: {\n    type: String,\n    default: '\\u203A' // '›'\n  },\n  labelLastPage: {\n    type: String,\n    default: 'Go to last page'\n  },\n  lastText: {\n    type: String,\n    default: '\\u00BB' // '»'\n  },\n  labelPage: {\n    type: [String, Function],\n    default: 'Go to page'\n  },\n  hideEllipsis: {\n    type: Boolean,\n    default: false\n  },\n  ellipsisText: {\n    type: String,\n    default: '\\u2026' // '…'\n  }\n}\n\n// @vue/component\nexport default {\n  mixins: [normalizeSlotMixin],\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props,\n  data() {\n    const curr = parseInt(this.value, 10)\n    return {\n      // -1 signifies no page initially selected\n      currentPage: curr > 0 ? curr : -1,\n      localNumPages: 1,\n      localLimit: DEFAULT_LIMIT\n    }\n  },\n  computed: {\n    btnSize() {\n      return this.size ? `pagination-${this.size}` : ''\n    },\n    alignment() {\n      const align = this.align\n      if (align === 'center') {\n        return 'justify-content-center'\n      } else if (align === 'end' || align === 'right') {\n        return 'justify-content-end'\n      } else if (align === 'fill') {\n        // The page-items will also have 'flex-fill' added.\n        // We ad text centering to make the button appearance better in fill mode.\n        return 'text-center'\n      }\n      return ''\n    },\n    computedCurrentPage() {\n      return sanitizeCurPage(this.currentPage, this.localNumPages)\n    },\n    paginationParams() {\n      // Determine if we should show the the ellipsis\n      const limit = this.limit\n      const numPages = this.localNumPages\n      const curPage = this.computedCurrentPage\n      const hideEllipsis = this.hideEllipsis\n      let showFirstDots = false\n      let showLastDots = false\n      let numLinks = limit\n      let startNum = 1\n\n      if (numPages <= limit) {\n        // Special Case: Less pages available than the limit of displayed pages\n        numLinks = numPages\n      } else if (curPage < limit - 1 && limit > ELLIPSIS_THRESHOLD) {\n        // We are near the beginning of the page list\n        if (!hideEllipsis) {\n          showLastDots = true\n          numLinks = limit - 1\n        }\n      } else if (numPages - curPage + 2 < limit && limit > ELLIPSIS_THRESHOLD) {\n        // We are near the end of the list\n        if (!hideEllipsis) {\n          numLinks = limit - 1\n          showFirstDots = true\n        }\n        startNum = numPages - numLinks + 1\n      } else {\n        // We are somewhere in the middle of the page list\n        if (limit > ELLIPSIS_THRESHOLD && !hideEllipsis) {\n          numLinks = limit - 2\n          showFirstDots = showLastDots = true\n        }\n        startNum = curPage - Math.floor(numLinks / 2)\n      }\n      // Sanity checks\n      if (startNum < 1) {\n        /* istanbul ignore next */\n        startNum = 1\n      } else if (startNum > numPages - numLinks) {\n        startNum = numPages - numLinks + 1\n      }\n      return { showFirstDots, showLastDots, numLinks, startNum }\n    },\n    pageList() {\n      // Generates the pageList array\n      const { numLinks, startNum } = this.paginationParams\n      const currPage = this.computedCurrentPage\n      // Generate list of page numbers\n      const pages = makePageArray(startNum, numLinks)\n      // We limit to a total of 3 page buttons on XS screens\n      // So add classes to page links to hide them for XS breakpoint\n      // Note: Ellipsis will also be hidden on XS screens\n      // TODO: Make this visual limit configurable based on breakpoint(s)\n      if (pages.length > 3) {\n        const idx = currPage - startNum\n        // THe following is a bootstrap-vue custom utility class\n        const classes = 'bv-d-xs-down-none'\n        if (idx === 0) {\n          // Keep leftmost 3 buttons visible when current page is first page\n          for (let i = 3; i < pages.length; i++) {\n            pages[i].classes = classes\n          }\n        } else if (idx === pages.length - 1) {\n          // Keep rightmost 3 buttons visible when current page is last page\n          for (let i = 0; i < pages.length - 3; i++) {\n            pages[i].classes = classes\n          }\n        } else {\n          // Hide all except current page, current page - 1 and current page + 1\n          for (let i = 0; i < idx - 1; i++) {\n            // hide some left button(s)\n            pages[i].classes = classes\n          }\n          for (let i = pages.length - 1; i > idx + 1; i--) {\n            // hide some right button(s)\n            pages[i].classes = classes\n          }\n        }\n      }\n      return pages\n    }\n  },\n  watch: {\n    value(newValue, oldValue) {\n      if (newValue !== oldValue) {\n        this.currentPage = sanitizeCurPage(newValue, this.localNumPages)\n      }\n    },\n    currentPage(newValue, oldValue) {\n      if (newValue !== oldValue) {\n        // Emit null if no page selected\n        this.$emit('input', newValue > 0 ? newValue : null)\n      }\n    },\n    limit(newValue, oldValue) {\n      if (newValue !== oldValue) {\n        this.localLimit = sanitizeLimit(newValue)\n      }\n    }\n  },\n  created() {\n    // Set our default values in data\n    this.localLimit = sanitizeLimit(this.limit)\n    this.$nextTick(() => {\n      // Sanity check\n      this.currentPage =\n        this.currentPage > this.localNumPages ? this.localNumPages : this.currentPage\n    })\n  },\n  methods: {\n    getButtons() {\n      // Return only buttons that are visible\n      return selectAll('a.page-link', this.$el).filter(btn => isVisible(btn))\n    },\n    setBtnFocus(btn) {\n      btn.focus()\n    },\n    focusCurrent() {\n      // We do this in next tick to ensure buttons have finished rendering\n      this.$nextTick(() => {\n        const btn = this.getButtons().find(\n          el => parseInt(getAttr(el, 'aria-posinset'), 10) === this.computedCurrentPage\n        )\n        if (btn && btn.focus) {\n          this.setBtnFocus(btn)\n        } else {\n          // Fallback if current page is not in button list\n          this.focusFirst()\n        }\n      })\n    },\n    focusFirst() {\n      // We do this in next tick to ensure buttons have finished rendering\n      this.$nextTick(() => {\n        const btn = this.getButtons().find(el => !isDisabled(el))\n        if (btn && btn.focus && btn !== document.activeElement) {\n          this.setBtnFocus(btn)\n        }\n      })\n    },\n    focusLast() {\n      // We do this in next tick to ensure buttons have finished rendering\n      this.$nextTick(() => {\n        const btn = this.getButtons()\n          .reverse()\n          .find(el => !isDisabled(el))\n        if (btn && btn.focus && btn !== document.activeElement) {\n          this.setBtnFocus(btn)\n        }\n      })\n    },\n    focusPrev() {\n      // We do this in next tick to ensure buttons have finished rendering\n      this.$nextTick(() => {\n        const buttons = this.getButtons()\n        const idx = buttons.indexOf(document.activeElement)\n        if (idx > 0 && !isDisabled(buttons[idx - 1]) && buttons[idx - 1].focus) {\n          this.setBtnFocus(buttons[idx - 1])\n        }\n      })\n    },\n    focusNext() {\n      // We do this in next tick to ensure buttons have finished rendering\n      this.$nextTick(() => {\n        const buttons = this.getButtons()\n        const idx = buttons.indexOf(document.activeElement)\n        const cnt = buttons.length - 1\n        if (idx < cnt && !isDisabled(buttons[idx + 1]) && buttons[idx + 1].focus) {\n          this.setBtnFocus(buttons[idx + 1])\n        }\n      })\n    }\n  },\n  render(h) {\n    const buttons = []\n    const numberOfPages = this.localNumPages\n    const disabled = this.disabled\n    const { showFirstDots, showLastDots } = this.paginationParams\n    const currPage = this.computedCurrentPage\n    const fill = this.align === 'fill'\n\n    // Helper function and flag\n    const isActivePage = pageNum => pageNum === currPage\n    const noCurrPage = this.currentPage < 1\n\n    // Factory function for prev/next/first/last buttons\n    const makeEndBtn = (linkTo, ariaLabel, btnSlot, btnText, pageTest, key) => {\n      const isDisabled =\n        disabled || isActivePage(pageTest) || noCurrPage || linkTo < 1 || linkTo > numberOfPages\n      const pageNum = linkTo < 1 ? 1 : linkTo > numberOfPages ? numberOfPages : linkTo\n      const scope = { disabled: isDisabled, page: pageNum, index: pageNum - 1 }\n      const btnContent = this.normalizeSlot(btnSlot, scope) || toString(btnText) || h()\n      const inner = h(\n        isDisabled ? 'span' : BLink,\n        {\n          staticClass: 'page-link',\n          props: isDisabled ? {} : this.linkProps(linkTo),\n          attrs: {\n            role: 'menuitem',\n            tabindex: isDisabled ? null : '-1',\n            'aria-label': ariaLabel,\n            'aria-controls': this.ariaControls || null,\n            'aria-disabled': isDisabled ? 'true' : null\n          },\n          on: isDisabled\n            ? {}\n            : {\n                click: evt => {\n                  this.onClick(linkTo, evt)\n                },\n                keydown: onSpaceKey\n              }\n        },\n        [btnContent]\n      )\n      return h(\n        'li',\n        {\n          key,\n          staticClass: 'page-item',\n          class: { disabled: isDisabled, 'flex-fill': fill },\n          attrs: {\n            role: 'none presentation',\n            'aria-hidden': isDisabled ? 'true' : null\n          }\n        },\n        [inner]\n      )\n    }\n\n    // Ellipsis factory\n    const makeEllipsis = isLast => {\n      return h(\n        'li',\n        {\n          key: `ellipsis-${isLast ? 'last' : 'first'}`,\n          staticClass: 'page-item',\n          class: ['disabled', 'bv-d-xs-down-none', fill ? 'flex-fill' : ''],\n          attrs: { role: 'separator' }\n        },\n        [\n          h('span', { staticClass: 'page-link' }, [\n            this.normalizeSlot('ellipsis-text') || toString(this.ellipsisText) || h()\n          ])\n        ]\n      )\n    }\n\n    // Goto First Page button bookend\n    buttons.push(\n      this.hideGotoEndButtons\n        ? h()\n        : makeEndBtn(1, this.labelFirstPage, 'first-text', this.firstText, 1, 'bookend-goto-first')\n    )\n\n    // Goto Previous page button bookend\n    buttons.push(\n      makeEndBtn(\n        currPage - 1,\n        this.labelPrevPage,\n        'prev-text',\n        this.prevText,\n        1,\n        'bookend-goto-prev'\n      )\n    )\n\n    // First Ellipsis Bookend\n    buttons.push(showFirstDots ? makeEllipsis(false) : h())\n\n    // Individual Page links\n    this.pageList.forEach((page, idx) => {\n      const active = isActivePage(page.number) && !noCurrPage\n      // Active page will have tabindex of 0, or if no current page and first page button\n      const tabIndex = disabled ? null : active || (noCurrPage && idx === 0) ? '0' : '-1'\n      const attrs = {\n        role: 'menuitemradio',\n        'aria-disabled': disabled ? 'true' : null,\n        'aria-controls': this.ariaControls || null,\n        'aria-label': isFunction(this.labelPage)\n          ? this.labelPage(page.number)\n          : `${this.labelPage} ${page.number}`,\n        'aria-checked': active ? 'true' : 'false',\n        'aria-posinset': page.number,\n        'aria-setsize': numberOfPages,\n        // ARIA \"roving tabindex\" method\n        tabindex: tabIndex\n      }\n      const btnContent = toString(this.makePage(page.number))\n      const scope = {\n        page: page.number,\n        index: page.number - 1,\n        content: btnContent,\n        active,\n        disabled\n      }\n      const inner = h(\n        disabled ? 'span' : BLink,\n        {\n          props: disabled ? {} : this.linkProps(page.number),\n          staticClass: 'page-link',\n          attrs,\n          on: disabled\n            ? {}\n            : {\n                click: evt => {\n                  this.onClick(page.number, evt)\n                },\n                keydown: onSpaceKey\n              }\n        },\n        [this.normalizeSlot('page', scope) || btnContent]\n      )\n      buttons.push(\n        h(\n          'li',\n          {\n            key: `page-${page.number}`,\n            staticClass: 'page-item',\n            class: [{ disabled, active, 'flex-fill': fill }, page.classes],\n            attrs: { role: 'none presentation' }\n          },\n          [inner]\n        )\n      )\n    })\n\n    // Last Ellipsis Bookend\n    buttons.push(showLastDots ? makeEllipsis(true) : h())\n\n    // Goto Next page button bookend\n    buttons.push(\n      makeEndBtn(\n        currPage + 1,\n        this.labelNextPage,\n        'next-text',\n        this.nextText,\n        numberOfPages,\n        'bookend-goto-next'\n      )\n    )\n\n    // Goto Last Page button bookend\n    buttons.push(\n      this.hideGotoEndButtons\n        ? h()\n        : makeEndBtn(\n            numberOfPages,\n            this.labelLastPage,\n            'last-text',\n            this.lastText,\n            numberOfPages,\n            'bookend-goto-last'\n          )\n    )\n\n    // Assemble the pagination buttons\n    const pagination = h(\n      'ul',\n      {\n        ref: 'ul',\n        staticClass: 'pagination',\n        class: ['b-pagination', this.btnSize, this.alignment],\n        attrs: {\n          role: 'menubar',\n          'aria-disabled': disabled ? 'true' : 'false',\n          'aria-label': this.ariaLabel || null\n        },\n        on: {\n          keydown: evt => {\n            const keyCode = evt.keyCode\n            const shift = evt.shiftKey\n            if (keyCode === KeyCodes.LEFT) {\n              evt.preventDefault()\n              shift ? this.focusFirst() : this.focusPrev()\n            } else if (keyCode === KeyCodes.RIGHT) {\n              evt.preventDefault()\n              shift ? this.focusLast() : this.focusNext()\n            }\n          }\n        }\n      },\n      buttons\n    )\n\n    // if we are pagination-nav, wrap in '<nav>' wrapper\n    if (this.isNav) {\n      return h(\n        'nav',\n        {\n          attrs: {\n            'aria-disabled': disabled ? 'true' : null,\n            'aria-hidden': disabled ? 'true' : 'false'\n          }\n        },\n        [pagination]\n      )\n    } else {\n      return pagination\n    }\n  }\n}\n","/**\n * @param {number} length\n * @return {Array}\n */\nconst range = length => Array.apply(null, { length })\n\nexport default range\n","import Vue from '../../utils/vue'\nimport paginationMixin from '../../mixins/pagination'\nimport { isVisible } from '../../utils/dom'\n\nconst DEFAULT_PER_PAGE = 20\nconst DEFAULT_TOTAL_ROWS = 0\n\nconst sanitizePerPage = val => {\n  const perPage = parseInt(val, 10) || DEFAULT_PER_PAGE\n  return perPage < 1 ? 1 : perPage\n}\n\nconst sanitizeTotalRows = val => {\n  const totalRows = parseInt(val, 10) || DEFAULT_TOTAL_ROWS\n  return totalRows < 0 ? 0 : totalRows\n}\n\nconst props = {\n  perPage: {\n    type: [Number, String],\n    default: DEFAULT_PER_PAGE\n  },\n  totalRows: {\n    type: [Number, String],\n    default: DEFAULT_TOTAL_ROWS\n  },\n  ariaControls: {\n    type: String,\n    default: null\n  }\n}\n\n// Our render function is brought in from the pagination mixin\n// @vue/component\nexport const BPagination = /*#__PURE__*/ Vue.extend({\n  name: 'BPagination',\n  mixins: [paginationMixin],\n  props,\n  computed: {\n    numberOfPages() {\n      const result = Math.ceil(sanitizeTotalRows(this.totalRows) / sanitizePerPage(this.perPage))\n      return result < 1 ? 1 : result\n    }\n  },\n  watch: {\n    numberOfPages(newVal) {\n      if (newVal === this.localNumPages) {\n        /* istanbul ignore next */\n        return\n      }\n      this.localNumPages = newVal\n      this.currentPage = 1\n    }\n  },\n  created() {\n    // Set the initial page count\n    this.localNumPages = this.numberOfPages\n    // Set the initial page value\n    const curr = parseInt(this.value, 10) || 0\n    if (curr > 0) {\n      this.currentPage = curr\n    } else {\n      this.$nextTick(() => {\n        // If this value parses to NaN or a value less than 1\n        // Trigger an initial emit of 'null' if no page specified\n        this.currentPage = 0\n      })\n    }\n  },\n  mounted() {\n    // Set the initial page count\n    this.localNumPages = this.numberOfPages\n  },\n  methods: {\n    // These methods are used by the render function\n    onClick(num, evt) {\n      // Handle edge cases where number of pages has changed (i.e. if perPage changes)\n      // This should normally not happen, but just in case.\n      if (num > this.numberOfPages) {\n        /* istanbul ignore next */\n        num = this.numberOfPages\n      } else if (num < 1) {\n        /* istanbul ignore next */\n        num = 1\n      }\n      // Update the v-model\n      this.currentPage = num\n      // Emit event triggered by user interaction\n      this.$emit('change', this.currentPage)\n      this.$nextTick(() => {\n        // Keep the current button focused if possible\n        const target = evt.target\n        if (isVisible(target) && this.$el.contains(target) && target.focus) {\n          target.focus()\n        } else {\n          this.focusCurrent()\n        }\n      })\n    },\n    makePage(pageNum) {\n      return pageNum\n    },\n    linkProps(pageNum) {\n      // Always '#' for pagination component\n      return { href: '#' }\n    }\n  }\n})\n\nexport default BPagination\n","import { BPagination } from './pagination'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst PaginationPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BPagination }\n})\n\nexport { PaginationPlugin, BPagination }\n\nexport default PaginationPlugin\n","import Vue from '../../utils/vue'\nimport looseEqual from '../../utils/loose-equal'\nimport toString from '../../utils/to-string'\nimport warn from '../../utils/warn'\nimport { requestAF } from '../../utils/dom'\nimport { isBrowser } from '../../utils/env'\nimport { isArray, isUndefined, isFunction, isObject } from '../../utils/inspect'\nimport { computeHref, parseQuery } from '../../utils/router'\nimport paginationMixin from '../../mixins/pagination'\n\n// Props object\nconst props = {\n  // pagination-nav specific props\n  numberOfPages: {\n    type: [Number, String],\n    default: 1,\n    validator(value) {\n      const num = parseInt(value, 10)\n      /* istanbul ignore if */\n      if (isNaN(num) || num < 1) {\n        warn('b-pagination: prop \"number-of-pages\" must be a number greater than 0')\n        return false\n      }\n      return true\n    }\n  },\n  baseUrl: {\n    type: String,\n    default: '/'\n  },\n  useRouter: {\n    type: Boolean,\n    default: false\n  },\n  linkGen: {\n    type: Function,\n    default: null\n  },\n  pageGen: {\n    type: Function,\n    default: null\n  },\n  pages: {\n    // Optional array of page links\n    type: Array,\n    default: null\n  },\n  noPageDetect: {\n    // Disable auto page number detection if true\n    type: Boolean,\n    default: false\n  },\n  // router-link specific props\n  activeClass: {\n    type: String\n    // default: undefined\n  },\n  exact: {\n    type: Boolean,\n    default: false\n  },\n  exactActiveClass: {\n    type: String\n    // default: undefined\n  },\n  // nuxt-link specific prop(s)\n  noPrefetch: {\n    type: Boolean,\n    default: false\n  }\n}\n\n// TODO: move this to an instance method in pagination mixin\nconst sanitizeNumPages = value => {\n  const num = parseInt(value, 10) || 1\n  return num < 1 ? 1 : num\n}\n\n// Our render function is brought in via the pagination mixin\n// @vue/component\nexport const BPaginationNav = /*#__PURE__*/ Vue.extend({\n  name: 'BPaginationNav',\n  mixins: [paginationMixin],\n  props,\n  computed: {\n    // Used by render function to trigger wrapping in '<nav>' element\n    isNav() {\n      return true\n    },\n    computedValue() {\n      // Returns the value prop as a number or `null` if undefined or < 1\n      const val = parseInt(this.value, 10)\n      return isNaN(val) || val < 1 ? null : val\n    }\n  },\n  watch: {\n    numberOfPages(newVal, oldVal) {\n      this.$nextTick(() => {\n        this.setNumPages()\n      })\n    },\n    pages(newVal, oldVal) {\n      this.$nextTick(() => {\n        this.setNumPages()\n      })\n    }\n  },\n  created() {\n    this.setNumPages()\n  },\n  mounted() {\n    if (this.$router) {\n      // We only add the watcher if vue router is detected\n      this.$watch('$route', (to, from) => {\n        this.$nextTick(() => {\n          requestAF(() => {\n            this.guessCurrentPage()\n          })\n        })\n      })\n    }\n  },\n  methods: {\n    setNumPages() {\n      if (isArray(this.pages) && this.pages.length > 0) {\n        this.localNumPages = this.pages.length\n      } else {\n        this.localNumPages = sanitizeNumPages(this.numberOfPages)\n      }\n      this.$nextTick(() => {\n        this.guessCurrentPage()\n      })\n    },\n    onClick(pageNum, evt) {\n      // Dont do anything if clicking the current active page\n      if (pageNum === this.currentPage) {\n        return\n      }\n      requestAF(() => {\n        // Update the v-model\n        // Done in in requestAF() to allow browser to complete the\n        // native browser click handling of a link\n        this.currentPage = pageNum\n        this.$emit('change', pageNum)\n      })\n      this.$nextTick(() => {\n        // Done in a nextTick() to ensure rendering complete\n        try {\n          // Emulate native link click page reloading behaviour by blurring the\n          // paginator and returning focus to the document\n          const target = evt.currentTarget || evt.target\n          target.blur()\n        } catch (e) {}\n      })\n    },\n    getPageInfo(pageNum) {\n      if (!isArray(this.pages) || this.pages.length === 0 || isUndefined(this.pages[pageNum - 1])) {\n        const link = `${this.baseUrl}${pageNum}`\n        return {\n          link: this.useRouter ? { path: link } : link,\n          text: toString(pageNum)\n        }\n      }\n      const info = this.pages[pageNum - 1]\n      if (isObject(info)) {\n        const link = info.link\n        return {\n          // Normalize link for router use\n          link: isObject(link) ? link : this.useRouter ? { path: link } : link,\n          // Make sure text has a value\n          text: toString(info.text || pageNum)\n        }\n      } else {\n        return { link: toString(info), text: toString(pageNum) }\n      }\n    },\n    makePage(pageNum) {\n      const info = this.getPageInfo(pageNum)\n      if (this.pageGen && isFunction(this.pageGen)) {\n        return this.pageGen(pageNum, info)\n      }\n      return info.text\n    },\n    makeLink(pageNum) {\n      const info = this.getPageInfo(pageNum)\n      if (this.linkGen && isFunction(this.linkGen)) {\n        return this.linkGen(pageNum, info)\n      }\n      return info.link\n    },\n    linkProps(pageNum) {\n      const link = this.makeLink(pageNum)\n      const props = {\n        target: this.target || null,\n        rel: this.rel || null,\n        disabled: this.disabled,\n        // The following props are only used if BLink detects router\n        exact: this.exact,\n        activeClass: this.activeClass,\n        exactActiveClass: this.exactActiveClass,\n        append: this.append,\n        replace: this.replace,\n        // nuxt-link specific prop\n        noPrefetch: this.noPrefetch\n      }\n      if (this.useRouter || isObject(link)) {\n        props.to = link\n      } else {\n        props.href = link\n      }\n      return props\n    },\n    resolveLink(to = '') {\n      // Given a to (or href string), convert to normalized route-like structure\n      // Works only client side!!\n      let link\n      try {\n        // Convert the `to` to a HREF via a temporary `a` tag\n        link = document.createElement('a')\n        link.href = computeHref({ to }, 'a', '/', '/')\n        // We need to add the anchor to the document to make sure the\n        // `pathname` is correctly detected in any browser (i.e. IE)\n        document.body.appendChild(link)\n        // Once href is assigned, the link will be normalized to the full URL bits\n        const { pathname, hash, search } = link\n        // Remove link from document\n        document.body.removeChild(link)\n        // Return the location in a route-like object\n        return { path: pathname, hash: hash, query: parseQuery(search) }\n      } catch (e) {\n        /* istanbul ignore next */\n        try {\n          link && link.parentNode && link.parentNode.removeChild(link)\n        } catch (e) {}\n        /* istanbul ignore next */\n        return {}\n      }\n    },\n    resolveRoute(to = '') {\n      // Given a to (or href string), convert to normalized route location structure\n      // works only when router available!!\n      try {\n        const route = this.$router.resolve(to, this.$route).route\n        return { path: route.path, hash: route.hash, query: route.query }\n      } catch (e) {\n        /* istanbul ignore next */\n        return {}\n      }\n    },\n    guessCurrentPage() {\n      let guess = this.computedValue\n      const $router = this.$router\n      const $route = this.$route\n      // This section only occurs if we are client side, or server-side with $router\n      /* istanbul ignore else */\n      if (!this.noPageDetect && !guess && (isBrowser || (!isBrowser && $router))) {\n        // Current route (if router available)\n        const currRoute =\n          $router && $route ? { path: $route.path, hash: $route.hash, query: $route.query } : {}\n        // Current page full HREF (if client side). Can't be done as a computed prop!\n        const loc = isBrowser ? window.location || document.location : null\n        const currLink = loc\n          ? { path: loc.pathname, hash: loc.hash, query: parseQuery(loc.search) }\n          : {}\n        // Loop through the possible pages looking for a match until found\n        for (let page = 1; !guess && page <= this.localNumPages; page++) {\n          const to = this.makeLink(page)\n          if ($router && (isObject(to) || this.useRouter)) {\n            // Resolve the page via the $router\n            guess = looseEqual(this.resolveRoute(to), currRoute) ? page : null\n          } else if (isBrowser) {\n            // If no $router available (or !this.useRouter when `to` is a string)\n            // we compare using parsed URIs\n            guess = looseEqual(this.resolveLink(to), currLink) ? page : null\n          } else {\n            // probably SSR, but no $router so we can't guess, so lets break out of\n            // the loop early\n            /* istanbul ignore next */\n            guess = -1\n          }\n        }\n      }\n      // We set currentPage to 0 to trigger an $emit('input', null)\n      // As the default for this.currentPage is -1 when no value is specified\n      // And valid page numbers are greater than 0\n      this.currentPage = guess > 0 ? guess : 0\n    }\n  }\n})\n\nexport default BPaginationNav\n","import { BPaginationNav } from './pagination-nav'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst PaginationNavPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BPaginationNav }\n})\n\nexport { PaginationNavPlugin, BPaginationNav }\n\nexport default PaginationNavPlugin\n","import Popper from 'popper.js'\nimport BvEvent from './bv-event.class'\nimport noop from './noop'\nimport { from as arrayFrom } from './array'\nimport {\n  closest,\n  select,\n  isVisible,\n  isDisabled,\n  getCS,\n  addClass,\n  removeClass,\n  hasClass,\n  setAttr,\n  removeAttr,\n  getAttr,\n  eventOn,\n  eventOff\n} from './dom'\nimport { isFunction, isNull, isNumber, isObject, isString, isUndefined } from './inspect'\n\nconst NAME = 'tooltip'\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BS_CLASS_PREFIX_REGEX = new RegExp(`\\\\b${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst TRANSITION_DURATION = 150\n\n// Modal `$root` hidden event\nconst MODAL_CLOSE_EVENT = 'bv::modal::hidden'\n// Modal container selector for appending tooltip/popover\nconst MODAL_SELECTOR = '.modal-content'\n\n// For dropdown sniffing\nconst DROPDOWN_CLASS = 'dropdown'\nconst DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'\n\nconst AttachmentMap = {\n  AUTO: 'auto',\n  TOP: 'top',\n  RIGHT: 'right',\n  BOTTOM: 'bottom',\n  LEFT: 'left',\n  TOPLEFT: 'top',\n  TOPRIGHT: 'top',\n  RIGHTTOP: 'right',\n  RIGHTBOTTOM: 'right',\n  BOTTOMLEFT: 'bottom',\n  BOTTOMRIGHT: 'bottom',\n  LEFTTOP: 'left',\n  LEFTBOTTOM: 'left'\n}\n\nconst OffsetMap = {\n  AUTO: 0,\n  TOPLEFT: -1,\n  TOP: 0,\n  TOPRIGHT: +1,\n  RIGHTTOP: -1,\n  RIGHT: 0,\n  RIGHTBOTTOM: +1,\n  BOTTOMLEFT: -1,\n  BOTTOM: 0,\n  BOTTOMRIGHT: +1,\n  LEFTTOP: -1,\n  LEFT: 0,\n  LEFTBOTTOM: +1\n}\n\nconst HoverState = {\n  SHOW: 'show',\n  OUT: 'out'\n}\n\nconst ClassName = {\n  FADE: 'fade',\n  SHOW: 'show'\n}\n\nconst Selector = {\n  TOOLTIP: '.tooltip',\n  TOOLTIP_INNER: '.tooltip-inner',\n  ARROW: '.arrow'\n}\n\n// Defaults\nconst Defaults = {\n  animation: true,\n  template:\n    '<div class=\"tooltip\" role=\"tooltip\">' +\n    '<div class=\"arrow\"></div>' +\n    '<div class=\"tooltip-inner\"></div>' +\n    '</div>',\n  trigger: 'hover focus',\n  title: '',\n  delay: 0,\n  html: false,\n  placement: 'top',\n  offset: 0,\n  arrowPadding: 6,\n  container: false,\n  fallbackPlacement: 'flip',\n  callbacks: {},\n  boundary: 'scrollParent',\n  boundaryPadding: 5,\n  variant: null,\n  customClass: null\n}\n\n// Transition event names\nconst TransitionEndEvents = {\n  WebkitTransition: ['webkitTransitionEnd'],\n  MozTransition: ['transitionend'],\n  OTransition: ['otransitionend', 'oTransitionEnd'],\n  transition: ['transitionend']\n}\n\n// Options for Native Event Listeners (since we never call preventDefault)\nconst EvtOpts = { passive: true, capture: false }\n\n// Client-side tip ID counter for aria-describedby attribute\n// Each tooltip requires a unique client side ID\nlet NEXTID = 1\n/* istanbul ignore next */\nconst generateId = name => `__BV_${name}_${NEXTID++}__`\n\n/*\n * ToolTip class definition\n */\nclass ToolTip {\n  // Main constructor\n  constructor(element, config, $parent) {\n    // New tooltip object\n    this.$isEnabled = true\n    this.$fadeTimeout = null\n    this.$hoverTimeout = null\n    this.$visibleInterval = null\n    this.$hoverState = ''\n    this.$activeTrigger = {}\n    this.$popper = null\n    this.$element = element\n    this.$tip = null\n    this.$id = generateId(this.constructor.NAME)\n    this.$parent = $parent || null\n    this.$root = $parent && $parent.$root ? $parent.$root : null\n    this.$routeWatcher = null\n    // We use a bound version of the following handlers for root/modal\n    // listeners to maintain the correct `this` context\n    this.$forceHide = this.forceHide.bind(this)\n    this.$doHide = this.doHide.bind(this)\n    this.$doShow = this.doShow.bind(this)\n    this.$doDisable = this.doDisable.bind(this)\n    this.$doEnable = this.doEnable.bind(this)\n    this._noop = noop.bind(this)\n    // Set the configuration\n    this.updateConfig(config)\n    // Destroy ourselves if the parent is destroyed\n    if ($parent) {\n      $parent.$once('hook:beforeDestroy', this.destroy.bind(this))\n    }\n  }\n\n  // NOTE: Overridden by PopOver class\n  static get Default() {\n    return Defaults\n  }\n\n  // NOTE: Overridden by PopOver class\n  static get NAME() {\n    return NAME\n  }\n\n  // Update config\n  updateConfig(config) {\n    // Merge config into defaults. We use `this` here because PopOver overrides Default\n    const updatedConfig = { ...this.constructor.Default, ...config }\n\n    // Sanitize delay\n    if (config.delay && isNumber(config.delay)) {\n      /* istanbul ignore next */\n      updatedConfig.delay = {\n        show: config.delay,\n        hide: config.delay\n      }\n    }\n\n    // Title for tooltip and popover\n    if (config.title && isNumber(config.title)) {\n      /* istanbul ignore next */\n      updatedConfig.title = config.title.toString()\n    }\n\n    // Content only for popover\n    if (config.content && isNumber(config.content)) {\n      /* istanbul ignore next */\n      updatedConfig.content = config.content.toString()\n    }\n\n    // Hide element original title if needed\n    this.fixTitle()\n    // Update the config\n    this.$config = updatedConfig\n    // Stop/Restart listening\n    this.unListen()\n    this.listen()\n  }\n\n  // Destroy this instance\n  destroy() {\n    // Stop listening to trigger events\n    this.unListen()\n    // Disable while open listeners/watchers\n    this.setWhileOpenListeners(false)\n    // Clear any timeouts\n    clearTimeout(this.$hoverTimeout)\n    this.$hoverTimeout = null\n    clearTimeout(this.$fadeTimeout)\n    this.$fadeTimeout = null\n    // Remove popper\n    if (this.$popper) {\n      this.$popper.destroy()\n    }\n    this.$popper = null\n    // Remove tip from document\n    if (this.$tip && this.$tip.parentElement) {\n      this.$tip.parentElement.removeChild(this.$tip)\n    }\n    this.$tip = null\n    // Null out other properties\n    this.$id = null\n    this.$isEnabled = null\n    this.$parent = null\n    this.$root = null\n    this.$element = null\n    this.$config = null\n    this.$hoverState = null\n    this.$activeTrigger = null\n    this.$forceHide = null\n    this.$doHide = null\n    this.$doShow = null\n    this.$doDisable = null\n    this.$doEnable = null\n  }\n\n  enable() {\n    // Create a non-cancelable BvEvent\n    const enabledEvt = new BvEvent('enabled', {\n      cancelable: false,\n      target: this.$element,\n      relatedTarget: null\n    })\n    this.$isEnabled = true\n    this.emitEvent(enabledEvt)\n  }\n\n  disable() {\n    // Create a non-cancelable BvEvent\n    const disabledEvt = new BvEvent('disabled', {\n      cancelable: false,\n      target: this.$element,\n      relatedTarget: null\n    })\n    this.$isEnabled = false\n    this.emitEvent(disabledEvt)\n  }\n\n  // Click toggler\n  toggle(event) {\n    if (!this.$isEnabled) {\n      /* istanbul ignore next */\n      return\n    }\n    // Prevent showing if tip/popover is on a dropdown and the menu is open\n    if (this.dropdownOpen()) {\n      /* istanbul ignore next */\n      return\n    }\n    /* istanbul ignore else */\n    if (event) {\n      this.$activeTrigger.click = !this.$activeTrigger.click\n\n      if (this.isWithActiveTrigger()) {\n        this.enter(null)\n      } else {\n        this.leave(null)\n      }\n    } else {\n      if (hasClass(this.getTipElement(), ClassName.SHOW)) {\n        this.leave(null)\n      } else {\n        this.enter(null)\n      }\n    }\n  }\n\n  // Show tooltip\n  show() {\n    if (!document.body.contains(this.$element) || !isVisible(this.$element)) {\n      // If trigger element isn't in the DOM or is not visible\n      return\n    }\n\n    // Prevent showing if tip/popover is on a dropdown and the menu is open\n    if (this.dropdownOpen()) {\n      /* istanbul ignore next */\n      return\n    }\n\n    // Build tooltip element (also sets this.$tip)\n    const tip = this.getTipElement()\n    this.fixTitle()\n    this.setContent(tip)\n    if (!this.isWithContent(tip)) {\n      // If no content, don't bother showing\n      /* istanbul ignore next */\n      this.$tip = null\n      /* istanbul ignore next */\n      return\n    }\n\n    // Set ID on tip and aria-describedby on element\n    setAttr(tip, 'id', this.$id)\n    this.addAriaDescribedby()\n\n    // Set animation on or off\n    if (this.$config.animation) {\n      addClass(tip, ClassName.FADE)\n    } else {\n      removeClass(tip, ClassName.FADE)\n    }\n\n    const placement = this.getPlacement()\n    const attachment = this.constructor.getAttachment(placement)\n    this.addAttachmentClass(attachment)\n\n    // Create a cancelable BvEvent\n    const showEvt = new BvEvent('show', {\n      cancelable: true,\n      target: this.$element,\n      relatedTarget: tip\n    })\n    this.emitEvent(showEvt)\n    if (showEvt.defaultPrevented) {\n      // Don't show if event cancelled\n      this.$tip = null\n      return\n    }\n\n    // Insert tooltip if needed\n    const container = this.getContainer()\n    if (!document.body.contains(tip)) {\n      container.appendChild(tip)\n    }\n\n    // Refresh popper\n    this.removePopper()\n    this.$popper = new Popper(this.$element, tip, this.getPopperConfig(placement, tip))\n\n    // Transitionend callback\n    const complete = () => {\n      if (this.$config.animation) {\n        this.fixTransition(tip)\n      }\n      const prevHoverState = this.$hoverState\n      this.$hoverState = null\n      if (prevHoverState === HoverState.OUT) {\n        this.leave(null)\n      }\n      // Create a non-cancelable BvEvent\n      const shownEvt = new BvEvent('shown', {\n        cancelable: false,\n        target: this.$element,\n        relatedTarget: tip\n      })\n      this.emitEvent(shownEvt)\n    }\n\n    // Enable while open listeners/watchers\n    this.setWhileOpenListeners(true)\n\n    // Show tip\n    addClass(tip, ClassName.SHOW)\n\n    // Start the transition/animation\n    this.transitionOnce(tip, complete)\n  }\n\n  // Handler for periodic visibility check\n  visibleCheck(on) {\n    clearInterval(this.$visibleInterval)\n    this.$visibleInterval = null\n    if (on) {\n      this.$visibleInterval = setInterval(() => {\n        const tip = this.$tip\n        if (tip && !isVisible(this.$element) && hasClass(tip, ClassName.SHOW)) {\n          // Element is no longer visible, so force-hide the tooltip\n          this.forceHide()\n        }\n      }, 100)\n    }\n  }\n\n  setWhileOpenListeners(on) {\n    // Modal close events\n    this.setModalListener(on)\n    // Dropdown open events (if we are attached to a dropdown)\n    this.setDropdownListener(on)\n    // Periodic $element visibility check\n    // For handling when tip is in <keepalive>, tabs, carousel, etc\n    this.visibleCheck(on)\n    // On-touch start listeners\n    this.setOnTouchStartListener(on)\n    if (on && /(focus|blur)/.test(this.$config.trigger)) {\n      // If focus moves between trigger element and tip container, don't close\n      eventOn(this.$tip, 'focusout', this, EvtOpts)\n    } else {\n      eventOff(this.$tip, 'focusout', this, EvtOpts)\n    }\n  }\n\n  // Force hide of tip (internal method)\n  forceHide() {\n    if (!this.$tip || !hasClass(this.$tip, ClassName.SHOW)) {\n      /* istanbul ignore next */\n      return\n    }\n    // Disable while open listeners/watchers\n    this.setWhileOpenListeners(false)\n    // Clear any hover enter/leave event\n    clearTimeout(this.$hoverTimeout)\n    this.$hoverTimeout = null\n    this.$hoverState = ''\n    this.$activeTrigger = {}\n    // Hide the tip\n    this.hide(null, true)\n  }\n\n  // Hide tooltip\n  hide(callback, force) {\n    const tip = this.$tip\n    if (!tip) {\n      /* istanbul ignore next */\n      return\n    }\n\n    // Create a cancelable BvEvent\n    const hideEvt = new BvEvent('hide', {\n      // We disable cancelling if force is true\n      cancelable: !force,\n      target: this.$element,\n      relatedTarget: tip\n    })\n    this.emitEvent(hideEvt)\n    if (hideEvt.defaultPrevented) {\n      // Don't hide if event cancelled\n      return\n    }\n\n    // Transitionend callback\n    const complete = () => {\n      if (this.$hoverState !== HoverState.SHOW && tip.parentNode) {\n        // Remove tip from DOM, and force recompile on next show\n        tip.parentNode.removeChild(tip)\n        this.removeAriaDescribedby()\n        this.removePopper()\n        this.$tip = null\n      }\n      if (callback) {\n        /* istanbul ignore next */\n        callback()\n      }\n      // Create a non-cancelable BvEvent\n      const hiddenEvt = new BvEvent('hidden', {\n        cancelable: false,\n        target: this.$element,\n        relatedTarget: null\n      })\n      this.emitEvent(hiddenEvt)\n    }\n\n    // Disable while open listeners/watchers\n    this.setWhileOpenListeners(false)\n\n    // If forced close, disable animation\n    if (force) {\n      removeClass(tip, ClassName.FADE)\n    }\n    // Hide tip\n    removeClass(tip, ClassName.SHOW)\n\n    // Clear any active triggers\n    this.$activeTrigger = {}\n\n    // Start the hide transition\n    this.transitionOnce(tip, complete)\n\n    this.$hoverState = ''\n  }\n\n  emitEvent(evt) {\n    const evtName = evt.type\n    const $root = this.$root\n    if ($root && $root.$emit) {\n      // Emit an event on $root\n      $root.$emit(`bv::${this.constructor.NAME}::${evtName}`, evt)\n    }\n    const callbacks = this.$config.callbacks || {}\n    if (isFunction(callbacks[evtName])) {\n      callbacks[evtName](evt)\n    }\n  }\n\n  getContainer() {\n    const container = this.$config.container\n    const body = document.body\n    // If we are in a modal, we append to the modal instead of body,\n    // unless a container is specified\n    return container === false\n      ? closest(MODAL_SELECTOR, this.$element) || body\n      : select(container, body) || body\n  }\n\n  // Will be overridden by PopOver if needed\n  addAriaDescribedby() {\n    // Add aria-describedby on trigger element, without removing any other IDs\n    let desc = getAttr(this.$element, 'aria-describedby') || ''\n    desc = desc\n      .split(/\\s+/)\n      .concat(this.$id)\n      .join(' ')\n      .trim()\n    setAttr(this.$element, 'aria-describedby', desc)\n  }\n\n  // Will be overridden by PopOver if needed\n  removeAriaDescribedby() {\n    let desc = getAttr(this.$element, 'aria-describedby') || ''\n    desc = desc\n      .split(/\\s+/)\n      .filter(d => d !== this.$id)\n      .join(' ')\n      .trim()\n    if (desc) {\n      /* istanbul ignore next */\n      setAttr(this.$element, 'aria-describedby', desc)\n    } else {\n      removeAttr(this.$element, 'aria-describedby')\n    }\n  }\n\n  removePopper() {\n    if (this.$popper) {\n      this.$popper.destroy()\n    }\n    this.$popper = null\n  }\n\n  transitionOnce(tip, complete) {\n    const transEvents = this.getTransitionEndEvents()\n    let called = false\n    clearTimeout(this.$fadeTimeout)\n    this.$fadeTimeout = null\n    const fnOnce = () => {\n      if (called) {\n        /* istanbul ignore next */\n        return\n      }\n      called = true\n      clearTimeout(this.$fadeTimeout)\n      this.$fadeTimeout = null\n      transEvents.forEach(evtName => {\n        eventOff(tip, evtName, fnOnce, EvtOpts)\n      })\n      // Call complete callback\n      complete()\n    }\n    if (hasClass(tip, ClassName.FADE)) {\n      transEvents.forEach(evtName => {\n        eventOn(tip, evtName, fnOnce, EvtOpts)\n      })\n      // Fallback to setTimeout()\n      this.$fadeTimeout = setTimeout(fnOnce, TRANSITION_DURATION)\n    } else {\n      fnOnce()\n    }\n  }\n\n  // What transitionend event(s) to use? (returns array of event names)\n  getTransitionEndEvents() {\n    for (const name in TransitionEndEvents) {\n      if (!isUndefined(this.$element.style[name])) {\n        return TransitionEndEvents[name]\n      }\n    }\n    // Fallback\n    /* istanbul ignore next */\n    return []\n  }\n\n  /* istanbul ignore next */\n  update() {\n    if (!isNull(this.$popper)) {\n      this.$popper.scheduleUpdate()\n    }\n  }\n\n  // NOTE: Overridden by PopOver class\n  isWithContent(tip) {\n    tip = tip || this.$tip\n    if (!tip) {\n      /* istanbul ignore next */\n      return false\n    }\n    return Boolean((select(Selector.TOOLTIP_INNER, tip) || {}).innerHTML)\n  }\n\n  // NOTE: Overridden by PopOver class\n  addAttachmentClass(attachment) {\n    addClass(this.getTipElement(), `${CLASS_PREFIX}-${attachment}`)\n  }\n\n  getTipElement() {\n    if (!this.$tip) {\n      // Try and compile user supplied template, or fallback to default template\n      this.$tip =\n        this.compileTemplate(this.$config.template) ||\n        this.compileTemplate(this.constructor.Default.template)\n    }\n    // Add tab index so tip can be focused, and to allow it to be\n    // set as relatedTarget in focusin/out events\n    this.$tip.tabIndex = -1\n    // Add variant if specified\n    if (this.$config.variant) {\n      addClass(this.$tip, `b-${this.constructor.NAME}-${this.$config.variant}`)\n    }\n    if (this.$config.customClass) {\n      addClass(this.$tip, String(this.$config.customClass))\n    }\n    return this.$tip\n  }\n\n  compileTemplate(html) {\n    if (!html || !isString(html)) {\n      /* istanbul ignore next */\n      return null\n    }\n    let div = document.createElement('div')\n    div.innerHTML = html.trim()\n    const node = div.firstElementChild ? div.removeChild(div.firstElementChild) : null\n    div = null\n    return node\n  }\n\n  // NOTE: Overridden by PopOver class\n  setContent(tip) {\n    this.setElementContent(select(Selector.TOOLTIP_INNER, tip), this.getTitle())\n    removeClass(tip, ClassName.FADE)\n    removeClass(tip, ClassName.SHOW)\n  }\n\n  setElementContent(container, content) {\n    if (!container) {\n      // If container element doesn't exist, just return\n      /* istanbul ignore next */\n      return\n    }\n    const allowHtml = this.$config.html\n    if (isObject(content) && content.nodeType) {\n      // Content is a DOM node\n      if (allowHtml) {\n        if (content.parentElement !== container) {\n          container.innerHTML = ''\n          container.appendChild(content)\n        }\n      } else {\n        /* istanbul ignore next */\n        container.innerText = content.innerText\n      }\n    } else {\n      // We have a plain HTML string or Text\n      container[allowHtml ? 'innerHTML' : 'innerText'] = content\n    }\n  }\n\n  // NOTE: Overridden by PopOver class\n  getTitle() {\n    let title = this.$config.title || ''\n    if (isFunction(title)) {\n      // Call the function to get the title value\n      /* istanbul ignore next */\n      title = title(this.$element)\n    }\n    if (isObject(title) && title.nodeType && !title.innerHTML.trim()) {\n      // We have a DOM node, but without inner content,\n      // so just return empty string\n      /* istanbul ignore next */\n      title = ''\n    }\n    if (isString(title)) {\n      title = title.trim()\n    }\n    if (!title) {\n      // If an explicit title is not given, try element's title attributes\n      title = getAttr(this.$element, 'title') || getAttr(this.$element, 'data-original-title') || ''\n      title = title.trim()\n    }\n\n    return title\n  }\n\n  static getAttachment(placement) {\n    return AttachmentMap[placement.toUpperCase()]\n  }\n\n  listen() {\n    const el = this.$element\n    /* istanbul ignore next */\n    if (!el) {\n      return\n    }\n    const triggers = this.$config.trigger.trim().split(/\\s+/)\n\n    // Listen for global show/hide events\n    this.setRootListener(true)\n\n    // Using `this` as the handler will get automatically directed to\n    // this.handleEvent and maintain our binding to `this`\n    triggers.forEach(trigger => {\n      if (trigger === 'click') {\n        eventOn(el, 'click', this, EvtOpts)\n      } else if (trigger === 'focus') {\n        eventOn(el, 'focusin', this, EvtOpts)\n        eventOn(el, 'focusout', this, EvtOpts)\n      } else if (trigger === 'blur') {\n        // Used to close $tip when element looses focus\n        eventOn(el, 'focusout', this, EvtOpts)\n      } else if (trigger === 'hover') {\n        eventOn(el, 'mouseenter', this, EvtOpts)\n        eventOn(el, 'mouseleave', this, EvtOpts)\n      }\n    }, this)\n  }\n\n  unListen() {\n    const el = this.$element\n    /* istanbul ignore next */\n    if (!el) {\n      return\n    }\n    const events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave']\n    // Using `this` as the handler will get automatically directed to this.handleEvent\n    events.forEach(evt => {\n      eventOff(el, evt, this, EvtOpts)\n    }, this)\n\n    // Stop listening for global show/hide/enable/disable events\n    this.setRootListener(false)\n  }\n\n  // This special method allows us to use `this` as the event handlers\n  handleEvent(e) {\n    // If disabled, don't do anything\n    // If tip is shown before element gets disabled, then tip will not\n    // close until no longer disabled or forcefully closed\n    if (isDisabled(this.$element)) {\n      /* istanbul ignore next */\n      return\n    }\n    // Exit if not enabled\n    if (!this.$isEnabled) {\n      return\n    }\n    // Prevent showing if tip/popover is on a dropdown and the menu is open\n    if (this.dropdownOpen()) {\n      /* istanbul ignore next */\n      return\n    }\n\n    const type = e.type\n    const target = e.target\n    const relatedTarget = e.relatedTarget\n\n    const $element = this.$element\n    const $tip = this.$tip\n\n    if (type === 'click') {\n      this.toggle(e)\n    } else if (type === 'focusin' || type === 'mouseenter') {\n      this.enter(e)\n    } else if (type === 'focusout') {\n      // `target` is the element which is loosing focus and\n      // `relatedTarget` is the element gaining focus\n\n      // If focus moves from `$element` to `$tip`, don't trigger a leave\n      if ($tip && $element && $element.contains(target) && $tip.contains(relatedTarget)) {\n        /* istanbul ignore next */\n        return\n      }\n      // If focus moves from `$tip` to `$element`, don't trigger a leave\n      if ($tip && $element && $tip.contains(target) && $element.contains(relatedTarget)) {\n        /* istanbul ignore next */\n        return\n      }\n      // If focus moves within `$tip`, don't trigger a leave\n      if ($tip && $tip.contains(target) && $tip.contains(relatedTarget)) {\n        /* istanbul ignore next */\n        return\n      }\n      // If focus moves within `$element`, don't trigger a leave\n      if ($element && $element.contains(target) && $element.contains(relatedTarget)) {\n        /* istanbul ignore next */\n        return\n      }\n      // Otherwise trigger a leave\n      this.leave(e)\n    } else if (type === 'mouseleave') {\n      this.leave(e)\n    }\n  }\n\n  /* istanbul ignore next */\n  setModalListener(on) {\n    const el = this.$element\n    if (!el || !this.$root) {\n      return\n    }\n    const modal = closest(MODAL_SELECTOR, el)\n    // If we are not in a modal, don't worry\n    if (!modal) {\n      return\n    }\n    // We can listen for modal hidden events on `$root`\n    this.$root[on ? '$on' : '$off'](MODAL_CLOSE_EVENT, this.$forceHide)\n  }\n\n  /* istanbul ignore next */\n  setDropdownListener(on) {\n    const el = this.$element\n    if (!el || !this.$root) {\n      return\n    }\n    // If we are not on a dropdown menu, don't worry\n    if (!hasClass(el, DROPDOWN_CLASS)) {\n      return\n    }\n    // We can listen for dropdown shown events on it's instance\n    if (el && el.__vue__) {\n      el.__vue__[on ? '$on' : '$off']('shown', this.$forceHide)\n    }\n  }\n\n  setRootListener(on) {\n    // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n    const $root = this.$root\n    if ($root) {\n      const method = on ? '$on' : '$off'\n      $root[method](`bv::hide::${this.constructor.NAME}`, this.$doHide)\n      $root[method](`bv::show::${this.constructor.NAME}`, this.$doShow)\n      $root[method](`bv::disable::${this.constructor.NAME}`, this.$doDisable)\n      $root[method](`bv::enable::${this.constructor.NAME}`, this.$doEnable)\n    }\n  }\n\n  dropdownOpen() {\n    // Returns true if trigger is a dropdown and the dropdown menu is open\n    return hasClass(this.$element, DROPDOWN_CLASS) && select(DROPDOWN_OPEN_SELECTOR, this.$element)\n  }\n\n  // Programmatically hide tooltip or popover\n  doHide(id) {\n    if (!id) {\n      // Close all tooltips or popovers\n      this.forceHide()\n    } else if (this.$element && this.$element.id && this.$element.id === id) {\n      // Close this specific tooltip or popover\n      this.hide()\n    }\n  }\n\n  // Programmatically show tooltip or popover\n  doShow(id) {\n    if (!id) {\n      // Open all tooltips or popovers\n      this.show()\n    } else if (id && this.$element && this.$element.id && this.$element.id === id) {\n      // Show this specific tooltip or popover\n      this.show()\n    }\n  }\n\n  // Programmatically disable tooltip or popover\n  doDisable(id) {\n    if (!id) {\n      // Disable all tooltips or popovers\n      this.disable()\n    } else if (this.$element && this.$element.id && this.$element.id === id) {\n      // Disable this specific tooltip or popover\n      this.disable()\n    }\n  }\n\n  // Programmatically enable tooltip or popover\n  doEnable(id) {\n    if (!id) {\n      // Enable all tooltips or popovers\n      this.enable()\n    } else if (this.$element && this.$element.id && this.$element.id === id) {\n      // Enable this specific tooltip or popover\n      this.enable()\n    }\n  }\n\n  setOnTouchStartListener(on) {\n    // If this is a touch-enabled device we add extra empty\n    // `mouseover` listeners to the body's immediate children\n    // Only needed because of broken event delegation on iOS\n    // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n    if ('ontouchstart' in document.documentElement) {\n      /* istanbul ignore next: JSDOM does not support `ontouchstart` event */\n      arrayFrom(document.body.children).forEach(el => {\n        if (on) {\n          eventOn(el, 'mouseover', this._noop)\n        } else {\n          eventOff(el, 'mouseover', this._noop)\n        }\n      })\n    }\n  }\n\n  fixTitle() {\n    const el = this.$element\n    if (getAttr(el, 'title') || !isString(getAttr(el, 'data-original-title'))) {\n      setAttr(el, 'data-original-title', getAttr(el, 'title') || '')\n      setAttr(el, 'title', '')\n    }\n  }\n\n  // Enter handler\n  enter(e) {\n    if (e) {\n      this.$activeTrigger[e.type === 'focusin' ? 'focus' : 'hover'] = true\n    }\n    if (hasClass(this.getTipElement(), ClassName.SHOW) || this.$hoverState === HoverState.SHOW) {\n      this.$hoverState = HoverState.SHOW\n      return\n    }\n    clearTimeout(this.$hoverTimeout)\n    this.$hoverState = HoverState.SHOW\n    if (!this.$config.delay || !this.$config.delay.show) {\n      this.show()\n      return\n    }\n    this.$hoverTimeout = setTimeout(() => {\n      if (this.$hoverState === HoverState.SHOW) {\n        this.show()\n      }\n    }, this.$config.delay.show)\n  }\n\n  // Leave handler\n  leave(e) {\n    if (e) {\n      this.$activeTrigger[e.type === 'focusout' ? 'focus' : 'hover'] = false\n      if (e.type === 'focusout' && /blur/.test(this.$config.trigger)) {\n        // Special case for `blur`: we clear out the other triggers\n        this.$activeTrigger.click = false\n        this.$activeTrigger.hover = false\n      }\n    }\n    if (this.isWithActiveTrigger()) {\n      return\n    }\n    clearTimeout(this.$hoverTimeout)\n    this.$hoverState = HoverState.OUT\n    if (!this.$config.delay || !this.$config.delay.hide) {\n      this.hide()\n      return\n    }\n    this.$hoverTimeout = setTimeout(() => {\n      if (this.$hoverState === HoverState.OUT) {\n        this.hide()\n      }\n    }, this.$config.delay.hide)\n  }\n\n  getPopperConfig(placement, tip) {\n    return {\n      placement: this.constructor.getAttachment(placement),\n      modifiers: {\n        offset: { offset: this.getOffset(placement, tip) },\n        flip: { behavior: this.$config.fallbackPlacement },\n        arrow: { element: '.arrow' },\n        preventOverflow: {\n          padding: this.$config.boundaryPadding,\n          boundariesElement: this.$config.boundary\n        }\n      },\n      onCreate: data => {\n        // Handle flipping arrow classes\n        /* istanbul ignore next */\n        if (data.originalPlacement !== data.placement) {\n          this.handlePopperPlacementChange(data)\n        }\n      },\n      onUpdate: data => {\n        // Handle flipping arrow classes\n        /* istanbul ignore next */\n        this.handlePopperPlacementChange(data)\n      }\n    }\n  }\n\n  /* istanbul ignore next */\n  getOffset(placement, tip) {\n    if (!this.$config.offset) {\n      const arrow = select(Selector.ARROW, tip)\n      const arrowOffset = parseFloat(getCS(arrow).width) + parseFloat(this.$config.arrowPadding)\n      switch (OffsetMap[placement.toUpperCase()]) {\n        case +1:\n          return `+50%p - ${arrowOffset}px`\n        case -1:\n          return `-50%p + ${arrowOffset}px`\n        default:\n          return 0\n      }\n    }\n    return this.$config.offset\n  }\n\n  getPlacement() {\n    const placement = this.$config.placement\n    if (isFunction(placement)) {\n      /* istanbul ignore next */\n      return placement.call(this, this.$tip, this.$element)\n    }\n    return placement\n  }\n\n  isWithActiveTrigger() {\n    for (const trigger in this.$activeTrigger) {\n      if (this.$activeTrigger[trigger]) {\n        return true\n      }\n    }\n    return false\n  }\n\n  // NOTE: Overridden by PopOver class\n  /* istanbul ignore next */\n  cleanTipClass() {\n    const tip = this.getTipElement()\n    const tabClass = tip.className.match(BS_CLASS_PREFIX_REGEX)\n    if (!isNull(tabClass) && tabClass.length > 0) {\n      tabClass.forEach(cls => {\n        removeClass(tip, cls)\n      })\n    }\n  }\n\n  /* istanbul ignore next */\n  handlePopperPlacementChange(data) {\n    this.cleanTipClass()\n    this.addAttachmentClass(this.constructor.getAttachment(data.placement))\n  }\n\n  /* istanbul ignore next */\n  fixTransition(tip) {\n    const initConfigAnimation = this.$config.animation || false\n    if (!isNull(getAttr(tip, 'x-placement'))) {\n      return\n    }\n    removeClass(tip, ClassName.FADE)\n    this.$config.animation = false\n    this.hide()\n    this.show()\n    this.$config.animation = initConfigAnimation\n  }\n}\n\nexport default ToolTip\n","import ToolTip from './tooltip.class'\nimport { select, addClass, removeClass, getAttr } from './dom'\nimport { isFunction, isNull, isObject, isString } from './inspect'\n\nconst NAME = 'popover'\nconst CLASS_PREFIX = 'bs-popover'\nconst BS_CLASS_PREFIX_REGEX = new RegExp(`\\\\b${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Defaults = {\n  ...ToolTip.Default,\n  placement: 'right',\n  trigger: 'click',\n  content: '',\n  template:\n    '<div class=\"popover\" role=\"tooltip\">' +\n    '<div class=\"arrow\"></div>' +\n    '<h3 class=\"popover-header\"></h3>' +\n    '<div class=\"popover-body\"></div></div>'\n}\n\nconst ClassName = {\n  FADE: 'fade',\n  SHOW: 'show'\n}\n\nconst Selector = {\n  TITLE: '.popover-header',\n  CONTENT: '.popover-body'\n}\n\nclass PopOver extends ToolTip {\n  // --- Getter overrides ---\n\n  static get Default() {\n    return Defaults\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // --- Method overrides ---\n\n  isWithContent(tip) {\n    tip = tip || this.$tip\n    if (!tip) {\n      /* istanbul ignore next */\n      return false\n    }\n    const hasTitle = Boolean((select(Selector.TITLE, tip) || {}).innerHTML)\n    const hasContent = Boolean((select(Selector.CONTENT, tip) || {}).innerHTML)\n    return hasTitle || hasContent\n  }\n\n  addAttachmentClass(attachment) /* istanbul ignore next */ {\n    addClass(this.getTipElement(), `${CLASS_PREFIX}-${attachment}`)\n  }\n\n  setContent(tip) {\n    // we use append for html objects to maintain js events/components\n    this.setElementContent(select(Selector.TITLE, tip), this.getTitle())\n    this.setElementContent(select(Selector.CONTENT, tip), this.getContent())\n\n    removeClass(tip, ClassName.FADE)\n    removeClass(tip, ClassName.SHOW)\n  }\n\n  // This method may look identical to ToolTip version, but it uses a different RegEx defined above\n  cleanTipClass() /* istanbul ignore next */ {\n    const tip = this.getTipElement()\n    const tabClass = tip.className.match(BS_CLASS_PREFIX_REGEX)\n    if (!isNull(tabClass) && tabClass.length > 0) {\n      tabClass.forEach(cls => {\n        removeClass(tip, cls)\n      })\n    }\n  }\n\n  getTitle() {\n    let title = this.$config.title || ''\n    /* istanbul ignore next */\n    if (isFunction(title)) {\n      title = title(this.$element)\n    }\n    /* istanbul ignore next */\n    if (isObject(title) && title.nodeType && !title.innerHTML.trim()) {\n      // We have a dom node, but without inner content, so just return an empty string\n      title = ''\n    }\n    if (isString(title)) {\n      title = title.trim()\n    }\n    if (!title) {\n      // Try and grab element's title attribute\n      title = getAttr(this.$element, 'title') || getAttr(this.$element, 'data-original-title') || ''\n      title = title.trim()\n    }\n    return title\n  }\n\n  // New methods\n\n  getContent() {\n    let content = this.$config.content || ''\n    /* istanbul ignore next */\n    if (isFunction(content)) {\n      content = content(this.$element)\n    }\n    /* istanbul ignore next */\n    if (isObject(content) && content.nodeType && !content.innerHTML.trim()) {\n      // We have a dom node, but without inner content, so just return an empty string\n      content = ''\n    }\n    if (isString(content)) {\n      content = content.trim()\n    }\n    return content\n  }\n}\n\nexport default PopOver\n","/*\n * Tooltip/Popover component mixin\n * Common props\n */\n\nimport observeDom from '../utils/observe-dom'\nimport { isElement, getById } from '../utils/dom'\nimport { isArray, isFunction, isObject, isString } from '../utils/inspect'\nimport { HTMLElement } from '../utils/safe-types'\n\n// --- Constants ---\n\nconst PLACEMENTS = {\n  top: 'top',\n  topleft: 'topleft',\n  topright: 'topright',\n  right: 'right',\n  righttop: 'righttop',\n  rightbottom: 'rightbottom',\n  bottom: 'bottom',\n  bottomleft: 'bottomleft',\n  bottomright: 'bottomright',\n  left: 'left',\n  lefttop: 'lefttop',\n  leftbottom: 'leftbottom',\n  auto: 'auto'\n}\n\nconst OBSERVER_CONFIG = {\n  subtree: true,\n  childList: true,\n  characterData: true,\n  attributes: true,\n  attributeFilter: ['class', 'style']\n}\n\n// @vue/component\nexport default {\n  props: {\n    target: {\n      // String ID of element, or element/component reference\n      type: [String, Object, HTMLElement, Function]\n      // default: undefined\n    },\n    offset: {\n      type: [Number, String],\n      default: 0\n    },\n    noFade: {\n      type: Boolean,\n      default: false\n    },\n    container: {\n      // String ID of container, if null body is used (default)\n      type: String,\n      default: null\n    },\n    show: {\n      type: Boolean,\n      default: false\n    },\n    disabled: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      // semaphore for preventing multiple show events\n      localShow: false\n    }\n  },\n  computed: {\n    baseConfig() {\n      const cont = this.container\n      const delay = isObject(this.delay) ? this.delay : parseInt(this.delay, 10) || 0\n      return {\n        // Title prop\n        title: (this.title || '').trim() || '',\n        // Content prop (if popover)\n        content: (this.content || '').trim() || '',\n        // Tooltip/Popover placement\n        placement: PLACEMENTS[this.placement] || 'auto',\n        // Tooltip/popover fallback placement\n        fallbackPlacement: this.fallbackPlacement || 'flip',\n        // Container currently needs to be an ID with '#' prepended, if null then body is used\n        container: cont ? (/^#/.test(cont) ? cont : `#${cont}`) : false,\n        // boundariesElement passed to popper\n        boundary: this.boundary,\n        // boundariesElement padding passed to popper\n        boundaryPadding: this.boundaryPadding,\n        // Show/Hide delay\n        delay: delay || 0,\n        // Offset can be css distance. if no units, pixels are assumed\n        offset: this.offset || 0,\n        // Disable fade Animation?\n        animation: !this.noFade,\n        // Variant\n        variant: this.variant,\n        // Custom class\n        customClass: this.customClass,\n        // Open/Close Trigger(s)\n        trigger: isArray(this.triggers) ? this.triggers.join(' ') : this.triggers,\n        // Callbacks so we can trigger events on component\n        callbacks: {\n          show: this.onShow,\n          shown: this.onShown,\n          hide: this.onHide,\n          hidden: this.onHidden,\n          enabled: this.onEnabled,\n          disabled: this.onDisabled\n        }\n      }\n    }\n  },\n  watch: {\n    show(show, old) {\n      if (show !== old) {\n        show ? this.onOpen() : this.onClose()\n      }\n    },\n    disabled(disabled, old) {\n      if (disabled !== old) {\n        disabled ? this.onDisable() : this.onEnable()\n      }\n    },\n    localShow(show, old) {\n      if (show !== this.show) {\n        this.$emit('update:show', show)\n      }\n    }\n  },\n  created() {\n    // Create non-reactive property\n    this._toolpop = null\n    this._obs_title = null\n    this._obs_content = null\n  },\n  mounted() {\n    // We do this in a next tick to ensure DOM has rendered first\n    this.$nextTick(() => {\n      // Instantiate ToolTip/PopOver on target\n      // The createToolpop method must exist in main component\n      if (this.createToolpop()) {\n        if (this.disabled) {\n          // Initially disabled\n          this.onDisable()\n        }\n        // Listen to open signals from others\n        this.$on('open', this.onOpen)\n        // Listen to close signals from others\n        this.$on('close', this.onClose)\n        // Listen to disable signals from others\n        this.$on('disable', this.onDisable)\n        // Listen to enable signals from others\n        this.$on('enable', this.onEnable)\n        // Observe content Child changes so we can notify popper of possible size change\n        this.setObservers(true)\n        // Set initially open state\n        if (this.show) {\n          this.onOpen()\n        }\n      }\n    })\n  },\n  updated() {\n    // If content/props changes, etc\n    if (this._toolpop) {\n      this._toolpop.updateConfig(this.getConfig())\n    }\n  },\n  activated() /* istanbul ignore next: can't easily test in JSDOM */ {\n    // Called when component is inside a <keep-alive> and component brought offline\n    this.setObservers(true)\n  },\n  deactivated() /* istanbul ignore next: can't easily test in JSDOM */ {\n    // Called when component is inside a <keep-alive> and component taken offline\n    if (this._toolpop) {\n      this.setObservers(false)\n      this._toolpop.hide()\n    }\n  },\n  beforeDestroy() {\n    // Shutdown our local event listeners\n    this.$off('open', this.onOpen)\n    this.$off('close', this.onClose)\n    this.$off('disable', this.onDisable)\n    this.$off('enable', this.onEnable)\n    this.setObservers(false)\n    // bring our content back if needed\n    this.bringItBack()\n    if (this._toolpop) {\n      this._toolpop.destroy()\n      this._toolpop = null\n    }\n  },\n  methods: {\n    getConfig() {\n      const cfg = { ...this.baseConfig }\n      if (this.$refs.title && this.$refs.title.innerHTML.trim()) {\n        // If slot has content, it overrides 'title' prop\n        // We use the DOM node as content to allow components!\n        cfg.title = this.$refs.title\n        cfg.html = true\n      }\n      if (this.$refs.content && this.$refs.content.innerHTML.trim()) {\n        // If slot has content, it overrides 'content' prop\n        // We use the DOM node as content to allow components!\n        cfg.content = this.$refs.content\n        cfg.html = true\n      }\n      return cfg\n    },\n    onOpen() {\n      if (this._toolpop && !this.localShow) {\n        this.localShow = true\n        this._toolpop.show()\n      }\n    },\n    onClose(callback) {\n      // What is callback for ? it is not documented\n      /* istanbul ignore else */\n      if (this._toolpop && this.localShow) {\n        this._toolpop.hide(callback)\n      } else if (isFunction(callback)) {\n        // Is this even used?\n        callback()\n      }\n    },\n    onDisable() {\n      if (this._toolpop) {\n        this._toolpop.disable()\n      }\n    },\n    onEnable() {\n      if (this._toolpop) {\n        this._toolpop.enable()\n      }\n    },\n    updatePosition() {\n      /* istanbul ignore next: can't test in JSDOM until mutation observer is implemented */\n      if (this._toolpop) {\n        // Instruct popper to reposition popover if necessary\n        this._toolpop.update()\n      }\n    },\n    getTarget() {\n      let target = this.target\n      if (isFunction(target)) {\n        /* istanbul ignore next */\n        target = target()\n      }\n      /* istanbul ignore else */\n      if (isString(target)) {\n        // Assume ID of element\n        return getById(target)\n      } else if (isObject(target) && isElement(target.$el)) {\n        // Component reference\n        /* istanbul ignore next */\n        return target.$el\n      } else if (isObject(target) && isElement(target)) {\n        // Element reference\n        /* istanbul ignore next */\n        return target\n      }\n      /* istanbul ignore next */\n      return null\n    },\n    // Callbacks called by Tooltip/Popover class instance\n    onShow(evt) {\n      this.$emit('show', evt)\n      this.localShow = !(evt && evt.defaultPrevented)\n    },\n    onShown(evt) {\n      this.setObservers(true)\n      this.$emit('shown', evt)\n      this.localShow = true\n    },\n    onHide(evt) {\n      this.$emit('hide', evt)\n      this.localShow = !!(evt && evt.defaultPrevented)\n    },\n    onHidden(evt) {\n      this.setObservers(false)\n      // bring our content back if needed to keep Vue happy\n      // Tooltip class will move it back to tip when shown again\n      this.bringItBack()\n      this.$emit('hidden', evt)\n      this.localShow = false\n    },\n    onEnabled(evt) {\n      /* istanbul ignore next */\n      if (!evt || evt.type !== 'enabled') {\n        // Prevent possible endless loop if user mistakenly fires enabled instead of enable\n        return\n      }\n      this.$emit('update:disabled', false)\n      this.$emit('disabled')\n    },\n    onDisabled(evt) {\n      /* istanbul ignore next */\n      if (!evt || evt.type !== 'disabled') {\n        // Prevent possible endless loop if user mistakenly fires disabled instead of disable\n        return\n      }\n      this.$emit('update:disabled', true)\n      this.$emit('enabled')\n    },\n    bringItBack() {\n      // bring our content back if needed to keep Vue happy\n      if (this.$el && this.$refs.title) {\n        this.$el.appendChild(this.$refs.title)\n      }\n      if (this.$el && this.$refs.content) {\n        this.$el.appendChild(this.$refs.content)\n      }\n    },\n    setObservers(on) {\n      if (on) {\n        if (this.$refs.title) {\n          this._obs_title = observeDom(\n            this.$refs.title,\n            this.updatePosition.bind(this),\n            OBSERVER_CONFIG\n          )\n        }\n        if (this.$refs.content) {\n          this._obs_content = observeDom(\n            this.$refs.content,\n            this.updatePosition.bind(this),\n            OBSERVER_CONFIG\n          )\n        }\n      } else {\n        if (this._obs_title) {\n          this._obs_title.disconnect()\n          this._obs_title = null\n        }\n        if (this._obs_content) {\n          this._obs_content.disconnect()\n          this._obs_content = null\n        }\n      }\n    }\n  }\n}\n","import Vue from '../../utils/vue'\nimport PopOver from '../../utils/popover.class'\nimport warn from '../../utils/warn'\nimport { isArray, arrayIncludes } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { HTMLElement } from '../../utils/safe-types'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport toolpopMixin from '../../mixins/toolpop'\n\nconst NAME = 'BPopover'\n\nexport const props = {\n  title: {\n    type: String,\n    default: ''\n  },\n  content: {\n    type: String,\n    default: ''\n  },\n  triggers: {\n    type: [String, Array],\n    default: 'click'\n  },\n  placement: {\n    type: String,\n    default: 'right'\n  },\n  fallbackPlacement: {\n    type: [String, Array],\n    default: 'flip',\n    validator(value) {\n      return isArray(value) || arrayIncludes(['flip', 'clockwise', 'counterclockwise'], value)\n    }\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  customClass: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'customClass')\n  },\n  delay: {\n    type: [Number, Object, String],\n    default: () => getComponentConfig(NAME, 'delay')\n  },\n  boundary: {\n    // String: scrollParent, window, or viewport\n    // Element: element reference\n    type: [String, HTMLElement],\n    default: () => getComponentConfig(NAME, 'boundary')\n  },\n  boundaryPadding: {\n    type: Number,\n    default: () => getComponentConfig(NAME, 'boundaryPadding')\n  }\n}\n\n// @vue/component\nexport const BPopover = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [toolpopMixin, normalizeSlotMixin],\n  props,\n  methods: {\n    createToolpop() {\n      // getTarget is in toolpop mixin\n      const target = this.getTarget()\n      /* istanbul ignore else */\n      if (target) {\n        this._toolpop = new PopOver(target, this.getConfig(), this)\n      } else {\n        this._toolpop = null\n        warn(\"b-popover: 'target' element not found!\")\n      }\n      return this._toolpop\n    }\n  },\n  render(h) {\n    return h(\n      'div',\n      {\n        class: ['d-none'],\n        style: { display: 'none' },\n        attrs: { 'aria-hidden': true }\n      },\n      [\n        h('div', { ref: 'title' }, this.normalizeSlot('title')),\n        h('div', { ref: 'content' }, this.normalizeSlot('default'))\n      ]\n    )\n  }\n})\n\nexport default BPopover\n","import Popper from 'popper.js'\nimport PopOver from '../../utils/popover.class'\nimport warn from '../../utils/warn'\nimport { getComponentConfig } from '../../utils/config'\nimport { isBrowser } from '../../utils/env'\nimport { isFunction, isObject, isString } from '../../utils/inspect'\nimport { keys } from '../../utils/object'\n\n// Key which we use to store tooltip object on element\nconst BV_POPOVER = '__BV_PopOver__'\n\n// Valid event triggers\nconst validTriggers = {\n  focus: true,\n  hover: true,\n  click: true,\n  blur: true\n}\n\n// Directive modifier test regular expressions. Pre-compile for performance\nconst htmlRE = /^html$/\nconst noFadeRE = /^nofade$/i\nconst placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/\nconst boundaryRE = /^(window|viewport|scrollParent)$/\nconst delayRE = /^d\\d+$/\nconst offsetRE = /^o-?\\d+$/\nconst variantRE = /^v-.+$/\n\n// Build a PopOver config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n/* istanbul ignore next: not easy to test */\nconst parseBindings = bindings => /* istanbul ignore next: not easy to test */ {\n  // We start out with a basic config\n  const NAME = 'BPopover'\n  let config = {\n    delay: getComponentConfig(NAME, 'delay'),\n    boundary: String(getComponentConfig(NAME, 'boundary')),\n    boundaryPadding: parseInt(getComponentConfig(NAME, 'boundaryPadding'), 10) || 0,\n    variant: getComponentConfig(NAME, 'variant'),\n    customClass: getComponentConfig(NAME, 'customClass')\n  }\n\n  // Process bindings.value\n  if (isString(bindings.value)) {\n    // Value is popover content (html optionally supported)\n    config.content = bindings.value\n  } else if (isFunction(bindings.value)) {\n    // Content generator function\n    config.content = bindings.value\n  } else if (isObject(bindings.value)) {\n    // Value is config object, so merge\n    config = { ...config, ...bindings.value }\n  }\n\n  // If argument, assume element ID of container element\n  if (bindings.arg) {\n    // Element ID specified as arg\n    // We must prepend '#' to become a CSS selector\n    config.container = `#${bindings.arg}`\n  }\n\n  // Process modifiers\n  keys(bindings.modifiers).forEach(mod => {\n    if (htmlRE.test(mod)) {\n      // Title allows HTML\n      config.html = true\n    } else if (noFadeRE.test(mod)) {\n      // no animation\n      config.animation = false\n    } else if (placementRE.test(mod)) {\n      // placement of popover\n      config.placement = mod\n    } else if (boundaryRE.test(mod)) {\n      // Boundary of popover\n      config.boundary = mod\n    } else if (delayRE.test(mod)) {\n      // Delay value\n      const delay = parseInt(mod.slice(1), 10) || 0\n      if (delay) {\n        config.delay = delay\n      }\n    } else if (offsetRE.test(mod)) {\n      // Offset value (negative allowed)\n      const offset = parseInt(mod.slice(1), 10) || 0\n      if (offset) {\n        config.offset = offset\n      }\n    } else if (variantRE.test(mod)) {\n      // Variant\n      config.variant = mod.slice(2) || null\n    }\n  })\n\n  // Special handling of event trigger modifiers trigger is\n  // a space separated list\n  const selectedTriggers = {}\n\n  // Parse current config object trigger\n  const triggers = isString(config.trigger) ? config.trigger.trim().split(/\\s+/) : []\n  triggers.forEach(trigger => {\n    if (validTriggers[trigger]) {\n      selectedTriggers[trigger] = true\n    }\n  })\n\n  // Parse modifiers for triggers\n  keys(validTriggers).forEach(trigger => {\n    if (bindings.modifiers[trigger]) {\n      selectedTriggers[trigger] = true\n    }\n  })\n\n  // Sanitize triggers\n  config.trigger = keys(selectedTriggers).join(' ')\n  if (config.trigger === 'blur') {\n    // Blur by itself is useless, so convert it to focus\n    config.trigger = 'focus'\n  }\n  if (!config.trigger) {\n    // Remove trigger config\n    delete config.trigger\n  }\n\n  return config\n}\n\n// Add or update PopOver on our element\nconst applyPopover = (el, bindings, vnode) => {\n  if (!isBrowser) {\n    /* istanbul ignore next */\n    return\n  }\n  // Popper is required for PopOvers to work\n  if (!Popper) {\n    /* istanbul ignore next */\n    warn('v-b-popover: Popper.js is required for PopOvers to work')\n    /* istanbul ignore next */\n    return\n  }\n  const config = parseBindings(bindings)\n  if (el[BV_POPOVER]) {\n    el[BV_POPOVER].updateConfig(config)\n  } else {\n    el[BV_POPOVER] = new PopOver(el, config, vnode.context)\n  }\n}\n\n// Remove PopOver on our element\nconst removePopover = el => {\n  if (el[BV_POPOVER]) {\n    el[BV_POPOVER].destroy()\n    el[BV_POPOVER] = null\n    delete el[BV_POPOVER]\n  }\n}\n\n/*\n * Export our directive\n */\nexport const VBPopover = {\n  bind(el, bindings, vnode) {\n    applyPopover(el, bindings, vnode)\n  },\n  inserted(el, bindings, vnode) {\n    applyPopover(el, bindings, vnode)\n  },\n  update(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyPopover(el, bindings, vnode)\n    }\n  },\n  componentUpdated(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyPopover(el, bindings, vnode)\n    }\n  },\n  unbind(el) {\n    removePopover(el)\n  }\n}\n\nexport default VBPopover\n","import { BPopover } from './popover'\nimport { VBPopover } from '../../directives/popover/popover'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst PopoverPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BPopover },\n  directives: { VBPopover }\n})\n\nexport { PopoverPlugin, BPopover }\n\nexport default PopoverPlugin\n","import Vue from '../../utils/vue'\nimport { getComponentConfig } from '../../utils/config'\nimport { htmlOrText } from '../../utils/html'\nimport { isBoolean, isNumber } from '../../utils/inspect'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\nconst NAME = 'BProgressBar'\n\n// @vue/component\nexport const BProgressBar = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [normalizeSlotMixin],\n  inject: {\n    bvProgress: {\n      default() /* istanbul ignore next */ {\n        return {}\n      }\n    }\n  },\n  props: {\n    value: {\n      type: Number,\n      default: 0\n    },\n    label: {\n      type: String,\n      default: null\n    },\n    labelHtml: {\n      type: String\n    },\n    // $parent (this.bvProgress) prop values may take precedence over the following props\n    // Which is why they are defaulted to null\n    max: {\n      type: Number,\n      default: null\n    },\n    precision: {\n      type: Number,\n      default: null\n    },\n    variant: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'variant')\n    },\n    striped: {\n      type: Boolean,\n      default: null\n    },\n    animated: {\n      type: Boolean,\n      default: null\n    },\n    showProgress: {\n      type: Boolean,\n      default: null\n    },\n    showValue: {\n      type: Boolean,\n      default: null\n    }\n  },\n  computed: {\n    progressBarClasses() {\n      return [\n        this.computedVariant ? `bg-${this.computedVariant}` : '',\n        this.computedStriped || this.computedAnimated ? 'progress-bar-striped' : '',\n        this.computedAnimated ? 'progress-bar-animated' : ''\n      ]\n    },\n    progressBarStyles() {\n      return {\n        width: 100 * (this.value / this.computedMax) + '%'\n      }\n    },\n    computedProgress() {\n      const p = Math.pow(10, this.computedPrecision)\n      return Math.round((100 * p * this.value) / this.computedMax) / p\n    },\n    computedMax() {\n      // Prefer our max over parent setting\n      return isNumber(this.max) ? this.max : this.bvProgress.max || 100\n    },\n    computedVariant() {\n      // Prefer our variant over parent setting\n      return this.variant || this.bvProgress.variant\n    },\n    computedPrecision() {\n      // Prefer our precision over parent setting\n      return isNumber(this.precision) ? this.precision : this.bvProgress.precision || 0\n    },\n    computedStriped() {\n      // Prefer our striped over parent setting\n      return isBoolean(this.striped) ? this.striped : this.bvProgress.striped || false\n    },\n    computedAnimated() {\n      // Prefer our animated over parent setting\n      return isBoolean(this.animated) ? this.animated : this.bvProgress.animated || false\n    },\n    computedShowProgress() {\n      // Prefer our showProgress over parent setting\n      return isBoolean(this.showProgress)\n        ? this.showProgress\n        : this.bvProgress.showProgress || false\n    },\n    computedShowValue() {\n      // Prefer our showValue over parent setting\n      return isBoolean(this.showValue) ? this.showValue : this.bvProgress.showValue || false\n    }\n  },\n  render(h) {\n    let childNodes = h()\n    if (this.hasNormalizedSlot('default')) {\n      childNodes = this.normalizeSlot('default')\n    } else if (this.label || this.labelHtml) {\n      childNodes = h('span', { domProps: htmlOrText(this.labelHtml, this.label) })\n    } else if (this.computedShowProgress) {\n      childNodes = this.computedProgress.toFixed(this.computedPrecision)\n    } else if (this.computedShowValue) {\n      childNodes = this.value.toFixed(this.computedPrecision)\n    }\n    return h(\n      'div',\n      {\n        staticClass: 'progress-bar',\n        class: this.progressBarClasses,\n        style: this.progressBarStyles,\n        attrs: {\n          role: 'progressbar',\n          'aria-valuemin': '0',\n          'aria-valuemax': this.computedMax.toString(),\n          'aria-valuenow': this.value.toFixed(this.computedPrecision)\n        }\n      },\n      [childNodes]\n    )\n  }\n})\n\nexport default BProgressBar\n","import { BProgress } from './progress'\nimport { BProgressBar } from './progress-bar'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ProgressPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BProgress,\n    BProgressBar\n  }\n})\n\nexport { ProgressPlugin, BProgress, BProgressBar }\n\nexport default ProgressPlugin\n","import Vue from '../../utils/vue'\nimport { getComponentConfig } from '../../utils/config'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BProgressBar } from './progress-bar'\n\nconst NAME = 'BProgress'\n\n// @vue/component\nexport const BProgress = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [normalizeSlotMixin],\n  provide() {\n    return { bvProgress: this }\n  },\n  props: {\n    // These props can be inherited via the child b-progress-bar(s)\n    variant: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'variant')\n    },\n    striped: {\n      type: Boolean,\n      default: false\n    },\n    animated: {\n      type: Boolean,\n      default: false\n    },\n    height: {\n      type: String,\n      default: null\n    },\n    precision: {\n      type: Number,\n      default: 0\n    },\n    showProgress: {\n      type: Boolean,\n      default: false\n    },\n    showValue: {\n      type: Boolean,\n      default: false\n    },\n    max: {\n      type: Number,\n      default: 100\n    },\n    // This prop is not inherited by child b-progress-bar(s)\n    value: {\n      type: Number,\n      default: 0\n    }\n  },\n  computed: {\n    progressHeight() {\n      return { height: this.height || null }\n    }\n  },\n  render(h) {\n    let childNodes = this.normalizeSlot('default')\n    if (!childNodes) {\n      childNodes = h(BProgressBar, {\n        props: {\n          value: this.value,\n          max: this.max,\n          precision: this.precision,\n          variant: this.variant,\n          animated: this.animated,\n          striped: this.striped,\n          showProgress: this.showProgress,\n          showValue: this.showValue\n        }\n      })\n    }\n    return h('div', { class: ['progress'], style: this.progressHeight }, [childNodes])\n  }\n})\n\nexport default BProgress\n","import { BSpinner } from './spinner'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst SpinnerPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BSpinner }\n})\n\nexport { SpinnerPlugin, BSpinner }\n\nexport default SpinnerPlugin\n","import Vue from '../../utils/vue'\nimport { mergeData } from 'vue-functional-data-merge'\nimport { getComponentConfig } from '../../utils/config'\nimport { normalizeSlot } from '../../utils/normalize-slot'\n\nconst NAME = 'BSpinner'\n\n// @vue/component\nexport const BSpinner = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  functional: true,\n  props: {\n    type: {\n      type: String,\n      default: 'border' // SCSS currently supports 'border' or 'grow'\n    },\n    label: {\n      type: String,\n      default: null\n    },\n    variant: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'variant')\n    },\n    small: {\n      type: Boolean,\n      default: false\n    },\n    role: {\n      type: String,\n      default: 'status'\n    },\n    tag: {\n      type: String,\n      default: 'span'\n    }\n  },\n  render(h, { props, data, slots, scopedSlots }) {\n    const $slots = slots()\n    const $scopedSlots = scopedSlots || {}\n    let label = normalizeSlot('label', {}, $scopedSlots, $slots) || props.label\n    if (label) {\n      label = h('span', { staticClass: 'sr-only' }, label)\n    }\n    return h(\n      props.tag,\n      mergeData(data, {\n        attrs: {\n          role: label ? props.role || 'status' : null,\n          'aria-hidden': label ? null : 'true'\n        },\n        class: {\n          [`spinner-${props.type}`]: Boolean(props.type),\n          [`spinner-${props.type}-sm`]: props.small,\n          [`text-${props.variant}`]: Boolean(props.variant)\n        }\n      }),\n      [label || h()]\n    )\n  }\n})\n\nexport default BSpinner\n","/**\n * Converts a string, including strings in camelCase or snake_case, into Start Case (a variant\n * of Title Case where all words start with a capital letter), it keeps original single quote\n * and hyphen in the word.\n *\n * Copyright (c) 2017 Compass (MIT)\n * https://github.com/UrbanCompass/to-start-case\n * @author Zhuoyuan Zhang <https://github.com/drawyan>\n * @author Wei Wang <https://github.com/onlywei>\n *\n *\n *   'management_companies' to 'Management Companies'\n *   'managementCompanies' to 'Management Companies'\n *   `hell's kitchen` to `Hell's Kitchen`\n *   `co-op` to `Co-op`\n *\n * @param {String} str\n * @returns {String}\n */\nconst startCase = str =>\n  str\n    .replace(/_/g, ' ')\n    .replace(/([a-z])([A-Z])/g, (str, $1, $2) => $1 + ' ' + $2)\n    .replace(/(\\s|^)(\\w)/g, (str, $1, $2) => $1 + $2.toUpperCase())\n\nexport default startCase\n","// Constants used by table helpers\n\n// Object of item keys that should be ignored for headers and stringification and filter events\nexport const IGNORED_FIELD_KEYS = {\n  _rowVariant: true,\n  _cellVariants: true,\n  _showDetails: true\n}\n\n// Filter CSS Selector for click/dblclick/etc events\n// If any of these selectors match the clicked element, we ignore the event\nexport const EVENT_FILTER = [\n  'a',\n  'a *', // include content inside links\n  'button',\n  'button *', // include content inside buttons\n  'input:not(.disabled):not([disabled])',\n  'select:not(.disabled):not([disabled])',\n  'textarea:not(.disabled):not([disabled])',\n  '[role=\"link\"]',\n  '[role=\"link\"] *',\n  '[role=\"button\"]',\n  '[role=\"button\"] *',\n  '[tabindex]:not(.disabled):not([disabled])'\n].join(',')\n","import startCase from '../../../utils/startcase'\nimport { isArray, isFunction, isObject, isString } from '../../../utils/inspect'\nimport { keys } from '../../../utils/object'\nimport { IGNORED_FIELD_KEYS } from './constants'\n\n// Private function to massage field entry into common object format\nconst processField = (key, value) => {\n  let field = null\n  if (isString(value)) {\n    // Label shortcut\n    field = { key: key, label: value }\n  } else if (isFunction(value)) {\n    // Formatter shortcut\n    field = { key: key, formatter: value }\n  } else if (isObject(value)) {\n    field = { ...value }\n    field.key = field.key || key\n  } else if (value !== false) {\n    // Fallback to just key\n    /* istanbul ignore next */\n    field = { key: key }\n  }\n  return field\n}\n\n// We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\nconst normalizeFields = (origFields, items) => {\n  const fields = []\n\n  if (isArray(origFields)) {\n    // Normalize array Form\n    origFields.filter(f => f).forEach(f => {\n      if (isString(f)) {\n        fields.push({ key: f, label: startCase(f) })\n      } else if (isObject(f) && f.key && isString(f.key)) {\n        // Full object definition. We use assign so that we don't mutate the original\n        fields.push({ ...f })\n      } else if (isObject(f) && keys(f).length === 1) {\n        // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n        const key = keys(f)[0]\n        const field = processField(key, f[key])\n        if (field) {\n          fields.push(field)\n        }\n      }\n    })\n  } else if (origFields && isObject(origFields) && keys(origFields).length > 0) {\n    // Normalize object Form (deprecated)\n    keys(origFields).forEach(key => {\n      const field = processField(key, origFields[key])\n      if (field) {\n        fields.push(field)\n      }\n    })\n  }\n\n  // If no field provided, take a sample from first record (if exits)\n  if (fields.length === 0 && isArray(items) && items.length > 0) {\n    const sample = items[0]\n    keys(sample).forEach(k => {\n      if (!IGNORED_FIELD_KEYS[k]) {\n        fields.push({ key: k, label: startCase(k) })\n      }\n    })\n  }\n\n  // Ensure we have a unique array of fields and that they have String labels\n  const memo = {}\n  return fields.filter(f => {\n    if (!memo[f.key]) {\n      memo[f.key] = true\n      f.label = isString(f.label) ? f.label : startCase(f.key)\n      return true\n    }\n    return false\n  })\n}\n\nexport default normalizeFields\n","import looseEqual from '../../../utils/loose-equal'\nimport { isArray, isFunction, isNull, isString, isUndefined } from '../../../utils/inspect'\nimport normalizeFields from './normalize-fields'\n\nexport default {\n  props: {\n    items: {\n      // Provider mixin adds in `Function` type\n      type: Array,\n      default() /* istanbul ignore next */ {\n        return []\n      }\n    },\n    fields: {\n      // Object format is deprecated and should be avoided\n      type: [Array, Object],\n      default: null\n    },\n    primaryKey: {\n      // Primary key for record.\n      // If provided the value in each row must be unique!!!\n      type: String,\n      default: null\n    },\n    value: {\n      // v-model for retrieving the current displayed rows\n      type: Array,\n      default() {\n        return []\n      }\n    }\n  },\n  data() {\n    return {\n      // Our local copy of the items. Must be an array\n      localItems: isArray(this.items) ? this.items.slice() : []\n    }\n  },\n  computed: {\n    computedFields() {\n      // We normalize fields into an array of objects\n      // [ { key:..., label:..., ...}, {...}, ..., {..}]\n      return normalizeFields(this.fields, this.localItems)\n    },\n    computedFieldsObj() {\n      // Fields as a simple lookup hash object\n      // Mainly for formatter lookup and scopedSlots for convenience\n      return this.computedFields.reduce((obj, f) => {\n        obj[f.key] = f\n        return obj\n      }, {})\n    },\n    computedItems() {\n      // Fallback if various mixins not provided\n      return (\n        this.paginatedItems ||\n        this.sortedItems ||\n        this.filteredItems ||\n        this.localItems ||\n        []\n      ).slice()\n    },\n    context() {\n      // Current state of sorting, filtering and pagination props/values\n      return {\n        filter: this.localFilter,\n        sortBy: this.localSortBy,\n        sortDesc: this.localSortDesc,\n        perPage: parseInt(this.perPage, 10) || 0,\n        currentPage: parseInt(this.currentPage, 10) || 1,\n        apiUrl: this.apiUrl\n      }\n    }\n  },\n  watch: {\n    items(newItems) {\n      /* istanbul ignore else */\n      if (isArray(newItems)) {\n        // Set localItems/filteredItems to a copy of the provided array\n        this.localItems = newItems.slice()\n      } else if (isUndefined(newItems) || isNull(newItems)) {\n        /* istanbul ignore next */\n        this.localItems = []\n      }\n    },\n    // Watch for changes on computedItems and update the v-model\n    computedItems(newVal) {\n      this.$emit('input', newVal)\n    },\n    // Watch for context changes\n    context(newVal, oldVal) {\n      // Emit context info for external paging/filtering/sorting handling\n      if (!looseEqual(newVal, oldVal)) {\n        this.$emit('context-changed', newVal)\n      }\n    }\n  },\n  mounted() {\n    // Initially update the v-model of displayed items\n    this.$emit('input', this.computedItems)\n  },\n  methods: {\n    // Method to get the formatter method for a given field key\n    getFieldFormatter(key) {\n      const fieldsObj = this.computedFieldsObj\n      const field = fieldsObj[key]\n      const parent = this.$parent\n      let formatter = field && field.formatter\n      if (isString(formatter) && isFunction(parent[formatter])) {\n        formatter = parent[formatter]\n      } else if (!isFunction(formatter)) {\n        formatter = undefined\n      }\n      // Return formatter function or undefined if none\n      return formatter\n    }\n  }\n}\n","import { keys } from '../../../utils/object'\nimport { IGNORED_FIELD_KEYS } from './constants'\n\n// Return a copy of a row after all reserved fields have been filtered out\n// TODO: add option to specify which fields to include\nconst sanitizeRow = row =>\n  keys(row).reduce((obj, key) => {\n    // Ignore special fields that start with `_`\n    if (!IGNORED_FIELD_KEYS[key]) {\n      obj[key] = row[key]\n    }\n    return obj\n  }, {})\n\nexport default sanitizeRow\n","import { keys } from '../../../utils/object'\nimport { isDate, isObject, isUndefinedOrNull } from '../../../utils/inspect'\n\n// Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n//   ex:\n//     { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n//   becomes\n//     'one 3 2 zzz 10 12 11'\n//\n// Primitives (numbers/strings) are returned as-is\n// Null and undefined values are filtered out\n// Dates are converted to their native string format\nconst stringifyObjectValues = val => {\n  if (isUndefinedOrNull(val)) {\n    /* istanbul ignore next */\n    return ''\n  }\n  // Arrays are also object, and keys just returns the array indexes\n  // Date objects we convert to strings\n  if (isObject(val) && !isDate(val)) {\n    return keys(val)\n      .sort() // Sort to prevent SSR issues on pre-rendered sorted tables\n      .filter(v => !isUndefinedOrNull(v)) // Ignore undefined/null values\n      .map(k => stringifyObjectValues(val[k]))\n      .join(' ')\n  }\n  return String(val)\n}\n\nexport default stringifyObjectValues\n","import cloneDeep from '../../../utils/clone-deep'\nimport looseEqual from '../../../utils/loose-equal'\nimport warn from '../../../utils/warn'\nimport { isFunction, isString, isRegExp } from '../../../utils/inspect'\nimport stringifyRecordValues from './stringify-record-values'\n\nconst DEPRECATION_MSG =\n  'Supplying a function to prop \"filter\" is deprecated. Use \"filter-function\" instead.'\n\nexport default {\n  props: {\n    filter: {\n      // Passing a function to filter is deprecated and should be avoided\n      type: [String, RegExp, Object, Array, Function],\n      default: null,\n      // `deprecated` -> Don't use this prop\n      // `deprecation` -> Refers to a change in prop usage\n      deprecation: DEPRECATION_MSG\n    },\n    filterFunction: {\n      type: Function,\n      default: null\n    }\n  },\n  data() {\n    return {\n      // Flag for displaying which empty slot to show and some event triggering\n      isFiltered: false\n    }\n  },\n  computed: {\n    localFiltering() {\n      return this.hasProvider ? !!this.noProviderFiltering : true\n    },\n    // For watching changes to `filteredItems` vs `localItems`\n    filteredCheck() {\n      return {\n        filteredItems: this.filteredItems,\n        localItems: this.localItems,\n        localFilter: this.localFilter\n      }\n    },\n    // Sanitized/normalized version of filter prop\n    localFilter() {\n      // Deprecate setting prop filter to a function\n      // `localFilterFn` will contain the correct function ref\n      if (isFunction(this.filter)) {\n        /* istanbul ignore next */\n        return ''\n      }\n\n      // Using internal filter function, which only accepts string or RegExp\n      if (\n        this.localFiltering &&\n        !isFunction(this.filterFunction) &&\n        !(isString(this.filter) || isRegExp(this.filter))\n      ) {\n        return ''\n      }\n\n      // Could be a string, object or array, as needed by external filter function\n      // We use `cloneDeep` to ensure we have a new copy of an object or array\n      // without Vue reactive observers\n      return cloneDeep(this.filter)\n    },\n    // Sanitized/normalize filter-function prop\n    localFilterFn() {\n      const filterFn = this.filterFunction\n      const filter = this.filter\n\n      // Prefer `filterFn` prop\n      if (isFunction(filterFn)) {\n        return filterFn\n      }\n\n      // Deprecate setting `filter` prop to a function\n      if (isFunction(filter)) {\n        /* istanbul ignore next */\n        warn(`b-table: ${DEPRECATION_MSG}`)\n        /* istanbul ignore next */\n        return filter\n      }\n\n      // No `filterFunction`, so signal to use internal filter function\n      return null\n    },\n    // Returns the records in `localItems` that match the filter criteria\n    // Returns the original `localItems` array if not sorting\n    filteredItems() {\n      const items = this.localItems || []\n\n      // Resolve the filtering function, when requested\n      // We prefer the provided filtering function and fallback to the internal one\n      // When no filtering criteria is specified the filtering factories will return `null`\n      let filterFn = null\n      if (this.localFiltering) {\n        const criteria = this.localFilter\n        filterFn =\n          this.filterFnFactory(this.localFilterFn, criteria) ||\n          this.defaultFilterFnFactory(criteria)\n      }\n\n      // We only do local filtering when requested and there are records to filter\n      if (filterFn && items.length > 0) {\n        return items.filter(filterFn)\n      }\n\n      // Otherwise return all items\n      return items\n    }\n  },\n  watch: {\n    // Watch for changes to the filter criteria and filtered items vs localItems).\n    // And set visual state and emit events as required\n    filteredCheck({ filteredItems, localItems, localFilter }) {\n      // Determine if the dataset is filtered or not\n      let isFiltered = false\n      if (!localFilter) {\n        // If filter criteria is falsey\n        isFiltered = false\n      } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {\n        // If filter criteria is an empty array or object\n        isFiltered = false\n      } else if (localFilter) {\n        // If filter criteria is truthy\n        isFiltered = true\n      }\n      if (isFiltered) {\n        this.$emit('filtered', filteredItems, filteredItems.length)\n      }\n      this.isFiltered = isFiltered\n    },\n    isFiltered(newVal, oldVal) {\n      if (newVal === false && oldVal === true) {\n        // We need to emit a filtered event if isFiltered transitions from true to\n        // false so that users can update their pagination controls.\n        this.$emit('filtered', this.localItems, this.localItems.length)\n      }\n    }\n  },\n  created() {\n    // Set the initial filtered state.\n    // In a nextTick so that we trigger a filtered event if needed\n    this.$nextTick(() => {\n      this.isFiltered = Boolean(this.localFilter)\n    })\n  },\n  methods: {\n    // Filter Function factories\n    filterFnFactory(filterFn, criteria) {\n      // Wrapper factory for external filter functions.\n      // Wrap the provided filter-function and return a new function.\n      // Returns null if no filter-function defined or if criteria is falsey.\n      // Rather than directly grabbing this.computedLocalFilterFn or this.filterFunction\n      // we have it passed, so that the caller computed prop will be reactive to changes\n      // in the original filter-function (as this routine is a method)\n      if (\n        !filterFn ||\n        !isFunction(filterFn) ||\n        !criteria ||\n        looseEqual(criteria, []) ||\n        looseEqual(criteria, {})\n      ) {\n        return null\n      }\n\n      // Build the wrapped filter test function, passing the criteria to the provided function\n      const fn = item => {\n        // Generated function returns true if the criteria matches part\n        // of the serialized data, otherwise false\n        return filterFn(item, criteria)\n      }\n\n      // Return the wrapped function\n      return fn\n    },\n    defaultFilterFnFactory(criteria) {\n      // Generates the default filter function, using the given filter criteria\n      if (!criteria || !(isString(criteria) || isRegExp(criteria))) {\n        // Built in filter can only support strings or RegExp criteria (at the moment)\n        return null\n      }\n\n      // Build the regexp needed for filtering\n      let regexp = criteria\n      if (isString(regexp)) {\n        // Escape special RegExp characters in the string and convert contiguous\n        // whitespace to \\s+ matches\n        const pattern = criteria\n          .replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n          .replace(/[\\s\\uFEFF\\xA0]+/g, '\\\\s+')\n        // Build the RegExp (no need for global flag, as we only need\n        // to find the value once in the string)\n        regexp = new RegExp(`.*${pattern}.*`, 'i')\n      }\n\n      // Generate the wrapped filter test function to use\n      const fn = item => {\n        // This searches all row values (and sub property values) in the entire (excluding\n        // special _ prefixed keys), because we convert the record to a space-separated\n        // string containing all the value properties (recursively), even ones that are\n        // not visible (not specified in this.fields).\n        //\n        // TODO: Enable searching on formatted fields and scoped slots\n        // TODO: Should we filter only on visible fields (i.e. ones in this.fields) by default?\n        // TODO: Allow for searching on specific fields/key, this could be combined with the previous TODO\n        // TODO: Give stringifyRecordValues extra options for filtering (i.e. passing the\n        //       fields definition and a reference to $scopedSlots)\n        //\n        // Generated function returns true if the criteria matches part of\n        // the serialized data, otherwise false\n        // We set lastIndex = 0 on regex in case someone uses the /g global flag\n        regexp.lastIndex = 0\n        return regexp.test(stringifyRecordValues(item))\n      }\n\n      // Return the generated function\n      return fn\n    }\n  }\n}\n","import { isObject } from '../../../utils/inspect'\nimport sanitizeRow from './sanitize-row'\nimport stringifyObjectValues from './stringify-object-values'\n\n// Stringifies the values of a record, ignoring any special top level field keys\n// TODO: add option to stringify formatted/scopedSlot items, and only specific fields\n/* istanbul ignore next */\nconst stringifyRecordValues = row => (isObject(row) ? stringifyObjectValues(sanitizeRow(row)) : '')\n\nexport default stringifyRecordValues\n","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in <b-table> if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nconst stableSort = (array, compareFn) => {\n  // Using `.bind(compareFn)` on the wrapped anonymous function improves\n  // performance by avoiding the function call setup. We don't use an arrow\n  // function here as it binds `this` to the `stableSort` context rather than\n  // the `compareFn` context, which wouldn't give us the performance increase.\n  return array\n    .map((a, index) => [index, a])\n    .sort(\n      function(a, b) {\n        return this(a[1], b[1]) || a[0] - b[0]\n      }.bind(compareFn)\n    )\n    .map(e => e[1])\n}\n\nexport default stableSort\n","import stableSort from '../../../utils/stable-sort'\nimport startCase from '../../../utils/startcase'\nimport { arrayIncludes } from '../../../utils/array'\nimport { isFunction, isNull, isUndefined } from '../../../utils/inspect'\nimport defaultSortCompare from './default-sort-compare'\n\nexport default {\n  props: {\n    sortBy: {\n      type: String,\n      default: ''\n    },\n    sortDesc: {\n      // To Do: Make this tri-state: true, false, null\n      type: Boolean,\n      default: false\n    },\n    sortDirection: {\n      // This prop is named incorrectly.\n      // It should be initialSortDirection\n      // As it is a bit misleading (not to mention screws up\n      // the Aria Label on the headers)\n      type: String,\n      default: 'asc',\n      validator: direction => arrayIncludes(['asc', 'desc', 'last'], direction)\n    },\n    sortCompare: {\n      type: Function,\n      default: null\n    },\n    sortCompareOptions: {\n      // Supported localCompare options, see `options` section of:\n      // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\n      type: Object,\n      default: () => {\n        return { numeric: true }\n      }\n    },\n    sortCompareLocale: {\n      type: String\n      // default: undefined\n    },\n    noSortReset: {\n      // Another prop that should have had a better name.\n      // It should be noSortClear (on non-sortable headers).\n      // We will need to make sure the documentation is clear on what\n      // this prop does (as well as in the code for future reference)\n      type: Boolean,\n      default: false\n    },\n    labelSortAsc: {\n      type: String,\n      default: 'Click to sort Ascending'\n    },\n    labelSortDesc: {\n      type: String,\n      default: 'Click to sort Descending'\n    },\n    labelSortClear: {\n      type: String,\n      default: 'Click to clear sorting'\n    },\n    noLocalSorting: {\n      type: Boolean,\n      default: false\n    },\n    noFooterSorting: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      localSortBy: this.sortBy || '',\n      localSortDesc: this.sortDesc || false\n    }\n  },\n  computed: {\n    localSorting() {\n      return this.hasProvider ? !!this.noProviderSorting : !this.noLocalSorting\n    },\n    isSortable() {\n      return this.computedFields.some(f => f.sortable)\n    },\n    sortedItems() {\n      // Sorts the filtered items and returns a new array of the sorted items\n      // or the original items array if not sorted.\n      const items = (this.filteredItems || this.localItems || []).slice()\n      const sortBy = this.localSortBy\n      const sortDesc = this.localSortDesc\n      const sortCompare = this.sortCompare\n      const localSorting = this.localSorting\n      const sortOptions = { ...this.sortCompareOptions, usage: 'sort' }\n      const sortLocale = this.sortCompareLocale || undefined\n      if (sortBy && localSorting) {\n        const formatter = this.getFieldFormatter(sortBy)\n        // stableSort returns a new array, and leaves the original array intact\n        return stableSort(items, (a, b) => {\n          let result = null\n          if (isFunction(sortCompare)) {\n            // Call user provided sortCompare routine\n            result = sortCompare(a, b, sortBy, sortDesc, formatter, sortOptions, sortLocale)\n          }\n          if (isUndefined(result) || isNull(result) || result === false) {\n            // Fallback to built-in defaultSortCompare if sortCompare\n            // is not defined or returns null/false\n            result = defaultSortCompare(a, b, sortBy, formatter, sortOptions, sortLocale)\n          }\n          // Negate result if sorting in descending order\n          return (result || 0) * (sortDesc ? -1 : 1)\n        })\n      }\n      return items\n    }\n  },\n  watch: {\n    isSortable(newVal, oldVal) /* istanbul ignore next: pain in the butt to test */ {\n      if (newVal) {\n        if (this.isSortable) {\n          this.$on('head-clicked', this.handleSort)\n        }\n      } else {\n        this.$off('head-clicked', this.handleSort)\n      }\n    },\n    sortDesc(newVal, oldVal) {\n      if (newVal === this.localSortDesc) {\n        /* istanbul ignore next */\n        return\n      }\n      this.localSortDesc = newVal || false\n    },\n    sortBy(newVal, oldVal) {\n      if (newVal === this.localSortBy) {\n        /* istanbul ignore next */\n        return\n      }\n      this.localSortBy = newVal || ''\n    },\n    // Update .sync props\n    localSortDesc(newVal, oldVal) {\n      // Emit update to sort-desc.sync\n      if (newVal !== oldVal) {\n        this.$emit('update:sortDesc', newVal)\n      }\n    },\n    localSortBy(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.$emit('update:sortBy', newVal)\n      }\n    }\n  },\n  created() {\n    if (this.isSortable) {\n      this.$on('head-clicked', this.handleSort)\n    }\n  },\n  methods: {\n    // Handlers\n    // Need to move from thead-mixin\n    handleSort(key, field, evt, isFoot) {\n      if (!this.isSortable) {\n        /* istanbul ignore next */\n        return\n      }\n      if (isFoot && this.noFooterSorting) {\n        return\n      }\n      // TODO: make this tri-state sorting\n      // cycle desc => asc => none => desc => ...\n      let sortChanged = false\n      const toggleLocalSortDesc = () => {\n        const sortDirection = field.sortDirection || this.sortDirection\n        if (sortDirection === 'asc') {\n          this.localSortDesc = false\n        } else if (sortDirection === 'desc') {\n          this.localSortDesc = true\n        } else {\n          // sortDirection === 'last'\n          // Leave at last sort direction from previous column\n        }\n      }\n      if (field.sortable) {\n        if (key === this.localSortBy) {\n          // Change sorting direction on current column\n          this.localSortDesc = !this.localSortDesc\n        } else {\n          // Start sorting this column ascending\n          this.localSortBy = key\n          // this.localSortDesc = false\n          toggleLocalSortDesc()\n        }\n        sortChanged = true\n      } else if (this.localSortBy && !this.noSortReset) {\n        this.localSortBy = ''\n        toggleLocalSortDesc()\n        sortChanged = true\n      }\n      if (sortChanged) {\n        // Sorting parameters changed\n        this.$emit('sort-changed', this.context)\n      }\n    },\n    // methods to compute classes and attrs for thead>th cells\n    sortTheadThClasses(key, field, isFoot) {\n      return {\n        // No Classes for sorting currently...\n        // All styles targeted using aria-* attrs\n      }\n    },\n    sortTheadThAttrs(key, field, isFoot) {\n      if (!this.isSortable || (isFoot && this.noFooterSorting)) {\n        // No attributes if not a sortable table\n        return {}\n      }\n      const sortable = field.sortable\n      let ariaLabel = ''\n      if ((!field.label || !field.label.trim()) && !field.headerTitle) {\n        // In case field's label and title are empty/blank, we need to\n        // add a hint about what the column is about for non-sighted users.\n        // This is duplicated code from tbody-row mixin, but we need it\n        // here as well, since we overwrite the original aria-label.\n        /* istanbul ignore next */\n        ariaLabel = startCase(key)\n      }\n      // The correctness of these labels is very important for screen-reader users.\n      let ariaLabelSorting = ''\n      if (sortable) {\n        if (this.localSortBy === key) {\n          // currently sorted sortable column.\n          ariaLabelSorting = this.localSortDesc ? this.labelSortAsc : this.labelSortDesc\n        } else {\n          // Not currently sorted sortable column.\n          // Not using nested ternary's here for clarity/readability\n          // Default for ariaLabel\n          ariaLabelSorting = this.localSortDesc ? this.labelSortDesc : this.labelSortAsc\n          // Handle sortDirection setting\n          const sortDirection = this.sortDirection || field.sortDirection\n          if (sortDirection === 'asc') {\n            ariaLabelSorting = this.labelSortAsc\n          } else if (sortDirection === 'desc') {\n            ariaLabelSorting = this.labelSortDesc\n          }\n        }\n      } else if (!this.noSortReset) {\n        // Non sortable column\n        ariaLabelSorting = this.localSortBy ? this.labelSortClear : ''\n      }\n      // Assemble the aria-label attribute value\n      ariaLabel = [ariaLabel.trim(), ariaLabelSorting.trim()].filter(Boolean).join(': ')\n      // Assemble the aria-sort attribute value\n      const ariaSort =\n        sortable && this.localSortBy === key\n          ? this.localSortDesc\n            ? 'descending'\n            : 'ascending'\n          : sortable\n            ? 'none'\n            : null\n      // Return the attributes\n      // (All the above just to get these two values)\n      return {\n        'aria-label': ariaLabel || null,\n        'aria-sort': ariaSort\n      }\n    }\n  }\n}\n","import get from '../../../utils/get'\nimport { isDate, isUndefined, isFunction, isNull, isNumber } from '../../../utils/inspect'\nimport stringifyObjectValues from './stringify-object-values'\n\n// Default sort compare routine\n//\n// TODO: Add option to sort by multiple columns (tri-state per column,\n//       plus order of columns in sort)  where sortBy could be an array\n//       of objects [ {key: 'foo', sortDir: 'asc'}, {key:'bar', sortDir: 'desc'} ...]\n//       or an array of arrays [ ['foo','asc'], ['bar','desc'] ]\n//       Multisort will most likely be handled in mixin-sort.js by\n//       calling this method for each sortBy\nconst defaultSortCompare = (a, b, sortBy, formatter, localeOpts, locale) => {\n  let aa = get(a, sortBy, '')\n  let bb = get(b, sortBy, '')\n  if (isFunction(formatter)) {\n    aa = formatter(aa, sortBy, a)\n    bb = formatter(bb, sortBy, b)\n  }\n  aa = isUndefined(aa) || isNull(aa) ? '' : aa\n  bb = isUndefined(bb) || isNull(bb) ? '' : bb\n  if ((isDate(aa) && isDate(bb)) || (isNumber(aa) && isNumber(bb))) {\n    // Special case for comparing dates and numbers\n    // Internally dates are compared via their epoch number values\n    return aa < bb ? -1 : aa > bb ? 1 : 0\n  } else {\n    // Do localized string comparison\n    return stringifyObjectValues(aa).localeCompare(stringifyObjectValues(bb), locale, localeOpts)\n  }\n}\n\nexport default defaultSortCompare\n","export default {\n  props: {\n    perPage: {\n      type: [Number, String],\n      default: 0\n    },\n    currentPage: {\n      type: [Number, String],\n      default: 1\n    }\n  },\n  computed: {\n    localPaging() {\n      return this.hasProvider ? !!this.noProviderPaging : true\n    },\n    paginatedItems() {\n      let items = this.sortedItems || this.filteredItems || this.localItems || []\n      const currentPage = Math.max(parseInt(this.currentPage, 10) || 1, 1)\n      const perPage = Math.max(parseInt(this.perPage, 10) || 0, 0)\n      // Apply local pagination\n      if (this.localPaging && !!perPage) {\n        // Grab the current page of data (which may be past filtered items limit)\n        items = items.slice((currentPage - 1) * perPage, currentPage * perPage)\n      }\n      // Return the items to display in the table\n      return items\n    }\n  }\n}\n","import { htmlOrText } from '../../../utils/html'\n\nexport default {\n  props: {\n    caption: {\n      type: String,\n      default: null\n    },\n    captionHtml: {\n      type: String\n    },\n    captionTop: {\n      type: Boolean,\n      default: false\n    }\n  },\n  computed: {\n    captionClasses() {\n      return {\n        'b-table-caption-top': this.captionTop\n      }\n    },\n    captionId() {\n      // Even though this.safeId looks like a method, it is a computed prop\n      // that returns a new function if the underlying ID changes\n      return this.isStacked ? this.safeId('_caption_') : null\n    }\n  },\n  methods: {\n    renderCaption() {\n      const h = this.$createElement\n\n      // Build the caption\n      const $captionSlot = this.normalizeSlot('table-caption')\n      let $caption = h()\n\n      if ($captionSlot || this.caption || this.captionHtml) {\n        const data = {\n          key: 'caption',\n          class: this.captionClasses,\n          attrs: { id: this.captionId }\n        }\n        if (!$captionSlot) {\n          data.domProps = htmlOrText(this.captionHtml, this.caption)\n        }\n        $caption = h('caption', data, [$captionSlot])\n      }\n\n      return $caption\n    }\n  }\n}\n","export default {\n  methods: {\n    renderColgroup() {\n      const h = this.$createElement\n\n      const fields = this.computedFields\n      let $colgroup = h()\n\n      if (this.hasNormalizedSlot('table-colgroup')) {\n        $colgroup = h('colgroup', { key: 'colgroup' }, [\n          this.normalizeSlot('table-colgroup', { columns: fields.length, fields: fields })\n        ])\n      }\n\n      return $colgroup\n    }\n  }\n}\n","import { closest, getAttr, getById, matches, select } from '../../../utils/dom'\nimport { EVENT_FILTER } from './constants'\n\nconst TABLE_TAG_NAMES = ['TD', 'TH', 'TR']\n\n// Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\nconst filterEvent = evt => {\n  // Exit early when we don't have a target element\n  if (!evt || !evt.target) {\n    /* istanbul ignore next */\n    return false\n  }\n  const el = evt.target\n  // Exit early when element is disabled or a table element\n  if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n    return false\n  }\n  // Ignore the click when it was inside a dropdown menu\n  if (closest('.dropdown-menu', el)) {\n    return true\n  }\n  const label = el.tagName === 'LABEL' ? el : closest('label', el)\n  // If the label's form control is not disabled then we don't propagate event\n  // Modern browsers have `label.control` that references the associated input, but IE11\n  // does not have this property on the label element, so we resort to DOM lookups\n  if (label) {\n    const labelFor = getAttr(label, 'for')\n    const input = labelFor ? getById(labelFor) : select('input, select, textarea', label)\n    if (input && !input.disabled) {\n      return true\n    }\n  }\n  // Otherwise check if the event target matches one of the selectors in the\n  // event filter (i.e. anchors, non disabled inputs, etc.)\n  // Return `true` if we should ignore the event\n  return matches(el, EVENT_FILTER)\n}\n\nexport default filterEvent\n","import { getSel, isElement } from '../../../utils/dom'\n\n// Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\nconst textSelectionActive = (el = document) => {\n  const sel = getSel()\n  return sel && sel.toString() !== '' && sel.containsNode && isElement(el)\n    ? sel.containsNode(el, true)\n    : false\n}\n\nexport default textSelectionActive\n","import KeyCodes from '../../../utils/key-codes'\nimport startCase from '../../../utils/startcase'\nimport { getComponentConfig } from '../../../utils/config'\nimport { htmlOrText } from '../../../utils/html'\nimport filterEvent from './filter-event'\nimport textSelectionActive from './text-selection-active'\n\nexport default {\n  props: {\n    headVariant: {\n      type: String,\n      default: () => getComponentConfig('BTable', 'headVariant')\n    },\n    theadClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    theadTrClass: {\n      type: [String, Array, Object],\n      default: null\n    }\n  },\n  computed: {\n    headClasses() {\n      return [this.headVariant ? 'thead-' + this.headVariant : '', this.theadClass]\n    }\n  },\n  methods: {\n    fieldClasses(field) {\n      // header field (th) classes\n      return [\n        field.variant ? 'table-' + field.variant : '',\n        field.class ? field.class : '',\n        field.thClass ? field.thClass : ''\n      ]\n    },\n    headClicked(evt, field, isFoot) {\n      if (this.stopIfBusy && this.stopIfBusy(evt)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      } else if (filterEvent(evt)) {\n        // clicked on a non-disabled control so ignore\n        return\n      } else if (textSelectionActive(this.$el)) {\n        // User is selecting text, so ignore\n        /* istanbul ignore next: JSDOM doesn't support getSelection() */\n        return\n      }\n      evt.stopPropagation()\n      evt.preventDefault()\n      this.$emit('head-clicked', field.key, field, evt, isFoot)\n    },\n    renderThead(isFoot = false) {\n      const h = this.$createElement\n      const fields = this.computedFields || []\n\n      if (this.isStacked === true || fields.length === 0) {\n        // In always stacked mode, we don't bother rendering the head/foot.\n        // Or if no field headings (empty table)\n        return h()\n      }\n\n      // Helper function to generate a field TH cell\n      const makeCell = (field, colIndex) => {\n        let ariaLabel = null\n        if (!field.label.trim() && !field.headerTitle) {\n          // In case field's label and title are empty/blank\n          // We need to add a hint about what the column is about for non-sighted users\n          /* istanbul ignore next */\n          ariaLabel = startCase(field.key)\n        }\n        const hasHeadClickListener = this.$listeners['head-clicked'] || this.isSortable\n        const handlers = {}\n        if (hasHeadClickListener) {\n          handlers.click = evt => {\n            this.headClicked(evt, field, isFoot)\n          }\n          handlers.keydown = evt => {\n            const keyCode = evt.keyCode\n            if (keyCode === KeyCodes.ENTER || keyCode === KeyCodes.SPACE) {\n              this.headClicked(evt, field, isFoot)\n            }\n          }\n        }\n        const sortAttrs = this.isSortable ? this.sortTheadThAttrs(field.key, field, isFoot) : {}\n        const sortClass = this.isSortable ? this.sortTheadThClasses(field.key, field, isFoot) : null\n        const data = {\n          key: field.key,\n          class: [this.fieldClasses(field), sortClass],\n          style: field.thStyle || {},\n          attrs: {\n            // We only add a tabindex of 0 if there is a head-clicked listener\n            tabindex: hasHeadClickListener ? '0' : null,\n            abbr: field.headerAbbr || null,\n            title: field.headerTitle || null,\n            role: 'columnheader',\n            scope: 'col',\n            'aria-colindex': String(colIndex + 1),\n            'aria-label': ariaLabel,\n            ...sortAttrs\n          },\n          on: handlers\n        }\n        const fieldScope = { label: field.label, column: field.key, field: field }\n        const slot =\n          isFoot && this.hasNormalizedSlot(`FOOT_${field.key}`)\n            ? this.normalizeSlot(`FOOT_${field.key}`, fieldScope)\n            : this.normalizeSlot(`HEAD_${field.key}`, fieldScope)\n        if (!slot) {\n          data.domProps = htmlOrText(field.labelHtml)\n        }\n        return h('th', data, slot || field.label)\n      }\n\n      // Generate the array of TH cells\n      const $cells = fields.map(makeCell).filter(th => th)\n\n      // Genrate the row(s)\n      const $trs = []\n      if (isFoot) {\n        $trs.push(h('tr', { class: this.tfootTrClass, attrs: { role: 'row' } }, $cells))\n      } else {\n        const scope = {\n          columns: fields.length,\n          fields: fields\n        }\n        $trs.push(this.normalizeSlot('thead-top', scope) || h())\n        $trs.push(h('tr', { class: this.theadTrClass, attrs: { role: 'row' } }, $cells))\n      }\n\n      return h(\n        isFoot ? 'tfoot' : 'thead',\n        {\n          key: isFoot ? 'tfoot' : 'thead',\n          class: isFoot ? this.footClasses : this.headClasses,\n          attrs: { role: 'rowgroup' }\n        },\n        $trs\n      )\n    }\n  }\n}\n","import { getComponentConfig } from '../../../utils/config'\n\nexport default {\n  props: {\n    footClone: {\n      type: Boolean,\n      default: false\n    },\n    footVariant: {\n      type: String,\n      default: () => getComponentConfig('BTable', 'footVariant')\n    },\n    tfootClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    tfootTrClass: {\n      type: [String, Array, Object],\n      default: null\n    }\n  },\n  computed: {\n    footClasses() {\n      const variant = this.footVariant || this.headVariant || null\n      return [variant ? `thead-${variant}` : '', this.tfootClass]\n    }\n  },\n  methods: {\n    renderTfoot() {\n      const h = this.$createElement\n\n      // Passing true to renderThead will make it render a tfoot\n      return this.footClone ? this.renderThead(true) : h()\n    }\n  }\n}\n","import tbodyRowMixin from './mixin-tbody-row'\n\nexport default {\n  mixins: [tbodyRowMixin],\n  props: {\n    tbodyClass: {\n      type: [String, Array],\n      default: null\n    },\n    tbodyTransitionProps: {\n      type: Object\n      // default: undefined\n    },\n    tbodyTransitionHandlers: {\n      type: Object\n      // default: undefined\n    }\n  },\n  methods: {\n    renderTbody() {\n      // Render the tbody element and children\n      const h = this.$createElement\n      const items = this.computedItems\n\n      // Prepare the tbody rows\n      const $rows = []\n\n      // Add the item data rows or the busy slot\n      const $busy = this.renderBusy ? this.renderBusy() : null\n      if ($busy) {\n        // If table is busy and a busy slot, then return only the busy \"row\" indicator\n        $rows.push($busy)\n      } else {\n        // Table isn't busy, or we don't have a busy slot\n\n        // Add static Top Row slot (hidden in visibly stacked mode as we can't control data-label attr)\n        $rows.push(this.renderTopRow ? this.renderTopRow() : h())\n\n        // render the rows\n        items.forEach((item, rowIndex) => {\n          // Render the individual item row (rows if details slot)\n          $rows.push(this.renderTbodyRow(item, rowIndex))\n        })\n\n        // Empty Items / Empty Filtered Row slot (only shows if items.length < 1)\n        $rows.push(this.renderEmpty ? this.renderEmpty() : h())\n\n        // Static bottom row slot (hidden in visibly stacked mode as we can't control data-label attr)\n        $rows.push(this.renderBottomRow ? this.renderBottomRow() : h())\n      }\n\n      // If tbody transition enabled\n      const isTransGroup = this.tbodyTransitionProps || this.tbodyTransitionHandlers\n      let tbodyProps = {}\n      let tbodyOn = {}\n      if (isTransGroup) {\n        tbodyOn = this.tbodyTransitionHandlers || {}\n        tbodyProps = {\n          ...(this.tbodyTransitionProps || {}),\n          tag: 'tbody'\n        }\n      }\n\n      // Assemble rows into the tbody\n      const $tbody = h(\n        isTransGroup ? 'transition-group' : 'tbody',\n        {\n          props: tbodyProps,\n          on: tbodyOn,\n          class: [this.tbodyClass],\n          attrs: { role: 'rowgroup' }\n        },\n        $rows\n      )\n\n      // Return the assembled tbody\n      return $tbody\n    }\n  }\n}\n","import KeyCodes from '../../../utils/key-codes'\nimport get from '../../../utils/get'\nimport toString from '../../../utils/to-string'\nimport { arrayIncludes } from '../../../utils/array'\nimport { isFunction, isNull, isString, isUndefined } from '../../../utils/inspect'\nimport filterEvent from './filter-event'\nimport textSelectionActive from './text-selection-active'\n\nexport default {\n  props: {\n    tbodyTrClass: {\n      type: [String, Array, Function],\n      default: null\n    }\n  },\n  methods: {\n    // Methods for computing classes, attributes and styles for table cells\n    tdClasses(field, item) {\n      let cellVariant = ''\n      if (item._cellVariants && item._cellVariants[field.key]) {\n        cellVariant = `${this.dark ? 'bg' : 'table'}-${item._cellVariants[field.key]}`\n      }\n      return [\n        field.variant && !cellVariant ? `${this.dark ? 'bg' : 'table'}-${field.variant}` : '',\n        cellVariant,\n        field.class ? field.class : '',\n        this.getTdValues(item, field.key, field.tdClass, '')\n      ]\n    },\n    tdAttrs(field, item, colIndex) {\n      const attrs = {\n        role: 'cell',\n        'aria-colindex': String(colIndex + 1)\n      }\n      if (field.isRowHeader) {\n        attrs.scope = 'row'\n        attrs.role = 'rowheader'\n      }\n      if (this.isStacked) {\n        // Generate the \"header cell\" label content in stacked mode\n        attrs['data-label'] = field.label\n      }\n      return { ...attrs, ...this.getTdValues(item, field.key, field.tdAttr, {}) }\n    },\n    rowClasses(item) {\n      return [\n        item._rowVariant ? `${this.dark ? 'bg' : 'table'}-${item._rowVariant}` : '',\n        isFunction(this.tbodyTrClass) ? this.tbodyTrClass(item, 'row') : this.tbodyTrClass\n      ]\n    },\n    getTdValues(item, key, tdValue, defValue) {\n      const parent = this.$parent\n      if (tdValue) {\n        const value = get(item, key, '')\n        if (isFunction(tdValue)) {\n          return tdValue(value, key, item)\n        } else if (isString(tdValue) && isFunction(parent[tdValue])) {\n          return parent[tdValue](value, key, item)\n        }\n        return tdValue\n      }\n      return defValue\n    },\n    // Method to get the value for a field\n    getFormattedValue(item, field) {\n      const key = field.key\n      const formatter = this.getFieldFormatter(key)\n      let value = get(item, key, null)\n      if (isFunction(formatter)) {\n        value = formatter(value, key, item)\n      }\n      return isUndefined(value) || isNull(value) ? '' : value\n    },\n    tbodyRowKeydown(evt, item, rowIndex) {\n      const keyCode = evt.keyCode\n      const target = evt.target\n      const trs = this.$refs.itemRows\n      if (this.stopIfBusy && this.stopIfBusy(evt)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      } else if (!(target && target.tagName === 'TR' && target === document.activeElement)) {\n        // Ignore if not the active tr element\n        return\n      } else if (target.tabIndex !== 0) {\n        // Ignore if not focusable\n        /* istanbul ignore next */\n        return\n      } else if (trs && trs.length === 0) {\n        /* istanbul ignore next */\n        return\n      }\n      const index = trs.indexOf(target)\n      if (keyCode === KeyCodes.ENTER || keyCode === KeyCodes.SPACE) {\n        evt.stopPropagation()\n        evt.preventDefault()\n        // We also allow enter/space to trigger a click (when row is focused)\n        // We translate to a row-clicked event\n        this.rowClicked(evt, item, rowIndex)\n      } else if (\n        arrayIncludes([KeyCodes.UP, KeyCodes.DOWN, KeyCodes.HOME, KeyCodes.END], keyCode)\n      ) {\n        evt.stopPropagation()\n        evt.preventDefault()\n        const shift = evt.shiftKey\n        if (keyCode === KeyCodes.HOME || (shift && keyCode === KeyCodes.UP)) {\n          // Focus first row\n          trs[0].focus()\n        } else if (keyCode === KeyCodes.END || (shift && keyCode === KeyCodes.DOWN)) {\n          // Focus last row\n          trs[trs.length - 1].focus()\n        } else if (keyCode === KeyCodes.UP && index > 0) {\n          // Focus previous row\n          trs[index - 1].focus()\n        } else if (keyCode === KeyCodes.DOWN && index < trs.length - 1) {\n          // Focus next row\n          trs[index + 1].focus()\n        }\n      }\n    },\n    // Row event handlers\n    rowClicked(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      } else if (filterEvent(e)) {\n        // clicked on a non-disabled control so ignore\n        return\n      } else if (textSelectionActive(this.$el)) {\n        // User is selecting text, so ignore\n        /* istanbul ignore next: JSDOM doesn't support getSelection() */\n        return\n      }\n      this.$emit('row-clicked', item, index, e)\n    },\n    middleMouseRowClicked(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      }\n      this.$emit('row-middle-clicked', item, index, e)\n    },\n    rowDblClicked(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      } else if (filterEvent(e)) {\n        // clicked on a non-disabled control so ignore\n        /* istanbul ignore next: event filtering already tested via click handler */\n        return\n      }\n      this.$emit('row-dblclicked', item, index, e)\n    },\n    rowHovered(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      }\n      this.$emit('row-hovered', item, index, e)\n    },\n    rowUnhovered(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      }\n      this.$emit('row-unhovered', item, index, e)\n    },\n    rowContextmenu(e, item, index) {\n      if (this.stopIfBusy && this.stopIfBusy(e)) {\n        // If table is busy (via provider) then don't propagate\n        return\n      }\n      this.$emit('row-contextmenu', item, index, e)\n    },\n    // Render helpers\n    renderTbodyRowCell(field, colIndex, item, rowIndex) {\n      const h = this.$createElement\n\n      // Renders a TD or TH for a row's field\n      const $scoped = this.$scopedSlots\n      const detailsSlot = $scoped['row-details']\n      const formatted = this.getFormattedValue(item, field)\n      const data = {\n        // For the Vue key, we concatenate the column index and\n        // field key (as field keys can be duplicated)\n        key: `row-${rowIndex}-cell-${colIndex}-${field.key}`,\n        class: this.tdClasses(field, item),\n        attrs: this.tdAttrs(field, item, colIndex)\n      }\n      const toggleDetailsFn = () => {\n        if (detailsSlot) {\n          this.$set(item, '_showDetails', !item._showDetails)\n        }\n      }\n      const slotScope = {\n        item: item,\n        index: rowIndex,\n        field: field,\n        unformatted: get(item, field.key, ''),\n        value: formatted,\n        toggleDetails: toggleDetailsFn,\n        detailsShowing: Boolean(item._showDetails)\n      }\n      if (this.selectedRows) {\n        // Add in rowSelected scope property if selectable rows supported\n        slotScope.rowSelected = Boolean(this.selectedRows[rowIndex])\n      }\n      let $childNodes = $scoped[field.key] ? $scoped[field.key](slotScope) : toString(formatted)\n      if (this.isStacked) {\n        // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n        $childNodes = [h('div', {}, [$childNodes])]\n      }\n      // Render either a td or th cell\n      return h(field.isRowHeader ? 'th' : 'td', data, [$childNodes])\n    },\n    renderTbodyRow(item, rowIndex) {\n      // Renders an item's row (or rows if details supported)\n      const h = this.$createElement\n      const $scoped = this.$scopedSlots\n      const fields = this.computedFields\n      const tableStriped = this.striped\n      const hasRowClickHandler = this.$listeners['row-clicked'] || this.selectable\n      const $detailsSlot = $scoped['row-details']\n      const rowShowDetails = Boolean(item._showDetails && $detailsSlot)\n\n      // We can return more than one TR if rowDetails enabled\n      const $rows = []\n\n      // Details ID needed for aria-describedby when details showing\n      const detailsId = rowShowDetails ? this.safeId(`_details_${rowIndex}_`) : null\n      const toggleDetailsFn = () => {\n        if ($detailsSlot) {\n          this.$set(item, '_showDetails', !item._showDetails)\n        }\n      }\n\n      // For each item data field in row\n      const $tds = fields.map((field, colIndex) => {\n        return this.renderTbodyRowCell(field, colIndex, item, rowIndex)\n      })\n\n      // Calculate the row number in the dataset (indexed from 1)\n      let ariaRowIndex = null\n      if (this.currentPage && this.perPage && this.perPage > 0) {\n        ariaRowIndex = String((this.currentPage - 1) * this.perPage + rowIndex + 1)\n      }\n\n      // Create a unique :key to help ensure that sub components are re-rendered rather than\n      // re-used, which can cause issues. If a primary key is not provided we use the rendered\n      // rows index within the tbody.\n      // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n      const primaryKey = this.primaryKey\n      const rowKey =\n        primaryKey && !isUndefined(item[primaryKey]) && !isNull(item[primaryKey])\n          ? toString(item[primaryKey])\n          : String(rowIndex)\n\n      // If primary key is provided, use it to generate a unique ID on each tbody > tr\n      // In the format of '{tableId}__row_{primaryKeyValue}'\n      const rowId =\n        primaryKey && !isUndefined(item[primaryKey]) && !isNull(item[primaryKey])\n          ? this.safeId(`_row_${item[primaryKey]}`)\n          : null\n\n      const handlers = {}\n      if (hasRowClickHandler) {\n        handlers['click'] = evt => {\n          this.rowClicked(evt, item, rowIndex)\n        }\n        handlers['keydown'] = evt => {\n          this.tbodyRowKeydown(evt, item, rowIndex)\n        }\n      }\n\n      // Selectable classes and attributes\n      const selectableClasses = this.selectableRowClasses ? this.selectableRowClasses(rowIndex) : {}\n      const selectableAttrs = this.selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {}\n\n      // Add the item row\n      $rows.push(\n        h(\n          'tr',\n          {\n            key: `__b-table-row-${rowKey}__`,\n            ref: 'itemRows',\n            refInFor: true,\n            class: [\n              this.rowClasses(item),\n              selectableClasses,\n              {\n                'b-table-has-details': rowShowDetails\n              }\n            ],\n            attrs: {\n              id: rowId,\n              tabindex: hasRowClickHandler ? '0' : null,\n              'data-pk': rowId ? String(item[primaryKey]) : null,\n              'aria-describedby': detailsId,\n              'aria-owns': detailsId,\n              'aria-rowindex': ariaRowIndex,\n              role: 'row',\n              ...selectableAttrs\n            },\n            on: {\n              ...handlers,\n              // TODO: Instantiate the following handlers only if we have registered\n              //       listeners i.e. this.$listeners['row-middle-clicked'], etc.\n              auxclick: evt => {\n                if (evt.which === 2) {\n                  this.middleMouseRowClicked(evt, item, rowIndex)\n                }\n              },\n              contextmenu: evt => {\n                this.rowContextmenu(evt, item, rowIndex)\n              },\n              // Note: these events are not accessibility friendly!\n              dblclick: evt => {\n                this.rowDblClicked(evt, item, rowIndex)\n              },\n              mouseenter: evt => {\n                this.rowHovered(evt, item, rowIndex)\n              },\n              mouseleave: evt => {\n                this.rowUnhovered(evt, item, rowIndex)\n              }\n            }\n          },\n          $tds\n        )\n      )\n\n      // Row Details slot\n      if (rowShowDetails) {\n        const tdAttrs = {\n          colspan: String(fields.length),\n          role: 'cell'\n        }\n        const trAttrs = {\n          id: detailsId,\n          role: 'row'\n        }\n        // Render the details slot\n        const $details = h('td', { attrs: tdAttrs }, [\n          $detailsSlot({\n            item: item,\n            index: rowIndex,\n            fields: fields,\n            toggleDetails: toggleDetailsFn\n          })\n        ])\n\n        // Add a hidden row to keep table row striping consistent when details showing\n        if (tableStriped) {\n          $rows.push(\n            h('tr', {\n              key: `__b-table-details-${rowIndex}-stripe__`,\n              staticClass: 'd-none',\n              attrs: { 'aria-hidden': 'true', role: 'presentation' }\n            })\n          )\n        }\n\n        // Add the actual details row\n        $rows.push(\n          h(\n            'tr',\n            {\n              key: `__b-table-details-${rowIndex}__`,\n              staticClass: 'b-table-details',\n              class: [\n                isFunction(this.tbodyTrClass)\n                  ? this.tbodyTrClass(item, 'row-details')\n                  : this.tbodyTrClass\n              ],\n              attrs: trAttrs\n            },\n            [$details]\n          )\n        )\n      } else if ($detailsSlot) {\n        // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n        $rows.push(h())\n        if (tableStriped) {\n          // add extra placeholder if table is striped\n          $rows.push(h())\n        }\n      }\n\n      // Return the row(s)\n      return $rows\n    }\n  }\n}\n","import { htmlOrText } from '../../../utils/html'\nimport { isFunction } from '../../../utils/inspect'\n\nexport default {\n  props: {\n    showEmpty: {\n      type: Boolean,\n      default: false\n    },\n    emptyText: {\n      type: String,\n      default: 'There are no records to show'\n    },\n    emptyHtml: {\n      type: String\n    },\n    emptyFilteredText: {\n      type: String,\n      default: 'There are no records matching your request'\n    },\n    emptyFilteredHtml: {\n      type: String\n    }\n  },\n  methods: {\n    renderEmpty() {\n      const h = this.$createElement\n      const items = this.computedItems\n      let $empty\n\n      if (\n        this.showEmpty &&\n        (!items || items.length === 0) &&\n        !(this.computedBusy && this.hasNormalizedSlot('table-busy'))\n      ) {\n        $empty = this.normalizeSlot(this.isFiltered ? 'emptyfiltered' : 'empty', {\n          emptyFilteredHtml: this.emptyFilteredHtml,\n          emptyFilteredText: this.emptyFilteredText,\n          emptyHtml: this.emptyHtml,\n          emptyText: this.emptyText,\n          fields: this.computedFields,\n          // Not sure why this is included, as it will always be an empty array\n          items: this.computedItems\n        })\n        if (!$empty) {\n          $empty = h('div', {\n            class: ['text-center', 'my-2'],\n            domProps: this.isFiltered\n              ? htmlOrText(this.emptyFilteredHtml, this.emptyFilteredText)\n              : htmlOrText(this.emptyHtml, this.emptyText)\n          })\n        }\n        $empty = h(\n          'td',\n          {\n            attrs: {\n              colspan: String(this.computedFields.length),\n              role: 'cell'\n            }\n          },\n          [h('div', { attrs: { role: 'alert', 'aria-live': 'polite' } }, [$empty])]\n        )\n        $empty = h(\n          'tr',\n          {\n            key: this.isFiltered ? '_b-table-empty-filtered-row_' : '_b-table-empty-row_',\n            staticClass: 'b-table-empty-row',\n            class: [\n              isFunction(this.tbodyTrClass)\n                ? this.tbodyTrClass(null, 'row-empty')\n                : this.tbodyTrClass\n            ],\n            attrs: { role: 'row' }\n          },\n          [$empty]\n        )\n      }\n\n      return $empty || h()\n    }\n  }\n}\n","import { isFunction } from '../../../utils/inspect'\n\nexport default {\n  methods: {\n    renderTopRow() {\n      const h = this.$createElement\n\n      // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n      // If in always stacked mode, we don't bother rendering the row\n      if (!this.hasNormalizedSlot('top-row') || this.isStacked === true) {\n        return h()\n      }\n\n      const fields = this.computedFields\n\n      return h(\n        'tr',\n        {\n          key: 'top-row',\n          staticClass: 'b-table-top-row',\n          class: [\n            isFunction(this.tbodyTrClass) ? this.tbodyTrClass(null, 'row-top') : this.tbodyTrClass\n          ],\n          attrs: { role: 'row' }\n        },\n        [this.normalizeSlot('top-row', { columns: fields.length, fields: fields })]\n      )\n    }\n  }\n}\n","import { isFunction } from '../../../utils/inspect'\n\nexport default {\n  methods: {\n    renderBottomRow() {\n      const h = this.$createElement\n\n      // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n      // If in always stacked mode, we don't bother rendering the row\n      if (!this.hasNormalizedSlot('bottom-row') || this.isStacked === true) {\n        return h()\n      }\n\n      const fields = this.computedFields\n\n      return h(\n        'tr',\n        {\n          key: '__b-table-bottom-row__',\n          staticClass: 'b-table-bottom-row',\n          class: [\n            isFunction(this.tbodyTrClass)\n              ? this.tbodyTrClass(null, 'row-bottom')\n              : this.tbodyTrClass\n          ],\n          attrs: { role: 'row' }\n        },\n        this.normalizeSlot('bottom-row', { columns: fields.length, fields: fields })\n      )\n    }\n  }\n}\n","import { isFunction } from '../../../utils/inspect'\n\nexport default {\n  props: {\n    busy: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      localBusy: false\n    }\n  },\n  computed: {\n    computedBusy() {\n      return this.busy || this.localBusy\n    }\n  },\n  watch: {\n    localBusy(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        this.$emit('update:busy', newVal)\n      }\n    }\n  },\n  methods: {\n    // Event handler helper\n    stopIfBusy(evt) {\n      if (this.computedBusy) {\n        // If table is busy (via provider) then don't propagate\n        evt.preventDefault()\n        evt.stopPropagation()\n        return true\n      }\n      return false\n    },\n    // Renter the busy indicator or return null if not busy\n    renderBusy() {\n      const h = this.$createElement\n\n      // Return a busy indicator row, or null if not busy\n      if (this.computedBusy && this.hasNormalizedSlot('table-busy')) {\n        // Show the busy slot\n        const trAttrs = {\n          role: this.isStacked ? 'row' : null\n        }\n        const tdAttrs = {\n          colspan: String(this.computedFields.length),\n          role: this.isStacked ? 'cell' : null\n        }\n        return h(\n          'tr',\n          {\n            key: 'table-busy-slot',\n            staticClass: 'b-table-busy-slot',\n            class: [\n              isFunction(this.tbodyTrClass)\n                ? this.tbodyTrClass(null, 'table-busy')\n                : this.tbodyTrClass\n            ],\n            attrs: trAttrs\n          },\n          [h('td', { attrs: tdAttrs }, [this.normalizeSlot('table-busy')])]\n        )\n      } else {\n        // We return null here so that we can determine if we need to\n        // render the table items rows or not.\n        return null\n      }\n    }\n  }\n}\n","import looseEqual from '../../../utils/loose-equal'\nimport { isArray, arrayIncludes } from '../../../utils/array'\nimport { getComponentConfig } from '../../../utils/config'\nimport sanitizeRow from './sanitize-row'\n\nexport default {\n  props: {\n    selectable: {\n      type: Boolean,\n      default: false\n    },\n    selectMode: {\n      type: String,\n      default: 'multi'\n    },\n    selectedVariant: {\n      type: String,\n      default: () => getComponentConfig('BTable', 'selectedVariant')\n    }\n  },\n  data() {\n    return {\n      selectedRows: [],\n      selectedLastRow: -1\n    }\n  },\n  computed: {\n    selectableTableClasses() {\n      const selectable = this.selectable\n      const isSelecting = selectable && this.selectedRows && this.selectedRows.some(Boolean)\n      return {\n        'b-table-selectable': selectable,\n        [`b-table-select-${this.selectMode}`]: selectable,\n        'b-table-selecting': isSelecting\n      }\n    },\n    selectableTableAttrs() {\n      return {\n        'aria-multiselectable': this.selectableIsMultiSelect\n      }\n    },\n    selectableIsMultiSelect() {\n      if (this.selectable) {\n        return arrayIncludes(['range', 'multi'], this.selectMode) ? 'true' : 'false'\n      } else {\n        return null\n      }\n    }\n  },\n  watch: {\n    computedItems(newVal, oldVal) {\n      // Reset for selectable\n      // TODO: Should selectedLastClicked be reset here?\n      //       As changes to _showDetails would trigger it to reset\n      this.selectedLastRow = -1\n      let equal = false\n      if (this.selectable && this.selectedRows.length > 0) {\n        // Quick check against array length\n        equal = isArray(newVal) && isArray(oldVal) && newVal.length === oldVal.length\n        for (let i = 0; equal && i < newVal.length; i++) {\n          // Look for the first non-loosely equal row, after ignoring reserved fields\n          equal = looseEqual(sanitizeRow(newVal[i]), sanitizeRow(oldVal[i]))\n        }\n      }\n      if (!equal) {\n        this.clearSelected()\n      }\n    },\n    selectable(newVal, oldVal) {\n      this.clearSelected()\n      this.setSelectionHandlers(newVal)\n    },\n    selectMode(newVal, oldVal) {\n      this.clearSelected()\n    },\n    selectedRows(selectedRows, oldVal) {\n      if (this.selectable && !looseEqual(selectedRows, oldVal)) {\n        const items = []\n        // forEach skips over non-existant indicies (on sparse arrays)\n        selectedRows.forEach((v, idx) => {\n          if (v) {\n            items.push(this.computedItems[idx])\n          }\n        })\n        this.$emit('row-selected', items)\n      }\n    }\n  },\n  beforeMount() {\n    // Set up handlers\n    if (this.selectable) {\n      this.setSelectionHandlers(true)\n    }\n  },\n  methods: {\n    isRowSelected(idx) {\n      return Boolean(this.selectedRows[idx])\n    },\n    selectableRowClasses(idx) {\n      const rowSelected = this.isRowSelected(idx)\n      const base = this.dark ? 'bg' : 'table'\n      const variant = this.selectedVariant\n      return {\n        'b-table-row-selected': this.selectable && rowSelected,\n        [`${base}-${variant}`]: this.selectable && rowSelected && variant\n      }\n    },\n    selectableRowAttrs(idx) {\n      return {\n        'aria-selected': !this.selectable ? null : this.isRowSelected(idx) ? 'true' : 'false'\n      }\n    },\n    clearSelected() {\n      const hasSelection = this.selectedRows.reduce((prev, v) => {\n        return prev || v\n      }, false)\n      if (hasSelection) {\n        this.selectedLastClicked = -1\n        this.selectedRows = []\n      }\n    },\n    setSelectionHandlers(on) {\n      const method = on ? '$on' : '$off'\n      // Handle row-clicked event\n      this[method]('row-clicked', this.selectionHandler)\n      // Clear selection on filter, pagination, and sort changes\n      this[method]('filtered', this.clearSelected)\n      this[method]('context-changed', this.clearSelected)\n    },\n    selectionHandler(item, index, evt) {\n      /* istanbul ignore if: should never happen */\n      if (!this.selectable) {\n        // Don't do anything if table is not in selectable mode\n        /* istanbul ignore next: should never happen */\n        this.clearSelected()\n        /* istanbul ignore next: should never happen */\n        return\n      }\n      let selectedRows = this.selectedRows.slice()\n      let selected = !selectedRows[index]\n      const mode = this.selectMode\n      // Note 'multi' mode needs no special handling\n      if (mode === 'single') {\n        selectedRows = []\n      } else if (mode === 'range') {\n        if (this.selectedLastRow > -1 && evt.shiftKey) {\n          // range\n          for (\n            let idx = Math.min(this.selectedLastRow, index);\n            idx <= Math.max(this.selectedLastRow, index);\n            idx++\n          ) {\n            selectedRows[idx] = true\n          }\n          selected = true\n        } else {\n          if (!(evt.ctrlKey || evt.metaKey)) {\n            // clear range selection if any\n            selectedRows = []\n            selected = true\n          }\n          this.selectedLastRow = selected ? index : -1\n        }\n      }\n      selectedRows[index] = selected\n      this.selectedRows = selectedRows\n    }\n  }\n}\n","import looseEqual from '../../../utils/loose-equal'\nimport warn from '../../../utils/warn'\nimport { isArray, isFunction, isPromise } from '../../../utils/inspect'\nimport listenOnRootMixin from '../../../mixins/listen-on-root'\n\nexport default {\n  mixins: [listenOnRootMixin],\n  props: {\n    // Prop override(s)\n    items: {\n      // Adds in 'Function' support\n      type: [Array, Function],\n      default() /* istanbul ignore next */ {\n        return []\n      }\n    },\n    // Additional props\n    noProviderPaging: {\n      type: Boolean,\n      default: false\n    },\n    noProviderSorting: {\n      type: Boolean,\n      default: false\n    },\n    noProviderFiltering: {\n      type: Boolean,\n      default: false\n    },\n    apiUrl: {\n      // Passthrough prop. Passed to the context object. Not used by b-table directly\n      type: String,\n      default: ''\n    }\n  },\n  computed: {\n    hasProvider() {\n      return isFunction(this.items)\n    },\n    providerTriggerContext() {\n      // Used to trigger the provider function via a watcher. Only the fields that\n      // are needed for triggering a provider update are included. Note that the\n      // regular this.context is sent to the provider during fetches though, as they\n      // may need all the prop info.\n      const ctx = {\n        apiUrl: this.apiUrl,\n        filter: null,\n        sortBy: null,\n        sortDesc: null,\n        perPage: null,\n        currentPage: null\n      }\n      if (!this.noProviderFiltering) {\n        // Either a string, or could be an object or array.\n        ctx.filter = this.localFilter\n      }\n      if (!this.noProviderSorting) {\n        ctx.sortBy = this.localSortBy\n        ctx.sortDesc = this.localSortDesc\n      }\n      if (!this.noProviderPaging) {\n        ctx.perPage = this.perPage\n        ctx.currentPage = this.currentPage\n      }\n      return { ...ctx }\n    }\n  },\n  watch: {\n    // Provider update triggering\n    items(newVal, oldVal) {\n      // If a new provider has been specified, trigger an update\n      if (this.hasProvider || isFunction(newVal)) {\n        this.$nextTick(this._providerUpdate)\n      }\n    },\n    providerTriggerContext(newVal, oldVal) {\n      // Trigger the provider to update as the relevant context values have changed.\n      if (!looseEqual(newVal, oldVal)) {\n        this.$nextTick(this._providerUpdate)\n      }\n    }\n  },\n  mounted() {\n    // Call the items provider if necessary\n    if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {\n      // Fetch on mount if localItems is empty\n      this._providerUpdate()\n    }\n    // Listen for global messages to tell us to force refresh the table\n    this.listenOnRoot('bv::refresh::table', id => {\n      if (id === this.id || id === this) {\n        this.refresh()\n      }\n    })\n  },\n  methods: {\n    refresh() {\n      // Public Method: Force a refresh of the provider function\n      this.$off('refreshed', this.refresh)\n      if (this.computedBusy) {\n        // Can't force an update when forced busy by user (busy prop === true)\n        if (this.localBusy && this.hasProvider) {\n          // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted\n          this.$on('refreshed', this.refresh)\n        }\n      } else {\n        this.clearSelected()\n        if (this.hasProvider) {\n          this.$nextTick(this._providerUpdate)\n        } else {\n          /* istanbul ignore next */\n          this.localItems = isArray(this.items) ? this.items.slice() : []\n        }\n      }\n    },\n    // Provider related methods\n    _providerSetLocal(items) {\n      this.localItems = isArray(items) ? items.slice() : []\n      this.localBusy = false\n      this.$emit('refreshed')\n      // New root emit\n      if (this.id) {\n        this.emitOnRoot('bv::table::refreshed', this.id)\n      }\n    },\n    _providerUpdate() {\n      // Refresh the provider function items.\n      if (!this.hasProvider) {\n        // Do nothing if no provider\n        return\n      }\n      // If table is busy, wait until refreshed before calling again\n      if (this.computedBusy) {\n        // Schedule a new refresh once `refreshed` is emitted\n        this.$nextTick(this.refresh)\n        return\n      }\n\n      // Set internal busy state\n      this.localBusy = true\n\n      // Call provider function with context and optional callback after DOM is fully updated\n      this.$nextTick(() => {\n        try {\n          // Call provider function passing it the context and optional callback\n          const data = this.items(this.context, this._providerSetLocal)\n          if (isPromise(data)) {\n            // Provider returned Promise\n            data.then(items => {\n              // Provider resolved with items\n              this._providerSetLocal(items)\n            })\n          } else if (isArray(data)) {\n            // Provider returned Array data\n            this._providerSetLocal(data)\n          } else if (this.items.length !== 2) {\n            // Check number of arguments provider function requested\n            // Provider not using callback (didn't request second argument), so we clear\n            // busy state as most likely there was an error in the provider function\n            /* istanbul ignore next */\n            warn(\n              \"b-table provider function didn't request callback and did not return a promise or data\"\n            )\n            /* istanbul ignore next */\n            this.localBusy = false\n          }\n        } catch (e) /* istanbul ignore next */ {\n          // Provider function borked on us, so we spew out a warning\n          // and clear the busy state\n          warn(`b-table provider function error [${e.name}] ${e.message}`)\n          this.localBusy = false\n          this.$off('refreshed', this.refresh)\n        }\n      })\n    }\n  }\n}\n","// Main `<table>` render mixin\n// Which indlues all main table stlying options\n\nexport default {\n  // Don't place ATTRS on root element automatically, as table could be wrapped in responsive div\n  inheritAttrs: false,\n  props: {\n    striped: {\n      type: Boolean,\n      default: false\n    },\n    bordered: {\n      type: Boolean,\n      default: false\n    },\n    borderless: {\n      type: Boolean,\n      default: false\n    },\n    outlined: {\n      type: Boolean,\n      default: false\n    },\n    dark: {\n      type: Boolean,\n      default: false\n    },\n    hover: {\n      type: Boolean,\n      default: false\n    },\n    small: {\n      type: Boolean,\n      default: false\n    },\n    fixed: {\n      type: Boolean,\n      default: false\n    },\n    responsive: {\n      type: [Boolean, String],\n      default: false\n    },\n    stacked: {\n      type: [Boolean, String],\n      default: false\n    },\n    tableClass: {\n      type: [String, Array, Object],\n      default: null\n    }\n  },\n  computed: {\n    // Layout related computed props\n    isStacked() {\n      return this.stacked === '' ? true : this.stacked\n    },\n    isResponsive() {\n      const responsive = this.responsive === '' ? true : this.responsive\n      return this.isStacked ? false : responsive\n    },\n    responsiveClass() {\n      return this.isResponsive === true\n        ? 'table-responsive'\n        : this.isResponsive\n          ? `table-responsive-${this.responsive}`\n          : ''\n    },\n    tableClasses() {\n      return [\n        // User supplied classes\n        this.tableClass,\n        // Styling classes\n        {\n          'table-striped': this.striped,\n          'table-hover': this.hover && this.computedItems.length > 0 && !this.computedBusy,\n          'table-dark': this.dark,\n          'table-bordered': this.bordered,\n          'table-borderless': this.borderless,\n          'table-sm': this.small,\n          border: this.outlined,\n          // The following are b-table custom styles\n          'b-table-fixed': this.fixed,\n          'b-table-stacked': this.stacked === true || this.stacked === '',\n          [`b-table-stacked-${this.stacked}`]: this.stacked !== true && this.stacked\n        },\n        // Selectable classes\n        this.selectableTableClasses\n      ]\n    },\n    tableAttrs() {\n      // Preserve user supplied aria-describedby, if provided in $attrs\n      const adb =\n        [(this.$attrs || {})['aria-describedby'], this.captionId].filter(Boolean).join(' ') || null\n      const items = this.computedItems\n      const fields = this.computedFields\n      const selectableAttrs = this.selectableTableAttrs || {}\n      return {\n        // We set aria-rowcount before merging in $attrs, in case user has supplied their own\n        'aria-rowcount':\n          this.filteredItems && this.filteredItems.length > items.length\n            ? String(this.filteredItems.length)\n            : null,\n        // Merge in user supplied $attrs if any\n        ...this.$attrs,\n        // Now we can override any $attrs here\n        id: this.safeId(),\n        role: this.isStacked ? 'table' : null,\n        'aria-busy': this.computedBusy ? 'true' : 'false',\n        'aria-colcount': String(fields.length),\n        'aria-describedby': adb,\n        ...selectableAttrs\n      }\n    }\n  },\n  render(h) {\n    // Build the caption (from caption mixin)\n    const $caption = this.renderCaption ? this.renderCaption() : null\n\n    // Build the colgroup\n    const $colgroup = this.renderColgroup ? this.renderColgroup() : null\n\n    // Build the thead\n    const $thead = this.renderThead()\n\n    // Build the tfoot\n    const $tfoot = this.renderTfoot()\n\n    // Build the tbody\n    const $tbody = this.renderTbody()\n\n    // Assemble table\n    const $table = h(\n      'table',\n      {\n        key: 'b-table',\n        staticClass: 'table b-table',\n        class: this.tableClasses,\n        attrs: this.tableAttrs\n      },\n      [$caption, $colgroup, $thead, $tfoot, $tbody].filter(Boolean)\n    )\n\n    // Add responsive wrapper if needed and return table\n    return this.isResponsive\n      ? h('div', { key: 'b-table-responsive', class: this.responsiveClass }, [$table])\n      : $table\n  }\n}\n","import { BTable } from './table'\nimport { BTableLite } from './table-lite'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst TablePlugin = /*#__PURE__*/ pluginFactory({\n  components: { BTable, BTableLite }\n})\n\nexport { TablePlugin, BTable, BTableLite }\n\nexport default TablePlugin\n","import Vue from '../../utils/vue'\n\n// Mixins\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\n// Table helper Mixins\nimport itemsMixin from './helpers/mixin-items'\nimport filteringMixin from './helpers/mixin-filtering'\nimport sortingMixin from './helpers/mixin-sorting'\nimport paginationMixin from './helpers/mixin-pagination'\nimport captionMixin from './helpers/mixin-caption'\nimport colgroupMixin from './helpers/mixin-colgroup'\nimport theadMixin from './helpers/mixin-thead'\nimport tfootMixin from './helpers/mixin-tfoot'\nimport tbodyMixin from './helpers/mixin-tbody'\nimport emptyMixin from './helpers//mixin-empty'\nimport topRowMixin from './helpers//mixin-top-row'\nimport bottomRowMixin from './helpers//mixin-bottom-row'\nimport busyMixin from './helpers/mixin-busy'\nimport selectableMixin from './helpers/mixin-selectable'\nimport providerMixin from './helpers/mixin-provider'\n\n// Main table renderer mixin\nimport tableRendererMixin from './helpers/mixin-table-renderer'\n\n// b-table component definition\n// @vue/component\nexport const BTable = /*#__PURE__*/ Vue.extend({\n  name: 'BTable',\n  // Order of mixins is important!\n  // They are merged from first to last, followed by this component.\n  mixins: [\n    // Required Mixins\n    idMixin,\n    normalizeSlotMixin,\n    itemsMixin,\n    tableRendererMixin,\n    theadMixin,\n    tfootMixin,\n    tbodyMixin,\n    // Features Mixins\n    filteringMixin,\n    sortingMixin,\n    paginationMixin,\n    captionMixin,\n    colgroupMixin,\n    selectableMixin,\n    emptyMixin,\n    topRowMixin,\n    bottomRowMixin,\n    busyMixin,\n    providerMixin\n  ]\n  // render function provided by table-renderer mixin\n})\n\nexport default BTable\n","import Vue from '../../utils/vue'\n\n// Mixins\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\n\n// Table helper Mixins\nimport itemsMixin from './helpers/mixin-items'\nimport captionMixin from './helpers/mixin-caption'\nimport colgroupMixin from './helpers/mixin-colgroup'\nimport theadMixin from './helpers/mixin-thead'\nimport tfootMixin from './helpers/mixin-tfoot'\nimport tbodyMixin from './helpers/mixin-tbody'\n\n// Main table renderer mixin\nimport tableRendererMixin from './helpers/mixin-table-renderer'\n\n// b-table-lite component definition\n// @vue/component\nexport const BTableLite = /*#__PURE__*/ Vue.extend({\n  name: 'BTableLite',\n  // Order of mixins is important!\n  // They are merged from first to last, followed by this component.\n  mixins: [\n    // Required mixins\n    idMixin,\n    normalizeSlotMixin,\n    itemsMixin,\n    tableRendererMixin,\n    theadMixin,\n    tfootMixin,\n    tbodyMixin,\n    // Features Mixins\n    // These are pretty lightweight, and are useful for plain tables\n    captionMixin,\n    colgroupMixin\n  ]\n  // render function provided by table-renderer mixin\n})\n\nexport default BTableLite\n","import Vue from '../../utils/vue'\nimport KeyCodes from '../../utils/key-codes'\nimport looseEqual from '../../utils/loose-equal'\nimport observeDom from '../../utils/observe-dom'\nimport stableSort from '../../utils/stable-sort'\nimport { arrayIncludes, concat } from '../../utils/array'\nimport { requestAF, selectAll } from '../../utils/dom'\nimport { isEvent } from '../../utils/inspect'\nimport { omit } from '../../utils/object'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BLink } from '../link/link'\nimport { BNav, props as BNavProps } from '../nav/nav'\n\n// -- Constants --\n\nconst navProps = omit(BNavProps, ['tabs', 'isNavBar'])\n\n// -- Utils --\n\n// Filter function to filter out disabled tabs\nconst notDisabled = tab => !tab.disabled\n\n// --- Helper components ---\n\n// @vue/component\nconst BTabButtonHelper = /*#__PURE__*/ Vue.extend({\n  name: 'BTabButtonHelper',\n  inject: {\n    bvTabs: {\n      default() /* istanbul ignore next */ {\n        return {}\n      }\n    }\n  },\n  props: {\n    // Reference to the child <b-tab> instance\n    tab: { default: null },\n    tabs: {\n      type: Array,\n      default() /* istanbul ignore next */ {\n        return []\n      }\n    },\n    id: { type: String, default: null },\n    controls: { type: String, default: null },\n    tabIndex: { type: Number, default: null },\n    posInSet: { type: Number, default: null },\n    setSize: { type: Number, default: null },\n    noKeyNav: { type: Boolean, default: false }\n  },\n  methods: {\n    focus() {\n      if (this.$refs && this.$refs.link && this.$refs.link.focus) {\n        this.$refs.link.focus()\n      }\n    },\n    handleEvt(evt) {\n      const stop = () => {\n        evt.preventDefault()\n        evt.stopPropagation()\n      }\n      if (this.tab.disabled) {\n        /* istanbul ignore next */\n        return\n      }\n      const type = evt.type\n      const key = evt.keyCode\n      const shift = evt.shiftKey\n      if (type === 'click') {\n        stop()\n        this.$emit('click', evt)\n      } else if (type === 'keydown' && !this.noKeyNav && key === KeyCodes.SPACE) {\n        // In keynav mode, SPACE press will also trigger a click/select\n        stop()\n        this.$emit('click', evt)\n      } else if (type === 'keydown' && !this.noKeyNav) {\n        // For keyboard navigation\n        if (key === KeyCodes.UP || key === KeyCodes.LEFT || key === KeyCodes.HOME) {\n          stop()\n          if (shift || key === KeyCodes.HOME) {\n            this.$emit('first', evt)\n          } else {\n            this.$emit('prev', evt)\n          }\n        } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT || key === KeyCodes.END) {\n          stop()\n          if (shift || key === KeyCodes.END) {\n            this.$emit('last', evt)\n          } else {\n            this.$emit('next', evt)\n          }\n        }\n      }\n    }\n  },\n  render(h) {\n    const link = h(\n      BLink,\n      {\n        ref: 'link',\n        staticClass: 'nav-link',\n        class: [\n          {\n            active: this.tab.localActive && !this.tab.disabled,\n            disabled: this.tab.disabled\n          },\n          this.tab.titleLinkClass,\n          // Apply <b-tabs> `activeNavItemClass` styles when the tab is active\n          this.tab.localActive ? this.bvTabs.activeNavItemClass : null\n        ],\n        props: {\n          href: this.tab.href, // To be deprecated to always be '#'\n          disabled: this.tab.disabled\n        },\n        attrs: {\n          role: 'tab',\n          id: this.id,\n          // Roving tab index when keynav enabled\n          tabindex: this.tabIndex,\n          'aria-selected': this.tab.localActive && !this.tab.disabled ? 'true' : 'false',\n          'aria-setsize': this.setSize,\n          'aria-posinset': this.posInSet,\n          'aria-controls': this.controls\n        },\n        on: {\n          click: this.handleEvt,\n          keydown: this.handleEvt\n        }\n      },\n      [this.tab.normalizeSlot('title') || this.tab.title]\n    )\n    return h(\n      'li',\n      {\n        staticClass: 'nav-item',\n        class: [this.tab.titleItemClass],\n        attrs: { role: 'presentation' }\n      },\n      [link]\n    )\n  }\n})\n\n// @vue/component\nexport const BTabs = /*#__PURE__*/ Vue.extend({\n  name: 'BTabs',\n  mixins: [idMixin, normalizeSlotMixin],\n  provide() {\n    return {\n      bvTabs: this\n    }\n  },\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props: {\n    ...navProps,\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    card: {\n      type: Boolean,\n      default: false\n    },\n    bottom: {\n      type: Boolean,\n      default: false\n    },\n    end: {\n      // Synonym for 'bottom'\n      type: Boolean,\n      default: false\n    },\n    noFade: {\n      type: Boolean,\n      default: false\n    },\n    noNavStyle: {\n      type: Boolean,\n      default: false\n    },\n    noKeyNav: {\n      type: Boolean,\n      default: false\n    },\n    lazy: {\n      // This prop is sniffed by the <b-tab> child\n      type: Boolean,\n      default: false\n    },\n    contentClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    navClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    navWrapperClass: {\n      type: [String, Array, Object],\n      default: null\n    },\n    activeNavItemClass: {\n      // Only applied to the currently active <b-nav-item>\n      type: [String, Array, Object],\n      default: null\n    },\n    activeTabClass: {\n      // Only applied to the currently active <b-tab>\n      // This prop is sniffed by the <b-tab> child\n      type: [String, Array, Object],\n      default: null\n    },\n    value: {\n      // v-model\n      type: Number,\n      default: null\n    }\n  },\n  data() {\n    let tabIdx = parseInt(this.value, 10)\n    tabIdx = isNaN(tabIdx) ? -1 : tabIdx\n    return {\n      // Index of current tab\n      currentTab: tabIdx,\n      // Array of direct child <b-tab> instances, in DOM order\n      tabs: [],\n      // Array of child instances registered (for triggering reactive updates)\n      registeredTabs: [],\n      // Flag to know if we are mounted or not\n      isMounted: false\n    }\n  },\n  computed: {\n    fade() {\n      // This computed prop is sniffed by the tab child\n      return !this.noFade\n    },\n    navStyle() {\n      return this.pills ? 'pills' : 'tabs'\n    },\n    localNavClass() {\n      const classes = []\n      if (this.card) {\n        if (this.vertical) {\n          classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0')\n        } else {\n          classes.push(`card-header-${this.navStyle}`)\n        }\n      }\n      return [...classes, this.navClass]\n    }\n  },\n  watch: {\n    currentTab(val, old) {\n      let index = -1\n      // Ensure only one tab is active at most\n      this.tabs.forEach((tab, idx) => {\n        if (val === idx && !tab.disabled) {\n          tab.localActive = true\n          index = idx\n        } else {\n          tab.localActive = false\n        }\n      })\n      // Update the v-model\n      this.$emit('input', index)\n    },\n    value(val, old) {\n      if (val !== old) {\n        val = parseInt(val, 10)\n        val = isNaN(val) ? -1 : val\n        old = parseInt(old, 10) || 0\n        const tabs = this.tabs\n        if (tabs[val] && !tabs[val].disabled) {\n          this.currentTab = val\n        } else {\n          // Try next or prev tabs\n          if (val < old) {\n            this.previousTab()\n          } else {\n            this.nextTab()\n          }\n        }\n      }\n    },\n    registeredTabs(newVal, oldVal) {\n      // Each b-tab will register/unregister itself.\n      // We use this to detect when tabs are added/removed\n      // to trigger the update of the tabs.\n      this.$nextTick(() => {\n        requestAF(() => {\n          this.updateTabs()\n        })\n      })\n    },\n    tabs(newVal, oldVal) {\n      // If tabs added, removed, or re-ordered, we emit a `changed` event.\n      // We use `tab._uid` instead of `tab.safeId()`, as the later is changed\n      // in a nextTick if no explicit ID is provided, causing duplicate emits.\n      if (!looseEqual(newVal.map(t => t._uid), oldVal.map(t => t._uid))) {\n        // In a nextTick to ensure currentTab has been set first.\n        this.$nextTick(() => {\n          // We emit shallow copies of the new and old arrays of tabs, to\n          // prevent users from potentially mutating the internal arrays.\n          this.$emit('changed', newVal.slice(), oldVal.slice())\n        })\n      }\n    },\n    isMounted(newVal, oldVal) {\n      // Trigger an update after mounted.  Needed for tabs inside lazy modals.\n      if (newVal) {\n        requestAF(() => {\n          this.updateTabs()\n        })\n      }\n      // Enable or disable the observer\n      this.setObserver(newVal)\n    }\n  },\n  created() {\n    const tabIdx = parseInt(this.value, 10)\n    this.currentTab = isNaN(tabIdx) ? -1 : tabIdx\n    this._bvObserver = null\n    // For SSR and to make sure only a single tab is shown on mount\n    // We wrap this in a `$nextTick()` to ensure the child tabs have been created\n    this.$nextTick(() => {\n      this.updateTabs()\n    })\n  },\n  mounted() {\n    // Call `updateTabs()` just in case...\n    this.updateTabs()\n    this.$nextTick(() => {\n      // Flag we are now mounted and to switch to DOM for tab probing.\n      // As this.$slots.default appears to lie about component instances\n      // after b-tabs is destroyed and re-instantiated.\n      // And this.$children does not respect DOM order.\n      this.isMounted = true\n    })\n  },\n  deactivated() /* istanbul ignore next */ {\n    this.isMounted = false\n  },\n  activated() /* istanbul ignore next */ {\n    const tabIdx = parseInt(this.value, 10)\n    this.currentTab = isNaN(tabIdx) ? -1 : tabIdx\n    this.$nextTick(() => {\n      this.updateTabs()\n      this.isMounted = true\n    })\n  },\n  beforeDestroy() {\n    this.isMounted = false\n  },\n  destroyed() {\n    // Ensure no references to child instances exist\n    this.tabs = []\n  },\n  methods: {\n    registerTab(tab) {\n      if (!arrayIncludes(this.registeredTabs, tab)) {\n        this.registeredTabs.push(tab)\n        tab.$once('hook:destroyed', () => {\n          this.unregisterTab(tab)\n        })\n      }\n    },\n    unregisterTab(tab) {\n      this.registeredTabs = this.registeredTabs.slice().filter(t => t !== tab)\n    },\n    setObserver(on) {\n      // DOM observer is needed to detect changes in order of tabs\n      if (on) {\n        // Make sure no existing observer running\n        this.setObserver(false)\n        const self = this\n        /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n        const handler = () => {\n          // We delay the update to ensure that `tab.safeId()` has\n          // updated with the final ID value.\n          self.$nextTick(() => {\n            requestAF(() => {\n              self.updateTabs()\n            })\n          })\n        }\n        // Watch for changes to <b-tab> sub components\n        this._bvObserver = observeDom(this.$refs.tabsContainer, handler, {\n          childList: true,\n          subtree: false,\n          attributes: true,\n          attributeFilter: ['id']\n        })\n      } else {\n        if (this._bvObserver && this._bvObserver.disconnect) {\n          this._bvObserver.disconnect()\n        }\n        this._bvObserver = null\n      }\n    },\n    getTabs() {\n      // We use registeredTabs as the source of truth for child tab components. And we\n      // filter out any BTab components that are extended BTab with a root child BTab.\n      // https://github.com/bootstrap-vue/bootstrap-vue/issues/3260\n      const tabs = this.registeredTabs.filter(\n        tab => tab.$children.filter(t => t._isTab).length === 0\n      )\n      // DOM Order of Tabs\n      let order = []\n      if (this.isMounted && tabs.length > 0) {\n        // We rely on the DOM when mounted to get the 'true' order of the b-tab children.\n        // querySelectorAll(...) always returns elements in document order, regardless of\n        // order specified in the selector.\n        const selector = tabs.map(tab => `#${tab.safeId()}`).join(', ')\n        order = selectAll(selector, this.$el)\n          .map(el => el.id)\n          .filter(Boolean)\n      }\n      // Stable sort keeps the original order if not found in the\n      // `order` array, which will be an empty array before mount.\n      return stableSort(tabs, (a, b) => {\n        return order.indexOf(a.safeId()) - order.indexOf(b.safeId())\n      })\n    },\n    // Update list of <b-tab> children\n    updateTabs() {\n      // Probe tabs\n      const tabs = this.getTabs()\n\n      // Find *last* active non-disabled tab in current tabs\n      // We trust tab state over currentTab, in case tabs were added/removed/re-ordered\n      let tabIndex = tabs.indexOf(\n        tabs\n          .slice()\n          .reverse()\n          .find(tab => tab.localActive && !tab.disabled)\n      )\n\n      // Else try setting to currentTab\n      if (tabIndex < 0) {\n        const currentTab = this.currentTab\n        if (currentTab >= tabs.length) {\n          // Handle last tab being removed, so find the last non-disabled tab\n          tabIndex = tabs.indexOf(\n            tabs\n              .slice()\n              .reverse()\n              .find(notDisabled)\n          )\n        } else if (tabs[currentTab] && !tabs[currentTab].disabled) {\n          // Current tab is not disabled\n          tabIndex = currentTab\n        }\n      }\n\n      // Else find *first* non-disabled tab in current tabs\n      if (tabIndex < 0) {\n        tabIndex = tabs.indexOf(tabs.find(notDisabled))\n      }\n\n      // Set the current tab state to active\n      tabs.forEach((tab, idx) => {\n        // tab.localActive = idx === tabIndex && !tab.disabled\n        tab.localActive = false\n      })\n      if (tabs[tabIndex]) {\n        tabs[tabIndex].localActive = true\n      }\n\n      // Update the array of tab children\n      this.tabs = tabs\n      // Set the currentTab index (can be -1 if no non-disabled tabs)\n      this.currentTab = tabIndex\n    },\n    // Find a button that controls a tab, given the tab reference\n    // Returns the button vm instance\n    getButtonForTab(tab) {\n      return (this.$refs.buttons || []).find(btn => btn.tab === tab)\n    },\n    // Force a button to re-render it's content, given a <b-tab> instance\n    // Called by <b-tab> on `update()`\n    updateButton(tab) {\n      const button = this.getButtonForTab(tab)\n      if (button && button.$forceUpdate) {\n        button.$forceUpdate()\n      }\n    },\n    // Activate a tab given a <b-tab> instance\n    // Also accessed by <b-tab>\n    activateTab(tab) {\n      let result = false\n      if (tab) {\n        const index = this.tabs.indexOf(tab)\n        if (!tab.disabled && index > -1) {\n          result = true\n          this.currentTab = index\n        }\n      }\n      if (!result) {\n        // Couldn't set tab, so ensure v-model is set to `this.currentTab`\n        /* istanbul ignore next: should rarely happen */\n        this.$emit('input', this.currentTab)\n      }\n      return result\n    },\n    // Deactivate a tab given a <b-tab> instance\n    // Accessed by <b-tab>\n    deactivateTab(tab) {\n      if (tab) {\n        // Find first non-disabled tab that isn't the one being deactivated\n        // If no tabs are available, then don't deactivate current tab\n        return this.activateTab(this.tabs.filter(t => t !== tab).find(notDisabled))\n      } else {\n        // No tab specified\n        /* istanbul ignore next: should never happen */\n        return false\n      }\n    },\n    // Focus a tab button given it's <b-tab> instance\n    focusButton(tab) {\n      // Wrap in `$nextTick()` to ensure DOM has completed rendering/updating before focusing\n      this.$nextTick(() => {\n        const button = this.getButtonForTab(tab)\n        if (button && button.focus) {\n          button.focus()\n        }\n      })\n    },\n    // Emit a click event on a specified <b-tab> component instance\n    emitTabClick(tab, evt) {\n      if (isEvent(evt) && tab && tab.$emit && !tab.disabled) {\n        tab.$emit('click', evt)\n      }\n    },\n    // Click handler\n    clickTab(tab, evt) {\n      this.activateTab(tab)\n      this.emitTabClick(tab, evt)\n    },\n    // Move to first non-disabled tab\n    firstTab(focus) {\n      const tab = this.tabs.find(notDisabled)\n      if (this.activateTab(tab) && focus) {\n        this.focusButton(tab)\n        this.emitTabClick(tab, focus)\n      }\n    },\n    // Move to previous non-disabled tab\n    previousTab(focus) {\n      const currentIndex = Math.max(this.currentTab, 0)\n      const tab = this.tabs\n        .slice(0, currentIndex)\n        .reverse()\n        .find(notDisabled)\n      if (this.activateTab(tab) && focus) {\n        this.focusButton(tab)\n        this.emitTabClick(tab, focus)\n      }\n    },\n    // Move to next non-disabled tab\n    nextTab(focus) {\n      const currentIndex = Math.max(this.currentTab, -1)\n      const tab = this.tabs.slice(currentIndex + 1).find(notDisabled)\n      if (this.activateTab(tab) && focus) {\n        this.focusButton(tab)\n        this.emitTabClick(tab, focus)\n      }\n    },\n    // Move to last non-disabled tab\n    lastTab(focus) {\n      const tab = this.tabs\n        .slice()\n        .reverse()\n        .find(notDisabled)\n      if (this.activateTab(tab) && focus) {\n        this.focusButton(tab)\n        this.emitTabClick(tab, focus)\n      }\n    }\n  },\n  render(h) {\n    const tabs = this.tabs\n\n    // Currently active tab\n    const activeTab = tabs.find(tab => tab.localActive && !tab.disabled)\n\n    // Tab button to allow focusing when no active tab found (keynav only)\n    const fallbackTab = tabs.find(tab => !tab.disabled)\n\n    // For each <b-tab> found create the tab buttons\n    const buttons = tabs.map((tab, index) => {\n      let tabIndex = null\n      // Ensure at least one tab button is focusable when keynav enabled (if possible)\n      if (!this.noKeyNav) {\n        // Buttons are not in tab index unless active, or a fallback tab\n        tabIndex = -1\n        if (activeTab === tab || (!activeTab && fallbackTab === tab)) {\n          // Place tab button in tab sequence\n          tabIndex = null\n        }\n      }\n      return h(BTabButtonHelper, {\n        key: tab._uid || index,\n        ref: 'buttons',\n        // Needed to make `this.$refs.buttons` an array\n        refInFor: true,\n        props: {\n          tab: tab,\n          tabs: tabs,\n          id:\n            tab.controlledBy ||\n            (this.tab && this.tab.safeId ? this.tab.safeId(`_BV_tab_button_`) : null),\n          controls: this.tab && this.tab.safeId ? this.tab.safeId() : null,\n          tabIndex,\n          setSize: tabs.length,\n          posInSet: index + 1,\n          noKeyNav: this.noKeyNav\n        },\n        on: {\n          click: evt => {\n            this.clickTab(tab, evt)\n          },\n          first: this.firstTab,\n          prev: this.previousTab,\n          next: this.nextTab,\n          last: this.lastTab\n        }\n      })\n    })\n\n    // Nav\n    let nav = h(\n      BNav,\n      {\n        ref: 'nav',\n        class: this.localNavClass,\n        attrs: {\n          role: 'tablist',\n          id: this.safeId('_BV_tab_controls_')\n        },\n        props: {\n          fill: this.fill,\n          justified: this.justified,\n          align: this.align,\n          tabs: !this.noNavStyle && !this.pills,\n          pills: !this.noNavStyle && this.pills,\n          vertical: this.vertical,\n          small: this.small\n        }\n      },\n      [\n        this.normalizeSlot('tabs-start') || h(false),\n        buttons,\n        this.normalizeSlot('tabs-end') || this.normalizeSlot('tabs') || h(false)\n      ]\n    )\n    nav = h(\n      'div',\n      {\n        key: 'bv-tabs-nav',\n        class: [\n          {\n            'card-header': this.card && !this.vertical && !(this.end || this.bottom),\n            'card-footer': this.card && !this.vertical && (this.end || this.bottom),\n            'col-auto': this.vertical\n          },\n          this.navWrapperClass\n        ]\n      },\n      [nav]\n    )\n\n    let empty = h()\n    if (!tabs || tabs.length === 0) {\n      empty = h(\n        'div',\n        { key: 'bv-empty-tab', class: ['tab-pane', 'active', { 'card-body': this.card }] },\n        this.normalizeSlot('empty')\n      )\n    }\n\n    // Main content section\n    const content = h(\n      'div',\n      {\n        ref: 'tabsContainer',\n        key: 'bv-tabs-container',\n        staticClass: 'tab-content',\n        class: [{ col: this.vertical }, this.contentClass],\n        attrs: { id: this.safeId('_BV_tab_container_') }\n      },\n      concat(this.normalizeSlot('default'), empty)\n    )\n\n    // Render final output\n    return h(\n      this.tag,\n      {\n        staticClass: 'tabs',\n        class: {\n          row: this.vertical,\n          'no-gutters': this.vertical && this.card\n        },\n        attrs: { id: this.safeId() }\n      },\n      [this.end || this.bottom ? content : h(), [nav], this.end || this.bottom ? h() : content]\n    )\n  }\n})\n\nexport default BTabs\n","import Vue from '../../utils/vue'\nimport idMixin from '../../mixins/id'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport BVTransition from '../../utils/bv-transition'\nimport warn from '../../utils/warn'\n\nconst DEPRECATED_MSG = 'Setting prop \"href\" is deprecated. Use the <b-nav> component instead.'\n\n// @vue/component\nexport const BTab = /*#__PURE__*/ Vue.extend({\n  name: 'BTab',\n  mixins: [idMixin, normalizeSlotMixin],\n  inject: {\n    bvTabs: {\n      default() {\n        return {\n          // Don't set a tab index if not rendered inside <b-tabs>\n          noKeyNav: true\n        }\n      }\n    }\n  },\n  props: {\n    active: {\n      type: Boolean,\n      default: false\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    buttonId: {\n      type: String,\n      default: ''\n    },\n    title: {\n      type: String,\n      default: ''\n    },\n    titleItemClass: {\n      // Sniffed by tabs.js and added to nav 'li.nav-item'\n      type: [String, Array, Object],\n      default: null\n    },\n    titleLinkClass: {\n      // Sniffed by tabs.js and added to nav 'a.nav-link'\n      type: [String, Array, Object],\n      default: null\n    },\n    headHtml: {\n      // Is this actually ever used?\n      type: String,\n      default: null\n    },\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    noBody: {\n      type: Boolean,\n      default: false\n    },\n    href: {\n      // This should be deprecated, as tabs are not navigation (URL) based\n      // <b-nav> + <b-card> + <router-view>/<nuxt-child> should be used instead\n      // We don't support router-links here\n      type: String,\n      default: '#',\n      // `deprecated` -> Don't use this prop\n      // `deprecation` -> Refers to a change in prop usage\n      deprecated: DEPRECATED_MSG\n    },\n    lazy: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      localActive: this.active && !this.disabled,\n      show: false\n    }\n  },\n  computed: {\n    tabClasses() {\n      return [\n        {\n          active: this.localActive,\n          disabled: this.disabled,\n          'card-body': this.bvTabs.card && !this.noBody\n        },\n        // Apply <b-tabs> `activeTabClass` styles when this tab is active\n        this.localActive ? this.bvTabs.activeTabClass : null\n      ]\n    },\n    controlledBy() {\n      return this.buttonId || this.safeId('__BV_tab_button__')\n    },\n    computedNoFade() {\n      return !(this.bvTabs.fade || false)\n    },\n    computedLazy() {\n      return this.bvTabs.lazy || this.lazy\n    },\n    _isTab() {\n      // For parent sniffing of child\n      return true\n    }\n  },\n  watch: {\n    localActive(newVal, oldVal) {\n      // Make 'active' prop work with `.sync` modifier\n      this.$emit('update:active', newVal)\n    },\n    active(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        if (newVal) {\n          // If activated post mount\n          this.activate()\n        } else {\n          if (!this.deactivate()) {\n            // Tab couldn't be deactivated, so we reset the synced active prop\n            // Deactivation will fail if no other tabs to activate\n            this.$emit('update:active', this.localActive)\n          }\n        }\n      }\n    },\n    disabled(newVal, oldVal) {\n      if (newVal !== oldVal) {\n        if (newVal && this.localActive && this.bvTabs.firstTab) {\n          this.localActive = false\n          this.bvTabs.firstTab()\n        }\n      }\n    }\n  },\n  mounted() {\n    // Inform b-tabs of our presence\n    this.registerTab()\n    // Initially show on mount if active and not disabled\n    this.show = this.localActive\n    // Deprecate use of `href` prop\n    if (this.href && this.href !== '#') {\n      /* istanbul ignore next */\n      warn(`b-tab: ${DEPRECATED_MSG}`)\n    }\n  },\n  updated() {\n    // Force the tab button content to update (since slots are not reactive)\n    // Only done if we have a title slot, as the title prop is reactive\n    if (this.hasNormalizedSlot('title') && this.bvTabs.updateButton) {\n      this.bvTabs.updateButton(this)\n    }\n  },\n  destroyed() {\n    // inform b-tabs of our departure\n    this.unregisterTab()\n  },\n  methods: {\n    // Private methods\n    registerTab() {\n      // Inform `b-tabs` of our presence\n      this.bvTabs.registerTab && this.bvTabs.registerTab(this)\n    },\n    unregisterTab() {\n      // Inform `b-tabs` of our departure\n      this.bvTabs.unregisterTab && this.bvTabs.unregisterTab(this)\n    },\n    // Public methods\n    activate() {\n      if (this.bvTabs.activateTab && !this.disabled) {\n        return this.bvTabs.activateTab(this)\n      } else {\n        // Not inside a <b-tabs> component or tab is disabled\n        return false\n      }\n    },\n    deactivate() {\n      if (this.bvTabs.deactivateTab && this.localActive) {\n        return this.bvTabs.deactivateTab(this)\n      } else {\n        // Not inside a <b-tabs> component or not active to begin with\n        return false\n      }\n    }\n  },\n  render(h) {\n    const content = h(\n      this.tag,\n      {\n        ref: 'panel',\n        staticClass: 'tab-pane',\n        class: this.tabClasses,\n        directives: [\n          {\n            name: 'show',\n            rawName: 'v-show',\n            value: this.localActive,\n            expression: 'localActive'\n          }\n        ],\n        attrs: {\n          role: 'tabpanel',\n          id: this.safeId(),\n          tabindex: this.localActive && !this.bvTabs.noKeyNav ? '-1' : null,\n          'aria-hidden': this.localActive ? 'false' : 'true',\n          'aria-labelledby': this.controlledBy || null\n        }\n      },\n      // Render content lazily if requested\n      [this.localActive || !this.computedLazy ? this.normalizeSlot('default') : h()]\n    )\n    return h(BVTransition, { props: { mode: 'out-in', noFade: this.computedNoFade } }, [content])\n  }\n})\n\nexport default BTab\n","import { BTabs } from './tabs'\nimport { BTab } from './tab'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst TabsPlugin = /*#__PURE__*/ pluginFactory({\n  components: {\n    BTabs,\n    BTab\n  }\n})\n\nexport { TabsPlugin, BTabs, BTab }\n\nexport default TabsPlugin\n","\n /*! \n  * portal-vue © Thorsten Lünborg, 2019 \n  * \n  * Version: 2.1.5\n  * \n  * LICENCE: MIT \n  * \n  * https://github.com/linusborg/portal-vue\n  * \n */\n\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n}\n\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar inBrowser = typeof window !== 'undefined';\nfunction freeze(item) {\n  if (Array.isArray(item) || _typeof(item) === 'object') {\n    return Object.freeze(item);\n  }\n\n  return item;\n}\nfunction combinePassengers(transports) {\n  var slotProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return transports.reduce(function (passengers, transport) {\n    var temp = transport.passengers[0];\n    var newPassengers = typeof temp === 'function' ? temp(slotProps) : transport.passengers;\n    return passengers.concat(newPassengers);\n  }, []);\n}\nfunction stableSort(array, compareFn) {\n  return array.map(function (v, idx) {\n    return [idx, v];\n  }).sort(function (a, b) {\n    return compareFn(a[1], b[1]) || a[0] - b[0];\n  }).map(function (c) {\n    return c[1];\n  });\n}\nfunction pick(obj, keys) {\n  return keys.reduce(function (acc, key) {\n    if (obj.hasOwnProperty(key)) {\n      acc[key] = obj[key];\n    }\n\n    return acc;\n  }, {});\n}\n\nvar transports = {};\nvar targets = {};\nvar sources = {};\nvar Wormhole = Vue.extend({\n  data: function data() {\n    return {\n      transports: transports,\n      targets: targets,\n      sources: sources,\n      trackInstances: inBrowser\n    };\n  },\n  methods: {\n    open: function open(transport) {\n      if (!inBrowser) return;\n      var to = transport.to,\n          from = transport.from,\n          passengers = transport.passengers,\n          _transport$order = transport.order,\n          order = _transport$order === void 0 ? Infinity : _transport$order;\n      if (!to || !from || !passengers) return;\n      var newTransport = {\n        to: to,\n        from: from,\n        passengers: freeze(passengers),\n        order: order\n      };\n      var keys = Object.keys(this.transports);\n\n      if (keys.indexOf(to) === -1) {\n        Vue.set(this.transports, to, []);\n      }\n\n      var currentIndex = this.$_getTransportIndex(newTransport); // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n\n      var newTransports = this.transports[to].slice(0);\n\n      if (currentIndex === -1) {\n        newTransports.push(newTransport);\n      } else {\n        newTransports[currentIndex] = newTransport;\n      }\n\n      this.transports[to] = stableSort(newTransports, function (a, b) {\n        return a.order - b.order;\n      });\n    },\n    close: function close(transport) {\n      var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var to = transport.to,\n          from = transport.from;\n      if (!to || !from) return;\n\n      if (!this.transports[to]) {\n        return;\n      }\n\n      if (force) {\n        this.transports[to] = [];\n      } else {\n        var index = this.$_getTransportIndex(transport);\n\n        if (index >= 0) {\n          // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n          var newTransports = this.transports[to].slice(0);\n          newTransports.splice(index, 1);\n          this.transports[to] = newTransports;\n        }\n      }\n    },\n    registerTarget: function registerTarget(target, vm, force) {\n      if (!inBrowser) return;\n\n      if (this.trackInstances && !force && this.targets[target]) {\n        console.warn(\"[portal-vue]: Target \".concat(target, \" already exists\"));\n      }\n\n      this.$set(this.targets, target, Object.freeze([vm]));\n    },\n    unregisterTarget: function unregisterTarget(target) {\n      this.$delete(this.targets, target);\n    },\n    registerSource: function registerSource(source, vm, force) {\n      if (!inBrowser) return;\n\n      if (this.trackInstances && !force && this.sources[source]) {\n        console.warn(\"[portal-vue]: source \".concat(source, \" already exists\"));\n      }\n\n      this.$set(this.sources, source, Object.freeze([vm]));\n    },\n    unregisterSource: function unregisterSource(source) {\n      this.$delete(this.sources, source);\n    },\n    hasTarget: function hasTarget(to) {\n      return !!(this.targets[to] && this.targets[to][0]);\n    },\n    hasSource: function hasSource(to) {\n      return !!(this.sources[to] && this.sources[to][0]);\n    },\n    hasContentFor: function hasContentFor(to) {\n      return !!this.transports[to] && !!this.transports[to].length;\n    },\n    // Internal\n    $_getTransportIndex: function $_getTransportIndex(_ref) {\n      var to = _ref.to,\n          from = _ref.from;\n\n      for (var i in this.transports[to]) {\n        if (this.transports[to][i].from === from) {\n          return +i;\n        }\n      }\n\n      return -1;\n    }\n  }\n});\nvar wormhole = new Wormhole(transports);\n\nvar _id = 1;\nvar Portal = Vue.extend({\n  name: 'portal',\n  props: {\n    disabled: {\n      type: Boolean\n    },\n    name: {\n      type: String,\n      default: function _default() {\n        return String(_id++);\n      }\n    },\n    order: {\n      type: Number,\n      default: 0\n    },\n    slim: {\n      type: Boolean\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'DIV'\n    },\n    to: {\n      type: String,\n      default: function _default() {\n        return String(Math.round(Math.random() * 10000000));\n      }\n    }\n  },\n  created: function created() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      wormhole.registerSource(_this.name, _this);\n    });\n  },\n  mounted: function mounted() {\n    if (!this.disabled) {\n      this.sendUpdate();\n    }\n  },\n  updated: function updated() {\n    if (this.disabled) {\n      this.clear();\n    } else {\n      this.sendUpdate();\n    }\n  },\n  beforeDestroy: function beforeDestroy() {\n    wormhole.unregisterSource(this.name);\n    this.clear();\n  },\n  watch: {\n    to: function to(newValue, oldValue) {\n      oldValue && oldValue !== newValue && this.clear(oldValue);\n      this.sendUpdate();\n    }\n  },\n  methods: {\n    clear: function clear(target) {\n      var closer = {\n        from: this.name,\n        to: target || this.to\n      };\n      wormhole.close(closer);\n    },\n    normalizeSlots: function normalizeSlots() {\n      return this.$scopedSlots.default ? [this.$scopedSlots.default] : this.$slots.default;\n    },\n    normalizeOwnChildren: function normalizeOwnChildren(children) {\n      return typeof children === 'function' ? children(this.slotProps) : children;\n    },\n    sendUpdate: function sendUpdate() {\n      var slotContent = this.normalizeSlots();\n\n      if (slotContent) {\n        var transport = {\n          from: this.name,\n          to: this.to,\n          passengers: _toConsumableArray(slotContent),\n          order: this.order\n        };\n        wormhole.open(transport);\n      } else {\n        this.clear();\n      }\n    }\n  },\n  render: function render(h) {\n    var children = this.$slots.default || this.$scopedSlots.default || [];\n    var Tag = this.tag;\n\n    if (children && this.disabled) {\n      return children.length <= 1 && this.slim ? this.normalizeOwnChildren(children)[0] : h(Tag, [this.normalizeOwnChildren(children)]);\n    } else {\n      return this.slim ? h() : h(Tag, {\n        class: {\n          'v-portal': true\n        },\n        style: {\n          display: 'none'\n        },\n        key: 'v-portal-placeholder'\n      });\n    }\n  }\n});\n\nvar PortalTarget = Vue.extend({\n  name: 'portalTarget',\n  props: {\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    name: {\n      type: String,\n      required: true\n    },\n    slim: {\n      type: Boolean,\n      default: false\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    transition: {\n      type: [String, Object, Function]\n    }\n  },\n  data: function data() {\n    return {\n      transports: wormhole.transports,\n      firstRender: true\n    };\n  },\n  created: function created() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      wormhole.registerTarget(_this.name, _this);\n    });\n  },\n  watch: {\n    ownTransports: function ownTransports() {\n      this.$emit('change', this.children().length > 0);\n    },\n    name: function name(newVal, oldVal) {\n      /**\r\n       * TODO\r\n       * This should warn as well ...\r\n       */\n      wormhole.unregisterTarget(oldVal);\n      wormhole.registerTarget(newVal, this);\n    }\n  },\n  mounted: function mounted() {\n    var _this2 = this;\n\n    if (this.transition) {\n      this.$nextTick(function () {\n        // only when we have a transition, because it causes a re-render\n        _this2.firstRender = false;\n      });\n    }\n  },\n  beforeDestroy: function beforeDestroy() {\n    wormhole.unregisterTarget(this.name);\n  },\n  computed: {\n    ownTransports: function ownTransports() {\n      var transports = this.transports[this.name] || [];\n\n      if (this.multiple) {\n        return transports;\n      }\n\n      return transports.length === 0 ? [] : [transports[transports.length - 1]];\n    },\n    passengers: function passengers() {\n      return combinePassengers(this.ownTransports, this.slotProps);\n    }\n  },\n  methods: {\n    // can't be a computed prop because it has to \"react\" to $slot changes.\n    children: function children() {\n      return this.passengers.length !== 0 ? this.passengers : this.$scopedSlots.default ? this.$scopedSlots.default(this.slotProps) : this.$slots.default || [];\n    },\n    // can't be a computed prop because it has to \"react\" to this.children().\n    noWrapper: function noWrapper() {\n      var noWrapper = this.slim && !this.transition;\n\n      if (noWrapper && this.children().length > 1) {\n        console.warn('[portal-vue]: PortalTarget with `slim` option received more than one child element.');\n      }\n\n      return noWrapper;\n    }\n  },\n  render: function render(h) {\n    var noWrapper = this.noWrapper();\n    var children = this.children();\n    var Tag = this.transition || this.tag;\n    return noWrapper ? children[0] : this.slim && !Tag ? h() : h(Tag, {\n      props: {\n        // if we have a transition component, pass the tag if it exists\n        tag: this.transition && this.tag ? this.tag : undefined\n      },\n      class: {\n        'vue-portal-target': true\n      }\n    }, children);\n  }\n});\n\nvar _id$1 = 0;\nvar portalProps = ['disabled', 'name', 'order', 'slim', 'slotProps', 'tag', 'to'];\nvar targetProps = ['multiple', 'transition'];\nvar MountingPortal = Vue.extend({\n  name: 'MountingPortal',\n  inheritAttrs: false,\n  props: {\n    append: {\n      type: [Boolean, String]\n    },\n    bail: {\n      type: Boolean\n    },\n    mountTo: {\n      type: String,\n      required: true\n    },\n    // Portal\n    disabled: {\n      type: Boolean\n    },\n    // name for the portal\n    name: {\n      type: String,\n      default: function _default() {\n        return 'mounted_' + String(_id$1++);\n      }\n    },\n    order: {\n      type: Number,\n      default: 0\n    },\n    slim: {\n      type: Boolean\n    },\n    slotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    tag: {\n      type: String,\n      default: 'DIV'\n    },\n    // name for the target\n    to: {\n      type: String,\n      default: function _default() {\n        return String(Math.round(Math.random() * 10000000));\n      }\n    },\n    // Target\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    targetSlim: {\n      type: Boolean\n    },\n    targetSlotProps: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    targetTag: {\n      type: String,\n      default: 'div'\n    },\n    transition: {\n      type: [String, Object, Function]\n    }\n  },\n  created: function created() {\n    if (typeof document === 'undefined') return;\n    var el = document.querySelector(this.mountTo);\n\n    if (!el) {\n      console.error(\"[portal-vue]: Mount Point '\".concat(this.mountTo, \"' not found in document\"));\n      return;\n    }\n\n    var props = this.$props; // Target already exists\n\n    if (wormhole.targets[props.name]) {\n      if (props.bail) {\n        console.warn(\"[portal-vue]: Target \".concat(props.name, \" is already mounted.\\n        Aborting because 'bail: true' is set\"));\n      } else {\n        this.portalTarget = wormhole.targets[props.name];\n      }\n\n      return;\n    }\n\n    var append = props.append;\n\n    if (append) {\n      var type = typeof append === 'string' ? append : 'DIV';\n      var mountEl = document.createElement(type);\n      el.appendChild(mountEl);\n      el = mountEl;\n    } // get props for target from $props\n    // we have to rename a few of them\n\n\n    var _props = pick(this.$props, targetProps);\n\n    _props.slim = this.targetSlim;\n    _props.tag = this.targetTag;\n    _props.slotProps = this.targetSlotProps;\n    _props.name = this.to;\n    this.portalTarget = new PortalTarget({\n      el: el,\n      parent: this.$parent || this,\n      propsData: _props\n    });\n  },\n  beforeDestroy: function beforeDestroy() {\n    var target = this.portalTarget;\n\n    if (this.append) {\n      var el = target.$el;\n      el.parentNode.removeChild(el);\n    }\n\n    target.$destroy();\n  },\n  render: function render(h) {\n    if (!this.portalTarget) {\n      console.warn(\"[portal-vue] Target wasn't mounted\");\n      return h();\n    } // if there's no \"manual\" scoped slot, so we create a <Portal> ourselves\n\n\n    if (!this.$scopedSlots.manual) {\n      var props = pick(this.$props, portalProps);\n      return h(Portal, {\n        props: props,\n        attrs: this.$attrs,\n        on: this.$listeners,\n        scopedSlots: this.$scopedSlots\n      }, this.$slots.default);\n    } // else, we render the scoped slot\n\n\n    var content = this.$scopedSlots.manual({\n      to: this.to\n    }); // if user used <template> for the scoped slot\n    // content will be an array\n\n    if (Array.isArray(content)) {\n      content = content[0];\n    }\n\n    if (!content) return h();\n    return content;\n  }\n});\n\nfunction install(Vue$$1) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  Vue$$1.component(options.portalName || 'Portal', Portal);\n  Vue$$1.component(options.portalTargetName || 'PortalTarget', PortalTarget);\n  Vue$$1.component(options.MountingPortalName || 'MountingPortal', MountingPortal);\n}\n\nvar index = {\n  install: install\n};\n\nexport default index;\nexport { Portal, PortalTarget, MountingPortal, wormhole as Wormhole };\n//# sourceMappingURL=portal-vue.esm.js.map\n","import Vue from '../../utils/vue'\nimport { PortalTarget, Wormhole } from 'portal-vue'\nimport warn from '../../utils/warn'\nimport { getComponentConfig } from '../../utils/config'\nimport { removeClass, requestAF } from '../../utils/dom'\n\n// --- Constants ---\n\nconst NAME = 'BToaster'\n\nexport const props = {\n  name: {\n    type: String,\n    required: true\n  },\n  ariaLive: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'ariaLive')\n  },\n  ariaAtomic: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'ariaAtomic') // Allowed: 'true' or 'false' or null\n  },\n  role: {\n    // Aria role\n    type: String,\n    default: () => getComponentConfig(NAME, 'role')\n  }\n  /*\n  transition: {\n    type: [Boolean, String, Object],\n    default: false\n  }\n  */\n}\n\n// @vue/component\nexport const DefaultTransition = /*#__PURE__*/ Vue.extend({\n  data() {\n    return {\n      // Transition classes base name\n      name: 'b-toaster'\n    }\n  },\n  methods: {\n    onAfterEnter(el) {\n      // Handle bug where enter-to class is not removed.\n      // Bug is related to portal-vue and transition-groups.\n      requestAF(() => {\n        removeClass(el, `${this.name}-enter-to`)\n        // The *-move class is also stuck on elements that moved,\n        // but there are no javascript hooks to handle after move.\n      })\n    }\n  },\n  render(h) {\n    return h(\n      'transition-group',\n      {\n        props: { tag: 'div', name: this.name },\n        on: { afterEnter: this.onAfterEnter }\n      },\n      this.$slots.default\n    )\n  }\n})\n\n// @vue/component\nexport const BToaster = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  props,\n  data() {\n    return {\n      // We don't render on SSR or if a an existing target found\n      doRender: false,\n      dead: false,\n      // Toaster names cannot change once created\n      staticName: this.name\n    }\n  },\n  beforeMount() {\n    this.staticName = this.name\n    /* istanbul ignore if */\n    if (Wormhole.hasTarget(this.staticName)) {\n      warn(`b-toaster: A <portal-target> with name '${this.name}' already exists in the document.`)\n      this.dead = true\n    } else {\n      this.doRender = true\n      this.$once('hook:beforeDestroy', () => {\n        // Let toasts made with `this.$bvToast.toast()` know that this toaster\n        // is being destroyed and should should also destroy/hide themselves\n        this.$root.$emit('bv::toaster::destroyed', this.staticName)\n      })\n    }\n  },\n  destroyed() {\n    // Remove from DOM if needed\n    /* istanbul ignore next: difficult to test */\n    if (this.$el && this.$el.parentNode) {\n      this.$el.parentNode.removeChild(this.$el)\n    }\n  },\n  render(h) {\n    let $toaster = h('div', { class: ['d-none', { 'b-dead-toaster': this.dead }] })\n    if (this.doRender) {\n      const $target = h(PortalTarget, {\n        staticClass: 'b-toaster-slot',\n        props: {\n          name: this.staticName,\n          multiple: true,\n          tag: 'div',\n          slim: false,\n          // transition: this.transition || DefaultTransition\n          transition: DefaultTransition\n        }\n      })\n      $toaster = h(\n        'div',\n        {\n          staticClass: 'b-toaster',\n          class: [this.staticName],\n          attrs: {\n            id: this.staticName,\n            role: this.role || null, // Fallback to null to make sure attribute doesn't exist\n            'aria-live': this.ariaLive,\n            'aria-atomic': this.ariaAtomic\n          }\n        },\n        [$target]\n      )\n    }\n    return $toaster\n  }\n})\n\nexport default BToaster\n","import Vue from '../../utils/vue'\nimport { Portal, Wormhole } from 'portal-vue'\nimport BvEvent from '../../utils/bv-event.class'\nimport BVTransition from '../../utils/bv-transition'\nimport { getComponentConfig } from '../../utils/config'\nimport { requestAF, eventOn, eventOff } from '../../utils/dom'\nimport idMixin from '../../mixins/id'\nimport listenOnRootMixin from '../../mixins/listen-on-root'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport { BToaster } from './toaster'\nimport { BButtonClose } from '../button/button-close'\nimport { BLink } from '../link/link'\n\n// --- Constants ---\n\nconst NAME = 'BToast'\n\nconst MIN_DURATION = 1000\n\nconst EVENT_OPTIONS = { passive: true, capture: false }\n\n// --- Props ---\n\nexport const props = {\n  id: {\n    // Even though the ID prop is provided by idMixin, we\n    // add it here for $bvToast props filtering\n    type: String,\n    default: null\n  },\n  title: {\n    type: String,\n    default: null\n  },\n  toaster: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'toaster')\n  },\n  visible: {\n    type: Boolean,\n    default: false\n  },\n  variant: {\n    type: String,\n    default: () => getComponentConfig(NAME, 'variant')\n  },\n  isStatus: {\n    // Switches role to 'status' and aria-live to 'polite'\n    type: Boolean,\n    default: false\n  },\n  appendToast: {\n    type: Boolean,\n    default: false\n  },\n  noAutoHide: {\n    type: Boolean,\n    default: false\n  },\n  autoHideDelay: {\n    type: [Number, String],\n    default: () => getComponentConfig(NAME, 'autoHideDelay')\n  },\n  noCloseButton: {\n    type: Boolean,\n    default: false\n  },\n  noFade: {\n    type: Boolean,\n    default: false\n  },\n  noHoverPause: {\n    type: Boolean,\n    default: false\n  },\n  solid: {\n    type: Boolean,\n    default: false\n  },\n  toastClass: {\n    type: [String, Object, Array],\n    default: () => getComponentConfig(NAME, 'toastClass')\n  },\n  headerClass: {\n    type: [String, Object, Array],\n    default: () => getComponentConfig(NAME, 'headerClass')\n  },\n  bodyClass: {\n    type: [String, Object, Array],\n    default: () => getComponentConfig(NAME, 'bodyClass')\n  },\n  href: {\n    type: String,\n    default: null\n  },\n  to: {\n    type: [String, Object],\n    default: null\n  },\n  static: {\n    // Render the toast in place, rather than in a portal-target\n    type: Boolean,\n    default: false\n  }\n}\n\n// @vue/component\nexport const BToast = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [idMixin, listenOnRootMixin, normalizeSlotMixin],\n  inheritAttrs: false,\n  model: {\n    prop: 'visible',\n    event: 'change'\n  },\n  props,\n  data() {\n    return {\n      isMounted: false,\n      doRender: false,\n      localShow: false,\n      isTransitioning: false,\n      isHiding: false,\n      order: 0,\n      timer: null,\n      dismissStarted: 0,\n      resumeDismiss: 0\n    }\n  },\n  computed: {\n    bToastClasses() {\n      return {\n        'b-toast-solid': this.solid,\n        'b-toast-append': this.appendToast,\n        'b-toast-prepend': !this.appendToast,\n        [`b-toast-${this.variant}`]: this.variant\n      }\n    },\n    slotScope() {\n      return {\n        hide: this.hide\n      }\n    },\n    computedDuration() {\n      // Minimum supported duration is 1 second\n      return Math.max(parseInt(this.autoHideDelay, 10) || 0, MIN_DURATION)\n    },\n    computedToaster() {\n      return String(this.toaster)\n    },\n    transitionHandlers() {\n      return {\n        beforeEnter: this.onBeforeEnter,\n        afterEnter: this.onAfterEnter,\n        beforeLeave: this.onBeforeLeave,\n        afterLeave: this.onAfterLeave\n      }\n    }\n  },\n  watch: {\n    visible(newVal) {\n      newVal ? this.show() : this.hide()\n    },\n    localShow(newVal) {\n      if (newVal !== this.visible) {\n        this.$emit('change', newVal)\n      }\n    },\n    toaster(newVal) /* istanbul ignore next */ {\n      // If toaster target changed, make sure toaster exists\n      this.$nextTick(() => this.ensureToaster)\n    },\n    static(newVal) /* istanbul ignore next */ {\n      // If static changes to true, and the toast is showing,\n      // ensure the toaster target exists\n      if (newVal && this.localShow) {\n        this.ensureToaster()\n      }\n    }\n  },\n  mounted() {\n    this.isMounted = true\n    this.$nextTick(() => {\n      if (this.visible) {\n        requestAF(() => {\n          this.show()\n        })\n      }\n    })\n    // Listen for global $root show events\n    this.listenOnRoot('bv::show::toast', id => {\n      if (id === this.safeId()) {\n        this.show()\n      }\n    })\n    // Listen for global $root hide events\n    this.listenOnRoot('bv::hide::toast', id => {\n      if (!id || id === this.safeId()) {\n        this.hide()\n      }\n    })\n    // Make sure we hide when toaster is destroyed\n    /* istanbul ignore next: difficult to test */\n    this.listenOnRoot('bv::toaster::destroyed', toaster => {\n      if (toaster === this.computedToaster) {\n        this.hide()\n      }\n    })\n  },\n  beforeDestroy() {\n    this.clearDismissTimer()\n  },\n  methods: {\n    show() {\n      if (!this.localShow) {\n        this.ensureToaster()\n        const showEvt = this.buildEvent('show')\n        this.emitEvent(showEvt)\n        this.dismissStarted = this.resumeDismiss = 0\n        this.order = Date.now() * (this.appendToast ? 1 : -1)\n        this.isHiding = false\n        this.doRender = true\n        this.$nextTick(() => {\n          // We show the toast after we have rendered the portal and b-toast wrapper\n          // so that screen readers will properly announce the toast\n          requestAF(() => {\n            this.localShow = true\n          })\n        })\n      }\n    },\n    hide() {\n      if (this.localShow) {\n        const hideEvt = this.buildEvent('hide')\n        this.emitEvent(hideEvt)\n        this.setHoverHandler(false)\n        this.dismissStarted = this.resumeDismiss = 0\n        this.clearDismissTimer()\n        this.isHiding = true\n        requestAF(() => {\n          this.localShow = false\n        })\n      }\n    },\n    buildEvent(type, opts = {}) {\n      return new BvEvent(type, {\n        cancelable: false,\n        target: this.$el || null,\n        relatedTarget: null,\n        ...opts,\n        vueTarget: this,\n        componentId: this.safeId()\n      })\n    },\n    emitEvent(bvEvt) {\n      const type = bvEvt.type\n      this.$root.$emit(`bv::toast:${type}`, bvEvt)\n      this.$emit(type, bvEvt)\n    },\n    ensureToaster() {\n      if (this.static) {\n        return\n      }\n      if (!Wormhole.hasTarget(this.computedToaster)) {\n        const div = document.createElement('div')\n        document.body.appendChild(div)\n        const toaster = new BToaster({\n          parent: this.$root,\n          propsData: {\n            name: this.computedToaster\n          }\n        })\n        toaster.$mount(div)\n      }\n    },\n    startDismissTimer() {\n      this.clearDismissTimer()\n      if (!this.noAutoHide) {\n        this.timer = setTimeout(this.hide, this.resumeDismiss || this.computedDuration)\n        this.dismissStarted = Date.now()\n        this.resumeDismiss = 0\n      }\n    },\n    clearDismissTimer() {\n      clearTimeout(this.timer)\n      this.timer = null\n    },\n    setHoverHandler(on) {\n      const method = on ? eventOn : eventOff\n      const el = this.$refs['b-toast']\n      method(el, 'mouseenter', this.onPause, EVENT_OPTIONS)\n      method(el, 'mouseleave', this.onUnPause, EVENT_OPTIONS)\n    },\n    onPause(evt) {\n      // Determine time remaining, and then pause timer\n      if (this.noAutoHide || this.noHoverPause || !this.timer || this.resumeDismiss) {\n        return\n      }\n      const passed = Date.now() - this.dismissStarted\n      if (passed > 0) {\n        this.clearDismissTimer()\n        this.resumeDismiss = Math.max(this.computedDuration - passed, MIN_DURATION)\n      }\n    },\n    onUnPause(evt) {\n      // Restart timer with max of time remaining or 1 second\n      if (this.noAutoHide || this.noHoverPause || !this.resumeDismiss) {\n        this.resumeDismiss = this.dismissStarted = 0\n        return\n      }\n      this.startDismissTimer()\n    },\n    onLinkClick() {\n      // We delay the close to allow time for the\n      // browser to process the link click\n      this.$nextTick(() => {\n        requestAF(() => {\n          this.hide()\n        })\n      })\n    },\n    onBeforeEnter() {\n      this.isTransitioning = true\n    },\n    onAfterEnter() {\n      this.isTransitioning = false\n      const hiddenEvt = this.buildEvent('shown')\n      this.emitEvent(hiddenEvt)\n      this.startDismissTimer()\n      this.setHoverHandler(true)\n    },\n    onBeforeLeave() {\n      this.isTransitioning = true\n    },\n    onAfterLeave() {\n      this.isTransitioning = false\n      this.order = 0\n      this.resumeDismiss = this.dismissStarted = 0\n      const hiddenEvt = this.buildEvent('hidden')\n      this.emitEvent(hiddenEvt)\n      this.doRender = false\n    },\n    makeToast(h) {\n      // Render helper for generating the toast\n      // Assemble the header content\n      const $headerContent = []\n      const $title = this.normalizeSlot('toast-title', this.slotScope)\n      if ($title) {\n        $headerContent.push($title)\n      } else if (this.title) {\n        $headerContent.push(h('strong', { staticClass: 'mr-2' }, this.title))\n      }\n      if (!this.noCloseButton) {\n        $headerContent.push(\n          h(BButtonClose, {\n            staticClass: 'ml-auto mb-1',\n            on: {\n              click: evt => {\n                this.hide()\n              }\n            }\n          })\n        )\n      }\n      // Assemble the header (if needed)\n      let $header = h()\n      if ($headerContent.length > 0) {\n        $header = h(\n          'header',\n          { staticClass: 'toast-header', class: this.headerClass },\n          $headerContent\n        )\n      }\n      // Toast body\n      const isLink = this.href || this.to\n      const $body = h(\n        isLink ? BLink : 'div',\n        {\n          staticClass: 'toast-body',\n          class: this.bodyClass,\n          props: isLink ? { to: this.to, href: this.href } : {},\n          on: isLink ? { click: this.onLinkClick } : {}\n        },\n        [this.normalizeSlot('default', this.slotScope) || h()]\n      )\n      // Build the toast\n      const $toast = h(\n        'div',\n        {\n          key: `toast-${this._uid}`,\n          ref: 'toast',\n          staticClass: 'toast',\n          class: this.toastClass,\n          attrs: {\n            ...this.$attrs,\n            tabindex: '0',\n            id: this.safeId()\n          }\n        },\n        [$header, $body]\n      )\n      return $toast\n    }\n  },\n  render(h) {\n    if (!this.doRender || !this.isMounted) {\n      return h()\n    }\n    const name = `b-toast-${this._uid}`\n    return h(\n      Portal,\n      {\n        props: {\n          name: name,\n          to: this.computedToaster,\n          order: this.order,\n          slim: true,\n          disabled: this.static\n        }\n      },\n      [\n        h(\n          'div',\n          {\n            key: name,\n            ref: 'b-toast',\n            staticClass: 'b-toast',\n            class: this.bToastClasses,\n            attrs: {\n              id: this.safeId('_toast_outer'),\n              role: this.isHiding ? null : this.isStatus ? 'status' : 'alert',\n              'aria-live': this.isHiding ? null : this.isStatus ? 'polite' : 'assertive',\n              'aria-atomic': this.isHiding ? null : 'true'\n            }\n          },\n          [\n            h(BVTransition, { props: { noFade: this.noFade }, on: this.transitionHandlers }, [\n              this.localShow ? this.makeToast(h) : h()\n            ])\n          ]\n        )\n      ]\n    )\n  }\n})\n\nexport default BToast\n","/**\n * Plugin for adding `$bvToast` property to all Vue instances\n */\n\nimport { concat } from '../../../utils/array'\nimport { getComponentConfig } from '../../../utils/config'\nimport { requestAF } from '../../../utils/dom'\nimport { isUndefined, isString } from '../../../utils/inspect'\nimport {\n  assign,\n  defineProperties,\n  defineProperty,\n  keys,\n  omit,\n  readonlyDescriptor\n} from '../../../utils/object'\nimport { pluginFactory } from '../../../utils/plugins'\nimport { warn, warnNotClient } from '../../../utils/warn'\nimport { BToast, props as toastProps } from '../toast'\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvToast'\nconst PROP_NAME_PRIV = '_bv__toast'\n\n// Base toast props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\nconst BASE_PROPS = ['id', ...keys(omit(toastProps, ['static', 'visible']))]\n\n// Map prop names to toast slot names\nconst propsToSlots = {\n  toastContent: 'default',\n  title: 'toast-title'\n}\n\n// --- Utility methods ---\n\n// Method to filter only recognized props that are not undefined\nconst filterOptions = options => {\n  return BASE_PROPS.reduce((memo, key) => {\n    if (!isUndefined(options[key])) {\n      memo[key] = options[key]\n    }\n    return memo\n  }, {})\n}\n\n// Method to install `$bvToast` VM injection\nconst plugin = Vue => {\n  // Create a private sub-component constructor that\n  // extends BToast and self-destructs after hidden\n  // @vue/component\n  const BToastPop = Vue.extend({\n    name: 'BToastPop',\n    extends: BToast,\n    destroyed() {\n      // Make sure we not in document any more\n      if (this.$el && this.$el.parentNode) {\n        this.$el.parentNode.removeChild(this.$el)\n      }\n    },\n    mounted() {\n      const self = this\n      // Self destruct handler\n      const handleDestroy = () => {\n        // Ensure the toast has been force hidden\n        self.localShow = false\n        self.doRender = false\n        self.$nextTick(() => {\n          self.$nextTick(() => {\n            // In a `requestAF()` to release control back to application\n            // and to allow the portal-target time to remove the content\n            requestAF(() => {\n              self.$destroy()\n            })\n          })\n        })\n      }\n      // Self destruct if parent destroyed\n      this.$parent.$once('hook:destroyed', handleDestroy)\n      // Self destruct after hidden\n      this.$once('hidden', handleDestroy)\n      // Self destruct when toaster is destroyed\n      this.listenOnRoot('bv::toaster::destroyed', toaster => {\n        /* istanbul ignore next: hard to test */\n        if (toaster === self.toaster) {\n          handleDestroy()\n        }\n      })\n    }\n  })\n\n  // Private method to generate the on-demand toast\n  const makeToast = (props, $parent) => {\n    if (warnNotClient(PROP_NAME)) {\n      /* istanbul ignore next */\n      return\n    }\n    // Create an instance of `BToastPop` component\n    const toast = new BToastPop({\n      // We set parent as the local VM so these toasts can emit events on the\n      // app `$root`, and it ensures `BToast` is destroyed when parent is destroyed\n      parent: $parent,\n      propsData: {\n        ...filterOptions(getComponentConfig('BToast') || {}),\n        // Add in (filtered) user supplied props\n        ...omit(props, keys(propsToSlots)),\n        // Props that can't be overridden\n        static: false,\n        visible: true\n      }\n    })\n    // Convert certain props to slots\n    keys(propsToSlots).forEach(prop => {\n      let value = props[prop]\n      if (!isUndefined(value)) {\n        // Can be a string, or array of VNodes\n        if (prop === 'title' && isString(value)) {\n          // Special case for title if it is a string, we wrap in a <strong>\n          value = [$parent.$createElement('strong', { class: 'mr-2' }, value)]\n        }\n        toast.$slots[propsToSlots[prop]] = concat(value)\n      }\n    })\n    // Create a mount point (a DIV) and mount it (which triggers the show)\n    const div = document.createElement('div')\n    document.body.appendChild(div)\n    toast.$mount(div)\n  }\n\n  // Declare BvToast instance property class\n  class BvToast {\n    constructor(vm) {\n      // Assign the new properties to this instance\n      assign(this, { _vm: vm, _root: vm.$root })\n      // Set these properties as read-only and non-enumerable\n      defineProperties(this, {\n        _vm: readonlyDescriptor(),\n        _root: readonlyDescriptor()\n      })\n    }\n\n    // --- Public Instance methods ---\n\n    // Opens a user defined toast and returns immediately\n    toast(content, options = {}) {\n      if (!content || warnNotClient(PROP_NAME)) {\n        /* istanbul ignore next */\n        return\n      }\n      makeToast({ ...filterOptions(options), toastContent: content }, this._vm)\n    }\n\n    // shows a `<b-toast>` component with the specified ID\n    show(id) {\n      if (id) {\n        this._root.$emit('bv::show::toast', id)\n      }\n    }\n\n    // Hide a toast with specified ID, or if not ID all toasts\n    hide(id = null) {\n      this._root.$emit('bv::hide::toast', id)\n    }\n  }\n\n  // Add our instance mixin\n  Vue.mixin({\n    beforeCreate() {\n      // Because we need access to `$root` for `$emits`, and VM for parenting,\n      // we have to create a fresh instance of `BvToast` for each VM\n      this[PROP_NAME_PRIV] = new BvToast(this)\n    }\n  })\n\n  // Define our read-only `$bvToast` instance property\n  // Placed in an if just in case in HMR mode\n  // eslint-disable-next-line no-prototype-builtins\n  if (!Vue.prototype.hasOwnProperty(PROP_NAME)) {\n    defineProperty(Vue.prototype, PROP_NAME, {\n      get() {\n        /* istanbul ignore next */\n        if (!this || !this[PROP_NAME_PRIV]) {\n          warn(`'${PROP_NAME}' must be accessed from a Vue instance 'this' context`)\n        }\n        return this[PROP_NAME_PRIV]\n      }\n    })\n  }\n}\n\nexport const BVToastPlugin = /*#__PURE__*/ pluginFactory({\n  plugins: { plugin }\n})\n\n// Default export is the Plugin\nexport default BVToastPlugin\n","import { BVToastPlugin } from './helpers/bv-toast'\nimport { BToast } from './toast'\nimport { BToaster } from './toaster'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst ToastPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BToast, BToaster },\n  // $bvToast injection\n  plugins: { BVToastPlugin }\n})\n\nexport { ToastPlugin, BToast, BToaster }\n\nexport default ToastPlugin\n","import Vue from '../../utils/vue'\nimport ToolTip from '../../utils/tooltip.class'\nimport warn from '../../utils/warn'\nimport { isArray, arrayIncludes } from '../../utils/array'\nimport { getComponentConfig } from '../../utils/config'\nimport { HTMLElement } from '../../utils/safe-types'\nimport normalizeSlotMixin from '../../mixins/normalize-slot'\nimport toolpopMixin from '../../mixins/toolpop'\n\nconst NAME = 'BTooltip'\n\n// @vue/component\nexport const BTooltip = /*#__PURE__*/ Vue.extend({\n  name: NAME,\n  mixins: [toolpopMixin, normalizeSlotMixin],\n  props: {\n    title: {\n      type: String,\n      default: ''\n    },\n    triggers: {\n      type: [String, Array],\n      default: 'hover focus'\n    },\n    placement: {\n      type: String,\n      default: 'top'\n    },\n    fallbackPlacement: {\n      type: [String, Array],\n      default: 'flip',\n      validator(value) {\n        return isArray(value) || arrayIncludes(['flip', 'clockwise', 'counterclockwise'], value)\n      }\n    },\n    variant: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'variant')\n    },\n    customClass: {\n      type: String,\n      default: () => getComponentConfig(NAME, 'customClass')\n    },\n    delay: {\n      type: [Number, Object, String],\n      default: () => getComponentConfig(NAME, 'delay')\n    },\n    boundary: {\n      // String: scrollParent, window, or viewport\n      // Element: element reference\n      type: [String, HTMLElement],\n      default: () => getComponentConfig(NAME, 'boundary')\n    },\n    boundaryPadding: {\n      type: Number,\n      default: () => getComponentConfig(NAME, 'boundaryPadding')\n    }\n  },\n  methods: {\n    createToolpop() {\n      // getTarget is in toolpop mixin\n      const target = this.getTarget()\n      /* istanbul ignore else */\n      if (target) {\n        this._toolpop = new ToolTip(target, this.getConfig(), this)\n      } else {\n        this._toolpop = null\n        warn(\"b-tooltip: 'target' element not found!\")\n      }\n      return this._toolpop\n    }\n  },\n  render(h) {\n    return h(\n      'div',\n      { class: ['d-none'], style: { display: 'none' }, attrs: { 'aria-hidden': true } },\n      [h('div', { ref: 'title' }, this.normalizeSlot('default'))]\n    )\n  }\n})\n\nexport default BTooltip\n","import Popper from 'popper.js'\nimport ToolTip from '../../utils/tooltip.class'\nimport warn from '../../utils/warn'\nimport { getComponentConfig } from '../../utils/config'\nimport { isBrowser } from '../../utils/env'\nimport { isFunction, isObject, isString } from '../../utils/inspect'\nimport { keys } from '../../utils/object'\n\n// Key which we use to store tooltip object on element\nconst BV_TOOLTIP = '__BV_ToolTip__'\n\n// Valid event triggers\nconst validTriggers = {\n  focus: true,\n  hover: true,\n  click: true,\n  blur: true\n}\n\n// Directive modifier test regular expressions. Pre-compile for performance\nconst htmlRE = /^html$/\nconst noFadeRE = /^nofade$/i\nconst placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/\nconst boundaryRE = /^(window|viewport|scrollParent)$/\nconst delayRE = /^d\\d+$/\nconst offsetRE = /^o-?\\d+$/\nconst variantRE = /^v-.+$/\n\n// Build a ToolTip config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n/* istanbul ignore next: not easy to test */\nconst parseBindings = bindings => /* istanbul ignore next: not easy to test */ {\n  // We start out with a basic config\n  const NAME = 'BTooltip'\n  let config = {\n    delay: getComponentConfig(NAME, 'delay'),\n    boundary: String(getComponentConfig(NAME, 'boundary')),\n    boundaryPadding: parseInt(getComponentConfig(NAME, 'boundaryPadding'), 10) || 0,\n    variant: getComponentConfig(NAME, 'variant'),\n    customClass: getComponentConfig(NAME, 'customClass')\n  }\n\n  // Process bindings.value\n  if (isString(bindings.value)) {\n    // Value is tooltip content (html optionally supported)\n    config.title = bindings.value\n  } else if (isFunction(bindings.value)) {\n    // Title generator function\n    config.title = bindings.value\n  } else if (isObject(bindings.value)) {\n    // Value is config object, so merge\n    config = { ...config, ...bindings.value }\n  }\n\n  // If argument, assume element ID of container element\n  if (bindings.arg) {\n    // Element ID specified as arg\n    // We must prepend '#' to become a CSS selector\n    config.container = `#${bindings.arg}`\n  }\n\n  // Process modifiers\n  keys(bindings.modifiers).forEach(mod => {\n    if (htmlRE.test(mod)) {\n      // Title allows HTML\n      config.html = true\n    } else if (noFadeRE.test(mod)) {\n      // No animation\n      config.animation = false\n    } else if (placementRE.test(mod)) {\n      // Placement of tooltip\n      config.placement = mod\n    } else if (boundaryRE.test(mod)) {\n      // Boundary of tooltip\n      config.boundary = mod\n    } else if (delayRE.test(mod)) {\n      // Delay value\n      const delay = parseInt(mod.slice(1), 10) || 0\n      if (delay) {\n        config.delay = delay\n      }\n    } else if (offsetRE.test(mod)) {\n      // Offset value, negative allowed\n      const offset = parseInt(mod.slice(1), 10) || 0\n      if (offset) {\n        config.offset = offset\n      }\n    } else if (variantRE.test(mod)) {\n      // Variant\n      config.variant = mod.slice(2) || null\n    }\n  })\n\n  // Special handling of event trigger modifiers trigger is\n  // a space separated list\n  const selectedTriggers = {}\n\n  // Parse current config object trigger\n  const triggers = isString(config.trigger) ? config.trigger.trim().split(/\\s+/) : []\n  triggers.forEach(trigger => {\n    if (validTriggers[trigger]) {\n      selectedTriggers[trigger] = true\n    }\n  })\n\n  // Parse modifiers for triggers\n  keys(validTriggers).forEach(trigger => {\n    if (bindings.modifiers[trigger]) {\n      selectedTriggers[trigger] = true\n    }\n  })\n\n  // Sanitize triggers\n  config.trigger = keys(selectedTriggers).join(' ')\n  if (config.trigger === 'blur') {\n    // Blur by itself is useless, so convert it to 'focus'\n    config.trigger = 'focus'\n  }\n  if (!config.trigger) {\n    // Remove trigger config\n    delete config.trigger\n  }\n\n  return config\n}\n\n// Add or update ToolTip on our element\nconst applyTooltip = (el, bindings, vnode) => {\n  if (!isBrowser) {\n    /* istanbul ignore next */\n    return\n  }\n  if (!Popper) {\n    // Popper is required for ToolTips to work\n    /* istanbul ignore next */\n    warn('v-b-tooltip: Popper.js is required for ToolTips to work')\n    /* istanbul ignore next */\n    return\n  }\n  const config = parseBindings(bindings)\n  if (el[BV_TOOLTIP]) {\n    el[BV_TOOLTIP].updateConfig(config)\n  } else {\n    el[BV_TOOLTIP] = new ToolTip(el, config, vnode.context)\n  }\n}\n\n// Remove ToolTip on our element\nconst removeTooltip = el => {\n  if (el[BV_TOOLTIP]) {\n    el[BV_TOOLTIP].destroy()\n    el[BV_TOOLTIP] = null\n    delete el[BV_TOOLTIP]\n  }\n}\n\n/*\n * Export our directive\n */\nexport const VBTooltip = {\n  bind(el, bindings, vnode) {\n    applyTooltip(el, bindings, vnode)\n  },\n  inserted(el, bindings, vnode) {\n    applyTooltip(el, bindings, vnode)\n  },\n  update(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyTooltip(el, bindings, vnode)\n    }\n  },\n  componentUpdated(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyTooltip(el, bindings, vnode)\n    }\n  },\n  unbind(el) {\n    removeTooltip(el)\n  }\n}\n\nexport default VBTooltip\n","// Index file used for the main builds, which does not include legacy plugin names\n// Once es/ buld is removed, then this file will be renamed to index.js\nimport { pluginFactory } from '../utils/plugins'\n\n// Component group plugins\nimport { AlertPlugin } from './alert'\nimport { BadgePlugin } from './badge'\nimport { BreadcrumbPlugin } from './breadcrumb'\nimport { ButtonPlugin } from './button'\nimport { ButtonGroupPlugin } from './button-group'\nimport { ButtonToolbarPlugin } from './button-toolbar'\nimport { CardPlugin } from './card'\nimport { CarouselPlugin } from './carousel'\nimport { CollapsePlugin } from './collapse'\nimport { DropdownPlugin } from './dropdown'\nimport { EmbedPlugin } from './embed'\nimport { FormPlugin } from './form'\nimport { FormGroupPlugin } from './form-group'\nimport { FormCheckboxPlugin } from './form-checkbox'\nimport { FormRadioPlugin } from './form-radio'\nimport { FormInputPlugin } from './form-input'\nimport { FormTextareaPlugin } from './form-textarea'\nimport { FormFilePlugin } from './form-file'\nimport { FormSelectPlugin } from './form-select'\nimport { ImagePlugin } from './image'\nimport { InputGroupPlugin } from './input-group'\nimport { JumbotronPlugin } from './jumbotron'\nimport { LayoutPlugin } from './layout'\nimport { LinkPlugin } from './link'\nimport { ListGroupPlugin } from './list-group'\nimport { MediaPlugin } from './media'\nimport { ModalPlugin } from './modal'\nimport { NavPlugin } from './nav'\nimport { NavbarPlugin } from './navbar'\nimport { PaginationPlugin } from './pagination'\nimport { PaginationNavPlugin } from './pagination-nav'\nimport { PopoverPlugin } from './popover'\nimport { ProgressPlugin } from './progress'\nimport { SpinnerPlugin } from './spinner'\nimport { TablePlugin } from './table'\nimport { TabsPlugin } from './tabs'\nimport { ToastPlugin } from './toast'\nimport { TooltipPlugin } from './tooltip'\n\n// Main plugin to install all component group plugins\nexport const componentsPlugin = /*#__PURE__*/ pluginFactory({\n  plugins: {\n    AlertPlugin,\n    BadgePlugin,\n    BreadcrumbPlugin,\n    ButtonPlugin,\n    ButtonGroupPlugin,\n    ButtonToolbarPlugin,\n    CardPlugin,\n    CarouselPlugin,\n    CollapsePlugin,\n    DropdownPlugin,\n    EmbedPlugin,\n    FormPlugin,\n    FormGroupPlugin,\n    FormCheckboxPlugin,\n    FormRadioPlugin,\n    FormInputPlugin,\n    FormTextareaPlugin,\n    FormFilePlugin,\n    FormSelectPlugin,\n    ImagePlugin,\n    InputGroupPlugin,\n    JumbotronPlugin,\n    LayoutPlugin,\n    LinkPlugin,\n    ListGroupPlugin,\n    MediaPlugin,\n    ModalPlugin,\n    NavPlugin,\n    NavbarPlugin,\n    PaginationPlugin,\n    PaginationNavPlugin,\n    PopoverPlugin,\n    ProgressPlugin,\n    SpinnerPlugin,\n    TablePlugin,\n    TabsPlugin,\n    ToastPlugin,\n    TooltipPlugin\n  }\n})\n\n// Export named injection plugins\n// These two plugins are not directly included in the above installer, as they are\n// installed via the ModalPlugin and ToastPlugin respectively.\nexport { BVModalPlugin } from './modal/helpers/bv-modal'\nexport { BVToastPlugin } from './toast/helpers/bv-toast'\n\n// Export all individual components and component group plugins as named exports.\n// This is mainly for users who import individual components, directives or plugins.\n//\n// Webpack 4 has optimization difficulties with re-eport of re-exports, so\n// we import the components individulaly here for better tree shaking,\n//\n// Webpack v5 fixes the optimizations with re-export of re-exports so this\n// can be reverted back to `export * from './table'` when Webpack v5 is released.\n// https://github.com/webpack/webpack/pull/9203 (available in Webpack v5.0.0-alpha.15)\n\n// export * from './alert'\nexport { AlertPlugin } from './alert'\nexport { BAlert } from './alert/alert'\n\n// export * from './badge'\nexport { BadgePlugin } from './badge'\nexport { BBadge } from './badge/badge'\n\n// export * from './breadcrumb'\nexport { BreadcrumbPlugin } from './breadcrumb'\nexport { BBreadcrumb } from './breadcrumb/breadcrumb'\nexport { BBreadcrumbItem } from './breadcrumb/breadcrumb-item'\n\n// export * from './button'\nexport { ButtonPlugin } from './button'\nexport { BButton } from './button/button'\nexport { BButtonClose } from './button/button-close'\n\n// export * from './button-group'\nexport { ButtonGroupPlugin } from './button-group'\nexport { BButtonGroup } from './button-group/button-group'\n\n// export * from './button-toolbar'\nexport { ButtonToolbarPlugin } from './button-toolbar'\nexport { BButtonToolbar } from './button-toolbar/button-toolbar'\n\n// export * from './card'\nexport { CardPlugin } from './card'\nexport { BCard } from './card/card'\nexport { BCardBody } from './card/card-body'\nexport { BCardFooter } from './card/card-footer'\nexport { BCardGroup } from './card/card-group'\nexport { BCardHeader } from './card/card-header'\nexport { BCardImg } from './card/card-img'\nexport { BCardImgLazy } from './card/card-img-lazy'\nexport { BCardSubTitle } from './card/card-sub-title'\nexport { BCardText } from './card/card-text'\nexport { BCardTitle } from './card/card-title'\n\n// export * from './carousel'\nexport { CarouselPlugin } from './carousel'\nexport { BCarousel } from './carousel/carousel'\nexport { BCarouselSlide } from './carousel/carousel-slide'\n\n// export * from './collapse'\nexport { CollapsePlugin } from './collapse'\nexport { BCollapse } from './collapse/collapse'\n\n// export * from './dropdown'\nexport { DropdownPlugin } from './dropdown'\nexport { BDropdown } from './dropdown/dropdown'\nexport { BDropdownItem } from './dropdown/dropdown-item'\nexport { BDropdownItemButton } from './dropdown/dropdown-item-button'\nexport { BDropdownDivider } from './dropdown/dropdown-divider'\nexport { BDropdownForm } from './dropdown/dropdown-form'\nexport { BDropdownGroup } from './dropdown/dropdown-group'\nexport { BDropdownHeader } from './dropdown/dropdown-header'\nexport { BDropdownText } from './dropdown/dropdown-text'\n\n// export * from './embed'\nexport { EmbedPlugin } from './embed'\nexport { BEmbed } from './embed/embed'\n\n// export * from './form'\nexport { FormPlugin } from './form'\nexport { BForm } from './form/form'\nexport { BFormDatalist } from './form/form-datalist'\nexport { BFormText } from './form/form-text'\nexport { BFormInvalidFeedback } from './form/form-invalid-feedback'\nexport { BFormValidFeedback } from './form/form-valid-feedback'\n\n// export * from './form-checkbox'\nexport { FormCheckboxPlugin } from './form-checkbox'\nexport { BFormCheckbox } from './form-checkbox/form-checkbox'\nexport { BFormCheckboxGroup } from './form-checkbox/form-checkbox-group'\n\n// export * from './form-file'\nexport { FormFilePlugin } from './form-file'\nexport { BFormFile } from './form-file/form-file'\n\n// export * from './form-group'\nexport { FormGroupPlugin } from './form-group'\nexport { BFormGroup } from './form-group/form-group'\n\n// export * from './form-input'\nexport { FormInputPlugin } from './form-input'\nexport { BFormInput } from './form-input/form-input'\n\n// export * from './form-radio'\nexport { FormRadioPlugin } from './form-radio'\nexport { BFormRadio } from './form-radio/form-radio'\nexport { BFormRadioGroup } from './form-radio/form-radio-group'\n\n// export * from './form-select'\nexport { FormSelectPlugin } from './form-select'\nexport { BFormSelect } from './form-select/form-select'\n\n// export * from './form-textarea'\nexport { FormTextareaPlugin } from './form-textarea'\nexport { BFormTextarea } from './form-textarea/form-textarea'\n\n// export * from './image'\nexport { ImagePlugin } from './image'\nexport { BImg } from './image/img'\nexport { BImgLazy } from './image/img-lazy'\n\n// export * from './input-group'\nexport { InputGroupPlugin } from './input-group'\nexport { BInputGroup } from './input-group/input-group'\nexport { BInputGroupAddon } from './input-group/input-group-addon'\nexport { BInputGroupAppend } from './input-group/input-group-append'\nexport { BInputGroupPrepend } from './input-group/input-group-prepend'\nexport { BInputGroupText } from './input-group/input-group-text'\n\n// export * from './jumbotron'\nexport { JumbotronPlugin } from './jumbotron'\nexport { BJumbotron } from './jumbotron/jumbotron'\n\n// export * from './layout'\nexport { LayoutPlugin } from './layout'\nexport { BContainer } from './layout/container'\nexport { BRow } from './layout/row'\nexport { BCol } from './layout/col'\nexport { BFormRow } from './layout/form-row'\n\n// export * from './link'\nexport { LinkPlugin } from './link'\nexport { BLink } from './link/link'\n\n// export * from './list-group'\nexport { ListGroupPlugin } from './list-group'\nexport { BListGroup } from './list-group/list-group'\nexport { BListGroupItem } from './list-group/list-group-item'\n\n// export * from './media'\nexport { MediaPlugin } from './media'\nexport { BMedia } from './media/media'\nexport { BMediaAside } from './media/media-aside'\nexport { BMediaBody } from './media/media-body'\n\n// export * from './modal'\nexport { ModalPlugin } from './modal'\nexport { BModal } from './modal/modal'\n\n// export * from './nav'\nexport { NavPlugin } from './nav'\nexport { BNav } from './nav/nav'\nexport { BNavForm } from './nav/nav-form'\nexport { BNavItem } from './nav/nav-item'\nexport { BNavItemDropdown } from './nav/nav-item-dropdown'\nexport { BNavText } from './nav/nav-text'\n\n// export * from './navbar'\nexport { NavbarPlugin } from './navbar'\nexport { BNavbar } from './navbar/navbar'\nexport { BNavbarBrand } from './navbar/navbar-brand'\nexport { BNavbarNav } from './navbar/navbar-nav'\nexport { BNavbarToggle } from './navbar/navbar-toggle'\n\n// export * from './pagination'\nexport { PaginationPlugin } from './pagination'\nexport { BPagination } from './pagination/pagination'\n\n// export * from './pagination-nav'\nexport { PaginationNavPlugin } from './pagination-nav'\nexport { BPaginationNav } from './pagination-nav/pagination-nav'\n\n// export * from './popover'\nexport { PopoverPlugin } from './popover'\nexport { BPopover } from './popover/popover'\n\n// export * from './progress'\nexport { ProgressPlugin } from './progress'\nexport { BProgress } from './progress/progress'\nexport { BProgressBar } from './progress/progress-bar'\n\n// export * from './spinner'\nexport { SpinnerPlugin } from './spinner'\nexport { BSpinner } from './spinner/spinner'\n\n// export * from './table'\nexport { TablePlugin } from './table'\nexport { BTable } from './table/table'\nexport { BTableLite } from './table/table-lite'\n\n// export * from './tabs'\nexport { TabsPlugin } from './tabs'\nexport { BTabs } from './tabs/tabs'\nexport { BTab } from './tabs/tab'\n\n// export * from './toast'\nexport { ToastPlugin } from './toast'\nexport { BToast } from './toast/toast'\nexport { BToaster } from './toast/toaster'\n\n// export * from './tooltip'\nexport { TooltipPlugin } from './tooltip'\nexport { BTooltip } from './tooltip/tooltip'\n","import { BTooltip } from './tooltip'\nimport { VBTooltip } from '../../directives/tooltip/tooltip'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst TooltipPlugin = /*#__PURE__*/ pluginFactory({\n  components: { BTooltip },\n  directives: { VBTooltip }\n})\n\nexport { TooltipPlugin, BTooltip }\n\nexport default TooltipPlugin\n","import { VBModal } from './modal'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBModalPlugin = /*#__PURE__*/ pluginFactory({\n  directives: { VBModal }\n})\n\nexport { VBModalPlugin, VBModal }\n\nexport default VBModalPlugin\n","import { VBPopover } from './popover'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBPopoverPlugin = /*#__PURE__*/ pluginFactory({\n  directives: { VBPopover }\n})\n\nexport { VBPopoverPlugin, VBPopover }\n\nexport default VBPopoverPlugin\n","/*\n * ScrollSpy class definition\n */\n\nimport observeDom from '../../utils/observe-dom'\nimport warn from '../../utils/warn'\nimport {\n  isElement,\n  isVisible,\n  closest,\n  matches,\n  getBCR,\n  offset,\n  position,\n  selectAll,\n  select,\n  hasClass,\n  addClass,\n  removeClass,\n  getAttr,\n  eventOn,\n  eventOff\n} from '../../utils/dom'\nimport { isString, isUndefined } from '../../utils/inspect'\nimport { toString as objectToString } from '../../utils/object'\n\n/*\n * Constants / Defaults\n */\n\nconst NAME = 'v-b-scrollspy'\nconst ACTIVATE_EVENT = 'bv::scrollspy::activate'\n\nconst Default = {\n  element: 'body',\n  offset: 10,\n  method: 'auto',\n  throttle: 75\n}\n\nconst DefaultType = {\n  element: '(string|element|component)',\n  offset: 'number',\n  method: 'string',\n  throttle: 'number'\n}\n\nconst ClassName = {\n  DROPDOWN_ITEM: 'dropdown-item',\n  ACTIVE: 'active'\n}\n\nconst Selector = {\n  ACTIVE: '.active',\n  NAV_LIST_GROUP: '.nav, .list-group',\n  NAV_LINKS: '.nav-link',\n  NAV_ITEMS: '.nav-item',\n  LIST_ITEMS: '.list-group-item',\n  DROPDOWN: '.dropdown, .dropup',\n  DROPDOWN_ITEMS: '.dropdown-item',\n  DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n  OFFSET: 'offset',\n  POSITION: 'position'\n}\n\n// HREFs must end with a hash followed by at least one non-hash character.\n// HREFs in the links are assumed to point to non-external links.\n// Comparison to the current page base URL is not performed!\nconst HREF_REGEX = /^.*(#[^#]+)$/\n\n// Transition Events\nconst TransitionEndEvents = [\n  'webkitTransitionEnd',\n  'transitionend',\n  'otransitionend',\n  'oTransitionEnd'\n]\n\n// Options for events\nconst EventOptions = { passive: true, capture: false }\n\n/*\n * Utility Methods\n */\n\n// Better var type detection\nconst toType = obj => /* istanbul ignore next: not easy to test */ {\n  return objectToString(obj)\n    .match(/\\s([a-zA-Z]+)/)[1]\n    .toLowerCase()\n}\n\n// Check config properties for expected types\nconst typeCheckConfig = (\n  componentName,\n  config,\n  configTypes\n) => /* istanbul ignore next: not easy to test */ {\n  for (const property in configTypes) {\n    if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n      const expectedTypes = configTypes[property]\n      const value = config[property]\n      let valueType = value && isElement(value) ? 'element' : toType(value)\n      // handle Vue instances\n      valueType = value && value._isVue ? 'component' : valueType\n\n      if (!new RegExp(expectedTypes).test(valueType)) {\n        /* istanbul ignore next */\n        warn(\n          `${componentName}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\"`\n        )\n      }\n    }\n  }\n}\n\n/*\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n/* istanbul ignore next: not easy to test */\nclass ScrollSpy /* istanbul ignore next: not easy to test */ {\n  constructor(element, config, $root) {\n    // The element we activate links in\n    this.$el = element\n    this.$scroller = null\n    this.$selector = [Selector.NAV_LINKS, Selector.LIST_ITEMS, Selector.DROPDOWN_ITEMS].join(',')\n    this.$offsets = []\n    this.$targets = []\n    this.$activeTarget = null\n    this.$scrollHeight = 0\n    this.$resizeTimeout = null\n    this.$obs_scroller = null\n    this.$obs_targets = null\n    this.$root = $root || null\n    this.$config = null\n\n    this.updateConfig(config)\n  }\n\n  static get Name() {\n    return NAME\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  updateConfig(config, $root) {\n    if (this.$scroller) {\n      // Just in case out scroll element has changed\n      this.unlisten()\n      this.$scroller = null\n    }\n    const cfg = { ...this.constructor.Default, ...config }\n    if ($root) {\n      this.$root = $root\n    }\n    typeCheckConfig(this.constructor.Name, cfg, this.constructor.DefaultType)\n    this.$config = cfg\n\n    if (this.$root) {\n      const self = this\n      this.$root.$nextTick(() => {\n        self.listen()\n      })\n    } else {\n      this.listen()\n    }\n  }\n\n  dispose() {\n    this.unlisten()\n    clearTimeout(this.$resizeTimeout)\n    this.$resizeTimeout = null\n    this.$el = null\n    this.$config = null\n    this.$scroller = null\n    this.$selector = null\n    this.$offsets = null\n    this.$targets = null\n    this.$activeTarget = null\n    this.$scrollHeight = null\n  }\n\n  listen() {\n    const scroller = this.getScroller()\n    if (scroller && scroller.tagName !== 'BODY') {\n      eventOn(scroller, 'scroll', this, EventOptions)\n    }\n    eventOn(window, 'scroll', this, EventOptions)\n    eventOn(window, 'resize', this, EventOptions)\n    eventOn(window, 'orientationchange', this, EventOptions)\n    TransitionEndEvents.forEach(evtName => {\n      eventOn(window, evtName, this, EventOptions)\n    })\n    this.setObservers(true)\n    // Schedule a refresh\n    this.handleEvent('refresh')\n  }\n\n  unlisten() {\n    const scroller = this.getScroller()\n    this.setObservers(false)\n    if (scroller && scroller.tagName !== 'BODY') {\n      eventOff(scroller, 'scroll', this, EventOptions)\n    }\n    eventOff(window, 'scroll', this, EventOptions)\n    eventOff(window, 'resize', this, EventOptions)\n    eventOff(window, 'orientationchange', this, EventOptions)\n    TransitionEndEvents.forEach(evtName => {\n      eventOff(window, evtName, this, EventOptions)\n    })\n  }\n\n  setObservers(on) {\n    // We observe both the scroller for content changes, and the target links\n    if (this.$obs_scroller) {\n      this.$obs_scroller.disconnect()\n      this.$obs_scroller = null\n    }\n    if (this.$obs_targets) {\n      this.$obs_targets.disconnect()\n      this.$obs_targets = null\n    }\n    if (on) {\n      this.$obs_targets = observeDom(\n        this.$el,\n        () => {\n          this.handleEvent('mutation')\n        },\n        {\n          subtree: true,\n          childList: true,\n          attributes: true,\n          attributeFilter: ['href']\n        }\n      )\n      this.$obs_scroller = observeDom(\n        this.getScroller(),\n        () => {\n          this.handleEvent('mutation')\n        },\n        {\n          subtree: true,\n          childList: true,\n          characterData: true,\n          attributes: true,\n          attributeFilter: ['id', 'style', 'class']\n        }\n      )\n    }\n  }\n\n  // General event handler\n  handleEvent(evt) {\n    const type = isString(evt) ? evt : evt.type\n\n    const self = this\n    const resizeThrottle = () => {\n      if (!self.$resizeTimeout) {\n        self.$resizeTimeout = setTimeout(() => {\n          self.refresh()\n          self.process()\n          self.$resizeTimeout = null\n        }, self.$config.throttle)\n      }\n    }\n\n    if (type === 'scroll') {\n      if (!this.$obs_scroller) {\n        // Just in case we are added to the DOM before the scroll target is\n        // We re-instantiate our listeners, just in case\n        this.listen()\n      }\n      this.process()\n    } else if (/(resize|orientationchange|mutation|refresh)/.test(type)) {\n      // Postpone these events by throttle time\n      resizeThrottle()\n    }\n  }\n\n  // Refresh the list of target links on the element we are applied to\n  refresh() {\n    const scroller = this.getScroller()\n    if (!scroller) {\n      return\n    }\n    const autoMethod = scroller !== scroller.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET\n    const method = this.$config.method === 'auto' ? autoMethod : this.$config.method\n    const methodFn = method === OffsetMethod.POSITION ? position : offset\n    const offsetBase = method === OffsetMethod.POSITION ? this.getScrollTop() : 0\n\n    this.$offsets = []\n    this.$targets = []\n\n    this.$scrollHeight = this.getScrollHeight()\n\n    // Find all the unique link HREFs that we will control\n    selectAll(this.$selector, this.$el)\n      // Get HREF value\n      .map(link => getAttr(link, 'href'))\n      // Filter out HREFs that do not match our RegExp\n      .filter(href => href && HREF_REGEX.test(href || ''))\n      // Find all elements with ID that match HREF hash\n      .map(href => {\n        // Convert HREF into an ID (including # at beginning)\n        const id = href.replace(HREF_REGEX, '$1').trim()\n        if (!id) {\n          return null\n        }\n        // Find the element with the ID specified by id\n        const el = select(id, scroller)\n        if (el && isVisible(el)) {\n          return {\n            offset: parseInt(methodFn(el).top, 10) + offsetBase,\n            target: id\n          }\n        }\n        return null\n      })\n      .filter(Boolean)\n      // Sort them by their offsets (smallest first)\n      .sort((a, b) => a.offset - b.offset)\n      // record only unique targets/offsets\n      .reduce((memo, item) => {\n        if (!memo[item.target]) {\n          this.$offsets.push(item.offset)\n          this.$targets.push(item.target)\n          memo[item.target] = true\n        }\n        return memo\n      }, {})\n\n    // Return this for easy chaining\n    return this\n  }\n\n  // Handle activating/clearing\n  process() {\n    const scrollTop = this.getScrollTop() + this.$config.offset\n    const scrollHeight = this.getScrollHeight()\n    const maxScroll = this.$config.offset + scrollHeight - this.getOffsetHeight()\n\n    if (this.$scrollHeight !== scrollHeight) {\n      this.refresh()\n    }\n\n    if (scrollTop >= maxScroll) {\n      const target = this.$targets[this.$targets.length - 1]\n      if (this.$activeTarget !== target) {\n        this.activate(target)\n      }\n      return\n    }\n\n    if (this.$activeTarget && scrollTop < this.$offsets[0] && this.$offsets[0] > 0) {\n      this.$activeTarget = null\n      this.clear()\n      return\n    }\n\n    for (let i = this.$offsets.length; i--; ) {\n      const isActiveTarget =\n        this.$activeTarget !== this.$targets[i] &&\n        scrollTop >= this.$offsets[i] &&\n        (isUndefined(this.$offsets[i + 1]) || scrollTop < this.$offsets[i + 1])\n\n      if (isActiveTarget) {\n        this.activate(this.$targets[i])\n      }\n    }\n  }\n\n  getScroller() {\n    if (this.$scroller) {\n      return this.$scroller\n    }\n    let scroller = this.$config.element\n    if (!scroller) {\n      return null\n    } else if (isElement(scroller.$el)) {\n      scroller = scroller.$el\n    } else if (isString(scroller)) {\n      scroller = select(scroller)\n    }\n    if (!scroller) {\n      return null\n    }\n    this.$scroller = scroller.tagName === 'BODY' ? window : scroller\n    return this.$scroller\n  }\n\n  getScrollTop() {\n    const scroller = this.getScroller()\n    return scroller === window ? scroller.pageYOffset : scroller.scrollTop\n  }\n\n  getScrollHeight() {\n    return (\n      this.getScroller().scrollHeight ||\n      Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)\n    )\n  }\n\n  getOffsetHeight() {\n    const scroller = this.getScroller()\n    return scroller === window ? window.innerHeight : getBCR(scroller).height\n  }\n\n  activate(target) {\n    this.$activeTarget = target\n    this.clear()\n\n    // Grab the list of target links (<a href=\"{$target}\">)\n    const links = selectAll(\n      this.$selector\n        // Split out the base selectors\n        .split(',')\n        // Map to a selector that matches links with HREF ending in the ID (including '#')\n        .map(selector => `${selector}[href$=\"${target}\"]`)\n        // Join back into a single selector string\n        .join(','),\n      this.$el\n    )\n\n    links.forEach(link => {\n      if (hasClass(link, ClassName.DROPDOWN_ITEM)) {\n        // This is a dropdown item, so find the .dropdown-toggle and set it's state\n        const dropdown = closest(Selector.DROPDOWN, link)\n        if (dropdown) {\n          this.setActiveState(select(Selector.DROPDOWN_TOGGLE, dropdown), true)\n        }\n        // Also set this link's state\n        this.setActiveState(link, true)\n      } else {\n        // Set triggered link as active\n        this.setActiveState(link, true)\n        if (matches(link.parentElement, Selector.NAV_ITEMS)) {\n          // Handle nav-link inside nav-item, and set nav-item active\n          this.setActiveState(link.parentElement, true)\n        }\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        let el = link\n        while (el) {\n          el = closest(Selector.NAV_LIST_GROUP, el)\n          const sibling = el ? el.previousElementSibling : null\n          if (sibling && matches(sibling, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)) {\n            this.setActiveState(sibling, true)\n          }\n          // Handle special case where nav-link is inside a nav-item\n          if (sibling && matches(sibling, Selector.NAV_ITEMS)) {\n            this.setActiveState(select(Selector.NAV_LINKS, sibling), true)\n            // Add active state to nav-item as well\n            this.setActiveState(sibling, true)\n          }\n        }\n      }\n    })\n\n    // Signal event to via $root, passing ID of activated target and reference to array of links\n    if (links && links.length > 0 && this.$root) {\n      this.$root.$emit(ACTIVATE_EVENT, target, links)\n    }\n  }\n\n  clear() {\n    selectAll(`${this.$selector}, ${Selector.NAV_ITEMS}`, this.$el)\n      .filter(el => hasClass(el, ClassName.ACTIVE))\n      .forEach(el => this.setActiveState(el, false))\n  }\n\n  setActiveState(el, active) {\n    if (!el) {\n      return\n    }\n    if (active) {\n      addClass(el, ClassName.ACTIVE)\n    } else {\n      removeClass(el, ClassName.ACTIVE)\n    }\n  }\n}\n\nexport default ScrollSpy\n","import ScrollSpy from './scrollspy.class'\nimport { isBrowser } from '../../utils/env'\nimport { keys } from '../../utils/object'\nimport { isNumber, isObject, isString } from '../../utils/inspect'\n\n// Key we use to store our instance\nconst BV_SCROLLSPY = '__BV_ScrollSpy__'\n\n// Build a ScrollSpy config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n/* istanbul ignore next: not easy to test */\nconst parseBindings = bindings => /* istanbul ignore next: not easy to test */ {\n  const config = {}\n\n  // If argument, assume element ID\n  if (bindings.arg) {\n    // Element ID specified as arg\n    // We must prepend '#' to become a CSS selector\n    config.element = `#${bindings.arg}`\n  }\n\n  // Process modifiers\n  keys(bindings.modifiers).forEach(mod => {\n    if (/^\\d+$/.test(mod)) {\n      // Offset value\n      config.offset = parseInt(mod, 10)\n    } else if (/^(auto|position|offset)$/.test(mod)) {\n      // Offset method\n      config.method = mod\n    }\n  })\n\n  // Process value\n  if (isString(bindings.value)) {\n    // Value is a CSS ID or selector\n    config.element = bindings.value\n  } else if (isNumber(bindings.value)) {\n    // Value is offset\n    config.offset = Math.round(bindings.value)\n  } else if (isObject(bindings.value)) {\n    // Value is config object\n    // Filter the object based on our supported config options\n    keys(bindings.value)\n      .filter(k => Boolean(ScrollSpy.DefaultType[k]))\n      .forEach(k => {\n        config[k] = bindings.value[k]\n      })\n  }\n\n  return config\n}\n\n// Add or update ScrollSpy on our element\nconst applyScrollspy = (el, bindings, vnode) => /* istanbul ignore next: not easy to test */ {\n  if (!isBrowser) {\n    /* istanbul ignore next */\n    return\n  }\n  const config = parseBindings(bindings)\n  if (el[BV_SCROLLSPY]) {\n    el[BV_SCROLLSPY].updateConfig(config, vnode.context.$root)\n  } else {\n    el[BV_SCROLLSPY] = new ScrollSpy(el, config, vnode.context.$root)\n  }\n}\n\n// Remove ScrollSpy on our element\n/* istanbul ignore next: not easy to test */\nconst removeScrollspy = el => /* istanbul ignore next: not easy to test */ {\n  if (el[BV_SCROLLSPY]) {\n    el[BV_SCROLLSPY].dispose()\n    el[BV_SCROLLSPY] = null\n    delete el[BV_SCROLLSPY]\n  }\n}\n\n/*\n * Export our directive\n */\nexport const VBScrollspy = {\n  bind(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    applyScrollspy(el, bindings, vnode)\n  },\n  inserted(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    applyScrollspy(el, bindings, vnode)\n  },\n  update(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyScrollspy(el, bindings, vnode)\n    }\n  },\n  componentUpdated(el, bindings, vnode) /* istanbul ignore next: not easy to test */ {\n    if (bindings.value !== bindings.oldValue) {\n      applyScrollspy(el, bindings, vnode)\n    }\n  },\n  unbind(el) /* istanbul ignore next: not easy to test */ {\n    removeScrollspy(el)\n  }\n}\n\nexport default VBScrollspy\n","import { installFactory } from './utils/plugins'\nimport { setConfig } from './utils/config-set'\nimport { componentsPlugin } from './components/index.esm'\nimport { directivesPlugin } from './directives/index.esm'\nimport BVConfigPlugin from './bv-config'\n\n// Named exports of all components and component group plugins\nexport * from './components/index.esm'\n\n// Named exports of all directives and directive group plugins\nexport * from './directives/index.esm'\n\n// BootstrapVue installer\nconst install = /*#__PURE__*/ installFactory({ plugins: { componentsPlugin, directivesPlugin } })\n\n// BootstrapVue plugin\nconst BootstrapVue = /*#__PURE__*/ {\n  install: install,\n  // To be deprecated. not documented\n  setConfig: setConfig\n}\n\n// Named exports for BvConfigPlugin and BootstrapVue\nexport {\n  // BV Config Plugin\n  BVConfigPlugin,\n  // BVConfigPlugin has been documented as BVConfig as well,\n  // so we add an alias to the shorter name for backwards compat\n  BVConfigPlugin as BVConfig,\n  // Main BootstrapVue Plugin\n  BootstrapVue,\n  // Installer and setConfig exported in case the consumer does not\n  // import `default` as the plugin in CommonJS build (or does not\n  // have interop enabled for CommonJS). Both the following will work:\n  //   BootstrapVue = require('bootstrap-vue')\n  //   BootstrapVue = require('bootstrap-vue').default\n  //   Vue.use(BootstrapVue)\n  install,\n  // To be deprecated. not documented\n  setConfig\n}\n\n// Default export is the BootstrapVue plugin\nexport default BootstrapVue\n","// Index file used for the main builds, which does not include legacy plugin names\n// Once es/ buld is removed, then this file will be renamed to index.js\nimport { pluginFactory } from '../utils/plugins'\n\nimport { VBModalPlugin } from './modal'\nimport { VBPopoverPlugin } from './popover'\nimport { VBScrollspyPlugin } from './scrollspy'\nimport { VBTogglePlugin } from './toggle'\nimport { VBTooltipPlugin } from './tooltip'\n\n// Main plugin for installing all directive plugins\nexport const directivesPlugin = /*#__PURE__*/ pluginFactory({\n  plugins: {\n    VBModalPlugin,\n    VBPopoverPlugin,\n    VBScrollspyPlugin,\n    VBTogglePlugin,\n    VBTooltipPlugin\n  }\n})\n\n// Named exports of all directives (VB<Name>) and Plugins (VB<name>Plugin)\n// See src/compinents/index.esm.js for notes/comment\n\n// export * from './modal'\nexport { VBModalPlugin } from './modal'\nexport { VBModal } from './modal/modal'\n\n// export * from './popover'\nexport { VBPopoverPlugin } from './popover'\nexport { VBPopover } from './popover/popover'\n\n// export * from './scrollspy'\nexport { VBScrollspyPlugin } from './scrollspy'\nexport { VBScrollspy } from './scrollspy/scrollspy'\n\n// export * from './toggle'\nexport { VBTogglePlugin } from './toggle'\nexport { VBToggle } from './toggle/toggle'\n\n// export * from './tooltip'\nexport { VBTooltipPlugin } from './tooltip'\nexport { VBTooltip } from './tooltip/tooltip'\n","import { VBScrollspy } from './scrollspy'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBScrollspyPlugin = /*#__PURE__*/ pluginFactory({\n  directives: { VBScrollspy }\n})\n\nexport { VBScrollspyPlugin, VBScrollspy }\n\nexport default VBScrollspyPlugin\n","import { VBToggle } from './toggle'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBTogglePlugin = /*#__PURE__*/ pluginFactory({\n  directives: { VBToggle }\n})\n\nexport { VBTogglePlugin, VBToggle }\n\nexport default VBTogglePlugin\n","import { VBTooltip } from './tooltip'\nimport { pluginFactory } from '../../utils/plugins'\n\nconst VBTooltipPlugin = /*#__PURE__*/ pluginFactory({\n  directives: { VBTooltip }\n})\n\nexport { VBTooltipPlugin, VBTooltip }\n\nexport default VBTooltipPlugin\n","// Main entry point for the browser build\nimport { vueUse } from './utils/plugins'\n\nimport BootstrapVue from './index'\n\n// Auto installation only occurs if window.Vue exists\nvueUse(BootstrapVue)\n\nexport default BootstrapVue\n"]}
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/vue/vue.js-11473-  // strip strings in expressions
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/vue/vue.js:11474:  var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/vue/vue.js-11475-
##############################################
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/vue/vue.min.js-5- */
orthanc-dicomweb-1.3+dfsg/debian/ThirdPartyDownloads/vue/vue.min.js:6:!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Vue=t()}(this,function(){"use strict";var e=Object.freeze({});function t(e){return null==e}function n(e){return null!=e}function r(e){return!0===e}function i(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function o(e){return null!==e&&"object"==typeof e}var a=Object.prototype.toString;function s(e){return"[object Object]"===a.call(e)}function c(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function u(e){return n(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function l(e){return null==e?"":Array.isArray(e)||s(e)&&e.toString===a?JSON.stringify(e,null,2):String(e)}function f(e){var t=parseFloat(e);return isNaN(t)?e:t}function p(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i<r.length;i++)n[r[i]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}var d=p("slot,component",!0),v=p("key,ref,slot,slot-scope,is");function h(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}var m=Object.prototype.hasOwnProperty;function y(e,t){return m.call(e,t)}function g(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var _=/-(\w)/g,b=g(function(e){return e.replace(_,function(e,t){return t?t.toUpperCase():""})}),$=g(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),w=/\B([A-Z])/g,C=g(function(e){return e.replace(w,"-$1").toLowerCase()});var x=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function k(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function A(e,t){for(var n in t)e[n]=t[n];return e}function O(e){for(var t={},n=0;n<e.length;n++)e[n]&&A(t,e[n]);return t}function S(e,t,n){}var T=function(e,t,n){return!1},E=function(e){return e};function N(e,t){if(e===t)return!0;var n=o(e),r=o(t);if(!n||!r)return!n&&!r&&String(e)===String(t);try{var i=Array.isArray(e),a=Array.isArray(t);if(i&&a)return e.length===t.length&&e.every(function(e,n){return N(e,t[n])});if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(i||a)return!1;var s=Object.keys(e),c=Object.keys(t);return s.length===c.length&&s.every(function(n){return N(e[n],t[n])})}catch(e){return!1}}function j(e,t){for(var n=0;n<e.length;n++)if(N(e[n],t))return n;return-1}function D(e){var t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}var L="data-server-rendered",M=["component","directive","filter"],I=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],F={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:T,isReservedAttr:T,isUnknownElement:T,getTagNamespace:S,parsePlatformTagName:E,mustUseProp:T,async:!0,_lifecycleHooks:I},P=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function R(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var H=new RegExp("[^"+P.source+".$_\\d]");var B,U="__proto__"in{},z="undefined"!=typeof window,V="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,K=V&&WXEnvironment.platform.toLowerCase(),J=z&&window.navigator.userAgent.toLowerCase(),q=J&&/msie|trident/.test(J),W=J&&J.indexOf("msie 9.0")>0,Z=J&&J.indexOf("edge/")>0,G=(J&&J.indexOf("android"),J&&/iphone|ipad|ipod|ios/.test(J)||"ios"===K),X=(J&&/chrome\/\d+/.test(J),J&&/phantomjs/.test(J),J&&J.match(/firefox\/(\d+)/)),Y={}.watch,Q=!1;if(z)try{var ee={};Object.defineProperty(ee,"passive",{get:function(){Q=!0}}),window.addEventListener("test-passive",null,ee)}catch(e){}var te=function(){return void 0===B&&(B=!z&&!V&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),B},ne=z&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function re(e){return"function"==typeof e&&/native code/.test(e.toString())}var ie,oe="undefined"!=typeof Symbol&&re(Symbol)&&"undefined"!=typeof Reflect&&re(Reflect.ownKeys);ie="undefined"!=typeof Set&&re(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ae=S,se=0,ce=function(){this.id=se++,this.subs=[]};ce.prototype.addSub=function(e){this.subs.push(e)},ce.prototype.removeSub=function(e){h(this.subs,e)},ce.prototype.depend=function(){ce.target&&ce.target.addDep(this)},ce.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t<n;t++)e[t].update()},ce.target=null;var ue=[];function le(e){ue.push(e),ce.target=e}function fe(){ue.pop(),ce.target=ue[ue.length-1]}var pe=function(e,t,n,r,i,o,a,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},de={child:{configurable:!0}};de.child.get=function(){return this.componentInstance},Object.defineProperties(pe.prototype,de);var ve=function(e){void 0===e&&(e="");var t=new pe;return t.text=e,t.isComment=!0,t};function he(e){return new pe(void 0,void 0,void 0,String(e))}function me(e){var t=new pe(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.asyncMeta=e.asyncMeta,t.isCloned=!0,t}var ye=Array.prototype,ge=Object.create(ye);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(e){var t=ye[e];R(ge,e,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var i,o=t.apply(this,n),a=this.__ob__;switch(e){case"push":case"unshift":i=n;break;case"splice":i=n.slice(2)}return i&&a.observeArray(i),a.dep.notify(),o})});var _e=Object.getOwnPropertyNames(ge),be=!0;function $e(e){be=e}var we=function(e){var t;this.value=e,this.dep=new ce,this.vmCount=0,R(e,"__ob__",this),Array.isArray(e)?(U?(t=ge,e.__proto__=t):function(e,t,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];R(e,o,t[o])}}(e,ge,_e),this.observeArray(e)):this.walk(e)};function Ce(e,t){var n;if(o(e)&&!(e instanceof pe))return y(e,"__ob__")&&e.__ob__ instanceof we?n=e.__ob__:be&&!te()&&(Array.isArray(e)||s(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new we(e)),t&&n&&n.vmCount++,n}function xe(e,t,n,r,i){var o=new ce,a=Object.getOwnPropertyDescriptor(e,t);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set;s&&!c||2!==arguments.length||(n=e[t]);var u=!i&&Ce(n);Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){var t=s?s.call(e):n;return ce.target&&(o.depend(),u&&(u.dep.depend(),Array.isArray(t)&&function e(t){for(var n=void 0,r=0,i=t.length;r<i;r++)(n=t[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&e(n)}(t))),t},set:function(t){var r=s?s.call(e):n;t===r||t!=t&&r!=r||s&&!c||(c?c.call(e,t):n=t,u=!i&&Ce(t),o.notify())}})}}function ke(e,t,n){if(Array.isArray(e)&&c(t))return e.length=Math.max(e.length,t),e.splice(t,1,n),n;if(t in e&&!(t in Object.prototype))return e[t]=n,n;var r=e.__ob__;return e._isVue||r&&r.vmCount?n:r?(xe(r.value,t,n),r.dep.notify(),n):(e[t]=n,n)}function Ae(e,t){if(Array.isArray(e)&&c(t))e.splice(t,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||y(e,t)&&(delete e[t],n&&n.dep.notify())}}we.prototype.walk=function(e){for(var t=Object.keys(e),n=0;n<t.length;n++)xe(e,t[n])},we.prototype.observeArray=function(e){for(var t=0,n=e.length;t<n;t++)Ce(e[t])};var Oe=F.optionMergeStrategies;function Se(e,t){if(!t)return e;for(var n,r,i,o=oe?Reflect.ownKeys(t):Object.keys(t),a=0;a<o.length;a++)"__ob__"!==(n=o[a])&&(r=e[n],i=t[n],y(e,n)?r!==i&&s(r)&&s(i)&&Se(r,i):ke(e,n,i));return e}function Te(e,t,n){return n?function(){var r="function"==typeof t?t.call(n,n):t,i="function"==typeof e?e.call(n,n):e;return r?Se(r,i):i}:t?e?function(){return Se("function"==typeof t?t.call(this,this):t,"function"==typeof e?e.call(this,this):e)}:t:e}function Ee(e,t){var n=t?e?e.concat(t):Array.isArray(t)?t:[t]:e;return n?function(e){for(var t=[],n=0;n<e.length;n++)-1===t.indexOf(e[n])&&t.push(e[n]);return t}(n):n}function Ne(e,t,n,r){var i=Object.create(e||null);return t?A(i,t):i}Oe.data=function(e,t,n){return n?Te(e,t,n):t&&"function"!=typeof t?e:Te(e,t)},I.forEach(function(e){Oe[e]=Ee}),M.forEach(function(e){Oe[e+"s"]=Ne}),Oe.watch=function(e,t,n,r){if(e===Y&&(e=void 0),t===Y&&(t=void 0),!t)return Object.create(e||null);if(!e)return t;var i={};for(var o in A(i,e),t){var a=i[o],s=t[o];a&&!Array.isArray(a)&&(a=[a]),i[o]=a?a.concat(s):Array.isArray(s)?s:[s]}return i},Oe.props=Oe.methods=Oe.inject=Oe.computed=function(e,t,n,r){if(!e)return t;var i=Object.create(null);return A(i,e),t&&A(i,t),i},Oe.provide=Te;var je=function(e,t){return void 0===t?e:t};function De(e,t,n){if("function"==typeof t&&(t=t.options),function(e,t){var n=e.props;if(n){var r,i,o={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(i=n[r])&&(o[b(i)]={type:null});else if(s(n))for(var a in n)i=n[a],o[b(a)]=s(i)?i:{type:i};e.props=o}}(t),function(e,t){var n=e.inject;if(n){var r=e.inject={};if(Array.isArray(n))for(var i=0;i<n.length;i++)r[n[i]]={from:n[i]};else if(s(n))for(var o in n){var a=n[o];r[o]=s(a)?A({from:o},a):{from:a}}}}(t),function(e){var t=e.directives;if(t)for(var n in t){var r=t[n];"function"==typeof r&&(t[n]={bind:r,update:r})}}(t),!t._base&&(t.extends&&(e=De(e,t.extends,n)),t.mixins))for(var r=0,i=t.mixins.length;r<i;r++)e=De(e,t.mixins[r],n);var o,a={};for(o in e)c(o);for(o in t)y(e,o)||c(o);function c(r){var i=Oe[r]||je;a[r]=i(e[r],t[r],n,r)}return a}function Le(e,t,n,r){if("string"==typeof n){var i=e[t];if(y(i,n))return i[n];var o=b(n);if(y(i,o))return i[o];var a=$(o);return y(i,a)?i[a]:i[n]||i[o]||i[a]}}function Me(e,t,n,r){var i=t[e],o=!y(n,e),a=n[e],s=Pe(Boolean,i.type);if(s>-1)if(o&&!y(i,"default"))a=!1;else if(""===a||a===C(e)){var c=Pe(String,i.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=function(e,t,n){if(!y(t,"default"))return;var r=t.default;if(e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n])return e._props[n];return"function"==typeof r&&"Function"!==Ie(t.type)?r.call(e):r}(r,i,e);var u=be;$e(!0),Ce(a),$e(u)}return a}function Ie(e){var t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function Fe(e,t){return Ie(e)===Ie(t)}function Pe(e,t){if(!Array.isArray(t))return Fe(t,e)?0:-1;for(var n=0,r=t.length;n<r;n++)if(Fe(t[n],e))return n;return-1}function Re(e,t,n){le();try{if(t)for(var r=t;r=r.$parent;){var i=r.$options.errorCaptured;if(i)for(var o=0;o<i.length;o++)try{if(!1===i[o].call(r,e,t,n))return}catch(e){Be(e,r,"errorCaptured hook")}}Be(e,t,n)}finally{fe()}}function He(e,t,n,r,i){var o;try{(o=n?e.apply(t,n):e.call(t))&&!o._isVue&&u(o)&&!o._handled&&(o.catch(function(e){return Re(e,r,i+" (Promise/async)")}),o._handled=!0)}catch(e){Re(e,r,i)}return o}function Be(e,t,n){if(F.errorHandler)try{return F.errorHandler.call(null,e,t,n)}catch(t){t!==e&&Ue(t,null,"config.errorHandler")}Ue(e,t,n)}function Ue(e,t,n){if(!z&&!V||"undefined"==typeof console)throw e;console.error(e)}var ze,Ve=!1,Ke=[],Je=!1;function qe(){Je=!1;var e=Ke.slice(0);Ke.length=0;for(var t=0;t<e.length;t++)e[t]()}if("undefined"!=typeof Promise&&re(Promise)){var We=Promise.resolve();ze=function(){We.then(qe),G&&setTimeout(S)},Ve=!0}else if(q||"undefined"==typeof MutationObserver||!re(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())ze="undefined"!=typeof setImmediate&&re(setImmediate)?function(){setImmediate(qe)}:function(){setTimeout(qe,0)};else{var Ze=1,Ge=new MutationObserver(qe),Xe=document.createTextNode(String(Ze));Ge.observe(Xe,{characterData:!0}),ze=function(){Ze=(Ze+1)%2,Xe.data=String(Ze)},Ve=!0}function Ye(e,t){var n;if(Ke.push(function(){if(e)try{e.call(t)}catch(e){Re(e,t,"nextTick")}else n&&n(t)}),Je||(Je=!0,ze()),!e&&"undefined"!=typeof Promise)return new Promise(function(e){n=e})}var Qe=new ie;function et(e){!function e(t,n){var r,i;var a=Array.isArray(t);if(!a&&!o(t)||Object.isFrozen(t)||t instanceof pe)return;if(t.__ob__){var s=t.__ob__.dep.id;if(n.has(s))return;n.add(s)}if(a)for(r=t.length;r--;)e(t[r],n);else for(i=Object.keys(t),r=i.length;r--;)e(t[i[r]],n)}(e,Qe),Qe.clear()}var tt=g(function(e){var t="&"===e.charAt(0),n="~"===(e=t?e.slice(1):e).charAt(0),r="!"===(e=n?e.slice(1):e).charAt(0);return{name:e=r?e.slice(1):e,once:n,capture:r,passive:t}});function nt(e,t){function n(){var e=arguments,r=n.fns;if(!Array.isArray(r))return He(r,null,arguments,t,"v-on handler");for(var i=r.slice(),o=0;o<i.length;o++)He(i[o],null,e,t,"v-on handler")}return n.fns=e,n}function rt(e,n,i,o,a,s){var c,u,l,f;for(c in e)u=e[c],l=n[c],f=tt(c),t(u)||(t(l)?(t(u.fns)&&(u=e[c]=nt(u,s)),r(f.once)&&(u=e[c]=a(f.name,u,f.capture)),i(f.name,u,f.capture,f.passive,f.params)):u!==l&&(l.fns=u,e[c]=l));for(c in n)t(e[c])&&o((f=tt(c)).name,n[c],f.capture)}function it(e,i,o){var a;e instanceof pe&&(e=e.data.hook||(e.data.hook={}));var s=e[i];function c(){o.apply(this,arguments),h(a.fns,c)}t(s)?a=nt([c]):n(s.fns)&&r(s.merged)?(a=s).fns.push(c):a=nt([s,c]),a.merged=!0,e[i]=a}function ot(e,t,r,i,o){if(n(t)){if(y(t,r))return e[r]=t[r],o||delete t[r],!0;if(y(t,i))return e[r]=t[i],o||delete t[i],!0}return!1}function at(e){return i(e)?[he(e)]:Array.isArray(e)?function e(o,a){var s=[];var c,u,l,f;for(c=0;c<o.length;c++)t(u=o[c])||"boolean"==typeof u||(l=s.length-1,f=s[l],Array.isArray(u)?u.length>0&&(st((u=e(u,(a||"")+"_"+c))[0])&&st(f)&&(s[l]=he(f.text+u[0].text),u.shift()),s.push.apply(s,u)):i(u)?st(f)?s[l]=he(f.text+u):""!==u&&s.push(he(u)):st(u)&&st(f)?s[l]=he(f.text+u.text):(r(o._isVList)&&n(u.tag)&&t(u.key)&&n(a)&&(u.key="__vlist"+a+"_"+c+"__"),s.push(u)));return s}(e):void 0}function st(e){return n(e)&&n(e.text)&&!1===e.isComment}function ct(e,t){if(e){for(var n=Object.create(null),r=oe?Reflect.ownKeys(e):Object.keys(e),i=0;i<r.length;i++){var o=r[i];if("__ob__"!==o){for(var a=e[o].from,s=t;s;){if(s._provided&&y(s._provided,a)){n[o]=s._provided[a];break}s=s.$parent}if(!s&&"default"in e[o]){var c=e[o].default;n[o]="function"==typeof c?c.call(t):c}}}return n}}function ut(e,t){if(!e||!e.length)return{};for(var n={},r=0,i=e.length;r<i;r++){var o=e[r],a=o.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,o.context!==t&&o.fnContext!==t||!a||null==a.slot)(n.default||(n.default=[])).push(o);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===o.tag?c.push.apply(c,o.children||[]):c.push(o)}}for(var u in n)n[u].every(lt)&&delete n[u];return n}function lt(e){return e.isComment&&!e.asyncFactory||" "===e.text}function ft(t,n,r){var i,o=Object.keys(n).length>0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&r&&r!==e&&s===r.$key&&!o&&!r.$hasNormal)return r;for(var c in i={},t)t[c]&&"$"!==c[0]&&(i[c]=pt(n,c,t[c]))}else i={};for(var u in n)u in i||(i[u]=dt(n,u));return t&&Object.isExtensible(t)&&(t._normalized=i),R(i,"$stable",a),R(i,"$key",s),R(i,"$hasNormal",o),i}function pt(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});return(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:at(e))&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function dt(e,t){return function(){return e[t]}}function vt(e,t){var r,i,a,s,c;if(Array.isArray(e)||"string"==typeof e)for(r=new Array(e.length),i=0,a=e.length;i<a;i++)r[i]=t(e[i],i);else if("number"==typeof e)for(r=new Array(e),i=0;i<e;i++)r[i]=t(i+1,i);else if(o(e))if(oe&&e[Symbol.iterator]){r=[];for(var u=e[Symbol.iterator](),l=u.next();!l.done;)r.push(t(l.value,r.length)),l=u.next()}else for(s=Object.keys(e),r=new Array(s.length),i=0,a=s.length;i<a;i++)c=s[i],r[i]=t(e[c],c,i);return n(r)||(r=[]),r._isVList=!0,r}function ht(e,t,n,r){var i,o=this.$scopedSlots[e];o?(n=n||{},r&&(n=A(A({},r),n)),i=o(n)||t):i=this.$slots[e]||t;var a=n&&n.slot;return a?this.$createElement("template",{slot:a},i):i}function mt(e){return Le(this.$options,"filters",e)||E}function yt(e,t){return Array.isArray(e)?-1===e.indexOf(t):e!==t}function gt(e,t,n,r,i){var o=F.keyCodes[t]||n;return i&&r&&!F.keyCodes[t]?yt(i,r):o?yt(o,e):r?C(r)!==t:void 0}function _t(e,t,n,r,i){if(n)if(o(n)){var a;Array.isArray(n)&&(n=O(n));var s=function(o){if("class"===o||"style"===o||v(o))a=e;else{var s=e.attrs&&e.attrs.type;a=r||F.mustUseProp(t,s,o)?e.domProps||(e.domProps={}):e.attrs||(e.attrs={})}var c=b(o),u=C(o);c in a||u in a||(a[o]=n[o],i&&((e.on||(e.on={}))["update:"+o]=function(e){n[o]=e}))};for(var c in n)s(c)}else;return e}function bt(e,t){var n=this._staticTrees||(this._staticTrees=[]),r=n[e];return r&&!t?r:(wt(r=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),"__static__"+e,!1),r)}function $t(e,t,n){return wt(e,"__once__"+t+(n?"_"+n:""),!0),e}function wt(e,t,n){if(Array.isArray(e))for(var r=0;r<e.length;r++)e[r]&&"string"!=typeof e[r]&&Ct(e[r],t+"_"+r,n);else Ct(e,t,n)}function Ct(e,t,n){e.isStatic=!0,e.key=t,e.isOnce=n}function xt(e,t){if(t)if(s(t)){var n=e.on=e.on?A({},e.on):{};for(var r in t){var i=n[r],o=t[r];n[r]=i?[].concat(i,o):o}}else;return e}function kt(e,t,n,r){t=t||{$stable:!n};for(var i=0;i<e.length;i++){var o=e[i];Array.isArray(o)?kt(o,t,n):o&&(o.proxy&&(o.fn.proxy=!0),t[o.key]=o.fn)}return r&&(t.$key=r),t}function At(e,t){for(var n=0;n<t.length;n+=2){var r=t[n];"string"==typeof r&&r&&(e[t[n]]=t[n+1])}return e}function Ot(e,t){return"string"==typeof e?t+e:e}function St(e){e._o=$t,e._n=f,e._s=l,e._l=vt,e._t=ht,e._q=N,e._i=j,e._m=bt,e._f=mt,e._k=gt,e._b=_t,e._v=he,e._e=ve,e._u=kt,e._g=xt,e._d=At,e._p=Ot}function Tt(t,n,i,o,a){var s,c=this,u=a.options;y(o,"_uid")?(s=Object.create(o))._original=o:(s=o,o=o._original);var l=r(u._compiled),f=!l;this.data=t,this.props=n,this.children=i,this.parent=o,this.listeners=t.on||e,this.injections=ct(u.inject,o),this.slots=function(){return c.$slots||ft(t.scopedSlots,c.$slots=ut(i,o)),c.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return ft(t.scopedSlots,this.slots())}}),l&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=ft(t.scopedSlots,this.$slots)),u._scopeId?this._c=function(e,t,n,r){var i=Pt(s,e,t,n,r,f);return i&&!Array.isArray(i)&&(i.fnScopeId=u._scopeId,i.fnContext=o),i}:this._c=function(e,t,n,r){return Pt(s,e,t,n,r,f)}}function Et(e,t,n,r,i){var o=me(e);return o.fnContext=n,o.fnOptions=r,t.slot&&((o.data||(o.data={})).slot=t.slot),o}function Nt(e,t){for(var n in t)e[b(n)]=t[n]}St(Tt.prototype);var jt={init:function(e,t){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var r=e;jt.prepatch(r,r)}else{(e.componentInstance=function(e,t){var r={_isComponent:!0,_parentVnode:e,parent:t},i=e.data.inlineTemplate;n(i)&&(r.render=i.render,r.staticRenderFns=i.staticRenderFns);return new e.componentOptions.Ctor(r)}(e,Wt)).$mount(t?e.elm:void 0,t)}},prepatch:function(t,n){var r=n.componentOptions;!function(t,n,r,i,o){var a=i.data.scopedSlots,s=t.$scopedSlots,c=!!(a&&!a.$stable||s!==e&&!s.$stable||a&&t.$scopedSlots.$key!==a.$key),u=!!(o||t.$options._renderChildren||c);t.$options._parentVnode=i,t.$vnode=i,t._vnode&&(t._vnode.parent=i);if(t.$options._renderChildren=o,t.$attrs=i.data.attrs||e,t.$listeners=r||e,n&&t.$options.props){$e(!1);for(var l=t._props,f=t.$options._propKeys||[],p=0;p<f.length;p++){var d=f[p],v=t.$options.props;l[d]=Me(d,v,n,t)}$e(!0),t.$options.propsData=n}r=r||e;var h=t.$options._parentListeners;t.$options._parentListeners=r,qt(t,r,h),u&&(t.$slots=ut(o,i.context),t.$forceUpdate())}(n.componentInstance=t.componentInstance,r.propsData,r.listeners,n,r.children)},insert:function(e){var t,n=e.context,r=e.componentInstance;r._isMounted||(r._isMounted=!0,Yt(r,"mounted")),e.data.keepAlive&&(n._isMounted?((t=r)._inactive=!1,en.push(t)):Xt(r,!0))},destroy:function(e){var t=e.componentInstance;t._isDestroyed||(e.data.keepAlive?function e(t,n){if(n&&(t._directInactive=!0,Gt(t)))return;if(!t._inactive){t._inactive=!0;for(var r=0;r<t.$children.length;r++)e(t.$children[r]);Yt(t,"deactivated")}}(t,!0):t.$destroy())}},Dt=Object.keys(jt);function Lt(i,a,s,c,l){if(!t(i)){var f=s.$options._base;if(o(i)&&(i=f.extend(i)),"function"==typeof i){var p;if(t(i.cid)&&void 0===(i=function(e,i){if(r(e.error)&&n(e.errorComp))return e.errorComp;if(n(e.resolved))return e.resolved;var a=Ht;a&&n(e.owners)&&-1===e.owners.indexOf(a)&&e.owners.push(a);if(r(e.loading)&&n(e.loadingComp))return e.loadingComp;if(a&&!n(e.owners)){var s=e.owners=[a],c=!0,l=null,f=null;a.$on("hook:destroyed",function(){return h(s,a)});var p=function(e){for(var t=0,n=s.length;t<n;t++)s[t].$forceUpdate();e&&(s.length=0,null!==l&&(clearTimeout(l),l=null),null!==f&&(clearTimeout(f),f=null))},d=D(function(t){e.resolved=Bt(t,i),c?s.length=0:p(!0)}),v=D(function(t){n(e.errorComp)&&(e.error=!0,p(!0))}),m=e(d,v);return o(m)&&(u(m)?t(e.resolved)&&m.then(d,v):u(m.component)&&(m.component.then(d,v),n(m.error)&&(e.errorComp=Bt(m.error,i)),n(m.loading)&&(e.loadingComp=Bt(m.loading,i),0===m.delay?e.loading=!0:l=setTimeout(function(){l=null,t(e.resolved)&&t(e.error)&&(e.loading=!0,p(!1))},m.delay||200)),n(m.timeout)&&(f=setTimeout(function(){f=null,t(e.resolved)&&v(null)},m.timeout)))),c=!1,e.loading?e.loadingComp:e.resolved}}(p=i,f)))return function(e,t,n,r,i){var o=ve();return o.asyncFactory=e,o.asyncMeta={data:t,context:n,children:r,tag:i},o}(p,a,s,c,l);a=a||{},$n(i),n(a.model)&&function(e,t){var r=e.model&&e.model.prop||"value",i=e.model&&e.model.event||"input";(t.attrs||(t.attrs={}))[r]=t.model.value;var o=t.on||(t.on={}),a=o[i],s=t.model.callback;n(a)?(Array.isArray(a)?-1===a.indexOf(s):a!==s)&&(o[i]=[s].concat(a)):o[i]=s}(i.options,a);var d=function(e,r,i){var o=r.options.props;if(!t(o)){var a={},s=e.attrs,c=e.props;if(n(s)||n(c))for(var u in o){var l=C(u);ot(a,c,u,l,!0)||ot(a,s,u,l,!1)}return a}}(a,i);if(r(i.options.functional))return function(t,r,i,o,a){var s=t.options,c={},u=s.props;if(n(u))for(var l in u)c[l]=Me(l,u,r||e);else n(i.attrs)&&Nt(c,i.attrs),n(i.props)&&Nt(c,i.props);var f=new Tt(i,c,a,o,t),p=s.render.call(null,f._c,f);if(p instanceof pe)return Et(p,i,f.parent,s);if(Array.isArray(p)){for(var d=at(p)||[],v=new Array(d.length),h=0;h<d.length;h++)v[h]=Et(d[h],i,f.parent,s);return v}}(i,d,a,s,c);var v=a.on;if(a.on=a.nativeOn,r(i.options.abstract)){var m=a.slot;a={},m&&(a.slot=m)}!function(e){for(var t=e.hook||(e.hook={}),n=0;n<Dt.length;n++){var r=Dt[n],i=t[r],o=jt[r];i===o||i&&i._merged||(t[r]=i?Mt(o,i):o)}}(a);var y=i.options.name||l;return new pe("vue-component-"+i.cid+(y?"-"+y:""),a,void 0,void 0,void 0,s,{Ctor:i,propsData:d,listeners:v,tag:l,children:c},p)}}}function Mt(e,t){var n=function(n,r){e(n,r),t(n,r)};return n._merged=!0,n}var It=1,Ft=2;function Pt(e,a,s,c,u,l){return(Array.isArray(s)||i(s))&&(u=c,c=s,s=void 0),r(l)&&(u=Ft),function(e,i,a,s,c){if(n(a)&&n(a.__ob__))return ve();n(a)&&n(a.is)&&(i=a.is);if(!i)return ve();Array.isArray(s)&&"function"==typeof s[0]&&((a=a||{}).scopedSlots={default:s[0]},s.length=0);c===Ft?s=at(s):c===It&&(s=function(e){for(var t=0;t<e.length;t++)if(Array.isArray(e[t]))return Array.prototype.concat.apply([],e);return e}(s));var u,l;if("string"==typeof i){var f;l=e.$vnode&&e.$vnode.ns||F.getTagNamespace(i),u=F.isReservedTag(i)?new pe(F.parsePlatformTagName(i),a,s,void 0,void 0,e):a&&a.pre||!n(f=Le(e.$options,"components",i))?new pe(i,a,s,void 0,void 0,e):Lt(f,a,e,s,i)}else u=Lt(i,a,e,s);return Array.isArray(u)?u:n(u)?(n(l)&&function e(i,o,a){i.ns=o;"foreignObject"===i.tag&&(o=void 0,a=!0);if(n(i.children))for(var s=0,c=i.children.length;s<c;s++){var u=i.children[s];n(u.tag)&&(t(u.ns)||r(a)&&"svg"!==u.tag)&&e(u,o,a)}}(u,l),n(a)&&function(e){o(e.style)&&et(e.style);o(e.class)&&et(e.class)}(a),u):ve()}(e,a,s,c,u)}var Rt,Ht=null;function Bt(e,t){return(e.__esModule||oe&&"Module"===e[Symbol.toStringTag])&&(e=e.default),o(e)?t.extend(e):e}function Ut(e){return e.isComment&&e.asyncFactory}function zt(e){if(Array.isArray(e))for(var t=0;t<e.length;t++){var r=e[t];if(n(r)&&(n(r.componentOptions)||Ut(r)))return r}}function Vt(e,t){Rt.$on(e,t)}function Kt(e,t){Rt.$off(e,t)}function Jt(e,t){var n=Rt;return function r(){null!==t.apply(null,arguments)&&n.$off(e,r)}}function qt(e,t,n){Rt=e,rt(t,n||{},Vt,Kt,Jt,e),Rt=void 0}var Wt=null;function Zt(e){var t=Wt;return Wt=e,function(){Wt=t}}function Gt(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function Xt(e,t){if(t){if(e._directInactive=!1,Gt(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)Xt(e.$children[n]);Yt(e,"activated")}}function Yt(e,t){le();var n=e.$options[t],r=t+" hook";if(n)for(var i=0,o=n.length;i<o;i++)He(n[i],e,null,e,r);e._hasHookEvent&&e.$emit("hook:"+t),fe()}var Qt=[],en=[],tn={},nn=!1,rn=!1,on=0;var an=0,sn=Date.now;if(z&&!q){var cn=window.performance;cn&&"function"==typeof cn.now&&sn()>document.createEvent("Event").timeStamp&&(sn=function(){return cn.now()})}function un(){var e,t;for(an=sn(),rn=!0,Qt.sort(function(e,t){return e.id-t.id}),on=0;on<Qt.length;on++)(e=Qt[on]).before&&e.before(),t=e.id,tn[t]=null,e.run();var n=en.slice(),r=Qt.slice();on=Qt.length=en.length=0,tn={},nn=rn=!1,function(e){for(var t=0;t<e.length;t++)e[t]._inactive=!0,Xt(e[t],!0)}(n),function(e){var t=e.length;for(;t--;){var n=e[t],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&Yt(r,"updated")}}(r),ne&&F.devtools&&ne.emit("flush")}var ln=0,fn=function(e,t,n,r,i){this.vm=e,i&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++ln,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ie,this.newDepIds=new ie,this.expression="","function"==typeof t?this.getter=t:(this.getter=function(e){if(!H.test(e)){var t=e.split(".");return function(e){for(var n=0;n<t.length;n++){if(!e)return;e=e[t[n]]}return e}}}(t),this.getter||(this.getter=S)),this.value=this.lazy?void 0:this.get()};fn.prototype.get=function(){var e;le(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(e){if(!this.user)throw e;Re(e,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&et(e),fe(),this.cleanupDeps()}return e},fn.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},fn.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},fn.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(e){var t=e.id;if(null==tn[t]){if(tn[t]=!0,rn){for(var n=Qt.length-1;n>on&&Qt[n].id>e.id;)n--;Qt.splice(n+1,0,e)}else Qt.push(e);nn||(nn=!0,Ye(un))}}(this)},fn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||o(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Re(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},fn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},fn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},fn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||h(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var pn={enumerable:!0,configurable:!0,get:S,set:S};function dn(e,t,n){pn.get=function(){return this[t][n]},pn.set=function(e){this[t][n]=e},Object.defineProperty(e,n,pn)}function vn(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&$e(!1);var o=function(o){i.push(o);var a=Me(o,t,n,e);xe(r,o,a),o in e||dn(e,"_props",o)};for(var a in t)o(a);$e(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]="function"!=typeof t[n]?S:x(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;s(t=e._data="function"==typeof t?function(e,t){le();try{return e.call(t,t)}catch(e){return Re(e,t,"data()"),{}}finally{fe()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];r&&y(r,o)||(a=void 0,36!==(a=(o+"").charCodeAt(0))&&95!==a&&dn(e,"_data",o))}var a;Ce(t,!0)}(e):Ce(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=te();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new fn(e,a||S,S,hn)),i in e||mn(e,i,o)}}(e,t.computed),t.watch&&t.watch!==Y&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)_n(e,n,r[i]);else _n(e,n,r)}}(e,t.watch)}var hn={lazy:!0};function mn(e,t,n){var r=!te();"function"==typeof n?(pn.get=r?yn(t):gn(n),pn.set=S):(pn.get=n.get?r&&!1!==n.cache?yn(t):gn(n.get):S,pn.set=n.set||S),Object.defineProperty(e,t,pn)}function yn(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),ce.target&&t.depend(),t.value}}function gn(e){return function(){return e.call(this,this)}}function _n(e,t,n,r){return s(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=e[n]),e.$watch(t,n,r)}var bn=0;function $n(e){var t=e.options;if(e.super){var n=$n(e.super);if(n!==e.superOptions){e.superOptions=n;var r=function(e){var t,n=e.options,r=e.sealedOptions;for(var i in n)n[i]!==r[i]&&(t||(t={}),t[i]=n[i]);return t}(e);r&&A(e.extendOptions,r),(t=e.options=De(n,e.extendOptions)).name&&(t.components[t.name]=e)}}return t}function wn(e){this._init(e)}function Cn(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,i=e._Ctor||(e._Ctor={});if(i[r])return i[r];var o=e.name||n.options.name,a=function(e){this._init(e)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=t++,a.options=De(n.options,e),a.super=n,a.options.props&&function(e){var t=e.options.props;for(var n in t)dn(e.prototype,"_props",n)}(a),a.options.computed&&function(e){var t=e.options.computed;for(var n in t)mn(e.prototype,n,t[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,M.forEach(function(e){a[e]=n[e]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=e,a.sealedOptions=A({},a.options),i[r]=a,a}}function xn(e){return e&&(e.Ctor.options.name||e.tag)}function kn(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:(n=e,"[object RegExp]"===a.call(n)&&e.test(t));var n}function An(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=xn(a.componentOptions);s&&!t(s)&&On(n,o,r,i)}}}function On(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,h(n,t)}!function(t){t.prototype._init=function(t){var n=this;n._uid=bn++,n._isVue=!0,t&&t._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(n,t):n.$options=De($n(n.constructor),t||{},n),n._renderProxy=n,n._self=n,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(n),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&qt(e,t)}(n),function(t){t._vnode=null,t._staticTrees=null;var n=t.$options,r=t.$vnode=n._parentVnode,i=r&&r.context;t.$slots=ut(n._renderChildren,i),t.$scopedSlots=e,t._c=function(e,n,r,i){return Pt(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return Pt(t,e,n,r,i,!0)};var o=r&&r.data;xe(t,"$attrs",o&&o.attrs||e,null,!0),xe(t,"$listeners",n._parentListeners||e,null,!0)}(n),Yt(n,"beforeCreate"),function(e){var t=ct(e.$options.inject,e);t&&($e(!1),Object.keys(t).forEach(function(n){xe(e,n,t[n])}),$e(!0))}(n),vn(n),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(n),Yt(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(wn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=ke,e.prototype.$delete=Ae,e.prototype.$watch=function(e,t,n){if(s(t))return _n(this,e,t,n);(n=n||{}).user=!0;var r=new fn(this,e,t,n);if(n.immediate)try{t.call(this,r.value)}catch(e){Re(e,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(wn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i<o;i++)r.$on(e[i],n);else(r._events[e]||(r._events[e]=[])).push(n),t.test(e)&&(r._hasHookEvent=!0);return r},e.prototype.$once=function(e,t){var n=this;function r(){n.$off(e,r),t.apply(n,arguments)}return r.fn=t,n.$on(e,r),n},e.prototype.$off=function(e,t){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(e)){for(var r=0,i=e.length;r<i;r++)n.$off(e[r],t);return n}var o,a=n._events[e];if(!a)return n;if(!t)return n._events[e]=null,n;for(var s=a.length;s--;)if((o=a[s])===t||o.fn===t){a.splice(s,1);break}return n},e.prototype.$emit=function(e){var t=this._events[e];if(t){t=t.length>1?k(t):t;for(var n=k(arguments,1),r='event handler for "'+e+'"',i=0,o=t.length;i<o;i++)He(t[i],this,n,this,r)}return this}}(wn),function(e){e.prototype._update=function(e,t){var n=this,r=n.$el,i=n._vnode,o=Zt(n);n._vnode=e,n.$el=i?n.__patch__(i,e):n.__patch__(n.$el,e,t,!1),o(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},e.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},e.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){Yt(e,"beforeDestroy"),e._isBeingDestroyed=!0;var t=e.$parent;!t||t._isBeingDestroyed||e.$options.abstract||h(t.$children,e),e._watcher&&e._watcher.teardown();for(var n=e._watchers.length;n--;)e._watchers[n].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),Yt(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}}}(wn),function(e){St(e.prototype),e.prototype.$nextTick=function(e){return Ye(e,this)},e.prototype._render=function(){var e,t=this,n=t.$options,r=n.render,i=n._parentVnode;i&&(t.$scopedSlots=ft(i.data.scopedSlots,t.$slots,t.$scopedSlots)),t.$vnode=i;try{Ht=t,e=r.call(t._renderProxy,t.$createElement)}catch(n){Re(n,t,"render"),e=t._vnode}finally{Ht=null}return Array.isArray(e)&&1===e.length&&(e=e[0]),e instanceof pe||(e=ve()),e.parent=i,e}}(wn);var Sn=[String,RegExp,Array],Tn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:Sn,exclude:Sn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)On(this.cache,e,this.keys)},mounted:function(){var e=this;this.$watch("include",function(t){An(e,function(e){return kn(t,e)})}),this.$watch("exclude",function(t){An(e,function(e){return!kn(t,e)})})},render:function(){var e=this.$slots.default,t=zt(e),n=t&&t.componentOptions;if(n){var r=xn(n),i=this.include,o=this.exclude;if(i&&(!r||!kn(i,r))||o&&r&&kn(o,r))return t;var a=this.cache,s=this.keys,c=null==t.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):t.key;a[c]?(t.componentInstance=a[c].componentInstance,h(s,c),s.push(c)):(a[c]=t,s.push(c),this.max&&s.length>parseInt(this.max)&&On(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return F}};Object.defineProperty(e,"config",t),e.util={warn:ae,extend:A,mergeOptions:De,defineReactive:xe},e.set=ke,e.delete=Ae,e.nextTick=Ye,e.observable=function(e){return Ce(e),e},e.options=Object.create(null),M.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,A(e.options.components,Tn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=k(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=De(this.options,e),this}}(e),Cn(e),function(e){M.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&s(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}(e)}(wn),Object.defineProperty(wn.prototype,"$isServer",{get:te}),Object.defineProperty(wn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(wn,"FunctionalRenderContext",{value:Tt}),wn.version="2.6.10";var En=p("style,class"),Nn=p("input,textarea,option,select,progress"),jn=function(e,t,n){return"value"===n&&Nn(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Dn=p("contenteditable,draggable,spellcheck"),Ln=p("events,caret,typing,plaintext-only"),Mn=function(e,t){return Hn(t)||"false"===t?"false":"contenteditable"===e&&Ln(t)?t:"true"},In=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Fn="http://www.w3.org/1999/xlink",Pn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Rn=function(e){return Pn(e)?e.slice(6,e.length):""},Hn=function(e){return null==e||!1===e};function Bn(e){for(var t=e.data,r=e,i=e;n(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(t=Un(i.data,t));for(;n(r=r.parent);)r&&r.data&&(t=Un(t,r.data));return function(e,t){if(n(e)||n(t))return zn(e,Vn(t));return""}(t.staticClass,t.class)}function Un(e,t){return{staticClass:zn(e.staticClass,t.staticClass),class:n(e.class)?[e.class,t.class]:t.class}}function zn(e,t){return e?t?e+" "+t:e:t||""}function Vn(e){return Array.isArray(e)?function(e){for(var t,r="",i=0,o=e.length;i<o;i++)n(t=Vn(e[i]))&&""!==t&&(r&&(r+=" "),r+=t);return r}(e):o(e)?function(e){var t="";for(var n in e)e[n]&&(t&&(t+=" "),t+=n);return t}(e):"string"==typeof e?e:""}var Kn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Jn=p("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),qn=p("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Wn=function(e){return Jn(e)||qn(e)};function Zn(e){return qn(e)?"svg":"math"===e?"math":void 0}var Gn=Object.create(null);var Xn=p("text,number,password,search,email,tel,url");function Yn(e){if("string"==typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}var Qn=Object.freeze({createElement:function(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(e,t){return document.createElementNS(Kn[e],t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,n){e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},setStyleScope:function(e,t){e.setAttribute(t,"")}}),er={create:function(e,t){tr(t)},update:function(e,t){e.data.ref!==t.data.ref&&(tr(e,!0),tr(t))},destroy:function(e){tr(e,!0)}};function tr(e,t){var r=e.data.ref;if(n(r)){var i=e.context,o=e.componentInstance||e.elm,a=i.$refs;t?Array.isArray(a[r])?h(a[r],o):a[r]===o&&(a[r]=void 0):e.data.refInFor?Array.isArray(a[r])?a[r].indexOf(o)<0&&a[r].push(o):a[r]=[o]:a[r]=o}}var nr=new pe("",{},[]),rr=["create","activate","update","remove","destroy"];function ir(e,i){return e.key===i.key&&(e.tag===i.tag&&e.isComment===i.isComment&&n(e.data)===n(i.data)&&function(e,t){if("input"!==e.tag)return!0;var r,i=n(r=e.data)&&n(r=r.attrs)&&r.type,o=n(r=t.data)&&n(r=r.attrs)&&r.type;return i===o||Xn(i)&&Xn(o)}(e,i)||r(e.isAsyncPlaceholder)&&e.asyncFactory===i.asyncFactory&&t(i.asyncFactory.error))}function or(e,t,r){var i,o,a={};for(i=t;i<=r;++i)n(o=e[i].key)&&(a[o]=i);return a}var ar={create:sr,update:sr,destroy:function(e){sr(e,nr)}};function sr(e,t){(e.data.directives||t.data.directives)&&function(e,t){var n,r,i,o=e===nr,a=t===nr,s=ur(e.data.directives,e.context),c=ur(t.data.directives,t.context),u=[],l=[];for(n in c)r=s[n],i=c[n],r?(i.oldValue=r.value,i.oldArg=r.arg,fr(i,"update",t,e),i.def&&i.def.componentUpdated&&l.push(i)):(fr(i,"bind",t,e),i.def&&i.def.inserted&&u.push(i));if(u.length){var f=function(){for(var n=0;n<u.length;n++)fr(u[n],"inserted",t,e)};o?it(t,"insert",f):f()}l.length&&it(t,"postpatch",function(){for(var n=0;n<l.length;n++)fr(l[n],"componentUpdated",t,e)});if(!o)for(n in s)c[n]||fr(s[n],"unbind",e,e,a)}(e,t)}var cr=Object.create(null);function ur(e,t){var n,r,i=Object.create(null);if(!e)return i;for(n=0;n<e.length;n++)(r=e[n]).modifiers||(r.modifiers=cr),i[lr(r)]=r,r.def=Le(t.$options,"directives",r.name);return i}function lr(e){return e.rawName||e.name+"."+Object.keys(e.modifiers||{}).join(".")}function fr(e,t,n,r,i){var o=e.def&&e.def[t];if(o)try{o(n.elm,e,n,r,i)}catch(r){Re(r,n.context,"directive "+e.name+" "+t+" hook")}}var pr=[er,ar];function dr(e,r){var i=r.componentOptions;if(!(n(i)&&!1===i.Ctor.options.inheritAttrs||t(e.data.attrs)&&t(r.data.attrs))){var o,a,s=r.elm,c=e.data.attrs||{},u=r.data.attrs||{};for(o in n(u.__ob__)&&(u=r.data.attrs=A({},u)),u)a=u[o],c[o]!==a&&vr(s,o,a);for(o in(q||Z)&&u.value!==c.value&&vr(s,"value",u.value),c)t(u[o])&&(Pn(o)?s.removeAttributeNS(Fn,Rn(o)):Dn(o)||s.removeAttribute(o))}}function vr(e,t,n){e.tagName.indexOf("-")>-1?hr(e,t,n):In(t)?Hn(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Dn(t)?e.setAttribute(t,Mn(t,n)):Pn(t)?Hn(n)?e.removeAttributeNS(Fn,Rn(t)):e.setAttributeNS(Fn,t,n):hr(e,t,n)}function hr(e,t,n){if(Hn(n))e.removeAttribute(t);else{if(q&&!W&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var mr={create:dr,update:dr};function yr(e,r){var i=r.elm,o=r.data,a=e.data;if(!(t(o.staticClass)&&t(o.class)&&(t(a)||t(a.staticClass)&&t(a.class)))){var s=Bn(r),c=i._transitionClasses;n(c)&&(s=zn(s,Vn(c))),s!==i._prevClass&&(i.setAttribute("class",s),i._prevClass=s)}}var gr,_r,br,$r,wr,Cr,xr={create:yr,update:yr},kr=/[\w).+\-_$\]]/;function Ar(e){var t,n,r,i,o,a=!1,s=!1,c=!1,u=!1,l=0,f=0,p=0,d=0;for(r=0;r<e.length;r++)if(n=t,t=e.charCodeAt(r),a)39===t&&92!==n&&(a=!1);else if(s)34===t&&92!==n&&(s=!1);else if(c)96===t&&92!==n&&(c=!1);else if(u)47===t&&92!==n&&(u=!1);else if(124!==t||124===e.charCodeAt(r+1)||124===e.charCodeAt(r-1)||l||f||p){switch(t){case 34:s=!0;break;case 39:a=!0;break;case 96:c=!0;break;case 40:p++;break;case 41:p--;break;case 91:f++;break;case 93:f--;break;case 123:l++;break;case 125:l--}if(47===t){for(var v=r-1,h=void 0;v>=0&&" "===(h=e.charAt(v));v--);h&&kr.test(h)||(u=!0)}}else void 0===i?(d=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(d,r).trim()),d=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==d&&m(),o)for(r=0;r<o.length;r++)i=Or(i,o[r]);return i}function Or(e,t){var n=t.indexOf("(");if(n<0)return'_f("'+t+'")('+e+")";var r=t.slice(0,n),i=t.slice(n+1);return'_f("'+r+'")('+e+(")"!==i?","+i:i)}function Sr(e,t){console.error("[Vue compiler]: "+e)}function Tr(e,t){return e?e.map(function(e){return e[t]}).filter(function(e){return e}):[]}function Er(e,t,n,r,i){(e.props||(e.props=[])).push(Rr({name:t,value:n,dynamic:i},r)),e.plain=!1}function Nr(e,t,n,r,i){(i?e.dynamicAttrs||(e.dynamicAttrs=[]):e.attrs||(e.attrs=[])).push(Rr({name:t,value:n,dynamic:i},r)),e.plain=!1}function jr(e,t,n,r){e.attrsMap[t]=n,e.attrsList.push(Rr({name:t,value:n},r))}function Dr(e,t,n,r,i,o,a,s){(e.directives||(e.directives=[])).push(Rr({name:t,rawName:n,value:r,arg:i,isDynamicArg:o,modifiers:a},s)),e.plain=!1}function Lr(e,t,n){return n?"_p("+t+',"'+e+'")':e+t}function Mr(t,n,r,i,o,a,s,c){var u;(i=i||e).right?c?n="("+n+")==='click'?'contextmenu':("+n+")":"click"===n&&(n="contextmenu",delete i.right):i.middle&&(c?n="("+n+")==='click'?'mouseup':("+n+")":"click"===n&&(n="mouseup")),i.capture&&(delete i.capture,n=Lr("!",n,c)),i.once&&(delete i.once,n=Lr("~",n,c)),i.passive&&(delete i.passive,n=Lr("&",n,c)),i.native?(delete i.native,u=t.nativeEvents||(t.nativeEvents={})):u=t.events||(t.events={});var l=Rr({value:r.trim(),dynamic:c},s);i!==e&&(l.modifiers=i);var f=u[n];Array.isArray(f)?o?f.unshift(l):f.push(l):u[n]=f?o?[l,f]:[f,l]:l,t.plain=!1}function Ir(e,t,n){var r=Fr(e,":"+t)||Fr(e,"v-bind:"+t);if(null!=r)return Ar(r);if(!1!==n){var i=Fr(e,t);if(null!=i)return JSON.stringify(i)}}function Fr(e,t,n){var r;if(null!=(r=e.attrsMap[t]))for(var i=e.attrsList,o=0,a=i.length;o<a;o++)if(i[o].name===t){i.splice(o,1);break}return n&&delete e.attrsMap[t],r}function Pr(e,t){for(var n=e.attrsList,r=0,i=n.length;r<i;r++){var o=n[r];if(t.test(o.name))return n.splice(r,1),o}}function Rr(e,t){return t&&(null!=t.start&&(e.start=t.start),null!=t.end&&(e.end=t.end)),e}function Hr(e,t,n){var r=n||{},i=r.number,o="$$v";r.trim&&(o="(typeof $$v === 'string'? $$v.trim(): $$v)"),i&&(o="_n("+o+")");var a=Br(t,o);e.model={value:"("+t+")",expression:JSON.stringify(t),callback:"function ($$v) {"+a+"}"}}function Br(e,t){var n=function(e){if(e=e.trim(),gr=e.length,e.indexOf("[")<0||e.lastIndexOf("]")<gr-1)return($r=e.lastIndexOf("."))>-1?{exp:e.slice(0,$r),key:'"'+e.slice($r+1)+'"'}:{exp:e,key:null};_r=e,$r=wr=Cr=0;for(;!zr();)Vr(br=Ur())?Jr(br):91===br&&Kr(br);return{exp:e.slice(0,wr),key:e.slice(wr+1,Cr)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function Ur(){return _r.charCodeAt(++$r)}function zr(){return $r>=gr}function Vr(e){return 34===e||39===e}function Kr(e){var t=1;for(wr=$r;!zr();)if(Vr(e=Ur()))Jr(e);else if(91===e&&t++,93===e&&t--,0===t){Cr=$r;break}}function Jr(e){for(var t=e;!zr()&&(e=Ur())!==t;);}var qr,Wr="__r",Zr="__c";function Gr(e,t,n){var r=qr;return function i(){null!==t.apply(null,arguments)&&Qr(e,i,n,r)}}var Xr=Ve&&!(X&&Number(X[1])<=53);function Yr(e,t,n,r){if(Xr){var i=an,o=t;t=o._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return o.apply(this,arguments)}}qr.addEventListener(e,t,Q?{capture:n,passive:r}:n)}function Qr(e,t,n,r){(r||qr).removeEventListener(e,t._wrapper||t,n)}function ei(e,r){if(!t(e.data.on)||!t(r.data.on)){var i=r.data.on||{},o=e.data.on||{};qr=r.elm,function(e){if(n(e[Wr])){var t=q?"change":"input";e[t]=[].concat(e[Wr],e[t]||[]),delete e[Wr]}n(e[Zr])&&(e.change=[].concat(e[Zr],e.change||[]),delete e[Zr])}(i),rt(i,o,Yr,Qr,Gr,r.context),qr=void 0}}var ti,ni={create:ei,update:ei};function ri(e,r){if(!t(e.data.domProps)||!t(r.data.domProps)){var i,o,a=r.elm,s=e.data.domProps||{},c=r.data.domProps||{};for(i in n(c.__ob__)&&(c=r.data.domProps=A({},c)),s)i in c||(a[i]="");for(i in c){if(o=c[i],"textContent"===i||"innerHTML"===i){if(r.children&&(r.children.length=0),o===s[i])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===i&&"PROGRESS"!==a.tagName){a._value=o;var u=t(o)?"":String(o);ii(a,u)&&(a.value=u)}else if("innerHTML"===i&&qn(a.tagName)&&t(a.innerHTML)){(ti=ti||document.createElement("div")).innerHTML="<svg>"+o+"</svg>";for(var l=ti.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(o!==s[i])try{a[i]=o}catch(e){}}}}function ii(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var r=e.value,i=e._vModifiers;if(n(i)){if(i.number)return f(r)!==f(t);if(i.trim)return r.trim()!==t.trim()}return r!==t}(e,t))}var oi={create:ri,update:ri},ai=g(function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach(function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t});function si(e){var t=ci(e.style);return e.staticStyle?A(e.staticStyle,t):t}function ci(e){return Array.isArray(e)?O(e):"string"==typeof e?ai(e):e}var ui,li=/^--/,fi=/\s*!important$/,pi=function(e,t,n){if(li.test(t))e.style.setProperty(t,n);else if(fi.test(n))e.style.setProperty(C(t),n.replace(fi,""),"important");else{var r=vi(t);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)e.style[r]=n[i];else e.style[r]=n}},di=["Webkit","Moz","ms"],vi=g(function(e){if(ui=ui||document.createElement("div").style,"filter"!==(e=b(e))&&e in ui)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<di.length;n++){var r=di[n]+t;if(r in ui)return r}});function hi(e,r){var i=r.data,o=e.data;if(!(t(i.staticStyle)&&t(i.style)&&t(o.staticStyle)&&t(o.style))){var a,s,c=r.elm,u=o.staticStyle,l=o.normalizedStyle||o.style||{},f=u||l,p=ci(r.data.style)||{};r.data.normalizedStyle=n(p.__ob__)?A({},p):p;var d=function(e,t){var n,r={};if(t)for(var i=e;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=si(i.data))&&A(r,n);(n=si(e.data))&&A(r,n);for(var o=e;o=o.parent;)o.data&&(n=si(o.data))&&A(r,n);return r}(r,!0);for(s in f)t(d[s])&&pi(c,s,"");for(s in d)(a=d[s])!==f[s]&&pi(c,s,null==a?"":a)}}var mi={create:hi,update:hi},yi=/\s+/;function gi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(yi).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function _i(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(yi).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function bi(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&A(t,$i(e.name||"v")),A(t,e),t}return"string"==typeof e?$i(e):void 0}}var $i=g(function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}}),wi=z&&!W,Ci="transition",xi="animation",ki="transition",Ai="transitionend",Oi="animation",Si="animationend";wi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(ki="WebkitTransition",Ai="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Oi="WebkitAnimation",Si="webkitAnimationEnd"));var Ti=z?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Ei(e){Ti(function(){Ti(e)})}function Ni(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),gi(e,t))}function ji(e,t){e._transitionClasses&&h(e._transitionClasses,t),_i(e,t)}function Di(e,t,n){var r=Mi(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Ci?Ai:Si,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=a&&u()};setTimeout(function(){c<a&&u()},o+1),e.addEventListener(s,l)}var Li=/\b(transform|all)(,|$)/;function Mi(e,t){var n,r=window.getComputedStyle(e),i=(r[ki+"Delay"]||"").split(", "),o=(r[ki+"Duration"]||"").split(", "),a=Ii(i,o),s=(r[Oi+"Delay"]||"").split(", "),c=(r[Oi+"Duration"]||"").split(", "),u=Ii(s,c),l=0,f=0;return t===Ci?a>0&&(n=Ci,l=a,f=o.length):t===xi?u>0&&(n=xi,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Ci:xi:null)?n===Ci?o.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Ci&&Li.test(r[ki+"Property"])}}function Ii(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max.apply(null,t.map(function(t,n){return Fi(t)+Fi(e[n])}))}function Fi(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function Pi(e,r){var i=e.elm;n(i._leaveCb)&&(i._leaveCb.cancelled=!0,i._leaveCb());var a=bi(e.data.transition);if(!t(a)&&!n(i._enterCb)&&1===i.nodeType){for(var s=a.css,c=a.type,u=a.enterClass,l=a.enterToClass,p=a.enterActiveClass,d=a.appearClass,v=a.appearToClass,h=a.appearActiveClass,m=a.beforeEnter,y=a.enter,g=a.afterEnter,_=a.enterCancelled,b=a.beforeAppear,$=a.appear,w=a.afterAppear,C=a.appearCancelled,x=a.duration,k=Wt,A=Wt.$vnode;A&&A.parent;)k=A.context,A=A.parent;var O=!k._isMounted||!e.isRootInsert;if(!O||$||""===$){var S=O&&d?d:u,T=O&&h?h:p,E=O&&v?v:l,N=O&&b||m,j=O&&"function"==typeof $?$:y,L=O&&w||g,M=O&&C||_,I=f(o(x)?x.enter:x),F=!1!==s&&!W,P=Bi(j),R=i._enterCb=D(function(){F&&(ji(i,E),ji(i,T)),R.cancelled?(F&&ji(i,S),M&&M(i)):L&&L(i),i._enterCb=null});e.data.show||it(e,"insert",function(){var t=i.parentNode,n=t&&t._pending&&t._pending[e.key];n&&n.tag===e.tag&&n.elm._leaveCb&&n.elm._leaveCb(),j&&j(i,R)}),N&&N(i),F&&(Ni(i,S),Ni(i,T),Ei(function(){ji(i,S),R.cancelled||(Ni(i,E),P||(Hi(I)?setTimeout(R,I):Di(i,c,R)))})),e.data.show&&(r&&r(),j&&j(i,R)),F||P||R()}}}function Ri(e,r){var i=e.elm;n(i._enterCb)&&(i._enterCb.cancelled=!0,i._enterCb());var a=bi(e.data.transition);if(t(a)||1!==i.nodeType)return r();if(!n(i._leaveCb)){var s=a.css,c=a.type,u=a.leaveClass,l=a.leaveToClass,p=a.leaveActiveClass,d=a.beforeLeave,v=a.leave,h=a.afterLeave,m=a.leaveCancelled,y=a.delayLeave,g=a.duration,_=!1!==s&&!W,b=Bi(v),$=f(o(g)?g.leave:g),w=i._leaveCb=D(function(){i.parentNode&&i.parentNode._pending&&(i.parentNode._pending[e.key]=null),_&&(ji(i,l),ji(i,p)),w.cancelled?(_&&ji(i,u),m&&m(i)):(r(),h&&h(i)),i._leaveCb=null});y?y(C):C()}function C(){w.cancelled||(!e.data.show&&i.parentNode&&((i.parentNode._pending||(i.parentNode._pending={}))[e.key]=e),d&&d(i),_&&(Ni(i,u),Ni(i,p),Ei(function(){ji(i,u),w.cancelled||(Ni(i,l),b||(Hi($)?setTimeout(w,$):Di(i,c,w)))})),v&&v(i,w),_||b||w())}}function Hi(e){return"number"==typeof e&&!isNaN(e)}function Bi(e){if(t(e))return!1;var r=e.fns;return n(r)?Bi(Array.isArray(r)?r[0]:r):(e._length||e.length)>1}function Ui(e,t){!0!==t.data.show&&Pi(t)}var zi=function(e){var o,a,s={},c=e.modules,u=e.nodeOps;for(o=0;o<rr.length;++o)for(s[rr[o]]=[],a=0;a<c.length;++a)n(c[a][rr[o]])&&s[rr[o]].push(c[a][rr[o]]);function l(e){var t=u.parentNode(e);n(t)&&u.removeChild(t,e)}function f(e,t,i,o,a,c,l){if(n(e.elm)&&n(c)&&(e=c[l]=me(e)),e.isRootInsert=!a,!function(e,t,i,o){var a=e.data;if(n(a)){var c=n(e.componentInstance)&&a.keepAlive;if(n(a=a.hook)&&n(a=a.init)&&a(e,!1),n(e.componentInstance))return d(e,t),v(i,e.elm,o),r(c)&&function(e,t,r,i){for(var o,a=e;a.componentInstance;)if(a=a.componentInstance._vnode,n(o=a.data)&&n(o=o.transition)){for(o=0;o<s.activate.length;++o)s.activate[o](nr,a);t.push(a);break}v(r,e.elm,i)}(e,t,i,o),!0}}(e,t,i,o)){var f=e.data,p=e.children,m=e.tag;n(m)?(e.elm=e.ns?u.createElementNS(e.ns,m):u.createElement(m,e),g(e),h(e,p,t),n(f)&&y(e,t),v(i,e.elm,o)):r(e.isComment)?(e.elm=u.createComment(e.text),v(i,e.elm,o)):(e.elm=u.createTextNode(e.text),v(i,e.elm,o))}}function d(e,t){n(e.data.pendingInsert)&&(t.push.apply(t,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,m(e)?(y(e,t),g(e)):(tr(e),t.push(e))}function v(e,t,r){n(e)&&(n(r)?u.parentNode(r)===e&&u.insertBefore(e,t,r):u.appendChild(e,t))}function h(e,t,n){if(Array.isArray(t))for(var r=0;r<t.length;++r)f(t[r],n,e.elm,null,!0,t,r);else i(e.text)&&u.appendChild(e.elm,u.createTextNode(String(e.text)))}function m(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return n(e.tag)}function y(e,t){for(var r=0;r<s.create.length;++r)s.create[r](nr,e);n(o=e.data.hook)&&(n(o.create)&&o.create(nr,e),n(o.insert)&&t.push(e))}function g(e){var t;if(n(t=e.fnScopeId))u.setStyleScope(e.elm,t);else for(var r=e;r;)n(t=r.context)&&n(t=t.$options._scopeId)&&u.setStyleScope(e.elm,t),r=r.parent;n(t=Wt)&&t!==e.context&&t!==e.fnContext&&n(t=t.$options._scopeId)&&u.setStyleScope(e.elm,t)}function _(e,t,n,r,i,o){for(;r<=i;++r)f(n[r],o,e,t,!1,n,r)}function b(e){var t,r,i=e.data;if(n(i))for(n(t=i.hook)&&n(t=t.destroy)&&t(e),t=0;t<s.destroy.length;++t)s.destroy[t](e);if(n(t=e.children))for(r=0;r<e.children.length;++r)b(e.children[r])}function $(e,t,r,i){for(;r<=i;++r){var o=t[r];n(o)&&(n(o.tag)?(w(o),b(o)):l(o.elm))}}function w(e,t){if(n(t)||n(e.data)){var r,i=s.remove.length+1;for(n(t)?t.listeners+=i:t=function(e,t){function n(){0==--n.listeners&&l(e)}return n.listeners=t,n}(e.elm,i),n(r=e.componentInstance)&&n(r=r._vnode)&&n(r.data)&&w(r,t),r=0;r<s.remove.length;++r)s.remove[r](e,t);n(r=e.data.hook)&&n(r=r.remove)?r(e,t):t()}else l(e.elm)}function C(e,t,r,i){for(var o=r;o<i;o++){var a=t[o];if(n(a)&&ir(e,a))return o}}function x(e,i,o,a,c,l){if(e!==i){n(i.elm)&&n(a)&&(i=a[c]=me(i));var p=i.elm=e.elm;if(r(e.isAsyncPlaceholder))n(i.asyncFactory.resolved)?O(e.elm,i,o):i.isAsyncPlaceholder=!0;else if(r(i.isStatic)&&r(e.isStatic)&&i.key===e.key&&(r(i.isCloned)||r(i.isOnce)))i.componentInstance=e.componentInstance;else{var d,v=i.data;n(v)&&n(d=v.hook)&&n(d=d.prepatch)&&d(e,i);var h=e.children,y=i.children;if(n(v)&&m(i)){for(d=0;d<s.update.length;++d)s.update[d](e,i);n(d=v.hook)&&n(d=d.update)&&d(e,i)}t(i.text)?n(h)&&n(y)?h!==y&&function(e,r,i,o,a){for(var s,c,l,p=0,d=0,v=r.length-1,h=r[0],m=r[v],y=i.length-1,g=i[0],b=i[y],w=!a;p<=v&&d<=y;)t(h)?h=r[++p]:t(m)?m=r[--v]:ir(h,g)?(x(h,g,o,i,d),h=r[++p],g=i[++d]):ir(m,b)?(x(m,b,o,i,y),m=r[--v],b=i[--y]):ir(h,b)?(x(h,b,o,i,y),w&&u.insertBefore(e,h.elm,u.nextSibling(m.elm)),h=r[++p],b=i[--y]):ir(m,g)?(x(m,g,o,i,d),w&&u.insertBefore(e,m.elm,h.elm),m=r[--v],g=i[++d]):(t(s)&&(s=or(r,p,v)),t(c=n(g.key)?s[g.key]:C(g,r,p,v))?f(g,o,e,h.elm,!1,i,d):ir(l=r[c],g)?(x(l,g,o,i,d),r[c]=void 0,w&&u.insertBefore(e,l.elm,h.elm)):f(g,o,e,h.elm,!1,i,d),g=i[++d]);p>v?_(e,t(i[y+1])?null:i[y+1].elm,i,d,y,o):d>y&&$(0,r,p,v)}(p,h,y,o,l):n(y)?(n(e.text)&&u.setTextContent(p,""),_(p,null,y,0,y.length-1,o)):n(h)?$(0,h,0,h.length-1):n(e.text)&&u.setTextContent(p,""):e.text!==i.text&&u.setTextContent(p,i.text),n(v)&&n(d=v.hook)&&n(d=d.postpatch)&&d(e,i)}}}function k(e,t,i){if(r(i)&&n(e.parent))e.parent.data.pendingInsert=t;else for(var o=0;o<t.length;++o)t[o].data.hook.insert(t[o])}var A=p("attrs,class,staticClass,staticStyle,key");function O(e,t,i,o){var a,s=t.tag,c=t.data,u=t.children;if(o=o||c&&c.pre,t.elm=e,r(t.isComment)&&n(t.asyncFactory))return t.isAsyncPlaceholder=!0,!0;if(n(c)&&(n(a=c.hook)&&n(a=a.init)&&a(t,!0),n(a=t.componentInstance)))return d(t,i),!0;if(n(s)){if(n(u))if(e.hasChildNodes())if(n(a=c)&&n(a=a.domProps)&&n(a=a.innerHTML)){if(a!==e.innerHTML)return!1}else{for(var l=!0,f=e.firstChild,p=0;p<u.length;p++){if(!f||!O(f,u[p],i,o)){l=!1;break}f=f.nextSibling}if(!l||f)return!1}else h(t,u,i);if(n(c)){var v=!1;for(var m in c)if(!A(m)){v=!0,y(t,i);break}!v&&c.class&&et(c.class)}}else e.data!==t.text&&(e.data=t.text);return!0}return function(e,i,o,a){if(!t(i)){var c,l=!1,p=[];if(t(e))l=!0,f(i,p);else{var d=n(e.nodeType);if(!d&&ir(e,i))x(e,i,p,null,null,a);else{if(d){if(1===e.nodeType&&e.hasAttribute(L)&&(e.removeAttribute(L),o=!0),r(o)&&O(e,i,p))return k(i,p,!0),e;c=e,e=new pe(u.tagName(c).toLowerCase(),{},[],void 0,c)}var v=e.elm,h=u.parentNode(v);if(f(i,p,v._leaveCb?null:h,u.nextSibling(v)),n(i.parent))for(var y=i.parent,g=m(i);y;){for(var _=0;_<s.destroy.length;++_)s.destroy[_](y);if(y.elm=i.elm,g){for(var w=0;w<s.create.length;++w)s.create[w](nr,y);var C=y.data.hook.insert;if(C.merged)for(var A=1;A<C.fns.length;A++)C.fns[A]()}else tr(y);y=y.parent}n(h)?$(0,[e],0,0):n(e.tag)&&b(e)}}return k(i,p,l),i.elm}n(e)&&b(e)}}({nodeOps:Qn,modules:[mr,xr,ni,oi,mi,z?{create:Ui,activate:Ui,remove:function(e,t){!0!==e.data.show?Ri(e,t):t()}}:{}].concat(pr)});W&&document.addEventListener("selectionchange",function(){var e=document.activeElement;e&&e.vmodel&&Xi(e,"input")});var Vi={inserted:function(e,t,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?it(n,"postpatch",function(){Vi.componentUpdated(e,t,n)}):Ki(e,t,n.context),e._vOptions=[].map.call(e.options,Wi)):("textarea"===n.tag||Xn(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener("compositionstart",Zi),e.addEventListener("compositionend",Gi),e.addEventListener("change",Gi),W&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if("select"===n.tag){Ki(e,t,n.context);var r=e._vOptions,i=e._vOptions=[].map.call(e.options,Wi);if(i.some(function(e,t){return!N(e,r[t])}))(e.multiple?t.value.some(function(e){return qi(e,i)}):t.value!==t.oldValue&&qi(t.value,i))&&Xi(e,"change")}}};function Ki(e,t,n){Ji(e,t,n),(q||Z)&&setTimeout(function(){Ji(e,t,n)},0)}function Ji(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=e.options.length;s<c;s++)if(a=e.options[s],i)o=j(r,Wi(a))>-1,a.selected!==o&&(a.selected=o);else if(N(Wi(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function qi(e,t){return t.every(function(t){return!N(t,e)})}function Wi(e){return"_value"in e?e._value:e.value}function Zi(e){e.target.composing=!0}function Gi(e){e.target.composing&&(e.target.composing=!1,Xi(e.target,"input"))}function Xi(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Yi(e){return!e.componentInstance||e.data&&e.data.transition?e:Yi(e.componentInstance._vnode)}var Qi={model:Vi,show:{bind:function(e,t,n){var r=t.value,i=(n=Yi(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,Pi(n,function(){e.style.display=o})):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=Yi(n)).data&&n.data.transition?(n.data.show=!0,r?Pi(n,function(){e.style.display=e.__vOriginalDisplay}):Ri(n,function(){e.style.display="none"})):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},eo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function to(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?to(zt(t.children)):e}function no(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[b(o)]=i[o];return t}function ro(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var io=function(e){return e.tag||Ut(e)},oo=function(e){return"show"===e.name},ao={name:"transition",props:eo,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(io)).length){var r=this.mode,o=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return o;var a=to(o);if(!a)return o;if(this._leaving)return ro(e,o);var s="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?s+"comment":s+a.tag:i(a.key)?0===String(a.key).indexOf(s)?a.key:s+a.key:a.key;var c=(a.data||(a.data={})).transition=no(this),u=this._vnode,l=to(u);if(a.data.directives&&a.data.directives.some(oo)&&(a.data.show=!0),l&&l.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(a,l)&&!Ut(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=A({},c);if("out-in"===r)return this._leaving=!0,it(f,"afterLeave",function(){t._leaving=!1,t.$forceUpdate()}),ro(e,o);if("in-out"===r){if(Ut(a))return u;var p,d=function(){p()};it(c,"afterEnter",d),it(c,"enterCancelled",d),it(f,"delayLeave",function(e){p=e})}}return o}}},so=A({tag:String,moveClass:String},eo);function co(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function uo(e){e.data.newPos=e.elm.getBoundingClientRect()}function lo(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete so.mode;var fo={Transition:ao,TransitionGroup:{props:so,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=Zt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=no(this),s=0;s<i.length;s++){var c=i[s];c.tag&&null!=c.key&&0!==String(c.key).indexOf("__vlist")&&(o.push(c),n[c.key]=c,(c.data||(c.data={})).transition=a)}if(r){for(var u=[],l=[],f=0;f<r.length;f++){var p=r[f];p.data.transition=a,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?u.push(p):l.push(p)}this.kept=e(t,null,u),this.removed=l}return e(t,null,o)},updated:function(){var e=this.prevChildren,t=this.moveClass||(this.name||"v")+"-move";e.length&&this.hasMove(e[0].elm,t)&&(e.forEach(co),e.forEach(uo),e.forEach(lo),this._reflow=document.body.offsetHeight,e.forEach(function(e){if(e.data.moved){var n=e.elm,r=n.style;Ni(n,t),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(Ai,n._moveCb=function e(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(Ai,e),n._moveCb=null,ji(n,t))})}}))},methods:{hasMove:function(e,t){if(!wi)return!1;if(this._hasMove)return this._hasMove;var n=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach(function(e){_i(n,e)}),gi(n,t),n.style.display="none",this.$el.appendChild(n);var r=Mi(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};wn.config.mustUseProp=jn,wn.config.isReservedTag=Wn,wn.config.isReservedAttr=En,wn.config.getTagNamespace=Zn,wn.config.isUnknownElement=function(e){if(!z)return!0;if(Wn(e))return!1;if(e=e.toLowerCase(),null!=Gn[e])return Gn[e];var t=document.createElement(e);return e.indexOf("-")>-1?Gn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Gn[e]=/HTMLUnknownElement/.test(t.toString())},A(wn.options.directives,Qi),A(wn.options.components,fo),wn.prototype.__patch__=z?zi:S,wn.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=ve),Yt(e,"beforeMount"),r=function(){e._update(e._render(),n)},new fn(e,r,S,{before:function(){e._isMounted&&!e._isDestroyed&&Yt(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Yt(e,"mounted")),e}(this,e=e&&z?Yn(e):void 0,t)},z&&setTimeout(function(){F.devtools&&ne&&ne.emit("init",wn)},0);var po=/\{\{((?:.|\r?\n)+?)\}\}/g,vo=/[-.*+?^${}()|[\]\/\\]/g,ho=g(function(e){var t=e[0].replace(vo,"\\$&"),n=e[1].replace(vo,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")});var mo={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=Fr(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=Ir(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var yo,go={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=Fr(e,"style");n&&(e.staticStyle=JSON.stringify(ai(n)));var r=Ir(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},_o=function(e){return(yo=yo||document.createElement("div")).innerHTML=e,yo.textContent},bo=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),$o=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),wo=p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),Co=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,xo=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,ko="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+P.source+"]*",Ao="((?:"+ko+"\\:)?"+ko+")",Oo=new RegExp("^<"+Ao),So=/^\s*(\/?)>/,To=new RegExp("^<\\/"+Ao+"[^>]*>"),Eo=/^<!DOCTYPE [^>]+>/i,No=/^<!\--/,jo=/^<!\[/,Do=p("script,style,textarea",!0),Lo={},Mo={"&lt;":"<","&gt;":">","&quot;":'"',"&amp;":"&","&#10;":"\n","&#9;":"\t","&#39;":"'"},Io=/&(?:lt|gt|quot|amp|#39);/g,Fo=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Po=p("pre,textarea",!0),Ro=function(e,t){return e&&Po(e)&&"\n"===t[0]};function Ho(e,t){var n=t?Fo:Io;return e.replace(n,function(e){return Mo[e]})}var Bo,Uo,zo,Vo,Ko,Jo,qo,Wo,Zo=/^@|^v-on:/,Go=/^v-|^@|^:/,Xo=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Yo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Qo=/^\(|\)$/g,ea=/^\[.*\]$/,ta=/:(.*)$/,na=/^:|^\.|^v-bind:/,ra=/\.[^.\]]+(?=[^\]]*$)/g,ia=/^v-slot(:|$)|^#/,oa=/[\r\n]/,aa=/\s+/g,sa=g(_o),ca="_empty_";function ua(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:ma(t),rawAttrsMap:{},parent:n,children:[]}}function la(e,t){Bo=t.warn||Sr,Jo=t.isPreTag||T,qo=t.mustUseProp||T,Wo=t.getTagNamespace||T;t.isReservedTag;zo=Tr(t.modules,"transformNode"),Vo=Tr(t.modules,"preTransformNode"),Ko=Tr(t.modules,"postTransformNode"),Uo=t.delimiters;var n,r,i=[],o=!1!==t.preserveWhitespace,a=t.whitespace,s=!1,c=!1;function u(e){if(l(e),s||e.processed||(e=fa(e,t)),i.length||e===n||n.if&&(e.elseif||e.else)&&da(n,{exp:e.elseif,block:e}),r&&!e.forbidden)if(e.elseif||e.else)a=e,(u=function(e){var t=e.length;for(;t--;){if(1===e[t].type)return e[t];e.pop()}}(r.children))&&u.if&&da(u,{exp:a.elseif,block:a});else{if(e.slotScope){var o=e.slotTarget||'"default"';(r.scopedSlots||(r.scopedSlots={}))[o]=e}r.children.push(e),e.parent=r}var a,u;e.children=e.children.filter(function(e){return!e.slotScope}),l(e),e.pre&&(s=!1),Jo(e.tag)&&(c=!1);for(var f=0;f<Ko.length;f++)Ko[f](e,t)}function l(e){if(!c)for(var t;(t=e.children[e.children.length-1])&&3===t.type&&" "===t.text;)e.children.pop()}return function(e,t){for(var n,r,i=[],o=t.expectHTML,a=t.isUnaryTag||T,s=t.canBeLeftOpenTag||T,c=0;e;){if(n=e,r&&Do(r)){var u=0,l=r.toLowerCase(),f=Lo[l]||(Lo[l]=new RegExp("([\\s\\S]*?)(</"+l+"[^>]*>)","i")),p=e.replace(f,function(e,n,r){return u=r.length,Do(l)||"noscript"===l||(n=n.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),Ro(l,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""});c+=e.length-p.length,e=p,A(l,c-u,c)}else{var d=e.indexOf("<");if(0===d){if(No.test(e)){var v=e.indexOf("--\x3e");if(v>=0){t.shouldKeepComment&&t.comment(e.substring(4,v),c,c+v+3),C(v+3);continue}}if(jo.test(e)){var h=e.indexOf("]>");if(h>=0){C(h+2);continue}}var m=e.match(Eo);if(m){C(m[0].length);continue}var y=e.match(To);if(y){var g=c;C(y[0].length),A(y[1],g,c);continue}var _=x();if(_){k(_),Ro(_.tagName,e)&&C(1);continue}}var b=void 0,$=void 0,w=void 0;if(d>=0){for($=e.slice(d);!(To.test($)||Oo.test($)||No.test($)||jo.test($)||(w=$.indexOf("<",1))<0);)d+=w,$=e.slice(d);b=e.substring(0,d)}d<0&&(b=e),b&&C(b.length),t.chars&&b&&t.chars(b,c-b.length,c)}if(e===n){t.chars&&t.chars(e);break}}function C(t){c+=t,e=e.substring(t)}function x(){var t=e.match(Oo);if(t){var n,r,i={tagName:t[1],attrs:[],start:c};for(C(t[0].length);!(n=e.match(So))&&(r=e.match(xo)||e.match(Co));)r.start=c,C(r[0].length),r.end=c,i.attrs.push(r);if(n)return i.unarySlash=n[1],C(n[0].length),i.end=c,i}}function k(e){var n=e.tagName,c=e.unarySlash;o&&("p"===r&&wo(n)&&A(r),s(n)&&r===n&&A(n));for(var u=a(n)||!!c,l=e.attrs.length,f=new Array(l),p=0;p<l;p++){var d=e.attrs[p],v=d[3]||d[4]||d[5]||"",h="a"===n&&"href"===d[1]?t.shouldDecodeNewlinesForHref:t.shouldDecodeNewlines;f[p]={name:d[1],value:Ho(v,h)}}u||(i.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:f,start:e.start,end:e.end}),r=n),t.start&&t.start(n,f,u,e.start,e.end)}function A(e,n,o){var a,s;if(null==n&&(n=c),null==o&&(o=c),e)for(s=e.toLowerCase(),a=i.length-1;a>=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)t.end&&t.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,o):"p"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}A()}(e,{warn:Bo,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,o,a,l,f){var p=r&&r.ns||Wo(e);q&&"svg"===p&&(o=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];ya.test(r.name)||(r.name=r.name.replace(ga,""),t.push(r))}return t}(o));var d,v=ua(e,o,r);p&&(v.ns=p),"style"!==(d=v).tag&&("script"!==d.tag||d.attrsMap.type&&"text/javascript"!==d.attrsMap.type)||te()||(v.forbidden=!0);for(var h=0;h<Vo.length;h++)v=Vo[h](v,t)||v;s||(!function(e){null!=Fr(e,"v-pre")&&(e.pre=!0)}(v),v.pre&&(s=!0)),Jo(v.tag)&&(c=!0),s?function(e){var t=e.attrsList,n=t.length;if(n)for(var r=e.attrs=new Array(n),i=0;i<n;i++)r[i]={name:t[i].name,value:JSON.stringify(t[i].value)},null!=t[i].start&&(r[i].start=t[i].start,r[i].end=t[i].end);else e.pre||(e.plain=!0)}(v):v.processed||(pa(v),function(e){var t=Fr(e,"v-if");if(t)e.if=t,da(e,{exp:t,block:e});else{null!=Fr(e,"v-else")&&(e.else=!0);var n=Fr(e,"v-else-if");n&&(e.elseif=n)}}(v),function(e){null!=Fr(e,"v-once")&&(e.once=!0)}(v)),n||(n=v),a?u(v):(r=v,i.push(v))},end:function(e,t,n){var o=i[i.length-1];i.length-=1,r=i[i.length-1],u(o)},chars:function(e,t,n){if(r&&(!q||"textarea"!==r.tag||r.attrsMap.placeholder!==e)){var i,u,l,f=r.children;if(e=c||e.trim()?"script"===(i=r).tag||"style"===i.tag?e:sa(e):f.length?a?"condense"===a&&oa.test(e)?"":" ":o?" ":"":"")c||"condense"!==a||(e=e.replace(aa," ")),!s&&" "!==e&&(u=function(e,t){var n=t?ho(t):po;if(n.test(e)){for(var r,i,o,a=[],s=[],c=n.lastIndex=0;r=n.exec(e);){(i=r.index)>c&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var u=Ar(r[1].trim());a.push("_s("+u+")"),s.push({"@binding":u}),c=i+r[0].length}return c<e.length&&(s.push(o=e.slice(c)),a.push(JSON.stringify(o))),{expression:a.join("+"),tokens:s}}}(e,Uo))?l={type:2,expression:u.expression,tokens:u.tokens,text:e}:" "===e&&f.length&&" "===f[f.length-1].text||(l={type:3,text:e}),l&&f.push(l)}},comment:function(e,t,n){if(r){var i={type:3,text:e,isComment:!0};r.children.push(i)}}}),n}function fa(e,t){var n,r;(r=Ir(n=e,"key"))&&(n.key=r),e.plain=!e.key&&!e.scopedSlots&&!e.attrsList.length,function(e){var t=Ir(e,"ref");t&&(e.ref=t,e.refInFor=function(e){var t=e;for(;t;){if(void 0!==t.for)return!0;t=t.parent}return!1}(e))}(e),function(e){var t;"template"===e.tag?(t=Fr(e,"scope"),e.slotScope=t||Fr(e,"slot-scope")):(t=Fr(e,"slot-scope"))&&(e.slotScope=t);var n=Ir(e,"slot");n&&(e.slotTarget='""'===n?'"default"':n,e.slotTargetDynamic=!(!e.attrsMap[":slot"]&&!e.attrsMap["v-bind:slot"]),"template"===e.tag||e.slotScope||Nr(e,"slot",n,function(e,t){return e.rawAttrsMap[":"+t]||e.rawAttrsMap["v-bind:"+t]||e.rawAttrsMap[t]}(e,"slot")));if("template"===e.tag){var r=Pr(e,ia);if(r){var i=va(r),o=i.name,a=i.dynamic;e.slotTarget=o,e.slotTargetDynamic=a,e.slotScope=r.value||ca}}else{var s=Pr(e,ia);if(s){var c=e.scopedSlots||(e.scopedSlots={}),u=va(s),l=u.name,f=u.dynamic,p=c[l]=ua("template",[],e);p.slotTarget=l,p.slotTargetDynamic=f,p.children=e.children.filter(function(e){if(!e.slotScope)return e.parent=p,!0}),p.slotScope=s.value||ca,e.children=[],e.plain=!1}}}(e),function(e){"slot"===e.tag&&(e.slotName=Ir(e,"name"))}(e),function(e){var t;(t=Ir(e,"is"))&&(e.component=t);null!=Fr(e,"inline-template")&&(e.inlineTemplate=!0)}(e);for(var i=0;i<zo.length;i++)e=zo[i](e,t)||e;return function(e){var t,n,r,i,o,a,s,c,u=e.attrsList;for(t=0,n=u.length;t<n;t++)if(r=i=u[t].name,o=u[t].value,Go.test(r))if(e.hasBindings=!0,(a=ha(r.replace(Go,"")))&&(r=r.replace(ra,"")),na.test(r))r=r.replace(na,""),o=Ar(o),(c=ea.test(r))&&(r=r.slice(1,-1)),a&&(a.prop&&!c&&"innerHtml"===(r=b(r))&&(r="innerHTML"),a.camel&&!c&&(r=b(r)),a.sync&&(s=Br(o,"$event"),c?Mr(e,'"update:"+('+r+")",s,null,!1,0,u[t],!0):(Mr(e,"update:"+b(r),s,null,!1,0,u[t]),C(r)!==b(r)&&Mr(e,"update:"+C(r),s,null,!1,0,u[t])))),a&&a.prop||!e.component&&qo(e.tag,e.attrsMap.type,r)?Er(e,r,o,u[t],c):Nr(e,r,o,u[t],c);else if(Zo.test(r))r=r.replace(Zo,""),(c=ea.test(r))&&(r=r.slice(1,-1)),Mr(e,r,o,a,!1,0,u[t],c);else{var l=(r=r.replace(Go,"")).match(ta),f=l&&l[1];c=!1,f&&(r=r.slice(0,-(f.length+1)),ea.test(f)&&(f=f.slice(1,-1),c=!0)),Dr(e,r,i,o,f,c,a,u[t])}else Nr(e,r,JSON.stringify(o),u[t]),!e.component&&"muted"===r&&qo(e.tag,e.attrsMap.type,r)&&Er(e,r,"true",u[t])}(e),e}function pa(e){var t;if(t=Fr(e,"v-for")){var n=function(e){var t=e.match(Xo);if(!t)return;var n={};n.for=t[2].trim();var r=t[1].trim().replace(Qo,""),i=r.match(Yo);i?(n.alias=r.replace(Yo,"").trim(),n.iterator1=i[1].trim(),i[2]&&(n.iterator2=i[2].trim())):n.alias=r;return n}(t);n&&A(e,n)}}function da(e,t){e.ifConditions||(e.ifConditions=[]),e.ifConditions.push(t)}function va(e){var t=e.name.replace(ia,"");return t||"#"!==e.name[0]&&(t="default"),ea.test(t)?{name:t.slice(1,-1),dynamic:!0}:{name:'"'+t+'"',dynamic:!1}}function ha(e){var t=e.match(ra);if(t){var n={};return t.forEach(function(e){n[e.slice(1)]=!0}),n}}function ma(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n].name]=e[n].value;return t}var ya=/^xmlns:NS\d+/,ga=/^NS\d+:/;function _a(e){return ua(e.tag,e.attrsList.slice(),e.parent)}var ba=[mo,go,{preTransformNode:function(e,t){if("input"===e.tag){var n,r=e.attrsMap;if(!r["v-model"])return;if((r[":type"]||r["v-bind:type"])&&(n=Ir(e,"type")),r.type||n||!r["v-bind"]||(n="("+r["v-bind"]+").type"),n){var i=Fr(e,"v-if",!0),o=i?"&&("+i+")":"",a=null!=Fr(e,"v-else",!0),s=Fr(e,"v-else-if",!0),c=_a(e);pa(c),jr(c,"type","checkbox"),fa(c,t),c.processed=!0,c.if="("+n+")==='checkbox'"+o,da(c,{exp:c.if,block:c});var u=_a(e);Fr(u,"v-for",!0),jr(u,"type","radio"),fa(u,t),da(c,{exp:"("+n+")==='radio'"+o,block:u});var l=_a(e);return Fr(l,"v-for",!0),jr(l,":type",n),fa(l,t),da(c,{exp:i,block:l}),a?c.else=!0:s&&(c.elseif=s),c}}}}];var $a,wa,Ca={expectHTML:!0,modules:ba,directives:{model:function(e,t,n){var r=t.value,i=t.modifiers,o=e.tag,a=e.attrsMap.type;if(e.component)return Hr(e,r,i),!1;if("select"===o)!function(e,t,n){var r='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(n&&n.number?"_n(val)":"val")+"});";r=r+" "+Br(t,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),Mr(e,"change",r,null,!0)}(e,r,i);else if("input"===o&&"checkbox"===a)!function(e,t,n){var r=n&&n.number,i=Ir(e,"value")||"null",o=Ir(e,"true-value")||"true",a=Ir(e,"false-value")||"false";Er(e,"checked","Array.isArray("+t+")?_i("+t+","+i+")>-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),Mr(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Br(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Br(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Br(t,"$$c")+"}",null,!0)}(e,r,i);else if("input"===o&&"radio"===a)!function(e,t,n){var r=n&&n.number,i=Ir(e,"value")||"null";Er(e,"checked","_q("+t+","+(i=r?"_n("+i+")":i)+")"),Mr(e,"change",Br(t,i),null,!0)}(e,r,i);else if("input"===o||"textarea"===o)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,u=o?"change":"range"===r?Wr:"input",l="$event.target.value";s&&(l="$event.target.value.trim()"),a&&(l="_n("+l+")");var f=Br(t,l);c&&(f="if($event.target.composing)return;"+f),Er(e,"value","("+t+")"),Mr(e,u,f,null,!0),(s||a)&&Mr(e,"blur","$forceUpdate()")}(e,r,i);else if(!F.isReservedTag(o))return Hr(e,r,i),!1;return!0},text:function(e,t){t.value&&Er(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&Er(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:bo,mustUseProp:jn,canBeLeftOpenTag:$o,isReservedTag:Wn,getTagNamespace:Zn,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(",")}(ba)},xa=g(function(e){return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))});function ka(e,t){e&&($a=xa(t.staticKeys||""),wa=t.isReservedTag||T,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||d(e.tag)||!wa(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every($a)))}(t);if(1===t.type){if(!wa(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n<r;n++){var i=t.children[n];e(i),i.static||(t.static=!1)}if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++){var s=t.ifConditions[o].block;e(s),s.static||(t.static=!1)}}}(e),function e(t,n){if(1===t.type){if((t.static||t.once)&&(t.staticInFor=n),t.static&&t.children.length&&(1!==t.children.length||3!==t.children[0].type))return void(t.staticRoot=!0);if(t.staticRoot=!1,t.children)for(var r=0,i=t.children.length;r<i;r++)e(t.children[r],n||!!t.for);if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++)e(t.ifConditions[o].block,n)}}(e,!1))}var Aa=/^([\w$_]+|\([^)]*?\))\s*=>|^function\s*(?:[\w$]+)?\s*\(/,Oa=/\([^)]*?\);*$/,Sa=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Ta={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ea={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Na=function(e){return"if("+e+")return null;"},ja={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Na("$event.target !== $event.currentTarget"),ctrl:Na("!$event.ctrlKey"),shift:Na("!$event.shiftKey"),alt:Na("!$event.altKey"),meta:Na("!$event.metaKey"),left:Na("'button' in $event && $event.button !== 0"),middle:Na("'button' in $event && $event.button !== 1"),right:Na("'button' in $event && $event.button !== 2")};function Da(e,t){var n=t?"nativeOn:":"on:",r="",i="";for(var o in e){var a=La(e[o]);e[o]&&e[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function La(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return La(e)}).join(",")+"]";var t=Sa.test(e.value),n=Aa.test(e.value),r=Sa.test(e.value.replace(Oa,""));if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(ja[s])o+=ja[s],Ta[s]&&a.push(s);else if("exact"===s){var c=e.modifiers;o+=Na(["ctrl","shift","alt","meta"].filter(function(e){return!c[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else a.push(s);return a.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(Ma).join("&&")+")return null;"}(a)),o&&(i+=o),"function($event){"+i+(t?"return "+e.value+"($event)":n?"return ("+e.value+")($event)":r?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(r?"return "+e.value:e.value)+"}"}function Ma(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=Ta[e],r=Ea[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var Ia={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:S},Fa=function(e){this.options=e,this.warn=e.warn||Sr,this.transforms=Tr(e.modules,"transformCode"),this.dataGenFns=Tr(e.modules,"genData"),this.directives=A(A({},Ia),e.directives);var t=e.isReservedTag||T;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Pa(e,t){var n=new Fa(t);return{render:"with(this){return "+(e?Ra(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Ra(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Ha(e,t);if(e.once&&!e.onceProcessed)return Ba(e,t);if(e.for&&!e.forProcessed)return za(e,t);if(e.if&&!e.ifProcessed)return Ua(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=qa(e,t),i="_t("+n+(r?","+r:""),o=e.attrs||e.dynamicAttrs?Ga((e.attrs||[]).concat(e.dynamicAttrs||[]).map(function(e){return{name:b(e.name),value:e.value,dynamic:e.dynamic}})):null,a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:qa(t,n,!0);return"_c("+e+","+Va(t,n)+(r?","+r:"")+")"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=Va(e,t));var i=e.inlineTemplate?null:qa(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o<t.transforms.length;o++)n=t.transforms[o](e,n);return n}return qa(e,t)||"void 0"}function Ha(e,t){e.staticProcessed=!0;var n=t.pre;return e.pre&&(t.pre=e.pre),t.staticRenderFns.push("with(this){return "+Ra(e,t)+"}"),t.pre=n,"_m("+(t.staticRenderFns.length-1)+(e.staticInFor?",true":"")+")"}function Ba(e,t){if(e.onceProcessed=!0,e.if&&!e.ifProcessed)return Ua(e,t);if(e.staticInFor){for(var n="",r=e.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o("+Ra(e,t)+","+t.onceId+++","+n+")":Ra(e,t)}return Ha(e,t)}function Ua(e,t,n,r){return e.ifProcessed=!0,function e(t,n,r,i){if(!t.length)return i||"_e()";var o=t.shift();return o.exp?"("+o.exp+")?"+a(o.block)+":"+e(t,n,r,i):""+a(o.block);function a(e){return r?r(e,n):e.once?Ba(e,n):Ra(e,n)}}(e.ifConditions.slice(),t,n,r)}function za(e,t,n,r){var i=e.for,o=e.alias,a=e.iterator1?","+e.iterator1:"",s=e.iterator2?","+e.iterator2:"";return e.forProcessed=!0,(r||"_l")+"(("+i+"),function("+o+a+s+"){return "+(n||Ra)(e,t)+"})"}function Va(e,t){var n="{",r=function(e,t){var n=e.directives;if(!n)return;var r,i,o,a,s="directives:[",c=!1;for(r=0,i=n.length;r<i;r++){o=n[r],a=!0;var u=t.directives[o.name];u&&(a=!!u(e,o,t.warn)),a&&(c=!0,s+='{name:"'+o.name+'",rawName:"'+o.rawName+'"'+(o.value?",value:("+o.value+"),expression:"+JSON.stringify(o.value):"")+(o.arg?",arg:"+(o.isDynamicArg?o.arg:'"'+o.arg+'"'):"")+(o.modifiers?",modifiers:"+JSON.stringify(o.modifiers):"")+"},")}if(c)return s.slice(0,-1)+"]"}(e,t);r&&(n+=r+","),e.key&&(n+="key:"+e.key+","),e.ref&&(n+="ref:"+e.ref+","),e.refInFor&&(n+="refInFor:true,"),e.pre&&(n+="pre:true,"),e.component&&(n+='tag:"'+e.tag+'",');for(var i=0;i<t.dataGenFns.length;i++)n+=t.dataGenFns[i](e);if(e.attrs&&(n+="attrs:"+Ga(e.attrs)+","),e.props&&(n+="domProps:"+Ga(e.props)+","),e.events&&(n+=Da(e.events,!1)+","),e.nativeEvents&&(n+=Da(e.nativeEvents,!0)+","),e.slotTarget&&!e.slotScope&&(n+="slot:"+e.slotTarget+","),e.scopedSlots&&(n+=function(e,t,n){var r=e.for||Object.keys(t).some(function(e){var n=t[e];return n.slotTargetDynamic||n.if||n.for||Ka(n)}),i=!!e.if;if(!r)for(var o=e.parent;o;){if(o.slotScope&&o.slotScope!==ca||o.for){r=!0;break}o.if&&(i=!0),o=o.parent}var a=Object.keys(t).map(function(e){return Ja(t[e],n)}).join(",");return"scopedSlots:_u(["+a+"]"+(r?",null,true":"")+(!r&&i?",null,false,"+function(e){var t=5381,n=e.length;for(;n;)t=33*t^e.charCodeAt(--n);return t>>>0}(a):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];if(n&&1===n.type){var r=Pa(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map(function(e){return"function(){"+e+"}"}).join(",")+"]}"}}(e,t);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b("+n+',"'+e.tag+'",'+Ga(e.dynamicAttrs)+")"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function Ka(e){return 1===e.type&&("slot"===e.tag||e.children.some(Ka))}function Ja(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return Ua(e,t,Ja,"null");if(e.for&&!e.forProcessed)return za(e,t,Ja);var r=e.slotScope===ca?"":String(e.slotScope),i="function("+r+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(qa(e,t)||"undefined")+":undefined":qa(e,t)||"undefined":Ra(e,t))+"}",o=r?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+o+"}"}function qa(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?t.maybeComponent(a)?",1":",0":"";return""+(r||Ra)(a,t)+s}var c=n?function(e,t){for(var n=0,r=0;r<e.length;r++){var i=e[r];if(1===i.type){if(Wa(i)||i.ifConditions&&i.ifConditions.some(function(e){return Wa(e.block)})){n=2;break}(t(i)||i.ifConditions&&i.ifConditions.some(function(e){return t(e.block)}))&&(n=1)}}return n}(o,t.maybeComponent):0,u=i||Za;return"["+o.map(function(e){return u(e,t)}).join(",")+"]"+(c?","+c:"")}}function Wa(e){return void 0!==e.for||"template"===e.tag||"slot"===e.tag}function Za(e,t){return 1===e.type?Ra(e,t):3===e.type&&e.isComment?(r=e,"_e("+JSON.stringify(r.text)+")"):"_v("+(2===(n=e).type?n.expression:Xa(JSON.stringify(n.text)))+")";var n,r}function Ga(e){for(var t="",n="",r=0;r<e.length;r++){var i=e[r],o=Xa(i.value);i.dynamic?n+=i.name+","+o+",":t+='"'+i.name+'":'+o+","}return t="{"+t.slice(0,-1)+"}",n?"_d("+t+",["+n.slice(0,-1)+"])":t}function Xa(e){return e.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b");function Ya(e,t){try{return new Function(e)}catch(n){return t.push({err:n,code:e}),S}}function Qa(e){var t=Object.create(null);return function(n,r,i){(r=A({},r)).warn;delete r.warn;var o=r.delimiters?String(r.delimiters)+n:n;if(t[o])return t[o];var a=e(n,r),s={},c=[];return s.render=Ya(a.render,c),s.staticRenderFns=a.staticRenderFns.map(function(e){return Ya(e,c)}),t[o]=s}}var es,ts,ns=(es=function(e,t){var n=la(e.trim(),t);!1!==t.optimize&&ka(n,t);var r=Pa(n,t);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}},function(e){function t(t,n){var r=Object.create(e),i=[],o=[];if(n)for(var a in n.modules&&(r.modules=(e.modules||[]).concat(n.modules)),n.directives&&(r.directives=A(Object.create(e.directives||null),n.directives)),n)"modules"!==a&&"directives"!==a&&(r[a]=n[a]);r.warn=function(e,t,n){(n?o:i).push(e)};var s=es(t.trim(),r);return s.errors=i,s.tips=o,s}return{compile:t,compileToFunctions:Qa(t)}})(Ca),rs=(ns.compile,ns.compileToFunctions);function is(e){return(ts=ts||document.createElement("div")).innerHTML=e?'<a href="\n"/>':'<div a="\n"/>',ts.innerHTML.indexOf("&#10;")>0}var os=!!z&&is(!1),as=!!z&&is(!0),ss=g(function(e){var t=Yn(e);return t&&t.innerHTML}),cs=wn.prototype.$mount;return wn.prototype.$mount=function(e,t){if((e=e&&Yn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=ss(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){var i=rs(r,{outputSourceRange:!1,shouldDecodeNewlines:os,shouldDecodeNewlinesForHref:as,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return cs.call(this,e,t)},wn.compile=rs,wn});
##############################################
orthanc-dicomweb-1.3+dfsg/debian/patches/cmake-12- 
orthanc-dicomweb-1.3+dfsg/debian/patches/cmake:13:-include(${CMAKE_SOURCE_DIR}/Resources/CMake/JavaScriptLibraries.cmake)
orthanc-dicomweb-1.3+dfsg/debian/patches/cmake:14:+include(${CMAKE_SOURCE_DIR}/debian/ThirdPartyDownloads/JavaScriptLibraries.cmake)
orthanc-dicomweb-1.3+dfsg/debian/patches/cmake:15: include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake)
orthanc-dicomweb-1.3+dfsg/debian/patches/cmake-16- 
##############################################
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt-57-# Download and setup the Orthanc framework
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt:58:include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake)
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt-59-
##############################################
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt-67-  mark_as_advanced(USE_GOOGLE_TEST_DEBIAN_PACKAGE)
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt:68:  include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/GoogleTestConfiguration.cmake)
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt-69-  
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt-70-else()
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt:71:  include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkParameters.cmake)
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt-72-
##############################################
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt-78-  
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt:79:  include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkConfiguration.cmake)
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt-80-endif()
##############################################
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt-82-
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt:83:include(${CMAKE_SOURCE_DIR}/Resources/CMake/JavaScriptLibraries.cmake)
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt:84:include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake)
orthanc-dicomweb-1.3+dfsg/.pc/cmake/CMakeLists.txt-85-
##############################################
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt-57-# Download and setup the Orthanc framework
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt:58:include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake)
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt-59-
##############################################
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt-67-  mark_as_advanced(USE_GOOGLE_TEST_DEBIAN_PACKAGE)
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt:68:  include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/GoogleTestConfiguration.cmake)
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt-69-  
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt-70-else()
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt:71:  include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkParameters.cmake)
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt-72-
##############################################
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt-78-  
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt:79:  include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkConfiguration.cmake)
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt-80-endif()
##############################################
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt-82-
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt:83:include(${CMAKE_SOURCE_DIR}/debian/ThirdPartyDownloads/JavaScriptLibraries.cmake)
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt:84:include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake)
orthanc-dicomweb-1.3+dfsg/CMakeLists.txt-85-