{"version":3,"sources":["webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/components/VTabs/VTab.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VWindow/VWindow.ts","webpack:///../../../src/components/VTabs/VTabsItems.ts","webpack:///../../../src/components/VBtn/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///./src/views/Help.vue?0913","webpack:///src/views/Help.vue","webpack:///./src/views/Help.vue?1eaf","webpack:///./src/views/Help.vue","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///../../../src/components/VTabs/VTabItem.ts","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///../../../src/components/VTabs/VTabsBar.ts","webpack:///../../../src/components/VTabs/VTabsSlider.ts","webpack:///../../../src/components/VTabs/VTabs.ts"],"names":["Vue","extend","name","props","loading","type","Boolean","String","default","loaderHeight","Number","methods","genProgress","this","getSlot","$createElement","VProgressLinear","absolute","color","height","indeterminate","baseMixins","mixins","Routable","GroupableFactory","Themeable","ripple","Object","tabValue","required","data","proxyClass","computed","classes","options","call","disabled","groupClasses","value","to","href","$router","resolve","$route","append","replace","click","e","preventDefault","indexOf","detail","$el","blur","$emit","toggle","isActive","tabsBar","mandatory","render","h","tag","generateRouteLink","attrs","role","tabindex","on","keydown","keyCode","keyCodes","enter","Colorable","PositionableFactory","Proxyable","directives","intersect","active","backgroundColor","backgroundOpacity","bufferValue","query","reverse","rounded","stream","striped","internalLazyValue","isVisible","__cachedBackground","setBackgroundColor","staticClass","style","backgroundStyle","__cachedBar","computedTransition","__cachedBarType","__cachedIndeterminate","__cachedDeterminate","__cachedBuffer","styles","width","convertToUnit","normalizedValue","class","genProgressBar","__cachedStream","setTextColor","normalizedBuffer","parseFloat","opacity","isReversed","Math","max","fixed","reactive","themeClasses","VFadeTransition","VSlideXTransition","$vuetify","rtl","normalize","$listeners","change","genContent","slot","genListeners","listeners","onClick","getBoundingClientRect","internalValue","offsetX","onObserve","entries","observer","isIntersecting","undefined","bottom","top","VCardActions","createSimpleFunctional","VCardSubtitle","VCardText","VCardTitle","VCard","BaseItemGroup","Touch","provide","windowGroup","activeClass","continuous","nextIcon","prevIcon","showArrows","showArrowsOnHover","touch","touchless","vertical","changedByDelimiters","internalHeight","transitionHeight","transitionCount","isBooted","isReverse","axis","internalReverse","direction","hasActiveItems","items","find","item","hasNext","internalIndex","length","hasPrev","findIndex","i","getValue","watch","val","oldVal","updateReverse","mounted","window","requestAnimationFrame","genDefaultSlot","genContainer","children","push","genControlIcons","genIcon","icon","stopPropagation","lang","t","_c","_b","_a","$scopedSlots","VBtn","VIcon","large","icons","prev","next","getNextIndex","index","nextIndex","getPrevIndex","prevIndex","lastIndex","itemsLength","left","right","end","start","VWindow","isDark","rootIsDark","id","Loadable","VSheet","flat","hover","img","link","raised","isClickable","background","key","_vm","_h","_self","_v","model","callback","$$v","tab","expression","staticStyle","$baseURL","staticRenderFns","component","VCol","VContainer","VRow","VTab","VTabItem","VTabs","VTabsItems","Bootable","reverseTransition","transition","inTransition","genWindowItem","onAfterTransition","onBeforeTransition","clientHeight","onTransitionCancelled","onEnter","el","$nextTick","beforeEnter","afterEnter","enterCancelled","beforeLeave","afterLeave","leaveCancelled","showLazyContent","VWindowItem","domProps","bias","c","x","abs","sign","calculateUpdatedOffset","selectedElement","widths","currentScrollOffset","clientWidth","offsetLeft","content","totalWidth","wrapper","itemOffset","additionalOffset","min","calculateCenteredOffset","offsetCentered","BaseSlideGroup","Mobile","Resize","centerActive","validator","v","includes","isOverflowing","resizeTimeout","startX","isSwipingHorizontal","isSwiping","scrollOffset","canTouch","__cachedNext","genTransition","__cachedPrev","hasAffixes","isMobile","scroll","$refs","transform","ResizeObserver","obs","onResize","observe","$on","disconnect","setWidths","onScroll","scrollLeft","onFocusin","composedPath","vm","genNext","onAffixClick","ref","focusin","genData","location","upperLocation","toUpperCase","slice","hasAffix","genPrev","genWrapper","overflowCheck","onTouchStart","move","onTouchMove","onTouchEnd","calculateNewOffset","newAbosluteOffset","scrollTo","_isDestroyed","touchstartX","setProperty","diffX","touchmoveX","diffY","touchmoveY","touchstartY","document","documentElement","overflowY","maxScrollOffset","removeProperty","fn","scrollIntoView","selectedItem","lastItemPosition","wrapperPosition","selectedIndex","slideGroup","SSRBootable","callSlider","onRouteChange","newPath","path","oldPath","hasNew","hasOld","alignWithTitle","centered","fixedTabs","grow","hideSlider","iconsAndText","mobileBreakpoint","optional","sliderColor","sliderSize","slider","transitionTime","sliderStyles","computedColor","appIsDark","setTimeout","selectedItems","activeTab","scrollHeight","offsetWidth","offsetTop","scrollWidth","genBar","dark","light","VTabsBar","genSlider","genItems","VTabsSlider","clearTimeout","parseNodes","vnode","componentOptions","Ctor","modifiers","quiet"],"mappings":"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","file":"js/chunk-02c7f48e.1c4b04aa.js","sourcesContent":["import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\nimport { getSlot } from '../../util/helpers'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return getSlot(this, 'progress') || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Routable from '../../mixins/routable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { getSlot, keyCodes } from './../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { ExtractVue } from './../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n// Components\nimport VTabsBar from '../VTabs/VTabsBar'\n\nconst baseMixins = mixins(\n Routable,\n // Must be after routable\n // to overwrite activeClass\n GroupableFactory('tabsBar'),\n Themeable\n)\n\ntype VTabBarInstance = InstanceType\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n tabsBar: VTabBarInstance\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-tab',\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n tabValue: {\n required: false,\n },\n },\n\n data: () => ({\n proxyClass: 'v-tab--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-tab': true,\n ...Routable.options.computed.classes.call(this),\n 'v-tab--disabled': this.disabled,\n ...this.groupClasses,\n }\n },\n value (): any {\n if (this.tabValue != null) return this.tabValue\n\n let to = this.to || this.href\n\n if (to == null) return to\n\n if (this.$router &&\n this.to === Object(this.to)\n ) {\n const resolve = this.$router.resolve(\n this.to,\n this.$route,\n this.append\n )\n\n to = resolve.href\n }\n\n return to.replace('#', '')\n },\n },\n\n methods: {\n click (e: KeyboardEvent | MouseEvent): void {\n // Prevent keyboard actions\n // from children elements\n // within disabled tabs\n if (this.disabled) {\n e.preventDefault()\n return\n }\n\n // If user provides an\n // actual link, do not\n // prevent default\n if (this.href &&\n this.href.indexOf('#') > -1\n ) e.preventDefault()\n\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n toggle () {\n // VItemGroup treats a change event as a click\n if (!this.isActive || (!this.tabsBar.mandatory && !this.to)) {\n this.$emit('change')\n }\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n 'aria-selected': String(this.isActive),\n role: 'tab',\n tabindex: this.disabled ? -1 : 0,\n }\n data.on = {\n ...data.on,\n keydown: (e: KeyboardEvent) => {\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n return h(tag, data, getSlot(this))\n },\n})\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","// Styles\nimport './VWindow.sass'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue/types/vnode'\nimport { PropType } from 'vue'\nimport { TouchHandlers } from 'vuetify/types'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-window',\n\n directives: { Touch },\n\n provide (): object {\n return {\n windowGroup: this,\n }\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-window-item--active',\n },\n continuous: Boolean,\n mandatory: {\n type: Boolean,\n default: true,\n },\n nextIcon: {\n type: [Boolean, String],\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: Boolean,\n showArrowsOnHover: Boolean,\n touch: Object as PropType,\n touchless: Boolean,\n value: {\n required: false,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n changedByDelimiters: false,\n internalHeight: undefined as undefined | string, // This can be fixed by child class.\n transitionHeight: undefined as undefined | string, // Intermediate height during transition.\n transitionCount: 0, // Number of windows in transition state.\n isBooted: false,\n isReverse: false,\n }\n },\n\n computed: {\n isActive (): boolean {\n return this.transitionCount > 0\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-window--show-arrows-on-hover': this.showArrowsOnHover,\n }\n },\n computedTransition (): string {\n if (!this.isBooted) return ''\n\n const axis = this.vertical ? 'y' : 'x'\n const reverse = this.internalReverse ? !this.isReverse : this.isReverse\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n },\n hasActiveItems (): boolean {\n return Boolean(\n this.items.find(item => !item.disabled)\n )\n },\n hasNext (): boolean {\n return this.continuous || this.internalIndex < this.items.length - 1\n },\n hasPrev (): boolean {\n return this.continuous || this.internalIndex > 0\n },\n internalIndex (): number {\n return this.items.findIndex((item, i) => {\n return this.internalValue === this.getValue(item, i)\n })\n },\n internalReverse (): boolean {\n return this.$vuetify.rtl ? !this.reverse : this.reverse\n },\n },\n\n watch: {\n internalIndex (val, oldVal) {\n this.isReverse = this.updateReverse(val, oldVal)\n },\n },\n\n mounted () {\n window.requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n genDefaultSlot () {\n return getSlot(this)\n },\n genContainer (): VNode {\n const children = [this.genDefaultSlot()]\n\n if (this.showArrows) {\n children.push(this.genControlIcons())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-window__container',\n class: {\n 'v-window__container--is-active': this.isActive,\n },\n style: {\n height: this.internalHeight || this.transitionHeight,\n },\n }, children)\n },\n genIcon (\n direction: 'prev' | 'next',\n icon: string,\n click: () => void\n ) {\n const on = {\n click: (e: Event) => {\n e.stopPropagation()\n this.changedByDelimiters = true\n click()\n },\n }\n const attrs = {\n 'aria-label': this.$vuetify.lang.t(`$vuetify.carousel.${direction}`),\n }\n const children = this.$scopedSlots[direction]?.({\n on,\n attrs,\n }) ?? [this.$createElement(VBtn, {\n props: { icon: true },\n attrs,\n on,\n }, [\n this.$createElement(VIcon, {\n props: { large: true },\n }, icon),\n ])]\n\n return this.$createElement('div', {\n staticClass: `v-window__${direction}`,\n }, children)\n },\n genControlIcons () {\n const icons = []\n\n const prevIcon = this.$vuetify.rtl\n ? this.nextIcon\n : this.prevIcon\n\n /* istanbul ignore else */\n if (\n this.hasPrev &&\n prevIcon &&\n typeof prevIcon === 'string'\n ) {\n const icon = this.genIcon('prev', prevIcon, this.prev)\n icon && icons.push(icon)\n }\n\n const nextIcon = this.$vuetify.rtl\n ? this.prevIcon\n : this.nextIcon\n\n /* istanbul ignore else */\n if (\n this.hasNext &&\n nextIcon &&\n typeof nextIcon === 'string'\n ) {\n const icon = this.genIcon('next', nextIcon, this.next)\n icon && icons.push(icon)\n }\n\n return icons\n },\n getNextIndex (index: number): number {\n const nextIndex = (index + 1) % this.items.length\n const item = this.items[nextIndex]\n\n if (item.disabled) return this.getNextIndex(nextIndex)\n\n return nextIndex\n },\n getPrevIndex (index: number): number {\n const prevIndex = (index + this.items.length - 1) % this.items.length\n const item = this.items[prevIndex]\n\n if (item.disabled) return this.getPrevIndex(prevIndex)\n\n return prevIndex\n },\n next () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasNext) return\n\n const nextIndex = this.getNextIndex(this.internalIndex)\n const item = this.items[nextIndex]\n\n this.internalValue = this.getValue(item, nextIndex)\n },\n prev () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasPrev) return\n\n const lastIndex = this.getPrevIndex(this.internalIndex)\n const item = this.items[lastIndex]\n\n this.internalValue = this.getValue(item, lastIndex)\n },\n updateReverse (val: number, oldVal: number) {\n const itemsLength = this.items.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) return val < oldVal\n\n if (val === lastIndex && oldVal === 0) {\n return true\n } else if (val === 0 && oldVal === lastIndex) {\n return false\n } else {\n return val < oldVal\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-window',\n class: this.classes,\n directives: [] as VNodeDirective[],\n }\n\n if (!this.touchless) {\n const value = this.touch || {\n left: () => {\n this.$vuetify.rtl ? this.prev() : this.next()\n },\n right: () => {\n this.$vuetify.rtl ? this.next() : this.prev()\n },\n end: (e: TouchEvent) => {\n e.stopPropagation()\n },\n start: (e: TouchEvent) => {\n e.stopPropagation()\n },\n }\n\n data.directives.push({\n name: 'touch',\n value,\n })\n }\n\n return h('div', data, [this.genContainer()])\n },\n})\n","// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n// Types & Components\nimport { BaseItemGroup, GroupableInstance } from './../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default VWindow.extend({\n name: 'v-tabs-items',\n\n props: {\n mandatory: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VWindow.options.computed.classes.call(this),\n 'v-tabs-items': true,\n }\n },\n isDark (): boolean {\n return this.rootIsDark\n },\n },\n\n methods: {\n getValue (item: GroupableInstance, i: number) {\n return item.id || BaseItemGroup.options.methods.getValue.call(this, item, i)\n },\n },\n})\n","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n getSlot(this),\n ])\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('h1',[_vm._v(\"Help\")]),_c('v-row',[_c('v-col',{attrs:{\"md\":\"2\"}},[_c('v-tabs',{attrs:{\"vertical\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(\"Welcome\")]),_c('v-tab',[_vm._v(\"Quick Start\")]),_c('v-tab',[_vm._v(\"Schedules\")])],1)],1),_c('v-col',{attrs:{\"md\":\"10\"}},[_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',[_vm._v(\" Welcome to TheFlightSimKit! \")]),_c('v-card-text',[_vm._v(\" Our website and client are continuing to undergo development and so we appreciate you using our system!\"),_c('br'),_vm._v(\" If you have any issues or ideas for us don't hesitate to contact us and we can look into implementing them.\"),_c('br'),_vm._v(\" These pages are intended to answer any questions you may have about our tool, however, if you have any additional questions please contact us. \")])],1)],1),_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',[_vm._v(\" Quick Start \")]),_c('v-card-text',[_c('p',[_vm._v(\"At the moment and for the foreseeable our platform is only available for Windows and is intended for Microsoft Flight Simulator 2020.\")]),_c('p',[_vm._v(\"Firstly create an account on our website. If you haven't done so already this is simple! Click 'Register' above!\")]),_c('h3',[_vm._v(\"Setup client\")]),_c('div',{staticStyle:{\"margin-top\":\"16px\",\"margin-bottom\":\"16px\"}},[_c('ol',[_c('li',[_c('a',{attrs:{\"href\":this.$baseURL + '/downloads/TheFlightSimKitClient.exe'}},[_vm._v(\"Download\")]),_vm._v(\" the client.\")]),_c('li',[_vm._v(\"Head over to account settings and click 'Generate Token' this will be used to login to your account with the client.\")]),_c('li',[_vm._v(\"Start the client.\")]),_c('li',[_vm._v(\"Login to the client. To do this you'll use your username and the token we just generated on the account page.\")])])]),_c('p',[_vm._v(\" Once started the client will run in the system tray and will wait for the game to start. Once started it will remain running there. \"),_c('br'),_c('br'),_vm._v(\" Note that by default discord rich presence will be enabled, this can be turned off through the menu in the system tray. \")]),_c('h3',[_vm._v(\"Create an Aircraft\")]),_c('p',[_vm._v(\"Creating and managing an aircraft can be done on the 'Fleet' page.\"),_c('br'),_vm._v(\" An aircraft requires three things.\")]),_c('div',{staticStyle:{\"margin-top\":\"16px\",\"margin-bottom\":\"16px\"}},[_c('ol',[_c('li',[_vm._v(\"An airline. This can be chosen from our drop-down or custom. Custom items can be added on the 'Airframes & Custom Airlines' tab.\")]),_c('li',[_vm._v(\"An airframe. These are SimBrief airframes. This can be chosen from our drop-down or custom. Custom items can be added on the 'Airframes & Custom Airlines' tab.\")]),_c('li',[_vm._v(\"A registration. This can be anything you want: valid or invalid.\")])])]),_c('h3',[_vm._v(\"Starting a Flight\")]),_c('p',[_c('b',[_vm._v(\"Before starting a flight you must first create an aircraft\")]),_c('br'),_vm._v(\" There are four ways of starting a flight. Flights can be started under 'Flight Planning' on the 'flights' page. \")]),_c('div',{staticStyle:{\"margin-top\":\"16px\",\"margin-bottom\":\"16px\"}},[_c('ol',[_c('li',[_vm._v(\"Creating one with SimBrief. This will require a SimBrief login. This can be done using the left-hand side of the page.\")]),_c('li',[_vm._v(\"Loading an existing one with SimBrief. If you want to use this option fill in your SimBrief username in the account page, once done this can be done by just clicking 'Load From SimBrief'.\")]),_c('li',[_vm._v(\"Load in a Microsoft Flight Simulator 2020 flight plan (.PLN file). This can be done by just uploading the plan and clicking 'Load MSFS Plan'.\")]),_c('li',[_vm._v(\"Start a 'FreeFlight'. Note this will be tracked but does not provide any route / origin / destination data. This can be done by clicking 'Start FreeFlight'\")])])])])],1)],1),_c('v-tab-item',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',[_vm._v(\" Flight Schedules \")]),_c('v-card-text',[_c('p',[_vm._v(\" Flight schedules are a feature which allows users to plan flights ahead of time and save them so that they can easily be flown in the future. \"),_c('br'),_vm._v(\" A flight schedule stores an airline, flight number, aircraft (from your fleet), origin and destination. These schedules can be flown and a flight plan generated simply by clicking \\\"dispatch\\\" from the schedule page. \"),_c('br'),_vm._v(\" There are three ways to 'schedule' a flight: \")]),_c('div',{staticStyle:{\"margin-top\":\"16px\",\"margin-bottom\":\"16px\"}},[_c('ol',[_c('li',[_vm._v(\"Manually add one by clicking 'Add Flight' from the 'Current Schedule' tab. \")]),_c('li',[_vm._v(\"Add a 'real' flight by heading to the 'Real Schedules' tab and clicking 'schedule' on the flight you want to schedule. \")]),_c('li',[_vm._v(\"Add a 'real' flight by heading to the 'Airline Routes' tab and clicking 'schedule' on the flight you want to schedule.\")])])])])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Help.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Help.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Help.vue?vue&type=template&id=4f27250c&scoped=true\"\nimport script from \"./Help.vue?vue&type=script&lang=js\"\nexport * from \"./Help.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 \"4f27250c\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VCard,VCardText,VCardTitle,VCol,VContainer,VRow,VTab,VTabItem,VTabs,VTabsItems})\n","// Components\nimport VWindow from './VWindow'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n GroupableFactory('windowGroup', 'v-window-item', 'v-window')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n windowGroup: InstanceType\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-window-item',\n\n directives: {\n Touch,\n },\n\n props: {\n disabled: Boolean,\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n value: {\n required: false,\n },\n },\n\n data () {\n return {\n isActive: false,\n inTransition: false,\n }\n },\n\n computed: {\n classes (): object {\n return this.groupClasses\n },\n computedTransition (): string | boolean {\n if (!this.windowGroup.internalReverse) {\n return typeof this.transition !== 'undefined'\n ? this.transition || ''\n : this.windowGroup.computedTransition\n }\n\n return typeof this.reverseTransition !== 'undefined'\n ? this.reverseTransition || ''\n : this.windowGroup.computedTransition\n },\n },\n\n methods: {\n genDefaultSlot () {\n return getSlot(this)\n },\n genWindowItem () {\n return this.$createElement('div', {\n staticClass: 'v-window-item',\n class: this.classes,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: this.$listeners,\n }, this.genDefaultSlot())\n },\n onAfterTransition () {\n if (!this.inTransition) {\n return\n }\n\n // Finalize transition state.\n this.inTransition = false\n if (this.windowGroup.transitionCount > 0) {\n this.windowGroup.transitionCount--\n\n // Remove container height if we are out of transition.\n if (this.windowGroup.transitionCount === 0) {\n this.windowGroup.transitionHeight = undefined\n }\n }\n },\n onBeforeTransition () {\n if (this.inTransition) {\n return\n }\n\n // Initialize transition state here.\n this.inTransition = true\n if (this.windowGroup.transitionCount === 0) {\n // Set initial height for height transition.\n this.windowGroup.transitionHeight = convertToUnit(this.windowGroup.$el.clientHeight)\n }\n this.windowGroup.transitionCount++\n },\n onTransitionCancelled () {\n this.onAfterTransition() // This should have the same path as normal transition end.\n },\n onEnter (el: HTMLElement) {\n if (!this.inTransition) {\n return\n }\n\n this.$nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!this.computedTransition || !this.inTransition) {\n return\n }\n\n // Set transition target height.\n this.windowGroup.transitionHeight = convertToUnit(el.clientHeight)\n })\n },\n },\n\n render (h): VNode {\n return h('transition', {\n props: {\n name: this.computedTransition,\n },\n on: {\n // Handlers for enter windows.\n beforeEnter: this.onBeforeTransition,\n afterEnter: this.onAfterTransition,\n enterCancelled: this.onTransitionCancelled,\n\n // Handlers for leave windows.\n beforeLeave: this.onBeforeTransition,\n afterLeave: this.onAfterTransition,\n leaveCancelled: this.onTransitionCancelled,\n\n // Enter handler for height transition.\n enter: this.onEnter,\n },\n }, this.showLazyContent(() => [this.genWindowItem()]))\n },\n})\n","// Extensions\nimport VWindowItem from '../VWindow/VWindowItem'\n\n/* @vue/component */\nexport default VWindowItem.extend({\n name: 'v-tab-item',\n\n props: {\n id: String,\n },\n\n methods: {\n genWindowItem () {\n const item = VWindowItem.options.methods.genWindowItem.call(this)\n\n item.data!.domProps = item.data!.domProps || {}\n item.data!.domProps.id = this.id || this.value\n\n return item\n },\n },\n})\n","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath, getSlot } from '../../util/helpers'\n\ninterface TouchEvent {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nfunction bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean,\n currentScrollOffset: number\n): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean\n): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n}\n\nexport const BaseSlideGroup = mixins\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'never',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n isSwipingHorizontal: false,\n isSwiping: false,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n canTouch (): boolean {\n return typeof window !== 'undefined'\n },\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // Always hide arrows\n case 'never': return false\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n if (this.$vuetify.rtl) val = -val\n\n let scroll =\n val <= 0\n ? bias(-val)\n : val > this.widths.content - this.widths.wrapper\n ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n : -val\n\n if (this.$vuetify.rtl) scroll = -scroll\n\n this.$refs.content.style.transform = `translateX(${scroll}px)`\n },\n },\n\n mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n obs.observe(this.$refs.content)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n } else {\n let itemsLength = 0\n this.$on('hook:beforeUpdate', () => {\n itemsLength = (this.$refs.content?.children || []).length\n })\n this.$on('hook:updated', () => {\n if (itemsLength === (this.$refs.content?.children || []).length) return\n this.setWidths()\n })\n }\n },\n\n methods: {\n onScroll () {\n this.$refs.wrapper.scrollLeft = 0\n },\n onFocusin (e: FocusEvent) {\n if (!this.isOverflowing) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(\n vm.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n return\n }\n }\n }\n },\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : getSlot(this, 'next') || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin,\n },\n }, getSlot(this))\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : getSlot(this, 'prev') || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll,\n },\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n if (!this.canTouch) return\n\n if (!this.isSwiping) {\n // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n const diffX = e.touchmoveX - e.touchstartX\n const diffY = e.touchmoveY - e.touchstartY\n this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY)\n this.isSwiping = true\n }\n\n if (this.isSwipingHorizontal) {\n // sliding horizontally\n this.scrollOffset = this.startX - e.touchmoveX\n // temporarily disable window vertical scrolling\n document.documentElement.style.overflowY = 'hidden'\n }\n },\n onTouchEnd () {\n if (!this.canTouch) return\n\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n\n this.isSwiping = false\n // rollback whole page scrolling to default\n document.documentElement.style.removeProperty('overflow-y')\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n if (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths () {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return\n\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n // https://github.com/vuetifyjs/vuetify/issues/13212\n // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n // gets calculated wrongly by the browser if using a different zoom-level.\n this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n","// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Components\nimport VTab from './VTab'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { Route } from 'vue-router'\nimport { VNode } from 'vue'\n\ntype VTabInstance = InstanceType\n\nexport default mixins(\n BaseSlideGroup,\n SSRBootable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-tabs-bar',\n\n provide () {\n return {\n tabsBar: this,\n }\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.options.computed.classes.call(this),\n 'v-tabs-bar': true,\n 'v-tabs-bar--is-mobile': this.isMobile,\n // TODO: Remove this and move to v-slide-group\n 'v-tabs-bar--show-arrows': this.showArrows,\n ...this.themeClasses,\n }\n },\n },\n\n watch: {\n items: 'callSlider',\n internalValue: 'callSlider',\n $route: 'onRouteChange',\n },\n\n methods: {\n callSlider () {\n if (!this.isBooted) return\n\n this.$emit('call:slider')\n },\n genContent () {\n const render = BaseSlideGroup.options.methods.genContent.call(this)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-tabs-bar__content'\n\n return render\n },\n onRouteChange (val: Route, oldVal: Route) {\n /* istanbul ignore next */\n if (this.mandatory) return\n\n const items = this.items as unknown as VTabInstance[]\n const newPath = val.path\n const oldPath = oldVal.path\n\n let hasNew = false\n let hasOld = false\n\n for (const item of items) {\n if (item.to === oldPath) hasOld = true\n else if (item.to === newPath) hasNew = true\n\n if (hasNew && hasOld) break\n }\n\n // If we have an old item and not a new one\n // it's assumed that the user navigated to\n // a path that is not present in the items\n if (!hasNew && hasOld) this.internalValue = undefined\n },\n },\n\n render (h): VNode {\n const render = BaseSlideGroup.options.render.call(this, h)\n\n render.data!.attrs = {\n role: 'tablist',\n }\n\n return render\n },\n})\n","// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(Colorable).extend({\n name: 'v-tabs-slider',\n\n render (h): VNode {\n return h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-tabs-slider',\n }))\n },\n})\n","// Styles\nimport './VTabs.sass'\n\n// Components\nimport VTabsBar from './VTabsBar'\nimport VTabsItems from './VTabsItems'\nimport VTabsSlider from './VTabsSlider'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\nconst baseMixins = mixins(\n Colorable,\n Proxyable,\n Themeable\n)\n\ninterface options extends ExtractVue {\n $refs: {\n items: InstanceType\n }\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-tabs',\n\n directives: {\n Resize,\n },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n alignWithTitle: Boolean,\n backgroundColor: String,\n centerActive: Boolean,\n centered: Boolean,\n fixedTabs: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n iconsAndText: Boolean,\n mobileBreakpoint: [String, Number],\n nextIcon: {\n type: String,\n default: '$next',\n },\n optional: Boolean,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n right: Boolean,\n showArrows: [Boolean, String],\n sliderColor: String,\n sliderSize: {\n type: [Number, String],\n default: 2,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n resizeTimeout: 0,\n slider: {\n height: null as null | number,\n left: null as null | number,\n right: null as null | number,\n top: null as null | number,\n width: null as null | number,\n },\n transitionTime: 300,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-tabs--align-with-title': this.alignWithTitle,\n 'v-tabs--centered': this.centered,\n 'v-tabs--fixed-tabs': this.fixedTabs,\n 'v-tabs--grow': this.grow,\n 'v-tabs--icons-and-text': this.iconsAndText,\n 'v-tabs--right': this.right,\n 'v-tabs--vertical': this.vertical,\n ...this.themeClasses,\n }\n },\n isReversed (): boolean {\n return this.$vuetify.rtl && this.vertical\n },\n sliderStyles (): object {\n return {\n height: convertToUnit(this.slider.height),\n left: this.isReversed ? undefined : convertToUnit(this.slider.left),\n right: this.isReversed ? convertToUnit(this.slider.right) : undefined,\n top: this.vertical ? convertToUnit(this.slider.top) : undefined,\n transition: this.slider.left != null ? null : 'none',\n width: convertToUnit(this.slider.width),\n }\n },\n computedColor (): string {\n if (this.color) return this.color\n else if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n },\n\n watch: {\n alignWithTitle: 'callSlider',\n centered: 'callSlider',\n centerActive: 'callSlider',\n fixedTabs: 'callSlider',\n grow: 'callSlider',\n iconsAndText: 'callSlider',\n right: 'callSlider',\n showArrows: 'callSlider',\n vertical: 'callSlider',\n '$vuetify.application.left': 'onResize',\n '$vuetify.application.right': 'onResize',\n '$vuetify.rtl': 'onResize',\n },\n\n mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n }\n\n this.$nextTick(() => {\n window.setTimeout(this.callSlider, 30)\n })\n },\n\n methods: {\n callSlider () {\n if (\n this.hideSlider ||\n !this.$refs.items ||\n !this.$refs.items.selectedItems.length\n ) {\n this.slider.width = 0\n return false\n }\n\n this.$nextTick(() => {\n // Give screen time to paint\n const activeTab = this.$refs.items.selectedItems[0]\n /* istanbul ignore if */\n if (!activeTab || !activeTab.$el) {\n this.slider.width = 0\n this.slider.left = 0\n return\n }\n const el = activeTab.$el as HTMLElement\n\n this.slider = {\n height: !this.vertical ? Number(this.sliderSize) : el.scrollHeight,\n left: this.vertical ? 0 : el.offsetLeft,\n right: this.vertical ? 0 : el.offsetLeft + el.offsetWidth,\n top: el.offsetTop,\n width: this.vertical ? Number(this.sliderSize) : el.scrollWidth,\n }\n })\n\n return true\n },\n genBar (items: VNode[], slider: VNode | null) {\n const data = {\n style: {\n height: convertToUnit(this.height),\n },\n props: {\n activeClass: this.activeClass,\n centerActive: this.centerActive,\n dark: this.dark,\n light: this.light,\n mandatory: !this.optional,\n mobileBreakpoint: this.mobileBreakpoint,\n nextIcon: this.nextIcon,\n prevIcon: this.prevIcon,\n showArrows: this.showArrows,\n value: this.internalValue,\n },\n on: {\n 'call:slider': this.callSlider,\n change: (val: any) => {\n this.internalValue = val\n },\n },\n ref: 'items',\n }\n\n this.setTextColor(this.computedColor, data)\n this.setBackgroundColor(this.backgroundColor, data)\n\n return this.$createElement(VTabsBar, data, [\n this.genSlider(slider),\n items,\n ])\n },\n genItems (items: VNode | null, item: VNode[]) {\n // If user provides items\n // opt to use theirs\n if (items) return items\n\n // If no tabs are provided\n // render nothing\n if (!item.length) return null\n\n return this.$createElement(VTabsItems, {\n props: {\n value: this.internalValue,\n },\n on: {\n change: (val: any) => {\n this.internalValue = val\n },\n },\n }, item)\n },\n genSlider (slider: VNode | null) {\n if (this.hideSlider) return null\n\n if (!slider) {\n slider = this.$createElement(VTabsSlider, {\n props: { color: this.sliderColor },\n })\n }\n\n return this.$createElement('div', {\n staticClass: 'v-tabs-slider-wrapper',\n style: this.sliderStyles,\n }, [slider])\n },\n onResize () {\n if (this._isDestroyed) return\n\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.callSlider, 0)\n },\n parseNodes () {\n let items = null\n let slider = null\n const item = []\n const tab = []\n const slot = getSlot(this) || []\n const length = slot.length\n\n for (let i = 0; i < length; i++) {\n const vnode = slot[i]\n\n if (vnode.componentOptions) {\n switch (vnode.componentOptions.Ctor.options.name) {\n case 'v-tabs-slider': slider = vnode\n break\n case 'v-tabs-items': items = vnode\n break\n case 'v-tab-item': item.push(vnode)\n break\n // case 'v-tab' - intentionally omitted\n default: tab.push(vnode)\n }\n } else {\n tab.push(vnode)\n }\n }\n\n /**\n * tab: array of `v-tab`\n * slider: single `v-tabs-slider`\n * items: single `v-tabs-items`\n * item: array of `v-tab-item`\n */\n return { tab, slider, items, item }\n },\n },\n\n render (h): VNode {\n const { tab, slider, items, item } = this.parseNodes()\n\n return h('div', {\n staticClass: 'v-tabs',\n class: this.classes,\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n }, [\n this.genBar(tab, slider),\n this.genItems(items, item),\n ])\n },\n})\n"],"sourceRoot":""}