{"version":3,"sources":["webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///../../../src/components/VAlert/VAlert.ts","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///./src/modules/snapshot/components/TheSnapshotBundleContentDialog.vue","webpack:///src/modules/snapshot/components/TheSnapshotBundleContentDialog.vue","webpack:///./src/modules/snapshot/components/TheSnapshotBundleContentDialog.vue?c95b","webpack:///./src/modules/snapshot/components/TheSnapshotBundleContentDialog.vue?3db0","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///./src/mixins/assignments.js","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack:///./src/mixins/tour.js","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VBtn/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VTabs/VTabItem.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanel.ts","webpack:///./src/components/EventBus.js","webpack:///../../../src/components/VWindow/VWindow.ts"],"names":["BaseItemGroup","extend","name","provide","expansionPanels","this","props","accordion","Boolean","disabled","flat","hover","focusable","inset","popout","readonly","tile","computed","classes","options","call","created","$attrs","hasOwnProperty","breaking","Array","isArray","value","length","methods","updateItem","item","index","getValue","nextValue","isActive","toggleMethod","nextIsActive","mixins","VSheet","Toggleable","Transitionable","border","type","String","validator","val","includes","closeLabel","default","coloredBorder","dense","dismissible","closeIcon","icon","outlined","prominent","text","__cachedBorder","data","staticClass","class","setBackgroundColor","computedColor","$createElement","__cachedDismissible","color","iconColor","VBtn","small","attrs","$vuetify","lang","t","on","click","VIcon","__cachedIcon","computedIcon","hasColoredIcon","hasText","undefined","isDark","Themeable","genWrapper","children","$slots","prepend","genContent","append","$scopedSlots","close","toggle","genAlert","role","listeners$","style","styles","directives","setColor","setTextColor","render","h","transition","origin","mode","baseMixins","Dependent","Detachable","Overlayable","Returnable","Stackable","Activatable","ClickOutside","dark","fullscreen","light","maxWidth","Number","noClickAnimation","persistent","retainFocus","scrollable","width","activatedBy","animate","animateTimeout","stackMinZIndex","previousActiveElement","contentClass","trim","contentClasses","hasActivator","activator","watch","show","hideScroll","removeOverlay","unbind","_a","focus","showScroll","genOverlay","removed","beforeMount","$nextTick","isBooted","beforeDestroy","window","animateClick","clearTimeout","setTimeout","closeConditional","e","target","_isDestroyed","$refs","content","contains","overlay","$el","activeZIndex","getMaxZIndex","document","documentElement","classList","add","hideOverlay","dialog","activeElement","_b","bind","addEventListener","onFocusin","removeEventListener","onClickOutside","$emit","onKeydown","keyCode","keyCodes","esc","getOpenDependents","getActivator","getOpenDependentElements","some","el","querySelectorAll","find","hasAttribute","matches","showLazyContent","VThemeProvider","root","getScopeIdAttrs","keydown","zIndex","ref","genTransition","genInnerContent","appear","tabindex","handler","include","transformOrigin","convertToUnit","getContentSlot","attach","genActivator","_v","scopedSlots","key","_c","_vm","isAssignmentOverdue","bundleData","allow_handins_until","isSpaceAdmin","_u","startGrading","proxy","model","callback","expression","bundle_type_name","distributionReasons","ASSIGNMENT","tab","params","sid","$route","query","handback_bid","panel","$$v","files","staticStyle","_l","objects","tables","application","components","TheSnapshotAssignmentGrades","TheSnapshotAssignmentSubmitDialog","TheBundleEditDialog","isIcon","defaultPanel","grade","tour","mapGetters","mapState","showAssignmentTour","mounted","useModalOverlay","defaultStepOptions","cancelIcon","enabled","scrollTo","behavior","title","id","buttons","action","attachTo","element","closeModal","has_seen_assignment_student_intro","component","staticRenderFns","Bootable","GroupableFactory","Touch","reverseTransition","required","inTransition","groupClasses","computedTransition","windowGroup","internalReverse","genDefaultSlot","genWindowItem","$listeners","onAfterTransition","transitionCount","transitionHeight","onBeforeTransition","clientHeight","onTransitionCancelled","onEnter","beforeEnter","afterEnter","enterCancelled","beforeLeave","afterLeave","leaveCancelled","enter","assignmentMethods","assignmentLoading","enumsData","deadline","now","Date","handinDate","handinDateUTC","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","submitAssignment","longId","shortId","bid","$store","dispatch","snackBarText","snackBarTimeout","snackBarIcon","$axios","post","iid","handin_short_id","handin_long_id","dialogText","dialogTitle","dialogAction","eventBus","fetchTask","tkid","taskResult","isAxiosError","Error","response","reason","status","taskStatusTypes","COMPLETED","gotoAssignment","$router","push","Vue","loading","loaderHeight","genProgress","progress","VProgressLinear","absolute","height","indeterminate","Colorable","RegistrableInject","parentIsActive","expansionPanel","immediate","oldVal","registerContent","unregisterContent","VExpandTransition","getSlot","tourEvents","Shepherd","Intercom","forEach","event","app_id","$appConfig","VUE_APP_INTERCOM_ID","commit","tourId","tourHidden","off","PositionableFactory","Proxyable","intersect","active","backgroundColor","backgroundOpacity","bufferValue","reverse","rounded","stream","striped","internalLazyValue","isVisible","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedIndeterminate","__cachedDeterminate","__cachedBuffer","normalizedValue","genProgressBar","__cachedStream","normalizedBuffer","parseFloat","opacity","isReversed","Math","max","fixed","reactive","themeClasses","VFadeTransition","VSlideXTransition","rtl","normalize","change","slot","genListeners","listeners","onClick","getBoundingClientRect","internalValue","offsetX","onObserve","entries","observer","isIntersecting","bottom","top","VCardActions","createSimpleFunctional","VCardSubtitle","VCardText","VCardTitle","VCard","Loadable","Routable","img","link","raised","isClickable","background","generateRouteLink","tag","VWindowItem","domProps","ripple","disableIconRotate","expandIcon","hideActions","Object","hasMousedown","isDisabled","isReadonly","registerHeader","unregisterHeader","genIcon","mousedown","mouseup","open","RegistrableProvide","header","vm","$on","detail","blur","EventBus","activeClass","continuous","mandatory","nextIcon","prevIcon","showArrows","showArrowsOnHover","touch","touchless","vertical","changedByDelimiters","internalHeight","isReverse","axis","direction","hasActiveItems","items","hasNext","internalIndex","hasPrev","findIndex","i","updateReverse","requestAnimationFrame","genContainer","genControlIcons","stopPropagation","large","icons","prev","next","getNextIndex","nextIndex","getPrevIndex","prevIndex","lastIndex","itemsLength","left","right","end","start"],"mappings":"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","file":"static/js/chunk-7bc6c144.0ecbee80.js","sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\n },\n },\n})\n","// Styles\nimport './VAlert.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNodeData } from 'vue'\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Toggleable,\n Transitionable\n).extend({\n name: 'v-alert',\n\n props: {\n border: {\n type: String,\n validator (val: string) {\n return [\n 'top',\n 'right',\n 'bottom',\n 'left',\n ].includes(val)\n },\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n coloredBorder: Boolean,\n dense: Boolean,\n dismissible: Boolean,\n closeIcon: {\n type: String,\n default: '$cancel',\n },\n icon: {\n default: '',\n type: [Boolean, String],\n validator (val: boolean | string) {\n return typeof val === 'string' || val === false\n },\n },\n outlined: Boolean,\n prominent: Boolean,\n text: Boolean,\n type: {\n type: String,\n validator (val: string) {\n return [\n 'info',\n 'error',\n 'success',\n 'warning',\n ].includes(val)\n },\n },\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n __cachedBorder (): VNode | null {\n if (!this.border) return null\n\n let data: VNodeData = {\n staticClass: 'v-alert__border',\n class: {\n [`v-alert__border--${this.border}`]: true,\n },\n }\n\n if (this.coloredBorder) {\n data = this.setBackgroundColor(this.computedColor, data)\n data.class['v-alert__border--has-color'] = true\n }\n\n return this.$createElement('div', data)\n },\n __cachedDismissible (): VNode | null {\n if (!this.dismissible) return null\n\n const color = this.iconColor\n\n return this.$createElement(VBtn, {\n staticClass: 'v-alert__dismissible',\n props: {\n color,\n icon: true,\n small: true,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: () => (this.isActive = false),\n },\n }, [\n this.$createElement(VIcon, {\n props: { color },\n }, this.closeIcon),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return this.$createElement(VIcon, {\n staticClass: 'v-alert__icon',\n props: { color: this.iconColor },\n }, this.computedIcon)\n },\n classes (): object {\n const classes: Record = {\n ...VSheet.options.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.options.computed.isDark.call(this)\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('outline')) {\n breaking('outline', 'outlined', this)\n }\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n this.$slots.prepend || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n this.$slots.append,\n this.$scopedSlots.close\n ? this.$scopedSlots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n staticClass: 'v-alert__wrapper',\n }\n\n return this.$createElement('div', data, children)\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-alert__content',\n }, this.$slots.default)\n },\n genAlert (): VNode {\n let data: VNodeData = {\n staticClass: 'v-alert',\n attrs: {\n role: 'alert',\n },\n on: this.listeners$,\n class: this.classes,\n style: this.styles,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return this.$createElement('div', data, [this.genWrapper()])\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (h): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [render])\n },\n})\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n attrs: {\n tabindex: this.isActive ? 0 : undefined,\n },\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"max-width\":\"900\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({},on),[_vm._t(\"default\")],2)]}}],null,true),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{class:`shepherd-assignment-intro-${this.bundleData.bid}`,attrs:{\"flat\":\"\"}},[_c('v-card-title',[_c('div',{staticClass:\"d-flex align-center w-100\"},[_c('span',{staticClass:\"text-uppercase secondary--text ml-1\"},[_vm._v(_vm._s(_vm.bundleData.long_id))]),_c('v-spacer'),(_vm.bundleData.bundle_type_name === _vm.distributionReasons.ASSIGNMENT && !_vm.isSpaceAdmin)?_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mr-1\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.tour.start()}}},on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"help_outline\")])],1)]}}],null,false,388847052)},[_c('span',[_vm._v(\"Show tour\")])]),(!_vm.isAssignmentOverdue(_vm.bundleData.allow_handins_until) && !_vm.isSpaceAdmin)?_c('span',{class:`shepherd-handin-button-${_vm.bundleData.bid}`},[_c('TheSnapshotAssignmentSubmitDialog',{attrs:{\"bundleData\":_vm.bundleData}})],1):_c('span',{class:`caption shepherd-handin-button-${_vm.bundleData.bid}`},[_vm._v(\"Deadline has passed, no further hand-ins allowed\")])],1):_vm._e(),(_vm.bundleData.bundle_type_name === _vm.distributionReasons.ASSIGNMENT && _vm.isSpaceAdmin)?_c('div',[_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('span',_vm._g({},on),[_c('v-btn',_vm._b({staticClass:\"ml-2\",attrs:{\"color\":\"primary\",\"disabled\":!_vm.isAssignmentOverdue(_vm.bundleData.allow_handins_until),\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.startGrading()}}},'v-btn',attrs,false),[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"grading\")]),_vm._v(\" Grade \")],1)],1)]}}],null,false,1669138317)},[(_vm.isAssignmentOverdue(_vm.bundleData.allow_handins_until))?_c('span',[_vm._v(\"Assignment deadline has passed, grading can now be started.\")]):_c('span',[_vm._v(\"Assignment grading can be started only after the due date has passed.\")])])],1):_vm._e()],1)]),_c('v-divider'),_c('v-card-text',[_c('v-alert',{class:`mt-5 shepherd-assignment-description-${_vm.bundleData.bid}`,attrs:{\"type\":\"info\",\"text\":\"\"}},[_c('div',{staticClass:\"d-flex justify-center align-center flex-row w-100\"},[_c('div',[(_vm.bundleData.description)?_c('div',[_vm._v(\" \"+_vm._s(_vm.bundleData.description)+\" \")]):_vm._e(),(_vm.bundleData.allow_handins_until)?_c('div',{staticClass:\"d-flex align-center my-2\"},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\",\"color\":\"info\"}},[_vm._v(\"alarm\")]),_vm._v(\" Due: \"+_vm._s(_vm._f(\"dateTimeToHuman\")(_vm.bundleData.allow_handins_until))+\" \")],1):_vm._e(),(_vm.bundleData.creation_timestamp)?_c('div',{staticClass:\"mt-1 caption\"},[_c('span',[_vm._v(\"Created\")]),_vm._v(\" : \"+_vm._s(_vm._f(\"dateTimeToHuman\")(_vm.bundleData.creation_timestamp))+\" \")]):_vm._e()]),_c('v-spacer'),(_vm.isSpaceAdmin && _vm.bundleData.bundle_type_name === _vm.distributionReasons.ASSIGNMENT)?_c('TheBundleEditDialog',{attrs:{\"bundleData\":_vm.bundleData},scopedSlots:_vm._u([{key:\"dialogactivator\",fn:function(){return [_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"primary\"}},[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"edit\")]),_vm._v(\" Edit \")],1)]},proxy:true}],null,false,679146836)}):_vm._e()],1)]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(\"Details\")]),(_vm.bundleData.bundle_type_name === _vm.distributionReasons.ASSIGNMENT && _vm.isSpaceAdmin)?_c('v-tab',[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"grading\")]),_vm._v(\" Grades \")],1):_vm._e()],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[(_vm.bundleData.bundle_type_name === _vm.distributionReasons.ASSIGNMENT && _vm.grade && !_vm.isSpaceAdmin)?_c('div',{staticClass:\"mt-7 mb-5 d-flex\"},[_c('div',[_c('div',{staticClass:\"secondary--text subtitle-1 font-weight-bold\"},[_vm._v(\"Grade\")]),_vm._v(\" Your grade for this assignment is \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.grade))])]),_c('v-spacer'),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\"}},'v-btn',attrs,false),on),[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"visibility\")]),_vm._v(\" Review Corrections \")],1)]}}],null,false,1803662218)},[_c('v-list',_vm._l((_vm.applications),function(a){return _c('v-list-item',{key:a.aid,attrs:{\"to\":{\n name: 'app-open',\n params: {\n oid: _vm.$route.params.oid,\n sid: _vm.$route.params.sid,\n iid: _vm.$route.params.iid,\n snid: _vm.$route.params.snid,\n aid: a.aid\n },\n query: { handback_bid: _vm.bundleData.bid }\n }}},[_c('v-list-item-title',[_vm._v(_vm._s(a.long_id))])],1)}),1)],1)],1):(\n _vm.bundleData.bundle_type_name === _vm.distributionReasons.ASSIGNMENT &&\n !_vm.bundleData.handbacks_visible &&\n _vm.isAssignmentOverdue(_vm.bundleData.allow_handins_until)\n )?_c('div',{staticClass:\"mt-7 mb-5\"},[_vm._v(\" This assignment is currently being graded and hand-backs / grades are not yet visible. \")]):(\n _vm.bundleData.bundle_type_name === _vm.distributionReasons.ASSIGNMENT &&\n _vm.bundleData.handbacks_visible &&\n _vm.isAssignmentOverdue(_vm.bundleData.allow_handins_until) &&\n !_vm.grade &&\n !_vm.isSpaceAdmin\n )?_c('div',{staticClass:\"mt-7 mb-5\"},[_vm._v(\" You haven't received a grade for this assignment. \")]):(\n _vm.bundleData.bundle_type_name === _vm.distributionReasons.ASSIGNMENT &&\n !_vm.isAssignmentOverdue(_vm.bundleData.allow_handins_until) &&\n !_vm.isSpaceAdmin\n )?_c('div',{staticClass:\"mt-7 mb-5\"},[_vm._v(\" The assignment deadline has not yet passed, you can continue to hand-in solutions using the Hand-In button above. \")]):_vm._e(),_c('v-expansion-panels',{staticClass:\"w-100\",attrs:{\"flat\":\"\",\"multiple\":\"\"},model:{value:(_vm.panel),callback:function ($$v) {_vm.panel=$$v},expression:\"panel\"}},[(_vm.bundleData.objects.files.length)?_c('v-expansion-panel',{class:`shepherd-assignment-files-${_vm.bundleData.bid}`},[_c('v-expansion-panel-header',{staticClass:\"px-0\"},[_c('span',{staticClass:\"secondary--text font-weight-bold\"},[_vm._v(\"Files (\"+_vm._s(_vm.bundleData.objects.files.length)+\")\")])]),_c('v-expansion-panel-content',[_c('v-list',{staticClass:\"pa-0\",attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{staticClass:\"pa-0 ma-0\",attrs:{\"color\":\"secondary\"}},_vm._l((_vm.bundleData.objects.files),function(file){return _c('v-list-item',{key:file,staticClass:\"pa-0\",staticStyle:{\"max-height\":\"5px\"}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-file-outline\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"subtitle-2\"},[_vm._v(_vm._s(file.slice(6)))])],1)],1)}),1)],1)],1)],1):_vm._e(),(_vm.bundleData.bundle_type_name === _vm.distributionReasons.ASSIGNMENT && !_vm.isSpaceAdmin)?_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"px-0\"},[_c('span',{staticClass:\"secondary--text font-weight-bold\"},[_vm._v(\"My Submissions (\"+_vm._s(_vm.bundleData.handins.length)+\")\")])]),_c('v-expansion-panel-content',[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"text\":\"\",\"outlined\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.$store.dispatch('spaceStore/fetchSpaceBundles', _vm.$route.params.sid)}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"refresh\")]),_vm._v(\" Refresh \")],1)],1),(_vm.bundleData.handins && _vm.bundleData.handins.length)?_c('v-list',{staticClass:\"pa-0\",attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{staticClass:\"pa-0 ma-0\",attrs:{\"color\":\"secondary\"}},_vm._l((_vm.bundleData.handins),function(submission,idx){return _c('v-list-item',{key:idx,staticClass:\"pa-0\",staticStyle:{\"max-height\":\"10px\"}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"assignment_turned_in\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"subtitle-2\"},[_vm._v(\" \"+_vm._s(submission.long_id)+\" (submitted on: \"+_vm._s(_vm._f(\"dateTimeToHuman\")(submission.handin_timestamp))+\") \")])],1)],1)}),1)],1):_c('v-alert',{staticClass:\"mt-2\",attrs:{\"type\":\"info\"}},[_vm._v(\" No handins yet, please click the refresh button above to fetch them if you recently handed one in. \")])],1)],1):_vm._e(),_c('v-divider'),(_vm.bundleData.objects.tables.length)?_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"px-0\"},[_c('span',{staticClass:\"secondary--text font-weight-bold\"},[_vm._v(\"Tables (\"+_vm._s(_vm.bundleData.objects.tables.length)+\")\")])]),_c('v-expansion-panel-content',[_c('v-list',{staticClass:\"pa-0\",attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{staticClass:\"pa-0 ma-0\",attrs:{\"color\":\"secondary\"}},_vm._l((_vm.bundleData.objects.tables),function(table){return _c('v-list-item',{key:table,staticClass:\"pa-0\",staticStyle:{\"max-height\":\"5px\"}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-table-large\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"secondary--text subtitle-2\"},[_vm._v(_vm._s(table))])],1)],1)}),1)],1)],1)],1):_vm._e(),(_vm.bundleData.objects.applications.length && false)?_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"px-0\"},[_c('span',{staticClass:\"secondary--text font-weight-bold\"},[_vm._v(\"Applications (\"+_vm._s(_vm.bundleData.objects.applications.length)+\")\")])]),_c('v-expansion-panel-content',[_c('v-list',{staticClass:\"pa-0\",attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{staticClass:\"pa-0 ma-0\",attrs:{\"color\":\"secondary\"}},_vm._l((_vm.bundleData.objects.applications),function(application){return _c('v-list-item',{key:application,staticClass:\"pa-0\",staticStyle:{\"max-height\":\"5px\"}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"desktop_windows\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"secondary--text subtitle-2\"},[_vm._v(_vm._s(application))])],1)],1)}),1)],1)],1)],1):_vm._e()],1)],1),(_vm.bundleData.bundle_type_name === _vm.distributionReasons.ASSIGNMENT)?_c('v-tab-item',[_c('the-snapshot-assignment-grades',{attrs:{\"bid\":_vm.bundleData.bid,\"overdue\":_vm.isAssignmentOverdue(_vm.bundleData.allow_handins_until),\"bundleData\":_vm.bundleData},on:{\"closeModal\":_vm.closeModal}})],1):_vm._e()],1)],1)],1)],1)\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!./TheSnapshotBundleContentDialog.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!./TheSnapshotBundleContentDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheSnapshotBundleContentDialog.vue?vue&type=template&id=65bab769&\"\nimport script from \"./TheSnapshotBundleContentDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./TheSnapshotBundleContentDialog.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","// 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","import { enumsData } from '@/mixins/enums'\nimport eventBus from '@/components/EventBus'\nimport { fetchTask } from '@/apis'\n\nexport const assignmentMethods = {\n data() {\n return {\n assignmentLoading: false\n }\n },\n mixins: [enumsData],\n methods: {\n isAssignmentOverdue(deadline) {\n const now = Date.now()\n const handinDate = new Date(deadline)\n const handinDateUTC = Date.UTC(\n handinDate.getUTCFullYear(),\n handinDate.getUTCMonth(),\n handinDate.getUTCDate(),\n handinDate.getUTCHours(),\n handinDate.getUTCMinutes(),\n handinDate.getUTCSeconds()\n )\n return now > handinDateUTC\n },\n submitAssignment: async function (longId, shortId, bid) {\n this.assignmentLoading = true\n this.$store.dispatch('showSnackBar', {\n snackBarText: 'Submitting assignment, please wait....',\n snackBarTimeout: 1500,\n snackBarIcon: 'info'\n })\n try {\n const { data } = await this.$axios.post(`/bundles/${bid}/submit`, {\n iid: this.$route.params.iid,\n handin_short_id: shortId,\n handin_long_id: longId\n })\n this.assignmentLoading = false\n this.$store.dispatch('showGlobalDialog', {\n dialogText: 'Assignment submission has started, see the status below',\n dialogTitle: 'Assignment submission',\n dialogAction: ['dismiss']\n })\n eventBus.$emit('global-dialog-task-started', true)\n const taskResult = await fetchTask(data.tkid)\n if (taskResult.isAxiosError) {\n throw new Error(taskResult.response.data.reason)\n } else if (taskResult.data.status === this.taskStatusTypes.COMPLETED.value) {\n eventBus.$emit('global-dialog-task-finished', true)\n this.$store.dispatch('spaceStore/fetchSpaceBundles', this.$route.params.sid)\n } else {\n eventBus.$emit('global-dialog-task-finished', taskResult)\n }\n } catch (error) {\n eventBus.$emit('global-dialog-task-finished', error)\n }\n },\n gotoAssignment(bid) {\n this.$store.dispatch('snapshotStore/setPathArray', [''])\n this.$router.push({\n name: 'assignment',\n params: { bid }\n })\n }\n }\n}\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n expansionPanel: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-content',\n\n data: () => ({\n isActive: false,\n }),\n\n computed: {\n parentIsActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n watch: {\n parentIsActive: {\n immediate: true,\n handler (val, oldVal) {\n if (val) this.isBooted = true\n\n if (oldVal == null) this.isActive = val\n else this.$nextTick(() => this.isActive = val)\n },\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (h): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-content',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this)),\n ]),\n ]))\n },\n})\n","import Shepherd from 'shepherd.js'\n\nexport default {\n data() {\n return {\n tour: null,\n tourEvents: ['complete', 'close', 'cancel']\n }\n },\n created() {\n Shepherd.on('start', () => {\n window.Intercom?.('shutdown')\n })\n this.tourEvents.forEach(event => {\n window.Intercom?.('boot', {\n app_id: this.$appConfig.VUE_APP_INTERCOM_ID\n })\n Shepherd.on(\n event,\n () => {\n this.tour = null\n this.$store.commit('setUserMetadata', { [this.tourId]: this.tourHidden, new_user: false })\n },\n this.tourId\n )\n })\n },\n beforeDestroy() {\n this.tourEvents.forEach(event => Shepherd.off(event, this.tourId))\n }\n}\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","// Extensions\nimport VWindowItem from '../VWindow/VWindowItem'\n\n/* @vue/component */\nexport default VWindowItem.extend({\n name: 'v-tab-item',\n\n props: {\n id: String,\n },\n\n methods: {\n genWindowItem () {\n const item = VWindowItem.options.methods.genWindowItem.call(this)\n\n item.data!.domProps = item.data!.domProps || {}\n item.data!.domProps.id = this.id || this.value\n\n return item\n },\n },\n})\n","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\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 { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n expansionPanel: InstanceType\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions') ||\n [this.$createElement(VIcon, this.expandIcon)]\n\n return this.$createElement(VFadeTransition, [\n this.$createElement('div', {\n staticClass: 'v-expansion-panel-header__icon',\n class: {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n },\n directives: [{\n name: 'show',\n value: !this.isDisabled,\n }],\n }, icon),\n ])\n },\n },\n\n render (h): VNode {\n return h('button', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-header',\n class: this.classes,\n attrs: {\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.$listeners,\n click: this.onClick,\n mousedown: () => (this.hasMousedown = true),\n mouseup: () => (this.hasMousedown = false),\n },\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ])\n },\n})\n","// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType\ntype VExpansionPanelContentInstance = InstanceType\n\nexport default mixins(\n GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n RegistrableProvide('expansionPanel', true)\n /* @vue/component */\n).extend({\n name: 'v-expansion-panel',\n\n props: {\n disabled: Boolean,\n readonly: Boolean,\n },\n\n data () {\n return {\n content: null as VExpansionPanelContentInstance | null,\n header: null as VExpansionPanelHeaderInstance | null,\n nextIsActive: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel--active': this.isActive,\n 'v-expansion-panel--next-active': this.nextIsActive,\n 'v-expansion-panel--disabled': this.isDisabled,\n ...this.groupClasses,\n }\n },\n isDisabled (): boolean {\n return this.expansionPanels.disabled || this.disabled\n },\n isReadonly (): boolean {\n return this.expansionPanels.readonly || this.readonly\n },\n },\n\n methods: {\n registerContent (vm: VExpansionPanelContentInstance) {\n this.content = vm\n },\n unregisterContent () {\n this.content = null\n },\n registerHeader (vm: VExpansionPanelHeaderInstance) {\n this.header = vm\n vm.$on('click', this.onClick)\n },\n unregisterHeader () {\n this.header = null\n },\n onClick (e: MouseEvent) {\n if (e.detail) this.header!.$el.blur()\n\n this.$emit('click', e)\n\n this.isReadonly || this.isDisabled || this.toggle()\n },\n toggle () {\n this.$nextTick(() => this.$emit('change'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-expansion-panel',\n class: this.classes,\n attrs: {\n 'aria-expanded': String(this.isActive),\n },\n }, getSlot(this))\n },\n})\n","import Vue from 'vue'\nconst EventBus = new Vue()\nexport default EventBus\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":""}