{"version":3,"sources":["webpack:///./src/mixins/dropbox.js","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///../../../src/mixins/validatable/index.ts","webpack:///./node_modules/core-js/modules/es.array.unshift.js","webpack:///../../../src/components/VCarousel/VCarouselItem.ts","webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/components/VStepper/VStepperStep.ts","webpack:///../../../src/mixins/button-group/index.ts","webpack:///../../../src/components/VCarousel/VCarousel.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///./src/mixins/intercom.js","webpack:///./src/mixins/appTypeAndImage.js","webpack:///../../../src/components/VStepper/VStepper.ts","webpack:///../../../src/mixins/comparable/index.ts","webpack:///./src/modules/snapshot/views/TheSnapshotAppIframe.vue?040e","webpack:///../../../src/components/VStepper/index.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VMessages/VMessages.ts","webpack:///../../../src/components/VMessages/index.ts","webpack:///../../../src/components/VInput/VInput.ts","webpack:///./src/assets/Dropbox.svg","webpack:///../../../src/components/VLabel/VLabel.ts","webpack:///../../../src/components/VLabel/index.ts","webpack:///../../../src/components/VInput/index.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///./src/modules/snapshot/views/TheSnapshotAppIframe.vue","webpack:///./src/modules/application/components/AppIframe.vue","webpack:///src/modules/application/components/AppIframe.vue","webpack:///./src/modules/application/components/AppIframe.vue?0b67","webpack:///./src/modules/application/components/AppIframe.vue?9ae9","webpack:///src/modules/snapshot/views/TheSnapshotAppIframe.vue","webpack:///./src/modules/snapshot/views/TheSnapshotAppIframe.vue?ab46","webpack:///./src/modules/snapshot/views/TheSnapshotAppIframe.vue?4678","webpack:///../../../src/components/VDivider/VDivider.ts","webpack:///../../../src/directives/resize/index.ts","webpack:///../../../src/components/VStepper/VStepperContent.ts","webpack:///../../../src/components/VWindow/VWindow.ts"],"names":["dropboxEnums","data","fetchingDropboxState","isDropboxLinked","computed","redirectURI","callbackURL","this","requestURI","clientID","location","toString","replace","search","methods","checkDropboxStatus","$axios","get","then","r","catch","e","console","log","finally","$route","query","code","post","request_uri","$store","dispatch","snackBarText","snackBarIcon","baseMixins","mixins","Bootable","GroupableFactory","extend","name","directives","Touch","props","disabled","Boolean","reverseTransition","type","String","default","undefined","transition","value","required","isActive","inTransition","classes","groupClasses","computedTransition","windowGroup","internalReverse","genDefaultSlot","$slots","genWindowItem","$createElement","staticClass","class","on","$listeners","onAfterTransition","transitionCount","transitionHeight","onBeforeTransition","convertToUnit","$el","clientHeight","onTransitionCancelled","onEnter","el","$nextTick","render","h","beforeEnter","afterEnter","enterCancelled","beforeLeave","afterLeave","leaveCancelled","enter","showLazyContent","Colorable","RegistrableInject","Themeable","error","errorCount","Number","errorMessages","Array","messages","readonly","rules","success","successMessages","validateOnBlur","errorBucket","hasColor","hasFocused","hasInput","isFocused","isResetting","lazyValue","valid","computedColor","isDisabled","color","isDark","appIsDark","hasError","internalErrorMessages","length","hasSuccess","internalSuccessMessages","externalError","hasMessages","validationTarget","hasState","shouldValidate","genInternalMessages","internalMessages","internalValue","set","val","$emit","form","isInteractive","isReadonly","validations","slice","validationState","watch","handler","newVal","oldVal","deepEqual","validate","deep","setTimeout","beforeMount","created","register","beforeDestroy","unregister","isArray","reset","resetValidation","force","index","rule","push","consoleError","$","toObject","lengthOfArrayLike","setArrayLength","deletePropertyOrThrow","doesNotExceedSafeInteger","INCORRECT_RESULT","unshift","properErrorOnNonWritableLength","Object","defineProperty","writable","TypeError","FORCED","target","proto","arity","forced","item","O","len","argCount","arguments","k","to","j","VWindowItem","Routable","inject","parentTheme","provide","theme","inheritAttrs","VImg","$attrs","height","internalHeight","scopedSlots","placeholder","$scopedSlots","getSlot","generateRouteLink","tag","BindsAttrs","RegistrableProvide","lazyValidation","inputs","watchers","errorBag","errors","values","includes","immediate","watchInput","input","watcher","$watch","$set","_uid","hasOwnProperty","filter","forEach","resetErrorBag","found","find","i","unwatch","$delete","attrs","novalidate","attrs$","submit","ripple","complete","completeIcon","editable","editIcon","errorIcon","step","isInactive","some","mounted","stepper","click","stopPropagation","stepClick","genIcon","icon","VIcon","genLabel","genStep","setBackgroundColor","genStepContent","children","keyboardClick","keyCode","keyCodes","space","toggle","tabindex","keydown","BaseItemGroup","btnToggle","options","call","genData","VWindow","continuous","cycle","delimiterIcon","hideDelimiters","hideDelimiterBackground","interval","validator","mandatory","progress","progressColor","showArrows","verticalDelimiters","slideTimeout","isVertical","dark","light","restartTimeout","clearTimeout","breaking","startTimeout","genControlIcons","genDelimiters","style","left","right","genItems","items","child","VBtn","$vuetify","lang","t","small","getValue","key","size","ButtonGroup","change","genProgress","VProgressLinear","internalIndex","window","requestAnimationFrame","next","Comparable","Proxyable","activeClass","max","multiple","internalLazyValue","themeClasses","selectedIndex","selectedItem","indexOf","selectedItems","toggleMethod","selectedValues","v","valueComparator","intern","consoleWarn","onClick","updateInternalValue","$on","updateMandatory","updateItem","_isDestroyed","splice","valueIndex","updateItemsState","updateMultiple","updateSingle","last","reverse","defaultValue","findIndex","isSame","itemGroup","intercomMethods","showIntercomChat","Intercom","hide_default_launcher","showNewMessageIntercom","msg","preBoot","app_id","$appConfig","VUE_APP_INTERCOM_ID","email","user_id","uid","user_hash","hmac","given_name","family_name","is_trial_user","appTypeAndImageLink","appTypes","JUPYTER","RSTUDIO","MATLAB","STATA","appDisabledReasons","appIcon","app","icon_url","VSheet","vertical","altLabels","nonLinear","flat","isBooted","steps","content","isReverse","styles","updateView","$options","Vue","Function","VStepperHeader","createSimpleFunctional","VStepperItems","VStepper","VStepperContent","VStepperStep","Measurable","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","genContent","measurableStyles","VResponsive","hasIntersect","intersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","position","sizes","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","normalisedSrc","aspect","__cachedImage","backgroundImage","join","backgroundPosition","mode","loadImage","init","entries","observer","isIntersecting","lazyImg","Image","pollForSize","onLoad","getSrc","endsWith","startsWith","naturalHeight","onError","onload","decode","err","message","onerror","img","timeout","poll","_b","width","__genPlaceholder","slot","appear","node","mergeData","role","modifiers","once","genChildren","map","genMessage","setTextColor","VMessages","Validatable","appendIcon","backgroundColor","dense","hideDetails","hideSpinButtons","hint","id","label","loading","persistentHint","prependIcon","hasMouseDown","showDetails","isLabelActive","isDirty","computedId","hasDetails","messagesToDisplay","hasHint","hasLabel","$_modelEvent","validation","validationResult","beforeCreate","model","event","genPrependSlot","genControl","genAppendSlot","title","genInputSlot","genMessages","cb","extraData","eventName","kebabCase","hasListener","listeners$","split","preventDefault","mouseup","mousedown","onMouseDown","onMouseUp","ref","VLabel","focused","for","genSlot","prepend","append","module","exports","functional","absolute","ctx","listeners","functionalThemeClasses","VInput","handleGesture","wrapper","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","offsetX","offsetY","Math","abs","up","down","touchstart","touch","changedTouches","clientX","clientY","start","assign","touchend","end","touchmove","touchmoveX","touchmoveY","move","createHandlers","inserted","binding","vnode","parent","parentElement","passive","handlers","_touchHandlers","context","keys","addEventListener","unbind","removeEventListener","_e","_vm","_v","restartApp","_c","launchingApp","staticStyle","callback","$$v","showCredentialModal","expression","appUsername","appPwd","staticRenderFns","loadStatus","appLongWait","deployment","app_type","iframeStyle","appType","currentSessionId","cookieTimer","cookieVal","showLoader","aid","isChromiumBased","longAppLoad","clearURL","showedClipboardWarnig","waitingForCookie","getCookie","withCredentials","pushNotification","Notification","showNotification","body","notification","hideLoader","navigator","readText","sessionId","focusIframe","document","showErrModal","dialogTitle","dialogText","dialogAction","clearInterval","showDropboxHint","proxy_url","openedFile","wrapperStyle","opacity","top","border","transform","isGuac","showClipboardWarning","triggerFocus","resourceLimit","cpu","mem","mapState","mapGetters","snackBarTimeout","component","components","AppIframe","TimeoutHandler","activeSession","instanceTypes","lastScaled","lastSessionId","openedSessions","appHelpTour","showHelp","appIssue","createdDeploymentsAll","openedDeployments","isScalingEnabled","createdDeployments","runningDeployments","enteredEmailAndNotUsername","nuvolosIframe","canScaleGlobal","nodePool","launchHelpTour","params","from","Date","action","resetAid","text","buttons","self","cancelIcon","enabled","attachTo","element","launchAppIfNeeded","iid","startFirstApp","last_app_start","start_time","goToOverview","oid","sid","snid","defaultStepOptions","scrollTo","behavior","inset","orientation","_onResize","quiet","_a","Resize","isVerticalProvided","rtl","VTabReverseTransition","VTabTransition","current","previous","leave","$refs","onTransition","propertyName","scrollHeight","contentData","wrapperData","nextIcon","prevIcon","showArrowsOnHover","touchless","changedByDelimiters","axis","direction","hasActiveItems","hasNext","hasPrev","updateReverse","genContainer","large","icons","prev","getNextIndex","nextIndex","getPrevIndex","prevIndex","lastIndex","itemsLength"],"mappings":"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AVA,4BACA,mBACAmnB,6DAAA/C,+CACApkB,0CAGA,mBAAAmnB,6DAAA/C,kBAAApkB,0CAVA,sCAoBAyL,cAEAob,oBACA5f,sBACA,UAEAmgB,GACAA,UACA,+BACAA,sEACAC,iCAEA,yDACA,yBAEA,wBAKA5b,cAEAmb,oBACA3f,oBACA,WACA,mCACA,+CAGAwE,cAEAwb,UACAhgB,oBACA,IACA,6BAGAwE,cAEAyb,2BACA,MACA,WACA,EACA,kpBASA,GACA,CACAI,kBAEA,OADA,gBACA,gBAAAzmB,6BAAAb,OAAAunB,iCAEAC,oCAGA,kCACAC,WACAH,kBAEA,OADAI,mHACA,iBAEA7lB,kCACA2lB,mCAGA,wCACA,0BACAnK,iCACAmK,OACAG,YACAC,YAEAC,UACAC,gCACAtlB,YAEAilB,UACA3L,gBAEA,4BAIA1c,SACA2oB,8BAAA,iBACA,sBAEA,0KACAV,6DACA,gBAEA,kBAEA,YACAhnB,sCAAA2nB,2BAAAC,mBACAzoB,iBACA,8BACA,yBAEA,SACAa,8BACA+iB,iBACAb,0BACAC,kBAEAhjB,kBACA,uBACA,2BACA,8BACA,yBACA,0BACA,sCACAilB,WACA,yIACAD,uCACAE,uCAGA,sCACAD,WACA,yIACAD,uCACAE,kEAMA,6BAEA,iBACA,YACA,kCACApkB,uCACAslB,oBACArlB,sBAEA,mBACA4mB,6DAAA/C,4BACApkB,0CAEA,YACA,mCAAAkoB,qEAAAC,6BAGAzoB,mBACAE,kBAEAE,oBAEA2R,8BACA,oBACA,KACAA,8BACA,gBACA,YAIA/R,mBACAE,eACA6R,8BACA,oBACA,SAGAsQ,sBACA/iB,mBAEAopB,wBACA,mBACAvnB,yBACAsmB,QAAAkB,2BAAAC,2BAAAN,2BAAAO,gCAEA,8BAGAjb,mBACA,0BACA,kCACAkb,oBACAb,YACAC,YAEA/lB,0BACA4mB,UAAAC,sBAGA,0BAAA5M,kBCragZ,ICQ5Y,G,UAAY,eACd,EACA,EACA2G,GACA,EACA,KACA,WACA,OAIa,e,mFCVAxe,cAAUrD,OAAO,CAC9BC,KAAM,YAENG,MAAO,CACL2nB,MAAOznB,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","file":"static/js/chunk-7065a0d9.f52d2ed0.js","sourcesContent":["export const dropboxEnums = {\n data() {\n return {\n fetchingDropboxState: false,\n isDropboxLinked: false\n }\n },\n computed: {\n redirectURI() {\n const callbackURL = this.requestURI\n const clientID = '5xnkt28kw0sv2nw'\n return `https://www.dropbox.com/oauth2/authorize?client_id=${clientID}&redirect_uri=${callbackURL}&response_type=code&token_access_type=offline`\n },\n requestURI() {\n return location.toString().replace(location.search, '')\n }\n },\n methods: {\n checkDropboxStatus() {\n this.fetchingDropboxState = true\n this.$axios\n .get('/tokens/dropbox')\n .then(r => {\n if (r && r.data) {\n this.isDropboxLinked = true\n }\n })\n .catch(e => {\n console.log(e)\n this.isDropboxLinked = false\n })\n .finally(() => {\n this.fetchingDropboxState = false\n })\n if (this.$route.query && this.$route.query.code) {\n this.fetchingDropboxState = true\n this.$axios\n .post('/tokens/dropbox', { code: this.$route.query.code, request_uri: this.requestURI })\n .then(r => {\n this.isDropboxLinked = true\n })\n .catch(e => {\n this.$store.dispatch('showSnackBar', { snackBarText: 'Linking Dropbox failed. Please try again later.', snackBarIcon: 'error' })\n })\n .finally(() => {\n this.fetchingDropboxState = false\n })\n }\n }\n }\n}\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 } 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 this.$slots.default\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","// Mixins\nimport Colorable from '../colorable'\nimport Themeable from '../themeable'\nimport { inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { deepEqual } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\nimport { InputMessage, InputValidationRules } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'form', any>('form'),\n Themeable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'validatable',\n\n props: {\n disabled: Boolean,\n error: Boolean,\n errorCount: {\n type: [Number, String],\n default: 1,\n },\n errorMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n messages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n readonly: Boolean,\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator,\n success: Boolean,\n successMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n validateOnBlur: Boolean,\n value: { required: false },\n },\n\n data () {\n return {\n errorBucket: [] as string[],\n hasColor: false,\n hasFocused: false,\n hasInput: false,\n isFocused: false,\n isResetting: false,\n lazyValue: this.value,\n valid: false,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.color) return this.color\n // It's assumed that if the input is on a\n // dark background, the user will want to\n // have a white color. If the entire app\n // is setup to be dark, then they will\n // like want to use their primary color\n if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n hasError (): boolean {\n return (\n this.internalErrorMessages.length > 0 ||\n this.errorBucket.length > 0 ||\n this.error\n )\n },\n // TODO: Add logic that allows the user to enable based\n // upon a good validation\n hasSuccess (): boolean {\n return (\n this.internalSuccessMessages.length > 0 ||\n this.success\n )\n },\n externalError (): boolean {\n return this.internalErrorMessages.length > 0 || this.error\n },\n hasMessages (): boolean {\n return this.validationTarget.length > 0\n },\n hasState (): boolean {\n if (this.isDisabled) return false\n\n return (\n this.hasSuccess ||\n (this.shouldValidate && this.hasError)\n )\n },\n internalErrorMessages (): InputValidationRules {\n return this.genInternalMessages(this.errorMessages)\n },\n internalMessages (): InputValidationRules {\n return this.genInternalMessages(this.messages)\n },\n internalSuccessMessages (): InputValidationRules {\n return this.genInternalMessages(this.successMessages)\n },\n internalValue: {\n get (): unknown {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n\n this.$emit('input', val)\n },\n },\n isDisabled (): boolean {\n return this.disabled || (\n !!this.form &&\n this.form.disabled\n )\n },\n isInteractive (): boolean {\n return !this.isDisabled && !this.isReadonly\n },\n isReadonly (): boolean {\n return this.readonly || (\n !!this.form &&\n this.form.readonly\n )\n },\n shouldValidate (): boolean {\n if (this.externalError) return true\n if (this.isResetting) return false\n\n return this.validateOnBlur\n ? this.hasFocused && !this.isFocused\n : (this.hasInput || this.hasFocused)\n },\n validations (): InputValidationRules {\n return this.validationTarget.slice(0, Number(this.errorCount))\n },\n validationState (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor) return this.computedColor\n return undefined\n },\n validationTarget (): InputValidationRules {\n if (this.internalErrorMessages.length > 0) {\n return this.internalErrorMessages\n } else if (this.successMessages && this.successMessages.length > 0) {\n return this.internalSuccessMessages\n } else if (this.messages && this.messages.length > 0) {\n return this.internalMessages\n } else if (this.shouldValidate) {\n return this.errorBucket\n } else return []\n },\n },\n\n watch: {\n rules: {\n handler (newVal, oldVal) {\n if (deepEqual(newVal, oldVal)) return\n this.validate()\n },\n deep: true,\n },\n internalValue () {\n // If it's the first time we're setting input,\n // mark it with hasInput\n this.hasInput = true\n this.validateOnBlur || this.$nextTick(this.validate)\n },\n isFocused (val) {\n // Should not check validation\n // if disabled\n if (\n !val &&\n !this.isDisabled\n ) {\n this.hasFocused = true\n this.validateOnBlur && this.$nextTick(this.validate)\n }\n },\n isResetting () {\n setTimeout(() => {\n this.hasInput = false\n this.hasFocused = false\n this.isResetting = false\n this.validate()\n }, 0)\n },\n hasError (val) {\n if (this.shouldValidate) {\n this.$emit('update:error', val)\n }\n },\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeMount () {\n this.validate()\n },\n\n created () {\n this.form && this.form.register(this)\n },\n\n beforeDestroy () {\n this.form && this.form.unregister(this)\n },\n\n methods: {\n genInternalMessages (messages: InputMessage | null): InputValidationRules {\n if (!messages) return []\n else if (Array.isArray(messages)) return messages\n else return [messages]\n },\n /** @public */\n reset () {\n this.isResetting = true\n this.internalValue = Array.isArray(this.internalValue)\n ? []\n : null\n },\n /** @public */\n resetValidation () {\n this.isResetting = true\n },\n /** @public */\n validate (force = false, value?: any): boolean {\n const errorBucket = []\n value = value || this.internalValue\n\n if (force) this.hasInput = this.hasFocused = true\n\n for (let index = 0; index < this.rules.length; index++) {\n const rule = this.rules[index]\n const valid = typeof rule === 'function' ? rule(value) : rule\n\n if (valid === false || typeof valid === 'string') {\n errorBucket.push(valid || '')\n } else if (typeof valid !== 'boolean') {\n consoleError(`Rules should return a string or boolean, received '${typeof valid}' instead`, this)\n }\n }\n\n this.errorBucket = errorBucket\n this.valid = errorBucket.length === 0\n\n return this.valid\n },\n },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","// Extensions\nimport VWindowItem from '../VWindow/VWindowItem'\n\n// Components\nimport { VImg } from '../VImg'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\nimport Routable from '../../mixins/routable'\n\n// Types\nconst baseMixins = mixins(\n VWindowItem,\n Routable\n)\n\ninterface options extends ExtractVue {\n parentTheme: {\n isDark: boolean\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-carousel-item',\n\n inject: {\n parentTheme: {\n default: {\n isDark: false,\n },\n },\n },\n\n // pass down the parent's theme\n provide (): object {\n return {\n theme: this.parentTheme,\n }\n },\n\n inheritAttrs: false,\n\n methods: {\n genDefaultSlot () {\n return [\n this.$createElement(VImg, {\n staticClass: 'v-carousel__item',\n props: {\n ...this.$attrs,\n height: this.windowGroup.internalHeight,\n },\n on: this.$listeners,\n scopedSlots: {\n placeholder: this.$scopedSlots.placeholder,\n },\n }, getSlot(this)),\n ]\n },\n genWindowItem () {\n const { tag, data } = this.generateRouteLink()\n\n data.staticClass = 'v-window-item'\n data.directives!.push({\n name: 'show',\n value: this.isActive,\n })\n\n return this.$createElement(tag, data, this.genDefaultSlot())\n },\n },\n})\n","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, this.$slots.default)\n },\n})\n","// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ntype VuetifyStepperRuleValidator = () => string | boolean\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject('stepper', 'v-stepper-step', 'v-stepper')\n)\n\ninterface options extends InstanceType {\n stepClick: (step: number | string) => void\n}\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-stepper-step',\n\n directives: { ripple },\n\n inject: ['stepClick'],\n\n props: {\n color: {\n type: String,\n default: 'primary',\n },\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete',\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit',\n },\n errorIcon: {\n type: String,\n default: '$error',\n },\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator,\n step: [Number, String],\n },\n\n data () {\n return {\n isActive: false,\n isInactive: true,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-stepper__step--active': this.isActive,\n 'v-stepper__step--editable': this.editable,\n 'v-stepper__step--inactive': this.isInactive,\n 'v-stepper__step--error error--text': this.hasError,\n 'v-stepper__step--complete': this.complete,\n }\n },\n hasError (): boolean {\n return this.rules.some(validate => validate() !== true)\n },\n },\n\n mounted () {\n this.stepper && this.stepper.register(this)\n },\n\n beforeDestroy () {\n this.stepper && this.stepper.unregister(this)\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n e.stopPropagation()\n\n this.$emit('click', e)\n\n if (this.editable) {\n this.stepClick(this.step)\n }\n },\n genIcon (icon: string) {\n return this.$createElement(VIcon, icon)\n },\n genLabel () {\n return this.$createElement('div', {\n staticClass: 'v-stepper__label',\n }, this.$slots.default)\n },\n genStep () {\n const color = (!this.hasError && (this.complete || this.isActive)) ? this.color : false\n\n return this.$createElement('span', this.setBackgroundColor(color, {\n staticClass: 'v-stepper__step__step',\n }), this.genStepContent())\n },\n genStepContent () {\n const children = []\n\n if (this.hasError) {\n children.push(this.genIcon(this.errorIcon))\n } else if (this.complete) {\n if (this.editable) {\n children.push(this.genIcon(this.editIcon))\n } else {\n children.push(this.genIcon(this.completeIcon))\n }\n } else {\n children.push(String(this.step))\n }\n\n return children\n },\n keyboardClick (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.space) {\n this.click(e)\n }\n },\n toggle (step: number | string) {\n this.isActive = step.toString() === this.step.toString()\n this.isInactive = Number(step) < Number(this.step)\n },\n },\n\n render (h): VNode {\n return h('div', {\n attrs: {\n tabindex: this.editable ? 0 : -1,\n },\n staticClass: 'v-stepper__step',\n class: this.classes,\n directives: [{\n name: 'ripple',\n value: this.editable,\n }],\n on: {\n click: this.click,\n keydown: this.keyboardClick,\n },\n }, [\n this.genStep(),\n this.genLabel(),\n ])\n },\n})\n","// Extensions\nimport { BaseItemGroup } from '../../components/VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'button-group',\n\n provide (): object {\n return {\n btnToggle: this,\n }\n },\n\n computed: {\n classes (): object {\n return BaseItemGroup.options.computed.classes.call(this)\n },\n },\n\n methods: {\n // Isn't being passed down through types\n genData: BaseItemGroup.options.methods.genData,\n },\n})\n","// Styles\nimport './VCarousel.sass'\n\n// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport VProgressLinear from '../VProgressLinear'\n\n// Mixins\n// TODO: Move this into core components v2.0\nimport ButtonGroup from '../../mixins/button-group'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\nexport default VWindow.extend({\n name: 'v-carousel',\n\n props: {\n continuous: {\n type: Boolean,\n default: true,\n },\n cycle: Boolean,\n delimiterIcon: {\n type: String,\n default: '$delimiter',\n },\n height: {\n type: [Number, String],\n default: 500,\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: (value: string | number) => value > 0,\n },\n mandatory: {\n type: Boolean,\n default: true,\n },\n progress: Boolean,\n progressColor: String,\n showArrows: {\n type: Boolean,\n default: true,\n },\n verticalDelimiters: {\n type: String as PropType<'' | 'left' | 'right'>,\n default: undefined,\n },\n },\n\n // pass down the parent's theme\n provide (): object {\n return {\n parentTheme: this.theme,\n }\n },\n\n data () {\n return {\n internalHeight: this.height,\n slideTimeout: undefined as number | undefined,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VWindow.options.computed.classes.call(this),\n 'v-carousel': true,\n 'v-carousel--hide-delimiter-background': this.hideDelimiterBackground,\n 'v-carousel--vertical-delimiters': this.isVertical,\n }\n },\n isDark (): boolean {\n return this.dark || !this.light\n },\n isVertical (): boolean {\n return this.verticalDelimiters != null\n },\n },\n\n watch: {\n internalValue: 'restartTimeout',\n interval: 'restartTimeout',\n height (val, oldVal) {\n if (val === oldVal || !val) return\n this.internalHeight = val\n },\n cycle (val) {\n if (val) {\n this.restartTimeout()\n } else {\n clearTimeout(this.slideTimeout)\n this.slideTimeout = undefined\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('hide-controls')) {\n breaking('hide-controls', ':show-arrows=\"false\"', this)\n }\n },\n\n mounted () {\n this.startTimeout()\n },\n\n methods: {\n genControlIcons () {\n if (this.isVertical) return null\n\n return VWindow.options.methods.genControlIcons.call(this)\n },\n genDelimiters (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-carousel__controls',\n style: {\n left: this.verticalDelimiters === 'left' && this.isVertical ? 0 : 'auto',\n right: this.verticalDelimiters === 'right' ? 0 : 'auto',\n },\n }, [this.genItems()])\n },\n genItems (): VNode {\n const length = this.items.length\n const children = []\n\n for (let i = 0; i < length; i++) {\n const child = this.$createElement(VBtn, {\n staticClass: 'v-carousel__controls__item',\n attrs: {\n 'aria-label': this.$vuetify.lang.t('$vuetify.carousel.ariaLabel.delimiter', i + 1, length),\n },\n props: {\n icon: true,\n small: true,\n value: this.getValue(this.items[i], i),\n },\n key: i,\n }, [\n this.$createElement(VIcon, {\n props: { size: 18 },\n }, this.delimiterIcon),\n ])\n\n children.push(child)\n }\n\n return this.$createElement(ButtonGroup, {\n props: {\n value: this.internalValue,\n mandatory: this.mandatory,\n },\n on: {\n change: (val: unknown) => {\n this.internalValue = val\n },\n },\n }, children)\n },\n genProgress () {\n return this.$createElement(VProgressLinear, {\n staticClass: 'v-carousel__progress',\n props: {\n color: this.progressColor,\n value: (this.internalIndex + 1) / this.items.length * 100,\n },\n })\n },\n restartTimeout () {\n this.slideTimeout && clearTimeout(this.slideTimeout)\n this.slideTimeout = undefined\n\n window.requestAnimationFrame(this.startTimeout)\n },\n startTimeout () {\n if (!this.cycle) return\n\n this.slideTimeout = window.setTimeout(this.next, +this.interval > 0 ? +this.interval : 6000)\n },\n },\n\n render (h): VNode {\n const render = VWindow.options.render.call(this, h)\n\n render.data!.style = `height: ${convertToUnit(this.height)};`\n\n /* istanbul ignore else */\n if (!this.hideDelimiters) {\n render.children!.push(this.genDelimiters())\n }\n\n /* istanbul ignore else */\n if (this.progress || this.progressColor) {\n render.children!.push(this.genProgress())\n }\n\n return render\n },\n})\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => this.valueComparator(val, value))\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = this.valueComparator(this.internalValue, value)\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), this.$slots.default)\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n","export const intercomMethods = {\n methods: {\n showIntercomChat() {\n window.Intercom?.('update', {\n hide_default_launcher: false\n })\n window.Intercom?.('show')\n },\n showNewMessageIntercom(msg, preBoot) {\n if (preBoot) {\n window.Intercom?.('boot', {\n app_id: this.$appConfig.VUE_APP_INTERCOM_ID,\n email: preBoot.email,\n user_id: preBoot.uid,\n user_hash: preBoot.hmac,\n name: preBoot.name || preBoot.given_name + ' ' + preBoot.family_name,\n is_trial_user: preBoot.is_trial_user\n })\n }\n window.Intercom?.('update', {\n hide_default_launcher: false\n })\n window.Intercom?.('showNewMessage', msg)\n }\n }\n}\n","export const appTypeAndImageLink = {\n data() {\n return {\n appTypes: {\n JUPYTER: { name: 'jupyter' },\n RSTUDIO: { name: 'rstudio' },\n MATLAB: { name: 'matlab' },\n STATA: { name: 'stata' }\n },\n appDisabledReasons: ['This application requires a license', 'You need the tables feature enabled to use this app']\n }\n },\n methods: {\n appIcon(app) {\n return app.icon_url ? app.icon_url : 'https://dlcfc4rxk1sfk.cloudfront.net/nuvolos/app_logos/generic_app_icon.svg'\n }\n }\n}\n","// Styles\nimport './VStepper.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VStepperStep from './VStepperStep'\nimport VStepperContent from './VStepperContent'\n\n// Mixins\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\nimport Proxyable from '../../mixins/proxyable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VSheet,\n RegistrableProvide('stepper'),\n Proxyable,\n)\n\ntype VStepperStepInstance = InstanceType\ntype VStepperContentInstance = InstanceType\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-stepper',\n\n provide (): object {\n return {\n stepClick: this.stepClick,\n isVertical: this.vertical,\n }\n },\n\n props: {\n altLabels: Boolean,\n nonLinear: Boolean,\n flat: Boolean,\n vertical: Boolean,\n },\n\n data () {\n const data: Dictionary = {\n isBooted: false,\n steps: [] as VStepperStepInstance[],\n content: [] as VStepperContentInstance[],\n isReverse: false,\n }\n\n data.internalLazyValue = this.value != null\n ? this.value\n : (data[0] || {}).step || 1\n\n return data\n },\n\n computed: {\n classes (): object {\n return {\n 'v-stepper--flat': this.flat,\n 'v-stepper--is-booted': this.isBooted,\n 'v-stepper--vertical': this.vertical,\n 'v-stepper--alt-labels': this.altLabels,\n 'v-stepper--non-linear': this.nonLinear,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n return {\n ...VSheet.options.computed.styles.call(this),\n }\n },\n },\n\n watch: {\n internalValue (val, oldVal) {\n this.isReverse = Number(val) < Number(oldVal)\n\n oldVal && (this.isBooted = true)\n\n this.updateView()\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$listeners.input) {\n breaking('@input', '@change', this)\n }\n },\n\n mounted () {\n this.updateView()\n },\n\n methods: {\n register (item: VStepperStepInstance | VStepperContentInstance) {\n if (item.$options.name === 'v-stepper-step') {\n this.steps.push(item as VStepperStepInstance)\n } else if (item.$options.name === 'v-stepper-content') {\n (item as VStepperContentInstance).isVertical = this.vertical\n this.content.push(item as VStepperContentInstance)\n }\n },\n unregister (item: VStepperStepInstance | VStepperContentInstance) {\n if (item.$options.name === 'v-stepper-step') {\n this.steps = this.steps.filter((i: VStepperStepInstance) => i !== item)\n } else if (item.$options.name === 'v-stepper-content') {\n (item as VStepperContentInstance).isVertical = this.vertical\n this.content = this.content.filter((i: VStepperContentInstance) => i !== item)\n }\n },\n stepClick (step: string | number) {\n this.$nextTick(() => (this.internalValue = step))\n },\n updateView () {\n for (let index = this.steps.length; --index >= 0;) {\n this.steps[index].toggle(this.internalValue as any)\n }\n for (let index = this.content.length; --index >= 0;) {\n this.content[index].toggle(this.internalValue as any, this.isReverse)\n }\n },\n },\n\n render (h): VNode {\n return h(this.tag, {\n staticClass: 'v-stepper',\n class: this.classes,\n style: this.styles,\n }, this.$slots.default)\n },\n})\n","import Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { deepEqual } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'comparable',\n props: {\n valueComparator: {\n type: Function,\n default: deepEqual,\n } as PropValidator,\n },\n})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSnapshotAppIframe.vue?vue&type=style&index=0&id=5324a9b1&prod&scoped=true&lang=css&\"","import { createSimpleFunctional } from '../../util/helpers'\nimport VStepper from './VStepper'\nimport VStepperStep from './VStepperStep'\nimport VStepperContent from './VStepperContent'\n\nconst VStepperHeader = createSimpleFunctional('v-stepper__header')\nconst VStepperItems = createSimpleFunctional('v-stepper__items')\n\nexport {\n VStepper,\n VStepperContent,\n VStepperStep,\n VStepperHeader,\n VStepperItems,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VStepper,\n VStepperContent,\n VStepperStep,\n VStepperHeader,\n VStepperItems,\n },\n}\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, getSlot(this))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n this.$slots.default,\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const data = mergeData({\n attrs: {\n 'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, this.$slots.label || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","module.exports = __webpack_public_path__ + \"static/img/Dropbox.b53eaec4.svg\";","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (h, ctx): VNode {\n const { children, listeners, props } = ctx\n const data = {\n staticClass: 'v-label',\n class: {\n 'v-label--active': props.value,\n 'v-label--is-disabled': props.disabled,\n ...functionalThemeClasses(ctx),\n },\n attrs: {\n for: props.for,\n 'aria-hidden': !props.for,\n },\n on: listeners,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }\n\n return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children)\n },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{style:(_vm.nuvolosIframe)},[(_vm.createdDeployments.length === 0)?_c('div',{staticClass:\"d-flex flex-column justify-center align-center\",staticStyle:{\"height\":\"100%\",\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex flex-column align-center justify-center text-center\"},[(_vm.launchingApp)?_c('div',[_c('p',[_vm._v(\"Preparing the application for launch\")]),_c('v-progress-linear',{staticClass:\"my-3\",attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"rounded\":\"\",\"height\":\"6\"}})],1):_vm._e(),(_vm.launchingApp)?_c('v-stepper',{attrs:{\"value\":1}},[_c('v-stepper-header',[_c('v-stepper-step',{attrs:{\"step\":\"1\"}},[_vm._v(\"Allocating\")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"2\"}},[_vm._v(\"Configuring\")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"3\"}},[_vm._v(\"Booting\")])],1)],1):_vm._e(),(!_vm.launchingApp && _vm.appIssue)?_c('div',[(_vm.appIssue === 'resource')?[_vm._v(\" This application was stopped due to inactivity or exceeding available resources, please try \"),_c('v-btn',{staticClass:\"text-lowercase\",attrs:{\"text\":\"\",\"color\":\"primary\",\"small\":\"\"},on:{\"click\":_vm.restartApp}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"power_settings_new\")]),_vm._v(\" restarting \")],1),_vm._v(\" the application. \")]:_vm._e(),(_vm.appIssue === 'comms')?[_vm._v(\" This application has become inaccessible. You might need to \"),_c('v-btn',{staticClass:\"text-lowercase\",attrs:{\"text\":\"\",\"color\":\"primary\",\"small\":\"\"},on:{\"click\":_vm.restartApp}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"power_settings_new\")]),_vm._v(\" restart \")],1),_vm._v(\" the application. \")]:_vm._e()],2):_vm._e(),(!_vm.launchingApp && !_vm.appIssue)?_c('timeout-handler',{attrs:{\"timeout\":5000}},[_vm._v(\" There might be a temporary issue with launching this application, please try \"),_c('v-btn',{staticClass:\"text-lowercase\",attrs:{\"text\":\"\",\"color\":\"primary\",\"small\":\"\"},on:{\"click\":_vm.restartApp}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"power_settings_new\")]),_vm._v(\" restarting \")],1),_vm._v(\" the application. \")],1):_vm._e()],1)]):_vm._e(),(_vm.openedDeployments.length)?_c('div',{staticStyle:{\"height\":\"100%\",\"width\":\"100%\"}},_vm._l((_vm.openedDeployments),function(item){return _c('AppIframe',{key:item.session_id,attrs:{\"deployment\":item,\"isActive\":_vm.$route.name === 'app-open' && item.session_id === _vm.$route.params.sessionId,\"appType\":item.app_type}})}),1):_vm._e(),_c('v-dialog',{attrs:{\"max-width\":\"400\"},model:{value:(_vm.showCredentialModal),callback:function ($$v) {_vm.showCredentialModal=$$v},expression:\"showCredentialModal\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"University Login Required\")]),_c('v-card-text',[_vm._v(\" Please provide your \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"university credentials\")]),_vm._v(\" to establish a connection to the licence server. \"),_c('v-alert',{staticClass:\"my-2\",attrs:{\"type\":\"info\"}},[_vm._v(\" Irrespective of how you log into Nuvolos, please provide your university credentials here. Wrong credentials will result in the licensed application not starting. \")]),(_vm.enteredEmailAndNotUsername)?_c('v-alert',{attrs:{\"type\":\"error\"}},[_vm._v(\" It appears you entered your e-mail address instead of your login name. Please check your login name \"),_c('a',{attrs:{\"href\":\"https://my-account.unige.ch/my-account/web/home\",\"target\":\"_blank\"}},[_vm._v(\"here\")]),_vm._v(\" . \")]):_vm._e(),_c('v-form',{staticClass:\"text-center\",on:{\"submit\":function($event){$event.preventDefault();return _vm.launchAppIfNeeded(_vm.$route.params.aid)}}},[_c('v-text-field',{attrs:{\"label\":\"Username\",\"outlined\":\"\"},model:{value:(_vm.appUsername),callback:function ($$v) {_vm.appUsername=$$v},expression:\"appUsername\"}}),_c('v-text-field',{attrs:{\"label\":\"University Password\",\"type\":\"password\",\"outlined\":\"\"},model:{value:(_vm.appPwd),callback:function ($$v) {_vm.appPwd=$$v},expression:\"appPwd\"}}),_c('v-btn',{staticClass:\"mt-2 font-weight-bold\",attrs:{\"color\":\"primary\",\"type\":\"submit\",\"width\":\"100%\",\"block\":\"\",\"disabled\":_vm.enteredEmailAndNotUsername}},[_vm._v(\" Launch App \")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.goToOverview}},[_vm._v(\"Cancel\")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{style:(_vm.wrapperStyle)},[(_vm.showLoader)?_c('div',{staticClass:\"d-flex flex-column align-center justify-center text-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',[_c('p',[_vm._v(\"Application is launching powered by:\")]),_c('div',[_c('span',{staticClass:\"caption\"},[(_vm.resourceLimit.cpu !== 0 && _vm.deployment.node_pool === 'nv-app')?_c('span',[_vm._v(\" \"+_vm._s(_vm.resourceLimit.cpu)+\" CU = \"+_vm._s(_vm.resourceLimit.cpu)+\" vCPU / \"+_vm._s(_vm.resourceLimit.mem)+\" GB memory \")]):_vm._e(),(_vm.deployment.node_pool !== 'nv-app')?_c('div',{staticClass:\"secondary--text font-weight-bold\"},[_vm._v(\" Procuring your computing resources. ETA 5-10 minutes. \")]):_vm._e()])]),_c('v-progress-linear',{staticClass:\"mt-5 mb-1\",attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"rounded\":\"\",\"height\":\"6\"}})],1),_c('v-stepper',{attrs:{\"value\":_vm.loadStatus}},[_c('v-stepper-header',[_c('v-stepper-step',{attrs:{\"complete\":_vm.loadStatus > 1,\"step\":\"1\"}},[_vm._v(\"Allocating\")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"complete\":_vm.loadStatus > 2,\"step\":\"2\"}},[_vm._v(\"Configuring\")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"3\"}},[_vm._v(\"Booting\")])],1),_c('v-stepper-items',[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[(_vm.deployment.node_pool !== 'nv-app')?_c('span',[_vm._v(\"Allocating computing resources is underway.\")]):_c('span',[_vm._v(\"Allocating computing resources is underway. Due to high demand, it will take a bit longer.\")])]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_vm._v(\" Finalizing software configuration. \"),(_vm.deployment.node_pool !== 'nv-app')?_c('span',[_vm._v(\"Due to high demand, it will take a bit longer.\")]):_vm._e()]),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_vm._v(\" Booting your application. \"),_c('br'),_c('v-icon',{staticClass:\"mt-2\",attrs:{\"color\":\"success\",\"large\":\"\"}},[_vm._v(\"done\")])],1)],1)],1),(!_vm.appLongWait)?_c('div',{staticStyle:{\"width\":\"500\"}},[_c('v-carousel',{staticStyle:{\"margin-bottom\":\"-200px\"},attrs:{\"height\":\"200\",\"hide-delimiters\":\"\",\"show-arrows\":false,\"cycle\":true}},[(_vm.deployment.app_type === _vm.appTypes.RSTUDIO.name)?_c('v-carousel-item',[_c('v-alert',{staticClass:\"mt-3\",attrs:{\"colored-border\":\"\",\"color\":\"blue\",\"border\":\"left\",\"max-width\":\"500\",\"light\":\"\"}},[_vm._v(\" Hint: for heavier / long running computations in RStudio, \"),_c('a',{staticStyle:{\"text-decoration\":\"none\"},attrs:{\"href\":\"https://docs.nuvolos.cloud/user-guides/research-guides/high-performance-computing#rstudio\",\"target\":\"_blank\"}},[_vm._v(\" we recommend RStudio jobs \")]),_vm._v(\" . \")])],1):_vm._e(),(_vm.deployment.app_type === _vm.appTypes.JUPYTER.name)?_c('v-carousel-item',[_c('v-alert',{staticClass:\"mt-3\",attrs:{\"colored-border\":\"\",\"color\":\"blue\",\"border\":\"left\",\"max-width\":\"500\",\"light\":\"\"}},[_vm._v(\" Hint: you can add additional kernels/environments (e.g. R, Python) to JupyterLab by, \"),_c('a',{staticStyle:{\"text-decoration\":\"none\"},attrs:{\"href\":\"https://docs.nuvolos.cloud/user-guides/research-guides/high-performance-computing#jupyterlab\",\"target\":\"_blank\"}},[_vm._v(\" following our guide \")]),_vm._v(\" . \")])],1):_vm._e(),(_vm.isGuac && _vm.loadStatus < 3)?_c('v-carousel-item',[_c('v-alert',{staticClass:\"mt-3\",attrs:{\"colored-border\":\"\",\"color\":\"blue\",\"border\":\"left\",\"max-width\":\"500\",\"light\":\"\"}},[_vm._v(\" Hint: You can switch windows inside the application using SHIFT + TAB \")])],1):_vm._e(),(_vm.showDropboxHint && _vm.loadStatus < 3)?_c('v-carousel-item',[_c('v-alert',{staticClass:\"mt-3\",attrs:{\"colored-border\":\"\",\"color\":\"blue\",\"border\":\"left\",\"max-width\":\"500\",\"light\":\"\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('div',[_vm._v(\" Hint: You can \"),_c('a',{staticStyle:{\"text-decoration\":\"none\"},attrs:{\"href\":\"https://docs.nuvolos.cloud/features/file-system-and-storage/synchronize-with-dropbox\",\"target\":\"_blank\"}},[_vm._v(\" sync your files \")]),_vm._v(\" on Nuvolos with \")]),_c('v-img',{staticClass:\"ml-2\",attrs:{\"src\":require(\"@/assets/Dropbox.svg\"),\"max-width\":\"100\"}})],1)])],1):_vm._e()],1)],1):_vm._e(),(_vm.appLongWait && _vm.deployment.node_pool === 'nv-app')?_c('div',{staticClass:\"caption mt-4 grey--text\"},[_vm._v(\" If your application doesn't load in a few minutes, please try \"),_c('br'),_c('v-btn',{staticClass:\"text-lowercase\",attrs:{\"text\":\"\",\"color\":\"primary\",\"small\":\"\"},on:{\"click\":_vm.restartApp}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"power_settings_new\")]),_vm._v(\" restarting \")],1),(_vm.$appConfig.VUE_APP_INTERCOM_ID)?[_c('div',{staticClass:\"mt-2\"},[_vm._v(\"or\")]),_c('div',{staticClass:\"mt-2\"},[_c('v-btn',{staticClass:\"text-lowercase\",attrs:{\"text\":\"\",\"color\":\"primary\",\"small\":\"\"},on:{\"click\":function($event){return _vm.showNewMessageIntercom('Hi Nuvolos Team, \\nI would like to ask your help regarding the following:\\n', _vm.userInfo)}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"support\")]),_vm._v(\" ask for help \")],1)],1)]:_vm._e()],2):_vm._e()],1):_vm._e(),(_vm.proxy_url)?_c('iframe',{style:(_vm.iframeStyle),attrs:{\"src\":_vm.proxy_url,\"id\":_vm.deployment.session_id,\"allow\":\"clipboard-read; clipboard-write\"},on:{\"load\":_vm.hideLoader,\"mouseenter\":_vm.focusIframe}}):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--13-1!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppIframe.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--13-1!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppIframe.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppIframe.vue?vue&type=template&id=62c9cdb5&\"\nimport script from \"./AppIframe.vue?vue&type=script&lang=js&\"\nexport * from \"./AppIframe.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--13-1!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSnapshotAppIframe.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--13-1!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSnapshotAppIframe.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheSnapshotAppIframe.vue?vue&type=template&id=5324a9b1&scoped=true&\"\nimport script from \"./TheSnapshotAppIframe.vue?vue&type=script&lang=js&\"\nexport * from \"./TheSnapshotAppIframe.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TheSnapshotAppIframe.vue?vue&type=style&index=0&id=5324a9b1&prod&scoped=true&lang=css&\"\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 \"5324a9b1\",\n null\n \n)\n\nexport default component.exports","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n name: 'v-divider',\n\n props: {\n inset: Boolean,\n vertical: Boolean,\n },\n\n render (h): VNode {\n // WAI-ARIA attributes\n let orientation\n if (!this.$attrs.role || this.$attrs.role === 'separator') {\n orientation = this.vertical ? 'vertical' : 'horizontal'\n }\n return h('hr', {\n class: {\n 'v-divider': true,\n 'v-divider--inset': this.inset,\n 'v-divider--vertical': this.vertical,\n ...this.themeClasses,\n },\n attrs: {\n role: 'separator',\n 'aria-orientation': orientation,\n ...this.$attrs,\n },\n on: this.$listeners,\n })\n },\n})\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ResizeVNodeDirective extends VNodeDirective {\n value?: () => void\n options?: boolean | AddEventListenerOptions\n}\n\nfunction inserted (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n const callback = binding.value!\n const options = binding.options || { passive: true }\n\n window.addEventListener('resize', callback, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![vnode.context!._uid] = {\n callback,\n options,\n }\n\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback()\n }\n}\n\nfunction unbind (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n if (!el._onResize?.[vnode.context!._uid]) return\n\n const { callback, options } = el._onResize[vnode.context!._uid]!\n\n window.removeEventListener('resize', callback, options)\n\n delete el._onResize[vnode.context!._uid]\n}\n\nexport const Resize = {\n inserted,\n unbind,\n}\n\nexport default Resize\n","// Components\nimport {\n VTabTransition,\n VTabReverseTransition,\n} from '../transitions'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, FunctionalComponentOptions, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n RegistrableInject('stepper', 'v-stepper-content', 'v-stepper')\n)\n\ninterface options extends InstanceType {\n $refs: {\n wrapper: HTMLElement\n }\n isVerticalProvided: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-stepper-content',\n\n inject: {\n isVerticalProvided: {\n from: 'isVertical',\n },\n },\n\n props: {\n step: {\n type: [Number, String],\n required: true,\n },\n },\n\n data () {\n return {\n height: 0 as number | string,\n // Must be null to allow\n // previous comparison\n isActive: null as boolean | null,\n isReverse: false,\n isVertical: this.isVerticalProvided,\n }\n },\n\n computed: {\n computedTransition (): FunctionalComponentOptions {\n // Fix for #8978\n const reverse = this.$vuetify.rtl ? !this.isReverse : this.isReverse\n\n return reverse\n ? VTabReverseTransition\n : VTabTransition\n },\n styles (): object {\n if (!this.isVertical) return {}\n\n return {\n height: convertToUnit(this.height),\n }\n },\n },\n\n watch: {\n isActive (current, previous) {\n // If active and the previous state\n // was null, is just booting up\n if (current && previous == null) {\n this.height = 'auto'\n return\n }\n\n if (!this.isVertical) return\n\n if (this.isActive) this.enter()\n else this.leave()\n },\n },\n\n mounted () {\n this.$refs.wrapper.addEventListener(\n 'transitionend',\n this.onTransition,\n false\n )\n this.stepper && this.stepper.register(this)\n },\n\n beforeDestroy () {\n this.$refs.wrapper.removeEventListener(\n 'transitionend',\n this.onTransition,\n false\n )\n this.stepper && this.stepper.unregister(this)\n },\n\n methods: {\n onTransition (e: TransitionEvent) {\n if (!this.isActive ||\n e.propertyName !== 'height'\n ) return\n\n this.height = 'auto'\n },\n enter () {\n let scrollHeight = 0\n\n // Render bug with height\n requestAnimationFrame(() => {\n scrollHeight = this.$refs.wrapper.scrollHeight\n })\n\n this.height = 0\n\n // Give the collapsing element time to collapse\n setTimeout(() => this.isActive && (this.height = (scrollHeight || 'auto')), 450)\n },\n leave () {\n this.height = this.$refs.wrapper.clientHeight\n setTimeout(() => (this.height = 0), 10)\n },\n toggle (step: string | number, reverse: boolean) {\n this.isActive = step.toString() === this.step.toString()\n this.isReverse = reverse\n },\n },\n\n render (h): VNode {\n const contentData = {\n staticClass: 'v-stepper__content',\n } as VNodeData\n const wrapperData = {\n staticClass: 'v-stepper__wrapper',\n style: this.styles,\n ref: 'wrapper',\n }\n\n if (!this.isVertical) {\n contentData.directives = [{\n name: 'show',\n value: this.isActive,\n }]\n }\n\n const wrapper = h('div', wrapperData, [this.$slots.default])\n const content = h('div', contentData, [wrapper])\n\n return h(this.computedTransition, {\n on: this.$listeners,\n }, [content])\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'\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 this.$slots.default\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"],"sourceRoot":""}