{"version":3,"sources":["webpack:///../../../src/mixins/scrollable/index.ts","webpack:///../../../src/components/VAppBar/VAppBar.ts","webpack:///../../../src/components/VAppBar/VAppBarNavIcon.ts","webpack:///./src/demo/usages/usage.js","webpack:///./src/demo/usages/app-bars.vue?c60e","webpack:///src/demo/usages/app-bars.vue","webpack:///./src/demo/usages/app-bars.vue?2e1f","webpack:///./src/demo/usages/app-bars.vue","webpack:///../../../src/directives/scroll/index.ts"],"names":["name","directives","Scroll","props","scrollTarget","scrollThreshold","String","Number","data","currentScroll","currentThreshold","isActive","isScrollingUp","previousScroll","savedScroll","target","computed","canScroll","window","computedScrollThreshold","this","watch","mounted","document","methods","onScroll","Math","thresholdMet","baseMixins","provide","VAppBar","clippedLeft","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","value","type","default","applicationProperty","classes","collapse","app","scrollRatio","threshold","computedContentHeight","min","dense","max","computedFontSize","computedLeft","$vuetify","application","computedMarginTop","computedOpacity","computedOriginalHeight","height","parseInt","computedRight","computedTransform","bottom","hideShadow","isCollapsed","isProminent","styles","fontSize","marginTop","transform","left","right","val","created","genBackground","render","_b","style","opacity","updateApplication","computedHeight","arg","functional","d","Object","staticClass","icon","on","listeners","defaultSlot","slots","h","attrs","_vm","_h","$createElement","_c","_self","image","_v","staticRenderFns","alert","component","VAppBarNavIcon","VBtn","VIcon","VResponsive","VSpacer","VToolbarTitle","VToolbar","inserted","binding","self","options","passive","handler","el","undefined","unbind"],"mappings":"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","file":"js/usages1.d06071af.js","sourcesContent":["// 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 },\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","// Components\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn/VBtn'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-app-bar-nav-icon',\n\n functional: true,\n\n render (h, { slots, listeners, props, data }) {\n const d = Object.assign(data, {\n staticClass: (`v-app-bar__nav-icon ${data.staticClass || ''}`).trim(),\n props: {\n ...props,\n icon: true,\n },\n on: listeners,\n })\n\n const defaultSlot = slots().default\n\n return h(VBtn, d, defaultSlot || [h(VIcon, '$menu')])\n },\n})\n","export default {\n props: {\n attrs: {\n type: Object,\n default: () => ({}),\n },\n },\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-app-bar',_vm._b({attrs:{\"src\":_vm.attrs.image ? 'https://picsum.photos/1920/1080?random' : '',\"absolute\":\"\",\"dark\":\"\",\"scroll-target\":\"#usage-example\"}},'v-app-bar',_vm.attrs,false),[_c('v-app-bar-nav-icon'),_c('v-toolbar-title',[_vm._v(\"Title\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-magnify\")])],1)],1),_c('v-responsive',{attrs:{\"height\":\"1000\"}},[_vm._v(\" \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-bars.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-bars.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./app-bars.vue?vue&type=template&id=4887d26d&\"\nimport script from \"./app-bars.vue?vue&type=script&lang=js&\"\nexport * from \"./app-bars.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VAppBarNavIcon } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VResponsive } from 'vuetify/lib/components/VResponsive';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAppBar,VAppBarNavIcon,VBtn,VIcon,VResponsive,VSpacer,VToolbarTitle})\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { DirectiveOptions } 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) {\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 = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unbind (el: HTMLElement) {\n if (!el._onScroll) return\n\n const { handler, options, target = el } = el._onScroll\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll\n}\n\nexport const Scroll = {\n inserted,\n unbind,\n} as DirectiveOptions\n\nexport default Scroll\n"],"sourceRoot":""}