{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tabs.js"],"names":["BTab","extend","name","mixins","inject","bvTabs","default","props","active","type","Boolean","tag","String","buttonId","title","titleItemClass","Array","Object","titleLinkClass","titleLinkAttributes","disabled","noBody","lazy","data","localActive","this","show","computed","tabClasses","card","activeTabClass","controlledBy","safeId","computedNoFade","fade","computedLazy","_isTab","watch","newVal","$emit","oldVal","activate","deactivate","firstTab","mounted","registerTab","updated","hasNormalizedSlot","updateButton","destroyed","unregisterTab","methods","activateTab","deactivateTab","render","h","content","ref","staticClass","class","directives","rawName","value","expression","attrs","role","id","normalizeSlot","mode","noFade","TabsPlugin","components","BTabs","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","navProps","notDisabled","tab","BTabButtonHelper","tabs","controls","tabIndex","Number","posInSet","setSize","noKeyNav","focus","$refs","link","handleEvt","evt","stop","preventDefault","stopPropagation","keyCode","shift","shiftKey","SPACE","UP","LEFT","HOME","DOWN","RIGHT","END","activeNavItemClass","tabindex","on","click","keydown","provide","model","prop","event","end","noNavStyle","contentClass","navClass","navWrapperClass","currentTab","registeredTabs","isMounted","localNavClass","classes","vertical","concat","index","idx","previousTab","nextTab","_this","$nextTick","updateTabs","_this2","map","t","_uid","slice","_this3","setObserver","created","_this4","$_observer","_this5","deactivated","activated","_this6","beforeDestroy","_this7","$once","disconnect","self","handler","tabsContainer","childList","subtree","attributes","attributeFilter","getTabs","$children","order","selector","join","$el","el","a","b","indexOf","reverse","find","getButtonForTab","buttons","btn","button","$forceUpdate","result","tabEvt","cancelable","vueTarget","componentId","defaultPrevented","focusButton","_this8","emitTabClick","clickTab","currentIndex","lastTab","_this9","activeTab","fallbackTab","refInFor","first","prev","next","last","nav","fill","justified","align","pills","small","cardHeader","empty","col","row"],"mappings":"wHAAA,sFAKWA,EAAoB,OAAIC,OAAO,CACxCC,KAAM,OACNC,OAAQ,CAAC,OAAS,QAClBC,OAAQ,CACNC,OAAQ,CACNC,QAAS,WACP,MAAO,MAIbC,MAAO,CACLC,OAAQ,CACNC,KAAMC,QACNJ,SAAS,GAEXK,IAAK,CACHF,KAAMG,OACNN,QAAS,OAEXO,SAAU,CACRJ,KAAMG,QAGRE,MAAO,CACLL,KAAMG,OACNN,QAAS,IAEXS,eAAgB,CAEdN,KAAM,CAACG,OAAQI,MAAOC,SAGxBC,eAAgB,CAEdT,KAAM,CAACG,OAAQI,MAAOC,SAGxBE,oBAAqB,CACnBV,KAAMQ,QAGRG,SAAU,CACRX,KAAMC,QACNJ,SAAS,GAEXe,OAAQ,CACNZ,KAAMC,QACNJ,SAAS,GAEXgB,KAAM,CACJb,KAAMC,QACNJ,SAAS,IAGbiB,KAAM,WACJ,MAAO,CACLC,YAAaC,KAAKjB,SAAWiB,KAAKL,SAClCM,MAAM,IAGVC,SAAU,CACRC,WAAY,WACV,MAAO,CAAC,CACNpB,OAAQiB,KAAKD,YACbJ,SAAUK,KAAKL,SACf,YAAaK,KAAKpB,OAAOwB,OAASJ,KAAKJ,QAEzCI,KAAKD,YAAcC,KAAKpB,OAAOyB,eAAiB,OAElDC,aAAc,WACZ,OAAON,KAAKZ,UAAYY,KAAKO,OAAO,sBAEtCC,eAAgB,WACd,OAASR,KAAKpB,OAAO6B,MAEvBC,aAAc,WACZ,OAAOV,KAAKpB,OAAOiB,MAAQG,KAAKH,MAElCc,OAAQ,WAEN,OAAO,IAGXC,MAAO,CACLb,YAAa,SAAqBc,GAEhCb,KAAKc,MAAM,gBAAiBD,IAE9B9B,OAAQ,SAAgB8B,EAAQE,GAC1BF,IAAWE,IACTF,EAEFb,KAAKgB,WAGAhB,KAAKiB,cAGRjB,KAAKc,MAAM,gBAAiBd,KAAKD,eAKzCJ,SAAU,SAAkBkB,EAAQE,GAC9BF,IAAWE,GACTF,GAAUb,KAAKD,aAAeC,KAAKpB,OAAOsC,WAC5ClB,KAAKD,aAAc,EACnBC,KAAKpB,OAAOsC,cAKpBC,QAAS,WAEPnB,KAAKoB,cAELpB,KAAKC,KAAOD,KAAKD,aAEnBsB,QAAS,WAGHrB,KAAKsB,kBAAkB,UAAYtB,KAAKpB,OAAO2C,cACjDvB,KAAKpB,OAAO2C,aAAavB,OAG7BwB,UAAW,WAETxB,KAAKyB,iBAEPC,QAAS,CAEPN,YAAa,WAEXpB,KAAKpB,OAAOwC,aAAepB,KAAKpB,OAAOwC,YAAYpB,OAErDyB,cAAe,WAEbzB,KAAKpB,OAAO6C,eAAiBzB,KAAKpB,OAAO6C,cAAczB,OAGzDgB,SAAU,WACR,SAAIhB,KAAKpB,OAAO+C,aAAgB3B,KAAKL,WAC5BK,KAAKpB,OAAO+C,YAAY3B,OAMnCiB,WAAY,WACV,SAAIjB,KAAKpB,OAAOgD,gBAAiB5B,KAAKD,cAC7BC,KAAKpB,OAAOgD,cAAc5B,QAOvC6B,OAAQ,SAAgBC,GACtB,IAAIC,EAAUD,EAAE9B,KAAKd,IAAK,CACxB8C,IAAK,QACLC,YAAa,WACbC,MAAOlC,KAAKG,WACZgC,WAAY,CAAC,CACX1D,KAAM,OACN2D,QAAS,SACTC,MAAOrC,KAAKD,YACZuC,WAAY,gBAEdC,MAAO,CACLC,KAAM,WACNC,GAAIzC,KAAKO,SACT,cAAeP,KAAKD,YAAc,QAAU,OAC5C,kBAAmBC,KAAKM,cAAgB,OAG5C,CAACN,KAAKD,cAAgBC,KAAKU,aAAeV,KAAK0C,cAAc,WAAaZ,MAC1E,OAAOA,EAAE,OAAc,CACrBhD,MAAO,CACL6D,KAAM,SACNC,OAAQ5C,KAAKQ,iBAEd,CAACuB,Q,oCC1LR,0EAGIc,EAA0B,eAAc,CAC1CC,WAAY,CACVC,MAAO,OACPxE,KAAM,W,kCCNV,2PAASyE,EAAQC,EAAQC,GAAkB,IAAIC,EAAO3D,OAAO2D,KAAKF,GAAS,GAAIzD,OAAO4D,sBAAuB,CAAE,IAAIC,EAAU7D,OAAO4D,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO/D,OAAOgE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKC,MAAMR,EAAME,GAAY,OAAOF,EAE9U,SAASS,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKd,EAAQxD,OAAOyE,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsB3E,OAAO6E,0BAA6B7E,OAAO8E,iBAAiBT,EAAQrE,OAAO6E,0BAA0BJ,IAAmBjB,EAAQxD,OAAOyE,IAASC,SAAQ,SAAUC,GAAO3E,OAAO+E,eAAeV,EAAQM,EAAK3E,OAAOgE,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK9B,GAAiK,OAApJ8B,KAAOK,EAAOhF,OAAO+E,eAAeC,EAAKL,EAAK,CAAE9B,MAAOA,EAAOoB,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9B,EAAgBmC,EAoB3M,IAAIG,EAAW,eAAK,OAAW,CAAC,OAAQ,WAAY,eAGhDC,EAAc,SAAqBC,GACrC,OAAQA,EAAIlF,UAKVmF,EAAgC,OAAItG,OAAO,CAC7CC,KAAM,mBACNE,OAAQ,CACNC,OAAQ,CAENC,QAAS,WAGP,MAAO,MAIbC,MAAO,CAEL+F,IAAK,CACHhG,QAAS,MAEXkG,KAAM,CACJ/F,KAAMO,MAGNV,QAAS,WAGP,MAAO,KAGX4D,GAAI,CACFzD,KAAMG,OACNN,QAAS,MAEXmG,SAAU,CACRhG,KAAMG,OACNN,QAAS,MAEXoG,SAAU,CACRjG,KAAMkG,OACNrG,QAAS,MAEXsG,SAAU,CACRnG,KAAMkG,OACNrG,QAAS,MAEXuG,QAAS,CACPpG,KAAMkG,OACNrG,QAAS,MAEXwG,SAAU,CACRrG,KAAMC,QACNJ,SAAS,IAGb6C,QAAS,CACP4D,MAAO,WACL,eAAatF,KAAKuF,MAAMC,OAE1BC,UAAW,SAAmBC,GAC5B,IAAIC,EAAO,WACTD,EAAIE,iBACJF,EAAIG,mBAGN,IAAI7F,KAAK6E,IAAIlF,SAAb,CAKA,IAAIX,EAAO0G,EAAI1G,KACXmF,EAAMuB,EAAII,QACVC,EAAQL,EAAIM,SAEH,UAAThH,GAGgB,YAATA,GAAsBmF,IAAQ,OAAS8B,OAFhDN,IACA3F,KAAKc,MAAM,QAAS4E,IAOF,YAAT1G,GAAuBgB,KAAKqF,WAEjClB,IAAQ,OAAS+B,IAAM/B,IAAQ,OAASgC,MAAQhC,IAAQ,OAASiC,MACnET,IAEII,GAAS5B,IAAQ,OAASiC,KAC5BpG,KAAKc,MAAM,QAAS4E,GAEpB1F,KAAKc,MAAM,OAAQ4E,IAEZvB,IAAQ,OAASkC,MAAQlC,IAAQ,OAASmC,OAASnC,IAAQ,OAASoC,MAC7EZ,IAEII,GAAS5B,IAAQ,OAASoC,IAC5BvG,KAAKc,MAAM,OAAQ4E,GAEnB1F,KAAKc,MAAM,OAAQ4E,QAM7B7D,OAAQ,SAAgBC,GACtB,IAAI0D,EAAO1D,EAAE,OAAO,CAClBE,IAAK,OACLC,YAAa,WACbC,MAAO,CAAC,CACNnD,OAAQiB,KAAK6E,IAAI9E,cAAgBC,KAAK6E,IAAIlF,SAC1CA,SAAUK,KAAK6E,IAAIlF,UAClBK,KAAK6E,IAAIpF,eACZO,KAAK6E,IAAI9E,YAAcC,KAAKpB,OAAO4H,mBAAqB,MACxD1H,MAAO,CACLa,SAAUK,KAAK6E,IAAIlF,UAErB4C,MAAOqB,EAAcA,EAAc,GAAI5D,KAAK6E,IAAInF,qBAAsB,GAAI,CACxE8C,KAAM,MACNC,GAAIzC,KAAKyC,GAETgE,SAAUzG,KAAKiF,SACf,gBAAiBjF,KAAK6E,IAAI9E,cAAgBC,KAAK6E,IAAIlF,SAAW,OAAS,QACvE,eAAgBK,KAAKoF,QACrB,gBAAiBpF,KAAKmF,SACtB,gBAAiBnF,KAAKgF,WAExB0B,GAAI,CACFC,MAAO3G,KAAKyF,UACZmB,QAAS5G,KAAKyF,YAEf,CAACzF,KAAK6E,IAAInC,cAAc,UAAY1C,KAAK6E,IAAIxF,QAChD,OAAOyC,EAAE,KAAM,CACbG,YAAa,WACbC,MAAO,CAAClC,KAAK6E,IAAIvF,gBACjBiD,MAAO,CACLC,KAAM,iBAEP,CAACgD,OAIGzC,EAAqB,OAAIvE,OAAO,CACzCC,KAAM,QACNC,OAAQ,CAAC,OAAS,QAClBmI,QAAS,WACP,MAAO,CACLjI,OAAQoB,OAGZ8G,MAAO,CACLC,KAAM,QACNC,MAAO,SAETlI,MAAO8E,EAAcA,EAAc,GAAIe,GAAW,GAAI,CACpDzF,IAAK,CACHF,KAAMG,OACNN,QAAS,OAEXuB,KAAM,CACJpB,KAAMC,QACNJ,SAAS,GAEXoI,IAAK,CAEHjI,KAAMC,QACNJ,SAAS,GAEX+D,OAAQ,CACN5D,KAAMC,QACNJ,SAAS,GAEXqI,WAAY,CACVlI,KAAMC,QACNJ,SAAS,GAEXwG,SAAU,CACRrG,KAAMC,QACNJ,SAAS,GAEXgB,KAAM,CAEJb,KAAMC,QACNJ,SAAS,GAEXsI,aAAc,CACZnI,KAAM,CAACG,OAAQI,MAAOC,SAGxB4H,SAAU,CACRpI,KAAM,CAACG,OAAQI,MAAOC,SAGxB6H,gBAAiB,CACfrI,KAAM,CAACG,OAAQI,MAAOC,SAGxBgH,mBAAoB,CAElBxH,KAAM,CAACG,OAAQI,MAAOC,SAGxBa,eAAgB,CAGdrB,KAAM,CAACG,OAAQI,MAAOC,SAGxB6C,MAAO,CAELrD,KAAMkG,OACNrG,QAAS,QAGbiB,KAAM,WACJ,MAAO,CAELwH,WAAY,eAAUtH,KAAKqC,OAAQ,GAEnC0C,KAAM,GAENwC,eAAgB,GAEhBC,WAAW,IAGftH,SAAU,CACRO,KAAM,WAEJ,OAAQT,KAAK4C,QAEf6E,cAAe,WACb,IAAIC,EAAU,GAMd,OAJI1H,KAAKI,MAAQJ,KAAK2H,UACpBD,EAAQhE,KAAK,cAAe,QAAS,kBAAmB,aAGnD,GAAGkE,OAAOF,EAAS,CAAC1H,KAAKoH,aAGpCxG,MAAO,CACL0G,WAAY,SAAoBzG,GAC9B,IAAIgH,GAAS,EAEb7H,KAAK+E,KAAKb,SAAQ,SAAUW,EAAKiD,GAC3BjH,IAAWiH,GAAQjD,EAAIlF,SAIzBkF,EAAI9E,aAAc,GAHlB8E,EAAI9E,aAAc,EAClB8H,EAAQC,MAMZ9H,KAAKc,MAAM,QAAS+G,IAEtBxF,MAAO,SAAexB,EAAQE,GAC5B,GAAIF,IAAWE,EAAQ,CACrBF,EAAS,eAAUA,GAAS,GAC5BE,EAAS,eAAUA,EAAQ,GAC3B,IAAIgE,EAAO/E,KAAK+E,KAEZA,EAAKlE,KAAYkE,EAAKlE,GAAQlB,SAChCK,KAAK2B,YAAYoD,EAAKlE,IAGlBA,EAASE,EACXf,KAAK+H,cAEL/H,KAAKgI,YAKbT,eAAgB,WACd,IAAIU,EAAQjI,KAKZA,KAAKkI,WAAU,WACb,gBAAU,WACRD,EAAME,oBAIZpD,KAAM,SAAclE,EAAQE,GAC1B,IAAIqH,EAASpI,KAKR,eAAWa,EAAOwH,KAAI,SAAUC,GACnC,OAAOA,EAAEC,QACPxH,EAAOsH,KAAI,SAAUC,GACvB,OAAOA,EAAEC,UAGTvI,KAAKkI,WAAU,WAGbE,EAAOtH,MAAM,UAAWD,EAAO2H,QAASzH,EAAOyH,aAIrDhB,UAAW,SAAmB3G,GAC5B,IAAI4H,EAASzI,KAGTa,GACF,gBAAU,WACR4H,EAAON,gBAKXnI,KAAK0I,YAAY7H,KAGrB8H,QAAS,WACP,IAAIC,EAAS5I,KAGbA,KAAK6I,WAAa,KAClB7I,KAAKsH,WAAa,eAAUtH,KAAKqC,OAAQ,GAGzCrC,KAAKkI,WAAU,WACbU,EAAOT,iBAGXhH,QAAS,WACP,IAAI2H,EAAS9I,KAGbA,KAAKmI,aACLnI,KAAKkI,WAAU,WAKbY,EAAOtB,WAAY,MAKvBuB,YAAa,WAGX/I,KAAKwH,WAAY,GAInBwB,UAAW,WAGT,IAAIC,EAASjJ,KAEbA,KAAKsH,WAAa,eAAUtH,KAAKqC,OAAQ,GACzCrC,KAAKkI,WAAU,WACbe,EAAOd,aAEPc,EAAOzB,WAAY,MAGvB0B,cAAe,WACblJ,KAAKwH,WAAY,GAEnBhG,UAAW,WAETxB,KAAK+E,KAAO,IAEdrD,QAAS,CACPN,YAAa,SAAqByD,GAChC,IAAIsE,EAASnJ,KAER,eAAcA,KAAKuH,eAAgB1C,KACtC7E,KAAKuH,eAAe7D,KAAKmB,GACzBA,EAAIuE,MAAM,kBAAkB,WAC1BD,EAAO1H,cAAcoD,QAI3BpD,cAAe,SAAuBoD,GACpC7E,KAAKuH,eAAiBvH,KAAKuH,eAAeiB,QAAQlF,QAAO,SAAUgF,GACjE,OAAOA,IAAMzD,MAIjB6D,YAAa,SAAqBhC,GAIhC,GAHA1G,KAAK6I,YAAc7I,KAAK6I,WAAWQ,aACnCrJ,KAAK6I,WAAa,KAEdnC,EAAI,CACN,IAAI4C,EAAOtJ,KAGPuJ,EAAU,WAGZD,EAAKpB,WAAU,WACb,gBAAU,WACRoB,EAAKnB,oBAMXnI,KAAK6I,WAAa,eAAW7I,KAAKuF,MAAMiE,cAAeD,EAAS,CAC9DE,WAAW,EACXC,SAAS,EACTC,YAAY,EACZC,gBAAiB,CAAC,UAIxBC,QAAS,WAIP,IAAI9E,EAAO/E,KAAKuH,eAAejE,QAAO,SAAUuB,GAC9C,OAEc,IAFPA,EAAIiF,UAAUxG,QAAO,SAAUgF,GACpC,OAAOA,EAAE3H,UACRqD,UAGD+F,EAAQ,GAEZ,GAAI/J,KAAKwH,WAAazC,EAAKf,OAAS,EAAG,CAIrC,IAAIgG,EAAWjF,EAAKsD,KAAI,SAAUxD,GAChC,MAAO,IAAI+C,OAAO/C,EAAItE,aACrB0J,KAAK,MACRF,EAAQ,eAAUC,EAAUhK,KAAKkK,KAAK7B,KAAI,SAAU8B,GAClD,OAAOA,EAAG1H,MACTa,OAAO,QAKZ,OAAO,eAAWyB,GAAM,SAAUqF,EAAGC,GACnC,OAAON,EAAMO,QAAQF,EAAE7J,UAAYwJ,EAAMO,QAAQD,EAAE9J,cAIvD4H,WAAY,WAEV,IAAIpD,EAAO/E,KAAK6J,UAGZ5E,EAAWF,EAAKuF,QAAQvF,EAAKyD,QAAQ+B,UAAUC,MAAK,SAAU3F,GAChE,OAAOA,EAAI9E,cAAgB8E,EAAIlF,aAGjC,GAAIsF,EAAW,EAAG,CAChB,IAAIqC,EAAatH,KAAKsH,WAElBA,GAAcvC,EAAKf,OAErBiB,EAAWF,EAAKuF,QAAQvF,EAAKyD,QAAQ+B,UAAUC,KAAK5F,IAC3CG,EAAKuC,KAAgBvC,EAAKuC,GAAY3H,WAE/CsF,EAAWqC,GAKXrC,EAAW,IACbA,EAAWF,EAAKuF,QAAQvF,EAAKyF,KAAK5F,KAIpCG,EAAKb,SAAQ,SAAUW,GAErBA,EAAI9E,aAAc,KAGhBgF,EAAKE,KACPF,EAAKE,GAAUlF,aAAc,GAI/BC,KAAK+E,KAAOA,EAEZ/E,KAAKsH,WAAarC,GAIpBwF,gBAAiB,SAAyB5F,GACxC,OAAQ7E,KAAKuF,MAAMmF,SAAW,IAAIF,MAAK,SAAUG,GAC/C,OAAOA,EAAI9F,MAAQA,MAKvBtD,aAAc,SAAsBsD,GAClC,IAAI+F,EAAS5K,KAAKyK,gBAAgB5F,GAE9B+F,GAAUA,EAAOC,cACnBD,EAAOC,gBAKXlJ,YAAa,SAAqBkD,GAChC,IAAIiG,GAAS,EAEb,GAAIjG,EAAK,CACP,IAAIgD,EAAQ7H,KAAK+E,KAAKuF,QAAQzF,GAE9B,IAAKA,EAAIlF,UAAYkI,GAAS,GAAKA,IAAU7H,KAAKsH,WAAY,CAC5D,IAAIyD,EAAS,IAAI,OAAQ,eAAgB,CACvCC,YAAY,EACZC,UAAWjL,KACXkL,YAAalL,KAAKO,WAEpBP,KAAKc,MAAMiK,EAAO/L,KAAM6I,EAAO7H,KAAKsH,WAAYyD,GAE3CA,EAAOI,mBACVL,GAAS,EACT9K,KAAKsH,WAAaO,IAYxB,OAJKiD,GAAU9K,KAAKsH,aAAetH,KAAKqC,OACtCrC,KAAKc,MAAM,QAASd,KAAKsH,YAGpBwD,GAITlJ,cAAe,SAAuBiD,GACpC,QAAIA,GAGK7E,KAAK2B,YAAY3B,KAAK+E,KAAKzB,QAAO,SAAUgF,GACjD,OAAOA,IAAMzD,KACZ2F,KAAK5F,KAQZwG,YAAa,SAAqBvG,GAChC,IAAIwG,EAASrL,KAGbA,KAAKkI,WAAU,WACb,eAAamD,EAAOZ,gBAAgB5F,QAIxCyG,aAAc,SAAsBzG,EAAKa,GACnC,eAAQA,IAAQb,GAAOA,EAAI/D,QAAU+D,EAAIlF,UAC3CkF,EAAI/D,MAAM,QAAS4E,IAIvB6F,SAAU,SAAkB1G,EAAKa,GAC/B1F,KAAK2B,YAAYkD,GACjB7E,KAAKsL,aAAazG,EAAKa,IAGzBxE,SAAU,SAAkBoE,GAC1B,IAAIT,EAAM7E,KAAK+E,KAAKyF,KAAK5F,GAErB5E,KAAK2B,YAAYkD,IAAQS,IAC3BtF,KAAKoL,YAAYvG,GACjB7E,KAAKsL,aAAazG,EAAKS,KAI3ByC,YAAa,SAAqBzC,GAChC,IAAIkG,EAAe,eAAQxL,KAAKsH,WAAY,GACxCzC,EAAM7E,KAAK+E,KAAKyD,MAAM,EAAGgD,GAAcjB,UAAUC,KAAK5F,GAEtD5E,KAAK2B,YAAYkD,IAAQS,IAC3BtF,KAAKoL,YAAYvG,GACjB7E,KAAKsL,aAAazG,EAAKS,KAI3B0C,QAAS,SAAiB1C,GACxB,IAAIkG,EAAe,eAAQxL,KAAKsH,YAAa,GACzCzC,EAAM7E,KAAK+E,KAAKyD,MAAMgD,EAAe,GAAGhB,KAAK5F,GAE7C5E,KAAK2B,YAAYkD,IAAQS,IAC3BtF,KAAKoL,YAAYvG,GACjB7E,KAAKsL,aAAazG,EAAKS,KAI3BmG,QAAS,SAAiBnG,GACxB,IAAIT,EAAM7E,KAAK+E,KAAKyD,QAAQ+B,UAAUC,KAAK5F,GAEvC5E,KAAK2B,YAAYkD,IAAQS,IAC3BtF,KAAKoL,YAAYvG,GACjB7E,KAAKsL,aAAazG,EAAKS,MAI7BzD,OAAQ,SAAgBC,GACtB,IAAI4J,EAAS1L,KAET+E,EAAO/E,KAAK+E,KAEZ4G,EAAY5G,EAAKyF,MAAK,SAAU3F,GAClC,OAAOA,EAAI9E,cAAgB8E,EAAIlF,YAG7BiM,EAAc7G,EAAKyF,MAAK,SAAU3F,GACpC,OAAQA,EAAIlF,YAGV+K,EAAU3F,EAAKsD,KAAI,SAAUxD,EAAKgD,GACpC,IAAI5C,EAAW,KAYf,OAVKyG,EAAOrG,WAEVJ,GAAY,GAER0G,IAAc9G,IAAQ8G,GAAaC,IAAgB/G,KAErDI,EAAW,OAIRnD,EAAEgD,EAAkB,CACzBX,IAAKU,EAAI0D,MAAQV,EACjB7F,IAAK,UAEL6J,UAAU,EACV/M,MAAO,CACL+F,IAAKA,EACLE,KAAMA,EACNtC,GAAIoC,EAAIvE,eAAiBuE,EAAItE,OAASsE,EAAItE,OAAO,mBAAqB,MACtEyE,SAAUH,EAAItE,OAASsE,EAAItE,SAAW,KACtC0E,SAAUA,EACVG,QAASL,EAAKf,OACdmB,SAAU0C,EAAQ,EAClBxC,SAAUqG,EAAOrG,UAEnBqB,GAAI,CACFC,MAAO,SAAejB,GACpBgG,EAAOH,SAAS1G,EAAKa,IAEvBoG,MAAOJ,EAAOxK,SACd6K,KAAML,EAAO3D,YACbiE,KAAMN,EAAO1D,QACbiE,KAAMP,EAAOD,cAKfS,EAAMpK,EAAE,OAAM,CAChBE,IAAK,MACLE,MAAOlC,KAAKyH,cACZlF,MAAO,CACLC,KAAM,UACNC,GAAIzC,KAAKO,OAAO,sBAElBzB,MAAO,CACLqN,KAAMnM,KAAKmM,KACXC,UAAWpM,KAAKoM,UAChBC,MAAOrM,KAAKqM,MACZtH,MAAO/E,KAAKkH,aAAelH,KAAKsM,MAChCA,OAAQtM,KAAKkH,YAAclH,KAAKsM,MAChC3E,SAAU3H,KAAK2H,SACf4E,MAAOvM,KAAKuM,MACZC,WAAYxM,KAAKI,OAASJ,KAAK2H,WAEhC,CAAC3H,KAAK0C,cAAc,eAAiBZ,IAAK4I,EAAS1K,KAAK0C,cAAc,aAAeZ,MACxFoK,EAAMpK,EAAE,MAAO,CACbqC,IAAK,cACLjC,MAAO,CAAC,CACN,cAAelC,KAAKI,OAASJ,KAAK2H,WAAa3H,KAAKiH,IACpD,cAAejH,KAAKI,OAASJ,KAAK2H,UAAY3H,KAAKiH,IACnD,WAAYjH,KAAK2H,UAChB3H,KAAKqH,kBACP,CAAC6E,IACJ,IAAIO,EAAQ3K,IAEPiD,GAAwB,IAAhBA,EAAKf,SAChByI,EAAQ3K,EAAE,MAAO,CACfqC,IAAK,eACLjC,MAAO,CAAC,WAAY,SAAU,CAC5B,YAAalC,KAAKI,QAEnBJ,KAAK0C,cAAc,WAIxB,IAAIX,EAAUD,EAAE,MAAO,CACrBE,IAAK,gBACLmC,IAAK,oBACLlC,YAAa,cACbC,MAAO,CAAC,CACNwK,IAAK1M,KAAK2H,UACT3H,KAAKmH,cACR5E,MAAO,CACLE,GAAIzC,KAAKO,OAAO,wBAEjB,eAAOP,KAAK0C,cAAc,WAAY+J,IAEzC,OAAO3K,EAAE9B,KAAKd,IAAK,CACjB+C,YAAa,OACbC,MAAO,CACLyK,IAAK3M,KAAK2H,SACV,aAAc3H,KAAK2H,UAAY3H,KAAKI,MAEtCmC,MAAO,CACLE,GAAIzC,KAAKO,WAEV,CAACP,KAAKiH,IAAMlF,EAAUD,IAAK,CAACoK,GAAMlM,KAAKiH,IAAMnF,IAAMC","file":"js/chunk-vendors~7a8621bb.107d17f9.js","sourcesContent":["import Vue from '../../utils/vue';\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport BVTransition from '../../utils/bv-transition'; // @vue/component\n\nexport var BTab = /*#__PURE__*/Vue.extend({\n name: 'BTab',\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvTabs: {\n default: function _default() {\n return {};\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 // default: ''\n\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] // default: null\n\n },\n titleLinkClass: {\n // Sniffed by tabs.js and added to nav 'a.nav-link'\n type: [String, Array, Object] // default: null\n\n },\n titleLinkAttributes: {\n type: Object // default: null\n\n },\n disabled: {\n type: Boolean,\n default: false\n },\n noBody: {\n type: Boolean,\n default: false\n },\n lazy: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n localActive: this.active && !this.disabled,\n show: false\n };\n },\n computed: {\n tabClasses: function tabClasses() {\n return [{\n active: this.localActive,\n disabled: this.disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n }, // Apply `activeTabClass` styles when this tab is active\n this.localActive ? this.bvTabs.activeTabClass : null];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade: function computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy: function computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n },\n _isTab: function _isTab() {\n // For parent sniffing of child\n return true;\n }\n },\n watch: {\n localActive: function localActive(newVal) {\n // Make 'active' prop work with `.sync` modifier\n this.$emit('update:active', newVal);\n },\n active: function active(newVal, oldVal) {\n if (newVal !== oldVal) {\n if (newVal) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\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: function 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: function mounted() {\n // Inform b-tabs of our presence\n this.registerTab(); // Initially show on mount if active and not disabled\n\n this.show = this.localActive;\n },\n updated: function 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: function destroyed() {\n // inform b-tabs of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab: function registerTab() {\n // Inform `b-tabs` of our presence\n this.bvTabs.registerTab && this.bvTabs.registerTab(this);\n },\n unregisterTab: function unregisterTab() {\n // Inform `b-tabs` of our departure\n this.bvTabs.unregisterTab && this.bvTabs.unregisterTab(this);\n },\n // Public methods\n activate: function activate() {\n if (this.bvTabs.activateTab && !this.disabled) {\n return this.bvTabs.activateTab(this);\n } else {\n // Not inside a component or tab is disabled\n return false;\n }\n },\n deactivate: function deactivate() {\n if (this.bvTabs.deactivateTab && this.localActive) {\n return this.bvTabs.deactivateTab(this);\n } else {\n // Not inside a component or not active to begin with\n return false;\n }\n }\n },\n render: function render(h) {\n var content = h(this.tag, {\n ref: 'panel',\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n rawName: 'v-show',\n value: this.localActive,\n expression: 'localActive'\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': this.localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n }\n }, // Render content lazily if requested\n [this.localActive || !this.computedLazy ? this.normalizeSlot('default') : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [content]);\n }\n});","import { BTabs } from './tabs';\nimport { BTab } from './tab';\nimport { pluginFactory } from '../../utils/plugins';\nvar TabsPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTabs: BTabs,\n BTab: BTab\n }\n});\nexport { TabsPlugin, BTabs, BTab };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../utils/vue';\nimport identity from '../../utils/identity';\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 { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, requestAF, selectAll } from '../../utils/dom';\nimport { isEvent } from '../../utils/inspect';\nimport { mathMax } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\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'; // -- Constants --\n\nvar navProps = omit(BNavProps, ['tabs', 'isNavBar', 'cardHeader']); // -- Utils --\n// Filter function to filter out disabled tabs\n\nvar notDisabled = function notDisabled(tab) {\n return !tab.disabled;\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BTabButtonHelper = /*#__PURE__*/Vue.extend({\n name: 'BTabButtonHelper',\n inject: {\n bvTabs: {\n /* istanbul ignore next */\n default: function _default()\n /* istanbul ignore next */\n {\n return {};\n }\n }\n },\n props: {\n // Reference to the child instance\n tab: {\n default: null\n },\n tabs: {\n type: Array,\n\n /* istanbul ignore next */\n default: function _default()\n /* istanbul ignore next */\n {\n return [];\n }\n },\n id: {\n type: String,\n default: null\n },\n controls: {\n type: String,\n default: null\n },\n tabIndex: {\n type: Number,\n default: null\n },\n posInSet: {\n type: Number,\n default: null\n },\n setSize: {\n type: Number,\n default: null\n },\n noKeyNav: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvt: function handleEvt(evt) {\n var stop = function stop() {\n evt.preventDefault();\n evt.stopPropagation();\n };\n\n if (this.tab.disabled) {\n /* istanbul ignore next */\n return;\n }\n\n var type = evt.type;\n var key = evt.keyCode;\n var shift = evt.shiftKey;\n\n if (type === 'click') {\n stop();\n this.$emit('click', evt);\n } else if (type === 'keydown' && key === KeyCodes.SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\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\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\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: function render(h) {\n var link = h(BLink, {\n ref: 'link',\n staticClass: 'nav-link',\n class: [{\n active: this.tab.localActive && !this.tab.disabled,\n disabled: this.tab.disabled\n }, this.tab.titleLinkClass, // Apply `activeNavItemClass` styles when the tab is active\n this.tab.localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled: this.tab.disabled\n },\n attrs: _objectSpread(_objectSpread({}, this.tab.titleLinkAttributes), {}, {\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 }, [this.tab.normalizeSlot('title') || this.tab.title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [this.tab.titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [link]);\n }\n}); // @vue/component\n\nexport var BTabs = /*#__PURE__*/Vue.extend({\n name: 'BTabs',\n mixins: [idMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTabs: this\n };\n },\n model: {\n prop: 'value',\n event: 'input'\n },\n props: _objectSpread(_objectSpread({}, navProps), {}, {\n tag: {\n type: String,\n default: 'div'\n },\n card: {\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 child\n type: Boolean,\n default: false\n },\n contentClass: {\n type: [String, Array, Object] // default: null\n\n },\n navClass: {\n type: [String, Array, Object] // default: null\n\n },\n navWrapperClass: {\n type: [String, Array, Object] // default: null\n\n },\n activeNavItemClass: {\n // Only applied to the currently active \n type: [String, Array, Object] // default: null\n\n },\n activeTabClass: {\n // Only applied to the currently active \n // This prop is sniffed by the child\n type: [String, Array, Object] // default: null\n\n },\n value: {\n // v-model\n type: Number,\n default: null\n }\n }),\n data: function data() {\n return {\n // Index of current tab\n currentTab: toInteger(this.value, -1),\n // Array of direct child 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: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n localNavClass: function localNavClass() {\n var classes = [];\n\n if (this.card && this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0');\n }\n\n return [].concat(classes, [this.navClass]);\n }\n },\n watch: {\n currentTab: function currentTab(newVal) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function (tab, idx) {\n if (newVal === idx && !tab.disabled) {\n tab.localActive = true;\n index = idx;\n } else {\n tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit('input', index);\n },\n value: function value(newVal, oldVal) {\n if (newVal !== oldVal) {\n newVal = toInteger(newVal, -1);\n oldVal = toInteger(oldVal, 0);\n var tabs = this.tabs;\n\n if (tabs[newVal] && !tabs[newVal].disabled) {\n this.activateTab(tabs[newVal]);\n } else {\n // Try next or prev tabs\n if (newVal < oldVal) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n },\n registeredTabs: function registeredTabs() {\n var _this = this;\n\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(function () {\n requestAF(function () {\n _this.updateTabs();\n });\n });\n },\n tabs: function tabs(newVal, oldVal) {\n var _this2 = this;\n\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(function (t) {\n return t._uid;\n }), oldVal.map(function (t) {\n return t._uid;\n }))) {\n // In a nextTick to ensure currentTab has been set first.\n this.$nextTick(function () {\n // We emit shallow copies of the new and old arrays of tabs, to\n // prevent users from potentially mutating the internal arrays.\n _this2.$emit('changed', newVal.slice(), oldVal.slice());\n });\n }\n },\n isMounted: function isMounted(newVal) {\n var _this3 = this;\n\n // Trigger an update after mounted. Needed for tabs inside lazy modals.\n if (newVal) {\n requestAF(function () {\n _this3.updateTabs();\n });\n } // Enable or disable the observer\n\n\n this.setObserver(newVal);\n }\n },\n created: function created() {\n var _this4 = this;\n\n // Create private non-reactive props\n this.$_observer = null;\n this.currentTab = toInteger(this.value, -1); // 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\n this.$nextTick(function () {\n _this4.updateTabs();\n });\n },\n mounted: function mounted() {\n var _this5 = this;\n\n // Call `updateTabs()` just in case...\n this.updateTabs();\n this.$nextTick(function () {\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 _this5.isMounted = true;\n });\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated()\n /* istanbul ignore next */\n {\n this.isMounted = false;\n },\n\n /* istanbul ignore next */\n activated: function activated()\n /* istanbul ignore next */\n {\n var _this6 = this;\n\n this.currentTab = toInteger(this.value, -1);\n this.$nextTick(function () {\n _this6.updateTabs();\n\n _this6.isMounted = true;\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.isMounted = false;\n },\n destroyed: function destroyed() {\n // Ensure no references to child instances exist\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab(tab) {\n var _this7 = this;\n\n if (!arrayIncludes(this.registeredTabs, tab)) {\n this.registeredTabs.push(tab);\n tab.$once('hook:destroyed', function () {\n _this7.unregisterTab(tab);\n });\n }\n },\n unregisterTab: function unregisterTab(tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(function (t) {\n return t !== tab;\n });\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver: function setObserver(on) {\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n var self = this;\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n\n var handler = function handler() {\n // We delay the update to ensure that `tab.safeId()` has\n // updated with the final ID value.\n self.$nextTick(function () {\n requestAF(function () {\n self.updateTabs();\n });\n });\n }; // Watch for changes to sub components\n\n\n this.$_observer = observeDom(this.$refs.tabsContainer, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs: function 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 var tabs = this.registeredTabs.filter(function (tab) {\n return tab.$children.filter(function (t) {\n return t._isTab;\n }).length === 0;\n }); // DOM Order of Tabs\n\n var order = [];\n\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 var selector = tabs.map(function (tab) {\n return \"#\".concat(tab.safeId());\n }).join(', ');\n order = selectAll(selector, this.$el).map(function (el) {\n return el.id;\n }).filter(identity);\n } // Stable sort keeps the original order if not found in the\n // `order` array, which will be an empty array before mount.\n\n\n return stableSort(tabs, function (a, b) {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId());\n });\n },\n // Update list of children\n updateTabs: function updateTabs() {\n // Probe tabs\n var tabs = this.getTabs(); // 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\n var tabIndex = tabs.indexOf(tabs.slice().reverse().find(function (tab) {\n return tab.localActive && !tab.disabled;\n })); // Else try setting to currentTab\n\n if (tabIndex < 0) {\n var currentTab = this.currentTab;\n\n if (currentTab >= tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = tabs.indexOf(tabs.slice().reverse().find(notDisabled));\n } else if (tabs[currentTab] && !tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n } // Else find *first* non-disabled tab in current tabs\n\n\n if (tabIndex < 0) {\n tabIndex = tabs.indexOf(tabs.find(notDisabled));\n } // Set the current tab state to active\n\n\n tabs.forEach(function (tab) {\n // tab.localActive = idx === tabIndex && !tab.disabled\n tab.localActive = false;\n });\n\n if (tabs[tabIndex]) {\n tabs[tabIndex].localActive = true;\n } // Update the array of tab children\n\n\n this.tabs = tabs; // Set the currentTab index (can be -1 if no non-disabled tabs)\n\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: function getButtonForTab(tab) {\n return (this.$refs.buttons || []).find(function (btn) {\n return btn.tab === tab;\n });\n },\n // Force a button to re-render its content, given a instance\n // Called by on `update()`\n updateButton: function updateButton(tab) {\n var button = this.getButtonForTab(tab);\n\n if (button && button.$forceUpdate) {\n button.$forceUpdate();\n }\n },\n // Activate a tab given a instance\n // Also accessed by \n activateTab: function activateTab(tab) {\n var result = false;\n\n if (tab) {\n var index = this.tabs.indexOf(tab);\n\n if (!tab.disabled && index > -1 && index !== this.currentTab) {\n var tabEvt = new BvEvent('activate-tab', {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvt.type, index, this.currentTab, tabEvt);\n\n if (!tabEvt.defaultPrevented) {\n result = true;\n this.currentTab = index;\n }\n }\n } // Couldn't set tab, so ensure v-model is set to `this.currentTab`\n\n /* istanbul ignore next: should rarely happen */\n\n\n if (!result && this.currentTab !== this.value) {\n this.$emit('input', this.currentTab);\n }\n\n return result;\n },\n // Deactivate a tab given a instance\n // Accessed by \n deactivateTab: function 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(function (t) {\n return t !== tab;\n }).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n\n\n return false;\n },\n // Focus a tab button given its instance\n focusButton: function focusButton(tab) {\n var _this8 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering/updating before focusing\n this.$nextTick(function () {\n attemptFocus(_this8.getButtonForTab(tab));\n });\n },\n // Emit a click event on a specified component instance\n emitTabClick: function emitTabClick(tab, evt) {\n if (isEvent(evt) && tab && tab.$emit && !tab.disabled) {\n tab.$emit('click', evt);\n }\n },\n // Click handler\n clickTab: function clickTab(tab, evt) {\n this.activateTab(tab);\n this.emitTabClick(tab, evt);\n },\n // Move to first non-disabled tab\n firstTab: function firstTab(focus) {\n var tab = this.tabs.find(notDisabled);\n\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: function previousTab(focus) {\n var currentIndex = mathMax(this.currentTab, 0);\n var tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n\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: function nextTab(focus) {\n var currentIndex = mathMax(this.currentTab, -1);\n var tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n\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: function lastTab(focus) {\n var tab = this.tabs.slice().reverse().find(notDisabled);\n\n if (this.activateTab(tab) && focus) {\n this.focusButton(tab);\n this.emitTabClick(tab, focus);\n }\n }\n },\n render: function render(h) {\n var _this9 = this;\n\n var tabs = this.tabs; // Currently active tab\n\n var activeTab = tabs.find(function (tab) {\n return tab.localActive && !tab.disabled;\n }); // Tab button to allow focusing when no active tab found (keynav only)\n\n var fallbackTab = tabs.find(function (tab) {\n return !tab.disabled;\n }); // For each found create the tab buttons\n\n var buttons = tabs.map(function (tab, index) {\n var tabIndex = null; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n if (!_this9.noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if (activeTab === tab || !activeTab && fallbackTab === tab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\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: tab.controlledBy || (tab.safeId ? tab.safeId(\"_BV_tab_button_\") : null),\n controls: tab.safeId ? tab.safeId() : null,\n tabIndex: tabIndex,\n setSize: tabs.length,\n posInSet: index + 1,\n noKeyNav: _this9.noKeyNav\n },\n on: {\n click: function click(evt) {\n _this9.clickTab(tab, evt);\n },\n first: _this9.firstTab,\n prev: _this9.previousTab,\n next: _this9.nextTab,\n last: _this9.lastTab\n }\n });\n }); // Nav\n\n var nav = h(BNav, {\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 cardHeader: this.card && !this.vertical\n }\n }, [this.normalizeSlot('tabs-start') || h(), buttons, this.normalizeSlot('tabs-end') || h()]);\n nav = h('div', {\n key: 'bv-tabs-nav',\n class: [{\n 'card-header': this.card && !this.vertical && !this.end,\n 'card-footer': this.card && !this.vertical && this.end,\n 'col-auto': this.vertical\n }, this.navWrapperClass]\n }, [nav]);\n var empty = h();\n\n if (!tabs || tabs.length === 0) {\n empty = h('div', {\n key: 'bv-empty-tab',\n class: ['tab-pane', 'active', {\n 'card-body': this.card\n }]\n }, this.normalizeSlot('empty'));\n } // Main content section\n\n\n var content = h('div', {\n ref: 'tabsContainer',\n key: 'bv-tabs-container',\n staticClass: 'tab-content',\n class: [{\n col: this.vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n }\n }, concat(this.normalizeSlot('default'), empty)); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: this.vertical,\n 'no-gutters': this.vertical && this.card\n },\n attrs: {\n id: this.safeId()\n }\n }, [this.end ? content : h(), [nav], this.end ? h() : content]);\n }\n});"],"sourceRoot":""}