{"version":3,"sources":["webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/mixins/overlayable/index.ts","webpack:///../../../src/components/VGrid/grid.ts"],"names":["name","props","absolute","bottom","collapse","dense","extended","extensionHeight","default","type","Number","String","flat","floating","prominent","short","src","tag","data","isExtended","computed","computedHeight","height","this","parseInt","isCollapsed","isNaN","computedContentHeight","isProminent","$vuetify","breakpoint","classes","styles","created","breakingProps","original","replacement","methods","genBackground","image","$scopedSlots","img","$createElement","staticClass","genContent","style","genExtension","render","children","setBackgroundColor","class","on","$listeners","h","functional","id","fluid","attrs","Object","key","value","Array","mixins","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","$slots","hasIntersect","window","directives","intersect","alt","contain","eager","gradient","lazySrc","options","root","rootMargin","threshold","undefined","position","sizes","srcset","transition","Boolean","currentSrc","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","mode","watch","loadImage","init","mounted","lazyImg","onLoad","endsWith","startsWith","naturalHeight","onError","getSrc","err","console","pollForSize","timeout","poll","setTimeout","content","width","__genPlaceholder","placeholder","appear","node","mergeData","role","modifiers","once","handler","color","dark","opacity","zIndex","__scrim","computedOpacity","themeClasses","isActive","hideOverlay","overlayColor","overlayOpacity","animationFrame","overlay","genOverlay","beforeDestroy","createOverlay","propsData","parent","$el","document","requestAnimationFrame","removeOverlay","showScroll","cancelAnimationFrame","scrollListener","e","includes","up","down","checkPath","hasScrollbar","el","Node","shouldScroll","dir","delta","alreadyAtStart","alreadyAtEnd","scrollingUp","scrollingDown","isInside","path","dialog","$refs","selected","index","hideScroll","passive"],"mappings":"u4DAiBe,qBAAc,CAC3BA,KAD2B,YAG3BC,MAAO,CACLC,SADK,QAELC,OAFK,QAGLC,SAHK,QAILC,MAJK,QAKLC,SALK,QAMLC,gBAAiB,CACfC,QADe,GAEfC,KAAM,CAACC,OAAQC,SAEjBC,KAVK,QAWLC,SAXK,QAYLC,UAZK,QAaLC,MAbK,QAcLC,IAAK,CACHP,KAAM,CAACE,OADJ,QAEHH,QAAS,IAEXS,IAAK,CACHR,KADG,OAEHD,QAAS,WAIbU,KAAM,iBAAO,CACXC,YAAY,IAGdC,SAAU,CACRC,eADQ,WAEN,IAAMC,EAASC,KAAf,sBAEA,IAAKA,KAAL,WAAsB,OAAOD,EAE7B,IAAMf,EAAkBiB,SAASD,KAAjC,iBAEA,OAAOA,KAAKE,YAAL,EAEHH,GAAWI,MAAD,GAFd,EAEc,IAEhBC,sBAZQ,WAaN,OAAIJ,KAAJ,OAAwBC,SAASD,KAAhB,QACbA,KAAKK,aAAeL,KAAxB,MAA2C,GACvCA,KAAKK,aAAeL,KAAxB,MAA2C,IACvCA,KAAJ,YAA6B,IACzBA,KAAJ,MAAuB,GACnBA,KAAKR,OAASQ,KAAKM,SAASC,WAAhC,UAA6D,GAC7D,IAEFC,QArBQ,WAsBN,cACK,qCADE,OAAP,IAEE,aAFK,EAGL,sBAAuBR,KAHlB,SAIL,oBAAqBA,KAJhB,OAKL,sBAAuBA,KALlB,SAML,uBAAwBA,KANnB,YAOL,mBAAoBA,KAPf,MAQL,sBAAuBA,KARlB,WASL,kBAAmBA,KATd,KAUL,sBAAuBA,KAVlB,SAWL,uBAAwBA,KAAKK,eAGjCH,YApCQ,WAqCN,OAAOF,KAAP,UAEFK,YAvCQ,WAwCN,OAAOL,KAAP,WAEFS,OA1CQ,WA2CN,cACKT,KADE,kBAAP,IAEED,OAAQ,eAAcC,KAAD,oBAK3BU,QAjF2B,WAiFpB,WACCC,EAAgB,CACpB,CAAC,MADmB,mBAEpB,CAAC,gBAFmB,8BAGpB,CAAC,eAHmB,4BAIpB,CAAC,gBAJmB,6BAKpB,CAAC,kBALmB,+BAMpB,CAAC,oBANmB,iCAOpB,CAAC,gBAPmB,6BAQpB,CAAC,mBARmB,gCASpB,CAAC,OATH,qBAaAA,EAAA,SAAsB,YAA4B,aAA3B,EAA2B,KAA5B,EAA4B,KAC5C,wBAAJ,IAA0C,eAASC,EAAUC,EAAnB,OAI9CC,QAAS,CACPC,cADO,WAEL,IAAMrC,EAAQ,CACZqB,OAAQ,eAAcC,KADV,gBAEZP,IAAKO,KAAKP,KAGNuB,EAAQhB,KAAKiB,aAAaC,IAC5BlB,KAAKiB,aAAaC,IAAI,CAAExC,UACxBsB,KAAKmB,eAAe,EAApB,KAA0B,CAAEzC,UAEhC,OAAOsB,KAAKmB,eAAe,MAAO,CAChCC,YAAa,oBACZ,CAFH,KAIFC,WAfO,WAgBL,OAAOrB,KAAKmB,eAAe,MAAO,CAChCC,YADgC,qBAEhCE,MAAO,CACLvB,OAAQ,eAAcC,KAAD,yBAEtB,eALH,QAOFuB,aAvBO,WAwBL,OAAOvB,KAAKmB,eAAe,MAAO,CAChCC,YADgC,uBAEhCE,MAAO,CACLvB,OAAQ,eAAcC,KAAD,mBAEtB,eAAQA,KALX,gBASJwB,OArI2B,SAqIrB,GACJxB,KAAA,WAAkBA,KAAKjB,YAAciB,KAAKiB,aAA1C,UAEA,IAAMQ,EAAW,CAACzB,KAAlB,cACML,EAAOK,KAAK0B,mBAAmB1B,KAAxB,MAAoC,CAC/C2B,MAAO3B,KADwC,QAE/CsB,MAAOtB,KAFwC,OAG/C4B,GAAI5B,KAAK6B,aAMX,OAHI7B,KAAJ,YAAqByB,EAAA,KAAczB,KAAd,iBACjBA,KAAKP,KAAOO,KAAKiB,aAArB,MAAuCQ,EAAA,QAAiBzB,KAAjB,iBAEhC8B,EAAE9B,KAAD,MAAR,O,2DCnKJ,gDAQe,0CAAyB,CACtCvB,KADsC,cAEtCsD,YAFsC,EAGtCrD,MAAO,CACLsD,GADK,OAELtC,IAAK,CACHR,KADG,OAEHD,QAAS,OAEXgD,MAAO,CACL/C,KADK,QAELD,SAAS,IAGbuC,OAdsC,SAchC,EAdgC,GAcF,IAClC,EADS,EAAyB,EAAzB,QAAyB,EAAzB,KAAeC,EAAU,EAAVA,SAEhBS,EAAR,EAAQA,MA2BR,OA1BA,IAEEvC,EAAA,SACAa,EAAU2B,OAAA,gBAA0B,SAAAC,GAGlC,YAAIA,EAAgB,OAAO,EAE3B,IAAMC,EAAQH,EAL0B,GASxC,OAAIE,EAAA,WAAJ,UACEzC,EAAA,YACA,GAGK0C,GAAP,kBAAuBA,MAIvB3D,EAAJ,KACEiB,EAAA,SAAgBA,EAAA,UAAhB,GACAA,EAAA,YAAmBjB,EAAnB,IAGKoD,EACLpD,EADM,IAEN,eAAUiB,EAAM,CACdyB,YADc,YAEdO,MAAOW,MAAW,CAChB,mBAAoB5D,EAAMuD,QADrB,OAEGzB,GAFH,MAJX,O,gGCvCW,SAAA+B,EAAA,qBAA0B,CACvC9D,KADuC,eAGvCC,MAAO,CACL8D,YAAa,CAACpD,OADT,QAELqD,aAAcrD,QAGhBS,SAAU,CACR6C,oBADQ,WAEN,OAAOvD,OAAOa,KAAd,cAEF2C,YAJQ,WAKN,OAAO3C,KAAK0C,oBACR,CAAEE,cAAgB,EAAI5C,KAAL,wBAAuC,UAD5D,GAIF6C,cATQ,WAUN,OAAK7C,KAAL,YAEOA,KAAKmB,eAAe,MAAO,CAChCG,MAAOtB,KADyB,YAEhCoB,YAAa,wBAJe,KASlCN,QAAS,CACPO,WADO,WAEL,OAAOrB,KAAKmB,eAAe,MAAO,CAChCC,YADgC,wBAEhCO,MAAO3B,KAAKyC,cACXzC,KAAK8C,OAHR,WAOJtB,OApCuC,SAoCjC,GACJ,OAAOM,EAAE,MAAO,CACdV,YADc,eAEdE,MAAOtB,KAFO,iBAGd4B,GAAI5B,KAAK6B,YACR,CACD7B,KADC,cAEDA,KANF,kBC9CJ,I,0QC0BA,IAAM+C,EAAiC,qBAAXC,QAA0B,yBAAtD,OAGe,cAAAT,EAAA,MAAO,EAAP,eAGN,CACP9D,KADO,QAGPwE,WAAY,CAAEC,YAAA,MAEdxE,MAAO,CACLyE,IADK,OAELC,QAFK,QAGLC,MAHK,QAILC,SAJK,OAKLC,QALK,OAMLC,QAAS,CACPtE,KADO,OAIPD,QAAS,iBAAO,CACdwE,UADc,EAEdC,gBAFc,EAGdC,eAAWC,KAGfC,SAAU,CACR3E,KADQ,OAERD,QAAS,iBAEX6E,MApBK,OAqBLrE,IAAK,CACHP,KAAM,CAACE,OADJ,QAEHH,QAAS,IAEX8E,OAzBK,OA0BLC,WAAY,CACV9E,KAAM,CAAC+E,QADG,QAEVhF,QAAS,oBAIbU,KArCO,WAsCL,MAAO,CACLuE,WADK,GAELlD,MAFK,KAGLmD,WAHK,EAILC,2BAJK,EAKLC,kBALK,EAMLC,UAAU,IAIdzE,SAAU,CACR6C,oBADQ,WAEN,OAAOvD,OAAOa,KAAKuE,cAAcC,QAAUxE,KAA3C,wBAEFuE,cAJQ,WAKN,OAAOvE,KAAKP,KAAL,WAAY,EAAOO,KAAP,KACf,CACAP,IAAKO,KAAKP,IADV,IAEAsE,OAAQ/D,KAAK+D,QAAU/D,KAAKP,IAF5B,OAGA8D,QAASvD,KAAKuD,SAAWvD,KAAKP,IAH9B,QAIA+E,OAAQrF,OAAOa,KAAKwC,aAAexC,KAAKP,IAA1B,SACZ,CACFA,IAAKO,KADH,IAEF+D,OAAQ/D,KAFN,OAGFuD,QAASvD,KAHP,QAIFwE,OAAQrF,OAAOa,KAAKwC,aAAN,KAGpBiC,cAlBQ,WAmBN,KAAMzE,KAAKuE,cAAc9E,KAAOO,KAAKuE,cAA/B,SAAwDvE,KAA9D,UAA8E,MAAO,GAErF,IAAM0E,EAAN,GACMjF,EAAMO,KAAKmE,UAAYnE,KAAKuE,cAAtB,QAA8CvE,KAA1D,WAEIA,KAAJ,UAAmB0E,EAAA,+BAAwC1E,KAAxC,eACnB,GAAS0E,EAAA,6BAET,IAAM1D,EAAQhB,KAAKmB,eAAe,MAAO,CACvCC,YADuC,iBAEvCO,MAAO,CACL,0BAA2B3B,KADtB,UAEL,0BAA2BA,KAFtB,QAGL,yBAA0BA,KAAKoD,SAEjC9B,MAAO,CACLoD,gBAAiBA,EAAA,KADZ,MAELC,mBAAoB3E,KAAK6D,UAE3BzB,KAAMpC,KAAKmE,YAIb,OAAKnE,KAAL,WAEOA,KAAKmB,eAAe,aAAc,CACvCe,MAAO,CACLzD,KAAMuB,KADD,WAEL4E,KAAM,WAEP,CALH,IAF6B5D,IAWjC6D,MAAO,CACLpF,IADK,WAGEO,KAAL,UACKA,KAAK8E,YADW9E,KAAK+E,UAAKnB,OAAWA,GAA1C,IAGF,4BAA6B,UAG/BoB,QA9GO,WA+GLhF,KAAA,QAGFc,QAAS,CACPiE,KADO,SACH,OAQF,IACEhC,GAAA,GAEC/C,KAHH,OAMA,GAAIA,KAAKuE,cAAT,QAAgC,CAC9B,IAAMU,EAAU,IAAhB,MACAA,EAAA,IAAcjF,KAAKuE,cAAnB,QACAvE,KAAA,oBAGEA,KAAKuE,cAAT,KAA4BvE,KAAK8E,cAEnCI,OAvBO,WAwBLlF,KAAA,SACAA,KAAA,aACAA,KAAA,aAAmBA,KAAnB,KAGEA,KAAKgB,QACJhB,KAAKuE,cAAc9E,IAAI0F,SAAS,SAAWnF,KAAKuE,cAAc9E,IAAI2F,WAFrE,yBAIMpF,KAAKgB,MAAMqE,eAAiBrF,KAAKgB,MAArC,cACEhB,KAAA,aAAoBA,KAAKgB,MAAzB,aACAhB,KAAA,sBAA6BA,KAAKgB,MAAMqD,aAAerE,KAAKgB,MAA5D,eAEAhB,KAAA,0BAINsF,QAxCO,WAyCLtF,KAAA,YACAA,KAAA,cAAoBA,KAApB,MAEFuF,OA5CO,WA8CDvF,KAAJ,QAAgBA,KAAKkE,WAAalE,KAAKgB,MAAMkD,YAAclE,KAAKgB,MAAhD,MAElB8D,UAhDO,WAgDE,WACD9D,EAAQ,IAAd,MACAhB,KAAA,QAEAgB,EAAA,OAAe,WAETA,EAAJ,OACEA,EAAA,gBAAsB,SAAAwE,GACpB,OAAAC,EAAA,MACE,qEACQ,gBADR,MAECD,EAAA,oCAAmCA,EAAnC,SAHQ,IAAX,MADF,KAOQ,EAPR,QASA,YAGJxE,EAAA,QAAgBhB,KAAhB,QAEAA,KAAA,YACAA,KAAA,QAAegB,EAAA,MAAchB,KAA7B,OACAA,KAAA,uBAA8BgB,EAAA,OAAehB,KAAKuE,cAAlD,QACAvD,EAAA,IAAYhB,KAAKuE,cAAjB,IACAvE,KAAA,kBAAwBA,KAAKuE,cAA7B,KAEAvE,KAAA,aAAoBA,KAAK0F,YAAzB,GACA1F,KAAA,UAEF0F,YA9EO,SA8EI,GAAqD,WAA5BC,EAA4B,uDAArD,IACHC,EAAO,SAAPA,IACJ,IAAM,EAAN,EAAM,cAAiBvB,EAAvB,EAAuBA,aAEnBgB,GAAJ,GACE,iBACA,wBAA6BhB,EAA7B,GACUnD,EAAD,WAAiB,EAAjB,WAAoC,EAApC,UAAJ,MAAyDyE,GAC9DE,WAAWD,EAAX,IAIJA,KAEFvE,WA5FO,WA6FL,IAAMyE,EAAiB,kCAAvB,MAOA,OANI9F,KAAJ,cACEA,KAAA,GAAQ8F,EAAR,WAA8B,CAC5BxE,MAAO,CAAEyE,MAAO,GAAF,OAAK/F,KAAKqE,aAAV,SAIlB,GAEF2B,iBAtGO,WAuGL,GAAIhG,KAAK8C,OAAT,YAA6B,CAC3B,IAAMmD,EAAcjG,KAAKmE,UACrB,CAACnE,KAAKmB,eAAe,MAAO,CAC5BC,YAAa,wBACZpB,KAAK8C,OAHU,cAApB,GAMA,OAAK9C,KAAL,WAEOA,KAAKmB,eAAe,aAAc,CACvCzC,MAAO,CACLwH,QADK,EAELzH,KAAMuB,KAAKgE,aAHf,GAF6BiC,EAAP,MAY5BzE,OA5OO,SA4OD,GACJ,IAAM2E,EAAO,2BAAb,GAEMxG,EAAO,OAAAyG,EAAA,MAAUD,EAAD,KAAa,CACjC/E,YADiC,UAEjCc,MAAO,CACL,aAAclC,KADT,IAELqG,KAAMrG,KAAKmD,IAAM,WAAQS,GAE3BjC,MAAO3B,KAN0B,aASjCiD,WAAYF,EACR,CAAC,CACDtE,KADC,YAED6H,UAAW,CAAEC,MAAM,GACnBlE,MAAO,CACLmE,QAASxG,KADJ,KAELwD,QAASxD,KAAKwD,gBAGhBI,IAUN,OAPAuC,EAAA,SAAgB,CACdnG,KADc,cAEdA,KAFc,cAGdA,KAHc,mBAIdA,KAJF,cAOO8B,EAAEqE,EAAD,MAAiBA,EAAzB,c,uxBC/RW,aAAA5D,EAAA,MAAO,EAAD,YAAN,eAIN,CACP9D,KADO,YAGPC,MAAO,CACLC,SADK,QAEL8H,MAAO,CACLvH,KADK,OAELD,QAAS,WAEXyH,KAAM,CACJxH,KADI,QAEJD,SAAS,GAEX0H,QAAS,CACPzH,KAAM,CAACC,OADA,QAEPF,QAAS,KAEXoD,MAAO,CACLpD,SAAS,GAEX2H,OAAQ,CACN1H,KAAM,CAACC,OADD,QAENF,QAAS,IAIbY,SAAU,CACRgH,QADQ,WAEN,IAAMlH,EAAOK,KAAK0B,mBAAmB1B,KAAxB,MAAoC,CAC/CoB,YAD+C,mBAE/CE,MAAO,CACLqF,QAAS3G,KAAK8G,mBAIlB,OAAO9G,KAAKmB,eAAe,MAA3B,IAEFX,QAXQ,WAYN,UACE,sBAAuBR,KADlB,SAEL,oBAAqBA,KAFhB,UAGFA,KAAK+G,eAGZD,gBAlBQ,WAmBN,OAAO3H,OAAOa,KAAKgH,SAAWhH,KAAhB,QAAd,IAEFS,OArBQ,WAsBN,MAAO,CACLmG,OAAQ5G,KAAK4G,UAKnB9F,QAAS,CACPO,WADO,WAEL,OAAOrB,KAAKmB,eAAe,MAAO,CAChCC,YAAa,sBACZpB,KAAK8C,OAFR,WAMJtB,OA9DO,SA8DD,GACJ,IAAMC,EAAW,CAACzB,KAAlB,SAIA,OAFIA,KAAJ,UAAmByB,EAAA,KAAczB,KAAd,cAEZ8B,EAAE,MAAO,CACdV,YADc,YAEdQ,GAAI5B,KAFU,WAGd2B,MAAO3B,KAHO,QAIdsB,MAAOtB,KAAKS,QAJd,MClFJ,I,wBC4Be,oCAA4D,CACzEhC,KADyE,cAGzEC,MAAO,CACLuI,YADK,QAELC,aAFK,OAGLC,eAAgB,CAAChI,OAAQC,SAG3BO,KATyE,WAUvE,MAAO,CACLyH,eADK,EAELC,QAAS,OAIbxC,MAAO,CACLoC,YADK,SACM,GACJjH,KAAL,WAEA,EAAWA,KAAX,gBACKA,KAAKsH,gBAIdC,cAzByE,WA0BvEvH,KAAA,iBAGFc,QAAS,CACP0G,cADO,WAEL,IAAMH,EAAU,IAAI,EAAS,CAC3BI,UAAW,CACT9I,SAAUqB,KADD,SAETqC,OAFS,EAGToE,MAAOzG,KAHE,aAIT2G,QAAS3G,KAAKmH,kBAIlBE,EAAA,SAEA,IAAMK,EAAS1H,KAAKrB,SAChBqB,KAAK2H,IADM,WAEXC,SAAA,cAFJ,cAIAF,GAAUA,EAAA,aAAoBL,EAApB,IAAiCK,EAA3C,YAEA1H,KAAA,WAEFsH,WArBO,WAqBG,WAGR,GAFAtH,KAAA,cAEIA,KAAJ,YAgBA,OAdKA,KAAL,SAAmBA,KAAKwH,gBAExBxH,KAAA,eAAsB6H,uBAAsB,WACrC,EAAL,eAEA,IAAI,eACF,iBAAsBzI,OAAO,eAA7B,GACS,EAAJ,MACL,iBAAsB,eAAU,EAAhC,MAGF,wBAGF,GAGF0I,cA3CO,WA2CyB,WAAjBC,IAAiB,yDAC1B/H,KAAJ,UACE,eAAqBA,KAAKqH,QAAN,qBAAoC,WAEnD,EAAD,SACC,UADD,KAEC,cAFD,aAGA,UAHA,QAIA,EALF,WAQA,qCAAwC,UAAxC,KACA,qBACA,mBAMFW,qBAAqBhI,KAArB,gBAEAA,KAAA,kBAGF+H,GAAc/H,KAAd+H,cAEFE,eArEO,SAqEO,GACZ,eAAIC,EAAA,KAAsB,CACxB,GACE,CAAC,QAAS,WAAY,UAAUC,SAAUD,EAAA,OAA1C,UAECA,EAAA,OAHH,kBAIE,OAEF,IAAME,EAAK,CAAC,OAAD,GAAc,OAAzB,QACMC,EAAO,CAAC,OAAD,KAAgB,OAA7B,UAEA,GAAID,EAAA,SAAYF,EAAhB,SACGA,EAAA,cACI,KAAIG,EAAA,SAAcH,EAAlB,SAGL,OAFCA,EAAA,WAMDA,EAAA,SAAalI,KAAb,SACD,YAAAkI,EAAA,MAAwBA,EAAA,SAAaN,SADpC,MAEF5H,KAAKsI,UAFP,KAEqBJ,EAAA,kBAEvBK,aA7FO,SA6FK,GACV,IAAKC,GAAMA,EAAA,WAAgBC,KAA3B,aAA8C,OAAO,EAErD,IAAMnH,EAAQ0B,OAAA,iBAAd,GACA,OAAS,CAAC,OAAQ,UAAUmF,SAAS7G,EAA5B,YAAD,WAAkDkH,EAAA,UAA4BA,EAAA,aAAkBA,EAAjG,cACL,CAAC,OAAQ,UAAUL,SAAS7G,EAA7B,YAAmDkH,EAAA,YAAiBA,EADrE,aAGFE,aApGO,SAoGK,KACV,GAAIF,EAAA,aAAJ,YAAiC,OAAO,EAExC,IAGA,EACA,EAJMG,EAAMT,EAAA,UAAcA,EAAd,WAAZ,IACMU,EAAQ,MAAAD,EAAcT,EAAd,OAAyBA,EAAA,QAAYA,EAAnD,OAIA,MAAIS,GACFE,EAAA,IAAiBL,EAAA,UACjBM,EAAeN,EAAA,UAAeA,EAAf,eAAmCA,EAAlD,eAEAK,EAAA,IAAiBL,EAAA,WACjBM,EAAeN,EAAA,WAAgBA,EAAhB,cAAmCA,EAAlD,aAGF,IAAMO,EAAcH,EAApB,EACMI,EAAgBJ,EAAtB,EAEA,QAAKC,IAAL,OACKC,IAAL,OACKD,IAAL,IACS7I,KAAK0I,aAAaF,EAAlB,WAAP,KAKJS,SA/HO,SA+HC,KACN,OAAIT,IAAJ,GAEW,OAAAA,GAAeA,IAAOZ,SAA1B,MAGE5H,KAAKiJ,SAAST,EAAd,WAAP,IAGJF,UAxIO,SAwIE,GACP,IAAMY,EAAO,eAAb,GAEA,GAAI,YAAAhB,EAAA,MAAwBgB,EAAA,KAAYtB,SAAxC,KAAuD,CACrD,IAAMuB,EAASnJ,KAAKoJ,MADiC,OAG/CC,EAAWrG,OAAA,eAAjB,WACA,QAAImG,GAAUnJ,KAAKuI,aAAfY,IAAuCnJ,KAAKiJ,SAASI,EAAzD,MACUrJ,KAAK0I,aAAaS,EAA1B,GAKJ,IAAK,IAAIG,EAAT,EAAoBA,EAAQJ,EAA5B,OAAyCI,IAAS,CAChD,IAAMd,EAAKU,EAAX,GAEA,GAAIV,IAAJ,SAAqB,OAAO,EAC5B,GAAIA,IAAOZ,SAAX,gBAAqC,OAAO,EAC5C,GAAIY,IAAOxI,KAAKoJ,MAAhB,QAA+B,OAAO,EAEtC,GAAIpJ,KAAKuI,aAAT,GAAsC,OAAQvI,KAAK0I,aAAaF,EAA1B,GAGxC,UAEFe,WAjKO,WAkKDvJ,KAAKM,SAASC,WAAlB,UACEqH,SAAA,oDAEA,eAAwB5E,OAAQ,QAAShD,KAAlB,eAA8D,CAAEwJ,SAAS,IAChGxG,OAAA,2BAAmChD,KAAnC,kBAGJ+H,WAzKO,WA0KLH,SAAA,sDACA5E,OAAA,4BAAoChD,KAApC,gBACAgD,OAAA,8BAAsChD,KAAtC,qB,kCCzON,kDAGc,cAEZ,OAAO,oBAAW,CAChBvB,KAAM,KAAF,OADY,GAGhBsD,YAHgB,EAKhBrD,MAAO,CACLsD,GADK,OAELtC,IAAK,CACHR,KADG,OAEHD,QAAS,QAIbuC,OAbgB,SAaV,EAbU,GAaoB,IAAzB,EAAyB,EAAzB,QAAyB,EAAzB,KAAeC,EAAU,EAAVA,SACxB9B,EAAA,YAAoB,UAAGlB,EAAH,YAAWkB,EAAA,aAAZ,IAAnB,OAEA,IAAQuC,EAAR,EAAQA,MACR,KAAW,CAETvC,EAAA,SACA,IAAMa,EAAU2B,OAAA,gBAA0B,SAAAC,GAGxC,YAAIA,EAAgB,OAAO,EAE3B,IAAMC,EAAQH,EALgC,GAS9C,OAAIE,EAAA,WAAJ,UACEzC,EAAA,YACA,GAGK0C,GAAP,kBAAuBA,KAGrB7B,EAAJ,SAAoBb,EAAA,wBAAwBa,EAAA,KAAxB,OAQtB,OALI9B,EAAJ,KACEiB,EAAA,SAAgBA,EAAA,UAAhB,GACAA,EAAA,YAAmBjB,EAAnB,IAGKoD,EAAEpD,EAAD,MAAR","file":"js/chunk-2df56204.fea4de2b.js","sourcesContent":["// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n name: 'v-toolbar',\n\n props: {\n absolute: Boolean,\n bottom: Boolean,\n collapse: Boolean,\n dense: Boolean,\n extended: Boolean,\n extensionHeight: {\n default: 48,\n type: [Number, String],\n },\n flat: Boolean,\n floating: Boolean,\n prominent: Boolean,\n short: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n tag: {\n type: String,\n default: 'header',\n },\n },\n\n data: () => ({\n isExtended: false,\n }),\n\n computed: {\n computedHeight (): number {\n const height = this.computedContentHeight\n\n if (!this.isExtended) return height\n\n const extensionHeight = parseInt(this.extensionHeight)\n\n return this.isCollapsed\n ? height\n : height + (!isNaN(extensionHeight) ? extensionHeight : 0)\n },\n computedContentHeight (): number {\n if (this.height) return parseInt(this.height)\n if (this.isProminent && this.dense) return 96\n if (this.isProminent && this.short) return 112\n if (this.isProminent) return 128\n if (this.dense) return 48\n if (this.short || this.$vuetify.breakpoint.smAndDown) return 56\n return 64\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-toolbar': true,\n 'v-toolbar--absolute': this.absolute,\n 'v-toolbar--bottom': this.bottom,\n 'v-toolbar--collapse': this.collapse,\n 'v-toolbar--collapsed': this.isCollapsed,\n 'v-toolbar--dense': this.dense,\n 'v-toolbar--extended': this.isExtended,\n 'v-toolbar--flat': this.flat,\n 'v-toolbar--floating': this.floating,\n 'v-toolbar--prominent': this.isProminent,\n }\n },\n isCollapsed (): boolean {\n return this.collapse\n },\n isProminent (): boolean {\n return this.prominent\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n height: convertToUnit(this.computedHeight),\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['app', ''],\n ['manual-scroll', ''],\n ['clipped-left', ''],\n ['clipped-right', ''],\n ['inverted-scroll', ''],\n ['scroll-off-screen', ''],\n ['scroll-target', ''],\n ['scroll-threshold', ''],\n ['card', ''],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n genBackground () {\n const props = {\n height: convertToUnit(this.computedHeight),\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img({ props })\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-toolbar__image',\n }, [image])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__content',\n style: {\n height: convertToUnit(this.computedContentHeight),\n },\n }, getSlot(this))\n },\n genExtension () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__extension',\n style: {\n height: convertToUnit(this.extensionHeight),\n },\n }, getSlot(this, 'extension'))\n },\n },\n\n render (h): VNode {\n this.isExtended = this.extended || !!this.$scopedSlots.extension\n\n const children = [this.genContent()]\n const data = this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n })\n\n if (this.isExtended) children.push(this.genExtension())\n if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground())\n\n return h(this.tag, data, children)\n },\n})\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Themeable,\n Toggleable\n).extend({\n name: 'v-overlay',\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: '#212121',\n },\n dark: {\n type: Boolean,\n default: true,\n },\n opacity: {\n type: [Number, String],\n default: 0.46,\n },\n value: {\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 5,\n },\n },\n\n computed: {\n __scrim (): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-overlay__scrim',\n style: {\n opacity: this.computedOpacity,\n },\n })\n\n return this.$createElement('div', data)\n },\n classes (): object {\n return {\n 'v-overlay--absolute': this.absolute,\n 'v-overlay--active': this.isActive,\n ...this.themeClasses,\n }\n },\n computedOpacity (): number {\n return Number(this.isActive ? this.opacity : 0)\n },\n styles (): object {\n return {\n zIndex: this.zIndex,\n }\n },\n },\n\n methods: {\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-overlay__content',\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n const children = [this.__scrim]\n\n if (this.isActive) children.push(this.genContent())\n\n return h('div', {\n staticClass: 'v-overlay',\n on: this.$listeners,\n class: this.classes,\n style: this.styles,\n }, children)\n },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\n} from '../../util/helpers'\n\n// Types\nimport Vue from 'vue'\n\ninterface Toggleable extends Vue {\n isActive?: boolean\n}\n\ninterface Stackable extends Vue {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n const overlay = new VOverlay({\n propsData: {\n absolute: this.absolute,\n value: false,\n color: this.overlayColor,\n opacity: this.overlayOpacity,\n },\n })\n\n overlay.$mount()\n\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]')\n\n parent && parent.insertBefore(overlay.$el, parent.firstChild)\n\n this.overlay = overlay\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlay.$destroy()\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent & KeyboardEvent) {\n if (e.type === 'keydown') {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ((['auto', 'scroll'].includes(style.overflowY!) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight) ||\n ((['auto', 'scroll'].includes(style.overflowX!)) && el.scrollWidth > el.clientWidth)\n },\n shouldScroll (el: Element, e: WheelEvent): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const dir = e.shiftKey || e.deltaX ? 'x' : 'y'\n const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY\n\n let alreadyAtStart: boolean\n let alreadyAtEnd: boolean\n if (dir === 'y') {\n alreadyAtStart = el.scrollTop === 0\n alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight\n } else {\n alreadyAtStart = el.scrollLeft === 0\n alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth\n }\n\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtStart && scrollingUp) return true\n if (!alreadyAtEnd && scrollingDown) return true\n if ((alreadyAtStart || alreadyAtEnd)) {\n return this.shouldScroll(el.parentNode as Element, e)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = composedPath(e)\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, e)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, e)\n }\n\n return true\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener as EventHandlerNonNull, { passive: false })\n window.addEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener as EventHandlerNonNull)\n window.removeEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n },\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n"],"sourceRoot":""}