{"version":3,"file":"OBp3jdXi.js","sources":["../../../../node_modules/quasar/src/directives/touch-pan/TouchPan.js","../../../../node_modules/quasar/src/components/scroll-area/QScrollArea.js"],"sourcesContent":["import { client } from '../../plugins/platform/Platform.js'\n\nimport { createDirective } from '../../utils/private.create/create.js'\nimport { getModifierDirections, shouldStart } from '../../utils/private.touch/touch.js'\nimport { addEvt, cleanEvt, position, leftClick, prevent, stop, stopAndPrevent, preventDraggable, noop } from '../../utils/event/event.js'\nimport { clearSelection } from '../../utils/private.selection/selection.js'\nimport getSSRProps from '../../utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.js'\n\nfunction getChanges (evt, ctx, isFinal) {\n const pos = position(evt)\n let\n dir,\n distX = pos.left - ctx.event.x,\n distY = pos.top - ctx.event.y,\n absX = Math.abs(distX),\n absY = Math.abs(distY)\n\n const direction = ctx.direction\n\n if (direction.horizontal === true && direction.vertical !== true) {\n dir = distX < 0 ? 'left' : 'right'\n }\n else if (direction.horizontal !== true && direction.vertical === true) {\n dir = distY < 0 ? 'up' : 'down'\n }\n else if (direction.up === true && distY < 0) {\n dir = 'up'\n if (absX > absY) {\n if (direction.left === true && distX < 0) {\n dir = 'left'\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n }\n }\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n if (absX > absY) {\n if (direction.left === true && distX < 0) {\n dir = 'left'\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n }\n }\n }\n else if (direction.left === true && distX < 0) {\n dir = 'left'\n if (absX < absY) {\n if (direction.up === true && distY < 0) {\n dir = 'up'\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n }\n }\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n if (absX < absY) {\n if (direction.up === true && distY < 0) {\n dir = 'up'\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n }\n }\n }\n\n let synthetic = false\n\n if (dir === void 0 && isFinal === false) {\n if (ctx.event.isFirst === true || ctx.event.lastDir === void 0) {\n return {}\n }\n\n dir = ctx.event.lastDir\n synthetic = true\n\n if (dir === 'left' || dir === 'right') {\n pos.left -= distX\n absX = 0\n distX = 0\n }\n else {\n pos.top -= distY\n absY = 0\n distY = 0\n }\n }\n\n return {\n synthetic,\n payload: {\n evt,\n touch: ctx.event.mouse !== true,\n mouse: ctx.event.mouse === true,\n position: pos,\n direction: dir,\n isFirst: ctx.event.isFirst,\n isFinal: isFinal === true,\n duration: Date.now() - ctx.event.time,\n distance: {\n x: absX,\n y: absY\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}\n\nlet uid = 0\n\nexport default createDirective(__QUASAR_SSR_SERVER__\n ? { name: 'touch-pan', getSSRProps }\n : {\n name: 'touch-pan',\n\n beforeMount (el, { value, modifiers }) {\n // early return, we don't need to do anything\n if (modifiers.mouse !== true && client.has.touch !== true) {\n return\n }\n\n function handleEvent (evt, mouseEvent) {\n if (modifiers.mouse === true && mouseEvent === true) {\n stopAndPrevent(evt)\n }\n else {\n modifiers.stop === true && stop(evt)\n modifiers.prevent === true && prevent(evt)\n }\n }\n\n const ctx = {\n uid: 'qvtp_' + (uid++),\n handler: value,\n modifiers,\n direction: getModifierDirections(modifiers),\n\n noop,\n\n mouseStart (evt) {\n if (shouldStart(evt, ctx) && leftClick(evt)) {\n addEvt(ctx, 'temp', [\n [ document, 'mousemove', 'move', 'notPassiveCapture' ],\n [ document, 'mouseup', 'end', 'passiveCapture' ]\n ])\n\n ctx.start(evt, true)\n }\n },\n\n touchStart (evt) {\n if (shouldStart(evt, ctx)) {\n const target = evt.target\n\n addEvt(ctx, 'temp', [\n [ target, 'touchmove', 'move', 'notPassiveCapture' ],\n [ target, 'touchcancel', 'end', 'passiveCapture' ],\n [ target, 'touchend', 'end', 'passiveCapture' ]\n ])\n\n ctx.start(evt)\n }\n },\n\n start (evt, mouseEvent) {\n client.is.firefox === true && preventDraggable(el, true)\n ctx.lastEvt = evt\n\n /*\n * Stop propagation so possible upper v-touch-pan don't catch this as well;\n * If we're not the target (based on modifiers), we'll re-emit the event later\n */\n if (mouseEvent === true || modifiers.stop === true) {\n /*\n * are we directly switching to detected state?\n * clone event only otherwise\n */\n if (\n ctx.direction.all !== true\n // account for UMD too where modifiers will be lowercased to work\n && (mouseEvent !== true || (ctx.modifiers.mouseAllDir !== true && ctx.modifiers.mousealldir !== true))\n ) {\n const clone = evt.type.indexOf('mouse') !== -1\n ? new MouseEvent(evt.type, evt)\n : new TouchEvent(evt.type, evt)\n\n evt.defaultPrevented === true && prevent(clone)\n evt.cancelBubble === true && stop(clone)\n\n Object.assign(clone, {\n qKeyEvent: evt.qKeyEvent,\n qClickOutside: evt.qClickOutside,\n qAnchorHandled: evt.qAnchorHandled,\n qClonedBy: evt.qClonedBy === void 0\n ? [ ctx.uid ]\n : evt.qClonedBy.concat(ctx.uid)\n })\n\n ctx.initialEvent = {\n target: evt.target,\n event: clone\n }\n }\n\n stop(evt)\n }\n\n const { left, top } = position(evt)\n\n ctx.event = {\n x: left,\n y: top,\n time: Date.now(),\n mouse: mouseEvent === true,\n detected: false,\n isFirst: true,\n isFinal: false,\n lastX: left,\n lastY: top\n }\n },\n\n move (evt) {\n if (ctx.event === void 0) {\n return\n }\n\n const\n pos = position(evt),\n distX = pos.left - ctx.event.x,\n distY = pos.top - ctx.event.y\n\n // prevent buggy browser behavior (like Blink-based engine ones on Windows)\n // where the mousemove event occurs even if there's no movement after mousedown\n // https://bugs.chromium.org/p/chromium/issues/detail?id=161464\n // https://bugs.chromium.org/p/chromium/issues/detail?id=721341\n // https://github.com/quasarframework/quasar/issues/10721\n if (distX === 0 && distY === 0) {\n return\n }\n\n ctx.lastEvt = evt\n\n const isMouseEvt = ctx.event.mouse === true\n const start = () => {\n handleEvent(evt, isMouseEvt)\n\n let cursor\n if (modifiers.preserveCursor !== true && modifiers.preservecursor !== true) {\n cursor = document.documentElement.style.cursor || ''\n document.documentElement.style.cursor = 'grabbing'\n }\n\n isMouseEvt === true && document.body.classList.add('no-pointer-events--children')\n document.body.classList.add('non-selectable')\n clearSelection()\n\n ctx.styleCleanup = withDelayedFn => {\n ctx.styleCleanup = void 0\n\n if (cursor !== void 0) {\n document.documentElement.style.cursor = cursor\n }\n\n document.body.classList.remove('non-selectable')\n\n if (isMouseEvt === true) {\n const remove = () => {\n document.body.classList.remove('no-pointer-events--children')\n }\n\n if (withDelayedFn !== void 0) {\n setTimeout(() => {\n remove()\n withDelayedFn()\n }, 50)\n }\n else { remove() }\n }\n else if (withDelayedFn !== void 0) {\n withDelayedFn()\n }\n }\n }\n\n if (ctx.event.detected === true) {\n ctx.event.isFirst !== true && handleEvent(evt, ctx.event.mouse)\n\n const { payload, synthetic } = getChanges(evt, ctx, false)\n\n if (payload !== void 0) {\n if (ctx.handler(payload) === false) {\n ctx.end(evt)\n }\n else {\n if (ctx.styleCleanup === void 0 && ctx.event.isFirst === true) {\n start()\n }\n\n ctx.event.lastX = payload.position.left\n ctx.event.lastY = payload.position.top\n ctx.event.lastDir = synthetic === true ? void 0 : payload.direction\n ctx.event.isFirst = false\n }\n }\n\n return\n }\n\n if (\n ctx.direction.all === true\n // account for UMD too where modifiers will be lowercased to work\n || (isMouseEvt === true && (ctx.modifiers.mouseAllDir === true || ctx.modifiers.mousealldir === true))\n ) {\n start()\n ctx.event.detected = true\n ctx.move(evt)\n return\n }\n\n const\n absX = Math.abs(distX),\n absY = Math.abs(distY)\n\n if (absX !== absY) {\n if (\n (ctx.direction.horizontal === true && absX > absY)\n || (ctx.direction.vertical === true && absX < absY)\n || (ctx.direction.up === true && absX < absY && distY < 0)\n || (ctx.direction.down === true && absX < absY && distY > 0)\n || (ctx.direction.left === true && absX > absY && distX < 0)\n || (ctx.direction.right === true && absX > absY && distX > 0)\n ) {\n ctx.event.detected = true\n ctx.move(evt)\n }\n else {\n ctx.end(evt, true)\n }\n }\n },\n\n end (evt, abort) {\n if (ctx.event === void 0) {\n return\n }\n\n cleanEvt(ctx, 'temp')\n client.is.firefox === true && preventDraggable(el, false)\n\n if (abort === true) {\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n if (ctx.event.detected !== true && ctx.initialEvent !== void 0) {\n ctx.initialEvent.target.dispatchEvent(ctx.initialEvent.event)\n }\n }\n else if (ctx.event.detected === true) {\n ctx.event.isFirst === true && ctx.handler(getChanges(evt === void 0 ? ctx.lastEvt : evt, ctx).payload)\n\n const { payload } = getChanges(evt === void 0 ? ctx.lastEvt : evt, ctx, true)\n const fn = () => { ctx.handler(payload) }\n\n if (ctx.styleCleanup !== void 0) {\n ctx.styleCleanup(fn)\n }\n else {\n fn()\n }\n }\n\n ctx.event = void 0\n ctx.initialEvent = void 0\n ctx.lastEvt = void 0\n }\n }\n\n el.__qtouchpan = ctx\n\n if (modifiers.mouse === true) {\n // account for UMD too where modifiers will be lowercased to work\n const capture = modifiers.mouseCapture === true || modifiers.mousecapture === true\n ? 'Capture'\n : ''\n\n addEvt(ctx, 'main', [\n [ el, 'mousedown', 'mouseStart', `passive${ capture }` ]\n ])\n }\n\n client.has.touch === true && addEvt(ctx, 'main', [\n [ el, 'touchstart', 'touchStart', `passive${ modifiers.capture === true ? 'Capture' : '' }` ],\n [ el, 'touchmove', 'noop', 'notPassiveCapture' ] // cannot be passive (ex: iOS scroll)\n ])\n },\n\n updated (el, bindings) {\n const ctx = el.__qtouchpan\n\n if (ctx !== void 0) {\n if (bindings.oldValue !== bindings.value) {\n typeof value !== 'function' && ctx.end()\n ctx.handler = bindings.value\n }\n\n ctx.direction = getModifierDirections(bindings.modifiers)\n }\n },\n\n beforeUnmount (el) {\n const ctx = el.__qtouchpan\n\n if (ctx !== void 0) {\n // emit the end event when the directive is destroyed while active\n // this is only needed in TouchPan because the rest of the touch directives do not emit an end event\n // the condition is also checked in the start of function but we avoid the call\n ctx.event !== void 0 && ctx.end()\n\n cleanEvt(ctx, 'main')\n cleanEvt(ctx, 'temp')\n\n client.is.firefox === true && preventDraggable(el, false)\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n delete el.__qtouchpan\n }\n }\n }\n)\n","import { h, ref, computed, watch, withDirectives, onActivated, onDeactivated, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private.use-dark/use-dark.js'\n\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\nimport QScrollObserver from '../scroll-observer/QScrollObserver.js'\n\nimport TouchPan from '../../directives/touch-pan/TouchPan.js'\n\nimport { createComponent } from '../../utils/private.create/create.js'\nimport { between } from '../../utils/format/format.js'\nimport { setVerticalScrollPosition, setHorizontalScrollPosition } from '../../utils/scroll/scroll.js'\nimport { hMergeSlot } from '../../utils/private.render/render.js'\nimport debounce from '../../utils/debounce/debounce.js'\n\nconst axisList = [ 'vertical', 'horizontal' ]\nconst dirProps = {\n vertical: { offset: 'offsetY', scroll: 'scrollTop', dir: 'down', dist: 'y' },\n horizontal: { offset: 'offsetX', scroll: 'scrollLeft', dir: 'right', dist: 'x' }\n}\nconst panOpts = {\n prevent: true,\n mouse: true,\n mouseAllDir: true\n}\n\nconst getMinThumbSize = size => (size >= 250 ? 50 : Math.ceil(size / 5))\n\nexport default createComponent({\n name: 'QScrollArea',\n\n props: {\n ...useDarkProps,\n\n thumbStyle: Object,\n verticalThumbStyle: Object,\n horizontalThumbStyle: Object,\n\n barStyle: [ Array, String, Object ],\n verticalBarStyle: [ Array, String, Object ],\n horizontalBarStyle: [ Array, String, Object ],\n\n contentStyle: [ Array, String, Object ],\n contentActiveStyle: [ Array, String, Object ],\n\n delay: {\n type: [ String, Number ],\n default: 1000\n },\n\n visible: {\n type: Boolean,\n default: null\n },\n\n tabindex: [ String, Number ],\n\n onScroll: Function\n },\n\n setup (props, { slots, emit }) {\n // state management\n const tempShowing = ref(false)\n const panning = ref(false)\n const hover = ref(false)\n\n // other...\n const container = {\n vertical: ref(0),\n horizontal: ref(0)\n }\n\n const scroll = {\n vertical: {\n ref: ref(null),\n position: ref(0),\n size: ref(0)\n },\n\n horizontal: {\n ref: ref(null),\n position: ref(0),\n size: ref(0)\n }\n }\n\n const { proxy } = getCurrentInstance()\n\n const isDark = useDark(props, proxy.$q)\n\n let timer = null, panRefPos\n\n const targetRef = ref(null)\n\n const classes = computed(() =>\n 'q-scrollarea'\n + (isDark.value === true ? ' q-scrollarea--dark' : '')\n )\n\n scroll.vertical.percentage = computed(() => {\n const diff = scroll.vertical.size.value - container.vertical.value\n if (diff <= 0) { return 0 }\n const p = between(scroll.vertical.position.value / diff, 0, 1)\n return Math.round(p * 10000) / 10000\n })\n scroll.vertical.thumbHidden = computed(() =>\n (\n (props.visible === null ? hover.value : props.visible) !== true\n && tempShowing.value === false\n && panning.value === false\n ) || scroll.vertical.size.value <= container.vertical.value + 1\n )\n scroll.vertical.thumbStart = computed(() =>\n scroll.vertical.percentage.value * (container.vertical.value - scroll.vertical.thumbSize.value)\n )\n scroll.vertical.thumbSize = computed(() =>\n Math.round(\n between(\n container.vertical.value * container.vertical.value / scroll.vertical.size.value,\n getMinThumbSize(container.vertical.value),\n container.vertical.value\n )\n )\n )\n scroll.vertical.style = computed(() => {\n return {\n ...props.thumbStyle,\n ...props.verticalThumbStyle,\n top: `${ scroll.vertical.thumbStart.value }px`,\n height: `${ scroll.vertical.thumbSize.value }px`\n }\n })\n scroll.vertical.thumbClass = computed(() =>\n 'q-scrollarea__thumb q-scrollarea__thumb--v absolute-right'\n + (scroll.vertical.thumbHidden.value === true ? ' q-scrollarea__thumb--invisible' : '')\n )\n scroll.vertical.barClass = computed(() =>\n 'q-scrollarea__bar q-scrollarea__bar--v absolute-right'\n + (scroll.vertical.thumbHidden.value === true ? ' q-scrollarea__bar--invisible' : '')\n )\n\n scroll.horizontal.percentage = computed(() => {\n const diff = scroll.horizontal.size.value - container.horizontal.value\n if (diff <= 0) { return 0 }\n const p = between(Math.abs(scroll.horizontal.position.value) / diff, 0, 1)\n return Math.round(p * 10000) / 10000\n })\n scroll.horizontal.thumbHidden = computed(() =>\n (\n (props.visible === null ? hover.value : props.visible) !== true\n && tempShowing.value === false\n && panning.value === false\n ) || scroll.horizontal.size.value <= container.horizontal.value + 1\n )\n scroll.horizontal.thumbStart = computed(() =>\n scroll.horizontal.percentage.value * (container.horizontal.value - scroll.horizontal.thumbSize.value)\n )\n scroll.horizontal.thumbSize = computed(() =>\n Math.round(\n between(\n container.horizontal.value * container.horizontal.value / scroll.horizontal.size.value,\n getMinThumbSize(container.horizontal.value),\n container.horizontal.value\n )\n )\n )\n scroll.horizontal.style = computed(() => {\n return {\n ...props.thumbStyle,\n ...props.horizontalThumbStyle,\n [ proxy.$q.lang.rtl === true ? 'right' : 'left' ]: `${ scroll.horizontal.thumbStart.value }px`,\n width: `${ scroll.horizontal.thumbSize.value }px`\n }\n })\n scroll.horizontal.thumbClass = computed(() =>\n 'q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom'\n + (scroll.horizontal.thumbHidden.value === true ? ' q-scrollarea__thumb--invisible' : '')\n )\n scroll.horizontal.barClass = computed(() =>\n 'q-scrollarea__bar q-scrollarea__bar--h absolute-bottom'\n + (scroll.horizontal.thumbHidden.value === true ? ' q-scrollarea__bar--invisible' : '')\n )\n\n const mainStyle = computed(() => (\n scroll.vertical.thumbHidden.value === true && scroll.horizontal.thumbHidden.value === true\n ? props.contentStyle\n : props.contentActiveStyle\n ))\n\n const thumbVertDir = [ [\n TouchPan,\n e => { onPanThumb(e, 'vertical') },\n void 0,\n { vertical: true, ...panOpts }\n ] ]\n\n const thumbHorizDir = [ [\n TouchPan,\n e => { onPanThumb(e, 'horizontal') },\n void 0,\n { horizontal: true, ...panOpts }\n ] ]\n\n function getScroll () {\n const info = {}\n\n axisList.forEach(axis => {\n const data = scroll[ axis ]\n\n info[ axis + 'Position' ] = data.position.value\n info[ axis + 'Percentage' ] = data.percentage.value\n info[ axis + 'Size' ] = data.size.value\n info[ axis + 'ContainerSize' ] = container[ axis ].value\n })\n\n return info\n }\n\n // we have lots of listeners, so\n // ensure we're not emitting same info\n // multiple times\n const emitScroll = debounce(() => {\n const info = getScroll()\n info.ref = proxy\n emit('scroll', info)\n }, 0)\n\n function localSetScrollPosition (axis, offset, duration) {\n if (axisList.includes(axis) === false) {\n console.error('[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)')\n return\n }\n\n const fn = axis === 'vertical'\n ? setVerticalScrollPosition\n : setHorizontalScrollPosition\n\n fn(targetRef.value, offset, duration)\n }\n\n function updateContainer ({ height, width }) {\n let change = false\n\n if (container.vertical.value !== height) {\n container.vertical.value = height\n change = true\n }\n\n if (container.horizontal.value !== width) {\n container.horizontal.value = width\n change = true\n }\n\n change === true && startTimer()\n }\n\n function updateScroll ({ position }) {\n let change = false\n\n if (scroll.vertical.position.value !== position.top) {\n scroll.vertical.position.value = position.top\n change = true\n }\n\n if (scroll.horizontal.position.value !== position.left) {\n scroll.horizontal.position.value = position.left\n change = true\n }\n\n change === true && startTimer()\n }\n\n function updateScrollSize ({ height, width }) {\n if (scroll.horizontal.size.value !== width) {\n scroll.horizontal.size.value = width\n startTimer()\n }\n\n if (scroll.vertical.size.value !== height) {\n scroll.vertical.size.value = height\n startTimer()\n }\n }\n\n function onPanThumb (e, axis) {\n const data = scroll[ axis ]\n\n if (e.isFirst === true) {\n if (data.thumbHidden.value === true) {\n return\n }\n\n panRefPos = data.position.value\n panning.value = true\n }\n else if (panning.value !== true) {\n return\n }\n\n if (e.isFinal === true) {\n panning.value = false\n }\n\n const dProp = dirProps[ axis ]\n const containerSize = container[ axis ].value\n\n const multiplier = (data.size.value - containerSize) / (containerSize - data.thumbSize.value)\n const distance = e.distance[ dProp.dist ]\n const pos = panRefPos + (e.direction === dProp.dir ? 1 : -1) * distance * multiplier\n\n setScroll(pos, axis)\n }\n\n function onMousedown (evt, axis) {\n const data = scroll[ axis ]\n\n if (data.thumbHidden.value !== true) {\n const offset = evt[ dirProps[ axis ].offset ]\n if (offset < data.thumbStart.value || offset > data.thumbStart.value + data.thumbSize.value) {\n const pos = offset - data.thumbSize.value / 2\n setScroll(pos / container[ axis ].value * data.size.value, axis)\n }\n\n // activate thumb pan\n if (data.ref.value !== null) {\n data.ref.value.dispatchEvent(new MouseEvent(evt.type, evt))\n }\n }\n }\n\n function onVerticalMousedown (evt) {\n onMousedown(evt, 'vertical')\n }\n\n function onHorizontalMousedown (evt) {\n onMousedown(evt, 'horizontal')\n }\n\n function startTimer () {\n tempShowing.value = true\n\n timer !== null && clearTimeout(timer)\n timer = setTimeout(() => {\n timer = null\n tempShowing.value = false\n }, props.delay)\n\n props.onScroll !== void 0 && emitScroll()\n }\n\n function setScroll (offset, axis) {\n targetRef.value[ dirProps[ axis ].scroll ] = offset\n }\n\n let mouseEventTimer = null\n\n function onMouseenter () {\n if (mouseEventTimer !== null) {\n clearTimeout(mouseEventTimer)\n }\n\n // setTimeout needed for iOS; see ticket #16210\n mouseEventTimer = setTimeout(() => {\n mouseEventTimer = null\n hover.value = true\n }, proxy.$q.platform.is.ios ? 50 : 0)\n }\n\n function onMouseleave () {\n if (mouseEventTimer !== null) {\n clearTimeout(mouseEventTimer)\n mouseEventTimer = null\n }\n\n hover.value = false\n }\n\n let scrollPosition = null\n\n watch(() => proxy.$q.lang.rtl, rtl => {\n if (targetRef.value !== null) {\n setHorizontalScrollPosition(\n targetRef.value,\n Math.abs(scroll.horizontal.position.value) * (rtl === true ? -1 : 1)\n )\n }\n })\n\n onDeactivated(() => {\n scrollPosition = {\n top: scroll.vertical.position.value,\n left: scroll.horizontal.position.value\n }\n })\n\n onActivated(() => {\n if (scrollPosition === null) return\n\n const scrollTarget = targetRef.value\n\n if (scrollTarget !== null) {\n setHorizontalScrollPosition(scrollTarget, scrollPosition.left)\n setVerticalScrollPosition(scrollTarget, scrollPosition.top)\n }\n })\n\n onBeforeUnmount(emitScroll.cancel)\n\n // expose public methods\n Object.assign(proxy, {\n getScrollTarget: () => targetRef.value,\n getScroll,\n getScrollPosition: () => ({\n top: scroll.vertical.position.value,\n left: scroll.horizontal.position.value\n }),\n getScrollPercentage: () => ({\n top: scroll.vertical.percentage.value,\n left: scroll.horizontal.percentage.value\n }),\n setScrollPosition: localSetScrollPosition,\n setScrollPercentage (axis, percentage, duration) {\n localSetScrollPosition(\n axis,\n percentage\n * (scroll[ axis ].size.value - container[ axis ].value)\n * (axis === 'horizontal' && proxy.$q.lang.rtl === true ? -1 : 1),\n duration\n )\n }\n })\n\n return () => {\n return h('div', {\n class: classes.value,\n onMouseenter,\n onMouseleave\n }, [\n h('div', {\n ref: targetRef,\n class: 'q-scrollarea__container scroll relative-position fit hide-scrollbar',\n tabindex: props.tabindex !== void 0 ? props.tabindex : void 0\n }, [\n h('div', {\n class: 'q-scrollarea__content absolute',\n style: mainStyle.value\n }, hMergeSlot(slots.default, [\n h(QResizeObserver, {\n debounce: 0,\n onResize: updateScrollSize\n })\n ])),\n\n h(QScrollObserver, {\n axis: 'both',\n onScroll: updateScroll\n })\n ]),\n\n h(QResizeObserver, {\n debounce: 0,\n onResize: updateContainer\n }),\n\n h('div', {\n class: scroll.vertical.barClass.value,\n style: [ props.barStyle, props.verticalBarStyle ],\n 'aria-hidden': 'true',\n onMousedown: onVerticalMousedown\n }),\n\n h('div', {\n class: scroll.horizontal.barClass.value,\n style: [ props.barStyle, props.horizontalBarStyle ],\n 'aria-hidden': 'true',\n onMousedown: onHorizontalMousedown\n }),\n\n withDirectives(\n h('div', {\n ref: scroll.vertical.ref,\n class: scroll.vertical.thumbClass.value,\n style: scroll.vertical.style.value,\n 'aria-hidden': 'true'\n }),\n thumbVertDir\n ),\n\n withDirectives(\n h('div', {\n ref: scroll.horizontal.ref,\n class: scroll.horizontal.thumbClass.value,\n style: scroll.horizontal.style.value,\n 'aria-hidden': 'true'\n }),\n thumbHorizDir\n )\n ])\n }\n }\n})\n"],"names":["getChanges","evt","ctx","isFinal","pos","position","dir","distX","distY","absX","absY","direction","synthetic","uid","TouchPan","createDirective","el","value","modifiers","client","handleEvent","mouseEvent","stopAndPrevent","stop","prevent","getModifierDirections","noop","shouldStart","leftClick","addEvt","target","preventDraggable","clone","left","top","isMouseEvt","start","cursor","clearSelection","withDelayedFn","remove","payload","abort","cleanEvt","fn","capture","bindings","axisList","dirProps","panOpts","getMinThumbSize","size","__nuxt_component_7","createComponent","useDarkProps","props","slots","emit","tempShowing","ref","panning","hover","container","scroll","proxy","getCurrentInstance","isDark","useDark","timer","panRefPos","targetRef","classes","computed","diff","p","between","mainStyle","thumbVertDir","e","onPanThumb","thumbHorizDir","getScroll","info","axis","data","emitScroll","debounce","localSetScrollPosition","offset","duration","setVerticalScrollPosition","setHorizontalScrollPosition","updateContainer","height","width","change","startTimer","updateScroll","updateScrollSize","dProp","containerSize","multiplier","distance","setScroll","onMousedown","onVerticalMousedown","onHorizontalMousedown","mouseEventTimer","onMouseenter","onMouseleave","scrollPosition","watch","rtl","onDeactivated","onActivated","scrollTarget","onBeforeUnmount","percentage","h","hMergeSlot","QResizeObserver","QScrollObserver","withDirectives"],"mappings":"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","x_google_ignoreList":[0,1]}