{"version":3,"sources":["webpack:///./node_modules/quasar/src/utils/selection.js","webpack:///./node_modules/quasar/src/components/menu/ClickOutside.js","webpack:///./node_modules/quasar/src/components/menu/menu-tree.js","webpack:///./node_modules/quasar/src/components/menu/QMenu.js","webpack:///./node_modules/core-js/modules/es6.string.anchor.js","webpack:///./node_modules/quasar/src/utils/position-engine.js","webpack:///./node_modules/quasar/src/mixins/anchor.js","webpack:///./node_modules/quasar/src/utils/touch-observer.js","webpack:///./node_modules/quasar/src/directives/TouchPan.js","webpack:///./node_modules/quasar/src/components/layout/QDrawer.js"],"names":["clearSelection","window","getSelection","selection","empty","removeAllRanges","Platform","is","mobile","addRange","document","createRange","evtOpts","listenOpts","hasPassive","passive","capture","name","bind","el","value","arg","ctx","trigger","handler","evt","target","body","contains","i","length","parent","parentNode","classList","sibling","previousSibling","__qclickoutside","__qclickoutside_old","addEventListener","update","oldValue","unbind","removeEventListener","bus","Vue","tree","rootHide","closeRootMenu","id","res","find","key","MenuTreeMixin","methods","__registerTree","this","menuId","$root","menuParentId","$emit","$on","__processEvent","hide","__unregisterTree","$off","child","extend","mixins","AnchorMixin","ModelToggleMixin","PortalMixin","TransitionMixin","directives","ClickOutside","props","fit","Boolean","cover","anchor","type","String","validator","validatePosition","self","offset","Array","validateOffset","noParentEvent","touchPosition","persistent","autoClose","maxHeight","default","maxWidth","data","uid","computed","horizSide","$q","lang","rtl","anchorOrigin","parsePosition","selfOrigin","watch","val","anchorEl","__unconfigureAnchorEl","__configureAnchorEl","__show","clearTimeout","timer","prevent","scrollTarget","getScrollTarget","updatePosition","EscapeKey","register","__showPortal","setTimeout","getBoundingClientRect","top","left","contextMenu","pos","position","absoluteOffset","unwatch","$watch","__hide","__anchorCleanup","__hidePortal","hiding","showing","pop","__onAutoClose","e","$listeners","click","__portal","$el","nodeType","style","setPosition","__render","h","on","input","stop","transition","staticClass","class","contentClass","contentStyle","attrs","$attrs","slot","__onPortalCreated","vm","__onPortalClose","createHTML","parts","split","includes","console","error","vertical","horizontal","getAnchorProps","right","bottom","width","height","middle","center","getTargetProps","offsetHeight","offsetWidth","anchorProps","anchorTop","anchorLeft","minWidth","minHeight","targetProps","applyBoundaries","Math","max","margin","getScrollbarWidth","innerHeight","innerWidth","min","anchorY","anchorX","__pickAnchorEl","__showCondition","touches","__contextClick","show","__toggleKey","keyCode","toggle","__mobileTouch","__mobileCleanup","add","touchTimer","remove","context","platform","forEach","__setAnchorEl","querySelector","parentEl","mounted","$nextTick","beforeDestroy","setObserver","fn","touchTargetObserver","MutationObserver","end","observe","childList","subtree","removeObserver","disconnect","getDirection","mod","none","dir","all","processChanges","isFinal","direction","distX","event","x","distY","y","absDistX","abs","absDistY","isFirst","isMouse","mouse","duration","Date","getTime","time","distance","delta","lastX","lastY","shouldTrigger","changes","binding","modifiers","mouseEvtPassive","mouseMightPrevent","mousePrevent","mouseEvtOpts","touchEvtPassive","mightPrevent","touchEvtOpts","handleEvent","mouseEvent","mouseStop","mouseStart","leftClick","move","mouseEnd","start","detected","abort","mouseAllDir","documentElement","cursor","__qtouchpan","__qtouchpan_old","inject","layout","PreventScrollMixin","TouchPan","overlay","side","v","Number","mini","miniWidth","breakpoint","behavior","bordered","elevated","showIfAbove","Object","noSwipeOpen","noSwipeClose","largeScreenState","belowBreakpoint","mobileOpened","_","oldSide","space","__updateLocal","applyPosition","__update","onLayout","$route","onScreenOverlay","rightSide","size","__animateMini","__animate","isMini","fixed","view","indexOf","mobileView","backdropClass","headerSlot","rows","footerSlot","aboveStyle","css","header","footer","classes","stateDirection","onNativeEvents","mouseover","mouseout","$refs","content","container","scrollbarWidth","transform","applyBackdrop","backdrop","backgroundColor","__setScrollable","timerMini","__openByTouch","between","opened","__closeByTouch","otherSide","instances","__preventScroll","__cleanup","prop","created","render","ref","$scopedSlots","push","concat"],"mappings":"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","file":"js/chunk-09b666d7.94a4fe93.js","sourcesContent":["import Platform from '../plugins/Platform.js'\n\nexport function clearSelection () {\n if (window.getSelection !== void 0) {\n const selection = window.getSelection()\n if (selection.empty !== void 0) {\n selection.empty()\n }\n else if (selection.removeAllRanges !== void 0) {\n selection.removeAllRanges()\n Platform.is.mobile !== true && selection.addRange(document.createRange())\n }\n }\n else if (document.selection !== void 0) {\n document.selection.empty()\n }\n}\n","import { listenOpts } from '../../utils/event.js'\n\nconst evtOpts = listenOpts.hasPassive === true\n ? { passive: false, capture: true }\n : true\n\nexport default {\n name: 'click-outside',\n\n bind (el, { value, arg }) {\n const ctx = {\n trigger: value,\n handler (evt) {\n const target = evt && evt.target\n\n if (target && target !== document.body) {\n if (el.contains(target)) {\n return\n }\n\n if (arg !== void 0) {\n for (let i = 0; i < arg.length; i++) {\n if (arg[i].contains(target)) {\n return\n }\n }\n }\n\n let parent = target\n while ((parent = parent.parentNode) !== document.body) {\n if (parent === el) {\n return\n }\n if (parent.classList.contains('q-menu') || parent.classList.contains('q-dialog')) {\n let sibling = parent\n while ((sibling = sibling.previousSibling) !== null) {\n if (sibling === el) {\n return\n }\n }\n }\n }\n }\n\n ctx.trigger(evt)\n }\n }\n\n if (el.__qclickoutside) {\n el.__qclickoutside_old = el.__qclickoutside\n }\n\n el.__qclickoutside = ctx\n document.body.addEventListener('mousedown', ctx.handler, evtOpts)\n document.body.addEventListener('touchstart', ctx.handler, evtOpts)\n },\n\n update (el, { value, oldValue }) {\n if (value !== oldValue) {\n el.__qclickoutside.trigger = value\n }\n },\n\n unbind (el) {\n const ctx = el.__qclickoutside_old || el.__qclickoutside\n if (ctx !== void 0) {\n document.body.removeEventListener('mousedown', ctx.handler, evtOpts)\n document.body.removeEventListener('touchstart', ctx.handler, evtOpts)\n delete el[el.__qclickoutside_old ? '__qclickoutside_old' : '__qclickoutside']\n }\n }\n}\n","import Vue from 'vue'\n\nconst\n bus = new Vue(),\n tree = {},\n rootHide = {}\n\n/*\n * Tree has (key: value) entries where\n *\n * key: menuId\n *\n * value --> (true / menuId)\n * true --- means has no sub-menu opened\n * menuId --- menuId of the sub-menu that is currently opened\n *\n */\n\nexport function closeRootMenu (id) {\n while (tree[id] !== void 0) {\n const res = Object.keys(tree).find(key => tree[key] === id)\n if (res !== void 0) {\n id = res\n }\n else {\n rootHide[id] !== void 0 && rootHide[id]()\n return true\n }\n }\n}\n\nexport const MenuTreeMixin = {\n methods: {\n __registerTree () {\n tree[this.menuId] = true\n\n if (this.$root.menuParentId === void 0) {\n rootHide[this.menuId] = this.hide\n return\n }\n\n if (tree[this.$root.menuParentId] !== true) {\n bus.$emit('hide', tree[this.$root.menuParentId])\n }\n\n bus.$on('hide', this.__processEvent)\n tree[this.$root.menuParentId] = this.menuId\n },\n\n __unregisterTree () {\n // if it hasn't been registered or already unregistered (beforeDestroy)\n if (tree[this.menuId] === void 0) {\n return\n }\n\n delete rootHide[this.menuId]\n\n if (this.$root.menuParentId !== void 0) {\n bus.$off('hide', this.__processEvent)\n }\n\n const child = tree[this.menuId]\n\n delete tree[this.menuId]\n\n if (child !== true) {\n bus.$emit('hide', child)\n }\n },\n\n __processEvent (id) {\n this.menuId === id && this.hide()\n }\n }\n}\n","import Vue from 'vue'\n\nimport AnchorMixin from '../../mixins/anchor.js'\nimport ModelToggleMixin from '../../mixins/model-toggle.js'\nimport PortalMixin from '../../mixins/portal.js'\nimport TransitionMixin from '../../mixins/transition.js'\n\nimport ClickOutside from './ClickOutside.js'\nimport uid from '../../utils/uid.js'\nimport { getScrollTarget } from '../../utils/scroll.js'\nimport { stop, prevent, position, listenOpts } from '../../utils/event.js'\nimport EscapeKey from '../../utils/escape-key.js'\nimport { MenuTreeMixin, closeRootMenu } from './menu-tree.js'\n\nimport slot from '../../utils/slot.js'\n\nimport {\n validatePosition, validateOffset, setPosition, parsePosition\n} from '../../utils/position-engine.js'\n\nexport default Vue.extend({\n name: 'QMenu',\n\n mixins: [ AnchorMixin, ModelToggleMixin, PortalMixin, MenuTreeMixin, TransitionMixin ],\n\n directives: {\n ClickOutside\n },\n\n props: {\n fit: Boolean,\n cover: Boolean,\n\n anchor: {\n type: String,\n validator: validatePosition\n },\n self: {\n type: String,\n validator: validatePosition\n },\n offset: {\n type: Array,\n validator: validateOffset\n },\n noParentEvent: Boolean,\n\n touchPosition: Boolean,\n persistent: Boolean,\n autoClose: Boolean,\n\n maxHeight: {\n type: String,\n default: null\n },\n maxWidth: {\n type: String,\n default: null\n }\n },\n\n data () {\n return {\n menuId: uid()\n }\n },\n\n computed: {\n horizSide () {\n return this.$q.lang.rtl ? 'right' : 'left'\n },\n\n anchorOrigin () {\n return parsePosition(\n this.anchor || (\n this.cover === true ? `center middle` : `bottom ${this.horizSide}`\n )\n )\n },\n\n selfOrigin () {\n return this.cover === true\n ? this.anchorOrigin\n : parsePosition(this.self || `top ${this.horizSide}`)\n }\n },\n\n watch: {\n noParentEvent (val) {\n if (this.anchorEl !== void 0) {\n if (val === true) {\n this.__unconfigureAnchorEl()\n }\n else {\n this.__configureAnchorEl()\n }\n }\n }\n },\n\n methods: {\n __show (evt) {\n clearTimeout(this.timer)\n evt !== void 0 && prevent(evt)\n\n this.scrollTarget = getScrollTarget(this.anchorEl)\n this.scrollTarget.addEventListener('scroll', this.updatePosition, listenOpts.passive)\n if (this.scrollTarget !== window) {\n window.addEventListener('scroll', this.updatePosition, listenOpts.passive)\n }\n\n EscapeKey.register(this, () => {\n this.$emit('escape-key')\n this.hide()\n })\n\n this.__showPortal()\n this.__registerTree()\n\n this.timer = setTimeout(() => {\n const { top, left } = this.anchorEl.getBoundingClientRect()\n\n if (this.touchPosition || this.contextMenu) {\n const pos = position(evt)\n this.absoluteOffset = { left: pos.left - left, top: pos.top - top }\n }\n else {\n this.absoluteOffset = void 0\n }\n\n this.updatePosition()\n\n if (this.unwatch === void 0) {\n this.unwatch = this.$watch('$q.screen.width', this.updatePosition)\n }\n\n this.timer = setTimeout(() => {\n this.$emit('show', evt)\n }, 300)\n }, 0)\n },\n\n __hide (evt) {\n this.__anchorCleanup(true)\n\n evt !== void 0 && prevent(evt)\n\n this.timer = setTimeout(() => {\n this.__hidePortal()\n this.$emit('hide', evt)\n }, 300)\n },\n\n __anchorCleanup (hiding) {\n clearTimeout(this.timer)\n this.absoluteOffset = void 0\n\n if (this.unwatch !== void 0) {\n this.unwatch()\n this.unwatch = void 0\n }\n\n if (hiding === true || this.showing === true) {\n EscapeKey.pop(this)\n this.__unregisterTree()\n\n this.scrollTarget.removeEventListener('scroll', this.updatePosition, listenOpts.passive)\n if (this.scrollTarget !== window) {\n window.removeEventListener('scroll', this.updatePosition, listenOpts.passive)\n }\n }\n },\n\n __onAutoClose (e) {\n closeRootMenu(this.menuId)\n this.$listeners.click !== void 0 && this.$emit('click', e)\n },\n\n updatePosition () {\n const el = this.__portal.$el\n\n if (el.nodeType === 8) { // IE replaces the comment with delay\n setTimeout(() => {\n this.__portal !== void 0 && this.__portal.showing === true && this.updatePosition()\n }, 25)\n return\n }\n\n el.style.maxHeight = this.maxHeight\n el.style.maxWidth = this.maxWidth\n\n setPosition({\n el,\n offset: this.offset,\n anchorEl: this.anchorEl,\n anchorOrigin: this.anchorOrigin,\n selfOrigin: this.selfOrigin,\n absoluteOffset: this.absoluteOffset,\n fit: this.fit,\n cover: this.cover\n })\n },\n\n __render (h) {\n const on = {\n ...this.$listeners,\n input: stop\n }\n\n if (this.autoClose === true) {\n on.click = this.__onAutoClose\n }\n\n return h('transition', {\n props: { name: this.transition }\n }, [\n this.showing === true ? h('div', {\n staticClass: 'q-menu scroll',\n class: this.contentClass,\n style: this.contentStyle,\n attrs: this.$attrs,\n on,\n directives: this.persistent !== true ? [{\n name: 'click-outside',\n value: this.hide,\n arg: [ this.anchorEl ]\n }] : null\n }, slot(this, 'default')) : null\n ])\n },\n\n __onPortalCreated (vm) {\n vm.menuParentId = this.menuId\n },\n\n __onPortalClose () {\n closeRootMenu(this.menuId)\n }\n }\n})\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","import { getScrollbarWidth } from './scroll.js'\n\nexport function validatePosition (pos) {\n let parts = pos.split(' ')\n if (parts.length !== 2) {\n return false\n }\n if (!['top', 'center', 'bottom'].includes(parts[0])) {\n console.error('Anchor/Self position must start with one of top/center/bottom')\n return false\n }\n if (!['left', 'middle', 'right'].includes(parts[1])) {\n console.error('Anchor/Self position must end with one of left/middle/right')\n return false\n }\n return true\n}\n\nexport function validateOffset (val) {\n if (!val) { return true }\n if (val.length !== 2) { return false }\n if (typeof val[0] !== 'number' || typeof val[1] !== 'number') {\n return false\n }\n return true\n}\n\nexport function parsePosition (pos) {\n let parts = pos.split(' ')\n return { vertical: parts[0], horizontal: parts[1] }\n}\n\nexport function validateCover (val) {\n if (val === true || val === false) { return true }\n return validatePosition(val)\n}\n\nexport function getAnchorProps (el, offset) {\n let { top, left, right, bottom, width, height } = el.getBoundingClientRect()\n\n if (offset !== void 0) {\n top -= offset[1]\n left -= offset[0]\n bottom += offset[1]\n right += offset[0]\n\n width += offset[0]\n height += offset[1]\n }\n\n return {\n top,\n left,\n right,\n bottom,\n width,\n height,\n middle: left + (right - left) / 2,\n center: top + (bottom - top) / 2\n }\n}\n\nexport function getTargetProps (el) {\n return {\n top: 0,\n center: el.offsetHeight / 2,\n bottom: el.offsetHeight,\n left: 0,\n middle: el.offsetWidth / 2,\n right: el.offsetWidth\n }\n}\n\nexport function setPosition ({ el, anchorEl, anchorOrigin, selfOrigin, offset, absoluteOffset, cover, fit }) {\n let anchorProps\n\n if (absoluteOffset === void 0) {\n anchorProps = getAnchorProps(anchorEl, cover === true ? [0, 0] : offset)\n }\n else {\n const\n { top: anchorTop, left: anchorLeft } = anchorEl.getBoundingClientRect(),\n top = anchorTop + absoluteOffset.top,\n left = anchorLeft + absoluteOffset.left\n\n anchorProps = { top, left, width: 1, height: 1, right: left + 1, center: top, middle: left, bottom: top + 1 }\n }\n\n if (fit === true || cover === true) {\n el.style.minWidth = anchorProps.width + 'px'\n if (cover === true) {\n el.style.minHeight = anchorProps.height + 'px'\n }\n }\n\n const\n targetProps = getTargetProps(el),\n props = {\n top: anchorProps[anchorOrigin.vertical] - targetProps[selfOrigin.vertical],\n left: anchorProps[anchorOrigin.horizontal] - targetProps[selfOrigin.horizontal]\n }\n\n applyBoundaries(props, anchorProps, targetProps, anchorOrigin, selfOrigin)\n\n el.style.top = Math.max(0, props.top) + 'px'\n el.style.left = Math.max(0, props.left) + 'px'\n\n if (props.maxHeight !== void 0) {\n el.style.maxHeight = props.maxHeight + 'px'\n }\n if (props.maxWidth !== void 0) {\n el.style.maxWidth = props.maxWidth + 'px'\n }\n}\n\nfunction applyBoundaries (props, anchorProps, targetProps, anchorOrigin, selfOrigin) {\n const margin = getScrollbarWidth()\n let { innerHeight, innerWidth } = window\n\n // don't go bellow scrollbars\n innerHeight -= margin\n innerWidth -= margin\n\n if (props.top < 0 || props.top + targetProps.bottom > innerHeight) {\n if (selfOrigin.vertical === 'center') {\n props.top = anchorProps[selfOrigin.vertical] > innerHeight / 2\n ? innerHeight - targetProps.bottom\n : 0\n props.maxHeight = Math.min(targetProps.bottom, innerHeight)\n }\n else if (anchorProps[selfOrigin.vertical] > innerHeight / 2) {\n const anchorY = Math.min(\n innerHeight,\n anchorOrigin.vertical === 'center'\n ? anchorProps.center\n : (anchorOrigin.vertical === selfOrigin.vertical ? anchorProps.bottom : anchorProps.top)\n )\n props.maxHeight = Math.min(targetProps.bottom, anchorY)\n props.top = Math.max(0, anchorY - props.maxHeight)\n }\n else {\n props.top = anchorOrigin.vertical === 'center'\n ? anchorProps.center\n : (anchorOrigin.vertical === selfOrigin.vertical ? anchorProps.top : anchorProps.bottom)\n props.maxHeight = Math.min(targetProps.bottom, innerHeight - props.top)\n }\n }\n\n if (props.left < 0 || props.left + targetProps.right > innerWidth) {\n props.maxWidth = Math.min(targetProps.right, innerWidth)\n if (selfOrigin.horizontal === 'middle') {\n props.left = anchorProps[selfOrigin.horizontal] > innerWidth / 2 ? innerWidth - targetProps.right : 0\n }\n else if (anchorProps[selfOrigin.horizontal] > innerWidth / 2) {\n const anchorX = Math.min(\n innerWidth,\n anchorOrigin.horizontal === 'middle'\n ? anchorProps.center\n : (anchorOrigin.horizontal === selfOrigin.horizontal ? anchorProps.right : anchorProps.left)\n )\n props.maxWidth = Math.min(targetProps.right, anchorX)\n props.left = Math.max(0, anchorX - props.maxWidth)\n }\n else {\n props.left = anchorOrigin.horizontal === 'middle'\n ? anchorProps.center\n : (anchorOrigin.horizontal === selfOrigin.horizontal ? anchorProps.left : anchorProps.right)\n props.maxWidth = Math.min(targetProps.right, innerWidth - props.left)\n }\n }\n}\n","import { clearSelection } from '../utils/selection.js'\n\nexport default {\n props: {\n target: {\n type: [Boolean, String],\n default: true\n },\n contextMenu: Boolean\n },\n\n watch: {\n contextMenu (val) {\n if (this.anchorEl !== void 0) {\n this.__unconfigureAnchorEl(!val)\n this.__configureAnchorEl(val)\n }\n },\n\n target () {\n if (this.anchorEl !== void 0) {\n this.__unconfigureAnchorEl()\n }\n\n this.__pickAnchorEl()\n }\n },\n\n methods: {\n __showCondition (evt) {\n // abort with no parent configured or on multi-touch\n return !(this.anchorEl === void 0 || (evt !== void 0 && evt.touches !== void 0 && evt.touches.length > 1))\n },\n\n __contextClick (evt) {\n this.hide(evt)\n this.show(evt)\n },\n\n __toggleKey (evt) {\n if (evt.keyCode === 13) {\n this.toggle(evt)\n }\n },\n\n __mobileTouch (evt) {\n this.__mobileCleanup()\n if (evt && evt.touches && evt.touches.length > 1) {\n return\n }\n this.hide(evt)\n this.anchorEl.classList.add('non-selectable')\n clearSelection()\n this.touchTimer = setTimeout(() => {\n this.__mobileCleanup()\n this.touchTimer = setTimeout(() => {\n this.show(evt)\n }, 10)\n }, 300)\n },\n\n __mobileCleanup () {\n this.anchorEl.classList.remove('non-selectable')\n clearTimeout(this.touchTimer)\n },\n\n __unconfigureAnchorEl (context = this.contextMenu) {\n if (context === true) {\n if (this.$q.platform.is.mobile) {\n this.anchorEl.removeEventListener('touchstart', this.__mobileTouch)\n ;['touchcancel', 'touchmove', 'touchend'].forEach(evt => {\n this.anchorEl.removeEventListener(evt, this.__mobileCleanup)\n })\n }\n else {\n this.anchorEl.removeEventListener('click', this.hide)\n this.anchorEl.removeEventListener('contextmenu', this.__contextClick)\n }\n }\n else {\n this.anchorEl.removeEventListener('click', this.toggle)\n this.anchorEl.removeEventListener('keyup', this.__toggleKey)\n }\n },\n\n __configureAnchorEl (context = this.contextMenu) {\n if (this.noParentEvent === true) { return }\n\n if (context === true) {\n if (this.$q.platform.is.mobile) {\n this.anchorEl.addEventListener('touchstart', this.__mobileTouch)\n ;['touchcancel', 'touchmove', 'touchend'].forEach(evt => {\n this.anchorEl.addEventListener(evt, this.__mobileCleanup)\n })\n }\n else {\n this.anchorEl.addEventListener('click', this.hide)\n this.anchorEl.addEventListener('contextmenu', this.__contextClick)\n }\n }\n else {\n this.anchorEl.addEventListener('click', this.toggle)\n this.anchorEl.addEventListener('keyup', this.__toggleKey)\n }\n },\n\n __setAnchorEl (el) {\n this.anchorEl = el\n while (this.anchorEl.classList.contains('q-anchor--skip')) {\n this.anchorEl = this.anchorEl.parentNode\n }\n this.__configureAnchorEl()\n },\n\n __pickAnchorEl () {\n if (this.target && typeof this.target === 'string') {\n const el = document.querySelector(this.target)\n if (el !== null) {\n this.anchorEl = el\n this.__configureAnchorEl()\n }\n else {\n this.anchorEl = void 0\n console.error(`Anchor: target \"${this.target}\" not found`, this)\n }\n }\n else if (this.target !== false) {\n this.__setAnchorEl(this.parentEl)\n }\n else {\n this.anchorEl = void 0\n }\n }\n },\n\n mounted () {\n this.parentEl = this.$el.parentNode\n\n this.$nextTick(() => {\n this.__pickAnchorEl()\n\n if (this.value === true) {\n if (this.anchorEl === void 0) {\n this.$emit('input', false)\n }\n else {\n this.show()\n }\n }\n })\n },\n\n beforeDestroy () {\n clearTimeout(this.touchTimer)\n this.__anchorCleanup !== void 0 && this.__anchorCleanup()\n\n if (this.anchorEl !== void 0) {\n this.__unconfigureAnchorEl()\n }\n }\n}\n","export function setObserver (el, evt, ctx, fn) {\n const target = evt.target\n ctx.touchTargetObserver = new MutationObserver(() => {\n el.contains(target) === false && ctx.end(evt)\n })\n ctx.touchTargetObserver.observe(el, { childList: true, subtree: true })\n}\n\nexport function removeObserver (ctx) {\n if (ctx.touchTargetObserver !== void 0) {\n ctx.touchTargetObserver.disconnect()\n ctx.touchTargetObserver = void 0\n }\n}\n","import { position, leftClick, listenOpts, prevent, stop } from '../utils/event.js'\nimport { setObserver, removeObserver } from '../utils/touch-observer.js'\nimport { clearSelection } from '../utils/selection.js'\n\nfunction getDirection (mod) {\n const\n none = mod.horizontal !== true && mod.vertical !== true,\n dir = {\n all: none === true || (mod.horizontal === true && mod.vertical === true)\n }\n\n if (mod.horizontal === true || none === true) {\n dir.horizontal = true\n }\n if (mod.vertical === true || none === true) {\n dir.vertical = true\n }\n\n return dir\n}\n\nfunction processChanges (evt, ctx, isFinal) {\n let\n pos = position(evt),\n direction,\n distX = pos.left - ctx.event.x,\n distY = pos.top - ctx.event.y,\n absDistX = Math.abs(distX),\n absDistY = Math.abs(distY)\n\n if (ctx.direction.horizontal && !ctx.direction.vertical) {\n direction = distX < 0 ? 'left' : 'right'\n }\n else if (!ctx.direction.horizontal && ctx.direction.vertical) {\n direction = distY < 0 ? 'up' : 'down'\n }\n else if (absDistX >= absDistY) {\n direction = distX < 0 ? 'left' : 'right'\n }\n else {\n direction = distY < 0 ? 'up' : 'down'\n }\n\n return {\n evt,\n position: pos,\n direction,\n isFirst: ctx.event.isFirst,\n isFinal: isFinal === true,\n isMouse: ctx.event.mouse,\n duration: new Date().getTime() - ctx.event.time,\n distance: {\n x: absDistX,\n y: absDistY\n },\n offset: {\n x: distX,\n y: distY\n },\n delta: {\n x: pos.left - ctx.event.lastX,\n y: pos.top - ctx.event.lastY\n }\n }\n}\n\nfunction shouldTrigger (ctx, changes) {\n if (ctx.direction.horizontal && ctx.direction.vertical) {\n return true\n }\n if (ctx.direction.horizontal && !ctx.direction.vertical) {\n return Math.abs(changes.delta.x) > 0\n }\n if (!ctx.direction.horizontal && ctx.direction.vertical) {\n return Math.abs(changes.delta.y) > 0\n }\n}\n\nexport default {\n name: 'touch-pan',\n\n bind (el, binding) {\n const\n mouse = binding.modifiers.mouse === true,\n mouseEvtPassive = binding.modifiers.mouseMightPrevent !== true && binding.modifiers.mousePrevent !== true,\n mouseEvtOpts = listenOpts.hasPassive === true ? { passive: mouseEvtPassive, capture: true } : true,\n touchEvtPassive = binding.modifiers.mightPrevent !== true && binding.modifiers.prevent !== true,\n touchEvtOpts = listenOpts[touchEvtPassive === true ? 'passive' : 'notPassive']\n\n function handleEvent (evt, mouseEvent) {\n if (mouse && mouseEvent) {\n binding.modifiers.mouseStop && stop(evt)\n binding.modifiers.mousePrevent && prevent(evt)\n }\n else {\n binding.modifiers.stop && stop(evt)\n binding.modifiers.prevent && prevent(evt)\n }\n }\n\n const ctx = {\n handler: binding.value,\n direction: getDirection(binding.modifiers),\n\n mouseStart (evt) {\n if (leftClick(evt)) {\n document.addEventListener('mousemove', ctx.move, mouseEvtOpts)\n document.addEventListener('mouseup', ctx.mouseEnd, mouseEvtOpts)\n ctx.start(evt, true)\n }\n },\n\n mouseEnd (evt) {\n document.removeEventListener('mousemove', ctx.move, mouseEvtOpts)\n document.removeEventListener('mouseup', ctx.mouseEnd, mouseEvtOpts)\n ctx.end(evt)\n },\n\n start (evt, mouseEvent) {\n removeObserver(ctx)\n mouseEvent !== true && setObserver(el, evt, ctx)\n\n const pos = position(evt)\n\n ctx.event = {\n x: pos.left,\n y: pos.top,\n time: new Date().getTime(),\n mouse: mouseEvent === true,\n detected: false,\n abort: false,\n isFirst: true,\n isFinal: false,\n lastX: pos.left,\n lastY: pos.top\n }\n },\n\n move (evt) {\n if (ctx.event === void 0 || ctx.event.abort === true) {\n return\n }\n\n if (ctx.event.detected === true) {\n handleEvent(evt, ctx.event.mouse)\n\n const changes = processChanges(evt, ctx, false)\n if (shouldTrigger(ctx, changes)) {\n ctx.handler(changes)\n ctx.event.lastX = changes.position.left\n ctx.event.lastY = changes.position.top\n ctx.event.isFirst = false\n }\n\n return\n }\n\n const\n pos = position(evt),\n distX = Math.abs(pos.left - ctx.event.x),\n distY = Math.abs(pos.top - ctx.event.y)\n\n if (distX === distY) {\n return\n }\n\n ctx.event.detected = true\n\n if (ctx.direction.all === false && (ctx.event.mouse === false || binding.modifiers.mouseAllDir !== true)) {\n ctx.event.abort = ctx.direction.vertical\n ? distX > distY\n : distX < distY\n }\n\n if (ctx.event.abort !== true) {\n document.documentElement.style.cursor = 'grabbing'\n document.body.classList.add('no-pointer-events')\n document.body.classList.add('non-selectable')\n clearSelection()\n }\n\n ctx.move(evt)\n },\n\n end (evt) {\n if (ctx.event === void 0) {\n return\n }\n\n ctx.event.mouse !== true && removeObserver(ctx)\n\n document.documentElement.style.cursor = ''\n document.body.classList.remove('no-pointer-events')\n document.body.classList.remove('non-selectable')\n\n if (ctx.event.abort !== true && ctx.event.detected === true && ctx.event.isFirst !== true) {\n handleEvent(evt, ctx.event.mouse)\n ctx.handler(processChanges(evt, ctx, true))\n }\n\n ctx.event = void 0\n }\n }\n\n if (el.__qtouchpan) {\n el.__qtouchpan_old = el.__qtouchpan\n }\n\n el.__qtouchpan = ctx\n\n if (mouse === true) {\n el.addEventListener('mousedown', ctx.mouseStart, mouseEvtOpts)\n }\n el.addEventListener('touchstart', ctx.start, touchEvtOpts)\n el.addEventListener('touchmove', ctx.move, touchEvtOpts)\n el.addEventListener('touchcancel', ctx.end)\n el.addEventListener('touchend', ctx.end)\n },\n\n update (el, { oldValue, value, modifiers }) {\n const ctx = el.__qtouchpan\n\n if (oldValue !== value) {\n ctx.handler = value\n }\n\n if (\n (modifiers.horizontal !== ctx.direction.horizontal) ||\n (modifiers.vertical !== ctx.direction.vertical)\n ) {\n ctx.direction = getDirection(modifiers)\n }\n },\n\n unbind (el, binding) {\n let ctx = el.__qtouchpan_old || el.__qtouchpan\n if (ctx !== void 0) {\n removeObserver(ctx)\n\n document.documentElement.style.cursor = ''\n document.body.classList.remove('no-pointer-events')\n document.body.classList.remove('non-selectable')\n\n const\n mouse = binding.modifiers.mouse === true,\n mouseEvtPassive = binding.modifiers.mouseMightPrevent !== true && binding.modifiers.mousePrevent !== true,\n mouseEvtOpts = listenOpts.hasPassive === true ? { passive: mouseEvtPassive, capture: true } : true,\n touchEvtPassive = binding.modifiers.mightPrevent !== true && binding.modifiers.prevent !== true,\n touchEvtOpts = listenOpts[touchEvtPassive === true ? 'passive' : 'notPassive']\n\n if (mouse === true) {\n el.removeEventListener('mousedown', ctx.mouseStart, mouseEvtOpts)\n document.removeEventListener('mousemove', ctx.move, mouseEvtOpts)\n document.removeEventListener('mouseup', ctx.mouseEnd, mouseEvtOpts)\n }\n el.removeEventListener('touchstart', ctx.start, touchEvtOpts)\n el.removeEventListener('touchmove', ctx.move, touchEvtOpts)\n el.removeEventListener('touchcancel', ctx.end)\n el.removeEventListener('touchend', ctx.end)\n\n delete el[el.__qtouchpan_old ? '__qtouchpan_old' : '__qtouchpan']\n }\n }\n}\n","import Vue from 'vue'\n\nimport TouchPan from '../../directives/TouchPan.js'\nimport { between } from '../../utils/format.js'\nimport ModelToggleMixin from '../../mixins/model-toggle.js'\nimport PreventScrollMixin from '../../mixins/prevent-scroll.js'\nimport slot from '../../utils/slot.js'\n\nconst duration = 150\n\nexport default Vue.extend({\n name: 'QDrawer',\n\n inject: {\n layout: {\n default () {\n console.error('QDrawer needs to be child of QLayout')\n }\n }\n },\n\n mixins: [ ModelToggleMixin, PreventScrollMixin ],\n\n directives: {\n TouchPan\n },\n\n props: {\n overlay: Boolean,\n side: {\n type: String,\n default: 'left',\n validator: v => ['left', 'right'].includes(v)\n },\n width: {\n type: Number,\n default: 300\n },\n mini: Boolean,\n miniWidth: {\n type: Number,\n default: 57\n },\n breakpoint: {\n type: Number,\n default: 1023\n },\n behavior: {\n type: String,\n validator: v => ['default', 'desktop', 'mobile'].includes(v),\n default: 'default'\n },\n bordered: Boolean,\n elevated: Boolean,\n persistent: Boolean,\n showIfAbove: Boolean,\n contentStyle: [String, Object, Array],\n contentClass: [String, Object, Array],\n noSwipeOpen: Boolean,\n noSwipeClose: Boolean\n },\n\n data () {\n const\n largeScreenState = this.showIfAbove === true || (\n this.value !== void 0 ? this.value : true\n ),\n showing = this.behavior !== 'mobile' && this.breakpoint < this.layout.width && this.overlay === false\n ? largeScreenState\n : false\n\n if (this.value !== void 0 && this.value !== showing) {\n this.$emit('input', showing)\n }\n\n return {\n showing,\n belowBreakpoint: (\n this.behavior === 'mobile' ||\n (this.behavior !== 'desktop' && this.breakpoint >= this.layout.width)\n ),\n largeScreenState,\n mobileOpened: false\n }\n },\n\n watch: {\n belowBreakpoint (val) {\n if (this.mobileOpened === true) {\n return\n }\n\n if (val === true) { // from lg to xs\n if (this.overlay === false) {\n this.largeScreenState = this.showing\n }\n // ensure we close it for small screen\n this.hide(false)\n }\n else if (this.overlay === false) { // from xs to lg\n this[this.largeScreenState ? 'show' : 'hide'](false)\n }\n },\n\n side (_, oldSide) {\n this.layout[oldSide].space = false\n this.layout[oldSide].offset = 0\n },\n\n behavior (val) {\n this.__updateLocal('belowBreakpoint', (\n val === 'mobile' ||\n (val !== 'desktop' && this.breakpoint >= this.layout.width)\n ))\n },\n\n breakpoint (val) {\n this.__updateLocal('belowBreakpoint', (\n this.behavior === 'mobile' ||\n (this.behavior !== 'desktop' && val >= this.layout.width)\n ))\n },\n\n 'layout.width' (val) {\n this.__updateLocal('belowBreakpoint', (\n this.behavior === 'mobile' ||\n (this.behavior !== 'desktop' && this.breakpoint >= val)\n ))\n },\n\n 'layout.scrollbarWidth' () {\n this.applyPosition(this.showing === true ? 0 : void 0)\n },\n\n offset (val) {\n this.__update('offset', val)\n },\n\n onLayout (val) {\n this.$listeners['on-layout'] !== void 0 && this.$emit('on-layout', val)\n this.__update('space', val)\n },\n\n $route () {\n if (\n this.persistent !== true &&\n (this.mobileOpened === true || this.onScreenOverlay === true)\n ) {\n this.hide()\n }\n },\n\n rightSide () {\n this.applyPosition()\n },\n\n size (val) {\n this.applyPosition()\n this.__update('size', val)\n },\n\n '$q.lang.rtl' () {\n this.applyPosition()\n },\n\n mini () {\n if (this.value === true) {\n this.__animateMini()\n this.layout.__animate()\n }\n }\n },\n\n computed: {\n rightSide () {\n return this.side === 'right'\n },\n\n offset () {\n return this.showing === true && this.mobileOpened === false && this.overlay === false\n ? this.size\n : 0\n },\n\n size () {\n return this.isMini === true ? this.miniWidth : this.width\n },\n\n fixed () {\n return this.overlay === true || this.layout.view.indexOf(this.rightSide ? 'R' : 'L') > -1\n },\n\n onLayout () {\n return this.showing === true && this.mobileView === false && this.overlay === false\n },\n\n onScreenOverlay () {\n return this.showing === true && this.mobileView === false && this.overlay === true\n },\n\n backdropClass () {\n return this.showing === false ? 'no-pointer-events' : null\n },\n\n mobileView () {\n return this.belowBreakpoint === true || this.mobileOpened === true\n },\n\n headerSlot () {\n return this.rightSide === true\n ? this.layout.rows.top[2] === 'r'\n : this.layout.rows.top[0] === 'l'\n },\n\n footerSlot () {\n return this.rightSide === true\n ? this.layout.rows.bottom[2] === 'r'\n : this.layout.rows.bottom[0] === 'l'\n },\n\n aboveStyle () {\n const css = {}\n\n if (this.layout.header.space === true && this.headerSlot === false) {\n if (this.fixed === true) {\n css.top = `${this.layout.header.offset}px`\n }\n else if (this.layout.header.space === true) {\n css.top = `${this.layout.header.size}px`\n }\n }\n\n if (this.layout.footer.space === true && this.footerSlot === false) {\n if (this.fixed === true) {\n css.bottom = `${this.layout.footer.offset}px`\n }\n else if (this.layout.footer.space === true) {\n css.bottom = `${this.layout.footer.size}px`\n }\n }\n\n return css\n },\n\n style () {\n const style = { width: `${this.size}px` }\n return this.mobileView === true\n ? style\n : Object.assign(style, this.aboveStyle)\n },\n\n classes () {\n return `q-drawer--${this.side}` +\n (this.bordered === true ? ' q-drawer--bordered' : '') +\n (\n this.mobileView === true\n ? ' fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding'\n : ` q-drawer--${this.isMini === true ? 'mini' : 'standard'}` +\n (this.fixed === true || this.onLayout !== true ? ' fixed' : '') +\n (this.overlay === true ? ' q-drawer--on-top' : '') +\n (this.headerSlot === true ? ' q-drawer--top-padding' : '')\n )\n },\n\n stateDirection () {\n return (this.$q.lang.rtl === true ? -1 : 1) * (this.rightSide === true ? 1 : -1)\n },\n\n isMini () {\n return this.mini === true && this.mobileView !== true\n },\n\n onNativeEvents () {\n if (this.mobileView !== true) {\n return {\n '!click': e => { this.$emit('click', e) },\n mouseover: e => { this.$emit('mouseover', e) },\n mouseout: e => { this.$emit('mouseout', e) }\n }\n }\n }\n },\n\n methods: {\n applyPosition (position) {\n if (position === void 0) {\n this.$nextTick(() => {\n position = this.showing === true ? 0 : this.size\n\n this.applyPosition(this.stateDirection * position)\n })\n }\n else if (this.$refs.content !== void 0) {\n if (\n this.layout.container === true &&\n this.rightSide === true &&\n (this.mobileView === true || Math.abs(position) === this.size)\n ) {\n position += this.stateDirection * this.layout.scrollbarWidth\n }\n this.$refs.content.style.transform = `translate3d(${position}px, 0, 0)`\n }\n },\n\n applyBackdrop (x) {\n if (this.$refs.backdrop !== void 0) {\n this.$refs.backdrop.style.backgroundColor = `rgba(0,0,0,${x * 0.4})`\n }\n },\n\n __setScrollable (v) {\n if (this.layout.container !== true) {\n document.body.classList[v === true ? 'add' : 'remove']('q-body--drawer-toggle')\n }\n },\n\n __animateMini () {\n if (this.timerMini !== void 0) {\n clearTimeout(this.timerMini)\n }\n else if (this.$el !== void 0) {\n this.$el.classList.add('q-drawer--mini-animate')\n }\n this.timerMini = setTimeout(() => {\n this.$el !== void 0 && this.$el.classList.remove('q-drawer--mini-animate')\n this.timerMini = void 0\n }, 150)\n },\n\n __openByTouch (evt) {\n const\n width = this.size,\n position = between(evt.distance.x, 0, width)\n\n if (evt.isFinal === true) {\n const\n el = this.$refs.content,\n opened = position >= Math.min(75, width)\n\n el.classList.remove('no-transition')\n\n if (opened === true) {\n this.show()\n }\n else {\n this.layout.__animate()\n this.applyBackdrop(0)\n this.applyPosition(this.stateDirection * width)\n el.classList.remove('q-drawer--delimiter')\n }\n\n return\n }\n\n this.applyPosition(\n (this.$q.lang.rtl === true ? !this.rightSide : this.rightSide)\n ? Math.max(width - position, 0)\n : Math.min(0, position - width)\n )\n this.applyBackdrop(\n between(position / width, 0, 1)\n )\n\n if (evt.isFirst === true) {\n const el = this.$refs.content\n el.classList.add('no-transition')\n el.classList.add('q-drawer--delimiter')\n }\n },\n\n __closeByTouch (evt) {\n const\n width = this.size,\n dir = evt.direction === this.side,\n position = (this.$q.lang.rtl === true ? !dir : dir)\n ? between(evt.distance.x, 0, width)\n : 0\n\n if (evt.isFinal === true) {\n const opened = Math.abs(position) < Math.min(75, width)\n this.$refs.content.classList.remove('no-transition')\n\n if (opened === true) {\n this.layout.__animate()\n this.applyBackdrop(1)\n this.applyPosition(0)\n }\n else {\n this.hide()\n }\n\n return\n }\n\n this.applyPosition(this.stateDirection * position)\n this.applyBackdrop(between(1 - position / width, 0, 1))\n\n if (evt.isFirst === true) {\n this.$refs.content.classList.add('no-transition')\n }\n },\n\n __show (evt = true) {\n evt !== false && this.layout.__animate()\n this.applyPosition(0)\n\n const otherSide = this.layout.instances[this.rightSide === true ? 'left' : 'right']\n if (otherSide !== void 0 && otherSide.mobileOpened === true) {\n otherSide.hide(false)\n }\n\n if (this.belowBreakpoint === true) {\n this.mobileOpened = true\n this.applyBackdrop(1)\n if (this.layout.container !== true) {\n this.__preventScroll(true)\n }\n }\n else {\n this.__setScrollable(true)\n }\n\n clearTimeout(this.timer)\n this.timer = setTimeout(() => {\n this.__setScrollable(false)\n this.$emit('show', evt)\n }, duration)\n },\n\n __hide (evt = true) {\n evt !== false && this.layout.__animate()\n\n if (this.mobileOpened === true) {\n this.mobileOpened = false\n }\n\n this.applyPosition(this.stateDirection * this.size)\n this.applyBackdrop(0)\n\n this.__cleanup()\n\n clearTimeout(this.timer)\n this.timer = setTimeout(() => {\n this.$emit('hide', evt)\n }, duration)\n },\n\n __cleanup () {\n this.__preventScroll(false)\n this.__setScrollable(false)\n },\n\n __update (prop, val) {\n if (this.layout[this.side][prop] !== val) {\n this.layout[this.side][prop] = val\n }\n },\n\n __updateLocal (prop, val) {\n if (this[prop] !== val) {\n this[prop] = val\n }\n }\n },\n\n created () {\n this.layout.instances[this.side] = this\n this.__update('size', this.size)\n this.__update('space', this.onLayout)\n this.__update('offset', this.offset)\n },\n\n mounted () {\n this.$listeners['on-layout'] !== void 0 && this.$emit('on-layout', this.onLayout)\n this.applyPosition(this.showing === true ? 0 : void 0)\n },\n\n beforeDestroy () {\n clearTimeout(this.timer)\n clearTimeout(this.timerMini)\n this.showing && this.__cleanup()\n if (this.layout.instances[this.side] === this) {\n this.layout.instances[this.side] = void 0\n this.__update('size', 0)\n this.__update('offset', 0)\n this.__update('space', false)\n }\n },\n\n render (h) {\n const child = [\n this.noSwipeOpen !== true && this.belowBreakpoint === true\n ? h('div', {\n staticClass: `q-drawer__opener fixed-${this.side}`,\n directives: [{\n name: 'touch-pan',\n modifiers: {\n horizontal: true,\n mouse: true,\n mouseAllDir: true\n },\n value: this.__openByTouch\n }]\n })\n : null,\n\n this.mobileView === true ? h('div', {\n ref: 'backdrop',\n staticClass: 'fullscreen q-drawer__backdrop q-layout__section--animate',\n class: this.backdropClass,\n on: {\n click: this.hide\n },\n directives: [{\n name: 'touch-pan',\n modifiers: {\n horizontal: true,\n mouse: true,\n mouseAllDir: true\n },\n value: this.__closeByTouch\n }]\n }) : null\n ]\n\n const content = [\n h('div', {\n staticClass: 'q-drawer__content fit ' + (this.layout.container === true ? 'overflow-auto' : 'scroll'),\n class: this.contentClass,\n style: this.contentStyle\n }, this.isMini === true && this.$scopedSlots.mini !== void 0 ? this.$scopedSlots.mini() : slot(this, 'default'))\n ]\n\n if (this.elevated === true && this.showing === true) {\n content.push(\n h('div', {\n staticClass: 'q-layout__shadow absolute-full overflow-hidden no-pointer-events'\n })\n )\n }\n\n return h('div', {\n staticClass: 'q-drawer-container'\n }, child.concat([\n h('aside', {\n ref: 'content',\n staticClass: `q-drawer q-layout__section--animate`,\n class: this.classes,\n style: this.style,\n on: this.onNativeEvents\n }, content)\n ]))\n }\n})\n"],"sourceRoot":""}