{"version":3,"sources":["webpack:///../../../src/directives/scroll/index.ts","webpack:///../../../src/mixins/scrollable/index.ts","webpack:///../../../src/components/VAppBar/VAppBar.ts","webpack:///../../../src/components/VToolbar/VToolbar.ts"],"names":["inserted","el","binding","vnode","_ref","modifiers","_ref$self","self","value","options","_typeof","passive","handler","target","arg","document","querySelector","window","addEventListener","_onScroll","Object","context","_uid","undefined","unbind","_a","_el$_onScroll$vnode$c","_el$_onScroll$vnode$c2","removeEventListener","Scroll","Vue","extend","name","directives","props","scrollTarget","String","scrollThreshold","Number","data","currentScroll","currentThreshold","isActive","isScrollingUp","previousScroll","savedScroll","computed","canScroll","computedScrollThreshold","this","watch","mounted","consoleWarn","concat","methods","onScroll","_this","scrollTop","pageYOffset","Math","abs","$nextTick","thresholdMet","baseMixins","mixins","VToolbar","Scrollable","SSRBootable","Toggleable","Applicationable","provide","VAppBar","clippedLeft","Boolean","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","type","default","applicationProperty","bottom","call","isBooted","classes","_objectSpread","collapse","absolute","app","fixed","hideShadow","scrollRatio","threshold","max","computedContentHeight","min","dense","computedOriginalHeight","computedFontSize","isProminent","computedLeft","$vuetify","application","left","computedMarginTop","bar","computedOpacity","height","isExtended","parseInt","extensionHeight","computedRight","right","computedTransform","computedHeight","isCollapsed","styles","fontSize","convertToUnit","marginTop","transform","callUpdate","val","created","genBackground","render","_b","tag","style","opacity","updateApplication","h","push","VSheet","extended","flat","floating","prominent","short","src","isNaN","breakpoint","smAndDown","measurableStyles","breakingProps","forEach","_ref2","_slicedToArray","original","replacement","$attrs","hasOwnProperty","breaking","image","$scopedSlots","img","$createElement","VImg","staticClass","genContent","getSlot","genExtension","extension","children","setBackgroundColor","color","class","on","$listeners","unshift"],"mappings":"mSAaA,SAASA,EAAUC,EAAiBC,EAA+BC,GACjE,IAAAC,EAAyBF,EAAQG,WAAa,GAA9CC,EAAAF,EAAQG,YAAI,IAAAD,GAAGA,EACTE,EAAQN,EAAQM,MAChBC,EAA4B,WAAjBC,eAAOF,IAAsBA,EAAMC,SAAY,CAAEE,SAAS,GACrEC,EAA2B,oBAAVJ,GAAwB,gBAAiBA,EAAQA,EAAQA,EAAMI,QAEhFC,EAASN,EACXN,EACAC,EAAQY,IACNC,SAASC,cAAcd,EAAQY,KAC/BG,OAEDJ,IAELA,EAAOK,iBAAiB,SAAUN,EAASH,GAE3CR,EAAGkB,UAAYC,OAAOnB,EAAGkB,WACzBlB,EAAGkB,UAAWhB,EAAMkB,QAASC,MAAQ,CACnCV,UACAH,UAEAI,OAAQN,OAAOgB,EAAYV,IAI/B,SAASW,EAAQvB,EAAiBC,EAA+BC,G,MAC/D,GAAiB,QAAZsB,EAAAxB,EAAGkB,iBAAS,IAAAM,OAAA,EAAAA,EAAGtB,EAAMkB,QAASC,MAAnC,CAEA,IAAAI,EAA0CzB,EAAGkB,UAAUhB,EAAMkB,QAASC,MAA9DV,EAAFc,EAAEd,QAASH,EAAXiB,EAAWjB,QAAXkB,EAAAD,EAAoBb,cAAM,IAAAc,EAAG1B,EAAA0B,EAEnCd,EAAOe,oBAAoB,SAAUhB,EAASH,UACvCR,EAAGkB,UAAUhB,EAAMkB,QAASC,OAG9B,IAAMO,EAAS,CACpB7B,WACAwB,UAGaK,I,oCClCAC,eAAIC,OAAO,CACxBC,KAAM,aAENC,WAAY,CAAEJ,UAEdK,MAAO,CACLC,aAAcC,OACdC,gBAAiB,CAACD,OAAQE,SAG5BC,KAAM,iBAAO,CACXC,cAAe,EACfC,iBAAkB,EAClBC,UAAU,EACVC,eAAe,EACfC,eAAgB,EAChBC,YAAa,EACbhC,OAAQ,OAGViC,SAAU,CAMRC,UAAS,WACP,MAAyB,qBAAX9B,QAMhB+B,wBAAuB,WACrB,OAAOC,KAAKZ,gBACRC,OAAOW,KAAKZ,iBACZ,MAIRa,MAAO,CACLP,cAAa,WACXM,KAAKJ,YAAcI,KAAKJ,aAAeI,KAAKT,eAE9CE,SAAQ,WACNO,KAAKJ,YAAc,IAIvBM,QAAO,WACDF,KAAKd,eACPc,KAAKpC,OAASE,SAASC,cAAciC,KAAKd,cAErCc,KAAKpC,QACRuC,eAAY,4CAADC,OAA6CJ,KAAKd,cAAgBc,QAKnFK,QAAS,CACPC,SAAQ,eAAAC,EAAA,KACDP,KAAKF,YAEVE,KAAKL,eAAiBK,KAAKT,cAC3BS,KAAKT,cAAgBS,KAAKpC,OACtBoC,KAAKpC,OAAO4C,UACZxC,OAAOyC,YAEXT,KAAKN,cAAgBM,KAAKT,cAAgBS,KAAKL,eAC/CK,KAAKR,iBAAmBkB,KAAKC,IAAIX,KAAKT,cAAgBS,KAAKD,yBAE3DC,KAAKY,WAAU,WAEXF,KAAKC,IAAIJ,EAAKhB,cAAgBgB,EAAKX,aACnCW,EAAKR,yBACLQ,EAAKM,oBAQXA,aAAY,gB,gDC/EVC,EAAaC,eACjBC,OACAC,EACAC,OACAC,OACAC,eAAgB,MAAO,CACrB,cACA,eACA,iBACA,iBACA,aACA,cACA,WAKWN,SAAWhC,OAAO,CAC/BC,KAAM,YAENC,WAAY,CAAEJ,UAEdyC,QAAO,WACL,MAAO,CAAEC,QAAStB,OAGpBf,MAAO,CACLsC,YAAaC,QACbC,aAAcD,QACdE,iBAAkBF,QAClBG,gBAAiBH,QACjBI,gBAAiBJ,QACjBK,aAAcL,QACdM,eAAgBN,QAChBO,gBAAiBP,QACjBQ,eAAgBR,QAChBjE,MAAO,CACL0E,KAAMT,QACNU,SAAS,IAIb5C,KAAI,WACF,MAAO,CACLG,SAAUO,KAAKzC,QAInBsC,SAAU,CACRsC,oBAAmB,WACjB,OAAQnC,KAAKoC,OAAiB,SAAR,OAExBtC,UAAS,WACP,OACEmB,EAAWzD,QAAQqC,SAASC,UAAUuC,KAAKrC,QAEzCA,KAAK8B,gBACL9B,KAAK2B,iBACL3B,KAAK6B,cACL7B,KAAK0B,kBACL1B,KAAKsC,WAIJtC,KAAKzC,QAIZgF,QAAO,WACL,OAAAC,8BAAA,GACKxB,OAASxD,QAAQqC,SAAS0C,QAAQF,KAAKrC,OADrC,IAEL,sBAAuBA,KAAKyC,UAAYzC,KAAK0B,iBAC7C,aAAa,EACb,qBAAsB1B,KAAKuB,aAAevB,KAAKyB,aAC/C,gCAAiCzB,KAAK4B,gBACtC,+BAAgC5B,KAAK2B,gBACrC,oBAAqB3B,KAAK0C,WAAa1C,KAAK2C,KAAO3C,KAAK4C,OACxD,yBAA0B5C,KAAK6C,WAC/B,yBAA0B7C,KAAKT,cAAgB,EAC/C,8BAA+BS,KAAKgC,kBAGxCc,YAAW,WACT,IAAMC,EAAY/C,KAAKD,wBACvB,OAAOW,KAAKsC,KAAKD,EAAY/C,KAAKT,eAAiBwD,EAAW,IAEhEE,sBAAqB,WACnB,IAAKjD,KAAKgC,eAAgB,OAAOhB,OAASxD,QAAQqC,SAASoD,sBAAsBZ,KAAKrC,MAEtF,IAAMkD,EAAMlD,KAAKmD,MAAQ,GAAK,GACxBH,EAAMhD,KAAKoD,uBAEjB,OAAOF,GAAOF,EAAME,GAAOlD,KAAK8C,aAElCO,iBAAgB,WACd,GAAKrD,KAAKsD,YAAV,CAEA,IAAMJ,EAAM,KACNF,EAAM,IAEZ,OAAOE,GAAOF,EAAME,GAAOlD,KAAK8C,cAElCS,aAAY,WACV,OAAKvD,KAAK2C,KAAO3C,KAAKuB,YAAoB,EAEnCvB,KAAKwD,SAASC,YAAYC,MAEnCC,kBAAiB,WACf,OAAK3D,KAAK2C,IAEH3C,KAAKwD,SAASC,YAAYG,IAFX,GAIxBC,gBAAe,WACb,GAAK7D,KAAK4B,gBAEV,OAAO5B,KAAK8C,aAEdM,uBAAsB,WACpB,IAAIU,EAAS9C,OAASxD,QAAQqC,SAASoD,sBAAsBZ,KAAKrC,MAElE,OADIA,KAAK+D,aAAYD,GAAUE,SAAShE,KAAKiE,kBACtCH,GAETI,cAAa,WACX,OAAKlE,KAAK2C,KAAO3C,KAAKyB,aAAqB,EAEpCzB,KAAKwD,SAASC,YAAYU,OAEnCpE,wBAAuB,WACrB,OAAIC,KAAKZ,gBAAwBC,OAAOW,KAAKZ,iBAEtCY,KAAKoD,wBAA0BpD,KAAKmD,MAAQ,GAAK,KAE1DiB,kBAAiB,WACf,IACGpE,KAAKF,WACLE,KAAK2B,iBAA0C,IAAvB3B,KAAKT,eAAuBS,KAAKP,SAC1D,OAAO,EAET,GAAIO,KAAKP,SAAU,OAAO,EAE1B,IAAMsC,EAAkB/B,KAAK+B,gBACzB/B,KAAKqE,eACLrE,KAAKiD,sBAET,OAAOjD,KAAKoC,OAASL,GAAmBA,GAE1Cc,WAAU,WACR,OAAI7C,KAAK2B,iBAAmB3B,KAAK+D,WACxB/D,KAAKT,cAAgBS,KAAKD,wBAG/BC,KAAK2B,gBACuB,IAAvB3B,KAAKT,eACVS,KAAKoE,kBAAoB,IAI1BpE,KAAK+D,YACN/D,KAAK+B,kBACyB,IAA3B/B,KAAKoE,mBAEZE,YAAW,WACT,OAAKtE,KAAK0B,iBAIH1B,KAAKT,cAAgB,EAHnByB,OAASxD,QAAQqC,SAASyE,YAAYjC,KAAKrC,OAKtDsD,YAAW,WACT,OACEtC,OAASxD,QAAQqC,SAASyD,YAAYjB,KAAKrC,OAC3CA,KAAKgC,gBAGTuC,OAAM,WACJ,OAAA/B,8BAAA,GACKxB,OAASxD,QAAQqC,SAAS0E,OAAOlC,KAAKrC,OADpC,IAELwE,SAAUC,eAAczE,KAAKqD,iBAAkB,OAC/CqB,UAAWD,eAAczE,KAAK2D,mBAC9BgB,UAAW,cAAFvE,OAAgBqE,eAAczE,KAAKoE,mBAAkB,KAC9DV,KAAMe,eAAczE,KAAKuD,cACzBY,MAAOM,eAAczE,KAAKkE,mBAKhCjE,MAAO,CACLH,UAAW,WACXsE,kBAAiB,WAQZpE,KAAKF,YACJE,KAAKuB,aAAgBvB,KAAKyB,eAG9BzB,KAAK4E,cAEP9C,eAAc,SAAE+C,GACd7E,KAAKP,UAAYoF,GAA8B,IAAvB7E,KAAKT,eAE/BsC,aAAY,SAAEgD,GACZ7E,KAAKP,UAAYoF,GAAO7E,KAAKT,cAAgBS,KAAKD,0BAItD+E,QAAO,WACD9E,KAAK8B,iBAAgB9B,KAAKP,UAAW,IAG3CY,QAAS,CACP0E,cAAa,WACX,IAAMC,EAAShE,OAASxD,QAAQ6C,QAAQ0E,cAAc1C,KAAKrC,MAM3D,OAJAgF,EAAO1F,KAAOU,KAAKiF,GAAGD,EAAO1F,MAAQ,GAAI0F,EAAOE,IAAM,CACpDC,MAAO,CAAEC,QAASpF,KAAK6D,mBAGlBmB,GAETK,kBAAiB,WACf,OAAOrF,KAAK8B,eACR,EACA9B,KAAKqE,eAAiBrE,KAAKoE,mBAEjCvD,aAAY,WACNb,KAAK8B,eACP9B,KAAKP,SAAWO,KAAKT,cAAgBS,KAAKD,yBAIxCC,KAAK6B,eACP7B,KAAKP,SAAWO,KAAKN,eACnBM,KAAKT,cAAgBS,KAAKD,yBAG1BC,KAAKR,iBAAmBQ,KAAKD,0BAEjCC,KAAKJ,YAAcI,KAAKT,kBAI5ByF,OAAM,SAAEM,GACN,IAAMN,EAAShE,OAASxD,QAAQwH,OAAO3C,KAAKrC,KAAMsF,GAalD,OAXAN,EAAO1F,KAAO0F,EAAO1F,MAAQ,GAEzBU,KAAKF,YACPkF,EAAO1F,KAAKN,WAAagG,EAAO1F,KAAKN,YAAc,GACnDgG,EAAO1F,KAAKN,WAAWuG,KAAK,CAC1B1H,IAAKmC,KAAKd,aACVH,KAAM,SACNxB,MAAOyC,KAAKM,YAIT0E,M,uMCzQIQ,cAAO1G,OAAO,CAC3BC,KAAM,YAENE,MAAO,CACLyD,SAAUlB,QACVY,OAAQZ,QACRiB,SAAUjB,QACV2B,MAAO3B,QACPiE,SAAUjE,QACVyC,gBAAiB,CACf/B,QAAS,GACTD,KAAM,CAAC5C,OAAQF,SAEjBuG,KAAMlE,QACNmE,SAAUnE,QACVoE,UAAWpE,QACXqE,MAAOrE,QACPsE,IAAK,CACH7D,KAAM,CAAC9C,OAAQhB,QACf+D,QAAS,IAEXgD,IAAK,CACHjD,KAAM9C,OACN+C,QAAS,WAIb5C,KAAM,iBAAO,CACXyE,YAAY,IAGdlE,SAAU,CACRwE,eAAc,WACZ,IAAMP,EAAS9D,KAAKiD,sBAEpB,IAAKjD,KAAK+D,WAAY,OAAOD,EAE7B,IAAMG,EAAkBD,SAAShE,KAAKiE,iBAEtC,OAAOjE,KAAKsE,YACRR,EACAA,GAAWiC,MAAM9B,GAAqC,EAAlBA,IAE1ChB,sBAAqB,WACnB,OAAIjD,KAAK8D,OAAeE,SAAShE,KAAK8D,QAClC9D,KAAKsD,aAAetD,KAAKmD,MAAc,GACvCnD,KAAKsD,aAAetD,KAAK6F,MAAc,IACvC7F,KAAKsD,YAAoB,IACzBtD,KAAKmD,MAAc,GACnBnD,KAAK6F,OAAS7F,KAAKwD,SAASwC,WAAWC,UAAkB,GACtD,IAET1D,QAAO,WACL,OAAAC,8BAAA,GACKgD,OAAOhI,QAAQqC,SAAS0C,QAAQF,KAAKrC,OADnC,IAEL,aAAa,EACb,sBAAuBA,KAAK0C,SAC5B,oBAAqB1C,KAAKoC,OAC1B,sBAAuBpC,KAAKyC,SAC5B,uBAAwBzC,KAAKsE,YAC7B,mBAAoBtE,KAAKmD,MACzB,sBAAuBnD,KAAK+D,WAC5B,kBAAmB/D,KAAK0F,KACxB,sBAAuB1F,KAAK2F,SAC5B,uBAAwB3F,KAAKsD,eAGjCgB,YAAW,WACT,OAAOtE,KAAKyC,UAEda,YAAW,WACT,OAAOtD,KAAK4F,WAEdrB,OAAM,WACJ,OAAA/B,8BAAA,GACKxC,KAAKkG,kBADH,IAELpC,OAAQW,eAAczE,KAAKqE,oBAKjCS,QAAO,eAAAvE,EAAA,KACC4F,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,SAAAjJ,GAA4B,IAAAkJ,EAAAC,eAAAnJ,EAAA,GAA1BoJ,EAADF,EAAC,GAAUG,EAAXH,EAAC,GAClB9F,EAAKkG,OAAOC,eAAeH,IAAWI,eAASJ,EAAUC,EAAajG,OAI9EF,QAAS,CACP0E,cAAa,WACX,IAAM9F,EAAQ,CACZ6E,OAAQW,eAAczE,KAAKqE,gBAC3ByB,IAAK9F,KAAK8F,KAGNc,EAAQ5G,KAAK6G,aAAaC,IAC5B9G,KAAK6G,aAAaC,IAAI,CAAE7H,UACxBe,KAAK+G,eAAeC,OAAM,CAAE/H,UAEhC,OAAOe,KAAK+G,eAAe,MAAO,CAChCE,YAAa,oBACZ,CAACL,KAENM,WAAU,WACR,OAAOlH,KAAK+G,eAAe,MAAO,CAChCE,YAAa,qBACb9B,MAAO,CACLrB,OAAQW,eAAczE,KAAKiD,yBAE5BkE,eAAQnH,QAEboH,aAAY,WACV,OAAOpH,KAAK+G,eAAe,MAAO,CAChCE,YAAa,uBACb9B,MAAO,CACLrB,OAAQW,eAAczE,KAAKiE,mBAE5BkD,eAAQnH,KAAM,gBAIrBgF,OAAM,SAAEM,GACNtF,KAAK+D,WAAa/D,KAAKyF,YAAczF,KAAK6G,aAAaQ,UAEvD,IAAMC,EAAW,CAACtH,KAAKkH,cACjB5H,EAAOU,KAAKuH,mBAAmBvH,KAAKwH,MAAO,CAC/CC,MAAOzH,KAAKuC,QACZ4C,MAAOnF,KAAKuE,OACZmD,GAAI1H,KAAK2H,aAMX,OAHI3H,KAAK+D,YAAYuD,EAAS/B,KAAKvF,KAAKoH,iBACpCpH,KAAK8F,KAAO9F,KAAK6G,aAAaC,MAAKQ,EAASM,QAAQ5H,KAAK+E,iBAEtDO,EAAEtF,KAAKkF,IAAK5F,EAAMgI,O","file":"js/AccountSettings~ActivityLog~AddCustomLabel~AddItem~AddressBook~AdminDashboard~BarcodePlacement~CodeM~7e2018c5.642aa209.js","sourcesContent":["import { VNodeDirective } from 'vue/types/vnode'\nimport { DirectiveOptions, VNode } from 'vue'\n\ninterface ScrollVNodeDirective extends Omit {\n value: EventListener | {\n handler: EventListener\n options?: boolean | AddEventListenerOptions\n } | EventListenerObject & { options?: boolean | AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ScrollVNodeDirective, vnode: VNode) {\n const { self = false } = binding.modifiers || {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = Object(el._onScroll)\n el._onScroll![vnode.context!._uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unbind (el: HTMLElement, binding: ScrollVNodeDirective, vnode: VNode) {\n if (!el._onScroll?.[vnode.context!._uid]) return\n\n const { handler, options, target = el } = el._onScroll[vnode.context!._uid]!\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll[vnode.context!._uid]\n}\n\nexport const Scroll = {\n inserted,\n unbind,\n} as DirectiveOptions\n\nexport default Scroll\n","// Directives\nimport { Scroll } from '../../directives'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\n/**\n * Scrollable\n *\n * Used for monitoring scrolling and\n * invoking functions based upon\n * scrolling thresholds being\n * met.\n */\n/* @vue/component */\nexport default Vue.extend({\n name: 'scrollable',\n\n directives: { Scroll },\n\n props: {\n scrollTarget: String,\n scrollThreshold: [String, Number],\n },\n\n data: () => ({\n currentScroll: 0,\n currentThreshold: 0,\n isActive: false,\n isScrollingUp: false,\n previousScroll: 0,\n savedScroll: 0,\n target: null as Element | null,\n }),\n\n computed: {\n /**\n * A computed property that returns\n * whether scrolling features are\n * enabled or disabled\n */\n canScroll (): boolean {\n return typeof window !== 'undefined'\n },\n /**\n * The threshold that must be met before\n * thresholdMet function is invoked\n */\n computedScrollThreshold (): number {\n return this.scrollThreshold\n ? Number(this.scrollThreshold)\n : 300\n },\n },\n\n watch: {\n isScrollingUp () {\n this.savedScroll = this.savedScroll || this.currentScroll\n },\n isActive () {\n this.savedScroll = 0\n },\n },\n\n mounted () {\n if (this.scrollTarget) {\n this.target = document.querySelector(this.scrollTarget)\n\n if (!this.target) {\n consoleWarn(`Unable to locate element with identifier ${this.scrollTarget}`, this)\n }\n }\n },\n\n methods: {\n onScroll () {\n if (!this.canScroll) return\n\n this.previousScroll = this.currentScroll\n this.currentScroll = this.target\n ? this.target.scrollTop\n : window.pageYOffset\n\n this.isScrollingUp = this.currentScroll < this.previousScroll\n this.currentThreshold = Math.abs(this.currentScroll - this.computedScrollThreshold)\n\n this.$nextTick(() => {\n if (\n Math.abs(this.currentScroll - this.savedScroll) >\n this.computedScrollThreshold\n ) this.thresholdMet()\n })\n },\n /**\n * The method invoked when\n * scrolling in any direction\n * has exceeded the threshold\n */\n thresholdMet () { /* noop */ },\n },\n})\n","// Styles\nimport './VAppBar.sass'\n\n// Extensions\nimport VToolbar from '../VToolbar/VToolbar'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Scrollable from '../../mixins/scrollable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VToolbar,\n Scrollable,\n SSRBootable,\n Toggleable,\n Applicationable('top', [\n 'clippedLeft',\n 'clippedRight',\n 'computedHeight',\n 'invertedScroll',\n 'isExtended',\n 'isProminent',\n 'value',\n ])\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-app-bar',\n\n directives: { Scroll },\n\n provide (): object {\n return { VAppBar: this }\n },\n\n props: {\n clippedLeft: Boolean,\n clippedRight: Boolean,\n collapseOnScroll: Boolean,\n elevateOnScroll: Boolean,\n fadeImgOnScroll: Boolean,\n hideOnScroll: Boolean,\n invertedScroll: Boolean,\n scrollOffScreen: Boolean,\n shrinkOnScroll: Boolean,\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n isActive: this.value,\n }\n },\n\n computed: {\n applicationProperty (): string {\n return !this.bottom ? 'top' : 'bottom'\n },\n canScroll (): boolean {\n return (\n Scrollable.options.computed.canScroll.call(this) &&\n (\n this.invertedScroll ||\n this.elevateOnScroll ||\n this.hideOnScroll ||\n this.collapseOnScroll ||\n this.isBooted ||\n // If falsy, user has provided an\n // explicit value which should\n // overwrite anything we do\n !this.value\n )\n )\n },\n classes (): object {\n return {\n ...VToolbar.options.computed.classes.call(this),\n 'v-toolbar--collapse': this.collapse || this.collapseOnScroll,\n 'v-app-bar': true,\n 'v-app-bar--clipped': this.clippedLeft || this.clippedRight,\n 'v-app-bar--fade-img-on-scroll': this.fadeImgOnScroll,\n 'v-app-bar--elevate-on-scroll': this.elevateOnScroll,\n 'v-app-bar--fixed': !this.absolute && (this.app || this.fixed),\n 'v-app-bar--hide-shadow': this.hideShadow,\n 'v-app-bar--is-scrolled': this.currentScroll > 0,\n 'v-app-bar--shrink-on-scroll': this.shrinkOnScroll,\n }\n },\n scrollRatio (): number {\n const threshold = this.computedScrollThreshold\n return Math.max((threshold - this.currentScroll) / threshold, 0)\n },\n computedContentHeight (): number {\n if (!this.shrinkOnScroll) return VToolbar.options.computed.computedContentHeight.call(this)\n\n const min = this.dense ? 48 : 56\n const max = this.computedOriginalHeight\n\n return min + (max - min) * this.scrollRatio\n },\n computedFontSize (): number | undefined {\n if (!this.isProminent) return undefined\n\n const min = 1.25\n const max = 1.5\n\n return min + (max - min) * this.scrollRatio\n },\n computedLeft (): number {\n if (!this.app || this.clippedLeft) return 0\n\n return this.$vuetify.application.left\n },\n computedMarginTop (): number {\n if (!this.app) return 0\n\n return this.$vuetify.application.bar\n },\n computedOpacity (): number | undefined {\n if (!this.fadeImgOnScroll) return undefined\n\n return this.scrollRatio\n },\n computedOriginalHeight (): number {\n let height = VToolbar.options.computed.computedContentHeight.call(this)\n if (this.isExtended) height += parseInt(this.extensionHeight)\n return height\n },\n computedRight (): number {\n if (!this.app || this.clippedRight) return 0\n\n return this.$vuetify.application.right\n },\n computedScrollThreshold (): number {\n if (this.scrollThreshold) return Number(this.scrollThreshold)\n\n return this.computedOriginalHeight - (this.dense ? 48 : 56)\n },\n computedTransform (): number {\n if (\n !this.canScroll ||\n (this.elevateOnScroll && this.currentScroll === 0 && this.isActive)\n ) return 0\n\n if (this.isActive) return 0\n\n const scrollOffScreen = this.scrollOffScreen\n ? this.computedHeight\n : this.computedContentHeight\n\n return this.bottom ? scrollOffScreen : -scrollOffScreen\n },\n hideShadow (): boolean {\n if (this.elevateOnScroll && this.isExtended) {\n return this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.elevateOnScroll) {\n return this.currentScroll === 0 ||\n this.computedTransform < 0\n }\n\n return (\n !this.isExtended ||\n this.scrollOffScreen\n ) && this.computedTransform !== 0\n },\n isCollapsed (): boolean {\n if (!this.collapseOnScroll) {\n return VToolbar.options.computed.isCollapsed.call(this)\n }\n\n return this.currentScroll > 0\n },\n isProminent (): boolean {\n return (\n VToolbar.options.computed.isProminent.call(this) ||\n this.shrinkOnScroll\n )\n },\n styles (): object {\n return {\n ...VToolbar.options.computed.styles.call(this),\n fontSize: convertToUnit(this.computedFontSize, 'rem'),\n marginTop: convertToUnit(this.computedMarginTop),\n transform: `translateY(${convertToUnit(this.computedTransform)})`,\n left: convertToUnit(this.computedLeft),\n right: convertToUnit(this.computedRight),\n }\n },\n },\n\n watch: {\n canScroll: 'onScroll',\n computedTransform () {\n // Normally we do not want the v-app-bar\n // to update the application top value\n // to avoid screen jump. However, in\n // this situation, we must so that\n // the clipped drawer can update\n // its top value when scrolled\n if (\n !this.canScroll ||\n (!this.clippedLeft && !this.clippedRight)\n ) return\n\n this.callUpdate()\n },\n invertedScroll (val: boolean) {\n this.isActive = !val || this.currentScroll !== 0\n },\n hideOnScroll (val: boolean) {\n this.isActive = !val || this.currentScroll < this.computedScrollThreshold\n },\n },\n\n created () {\n if (this.invertedScroll) this.isActive = false\n },\n\n methods: {\n genBackground () {\n const render = VToolbar.options.methods.genBackground.call(this)\n\n render.data = this._b(render.data || {}, render.tag!, {\n style: { opacity: this.computedOpacity },\n })\n\n return render\n },\n updateApplication (): number {\n return this.invertedScroll\n ? 0\n : this.computedHeight + this.computedTransform\n },\n thresholdMet () {\n if (this.invertedScroll) {\n this.isActive = this.currentScroll > this.computedScrollThreshold\n return\n }\n\n if (this.hideOnScroll) {\n this.isActive = this.isScrollingUp ||\n this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.currentThreshold < this.computedScrollThreshold) return\n\n this.savedScroll = this.currentScroll\n },\n },\n\n render (h): VNode {\n const render = VToolbar.options.render.call(this, h)\n\n render.data = render.data || {}\n\n if (this.canScroll) {\n render.data.directives = render.data.directives || []\n render.data.directives.push({\n arg: this.scrollTarget,\n name: 'scroll',\n value: this.onScroll,\n })\n }\n\n return render\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"],"sourceRoot":""}