{"version":3,"sources":["webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/mixins/overlayable/index.ts","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///../../../src/components/VToolbar/index.ts","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/VGrid/grid.ts"],"names":["mixins","Colorable","Themeable","Toggleable","extend","name","props","absolute","Boolean","color","type","String","default","dark","opacity","Number","value","zIndex","computed","__scrim","data","this","setBackgroundColor","staticClass","style","computedOpacity","$createElement","classes","_objectSpread","isActive","themeClasses","styles","methods","genContent","getSlot","render","h","children","push","on","$listeners","class","VOverlay","Vue","hideOverlay","overlayColor","overlayOpacity","animationFrame","overlay","watch","removeOverlay","genOverlay","beforeDestroy","createOverlay","propsData","$mount","parent","$el","parentNode","document","querySelector","insertBefore","firstChild","_this","hideScroll","requestAnimationFrame","undefined","activeZIndex","getZIndex","_this2","showScroll","arguments","length","addOnceEventListener","removeChild","$destroy","cancelAnimationFrame","scrollListener","e","includes","target","tagName","isContentEditable","up","keyCodes","pageup","down","pagedown","keyCode","deltaY","body","checkPath","preventDefault","hasScrollbar","el","nodeType","Node","ELEMENT_NODE","window","getComputedStyle","overflowY","scrollHeight","clientHeight","overflowX","scrollWidth","clientWidth","shouldScroll","hasAttribute","alreadyAtStart","alreadyAtEnd","dir","shiftKey","deltaX","delta","scrollTop","scrollLeft","scrollingUp","scrollingDown","isInside","path","composedPath","dialog","$refs","selected","getSelection","anchorNode","index","documentElement","content","$vuetify","breakpoint","smAndDown","classList","add","addPassiveEventListener","passive","addEventListener","remove","removeEventListener","baseMixins","Dependent","Detachable","Overlayable","Returnable","Stackable","Activatable","directives","ClickOutside","disabled","fullscreen","light","maxWidth","noClickAnimation","origin","persistent","retainFocus","scrollable","transition","width","activatedBy","animate","animateTimeout","stackMinZIndex","previousActiveElement","_defineProperty","concat","contentClass","trim","contentClasses","hasActivator","$slots","activator","$scopedSlots","val","show","unbind","_a","focus","created","$attrs","hasOwnProperty","removed","beforeMount","$nextTick","isBooted","animateClick","clearTimeout","setTimeout","closeConditional","_isDestroyed","contains","getMaxZIndex","options","call","_this3","activeElement","_b","bind","onFocusin","onClickOutside","$emit","onKeydown","esc","getOpenDependents","getActivator","getOpenDependentElements","some","focusable","querySelectorAll","_toConsumableArray","find","matches","_this4","showLazyContent","VThemeProvider","root","attrs","role","getScopeIdAttrs","keydown","ref","genTransition","genInnerContent","appear","tabindex","handler","include","transformOrigin","convertToUnit","getContentSlot","attach","genActivator","VToolbarTitle","createSimpleFunctional","VToolbarItems","VToolbar","VSheet","bottom","collapse","dense","extended","extensionHeight","flat","floating","prominent","short","src","Object","tag","isExtended","computedHeight","height","computedContentHeight","parseInt","isCollapsed","isNaN","isProminent","measurableStyles","breakingProps","forEach","_ref","_ref2","_slicedToArray","original","replacement","breaking","genBackground","image","img","VImg","genExtension","extension","unshift","Grid","functional","id","fluid","keys","filter","key","startsWith","domProps","mergeData","Array","Measurable","aspectRatio","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","VResponsive","hasIntersect","intersect","alt","contain","eager","gradient","lazySrc","rootMargin","threshold","position","sizes","srcset","currentSrc","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","_typeof","__cachedImage","backgroundImage","join","backgroundPosition","mode","loadImage","init","mounted","entries","observer","isIntersecting","lazyImg","Image","pollForSize","onLoad","getSrc","endsWith","naturalHeight","onError","onload","decode","catch","err","consoleWarn","message","then","onerror","timeout","poll","complete","__genPlaceholder","slot","placeholder","node","modifiers","once","VGrid"],"mappings":"s9CAgBeA,qBACbC,OACAC,OACAC,QACAC,OAAO,CACPC,KAAM,YAENC,MAAO,CACLC,SAAUC,QACVC,MAAO,CACLC,KAAMC,OACNC,QAAS,WAEXC,KAAM,CACJH,KAAMF,QACNI,SAAS,GAEXE,QAAS,CACPJ,KAAM,CAACK,OAAQJ,QACfC,QAAS,KAEXI,MAAO,CACLJ,SAAS,GAEXK,OAAQ,CACNP,KAAM,CAACK,OAAQJ,QACfC,QAAS,IAIbM,SAAU,CACRC,QAAO,WACL,IAAMC,EAAOC,KAAKC,mBAAmBD,KAAKZ,MAAO,CAC/Cc,YAAa,mBACbC,MAAO,CACLV,QAASO,KAAKI,mBAIlB,OAAOJ,KAAKK,eAAe,MAAON,IAEpCO,QAAO,WACL,OAAAC,EAAA,CACE,sBAAuBP,KAAKd,SAC5B,oBAAqBc,KAAKQ,UACvBR,KAAKS,eAGZL,gBAAe,WACb,OAAOV,OAAOM,KAAKQ,SAAWR,KAAKP,QAAU,IAE/CiB,OAAM,WACJ,MAAO,CACLd,OAAQI,KAAKJ,UAKnBe,QAAS,CACPC,WAAU,WACR,OAAOZ,KAAKK,eAAe,MAAO,CAChCH,YAAa,sBACZW,eAAQb,SAIfc,OAAM,SAAEC,GACN,IAAMC,EAAW,CAAChB,KAAKF,SAIvB,OAFIE,KAAKQ,UAAUQ,EAASC,KAAKjB,KAAKY,cAE/BG,EAAE,MAAO,CACdb,YAAa,YACbgB,GAAIlB,KAAKmB,WACTC,MAAOpB,KAAKM,QACZH,MAAOH,KAAKU,QACXM,MCxFQK,I,YC4BAC,eAAIvC,SAAiDA,OAAO,CACzEC,KAAM,cAENC,MAAO,CACLsC,YAAapC,QACbqC,aAAclC,OACdmC,eAAgB,CAAC/B,OAAQJ,SAG3BS,KAAI,WACF,MAAO,CACL2B,eAAgB,EAChBC,QAAS,OAIbC,MAAO,CACLL,YAAW,SAAE5B,GACNK,KAAKQ,WAENb,EAAOK,KAAK6B,gBACX7B,KAAK8B,gBAIdC,cAAa,WACX/B,KAAK6B,iBAGPlB,QAAS,CACPqB,cAAa,WACX,IAAML,EAAU,IAAIN,EAAS,CAC3BY,UAAW,CACT/C,SAAUc,KAAKd,SACfS,OAAO,EACPP,MAAOY,KAAKwB,aACZ/B,QAASO,KAAKyB,kBAIlBE,EAAQO,SAER,IAAMC,EAASnC,KAAKd,SAChBc,KAAKoC,IAAIC,WACTC,SAASC,cAAc,cAE3BJ,GAAUA,EAAOK,aAAab,EAAQS,IAAKD,EAAOM,YAElDzC,KAAK2B,QAAUA,GAEjBG,WAAU,eAAAY,EAAA,KAGR,GAFA1C,KAAK2C,cAED3C,KAAKuB,YAgBT,OAdKvB,KAAK2B,SAAS3B,KAAKgC,gBAExBhC,KAAK0B,eAAiBkB,uBAAsB,WACrCF,EAAKf,eAEgBkB,IAAtBH,EAAKI,aACPJ,EAAKf,QAAQ/B,OAASN,OAAOoD,EAAKI,aAAe,GACxCJ,EAAKN,MACdM,EAAKf,QAAQ/B,OAASmD,eAAUL,EAAKN,MAGvCM,EAAKf,QAAQhC,OAAQ,OAGhB,GAGTkC,cAAa,WAAmB,IAAAmB,EAAA,KAAjBC,IAAUC,UAAAC,OAAA,QAAAN,IAAAK,UAAA,KAAAA,UAAA,GACnBlD,KAAK2B,UACPyB,eAAqBpD,KAAK2B,QAAQS,IAAK,iBAAiB,WAEnDY,EAAKrB,SACLqB,EAAKrB,QAAQS,KACbY,EAAKrB,QAAQS,IAAIC,aAClBW,EAAKrB,QAAQhC,QACbqD,EAAKxC,WAGPwC,EAAKrB,QAAQS,IAAIC,WAAWgB,YAAYL,EAAKrB,QAAQS,KACrDY,EAAKrB,QAAQ2B,WACbN,EAAKrB,QAAU,SAMjB4B,qBAAqBvD,KAAK0B,gBAE1B1B,KAAK2B,QAAQhC,OAAQ,GAGvBsD,GAAcjD,KAAKiD,cAErBO,eAAc,SAAEC,GACd,GAAI,QAASA,EAAG,CACd,GACE,CAAC,QAAS,WAAY,UAAUC,SAAUD,EAAEE,OAAmBC,UAE9DH,EAAEE,OAAuBE,kBAC1B,OAEF,IAAMC,EAAK,CAACC,OAASD,GAAIC,OAASC,QAC5BC,EAAO,CAACF,OAASE,KAAMF,OAASG,UAEtC,GAAIJ,EAAGJ,SAASD,EAAEU,SACfV,EAAUW,QAAU,MAChB,KAAIH,EAAKP,SAASD,EAAEU,SAGzB,OAFCV,EAAUW,OAAS,IAMpBX,EAAEE,SAAW3D,KAAK2B,SACR,YAAX8B,EAAEpE,MAAsBoE,EAAEE,SAAWrB,SAAS+B,MAC/CrE,KAAKsE,UAAUb,KAAkBA,EAAEc,kBAEvCC,aAAY,SAAEC,GACZ,IAAKA,GAAMA,EAAGC,WAAaC,KAAKC,aAAc,OAAO,EAErD,IAAMzE,EAAQ0E,OAAOC,iBAAiBL,GACtC,OAAS,CAAC,OAAQ,UAAUf,SAASvD,EAAM4E,YAA8B,WAAfN,EAAGb,UAAyBa,EAAGO,aAAeP,EAAGQ,cACzG,CAAC,OAAQ,UAAUvB,SAASvD,EAAM+E,YAAgBT,EAAGU,YAAcV,EAAGW,aAE1EC,aAAY,SAAEZ,EAAahB,GACzB,GAAIgB,EAAGa,aAAa,YAAa,OAAO,EAExC,IAGIC,EACAC,EAJEC,EAAMhC,EAAEiC,UAAYjC,EAAEkC,OAAS,IAAM,IACrCC,EAAgB,MAARH,EAAchC,EAAEW,OAASX,EAAEkC,QAAUlC,EAAEW,OAIzC,MAARqB,GACFF,EAAkC,IAAjBd,EAAGoB,UACpBL,EAAef,EAAGoB,UAAYpB,EAAGQ,eAAiBR,EAAGO,eAErDO,EAAmC,IAAlBd,EAAGqB,WACpBN,EAAef,EAAGqB,WAAarB,EAAGW,cAAgBX,EAAGU,aAGvD,IAAMY,EAAcH,EAAQ,EACtBI,EAAgBJ,EAAQ,EAE9B,QAAKL,IAAkBQ,OAClBP,IAAgBQ,OAChBT,IAAkBC,IAAiBf,EAAGpC,aAClCrC,KAAKqF,aAAaZ,EAAGpC,WAAuBoB,KAKvDwC,SAAQ,SAAExB,EAAatC,GACrB,OAAIsC,IAAOtC,GAEO,OAAPsC,GAAeA,IAAOnC,SAAS+B,MAGjCrE,KAAKiG,SAASxB,EAAGpC,WAAuBF,IAGnDmC,UAAS,SAAEb,GACT,IAAMyC,EAAOC,eAAa1C,GAE1B,GAAe,YAAXA,EAAEpE,MAAsB6G,EAAK,KAAO5D,SAAS+B,KAAM,CACrD,IAAM+B,EAASpG,KAAKqG,MAAMD,OAEpBE,EAAWzB,OAAO0B,eAAgBC,WACxC,QAAIJ,GAAUpG,KAAKwE,aAAa4B,IAAWpG,KAAKiG,SAASK,EAAUF,MACzDpG,KAAKqF,aAAae,EAAQ3C,GAKtC,IAAK,IAAIgD,EAAQ,EAAGA,EAAQP,EAAK/C,OAAQsD,IAAS,CAChD,IAAMhC,EAAKyB,EAAKO,GAEhB,GAAIhC,IAAOnC,SAAU,OAAO,EAC5B,GAAImC,IAAOnC,SAASoE,gBAAiB,OAAO,EAC5C,GAAIjC,IAAOzE,KAAKqG,MAAMM,QAAS,OAAO,EAEtC,GAAI3G,KAAKwE,aAAaC,GAAgB,OAAQzE,KAAKqF,aAAaZ,EAAehB,GAGjF,OAAO,GAETd,WAAU,WACJ3C,KAAK4G,SAASC,WAAWC,UAC3BxE,SAASoE,gBAAiBK,UAAUC,IAAI,sBAExCC,eAAwBpC,OAAQ,QAAS7E,KAAKwD,eAAgB,CAAE0D,SAAS,IACzErC,OAAOsC,iBAAiB,UAAWnH,KAAKwD,kBAG5CP,WAAU,WACRX,SAASoE,gBAAiBK,UAAUK,OAAO,qBAC3CvC,OAAOwC,oBAAoB,QAASrH,KAAKwD,gBACzCqB,OAAOwC,oBAAoB,UAAWrH,KAAKwD,oB,4gEC7MjD,IAAM8D,EAAa3I,eACjB4I,OACAC,OACAC,EACAC,OACAC,OACAC,QAIaN,SAAWvI,OAAO,CAC/BC,KAAM,WAEN6I,WAAY,CAAEC,qBAEd7I,MAAO,CACLO,KAAML,QACN4I,SAAU5I,QACV6I,WAAY7I,QACZ8I,MAAO9I,QACP+I,SAAU,CAAC5I,OAAQI,QACnByI,iBAAkBhJ,QAClBiJ,OAAQ,CACN/I,KAAMC,OACNC,QAAS,iBAEX8I,WAAYlJ,QACZmJ,YAAa,CACXjJ,KAAMF,QACNI,SAAS,GAEXgJ,WAAYpJ,QACZqJ,WAAY,CACVnJ,KAAM,CAACC,OAAQH,SACfI,QAAS,qBAEXkJ,MAAO,CAACnJ,OAAQI,SAGlBK,KAAI,WACF,MAAO,CACL2I,YAAa,KACbC,SAAS,EACTC,gBAAiB,EACjBC,eAAgB,IAChBC,sBAAuB,OAI3BjJ,SAAU,CACRS,QAAO,WACL,OAAAyI,YAAA,GACI,YAAAC,OAAYhJ,KAAKiJ,cAAgBC,QAAS,GAC5C,mBAAoBlJ,KAAKQ,UACzB,uBAAwBR,KAAKqI,YAC7B,uBAAwBrI,KAAKgI,YAC7B,uBAAwBhI,KAAKuI,YAC7B,qBAAsBvI,KAAK2I,UAG/BQ,eAAc,WACZ,MAAO,CACL,qBAAqB,EACrB,4BAA6BnJ,KAAKQ,WAGtC4I,aAAY,WACV,OAAOjK,UACHa,KAAKqJ,OAAOC,aACZtJ,KAAKuJ,aAAaD,aAK1B1H,MAAO,CACLpB,SAAQ,SAAEgJ,G,MACJA,GACFxJ,KAAKyJ,OACLzJ,KAAK2C,eAEL3C,KAAK6B,gBACL7B,KAAK0J,SACqB,QAA1BC,EAAA3J,KAAK8I,6BAAqB,IAAAa,KAAEC,UAGhC5B,WAAU,SAAEwB,GACLxJ,KAAKQ,WAENgJ,GACFxJ,KAAK2C,aACL3C,KAAK6B,eAAc,KAEnB7B,KAAKiD,aACLjD,KAAK8B,iBAKX+H,QAAO,WAED7J,KAAK8J,OAAOC,eAAe,eAC7BC,eAAQ,aAAchK,OAI1BiK,YAAW,eAAAvH,EAAA,KACT1C,KAAKkK,WAAU,WACbxH,EAAKyH,SAAWzH,EAAKlC,SACrBkC,EAAKlC,UAAYkC,EAAK+G,WAI1B1H,cAAa,WACW,qBAAX8C,QAAwB7E,KAAK0J,UAG1C/I,QAAS,CACPyJ,aAAY,eAAApH,EAAA,KACVhD,KAAK2I,SAAU,EAGf3I,KAAKkK,WAAU,WACblH,EAAK2F,SAAU,EACf9D,OAAOwF,aAAarH,EAAK4F,gBACzB5F,EAAK4F,eAAiB/D,OAAOyF,YAAW,kBAAOtH,EAAK2F,SAAU,IAAQ,SAG1E4B,iBAAgB,SAAE9G,GAChB,IAAME,EAASF,EAAEE,OAKjB,QACE3D,KAAKwK,eACJxK,KAAKQ,UACNR,KAAKqG,MAAMM,QAAQ8D,SAAS9G,IAC3B3D,KAAK2B,SAAWgC,IAAW3D,KAAK2B,QAAQS,IAAIqI,SAAS9G,KACnD3D,KAAK8C,cAAgB9C,KAAK0K,gBAEjC/H,WAAU,WACJ3C,KAAKgI,WACP1F,SAASoE,gBAAgBK,UAAUC,IAAI,qBAEvCS,EAAYkD,QAAQhK,QAAQgC,WAAWiI,KAAK5K,OAGhDyJ,KAAI,eAAAoB,EAAA,MACD7K,KAAKgI,aAAehI,KAAKuB,aAAevB,KAAK8B,aAE9C9B,KAAKkK,WAAU,WACbW,EAAKX,WAAU,W,SACS,QAAjBP,EAAAkB,EAAKxE,MAAMD,cAAM,IAAAuD,OAAA,EAAAA,EAAEc,SAASnI,SAASwI,kBACxCD,EAAK/B,sBAAwBxG,SAASwI,cACrB,QAAjBC,EAAAF,EAAKxE,MAAMD,cAAM,IAAA2E,KAAEnB,SAErBiB,EAAKG,cAIXA,KAAI,WACFnG,OAAOsC,iBAAiB,UAAWnH,KAAKiL,YAE1CvB,OAAM,WACJ7E,OAAOwC,oBAAoB,UAAWrH,KAAKiL,YAE7CC,eAAc,SAAEzH,GACdzD,KAAKmL,MAAM,gBAAiB1H,GAExBzD,KAAKqI,WACPrI,KAAKmI,kBAAoBnI,KAAKoK,eAE9BpK,KAAKQ,UAAW,GAGpB4K,UAAS,SAAE3H,GACT,GAAIA,EAAEU,UAAYJ,OAASsH,MAAQrL,KAAKsL,oBAAoBnI,OAC1D,GAAKnD,KAAKqI,WAIErI,KAAKmI,kBACfnI,KAAKoK,mBALe,CACpBpK,KAAKQ,UAAW,EAChB,IAAM8I,EAAYtJ,KAAKuL,eACvBvL,KAAKkK,WAAU,kBAAMZ,GAAcA,EAA0BM,WAKjE5J,KAAKmL,MAAM,UAAW1H,IAIxBwH,UAAS,SAAExH,GACT,GAAKA,GAAMzD,KAAKsI,YAAhB,CAEA,IAAM3E,EAASF,EAAEE,OAEjB,GACIA,GACF3D,KAAKqG,MAAMD,SAEV,CAAC9D,SAAUtC,KAAKqG,MAAMD,QAAQ1C,SAASC,KAEvC3D,KAAKqG,MAAMD,OAAOqE,SAAS9G,IAE5B3D,KAAK8C,cAAgB9C,KAAK0K,iBAEzB1K,KAAKwL,2BAA2BC,MAAK,SAAAhH,GAAE,OAAIA,EAAGgG,SAAS9G,MAExD,CAEA,IAAM+H,EAAY1L,KAAKqG,MAAMD,OAAOuF,iBAAiB,iGAC/ClH,EAAKmH,EAAIF,GAAWG,MAAK,SAAApH,GAAE,OAAKA,EAAGa,aAAa,cAAgBb,EAAGqH,QAAQ,sBACjFrH,GAAMA,EAAGmF,WAGbhJ,WAAU,eAAAmL,EAAA,KACR,OAAO/L,KAAKgM,iBAAgB,iBAAM,CAChCD,EAAK1L,eAAe4L,OAAgB,CAClChN,MAAO,CACLiN,MAAM,EACNjE,MAAO8D,EAAK9D,MACZzI,KAAMuM,EAAKvM,OAEZ,CACDuM,EAAK1L,eAAe,MAAO,CACzBe,MAAO2K,EAAK5C,eACZgD,MAAK5L,EAAA,CACH6L,KAAM,SACN,aAAcL,EAAKxK,iBAAcsB,EAAY,QAC1CkJ,EAAKM,mBAEVnL,GAAI,CAAEoL,QAASP,EAAKX,WACpBjL,MAAO,CAAEP,OAAQmM,EAAKjJ,cACtByJ,IAAK,WACJ,CAACR,EAAKS,yBAIfA,cAAa,WACX,IAAM7F,EAAU3G,KAAKyM,kBAErB,OAAKzM,KAAKwI,WAEHxI,KAAKK,eAAe,aAAc,CACvCpB,MAAO,CACLD,KAAMgB,KAAKwI,WACXJ,OAAQpI,KAAKoI,OACbsE,QAAQ,IAET,CAAC/F,IARyBA,GAU/B8F,gBAAe,WACb,IAAM1M,EAAkB,CACtBqB,MAAOpB,KAAKM,QACZ6L,MAAO,CACLQ,SAAU3M,KAAKQ,SAAW,OAAIqC,GAEhC0J,IAAK,SACL1E,WAAY,CACV,CACE7I,KAAM,gBACNW,MAAO,CACLiN,QAAS5M,KAAKkL,eACdX,iBAAkBvK,KAAKuK,iBACvBsC,QAAS7M,KAAKwL,2BAGlB,CAAExM,KAAM,OAAQW,MAAOK,KAAKQ,WAE9BL,MAAO,CACL2M,gBAAiB9M,KAAKoI,SAY1B,OARKpI,KAAKgI,aACRjI,EAAKI,MAALI,IAAA,GACKR,EAAKI,OADG,IAEX+H,SAAU6E,eAAc/M,KAAKkI,UAC7BO,MAAOsE,eAAc/M,KAAKyI,UAIvBzI,KAAKK,eAAe,MAAON,EAAMC,KAAKgN,oBAIjDlM,OAAM,SAAEC,GACN,OAAOA,EAAE,MAAO,CACdb,YAAa,sBACbkB,MAAO,CACL,gCACkB,KAAhBpB,KAAKiN,SACW,IAAhBjN,KAAKiN,QACW,WAAhBjN,KAAKiN,SAER,CACDjN,KAAKkN,eACLlN,KAAKY,mB,oCCnUX,gGAMMuM,EAAgBC,eAAuB,oBACvCC,EAAgBD,eAAuB,oBAUzCE,Q,m8ECAWC,cAAOxO,OAAO,CAC3BC,KAAM,YAENC,MAAO,CACLC,SAAUC,QACVqO,OAAQrO,QACRsO,SAAUtO,QACVuO,MAAOvO,QACPwO,SAAUxO,QACVyO,gBAAiB,CACfrO,QAAS,GACTF,KAAM,CAACK,OAAQJ,SAEjBuO,KAAM1O,QACN2O,SAAU3O,QACV4O,UAAW5O,QACX6O,MAAO7O,QACP8O,IAAK,CACH5O,KAAM,CAACC,OAAQ4O,QACf3O,QAAS,IAEX4O,IAAK,CACH9O,KAAMC,OACNC,QAAS,WAIbQ,KAAM,iBAAO,CACXqO,YAAY,IAGdvO,SAAU,CACRwO,eAAc,WACZ,IAAMC,EAAStO,KAAKuO,sBAEpB,IAAKvO,KAAKoO,WAAY,OAAOE,EAE7B,IAAMV,EAAkBY,SAASxO,KAAK4N,iBAEtC,OAAO5N,KAAKyO,YACRH,EACAA,GAAWI,MAAMd,GAAqC,EAAlBA,IAE1CW,sBAAqB,WACnB,OAAIvO,KAAKsO,OAAeE,SAASxO,KAAKsO,QAClCtO,KAAK2O,aAAe3O,KAAK0N,MAAc,GACvC1N,KAAK2O,aAAe3O,KAAKgO,MAAc,IACvChO,KAAK2O,YAAoB,IACzB3O,KAAK0N,MAAc,GACnB1N,KAAKgO,OAAShO,KAAK4G,SAASC,WAAWC,UAAkB,GACtD,IAETxG,QAAO,WACL,OAAAC,IAAA,GACKgN,OAAO5C,QAAQ9K,SAASS,QAAQsK,KAAK5K,OADnC,IAEL,aAAa,EACb,sBAAuBA,KAAKd,SAC5B,oBAAqBc,KAAKwN,OAC1B,sBAAuBxN,KAAKyN,SAC5B,uBAAwBzN,KAAKyO,YAC7B,mBAAoBzO,KAAK0N,MACzB,sBAAuB1N,KAAKoO,WAC5B,kBAAmBpO,KAAK6N,KACxB,sBAAuB7N,KAAK8N,SAC5B,uBAAwB9N,KAAK2O,eAGjCF,YAAW,WACT,OAAOzO,KAAKyN,UAEdkB,YAAW,WACT,OAAO3O,KAAK+N,WAEdrN,OAAM,WACJ,OAAAH,IAAA,GACKP,KAAK4O,kBADH,IAELN,OAAQvB,eAAc/M,KAAKqO,oBAKjCxE,QAAO,eAAAnH,EAAA,KACCmM,EAAgB,CACpB,CAAC,MAAO,mBACR,CAAC,gBAAiB,8BAClB,CAAC,eAAgB,4BACjB,CAAC,gBAAiB,6BAClB,CAAC,kBAAmB,+BACpB,CAAC,oBAAqB,iCACtB,CAAC,gBAAiB,6BAClB,CAAC,mBAAoB,gCACrB,CAAC,OAAQ,qBAIXA,EAAcC,SAAQ,SAAAC,GAA4B,IAAAC,EAAAC,EAAAF,EAAA,GAA1BG,EAADF,EAAC,GAAUG,EAAXH,EAAC,GAClBtM,EAAKoH,OAAOC,eAAemF,IAAWE,eAASF,EAAUC,EAAazM,OAI9E/B,QAAS,CACP0O,cAAa,WACX,IAAMpQ,EAAQ,CACZqP,OAAQvB,eAAc/M,KAAKqO,gBAC3BJ,IAAKjO,KAAKiO,KAGNqB,EAAQtP,KAAKuJ,aAAagG,IAC5BvP,KAAKuJ,aAAagG,IAAI,CAAEtQ,UACxBe,KAAKK,eAAemP,OAAM,CAAEvQ,UAEhC,OAAOe,KAAKK,eAAe,MAAO,CAChCH,YAAa,oBACZ,CAACoP,KAEN1O,WAAU,WACR,OAAOZ,KAAKK,eAAe,MAAO,CAChCH,YAAa,qBACbC,MAAO,CACLmO,OAAQvB,eAAc/M,KAAKuO,yBAE5B1N,eAAQb,QAEbyP,aAAY,WACV,OAAOzP,KAAKK,eAAe,MAAO,CAChCH,YAAa,uBACbC,MAAO,CACLmO,OAAQvB,eAAc/M,KAAK4N,mBAE5B/M,eAAQb,KAAM,gBAIrBc,OAAM,SAAEC,GACNf,KAAKoO,WAAapO,KAAK2N,YAAc3N,KAAKuJ,aAAamG,UAEvD,IAAM1O,EAAW,CAAChB,KAAKY,cACjBb,EAAOC,KAAKC,mBAAmBD,KAAKZ,MAAO,CAC/CgC,MAAOpB,KAAKM,QACZH,MAAOH,KAAKU,OACZQ,GAAIlB,KAAKmB,aAMX,OAHInB,KAAKoO,YAAYpN,EAASC,KAAKjB,KAAKyP,iBACpCzP,KAAKiO,KAAOjO,KAAKuJ,aAAagG,MAAKvO,EAAS2O,QAAQ3P,KAAKqP,iBAEtDtO,EAAEf,KAAKmO,IAAKpO,EAAMiB,O,2DCnK7B,gDAQe4O,sBAAK,aAAa7Q,OAAO,CACtCC,KAAM,cACN6Q,YAAY,EACZ5Q,MAAO,CACL6Q,GAAIxQ,OACJ6O,IAAK,CACH9O,KAAMC,OACNC,QAAS,OAEXwQ,MAAO,CACL1Q,KAAMF,QACNI,SAAS,IAGbuB,OAAM,SAAEC,EAAFgO,GAA8B,IAC9BzO,EADOrB,EAAF8P,EAAE9P,MAAOc,EAATgP,EAAShP,KAAMiB,EAAA+N,EAAA/N,SAEhBmL,EAAUpM,EAAVoM,MA2BR,OA1BIA,IAEFpM,EAAKoM,MAAQ,GACb7L,EAAU4N,OAAO8B,KAAK7D,GAAO8D,QAAO,SAAAC,GAGlC,GAAY,SAARA,EAAgB,OAAO,EAE3B,IAAMvQ,EAAQwM,EAAM+D,GAIpB,OAAIA,EAAIC,WAAW,UACjBpQ,EAAKoM,MAAO+D,GAAOvQ,GACZ,GAGFA,GAA0B,kBAAVA,MAIvBV,EAAM6Q,KACR/P,EAAKqQ,SAAWrQ,EAAKqQ,UAAY,GACjCrQ,EAAKqQ,SAASN,GAAK7Q,EAAM6Q,IAGpB/O,EACL9B,EAAMkP,IACNkC,eAAUtQ,EAAM,CACdG,YAAa,YACbkB,MAAOkP,MAAW,CAChB,mBAAoBrR,EAAM8Q,QACzB/G,OAAO1I,GAAW,MAEvBU,O,4GC9CSrC,iBAAO4R,QAAYxR,OAAO,CACvCC,KAAM,eAENC,MAAO,CACLuR,YAAa,CAAClR,OAAQI,QACtBuJ,aAAc3J,QAGhBO,SAAU,CACR4Q,oBAAmB,WACjB,OAAO/Q,OAAOM,KAAKwQ,cAErBE,YAAW,WACT,OAAO1Q,KAAKyQ,oBACR,CAAEE,cAAgB,EAAI3Q,KAAKyQ,oBAAuB,IAAM,UACxD5N,GAEN+N,cAAa,WACX,OAAK5Q,KAAK0Q,YAEH1Q,KAAKK,eAAe,MAAO,CAChCF,MAAOH,KAAK0Q,YACZxQ,YAAa,wBAJe,KASlCS,QAAS,CACPC,WAAU,WACR,OAAOZ,KAAKK,eAAe,MAAO,CAChCH,YAAa,wBACbkB,MAAOpB,KAAKiJ,cACXpI,eAAQb,SAIfc,OAAM,SAAEC,GACN,OAAOA,EAAE,MAAO,CACdb,YAAa,eACbC,MAAOH,KAAK4O,iBACZ1N,GAAIlB,KAAKmB,YACR,CACDnB,KAAK4Q,cACL5Q,KAAKY,kBCrDIiQ,I,0QC2Bf,IAAMC,EAAiC,qBAAXjM,QAA0B,yBAA0BA,OAGjElG,sBACbkS,EACAhS,QACAE,OAAO,CACPC,KAAM,QAEN6I,WAAY,CAAEkJ,kBAEd9R,MAAO,CACL+R,IAAK1R,OACL2R,QAAS9R,QACT+R,MAAO/R,QACPgS,SAAU7R,OACV8R,QAAS9R,OACTqL,QAAS,CACPtL,KAAM6O,OAGN3O,QAAS,iBAAO,CACd2M,UAAMrJ,EACNwO,gBAAYxO,EACZyO,eAAWzO,KAGf0O,SAAU,CACRlS,KAAMC,OACNC,QAAS,iBAEXiS,MAAOlS,OACP2O,IAAK,CACH5O,KAAM,CAACC,OAAQ4O,QACf3O,QAAS,IAEXkS,OAAQnS,OACRkJ,WAAY,CACVnJ,KAAM,CAACF,QAASG,QAChBC,QAAS,oBAIbQ,KAAI,WACF,MAAO,CACL2R,WAAY,GACZpC,MAAO,KACPqC,WAAW,EACXC,2BAAuB/O,EACvBgP,kBAAchP,EACdiP,UAAU,IAIdjS,SAAU,CACR4Q,oBAAmB,WACjB,OAAO/Q,OAAOM,KAAK+R,cAAcC,QAAUhS,KAAK4R,wBAElDG,cAAa,WACX,OAAO/R,KAAKiO,KAA2B,WAApBgE,EAAOjS,KAAKiO,KAC3B,CACAA,IAAKjO,KAAKiO,IAAIA,IACdwD,OAAQzR,KAAKyR,QAAUzR,KAAKiO,IAAIwD,OAChCL,QAASpR,KAAKoR,SAAWpR,KAAKiO,IAAImD,QAClCY,OAAQtS,OAAOM,KAAKwQ,aAAexQ,KAAKiO,IAAI+D,SAC1C,CACF/D,IAAKjO,KAAKiO,IACVwD,OAAQzR,KAAKyR,OACbL,QAASpR,KAAKoR,QACdY,OAAQtS,OAAOM,KAAKwQ,aAAe,KAGzC0B,cAAa,WACX,KAAMlS,KAAK+R,cAAc9D,KAAOjO,KAAK+R,cAAcX,SAAWpR,KAAKmR,UAAW,MAAO,GAErF,IAAMgB,EAA4B,GAC5BlE,EAAMjO,KAAK2R,UAAY3R,KAAK+R,cAAcX,QAAUpR,KAAK0R,WAE3D1R,KAAKmR,UAAUgB,EAAgBlR,KAAhB,mBAAA+H,OAAwChJ,KAAKmR,SAAQ,MACpElD,GAAKkE,EAAgBlR,KAAhB,QAAA+H,OAA6BiF,EAAG,OAEzC,IAAMqB,EAAQtP,KAAKK,eAAe,MAAO,CACvCH,YAAa,iBACbkB,MAAO,CACL,0BAA2BpB,KAAK2R,UAChC,0BAA2B3R,KAAKiR,QAChC,yBAA0BjR,KAAKiR,SAEjC9Q,MAAO,CACLgS,gBAAiBA,EAAgBC,KAAK,MACtCC,mBAAoBrS,KAAKuR,UAE3BrB,KAAMlQ,KAAK2R,YAIb,OAAK3R,KAAKwI,WAEHxI,KAAKK,eAAe,aAAc,CACvC8L,MAAO,CACLnN,KAAMgB,KAAKwI,WACX8J,KAAM,WAEP,CAAChD,IAPyBA,IAWjC1N,MAAO,CACLqM,IAAG,WAEIjO,KAAK2R,UACL3R,KAAKuS,YADWvS,KAAKwS,UAAK3P,OAAWA,GAAW,IAGvD,4BAA6B,UAG/B4P,QAAO,WACLzS,KAAKwS,QAGP7R,QAAS,CACP6R,KAAI,SACFE,EACAC,EACAC,GAKA,IACE9B,GACC8B,GACA5S,KAAKkR,MAHR,CAMA,GAAIlR,KAAK+R,cAAcX,QAAS,CAC9B,IAAMyB,EAAU,IAAIC,MACpBD,EAAQ5E,IAAMjO,KAAK+R,cAAcX,QACjCpR,KAAK+S,YAAYF,EAAS,MAGxB7S,KAAK+R,cAAc9D,KAAKjO,KAAKuS,cAEnCS,OAAM,WACJhT,KAAKiT,SACLjT,KAAK2R,WAAY,EACjB3R,KAAKmL,MAAM,OAAQnL,KAAKiO,KAGtBjO,KAAKsP,QACJtP,KAAK+R,cAAc9D,IAAIiF,SAAS,SAAWlT,KAAK+R,cAAc9D,IAAIkC,WAAW,yBAE1EnQ,KAAKsP,MAAM6D,eAAiBnT,KAAKsP,MAAMuC,cACzC7R,KAAK6R,aAAe7R,KAAKsP,MAAMuC,aAC/B7R,KAAK4R,sBAAwB5R,KAAKsP,MAAMuC,aAAe7R,KAAKsP,MAAM6D,eAElEnT,KAAK4R,sBAAwB,IAInCwB,QAAO,WACLpT,KAAK8R,UAAW,EAChB9R,KAAKmL,MAAM,QAASnL,KAAKiO,MAE3BgF,OAAM,WAEAjT,KAAKsP,QAAOtP,KAAK0R,WAAa1R,KAAKsP,MAAMoC,YAAc1R,KAAKsP,MAAMrB,MAExEsE,UAAS,eAAA7P,EAAA,KACD4M,EAAQ,IAAIwD,MAClB9S,KAAKsP,MAAQA,EAEbA,EAAM+D,OAAS,WAET/D,EAAMgE,OACRhE,EAAMgE,SAASC,OAAO,SAAAC,GACpBC,eACE,8DAAAzK,OACQtG,EAAKqP,cAAc9D,MAC1BuF,EAAIE,QAAJ,qBAAA1K,OAAmCwK,EAAIE,SAAY,IACpDhR,MAEDiR,KAAKjR,EAAKsQ,QAEbtQ,EAAKsQ,UAGT1D,EAAMsE,QAAU5T,KAAKoT,QAErBpT,KAAK8R,UAAW,EAChB9R,KAAKwR,QAAUlC,EAAMkC,MAAQxR,KAAKwR,OAClCxR,KAAK+R,cAAcN,SAAWnC,EAAMmC,OAASzR,KAAK+R,cAAcN,QAChEnC,EAAMrB,IAAMjO,KAAK+R,cAAc9D,IAC/BjO,KAAKmL,MAAM,YAAanL,KAAK+R,cAAc9D,KAE3CjO,KAAKwQ,aAAexQ,KAAK+S,YAAYzD,GACrCtP,KAAKiT,UAEPF,YAAW,SAAExD,GAAmD,IAAAvM,EAAA,KAA5B6Q,EAAA3Q,UAAAC,OAAA,QAAAN,IAAAK,UAAA,GAAAA,UAAA,GAAyB,IACrD4Q,EAAO,SAAPA,IACJ,IAAQX,EAAgC5D,EAAhC4D,cAAetB,EAAiBtC,EAAjBsC,aAEnBsB,GAAiBtB,GACnB7O,EAAK6O,aAAeA,EACpB7O,EAAK4O,sBAAwBC,EAAesB,GAClC5D,EAAIwE,WAAY/Q,EAAK2O,WAAc3O,EAAK8O,UAAuB,MAAX+B,GAC9DvJ,WAAWwJ,EAAMD,IAIrBC,KAEFlT,WAAU,WACR,IAAM+F,EAAiBkK,EAAYlG,QAAQhK,QAAQC,WAAWgK,KAAK5K,MAOnE,OANIA,KAAK6R,cACP7R,KAAK+K,GAAGpE,EAAQ5G,KAAO,MAAO,CAC5BI,MAAO,CAAEsI,MAAO,GAAFO,OAAKhJ,KAAK6R,aAAY,SAIjClL,GAETqN,iBAAgB,WACd,IAAMC,EAAOpT,eAAQb,KAAM,eAC3B,GAAIiU,EAAM,CACR,IAAMC,EAAclU,KAAK2R,UACrB,CAAC3R,KAAKK,eAAe,MAAO,CAC5BH,YAAa,wBACZ+T,IACD,GAEJ,OAAKjU,KAAKwI,WAEHxI,KAAKK,eAAe,aAAc,CACvCpB,MAAO,CACLyN,QAAQ,EACR1N,KAAMgB,KAAKwI,aAEZ0L,GAP0BA,EAAY,MAY/CpT,OAAM,SAAEC,GACN,IAAMoT,EAAOtD,EAAYlG,QAAQ7J,OAAO8J,KAAK5K,KAAMe,GAE7ChB,EAAOsQ,eAAU8D,EAAKpU,KAAO,CACjCG,YAAa,UACbiM,MAAO,CACL,aAAcnM,KAAKgR,IACnB5E,KAAMpM,KAAKgR,IAAM,WAAQnO,GAE3BzB,MAAOpB,KAAKS,aAGZoH,WAAYiJ,EACR,CAAC,CACD9R,KAAM,YACNoV,UAAW,CAAEC,MAAM,GACnB1U,MAAO,CACLiN,QAAS5M,KAAKwS,KACd7H,QAAS3K,KAAK2K,gBAGhB9H,IAUN,OAPAsR,EAAKnT,SAAW,CACdhB,KAAK4Q,cACL5Q,KAAKkS,cACLlS,KAAKgU,mBACLhU,KAAKY,cAGAG,EAAEoT,EAAKhG,IAAKpO,EAAMoU,EAAKnT,c,kCChTlC,kDAGc,SAAUsT,EAAOtV,GAE7B,OAAOsC,aAAIvC,OAAO,CAChBC,KAAM,KAAFgK,OAAOhK,GAEX6Q,YAAY,EAEZ5Q,MAAO,CACL6Q,GAAIxQ,OACJ6O,IAAK,CACH9O,KAAMC,OACNC,QAAS,QAIbuB,OAAM,SAAEC,EAAFgO,GAA8B,IAAvB9P,EAAF8P,EAAE9P,MAAOc,EAATgP,EAAShP,KAAMiB,EAAA+N,EAAA/N,SACxBjB,EAAKG,YAAe,GAAA8I,OAAGhK,EAAI,KAAAgK,OAAIjJ,EAAKG,aAAe,IAAMgJ,OAEzD,IAAQiD,EAAUpM,EAAVoM,MACR,GAAIA,EAAO,CAETpM,EAAKoM,MAAQ,GACb,IAAM7L,EAAU4N,OAAO8B,KAAK7D,GAAO8D,QAAO,SAAAC,GAGxC,GAAY,SAARA,EAAgB,OAAO,EAE3B,IAAMvQ,EAAQwM,EAAM+D,GAIpB,OAAIA,EAAIC,WAAW,UACjBpQ,EAAKoM,MAAO+D,GAAOvQ,GACZ,GAGFA,GAA0B,kBAAVA,KAGrBW,EAAQ6C,SAAQpD,EAAKG,aAAL,IAAA8I,OAAwB1I,EAAQ8R,KAAK,OAQ3D,OALInT,EAAM6Q,KACR/P,EAAKqQ,SAAWrQ,EAAKqQ,UAAY,GACjCrQ,EAAKqQ,SAASN,GAAK7Q,EAAM6Q,IAGpB/O,EAAE9B,EAAMkP,IAAKpO,EAAMiB","file":"js/chunk-19712f89.7fd23379.js","sourcesContent":["// 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'\nimport { getSlot } from '../../util/helpers'\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 }, getSlot(this))\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 ('key' in e) {\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 as WheelEvent)) 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) && el.parentNode) {\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, { passive: false })\n window.addEventListener('keydown', this.scrollListener)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener)\n window.removeEventListener('keydown', this.scrollListener)\n },\n },\n})\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n attrs: {\n tabindex: this.isActive ? 0 : undefined,\n },\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n },\n}\n","// 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'\nimport { getSlot } from '../../util/helpers'\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 }, getSlot(this))\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'\nimport { getSlot } from '../../util/helpers'\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 const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, slot)]\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","// 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":""}