{"version":3,"file":"Bd46SgGY.js","sources":["../../../../node_modules/quasar/src/components/header/QHeader.js","../../../../node_modules/quasar/src/components/layout/QLayout.js"],"sourcesContent":["import { h, ref, computed, watch, onBeforeUnmount, inject, getCurrentInstance } from 'vue'\n\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\nimport { createComponent } from '../../utils/private.create/create.js'\nimport { hUniqueSlot } from '../../utils/private.render/render.js'\nimport { layoutKey, emptyRenderFn } from '../../utils/private.symbols/symbols.js'\n\nexport default createComponent({\n name: 'QHeader',\n\n props: {\n modelValue: {\n type: Boolean,\n default: true\n },\n reveal: Boolean,\n revealOffset: {\n type: Number,\n default: 250\n },\n bordered: Boolean,\n elevated: Boolean,\n\n heightHint: {\n type: [ String, Number ],\n default: 50\n }\n },\n\n emits: [ 'reveal', 'focusin' ],\n\n setup (props, { slots, emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const $layout = inject(layoutKey, emptyRenderFn)\n if ($layout === emptyRenderFn) {\n console.error('QHeader needs to be child of QLayout')\n return emptyRenderFn\n }\n\n const size = ref(parseInt(props.heightHint, 10))\n const revealed = ref(true)\n\n const fixed = computed(() =>\n props.reveal === true\n || $layout.view.value.indexOf('H') !== -1\n || ($q.platform.is.ios && $layout.isContainer.value === true)\n )\n\n const offset = computed(() => {\n if (props.modelValue !== true) {\n return 0\n }\n if (fixed.value === true) {\n return revealed.value === true ? size.value : 0\n }\n const offset = size.value - $layout.scroll.value.position\n return offset > 0 ? offset : 0\n })\n\n const hidden = computed(() => props.modelValue !== true\n || (fixed.value === true && revealed.value !== true)\n )\n\n const revealOnFocus = computed(() =>\n props.modelValue === true && hidden.value === true && props.reveal === true\n )\n\n const classes = computed(() =>\n 'q-header q-layout__section--marginal '\n + (fixed.value === true ? 'fixed' : 'absolute') + '-top'\n + (props.bordered === true ? ' q-header--bordered' : '')\n + (hidden.value === true ? ' q-header--hidden' : '')\n + (props.modelValue !== true ? ' q-layout--prevent-focus' : '')\n )\n\n const style = computed(() => {\n const\n view = $layout.rows.value.top,\n css = {}\n\n if (view[ 0 ] === 'l' && $layout.left.space === true) {\n css[ $q.lang.rtl === true ? 'right' : 'left' ] = `${ $layout.left.size }px`\n }\n if (view[ 2 ] === 'r' && $layout.right.space === true) {\n css[ $q.lang.rtl === true ? 'left' : 'right' ] = `${ $layout.right.size }px`\n }\n\n return css\n })\n\n function updateLayout (prop, val) {\n $layout.update('header', prop, val)\n }\n\n function updateLocal (prop, val) {\n if (prop.value !== val) {\n prop.value = val\n }\n }\n\n function onResize ({ height }) {\n updateLocal(size, height)\n updateLayout('size', height)\n }\n\n function onFocusin (evt) {\n if (revealOnFocus.value === true) {\n updateLocal(revealed, true)\n }\n\n emit('focusin', evt)\n }\n\n watch(() => props.modelValue, val => {\n updateLayout('space', val)\n updateLocal(revealed, true)\n $layout.animate()\n })\n\n watch(offset, val => {\n updateLayout('offset', val)\n })\n\n watch(() => props.reveal, val => {\n val === false && updateLocal(revealed, props.modelValue)\n })\n\n watch(revealed, val => {\n $layout.animate()\n emit('reveal', val)\n })\n\n watch($layout.scroll, scroll => {\n props.reveal === true && updateLocal(revealed,\n scroll.direction === 'up'\n || scroll.position <= props.revealOffset\n || scroll.position - scroll.inflectionPoint < 100\n )\n })\n\n const instance = {}\n\n $layout.instances.header = instance\n props.modelValue === true && updateLayout('size', size.value)\n updateLayout('space', props.modelValue)\n updateLayout('offset', offset.value)\n\n onBeforeUnmount(() => {\n if ($layout.instances.header === instance) {\n $layout.instances.header = void 0\n updateLayout('size', 0)\n updateLayout('offset', 0)\n updateLayout('space', false)\n }\n })\n\n return () => {\n const child = hUniqueSlot(slots.default, [])\n\n props.elevated === true && child.push(\n h('div', {\n class: 'q-layout__shadow absolute-full overflow-hidden no-pointer-events'\n })\n )\n\n child.push(\n h(QResizeObserver, {\n debounce: 0,\n onResize\n })\n )\n\n return h('header', {\n class: classes.value,\n style: style.value,\n onFocusin\n }, child)\n }\n }\n})\n","import { h, ref, reactive, computed, watch, provide, onUnmounted, getCurrentInstance } from 'vue'\n\nimport { isRuntimeSsrPreHydration } from '../../plugins/platform/Platform.js'\n\nimport QScrollObserver from '../scroll-observer/QScrollObserver.js'\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\nimport { createComponent } from '../../utils/private.create/create.js'\nimport { getScrollbarWidth } from '../../utils/scroll/scroll.js'\nimport { hMergeSlot } from '../../utils/private.render/render.js'\nimport { layoutKey } from '../../utils/private.symbols/symbols.js'\n\nexport default createComponent({\n name: 'QLayout',\n\n props: {\n container: Boolean,\n view: {\n type: String,\n default: 'hhh lpr fff',\n validator: v => /^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(v.toLowerCase())\n },\n\n onScroll: Function,\n onScrollHeight: Function,\n onResize: Function\n },\n\n setup (props, { slots, emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const rootRef = ref(null)\n\n // page related\n const height = ref($q.screen.height)\n const width = ref(props.container === true ? 0 : $q.screen.width)\n const scroll = ref({ position: 0, direction: 'down', inflectionPoint: 0 })\n\n // container only prop\n const containerHeight = ref(0)\n const scrollbarWidth = ref(isRuntimeSsrPreHydration.value === true ? 0 : getScrollbarWidth())\n\n const classes = computed(() =>\n 'q-layout q-layout--'\n + (props.container === true ? 'containerized' : 'standard')\n )\n\n const style = computed(() => (\n props.container === false\n ? { minHeight: $q.screen.height + 'px' }\n : null\n ))\n\n // used by container only\n const targetStyle = computed(() => (\n scrollbarWidth.value !== 0\n ? { [ $q.lang.rtl === true ? 'left' : 'right' ]: `${ scrollbarWidth.value }px` }\n : null\n ))\n\n const targetChildStyle = computed(() => (\n scrollbarWidth.value !== 0\n ? {\n [ $q.lang.rtl === true ? 'right' : 'left' ]: 0,\n [ $q.lang.rtl === true ? 'left' : 'right' ]: `-${ scrollbarWidth.value }px`,\n width: `calc(100% + ${ scrollbarWidth.value }px)`\n }\n : null\n ))\n\n function onPageScroll (data) {\n if (props.container === true || document.qScrollPrevented !== true) {\n const info = {\n position: data.position.top,\n direction: data.direction,\n directionChanged: data.directionChanged,\n inflectionPoint: data.inflectionPoint.top,\n delta: data.delta.top\n }\n\n scroll.value = info\n props.onScroll !== void 0 && emit('scroll', info)\n }\n }\n\n function onPageResize (data) {\n const { height: newHeight, width: newWidth } = data\n let resized = false\n\n if (height.value !== newHeight) {\n resized = true\n height.value = newHeight\n props.onScrollHeight !== void 0 && emit('scrollHeight', newHeight)\n updateScrollbarWidth()\n }\n if (width.value !== newWidth) {\n resized = true\n width.value = newWidth\n }\n\n if (resized === true && props.onResize !== void 0) {\n emit('resize', data)\n }\n }\n\n function onContainerResize ({ height }) {\n if (containerHeight.value !== height) {\n containerHeight.value = height\n updateScrollbarWidth()\n }\n }\n\n function updateScrollbarWidth () {\n if (props.container === true) {\n const width = height.value > containerHeight.value\n ? getScrollbarWidth()\n : 0\n\n if (scrollbarWidth.value !== width) {\n scrollbarWidth.value = width\n }\n }\n }\n\n let animateTimer = null\n\n const $layout = {\n instances: {},\n view: computed(() => props.view),\n isContainer: computed(() => props.container),\n\n rootRef,\n\n height,\n containerHeight,\n scrollbarWidth,\n totalWidth: computed(() => width.value + scrollbarWidth.value),\n\n rows: computed(() => {\n const rows = props.view.toLowerCase().split(' ')\n return {\n top: rows[ 0 ].split(''),\n middle: rows[ 1 ].split(''),\n bottom: rows[ 2 ].split('')\n }\n }),\n\n header: reactive({ size: 0, offset: 0, space: false }),\n right: reactive({ size: 300, offset: 0, space: false }),\n footer: reactive({ size: 0, offset: 0, space: false }),\n left: reactive({ size: 300, offset: 0, space: false }),\n\n scroll,\n\n animate () {\n if (animateTimer !== null) {\n clearTimeout(animateTimer)\n }\n else {\n document.body.classList.add('q-body--layout-animate')\n }\n\n animateTimer = setTimeout(() => {\n animateTimer = null\n document.body.classList.remove('q-body--layout-animate')\n }, 155)\n },\n\n update (part, prop, val) {\n $layout[ part ][ prop ] = val\n }\n }\n\n provide(layoutKey, $layout)\n\n // prevent scrollbar flicker while resizing window height\n // if no page scrollbar is already present\n if (__QUASAR_SSR_SERVER__ !== true && getScrollbarWidth() > 0) {\n let timer = null\n const el = document.body\n\n function restoreScrollbar () {\n timer = null\n el.classList.remove('hide-scrollbar')\n }\n\n function hideScrollbar () {\n if (timer === null) {\n // if it has no scrollbar then there's nothing to do\n\n if (el.scrollHeight > $q.screen.height) {\n return\n }\n\n el.classList.add('hide-scrollbar')\n }\n else {\n clearTimeout(timer)\n }\n\n timer = setTimeout(restoreScrollbar, 300)\n }\n\n function updateScrollEvent (action) {\n if (timer !== null && action === 'remove') {\n clearTimeout(timer)\n restoreScrollbar()\n }\n\n window[ `${ action }EventListener` ]('resize', hideScrollbar)\n }\n\n watch(\n () => (props.container !== true ? 'add' : 'remove'),\n updateScrollEvent\n )\n\n props.container !== true && updateScrollEvent('add')\n\n onUnmounted(() => {\n updateScrollEvent('remove')\n })\n }\n\n return () => {\n const content = hMergeSlot(slots.default, [\n h(QScrollObserver, { onScroll: onPageScroll }),\n h(QResizeObserver, { onResize: onPageResize })\n ])\n\n const layout = h('div', {\n class: classes.value,\n style: style.value,\n ref: props.container === true ? void 0 : rootRef,\n tabindex: -1\n }, content)\n\n if (props.container === true) {\n return h('div', {\n class: 'q-layout-container overflow-hidden',\n ref: rootRef\n }, [\n h(QResizeObserver, { onResize: onContainerResize }),\n h('div', {\n class: 'absolute-full',\n style: targetStyle.value\n }, [\n h('div', {\n class: 'scroll',\n style: targetChildStyle.value\n }, [ layout ])\n ])\n ])\n }\n\n return layout\n }\n }\n})\n"],"names":["__nuxt_component_0","createComponent","props","slots","emit","$q","getCurrentInstance","$layout","inject","layoutKey","emptyRenderFn","size","ref","revealed","fixed","computed","offset","hidden","revealOnFocus","classes","style","view","css","updateLayout","prop","val","updateLocal","onResize","height","onFocusin","evt","watch","scroll","instance","onBeforeUnmount","child","hUniqueSlot","h","QResizeObserver","__nuxt_component_12","v","rootRef","width","containerHeight","scrollbarWidth","isRuntimeSsrPreHydration","getScrollbarWidth","targetStyle","targetChildStyle","onPageScroll","data","info","onPageResize","newHeight","newWidth","resized","updateScrollbarWidth","onContainerResize","animateTimer","rows","reactive","part","provide","restoreScrollbar","timer","el","hideScrollbar","updateScrollEvent","action","onUnmounted","content","hMergeSlot","QScrollObserver","layout"],"mappings":"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","x_google_ignoreList":[0,1]}