{"version":3,"sources":["webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/components/VTabs/VTab.ts","webpack:///../../../src/components/VWindow/VWindow.ts","webpack:///../../../src/components/VTabs/VTabsItems.ts","webpack:///../../../src/components/VTabs/VTabsBar.ts","webpack:///../../../src/components/VTabs/VTabsSlider.ts","webpack:///../../../src/components/VTabs/VTabs.ts"],"names":["extend","name","provide","form","this","inheritAttrs","props","disabled","Boolean","lazyValidation","readonly","value","data","inputs","watchers","errorBag","watch","handler","val","errors","Object","values","includes","$emit","deep","immediate","methods","watchInput","input","watcher","$watch","$set","_uid","valid","shouldValidate","hasOwnProperty","validate","filter","length","reset","forEach","resetErrorBag","setTimeout","resetValidation","register","push","unregister","found","find","i","unwatch","$delete","render","h","staticClass","attrs","novalidate","attrs$","on","submit","e","$slots","default","baseMixins","ripple","type","tabValue","required","proxyClass","computed","classes","options","call","groupClasses","to","href","$router","resolve","$route","append","replace","click","preventDefault","indexOf","detail","$el","blur","toggle","isActive","tabsBar","mandatory","generateRouteLink","tag","String","role","tabindex","keydown","keyCode","enter","directives","Touch","windowGroup","activeClass","continuous","nextIcon","prevIcon","reverse","showArrows","showArrowsOnHover","touch","touchless","vertical","changedByDelimiters","internalHeight","undefined","transitionHeight","transitionCount","isBooted","isReverse","computedTransition","axis","internalReverse","direction","hasActiveItems","items","item","hasNext","internalIndex","hasPrev","findIndex","internalValue","getValue","$vuetify","rtl","oldVal","updateReverse","mounted","window","requestAnimationFrame","genDefaultSlot","genContainer","children","genControlIcons","$createElement","class","style","height","genIcon","icon","stopPropagation","lang","t","$scopedSlots","VBtn","VIcon","large","icons","prev","next","getNextIndex","index","nextIndex","getPrevIndex","prevIndex","lastIndex","itemsLength","left","right","end","start","isDark","rootIsDark","id","mixins","isMobile","themeClasses","callSlider","genContent","onRouteChange","newPath","path","oldPath","hasNew","hasOld","setBackgroundColor","color","Resize","alignWithTitle","backgroundColor","centerActive","centered","fixedTabs","grow","Number","hideSlider","iconsAndText","mobileBreakpoint","optional","sliderColor","sliderSize","resizeTimeout","slider","top","width","transitionTime","isReversed","sliderStyles","transition","computedColor","appIsDark","ResizeObserver","obs","onResize","observe","$on","disconnect","$nextTick","$refs","selectedItems","activeTab","el","scrollHeight","offsetLeft","offsetWidth","offsetTop","scrollWidth","genBar","dark","light","change","ref","setTextColor","VTabsBar","genSlider","genItems","VTabsItems","VTabsSlider","_isDestroyed","clearTimeout","parseNodes","tab","slot","vnode","componentOptions","Ctor","modifiers","quiet"],"mappings":"m4BAoBe,sBACb,OACA,eAAmB,SAEnBA,OAAO,CACPC,KAAM,SAENC,QAAO,WACL,MAAO,CAAEC,KAAMC,OAGjBC,cAAc,EAEdC,MAAO,CACLC,SAAUC,QACVC,eAAgBD,QAChBE,SAAUF,QACVG,MAAOH,SAGTI,KAAM,iBAAO,CACXC,OAAQ,GACRC,SAAU,GACVC,SAAU,KAGZC,MAAO,CACLD,SAAU,CACRE,QAAO,SAAEC,GACP,IAAMC,EAASC,OAAOC,OAAOH,GAAKI,UAAS,GAE3ClB,KAAKmB,MAAM,SAAUJ,IAEvBK,MAAM,EACNC,WAAW,IAIfC,QAAS,CACPC,WAAU,SAAEC,GAAU,WACdC,EAAW,SAAAD,GACf,OAAOA,EAAME,OAAO,YAAa,SAAAZ,GAC/B,EAAKa,KAAK,EAAKhB,SAAUa,EAAMI,KAAMd,KACpC,CAAEO,WAAW,KAGZX,EAAqB,CACzBkB,KAAMJ,EAAMI,KACZC,MAAO,aACPC,eAAgB,cAiBlB,OAdI9B,KAAKK,eAEPK,EAASoB,eAAiBN,EAAME,OAAO,kBAAmB,SAAAZ,GACnDA,IAGD,EAAKH,SAASoB,eAAeP,EAAMI,QAEvClB,EAASmB,MAAQJ,EAAQD,QAG3Bd,EAASmB,MAAQJ,EAAQD,GAGpBd,GAGTsB,SAAQ,WACN,OAAqE,IAA9DhC,KAAKS,OAAOwB,QAAO,SAAAT,GAAK,OAAKA,EAAMQ,UAAS,MAAOE,QAG5DC,MAAK,WACHnC,KAAKS,OAAO2B,SAAQ,SAAAZ,GAAK,OAAIA,EAAMW,WACnCnC,KAAKqC,iBAEPA,cAAa,sBACPrC,KAAKK,gBAEPiC,YAAW,WACT,EAAK3B,SAAW,KACf,IAIP4B,gBAAe,WACbvC,KAAKS,OAAO2B,SAAQ,SAAAZ,GAAK,OAAIA,EAAMe,qBACnCvC,KAAKqC,iBAEPG,SAAQ,SAAEhB,GACRxB,KAAKS,OAAOgC,KAAKjB,GACjBxB,KAAKU,SAAS+B,KAAKzC,KAAKuB,WAAWC,KAErCkB,WAAU,SAAElB,GACV,IAAMmB,EAAQ3C,KAAKS,OAAOmC,MAAK,SAAAC,GAAC,OAAIA,EAAEjB,OAASJ,EAAMI,QAErD,GAAKe,EAAL,CAEA,IAAMG,EAAU9C,KAAKU,SAASkC,MAAK,SAAAC,GAAC,OAAIA,EAAEjB,OAASe,EAAMf,QACrDkB,IACFA,EAAQjB,QACRiB,EAAQhB,kBAGV9B,KAAKU,SAAWV,KAAKU,SAASuB,QAAO,SAAAY,GAAC,OAAIA,EAAEjB,OAASe,EAAMf,QAC3D5B,KAAKS,OAAST,KAAKS,OAAOwB,QAAO,SAAAY,GAAC,OAAIA,EAAEjB,OAASe,EAAMf,QACvD5B,KAAK+C,QAAQ/C,KAAKW,SAAUgC,EAAMf,SAItCoB,OAAM,SAAEC,GAAC,WACP,OAAOA,EAAE,OAAQ,CACfC,YAAa,SACbC,MAAO,EAAF,CACHC,YAAY,GACTpD,KAAKqD,QAEVC,GAAI,CACFC,OAAS,SAAAC,GAAD,OAAc,EAAKrC,MAAM,SAAUqC,MAE5CxD,KAAKyD,OAAOC,a,2xBC7HnB,IAAMC,EAAa,eACjB,OAGA,eAAiB,WACjB,QAUa,OAAAA,EAAW/D,SAAkBA,SAE1CA,OAAO,CACPC,KAAM,QAENK,MAAO,CACL0D,OAAQ,CACNC,KAAM,CAACzD,QAASY,QAChB0C,SAAS,GAEXI,SAAU,CACRC,UAAU,IAIdvD,KAAM,iBAAO,CACXwD,WAAY,kBAGdC,SAAU,CACRC,QAAO,WACL,OAAO,EAAP,GACE,SAAS,GACN,OAASC,QAAQF,SAASC,QAAQE,KAAKpE,OAFrC,IAGL,kBAAmBA,KAAKG,UACrBH,KAAKqE,eAGZ9D,MAAK,WACH,GAAqB,MAAjBP,KAAK8D,SAAkB,OAAO9D,KAAK8D,SAEvC,IAAIQ,EAAKtE,KAAKsE,IAAMtE,KAAKuE,KAEzB,GAAU,MAAND,EAAY,OAAOA,EAEvB,GAAItE,KAAKwE,SACPxE,KAAKsE,KAAOtD,OAAOhB,KAAKsE,IACxB,CACA,IAAMG,EAAUzE,KAAKwE,QAAQC,QAC3BzE,KAAKsE,GACLtE,KAAK0E,OACL1E,KAAK2E,QAGPL,EAAKG,EAAQF,KAGf,OAAOD,EAAGM,QAAQ,IAAK,MAI3BtD,QAAS,CACPuD,MAAK,SAAErB,GAIDxD,KAAKG,SACPqD,EAAEsB,kBAOA9E,KAAKuE,MACPvE,KAAKuE,KAAKQ,QAAQ,MAAQ,GAC1BvB,EAAEsB,iBAEAtB,EAAEwB,QAAQhF,KAAKiF,IAAIC,OAEvBlF,KAAKmB,MAAM,QAASqC,GAEpBxD,KAAKsE,IAAMtE,KAAKmF,WAElBA,OAAM,WAECnF,KAAKoF,WAAcpF,KAAKqF,QAAQC,WAActF,KAAKsE,KACtDtE,KAAKmB,MAAM,YAKjB6B,OAAM,SAAEC,GAAC,WACP,EAAsBjD,KAAKuF,oBAAnBC,EAAF,EAAEA,IAAKhF,EAAA,EAAAA,KAiBb,OAfAA,EAAK2C,MAAL,OACK3C,EAAK2C,OADG,IAEX,gBAAiBsC,OAAOzF,KAAKoF,UAC7BM,KAAM,MACNC,SAAU3F,KAAKG,UAAY,EAAI,IAEjCK,EAAK8C,GAAL,OACK9C,EAAK8C,IADA,IAERsC,QAAU,SAAApC,GACJA,EAAEqC,UAAY,OAASC,OAAO,EAAKjB,MAAMrB,GAE7C,EAAKrC,MAAM,UAAWqC,MAInBP,EAAEuC,EAAKhF,EAAMR,KAAKyD,OAAOC,a,uxBClHrB,aAAc9D,OAAO,CAClCC,KAAM,WAENkG,WAAY,CAAEC,MAAA,QAEdlG,QAAO,WACL,MAAO,CACLmG,YAAajG,OAIjBE,MAAO,CACLgG,YAAa,CACXrC,KAAM4B,OACN/B,QAAS,yBAEXyC,WAAY/F,QACZkF,UAAW,CACTzB,KAAMzD,QACNsD,SAAS,GAEX0C,SAAU,CACRvC,KAAM,CAACzD,QAASqF,QAChB/B,QAAS,SAEX2C,SAAU,CACRxC,KAAM,CAACzD,QAASqF,QAChB/B,QAAS,SAEX4C,QAASlG,QACTmG,WAAYnG,QACZoG,kBAAmBpG,QACnBqG,MAAOzF,OACP0F,UAAWtG,QACXG,MAAO,CACLwD,UAAU,GAEZ4C,SAAUvG,SAGZI,KAAI,WACF,MAAO,CACLoG,qBAAqB,EACrBC,oBAAgBC,EAChBC,sBAAkBD,EAClBE,gBAAiB,EACjBC,UAAU,EACVC,WAAW,IAIfjD,SAAU,CACRmB,SAAQ,WACN,OAAOpF,KAAKgH,gBAAkB,GAEhC9C,QAAO,WACL,OAAO,EAAP,KACK,OAAcC,QAAQF,SAASC,QAAQE,KAAKpE,OAD1C,IAEL,iCAAkCA,KAAKwG,qBAG3CW,mBAAkB,WAChB,IAAKnH,KAAKiH,SAAU,MAAO,GAE3B,IAAMG,EAAOpH,KAAK2G,SAAW,IAAM,IAC7BL,EAAUtG,KAAKqH,iBAAmBrH,KAAKkH,UAAYlH,KAAKkH,UACxDI,EAAYhB,EAAU,WAAa,GAEzC,MAAO,YAAP,OAAmBc,GAAI,OAAGE,EAA1B,gBAEFC,eAAc,WACZ,OAAOnH,QACLJ,KAAKwH,MAAM5E,MAAK,SAAA6E,GAAI,OAAKA,EAAKtH,cAGlCuH,QAAO,WACL,OAAO1H,KAAKmG,YAAcnG,KAAK2H,cAAgB3H,KAAKwH,MAAMtF,OAAS,GAErE0F,QAAO,WACL,OAAO5H,KAAKmG,YAAcnG,KAAK2H,cAAgB,GAEjDA,cAAa,sBACX,OAAO3H,KAAKwH,MAAMK,WAAU,SAACJ,EAAM5E,GACjC,OAAO,EAAKiF,gBAAkB,EAAKC,SAASN,EAAM5E,OAGtDwE,gBAAe,WACb,OAAOrH,KAAKgI,SAASC,KAAOjI,KAAKsG,QAAUtG,KAAKsG,UAIpD1F,MAAO,CACL+G,cAAa,SAAE7G,EAAKoH,GAClBlI,KAAKkH,UAAYlH,KAAKmI,cAAcrH,EAAKoH,KAI7CE,QAAO,sBACLC,OAAOC,uBAAsB,kBAAO,EAAKrB,UAAW,MAGtD3F,QAAS,CACPiH,eAAc,WACZ,OAAOvI,KAAKyD,OAAOC,SAErB8E,aAAY,WACV,IAAMC,EAAW,CAACzI,KAAKuI,kBAMvB,OAJIvI,KAAKuG,YACPkC,EAAShG,KAAKzC,KAAK0I,mBAGd1I,KAAK2I,eAAe,MAAO,CAChCzF,YAAa,sBACb0F,MAAO,CACL,iCAAkC5I,KAAKoF,UAEzCyD,MAAO,CACLC,OAAQ9I,KAAK6G,gBAAkB7G,KAAK+G,mBAErC0B,IAELM,QAAO,SACLzB,EACA0B,EACA,GAAiB,I,MAAA,OAEX1F,EAAK,CACTuB,MAAQ,SAAArB,GACNA,EAAEyF,kBACF,EAAKrC,qBAAsB,EAC3B,MAGEzD,EAAQ,CACZ,aAAcnD,KAAKgI,SAASkB,KAAKC,EAAnB,4BAA0C7B,KAEpDmB,EAGJ,QAHe,EAA4B,QAA5B,KAAAzI,KAAKoJ,cAAa9B,UAAU,sBAAG,CAC9ChE,KACAH,iBACA,QAAI,CAACnD,KAAK2I,eAAeU,EAAA,KAAM,CAC/BnJ,MAAO,CAAE8I,MAAM,GACf7F,QACAG,MACC,CACDtD,KAAK2I,eAAeW,EAAA,KAAO,CACzBpJ,MAAO,CAAEqJ,OAAO,IACfP,MAGL,OAAOhJ,KAAK2I,eAAe,MAAO,CAChCzF,YAAa,aAAF,OAAeoE,IACzBmB,IAELC,gBAAe,WACb,IAAMc,EAAQ,GAERnD,EAAWrG,KAAKgI,SAASC,IAC3BjI,KAAKoG,SACLpG,KAAKqG,SAGT,GACErG,KAAK4H,SACLvB,GACoB,kBAAbA,EACP,CACA,IAAM2C,EAAOhJ,KAAK+I,QAAQ,OAAQ1C,EAAUrG,KAAKyJ,MACjDT,GAAQQ,EAAM/G,KAAKuG,GAGrB,IAAM5C,EAAWpG,KAAKgI,SAASC,IAC3BjI,KAAKqG,SACLrG,KAAKoG,SAGT,GACEpG,KAAK0H,SACLtB,GACoB,kBAAbA,EACP,CACA,IAAM,EAAOpG,KAAK+I,QAAQ,OAAQ3C,EAAUpG,KAAK0J,MACjD,GAAQF,EAAM/G,KAAK,GAGrB,OAAO+G,GAETG,aAAY,SAAEC,GACZ,IAAMC,GAAaD,EAAQ,GAAK5J,KAAKwH,MAAMtF,OACrCuF,EAAOzH,KAAKwH,MAAMqC,GAExB,OAAIpC,EAAKtH,SAAiBH,KAAK2J,aAAaE,GAErCA,GAETC,aAAY,SAAEF,GACZ,IAAMG,GAAaH,EAAQ5J,KAAKwH,MAAMtF,OAAS,GAAKlC,KAAKwH,MAAMtF,OACzDuF,EAAOzH,KAAKwH,MAAMuC,GAExB,OAAItC,EAAKtH,SAAiBH,KAAK8J,aAAaC,GAErCA,GAETL,KAAI,WAEF,GAAK1J,KAAKuH,gBAAmBvH,KAAK0H,QAAlC,CAEA,IAAMmC,EAAY7J,KAAK2J,aAAa3J,KAAK2H,eACnCF,EAAOzH,KAAKwH,MAAMqC,GAExB7J,KAAK8H,cAAgB9H,KAAK+H,SAASN,EAAMoC,KAE3CJ,KAAI,WAEF,GAAKzJ,KAAKuH,gBAAmBvH,KAAK4H,QAAlC,CAEA,IAAMoC,EAAYhK,KAAK8J,aAAa9J,KAAK2H,eACnCF,EAAOzH,KAAKwH,MAAMwC,GAExBhK,KAAK8H,cAAgB9H,KAAK+H,SAASN,EAAMuC,KAE3C7B,cAAa,SAAErH,EAAaoH,GAC1B,IAAM+B,EAAcjK,KAAKwH,MAAMtF,OACzB8H,EAAYC,EAAc,EAEhC,OAAIA,GAAe,EAAUnJ,EAAMoH,EAE/BpH,IAAQkJ,GAAwB,IAAX9B,IAEN,IAARpH,GAAaoH,IAAW8B,IAG1BlJ,EAAMoH,IAKnBlF,OAAM,SAAEC,GAAC,WACDzC,EAAO,CACX0C,YAAa,WACb0F,MAAO5I,KAAKkE,QACZ6B,WAAY,IAGd,IAAK/F,KAAK0G,UAAW,CACnB,IAAMnG,EAAQP,KAAKyG,OAAS,CAC1ByD,KAAM,WACJ,EAAKlC,SAASC,IAAM,EAAKwB,OAAS,EAAKC,QAEzCS,MAAO,WACL,EAAKnC,SAASC,IAAM,EAAKyB,OAAS,EAAKD,QAEzCW,IAAM,SAAA5G,GACJA,EAAEyF,mBAEJoB,MAAQ,SAAA7G,GACNA,EAAEyF,oBAINzI,EAAKuF,WAAWtD,KAAK,CACnB5C,KAAM,QACNU,UAIJ,OAAO0C,EAAE,MAAOzC,EAAM,CAACR,KAAKwI,oB,urBCpRjB,SAAQ5I,OAAO,CAC5BC,KAAM,eAENK,MAAO,CACLoF,UAAW,CACTzB,KAAMzD,QACNsD,SAAS,IAIbO,SAAU,CACRC,QAAO,WACL,OAAO,EAAP,KACK,EAAQC,QAAQF,SAASC,QAAQE,KAAKpE,OADpC,IAEL,gBAAgB,KAGpBsK,OAAM,WACJ,OAAOtK,KAAKuK,aAIhBjJ,QAAS,CACPyG,SAAQ,SAAEN,EAAyB5E,GACjC,OAAO4E,EAAK+C,IAAM,OAAcrG,QAAQ7C,QAAQyG,SAAS3D,KAAKpE,KAAMyH,EAAM5E,Q,oyDCZjE,aAAA4H,EAAA,MACb,OACA,OACA,QAEA7K,OAAO,CACPC,KAAM,aAENC,QAAO,WACL,MAAO,CACLuF,QAASrF,OAIbiE,SAAU,CACRC,QAAO,WACL,OAAO,EAAP,KACK,OAAeC,QAAQF,SAASC,QAAQE,KAAKpE,OAD3C,IAEL,cAAc,EACd,wBAAyBA,KAAK0K,SAE9B,0BAA2B1K,KAAKuG,YAC7BvG,KAAK2K,gBAKd/J,MAAO,CACL4G,MAAO,aACPM,cAAe,aACfpD,OAAQ,iBAGVpD,QAAS,CACPsJ,WAAU,WACH5K,KAAKiH,UAEVjH,KAAKmB,MAAM,gBAEb0J,WAAU,WACR,IAAM7H,EAAS,OAAemB,QAAQ7C,QAAQuJ,WAAWzG,KAAKpE,MAK9D,OAHAgD,EAAOxC,KAAOwC,EAAOxC,MAAQ,GAC7BwC,EAAOxC,KAAK0C,aAAe,uBAEpBF,GAET8H,cAAa,SAAEhK,EAAYoH,GAEzB,IAAIlI,KAAKsF,UAAT,CAEA,IAOA,EAPMkC,EAAQxH,KAAKwH,MACbuD,EAAUjK,EAAIkK,KACdC,EAAU/C,EAAO8C,KAEnBE,GAAS,EACTC,GAAS,EAAb,IAEmB3D,GAAnB,QAAK,EAAL,qBAA0B,KAAfC,EAAX,QAIE,GAHIA,EAAKnD,KAAO2G,EAASE,GAAS,EACzB1D,EAAKnD,KAAOyG,IAASG,GAAS,GAEnCA,GAAUC,EAAQ,OAKxB,+BACKD,GAAUC,IAAQnL,KAAK8H,mBAAgBhB,MAIhD9D,OAAM,SAAEC,GACN,IAAMD,EAAS,OAAemB,QAAQnB,OAAOoB,KAAKpE,KAAMiD,GAMxD,OAJAD,EAAOxC,KAAM2C,MAAQ,CACnBuC,KAAM,WAGD1C,K,wBCxFI,SAAAyH,EAAA,MAAO,QAAW7K,OAAO,CACtCC,KAAM,gBAENmD,OAAM,SAAEC,GACN,OAAOA,EAAE,MAAOjD,KAAKoL,mBAAmBpL,KAAKqL,MAAO,CAClDnI,YAAa,sB,2tBCSnB,IAAMS,EAAa,OAAA8G,EAAA,MACjB,OACA,OACA,QASa,OAAA9G,EAAW/D,SAAkBA,OAAO,CACjDC,KAAM,SAENkG,WAAY,CACVuF,OAAA,QAGFpL,MAAO,CACLgG,YAAa,CACXrC,KAAM4B,OACN/B,QAAS,IAEX6H,eAAgBnL,QAChBoL,gBAAiB/F,OACjBgG,aAAcrL,QACdsL,SAAUtL,QACVuL,UAAWvL,QACXwL,KAAMxL,QACN0I,OAAQ,CACNjF,KAAM,CAACgI,OAAQpG,QACf/B,aAASoD,GAEXgF,WAAY1L,QACZ2L,aAAc3L,QACd4L,iBAAkB,CAACvG,OAAQoG,QAC3BzF,SAAU,CACRvC,KAAM4B,OACN/B,QAAS,SAEXuI,SAAU7L,QACViG,SAAU,CACRxC,KAAM4B,OACN/B,QAAS,SAEXyG,MAAO/J,QACPmG,WAAY,CAACnG,QAASqF,QACtByG,YAAazG,OACb0G,WAAY,CACVtI,KAAM,CAACgI,OAAQpG,QACf/B,QAAS,GAEXiD,SAAUvG,SAGZI,KAAI,WACF,MAAO,CACL4L,cAAe,EACfC,OAAQ,CACNvD,OAAQ,KACRoB,KAAM,KACNC,MAAO,KACPmC,IAAK,KACLC,MAAO,MAETC,eAAgB,MAIpBvI,SAAU,CACRC,QAAO,WACL,OAAO,EAAP,CACE,2BAA4BlE,KAAKuL,eACjC,mBAAoBvL,KAAK0L,SACzB,qBAAsB1L,KAAK2L,UAC3B,eAAgB3L,KAAK4L,KACrB,yBAA0B5L,KAAK+L,aAC/B,gBAAiB/L,KAAKmK,MACtB,mBAAoBnK,KAAK2G,UACtB3G,KAAK2K,eAGZ8B,WAAU,WACR,OAAOzM,KAAKgI,SAASC,KAAOjI,KAAK2G,UAEnC+F,aAAY,WACV,MAAO,CACL5D,OAAQ,eAAc9I,KAAKqM,OAAOvD,QAClCoB,KAAMlK,KAAKyM,gBAAa3F,EAAY,eAAc9G,KAAKqM,OAAOnC,MAC9DC,MAAOnK,KAAKyM,WAAa,eAAczM,KAAKqM,OAAOlC,YAASrD,EAC5DwF,IAAKtM,KAAK2G,SAAW,eAAc3G,KAAKqM,OAAOC,UAAOxF,EACtD6F,WAAgC,MAApB3M,KAAKqM,OAAOnC,KAAe,KAAO,OAC9CqC,MAAO,eAAcvM,KAAKqM,OAAOE,SAGrCK,cAAa,WACX,OAAI5M,KAAKqL,MAAcrL,KAAKqL,MACnBrL,KAAKsK,SAAWtK,KAAK6M,UAAkB,QACpC,YAIhBjM,MAAO,CACL2K,eAAgB,aAChBG,SAAU,aACVD,aAAc,aACdE,UAAW,aACXC,KAAM,aACNG,aAAc,aACd5B,MAAO,aACP5D,WAAY,aACZI,SAAU,aACV,4BAA6B,WAC7B,6BAA8B,WAC9B,eAAgB,YAGlByB,QAAO,sBACL,GAA8B,qBAAnB0E,eAAgC,CACzC,IAAMC,EAAM,IAAID,gBAAe,WAC7B,EAAKE,cAEPD,EAAIE,QAAQjN,KAAKiF,KACjBjF,KAAKkN,IAAI,kBAAkB,WACzBH,EAAII,gBAIRnN,KAAKoN,WAAU,WACb/E,OAAO/F,WAAW,EAAKsI,WAAY,QAIvCtJ,QAAS,CACPsJ,WAAU,sBACR,OACE5K,KAAK8L,YACJ9L,KAAKqN,MAAM7F,OACXxH,KAAKqN,MAAM7F,MAAM8F,cAAcpL,QAMlClC,KAAKoN,WAAU,WAEb,IAAMG,EAAY,EAAKF,MAAM7F,MAAM8F,cAAc,GAEjD,IAAKC,IAAcA,EAAUtI,IAG3B,OAFA,EAAKoH,OAAOE,MAAQ,OACpB,EAAKF,OAAOnC,KAAO,GAGrB,IAAMsD,EAAKD,EAAUtI,IAErB,EAAKoH,OAAS,CACZvD,OAAS,EAAKnC,SAAqC6G,EAAGC,aAA7B5B,OAAO,EAAKM,YACrCjC,KAAM,EAAKvD,SAAW,EAAI6G,EAAGE,WAC7BvD,MAAO,EAAKxD,SAAW,EAAI6G,EAAGE,WAAaF,EAAGG,YAC9CrB,IAAKkB,EAAGI,UACRrB,MAAO,EAAK5F,SAAWkF,OAAO,EAAKM,YAAcqB,EAAGK,iBAIjD,IAxBL7N,KAAKqM,OAAOE,MAAQ,GACb,IAyBXuB,OAAM,SAAEtG,EAAgB6E,GAAoB,WACpC7L,EAAO,CACXqI,MAAO,CACLC,OAAQ,eAAc9I,KAAK8I,SAE7B5I,MAAO,CACLgG,YAAalG,KAAKkG,YAClBuF,aAAczL,KAAKyL,aACnBsC,KAAM/N,KAAK+N,KACXC,MAAOhO,KAAKgO,MACZ1I,WAAYtF,KAAKiM,SACjBD,iBAAkBhM,KAAKgM,iBACvB5F,SAAUpG,KAAKoG,SACfC,SAAUrG,KAAKqG,SACfE,WAAYvG,KAAKuG,WACjBhG,MAAOP,KAAK8H,eAEdxE,GAAI,CACF,cAAetD,KAAK4K,WACpBqD,OAAS,SAAAnN,GACP,EAAKgH,cAAgBhH,IAGzBoN,IAAK,SAMP,OAHAlO,KAAKmO,aAAanO,KAAK4M,cAAepM,GACtCR,KAAKoL,mBAAmBpL,KAAKwL,gBAAiBhL,GAEvCR,KAAK2I,eAAeyF,EAAU5N,EAAM,CACzCR,KAAKqO,UAAUhC,GACf7E,KAGJ8G,SAAQ,SAAE9G,EAAqBC,GAAa,WAG1C,OAAID,IAICC,EAAKvF,OAEHlC,KAAK2I,eAAe4F,EAAA,KAAY,CACrCrO,MAAO,CACLK,MAAOP,KAAK8H,eAEdxE,GAAI,CACF2K,OAAS,SAAAnN,GACP,EAAKgH,cAAgBhH,KAGxB2G,GAXsB,OAa3B4G,UAAS,SAAEhC,GACT,OAAIrM,KAAK8L,WAAmB,MAEvBO,IACHA,EAASrM,KAAK2I,eAAe6F,EAAa,CACxCtO,MAAO,CAAEmL,MAAOrL,KAAKkM,gBAIlBlM,KAAK2I,eAAe,MAAO,CAChCzF,YAAa,wBACb2F,MAAO7I,KAAK0M,cACX,CAACL,MAENW,SAAQ,WACFhN,KAAKyO,eAETC,aAAa1O,KAAKoM,eAClBpM,KAAKoM,cAAgB/D,OAAO/F,WAAWtC,KAAK4K,WAAY,KAE1D+D,WAAU,WAQR,IAPA,IAAInH,EAAQ,KACR6E,EAAS,KACP5E,EAAO,GACPmH,EAAM,GACNC,EAAO7O,KAAKyD,OAAOC,SAAW,GAC9BxB,EAAS2M,EAAK3M,OAEXW,EAAI,EAAGA,EAAIX,EAAQW,IAAK,CAC/B,IAAMiM,EAAQD,EAAKhM,GAEnB,GAAIiM,EAAMC,iBACR,OAAQD,EAAMC,iBAAiBC,KAAK7K,QAAQtE,MAC1C,IAAK,gBAAiBwM,EAASyC,EAC7B,MACF,IAAK,eAAgBtH,EAAQsH,EAC3B,MACF,IAAK,aAAcrH,EAAKhF,KAAKqM,GAC3B,MAEF,QAASF,EAAInM,KAAKqM,QAGpBF,EAAInM,KAAKqM,GAUb,MAAO,CAAEF,MAAKvC,SAAQ7E,QAAOC,UAIjCzE,OAAM,SAAEC,GACN,MAAqCjD,KAAK2O,aAAlCC,EAAF,EAAEA,IAAKvC,EAAP,EAAOA,OAAQ7E,EAAf,EAAeA,MAAOC,EAAA,EAAAA,KAE5B,OAAOxE,EAAE,MAAO,CACdC,YAAa,SACb0F,MAAO5I,KAAKkE,QACZ6B,WAAY,CAAC,CACXlG,KAAM,SACNoP,UAAW,CAAEC,OAAO,GACpB3O,MAAOP,KAAKgN,YAEb,CACDhN,KAAK8N,OAAOc,EAAKvC,GACjBrM,KAAKsO,SAAS9G,EAAOC","file":"js/chunk-132b2d1e.866684a1.js","sourcesContent":["// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, this.$slots.default)\n },\n})\n","// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Routable from '../../mixins/routable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { ExtractVue } from './../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n// Components\nimport VTabsBar from '../VTabs/VTabsBar'\n\nconst baseMixins = mixins(\n Routable,\n // Must be after routable\n // to overwrite activeClass\n GroupableFactory('tabsBar'),\n Themeable\n)\n\ntype VTabBarInstance = InstanceType\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n tabsBar: VTabBarInstance\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-tab',\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n tabValue: {\n required: false,\n },\n },\n\n data: () => ({\n proxyClass: 'v-tab--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-tab': true,\n ...Routable.options.computed.classes.call(this),\n 'v-tab--disabled': this.disabled,\n ...this.groupClasses,\n }\n },\n value (): any {\n if (this.tabValue != null) return this.tabValue\n\n let to = this.to || this.href\n\n if (to == null) return to\n\n if (this.$router &&\n this.to === Object(this.to)\n ) {\n const resolve = this.$router.resolve(\n this.to,\n this.$route,\n this.append\n )\n\n to = resolve.href\n }\n\n return to.replace('#', '')\n },\n },\n\n methods: {\n click (e: KeyboardEvent | MouseEvent): void {\n // Prevent keyboard actions\n // from children elements\n // within disabled tabs\n if (this.disabled) {\n e.preventDefault()\n return\n }\n\n // If user provides an\n // actual link, do not\n // prevent default\n if (this.href &&\n this.href.indexOf('#') > -1\n ) e.preventDefault()\n\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n toggle () {\n // VItemGroup treats a change event as a click\n if (!this.isActive || (!this.tabsBar.mandatory && !this.to)) {\n this.$emit('change')\n }\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n 'aria-selected': String(this.isActive),\n role: 'tab',\n tabindex: this.disabled ? -1 : 0,\n }\n data.on = {\n ...data.on,\n keydown: (e: KeyboardEvent) => {\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n return h(tag, data, this.$slots.default)\n },\n})\n","// Styles\nimport './VWindow.sass'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue/types/vnode'\nimport { PropType } from 'vue'\nimport { TouchHandlers } from 'vuetify/types'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-window',\n\n directives: { Touch },\n\n provide (): object {\n return {\n windowGroup: this,\n }\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-window-item--active',\n },\n continuous: Boolean,\n mandatory: {\n type: Boolean,\n default: true,\n },\n nextIcon: {\n type: [Boolean, String],\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: Boolean,\n showArrowsOnHover: Boolean,\n touch: Object as PropType,\n touchless: Boolean,\n value: {\n required: false,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n changedByDelimiters: false,\n internalHeight: undefined as undefined | string, // This can be fixed by child class.\n transitionHeight: undefined as undefined | string, // Intermediate height during transition.\n transitionCount: 0, // Number of windows in transition state.\n isBooted: false,\n isReverse: false,\n }\n },\n\n computed: {\n isActive (): boolean {\n return this.transitionCount > 0\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-window--show-arrows-on-hover': this.showArrowsOnHover,\n }\n },\n computedTransition (): string {\n if (!this.isBooted) return ''\n\n const axis = this.vertical ? 'y' : 'x'\n const reverse = this.internalReverse ? !this.isReverse : this.isReverse\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n },\n hasActiveItems (): boolean {\n return Boolean(\n this.items.find(item => !item.disabled)\n )\n },\n hasNext (): boolean {\n return this.continuous || this.internalIndex < this.items.length - 1\n },\n hasPrev (): boolean {\n return this.continuous || this.internalIndex > 0\n },\n internalIndex (): number {\n return this.items.findIndex((item, i) => {\n return this.internalValue === this.getValue(item, i)\n })\n },\n internalReverse (): boolean {\n return this.$vuetify.rtl ? !this.reverse : this.reverse\n },\n },\n\n watch: {\n internalIndex (val, oldVal) {\n this.isReverse = this.updateReverse(val, oldVal)\n },\n },\n\n mounted () {\n window.requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n genDefaultSlot () {\n return this.$slots.default\n },\n genContainer (): VNode {\n const children = [this.genDefaultSlot()]\n\n if (this.showArrows) {\n children.push(this.genControlIcons())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-window__container',\n class: {\n 'v-window__container--is-active': this.isActive,\n },\n style: {\n height: this.internalHeight || this.transitionHeight,\n },\n }, children)\n },\n genIcon (\n direction: 'prev' | 'next',\n icon: string,\n click: () => void\n ) {\n const on = {\n click: (e: Event) => {\n e.stopPropagation()\n this.changedByDelimiters = true\n click()\n },\n }\n const attrs = {\n 'aria-label': this.$vuetify.lang.t(`$vuetify.carousel.${direction}`),\n }\n const children = this.$scopedSlots[direction]?.({\n on,\n attrs,\n }) ?? [this.$createElement(VBtn, {\n props: { icon: true },\n attrs,\n on,\n }, [\n this.$createElement(VIcon, {\n props: { large: true },\n }, icon),\n ])]\n\n return this.$createElement('div', {\n staticClass: `v-window__${direction}`,\n }, children)\n },\n genControlIcons () {\n const icons = []\n\n const prevIcon = this.$vuetify.rtl\n ? this.nextIcon\n : this.prevIcon\n\n /* istanbul ignore else */\n if (\n this.hasPrev &&\n prevIcon &&\n typeof prevIcon === 'string'\n ) {\n const icon = this.genIcon('prev', prevIcon, this.prev)\n icon && icons.push(icon)\n }\n\n const nextIcon = this.$vuetify.rtl\n ? this.prevIcon\n : this.nextIcon\n\n /* istanbul ignore else */\n if (\n this.hasNext &&\n nextIcon &&\n typeof nextIcon === 'string'\n ) {\n const icon = this.genIcon('next', nextIcon, this.next)\n icon && icons.push(icon)\n }\n\n return icons\n },\n getNextIndex (index: number): number {\n const nextIndex = (index + 1) % this.items.length\n const item = this.items[nextIndex]\n\n if (item.disabled) return this.getNextIndex(nextIndex)\n\n return nextIndex\n },\n getPrevIndex (index: number): number {\n const prevIndex = (index + this.items.length - 1) % this.items.length\n const item = this.items[prevIndex]\n\n if (item.disabled) return this.getPrevIndex(prevIndex)\n\n return prevIndex\n },\n next () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasNext) return\n\n const nextIndex = this.getNextIndex(this.internalIndex)\n const item = this.items[nextIndex]\n\n this.internalValue = this.getValue(item, nextIndex)\n },\n prev () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasPrev) return\n\n const lastIndex = this.getPrevIndex(this.internalIndex)\n const item = this.items[lastIndex]\n\n this.internalValue = this.getValue(item, lastIndex)\n },\n updateReverse (val: number, oldVal: number) {\n const itemsLength = this.items.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) return val < oldVal\n\n if (val === lastIndex && oldVal === 0) {\n return true\n } else if (val === 0 && oldVal === lastIndex) {\n return false\n } else {\n return val < oldVal\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-window',\n class: this.classes,\n directives: [] as VNodeDirective[],\n }\n\n if (!this.touchless) {\n const value = this.touch || {\n left: () => {\n this.$vuetify.rtl ? this.prev() : this.next()\n },\n right: () => {\n this.$vuetify.rtl ? this.next() : this.prev()\n },\n end: (e: TouchEvent) => {\n e.stopPropagation()\n },\n start: (e: TouchEvent) => {\n e.stopPropagation()\n },\n }\n\n data.directives.push({\n name: 'touch',\n value,\n })\n }\n\n return h('div', data, [this.genContainer()])\n },\n})\n","// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n// Types & Components\nimport { BaseItemGroup, GroupableInstance } from './../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default VWindow.extend({\n name: 'v-tabs-items',\n\n props: {\n mandatory: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VWindow.options.computed.classes.call(this),\n 'v-tabs-items': true,\n }\n },\n isDark (): boolean {\n return this.rootIsDark\n },\n },\n\n methods: {\n getValue (item: GroupableInstance, i: number) {\n return item.id || BaseItemGroup.options.methods.getValue.call(this, item, i)\n },\n },\n})\n","// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Components\nimport VTab from './VTab'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { Route } from 'vue-router'\nimport { VNode } from 'vue'\n\ntype VTabInstance = InstanceType\n\nexport default mixins(\n BaseSlideGroup,\n SSRBootable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-tabs-bar',\n\n provide () {\n return {\n tabsBar: this,\n }\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.options.computed.classes.call(this),\n 'v-tabs-bar': true,\n 'v-tabs-bar--is-mobile': this.isMobile,\n // TODO: Remove this and move to v-slide-group\n 'v-tabs-bar--show-arrows': this.showArrows,\n ...this.themeClasses,\n }\n },\n },\n\n watch: {\n items: 'callSlider',\n internalValue: 'callSlider',\n $route: 'onRouteChange',\n },\n\n methods: {\n callSlider () {\n if (!this.isBooted) return\n\n this.$emit('call:slider')\n },\n genContent () {\n const render = BaseSlideGroup.options.methods.genContent.call(this)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-tabs-bar__content'\n\n return render\n },\n onRouteChange (val: Route, oldVal: Route) {\n /* istanbul ignore next */\n if (this.mandatory) return\n\n const items = this.items as unknown as VTabInstance[]\n const newPath = val.path\n const oldPath = oldVal.path\n\n let hasNew = false\n let hasOld = false\n\n for (const item of items) {\n if (item.to === oldPath) hasOld = true\n else if (item.to === newPath) hasNew = true\n\n if (hasNew && hasOld) break\n }\n\n // If we have an old item and not a new one\n // it's assumed that the user navigated to\n // a path that is not present in the items\n if (!hasNew && hasOld) this.internalValue = undefined\n },\n },\n\n render (h): VNode {\n const render = BaseSlideGroup.options.render.call(this, h)\n\n render.data!.attrs = {\n role: 'tablist',\n }\n\n return render\n },\n})\n","// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(Colorable).extend({\n name: 'v-tabs-slider',\n\n render (h): VNode {\n return h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-tabs-slider',\n }))\n },\n})\n","// Styles\nimport './VTabs.sass'\n\n// Components\nimport VTabsBar from './VTabsBar'\nimport VTabsItems from './VTabsItems'\nimport VTabsSlider from './VTabsSlider'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\nconst baseMixins = mixins(\n Colorable,\n Proxyable,\n Themeable\n)\n\ninterface options extends ExtractVue {\n $refs: {\n items: InstanceType\n }\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-tabs',\n\n directives: {\n Resize,\n },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n alignWithTitle: Boolean,\n backgroundColor: String,\n centerActive: Boolean,\n centered: Boolean,\n fixedTabs: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n iconsAndText: Boolean,\n mobileBreakpoint: [String, Number],\n nextIcon: {\n type: String,\n default: '$next',\n },\n optional: Boolean,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n right: Boolean,\n showArrows: [Boolean, String],\n sliderColor: String,\n sliderSize: {\n type: [Number, String],\n default: 2,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n resizeTimeout: 0,\n slider: {\n height: null as null | number,\n left: null as null | number,\n right: null as null | number,\n top: null as null | number,\n width: null as null | number,\n },\n transitionTime: 300,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-tabs--align-with-title': this.alignWithTitle,\n 'v-tabs--centered': this.centered,\n 'v-tabs--fixed-tabs': this.fixedTabs,\n 'v-tabs--grow': this.grow,\n 'v-tabs--icons-and-text': this.iconsAndText,\n 'v-tabs--right': this.right,\n 'v-tabs--vertical': this.vertical,\n ...this.themeClasses,\n }\n },\n isReversed (): boolean {\n return this.$vuetify.rtl && this.vertical\n },\n sliderStyles (): object {\n return {\n height: convertToUnit(this.slider.height),\n left: this.isReversed ? undefined : convertToUnit(this.slider.left),\n right: this.isReversed ? convertToUnit(this.slider.right) : undefined,\n top: this.vertical ? convertToUnit(this.slider.top) : undefined,\n transition: this.slider.left != null ? null : 'none',\n width: convertToUnit(this.slider.width),\n }\n },\n computedColor (): string {\n if (this.color) return this.color\n else if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n },\n\n watch: {\n alignWithTitle: 'callSlider',\n centered: 'callSlider',\n centerActive: 'callSlider',\n fixedTabs: 'callSlider',\n grow: 'callSlider',\n iconsAndText: 'callSlider',\n right: 'callSlider',\n showArrows: 'callSlider',\n vertical: 'callSlider',\n '$vuetify.application.left': 'onResize',\n '$vuetify.application.right': 'onResize',\n '$vuetify.rtl': 'onResize',\n },\n\n mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n }\n\n this.$nextTick(() => {\n window.setTimeout(this.callSlider, 30)\n })\n },\n\n methods: {\n callSlider () {\n if (\n this.hideSlider ||\n !this.$refs.items ||\n !this.$refs.items.selectedItems.length\n ) {\n this.slider.width = 0\n return false\n }\n\n this.$nextTick(() => {\n // Give screen time to paint\n const activeTab = this.$refs.items.selectedItems[0]\n /* istanbul ignore if */\n if (!activeTab || !activeTab.$el) {\n this.slider.width = 0\n this.slider.left = 0\n return\n }\n const el = activeTab.$el as HTMLElement\n\n this.slider = {\n height: !this.vertical ? Number(this.sliderSize) : el.scrollHeight,\n left: this.vertical ? 0 : el.offsetLeft,\n right: this.vertical ? 0 : el.offsetLeft + el.offsetWidth,\n top: el.offsetTop,\n width: this.vertical ? Number(this.sliderSize) : el.scrollWidth,\n }\n })\n\n return true\n },\n genBar (items: VNode[], slider: VNode | null) {\n const data = {\n style: {\n height: convertToUnit(this.height),\n },\n props: {\n activeClass: this.activeClass,\n centerActive: this.centerActive,\n dark: this.dark,\n light: this.light,\n mandatory: !this.optional,\n mobileBreakpoint: this.mobileBreakpoint,\n nextIcon: this.nextIcon,\n prevIcon: this.prevIcon,\n showArrows: this.showArrows,\n value: this.internalValue,\n },\n on: {\n 'call:slider': this.callSlider,\n change: (val: any) => {\n this.internalValue = val\n },\n },\n ref: 'items',\n }\n\n this.setTextColor(this.computedColor, data)\n this.setBackgroundColor(this.backgroundColor, data)\n\n return this.$createElement(VTabsBar, data, [\n this.genSlider(slider),\n items,\n ])\n },\n genItems (items: VNode | null, item: VNode[]) {\n // If user provides items\n // opt to use theirs\n if (items) return items\n\n // If no tabs are provided\n // render nothing\n if (!item.length) return null\n\n return this.$createElement(VTabsItems, {\n props: {\n value: this.internalValue,\n },\n on: {\n change: (val: any) => {\n this.internalValue = val\n },\n },\n }, item)\n },\n genSlider (slider: VNode | null) {\n if (this.hideSlider) return null\n\n if (!slider) {\n slider = this.$createElement(VTabsSlider, {\n props: { color: this.sliderColor },\n })\n }\n\n return this.$createElement('div', {\n staticClass: 'v-tabs-slider-wrapper',\n style: this.sliderStyles,\n }, [slider])\n },\n onResize () {\n if (this._isDestroyed) return\n\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.callSlider, 0)\n },\n parseNodes () {\n let items = null\n let slider = null\n const item = []\n const tab = []\n const slot = this.$slots.default || []\n const length = slot.length\n\n for (let i = 0; i < length; i++) {\n const vnode = slot[i]\n\n if (vnode.componentOptions) {\n switch (vnode.componentOptions.Ctor.options.name) {\n case 'v-tabs-slider': slider = vnode\n break\n case 'v-tabs-items': items = vnode\n break\n case 'v-tab-item': item.push(vnode)\n break\n // case 'v-tab' - intentionally omitted\n default: tab.push(vnode)\n }\n } else {\n tab.push(vnode)\n }\n }\n\n /**\n * tab: array of `v-tab`\n * slider: single `v-tabs-slider`\n * items: single `v-tabs-items`\n * item: array of `v-tab-item`\n */\n return { tab, slider, items, item }\n },\n },\n\n render (h): VNode {\n const { tab, slider, items, item } = this.parseNodes()\n\n return h('div', {\n staticClass: 'v-tabs',\n class: this.classes,\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n }, [\n this.genBar(tab, slider),\n this.genItems(items, item),\n ])\n },\n})\n"],"sourceRoot":""}