{"version":3,"sources":["webpack:///./src/mixins/invitationsAndRequests.js","webpack:///./src/mixins/assignments.js","webpack:///../../../src/components/VSkeletonLoader/VSkeletonLoader.ts","webpack:///../../../src/components/VCarousel/VCarouselItem.ts","webpack:///./src/mixins/tour.js","webpack:///../../../src/mixins/button-group/index.ts","webpack:///../../../src/components/VCarousel/VCarousel.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///./src/mixins/snapshot.js","webpack:///./src/modules/snapshot/views/TheSnapshotOverview.vue","webpack:///./src/modules/snapshot/readme_md.js","webpack:///src/modules/snapshot/views/TheSnapshotOverview.vue","webpack:///./src/modules/snapshot/views/TheSnapshotOverview.vue?e787","webpack:///./src/modules/snapshot/views/TheSnapshotOverview.vue?3ea6","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts"],"names":["invitationsAndRequests","data","roleUpdateOptions","OVERWRITE_CURRENT_ROLE","OVERWRITE_CURRENT_ROLE_IF_LOWER","invitationAndRequestStatusTypes","ACCEPTED","PENDING","REJECTED","REVOKED","EXPIRED","BROKEN","CREATED","SENT","actionTypes","REVOKE_INVITATION","RESEND_INVITATION","REVOKE_REQUEST","APPROVE_REQUEST","REJECT_REQUEST","requestTypes","OWN_REQUESTS","REQUESTS_TO_APPROVE","invitationAndRequestRoleTypes","INSTANCE_ROLE","SPACE_ROLE","ORG_ROLE","requestingRole","roleCodes","ORGANIZATION_MANAGER","FACULTY_MEMBER","ORGANIZATION_MEMBER","AFFILIATED","INSTANCE_EDITOR","INSTANCE_VIEWER","INSTANCE_OBSERVER","methods","invitationOrRequestHasTimestamp","get","getMailIconColor","status","this","getInvitationStatus","itemData","invitation_responses","length","response","status_name","valid","submitRequest","roleType","role","generateLinkOnly","apiURL","baseRequestURL","postBody","generate_link_only","$route","params","oid","org_role","sid","iid","instance_role","$axios","post","then","$store","dispatch","snackBarText","snackBarTimeout","snackBarIcon","catch","error","errorMessage","code","finally","assignmentMethods","assignmentLoading","mixins","enumsData","isAssignmentOverdue","deadline","now","Date","handinDate","handinDateUTC","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","submitAssignment","longId","shortId","bid","handin_short_id","handin_long_id","dialogText","dialogTitle","dialogAction","eventBus","$emit","fetchTask","tkid","taskResult","isAxiosError","Error","reason","taskStatusTypes","COMPLETED","value","gotoAssignment","$router","push","name","Elevatable","Measurable","Themeable","extend","props","boilerplate","Boolean","loading","tile","transition","String","type","types","Object","default","computed","attrs","isLoading","$attrs","classes","themeClasses","elevationClasses","$scopedSlots","rootTypes","actions","article","avatar","button","card","chip","heading","image","paragraph","sentences","table","text","genBone","children","$createElement","staticClass","genBones","bone","split","generator","genStructure","Array","from","map","indexOf","mapBones","genSkeleton","getSlot","on","afterEnter","resetStyles","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","leaveCancelled","bones","replace","el","_initialStyle","display","style","setProperty","render","h","$listeners","class","measurableStyles","undefined","baseMixins","VWindowItem","Routable","inject","parentTheme","isDark","provide","theme","inheritAttrs","genDefaultSlot","VImg","height","windowGroup","internalHeight","scopedSlots","placeholder","genWindowItem","generateRouteLink","tag","directives","isActive","tour","tourEvents","created","Shepherd","window","Intercom","forEach","event","app_id","$appConfig","VUE_APP_INTERCOM_ID","commit","tourId","tourHidden","beforeDestroy","off","BaseItemGroup","btnToggle","options","call","genData","VWindow","continuous","cycle","delimiterIcon","Number","hideDelimiters","hideDelimiterBackground","interval","validator","mandatory","progress","progressColor","showArrows","verticalDelimiters","slideTimeout","isVertical","dark","light","watch","internalValue","val","oldVal","restartTimeout","clearTimeout","hasOwnProperty","breaking","mounted","startTimeout","genControlIcons","genDelimiters","left","right","genItems","items","i","child","VBtn","$vuetify","lang","t","icon","small","getValue","key","VIcon","size","ButtonGroup","change","genProgress","VProgressLinear","color","internalIndex","requestAnimationFrame","setTimeout","next","convertToUnit","VGrid","Vue","functional","id","trim","keys","filter","startsWith","join","domProps","Grid","fluid","mergeData","concat","snapshotEnums","snapshotTypes","QUICK_SNAPSHOT","AUTO_SNAPSHOT","DETAILED_SNAPSHOT","ARCHIVED_SNAPSHOT","RESTED_SNAPSHOT","fileStatusTypes","SAVED_AND_UNCHANGED","SAVED_AND_CHANGED","UNSAVED","STATUS_UNAVAILABLE","snapshotBackupStatusOptions","CREATING_SNAPSHOT","getSnapshotStatusIcon","snapshotData","backup_location","getSnapshotStatusDescription","filesystem_prefix","currentFileStatus","file","success","in_last_snapshot","changed","_vm","proxy","slot","_v","_u","_c","isDevelopment","isSpaceAdmin","parseInt","$event","isSpaceDescriptionFieldMouted","assignmentsList","staticStyle","fetchReadmeAndVideos","failedToFetchReadme","isInstanceArchived","readmeMdWithDefault","schedules","callback","expression","url","rawName","videoURLs","snid","fileArea","fileAreaType","screenSize","currentSpaceType","_e","model","$$v","detailsDrawer","instanceLongName","isInstanceEditor","furthestArchivalDate","spaceArchivalDate","staticRenderFns","readmeMdEdu","readmeMdRes","readmeMdData","components","LeaveDialog","TheSnapshotFileEditor","MarkdownViewer","TheSnapshotAssignmentTile","TheSnapshotCourseCheckList","EditableArea","settingsModal","spaceNameFieldMounted","overviewTab","readme_md_content","fetchingReadme","videoHeight","showVideos","videoModel","readmeData","isSpaceNameFieldMounted","courseChecklistMounted","fetchingVideosAndReadme","assignments","long_id","description","allow_handins_until","objects","applications","files","tables","mapGetters","mapState","showSidebarLoader","newReadmeFileContent","showCheckList","spaceLongName","spaceDescription","spaceArchiveTimestamp","instanceRearchiveAfterTimestamp","detailsDrawerWidth","snapshotName","snapshotFilesystemPrefix","instanceName","showSpaceTour","years","archivalWithinThirtyDays","days","queryTable","query","tab","onResize","showVideoModal","goToSnapshots","hasREADME","timeout","responseType","reader","console","hasVIDEOS","fetchSchedules","fetchAppStartupSchedules","handler","immediate","useModalOverlay","defaultStepOptions","cancelIcon","enabled","scrollTo","behavior","block","title","buttons","action","attachTo","element","component","inset","$slots","Applicationable","Colorable","Dependent","Mobile","Overlayable","SSRBootable","ClickOutside","Resize","Touch","isInNav","bottom","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","floating","app","miniVariant","miniVariantWidth","permanent","src","stateless","temporary","touchless","width","isMouseover","touchArea","stackMinZIndex","applicationProperty","absolute","fixed","isMobile","isMiniVariant","computedMaxHeight","hasApp","application","footer","bar","top","computedTop","computedTransform","isBottom","computedWidth","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","hideOverlay","styles","translate","maxHeight","transform","prev","removeOverlay","genOverlay","init","updateMiniVariant","beforeMount","calculateTouchArea","parent","$el","parentNode","parentRect","getBoundingClientRect","closeConditional","_isDestroyed","genAppend","genPosition","genBackground","img","genDirectives","include","getOpenDependentElements","swipeLeft","swipeRight","genListeners","mouseenter","mouseleave","transitionend","e","target","currentTarget","resizeEvent","document","createEvent","initUIEvent","dispatchEvent","click","genPrepend","genContent","genBorder","onRouteChange","Math","abs","touchendX","touchstartX","updateApplication","isNaN","clientWidth","unshift","setBackgroundColor"],"mappings":"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mBACA6V,gDACAC,SACAC,qBACAC,gCACAC,6BAGA,CACAN,uBACAlS,MACAmS,sDACA5V,kBACA6V,gDACAC,SACAC,qBACAC,gCACAC,6BAGA,CACAN,uBACAlS,MACAmS,sDACA5V,kBACA6V,gDACAC,SACAC,qBACAC,gCACAC,8BAIAzK,yBACAC,cACAuH,eAGAlI,mBACA,uBAEAjF,iLACAqQ,gCACA,mBACA,6BACA,qBACA,mBACA,gCACA,6BACA,wBAEAC,qDACAA,uDACAD,6BACA,eACA,mBACA,yBACA,uBACA,mBACA,oBACA,oBACA,wBACA,iBACA,gBACA,mBAEAA,0EACAA,6CACAC,+CACAA,0FACAA,kEACAA,uCACAC,6BACA,QACA,uEACA,2HAGAC,gCACA,iGACA,UAEAC,yBACA,8HAEAC,yBACA,oFAEAC,4BACA,uFAEAC,iCACA,4FAEA1C,4BACA,0FAEA2C,2CACA,qGAEAhE,2BAAA,WACA,gCACA,sGAEA,IAEAe,sBACA,0CACA,QACA,mCACA,UACA,iCACA,UAIAkD,8BACA,iDAEAC,wBACA,2FAEAC,oCACA,mGAEAC,wBACA,0FAEA/D,+BACA,8BACA,iFAEA,wDACA,EACA,uDACA,EAEA,GAEAgE,yBACA,OACA,sBACA,yBACA,4BACA,qBACA,uBACA,mCAGA9C,gCACA,2DAAA+C,UAAA,aAEAC,oCACA,oDACA,sBACA,kBAAAC,aAGAtX,SACAuX,uBACA,mBACAtS,uBACA3D,QACAC,2BACAE,2BACAC,2BACAgS,8BAEA8D,OAAAC,wCAAArQ,YAGAsQ,oBACA,4CACA,yFAGAC,0BACA,oBAEAC,yBACA,mBACA3S,0BACA3D,QACAC,2BACAE,2BACAC,2BACAgS,iCAIAV,iCAAA,WACA,gCACA,0CACA,qBACA,uBACA,4BACA,YACA9S,OACA4B,kBACA,SACA,KACApB,4BACA,yCACAmX,KACA,eACA,SACA3X,yCACA4X,YACAC,sBAEAjW,kBACA,qBACAkW,0CACA,sBACA,yBAEAA,wBAEA5V,mBACA6V,eACA,0BAEAzV,oBACA4I,8BAAA,sCAGA,4CACA8M,KACA,SA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","file":"static/js/chunk-23fb2168.6567c284.js","sourcesContent":["import { get } from 'lodash'\nexport const invitationsAndRequests = {\n data() {\n return {\n roleUpdateOptions: {\n OVERWRITE_CURRENT_ROLE: 0,\n OVERWRITE_CURRENT_ROLE_IF_LOWER: 1\n },\n invitationAndRequestStatusTypes: {\n ACCEPTED: 'ACCEPTED',\n PENDING: 'PENDING',\n REJECTED: 'REJECTED',\n REVOKED: 'REVOKED',\n EXPIRED: 'EXPIRED',\n BROKEN: 'BROKEN',\n CREATED: 'CREATED',\n SENT: 'SENT'\n },\n actionTypes: {\n REVOKE_INVITATION: 'Revoke invitation',\n RESEND_INVITATION: 'Resend invitation',\n REVOKE_REQUEST: 'Revoke request',\n APPROVE_REQUEST: 'Approve request',\n REJECT_REQUEST: 'Reject request'\n },\n requestTypes: {\n OWN_REQUESTS: 'own',\n REQUESTS_TO_APPROVE: 'to approve'\n },\n invitationAndRequestRoleTypes: {\n INSTANCE_ROLE: 'InstanceRoleType',\n SPACE_ROLE: 'SpaceRoleType',\n ORG_ROLE: 'OrgRoleType'\n },\n requestingRole: false,\n roleCodes: {\n ORGANIZATION_MANAGER: 0,\n FACULTY_MEMBER: 10,\n ORGANIZATION_MEMBER: 30,\n AFFILIATED: 20,\n INSTANCE_EDITOR: 0,\n INSTANCE_VIEWER: 10,\n INSTANCE_OBSERVER: 20\n }\n }\n },\n methods: {\n invitationOrRequestHasTimestamp(data) {\n return get(data, 'invitation_responses[0].timestamp') || get(data, 'request_responses[0].timestamp')\n },\n getMailIconColor(status) {\n if (status === this.invitationAndRequestStatusTypes.ACCEPTED) {\n return 'success'\n } else if (status === this.invitationAndRequestStatusTypes.REJECTED) {\n return 'yellow darken-2'\n } else if (status === this.invitationAndRequestStatusTypes.PENDING) {\n return 'primary'\n } else if (status === this.invitationAndRequestStatusTypes.REVOKED) {\n return 'error'\n } else if (status === this.invitationAndRequestStatusTypes.EXPIRED) {\n return 'secondary'\n } else if (status === this.invitationAndRequestStatusTypes.CREATED) {\n return 'purple'\n } else {\n return 'info'\n }\n },\n getInvitationStatus(itemData) {\n if (itemData.invitation_responses.length && itemData.invitation_responses[0].response === this.invitationAndRequestStatusTypes.ACCEPTED) {\n return this.invitationAndRequestStatusTypes.ACCEPTED\n } else if (itemData.invitation_responses.length && itemData.invitation_responses[0].response === this.invitationAndRequestStatusTypes.REJECTED) {\n return this.invitationAndRequestStatusTypes.REJECTED\n } else if (itemData.status_name === this.invitationAndRequestStatusTypes.REVOKED) {\n return this.invitationAndRequestStatusTypes.REVOKED\n } else if (\n itemData.status_name === this.invitationAndRequestStatusTypes.SENT &&\n itemData.valid === 'False' &&\n !itemData.invitation_responses.length\n ) {\n return this.invitationAndRequestStatusTypes.EXPIRED\n } else if (\n itemData.status_name === this.invitationAndRequestStatusTypes.SENT &&\n itemData.valid === 'True' &&\n !itemData.invitation_responses.length\n ) {\n return this.invitationAndRequestStatusTypes.PENDING\n } else if (\n itemData.status_name === this.invitationAndRequestStatusTypes.CREATED &&\n itemData.valid === 'True' &&\n !itemData.invitation_responses.length\n ) {\n return this.invitationAndRequestStatusTypes.CREATED\n } else {\n return this.invitationAndRequestStatusTypes.BROKEN\n }\n },\n submitRequest(roleType, role, generateLinkOnly = false) {\n this.requestingRole = true\n const baseRequestURL = '/requests'\n let apiURL\n const postBody = { generate_link_only: generateLinkOnly }\n if (roleType === this.invitationAndRequestRoleTypes.ORG_ROLE) {\n apiURL = `${baseRequestURL}/request_org_role/${this.$route.params.oid}`\n postBody.org_role = role\n } else if (roleType === this.invitationAndRequestRoleTypes.SPACE_ROLE) {\n apiURL = `${baseRequestURL}/request_space_role/${this.$route.params.sid}`\n } else if (roleType === this.invitationAndRequestRoleTypes.INSTANCE_ROLE) {\n apiURL = `${baseRequestURL}/request_instance_role/${this.$route.params.iid}`\n postBody.instance_role = role\n }\n this.$axios\n .post(apiURL, postBody)\n .then(() => {\n this.$store.dispatch('showSnackBar', {\n snackBarText: 'Successfully submitted the request!',\n snackBarTimeout: 10000,\n snackBarIcon: 'check_circle'\n })\n })\n .catch(error => {\n const errorMessage =\n error.response && error.response.data && error.response.data.code === 'request_already_exists'\n ? 'A request for this role has already been submitted.'\n : 'Failed to submit request, please try again later or contact us via the chat in the bottom right side of the page.'\n this.$store.dispatch('showSnackBar', {\n snackBarText: errorMessage,\n snackBarTimeout: 10000,\n snackBarIcon: 'error'\n })\n })\n .finally(() => {\n this.requestingRole = false\n })\n }\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","// Styles\nimport './VSkeletonLoader.sass'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\nimport { PropValidator } from 'vue/types/options'\n\nexport interface HTMLSkeletonLoaderElement extends HTMLElement {\n _initialStyle?: {\n display: string | null\n transition: string\n }\n}\n\n/* @vue/component */\nexport default mixins(\n Elevatable,\n Measurable,\n Themeable,\n).extend({\n name: 'VSkeletonLoader',\n\n props: {\n boilerplate: Boolean,\n loading: Boolean,\n tile: Boolean,\n transition: String,\n type: String,\n types: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n },\n\n computed: {\n attrs (): object {\n if (!this.isLoading) return this.$attrs\n\n return !this.boilerplate ? {\n 'aria-busy': true,\n 'aria-live': 'polite',\n role: 'alert',\n ...this.$attrs,\n } : {}\n },\n classes (): object {\n return {\n 'v-skeleton-loader--boilerplate': this.boilerplate,\n 'v-skeleton-loader--is-loading': this.isLoading,\n 'v-skeleton-loader--tile': this.tile,\n ...this.themeClasses,\n ...this.elevationClasses,\n }\n },\n isLoading (): boolean {\n return !('default' in this.$scopedSlots) || this.loading\n },\n rootTypes (): Record {\n return {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, card-heading',\n 'card-avatar': 'image, list-item-avatar',\n 'card-heading': 'heading',\n chip: 'chip',\n 'date-picker': 'list-item, card-heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n paragraph: 'text@3',\n sentences: 'text@2',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'heading, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'table-cell@6',\n 'table-cell': 'text',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n ...this.types,\n }\n },\n },\n\n methods: {\n genBone (text: string, children: VNode[]) {\n return this.$createElement('div', {\n staticClass: `v-skeleton-loader__${text} v-skeleton-loader__bone`,\n }, children)\n },\n genBones (bone: string): VNode[] {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [string, number]\n const generator = () => this.genStructure(type)\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(generator)\n },\n // Fix type when this is merged\n // https://github.com/microsoft/TypeScript/pull/33050\n genStructure (type?: string): any {\n let children = []\n type = type || this.type || ''\n const bone = this.rootTypes[type] || ''\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.indexOf(',') > -1) return this.mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.indexOf('@') > -1) return this.genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.indexOf(',') > -1) children = this.mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.indexOf('@') > -1) children = this.genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(this.genStructure(bone))\n\n return [this.genBone(type, children)]\n },\n genSkeleton () {\n const children = []\n\n if (!this.isLoading) children.push(getSlot(this))\n else children.push(this.genStructure())\n\n /* istanbul ignore else */\n if (!this.transition) return children\n\n /* istanbul ignore next */\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n // Only show transition when\n // content has been loaded\n on: {\n afterEnter: this.resetStyles,\n beforeEnter: this.onBeforeEnter,\n beforeLeave: this.onBeforeLeave,\n leaveCancelled: this.resetStyles,\n },\n }, children)\n },\n mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(this.genStructure)\n },\n onBeforeEnter (el: HTMLSkeletonLoaderElement) {\n this.resetStyles(el)\n\n if (!this.isLoading) return\n\n el._initialStyle = {\n display: el.style.display,\n transition: el.style.transition,\n }\n\n el.style.setProperty('transition', 'none', 'important')\n },\n onBeforeLeave (el: HTMLSkeletonLoaderElement) {\n el.style.setProperty('display', 'none', 'important')\n },\n resetStyles (el: HTMLSkeletonLoaderElement) {\n if (!el._initialStyle) return\n\n el.style.display = el._initialStyle.display || ''\n el.style.transition = el._initialStyle.transition\n\n delete el._initialStyle\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-skeleton-loader',\n attrs: this.attrs,\n on: this.$listeners,\n class: this.classes,\n style: this.isLoading ? this.measurableStyles : undefined,\n }, [this.genSkeleton()])\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","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","// 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","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","export const snapshotEnums = {\n data() {\n return {\n snapshotTypes: {\n QUICK_SNAPSHOT: 20,\n AUTO_SNAPSHOT: 30,\n DETAILED_SNAPSHOT: 10,\n ARCHIVED_SNAPSHOT: 40,\n RESTED_SNAPSHOT: 50\n },\n fileStatusTypes: {\n SAVED_AND_UNCHANGED: 'SAVED_AND_UNCHANGED',\n SAVED_AND_CHANGED: 'SAVED_AND_CHANGED',\n UNSAVED: 'UNSAVED',\n STATUS_UNAVAILABLE: 'STATUS_UNAVAILABLE'\n },\n snapshotBackupStatusOptions: {\n CREATING_SNAPSHOT: 'creating'\n }\n }\n },\n methods: {\n getSnapshotStatusIcon: function (snapshotData) {\n if (!snapshotData.backup_location) {\n return 'mdi-lock-off'\n } else if (snapshotData.backup_location === this.snapshotBackupStatusOptions.CREATING_SNAPSHOT) {\n return 'mdi-lock-clock'\n } else {\n return 'mdi-lock-check'\n }\n },\n getSnapshotStatusDescription: function (snapshotData) {\n if (!snapshotData.filesystem_prefix && !snapshotData.backup_location) {\n return 'The data for this snapshot can not be located. Please contact support.'\n } else if (snapshotData.filesystem_prefix && !snapshotData.backup_location) {\n return 'This snapshot has no backup.'\n } else if (snapshotData.filesystem_prefix && snapshotData.backup_location === this.snapshotBackupStatusOptions.CREATING_SNAPSHOT) {\n return 'A backup is being created for this snapshot.'\n } else if (snapshotData.filesystem_prefix && snapshotData.backup_location) {\n return 'A backup exists for this snapshot'\n } else if (!snapshotData.filesystem_prefix && snapshotData.backup_location === this.snapshotBackupStatusOptions.CREATING_SNAPSHOT) {\n return 'The data for this snapshot can not be located. Please contact support.'\n } else if (!snapshotData.filesystem_prefix && snapshotData.backup_location) {\n return 'Files in this snapshot are in cold storage. It can take slightly longer to view or download them.'\n }\n },\n currentFileStatus(file) {\n if (file.status) {\n if (file.status.success && file.status.in_last_snapshot && !file.status.changed) {\n return this.fileStatusTypes.SAVED_AND_UNCHANGED\n } else if (file.status.success && file.status.in_last_snapshot && file.status.changed) {\n return this.fileStatusTypes.SAVED_AND_CHANGED\n } else if (file.status.success && !file.status.in_last_snapshot) {\n return this.fileStatusTypes.UNSAVED\n }\n }\n return this.fileStatusTypes.STATUS_UNAVAILABLE\n }\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"nvSnapshotOverview\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.isInstanceObserver)?_c('v-banner',{staticClass:\"mb-5\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"target\":\"_blank\",\"color\":\"primary\",\"loading\":_vm.requestingRole},on:{\"click\":function($event){return _vm.submitRequest(_vm.invitationAndRequestRoleTypes.INSTANCE_ROLE, _vm.roleCodes.INSTANCE_VIEWER)}}},[_vm._v(\" Request role \")])]},proxy:true}],null,false,2551848833)},[_c('v-avatar',{attrs:{\"slot\":\"icon\",\"color\":\"white\",\"size\":\"30\"},slot:\"icon\"},[_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"info\"}},[_vm._v(\"info\")])],1),_c('span',{staticClass:\"subtitle-1\"},[_vm._v(\" You have an observer role in this space which does not allow you to work with its content. To gain access please request a viewer role. \")])],1):_vm._e(),(\n _vm.privateInstances.length > _vm.tours.PRESTART_MINIMUM_INSTANCE_COUNT &&\n _vm.schedules.length === 0 &&\n !_vm.currentSpaceArchived &&\n _vm.isSpaceAdmin &&\n _vm.isMasterInstance &&\n _vm.currentSpaceType === _vm.spaceTypes.EDUCATION_SPACE\n )?_c('v-banner',{staticClass:\"mb-5\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"to\":{\n name: 'snapshot-applications'\n },\"color\":\"primary\"}},[_vm._v(\" Go to apps for scheduling \")])]},proxy:true}],null,false,1818868477)},[_c('v-avatar',{attrs:{\"slot\":\"icon\",\"color\":\"white\",\"size\":\"30\"},slot:\"icon\"},[_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"info\"}},[_vm._v(\"info\")])],1),_c('span',{staticClass:\"subtitle-1\"},[_vm._v(\" No upcoming scheduled application starts defined. For optimal application start speed, please specify all known times when many students are expected to start working on Nuvolos simultaneously. \")])],1):_vm._e(),(!_vm.fetchingInstances && _vm.currentSpaceArchived && !_vm.isMasterInstance && !_vm.isSpaceInAnyRestState)?_c('v-alert',{attrs:{\"text\":\"\",\"color\":\"info\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-icon',{attrs:{\"color\":\"info\",\"right\":\"\"}},[_vm._v(\"info\")])],1),_c('v-col',{staticClass:\"grow\"},[(_vm.isDevelopment && _vm.snapshotFilesystemPrefix && _vm.instanceRearchiveAfterTimestamp)?_c('span',[_vm._v(\" This space has been archived. Contents of Current State are available for temporary access but will be permanently deleted after \"+_vm._s(_vm._f(\"dateTimeToHuman\")(_vm.instanceRearchiveAfterTimestamp))+\". \")]):_c('span',[_vm._v(\" This instance has been archived. Contents may be restored for temporary access but prolonged active use is not supported. \")])]),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"href\":\"https://docs.nuvolos.cloud/user-guides/education-guides/archiving-your-course\",\"target\":\"_blank\",\"color\":\"primary\"}},[_vm._v(\" Learn more \")])],1)],1)],1):_vm._e(),(_vm.isSpaceAdmin && _vm.archivalWithinThirtyDays && !_vm.currentSpaceArchived)?_c('v-alert',{attrs:{\"text\":\"\",\"color\":\"info\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-icon',{attrs:{\"color\":\"info\",\"right\":\"\"}},[_vm._v(\"info\")])],1),_c('v-col',{staticClass:\"grow\"},[_vm._v(\" This space is scheduled to be archived on \"),_c('strong',[_vm._v(_vm._s(_vm.spaceArchivalDate))]),_vm._v(\" . You can set a new archival date in the space's details using the \"),_c('v-icon',{attrs:{\"dense\":\"\"}},[_vm._v(\"info\")]),_vm._v(\" icon below. \")],1)],1)],1):_vm._e(),_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"d-flex align-center\"},[(_vm.isSpaceAdmin && !_vm.isSpaceNameFieldMounted)?_c('span',{staticClass:\"subtitle-2 secondary--text\",attrs:{\"type\":\"list-item\"}},[_vm._v(\"Loading space name....\")]):_vm._e(),(_vm.spaceLongName && _vm.isSpaceAdmin)?_c('editable-area',{attrs:{\"value\":_vm.spaceLongName,\"apiURL\":'/spaces/' + this.$route.params.sid,\"successMessage\":\"Space name successfully updated!\",\"editAttr\":\"long_id\",\"fontClass\":\"title font-weight-bold\",\"editAttrFullName\":\"space name\",\"defaultValue\":\"Space name not available\",\"color\":\"white\",\"showEditIcon\":_vm.isSpaceAdmin && !_vm.isSpaceRested && !_vm.isSpaceResting,\"id\":parseInt(_vm.$route.params.sid, 10),\"finally\":() => {\n this.$store.dispatch('orgStore/fetchOrgSpaces', this.$route.params.oid)\n }},on:{\"mounted\":function($event){_vm.isSpaceNameFieldMounted = true}}}):(!_vm.isSpaceAdmin)?_c('span',{staticClass:\"secondary--text title font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$store.getters['spaceStore/spaceLongNameById'](_vm.$route.params.sid))+\" \")]):_c('span',[_vm._v(\"Loading space name...\")]),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"small\":\"\",\"text\":\"\",\"icon\":\"\",\"disabled\":_vm.isSpaceRested || _vm.isSpaceResting},on:{\"click\":function($event){_vm.detailsDrawer = true}}},on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(\"Show details\")])])],1),(_vm.isSpaceAdmin && !_vm.isSpaceNameFieldMounted)?_c('span',{attrs:{\"type\":\"list-item\"}},[_vm._v(\"Loading space description....\")]):_vm._e(),(_vm.isSpaceAdmin)?_c('editable-area',{attrs:{\"value\":_vm.spaceDescription,\"apiURL\":'/spaces/' + this.$route.params.sid,\"successMessage\":\"Space description successfully updated!\",\"editAttr\":\"description\",\"editAttrFullName\":\"space description\",\"color\":\"white\",\"defaultValue\":\"Description not available for this space\",\"showEditIcon\":_vm.isSpaceAdmin && !_vm.isSpaceRested && !_vm.isSpaceResting,\"id\":parseInt(_vm.$route.params.sid, 10),\"finally\":() => {\n this.$store.dispatch('orgStore/fetchOrgSpaces', this.$route.params.oid)\n }},on:{\"mounted\":function($event){_vm.isSpaceDescriptionFieldMouted = true}}}):_c('span',{staticClass:\"subtitle-2 secondary--text\"},[_vm._v(_vm._s(_vm.$store.getters['spaceStore/spaceDescriptionById'](this.$route.params.sid)))])],1)],1),(_vm.bundleCreated)?_c('v-alert',{attrs:{\"text\":\"\",\"prominent\":\"\",\"type\":\"info\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"grow\"},[_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(\"Did you know?\")]),_c('div',[_vm._v(\"You can recall distributed files easily if needed.\")])]),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"href\":\"https://docs.nuvolos.cloud/features/object-distribution#recall-files\",\"target\":\"_blank\",\"outlined\":\"\",\"small\":\"\",\"color\":\"info\"}},[_vm._v(\" Learn more \")])],1)],1)],1):_vm._e(),(_vm.assignmentsList.length)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((_vm.assignmentsList),function(assignment,idx){return _c('v-col',{key:idx,attrs:{\"xs\":\"12\",\"md\":\"4\",\"xl\":\"3\"}},[_c('TheSnapshotAssignmentTile',{attrs:{\"assignmentData\":assignment}})],1)}),1)],1):_vm._e(),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"md\":\"8\"}},[_c('v-card',{staticStyle:{\"min-height\":\"430px\"},attrs:{\"color\":_vm.readmeMdWithDefault === '' && !_vm.fetchingReadme ? 'white' : '',\"disabled\":_vm.isSpaceResting || _vm.isSpaceWaking}},[_c('v-card-text',[(_vm.fetchingReadme)?_c('div',[_c('v-skeleton-loader',{attrs:{\"type\":\"article@2\"}}),_c('v-skeleton-loader',{staticClass:\"ml-4\",attrs:{\"type\":\"paragraph\"}})],1):_c('div',[_c('div',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"right\":\"0\"}},[(_vm.isDevelopment && _vm.isInstanceEditor && !_vm.isSpaceRested)?_c('the-snapshot-file-editor',{attrs:{\"isMarkdownFile\":true,\"isCreateReadmeFile\":_vm.readmeData === null,\"endpoint\":`/snapshots/${_vm.$route.params.snid}/fs/files`,\"fileData\":_vm.readmeData || {},\"language\":\"markdown\",\"newReadmeFileContent\":_vm.newReadmeFileContent},on:{\"readmeFileUpdated\":function($event){return _vm.fetchReadmeAndVideos(_vm.$route.params.snid)},\"readmeFileCreated\":function($event){return _vm.fetchReadmeAndVideos(_vm.$route.params.snid)}}}):_vm._e()],1),(_vm.failedToFetchReadme)?_c('div',{staticClass:\"d-flex align-center text-center justify-center align-center\",staticStyle:{\"min-height\":\"400px\"}},[(_vm.isDevelopment)?[(_vm.isInstanceArchived)?_c('p',[_vm._v(\" This instance has been archived so there are no files in its Current State. Please \"),_c('a',{on:{\"click\":function($event){return _vm.goToSnapshots()}}},[_vm._v(\"restore\")]),_vm._v(\" a snapshot to the Current State to work with files. \")]):_c('div',[_vm._v(\"Failed to fetch files for this instance, please contact support.\")])]:_vm._e()],2):(_vm.readmeMdWithDefault)?_c('MarkdownViewer',{attrs:{\"editorText\":_vm.readmeMdWithDefault,\"id\":\"overview\"}}):_vm._e()],1)])],1)],1),(!_vm.showSidebarLoader)?_c('v-col',{attrs:{\"md\":\"4\"}},[(_vm.showCheckList)?[_c('TheSnapshotCourseCheckList',{attrs:{\"schedules\":_vm.schedules},on:{\"mounted\":function($event){_vm.courseChecklistMounted = true}}})]:_vm._e(),(_vm.videoURLs)?_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-divider',{staticClass:\"my-3\"}),_c('v-card-title',[_c('div',{staticClass:\"d-flex align-center\"},[_c('h5',{staticClass:\"secondary--text\"},[_vm._v(\"Videos\")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.showVideoModal}},[_vm._v(\"See All\")])],1)]),_c('v-card-text',{staticClass:\"pa-0\"},[_c('div',{attrs:{\"id\":\"nvVideoPreview\"}},[_c('iframe',{directives:[{name:\"resize\",rawName:\"v-resize\",value:(_vm.onResize),expression:\"onResize\"}],style:({ width: '100%', 'background-color': 'black', height: _vm.videoHeight + 'px' }),attrs:{\"src\":_vm.videoURLs[_vm.videoURLs.length - 1].url,\"frameborder\":\"0\",\"allow\":\"autoplay; fullscreen\",\"allowfullscreen\":\"\"}})])])],1):_vm._e(),(!_vm.showCheckList && !_vm.isInstanceObserver)?[_c('v-card',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('v-card-title',[_c('h5',{staticClass:\"secondary--text\"},[_vm._v(\"Resources\")])]),_c('v-card-text',{staticClass:\"pa-0\"},[_c('v-list',{staticClass:\"pa-0\",attrs:{\"nav\":\"\",\"color\":\"transparent\"}},[_c('v-list-item',{attrs:{\"to\":{\n name: 'snapshot-files',\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 fileArea: _vm.fileAreaType,\n localPath: _vm.currentFileLocalPath\n }\n },\"two-line\":_vm.screenSize === 'large' || _vm.screenSize === 'small',\"three-line\":_vm.screenSize === 'medium',\"e2e-snapshot-resources-files\":\"\"}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"folder\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_c('h4',{staticClass:\"mr-2 secondary--text\"},[_vm._v(\"Files\")])]),_c('v-list-item-subtitle',[_c('span',{staticClass:\"caption mr-3\"},[_vm._v(\"Browse and manage files\")])])],1)],1),_c('v-list-item',{attrs:{\"to\":{\n name: 'snapshot-tables',\n params: { oid: _vm.$route.params.oid, sid: _vm.$route.params.sid, iid: _vm.$route.params.iid, snid: _vm.$route.params.snid }\n },\"two-line\":_vm.screenSize === 'large' || _vm.screenSize === 'small',\"three-line\":_vm.screenSize === 'medium',\"e2e-snapshot-resources-tables\":\"\"}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-table-large\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_c('h4',{staticClass:\"mr-2 secondary--text\"},[_vm._v(\"Tables\")])]),_c('v-list-item-subtitle',[_c('span',{staticClass:\"caption mr-3\"},[_vm._v(\"Query and export data\")])])],1)],1),_c('v-list-item',{attrs:{\"to\":{\n name: 'snapshot-applications',\n params: { oid: _vm.$route.params.oid, sid: _vm.$route.params.sid, iid: _vm.$route.params.iid, snid: _vm.$route.params.snid }\n },\"two-line\":_vm.screenSize === 'large' || _vm.screenSize === 'small',\"three-line\":_vm.screenSize === 'medium',\"e2e-snapshot-resources-applications\":\"\"}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"desktop_windows\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_c('h4',{staticClass:\"mr-2 secondary--text\"},[_vm._v(\"Applications\")])]),_c('v-list-item-subtitle',[_c('span',{staticClass:\"caption\"},[_vm._v(\"Create and launch applications\")])])],1)],1),_c('v-list-item',{attrs:{\"to\":{\n name: 'instance-snapshots',\n params: { oid: _vm.$route.params.oid, sid: _vm.$route.params.sid, iid: _vm.$route.params.iid, snid: _vm.$route.params.snid }\n },\"two-line\":_vm.screenSize === 'large' || _vm.screenSize === 'small',\"three-line\":_vm.screenSize === 'medium',\"e2e-snapshot-resources-snapshots\":\"\"}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"camera_alt\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_c('h4',{staticClass:\"mr-2 secondary--text\"},[_vm._v(\"Snapshots\")])]),_c('v-list-item-subtitle',[(_vm.currentSpaceType === _vm.spaceTypes.EDUCATION_SPACE)?_c('span',{staticClass:\"caption\"},[_vm._v(\" Review timeline of saved course versions \")]):(_vm.currentSpaceType === _vm.spaceTypes.RESEARCH_SPACE)?_c('span',{staticClass:\"caption\"},[_vm._v(\" Review timeline of saved project versions \")]):_vm._e(),(_vm.currentSpaceType === _vm.spaceTypes.VENDOR_SPACE)?_c('span',{staticClass:\"caption\"},[_vm._v(\" Review timeline of saved dataset versions \")]):_vm._e()])],1)],1)],1)],1)],1)]:_vm._e()],2):_c('v-col',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-text',[_c('v-skeleton-loader',{attrs:{\"type\":\"article@2\"}}),_c('v-skeleton-loader',{staticClass:\"ml-4\",attrs:{\"type\":\"paragraph\"}})],1)],1)],1)],1)],1),_c('v-dialog',{attrs:{\"width\":\"60vw\"},model:{value:(_vm.showVideos),callback:function ($$v) {_vm.showVideos=$$v},expression:\"showVideos\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Videos\")]),_c('v-card-text',[(_vm.videoURLs)?_c('v-carousel',{attrs:{\"height\":\"55vh\",\"hide-delimiters\":\"\"},model:{value:(_vm.videoModel),callback:function ($$v) {_vm.videoModel=$$v},expression:\"videoModel\"}},_vm._l((_vm.videoURLs),function(video,i){return _c('v-carousel-item',{key:video.url},[_c('div',{staticClass:\"mb-2 secondary--text\"},[_vm._v(_vm._s(video.description))]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('iframe',{style:({ width: '50vw', 'background-color': 'black', height: '50vh' }),attrs:{\"src\":_vm.videoURLs[i].url,\"frameborder\":\"0\",\"allow\":\"autoplay; fullscreen\",\"allowfullscreen\":\"\"}})])])}),1):_vm._e()],1)],1)],1),_c('v-navigation-drawer',{attrs:{\"fixed\":\"\",\"right\":\"\",\"temporary\":\"\",\"touchless\":\"\",\"width\":_vm.detailsDrawerWidth},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-divider'),_c('div',{staticClass:\"d-flex align-center\"},[_c('v-list',{attrs:{\"dense\":\"\",\"nav\":\"\"}},[_c('v-list-item',[_c('v-list-item-title',[_c('LeaveDialog',{attrs:{\"levelLeavingTitle\":_vm.currentSpaceType === _vm.spaceTypes.EDUCATION_SPACE\n ? 'leave course'\n : _vm.currentSpaceType === _vm.spaceTypes.RESEARCH_SPACE\n ? 'leave project'\n : 'leave space',\"hierarchicalLevel\":_vm.nuvolosObjectTypes.SPACE}})],1)],1)],1)],1)]},proxy:true}]),model:{value:(_vm.detailsDrawer),callback:function ($$v) {_vm.detailsDrawer=$$v},expression:\"detailsDrawer\"}},[_c('div',{staticClass:\"d-flex align-center pa-3\"},[(_vm.currentSpaceType === _vm.spaceTypes.EDUCATION_SPACE)?_c('span',{staticClass:\"secondary--text subtitle-2 font-weight-medium\"},[_vm._v(\"Course details\")]):(_vm.currentSpaceType === _vm.spaceTypes.RESEARCH_SPACE)?_c('span',{staticClass:\"secondary--text subtitle-2 font-weight-medium\"},[_vm._v(\"Project details\")]):(_vm.currentSpaceType === _vm.spaceTypes.VENDOR_SPACE)?_c('span',{staticClass:\"secondary--text subtitle-2 font-weight-medium\"},[_vm._v(\"Dataset details\")]):_vm._e(),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.detailsDrawer = false}}},[_c('v-icon',[_vm._v(\"close\")])],1)],1),_c('v-divider'),(_vm.currentSpaceType === _vm.spaceTypes.EDUCATION_SPACE && _vm.isMasterInstance && _vm.isInstanceEditor)?_c('v-alert',{attrs:{\"type\":\"info\",\"text\":\"\",\"prominent\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"grow\"},[_vm._v(\"Material in the master instance is not directly visible to students, it has to be distributed.\")]),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"outlined\":\"\",\"href\":\"https://docs.nuvolos.cloud/getting-started/nuvolos-basic-concepts/distribution#distributing-teaching-material-to-students\",\"target\":\"_blank\",\"small\":\"\",\"color\":\"info\"}},[_vm._v(\" Learn more \")])],1)],1)],1):_vm._e(),_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-subheader',[_vm._v(\"Visibility\")])],1),_c('v-col',[(_vm.currentSpaceVisibility === _vm.spaceVisibilityCodes.PUBLIC_SPACE)?_c('span',{staticClass:\"subtitle-2 secondary--text\"},[_vm._v(\"Public\")]):_vm._e(),(_vm.currentSpaceVisibility === _vm.spaceVisibilityCodes.PRIVATE_SPACE)?_c('span',{staticClass:\"subtitle-2 secondary--text\"},[_vm._v(\"Private\")]):_vm._e(),(_vm.currentSpaceVisibility === _vm.spaceVisibilityCodes.FACULTY_ONLY_SPACE)?_c('span',{staticClass:\"subtitle-2 secondary--text\"},[_vm._v(\"Faculty only\")]):_vm._e()])],1),_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-subheader',[_vm._v(\"Lifecycle phase\")])],1),_c('v-col',[(!_vm.currentSpaceArchived)?_c('span',{staticClass:\"subtitle-2 secondary--text\"},[_vm._v(\"Live\")]):_vm._e(),(_vm.currentSpaceArchived)?_c('span',{staticClass:\"subtitle-2 secondary--text\"},[_vm._v(\"Archived on \"+_vm._s(_vm._f(\"dateTimeToHuman\")(_vm.spaceArchiveTimestamp)))]):_vm._e()])],1),(_vm.isSpaceAdmin)?_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-subheader',[_vm._v(\"Space role\")])],1),_c('v-col',[_c('div',{staticClass:\"d-flex align-center subtitle-2 secondary--text\"},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"secondary\"}},[_vm._v(\"security\")]),_vm._v(\" Administrator \")],1)])],1):_vm._e(),_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-subheader',[_vm._v(\"Instance name\")])],1),_c('v-col',[(_vm.isInstanceEditor)?_c('EditableArea',{attrs:{\"value\":_vm.instanceLongName,\"apiURL\":'/instances/' + this.$route.params.iid,\"successMessage\":\"Instance name successfully updated!\",\"editAttr\":\"long_id\",\"editAttrFullName\":\"instance name\",\"defaultValue\":\"Instance name not available\",\"color\":\"white\",\"showEditIcon\":_vm.isInstanceEditor && _vm.canDeleteInstanceOrEditFields,\"id\":parseInt(_vm.$route.params.sid, 10),\"finally\":() => {\n this.$store.dispatch('spaceStore/fetchSpaceInstances', this.$route.params.sid)\n }}}):(!_vm.isInstanceEditor)?_c('span',{staticClass:\"secondary--text subtitle-2\"},[_vm._v(_vm._s(_vm.instanceName))]):_vm._e()],1)],1),_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-subheader',[_vm._v(\"Instance description\")])],1),_c('v-col',[(_vm.isInstanceEditor)?_c('EditableArea',{attrs:{\"value\":_vm.currentInstanceDescription,\"apiURL\":'/instances/' + this.$route.params.iid,\"successMessage\":\"Instance description successfully updated!\",\"editAttr\":\"description\",\"editAttrFullName\":\"instance description\",\"defaultValue\":\"Instance description not available\",\"color\":\"white\",\"showEditIcon\":_vm.isInstanceEditor && _vm.canDeleteInstanceOrEditFields,\"id\":parseInt(_vm.$route.params.sid, 10),\"finally\":() => {\n this.$store.dispatch('spaceStore/fetchSpaceInstances', this.$route.params.sid)\n }}}):(!_vm.isInstanceEditor)?_c('span',{staticClass:\"secondary--text subtitle-2\"},[_vm._v(_vm._s(_vm.currentInstanceDescription))]):_vm._e()],1)],1),_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-subheader',[_vm._v(\"Archive by date\")])],1),_c('v-col',[(_vm.isInstanceEditor)?_c('EditableArea',{attrs:{\"value\":_vm.spaceArchivalDate,\"type\":\"date\",\"max\":_vm.furthestArchivalDate,\"apiURL\":'/spaces/' + this.$route.params.sid,\"successMessage\":\"Archival date successfully updated!\",\"editAttr\":\"archive_by_date\",\"editAttrFullName\":\"date of archival\",\"defaultValue\":\"9999-12-31\",\"color\":\"white\",\"showEditIcon\":_vm.isSpaceAdmin && !_vm.currentSpaceArchived,\"id\":parseInt(_vm.$route.params.sid, 10),\"finally\":() => {\n this.$store.dispatch('orgStore/fetchOrgSpaces', this.$route.params.oid)\n }}}):(!_vm.isInstanceEditor)?_c('span',{staticClass:\"secondary--text subtitle-2\"},[_vm._v(_vm._s(_vm.spaceArchivalDate))]):_vm._e()],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","const readmeMdEdu = `### Getting Started with Nuvolos\n\nBelow are useful features of Nuvolos to maximize productivity.\n\n#### Objects\n\nNuvolos can store files, applications (with pre-installed packages / libraries) and tables. You can receive objects from the instructor or create your own (only files and tables).\n\nFiles (multiple or even complete folders) can be downloaded to your local computer if needed. Learn more\n\n#### Snapshots\n\nYou should save your work always in the applications you use. Different saved versions of objects can be stored in **snapshots**. If you accidentally delete or modify an object, you can restore past versions from snapshots. We recommend to **make snapshots often to be able to reverse accidental changes**. Learn more\n\n#### Navigation\n\nUse the top toolbar to navigate. The house icon takes you back to the dashboard. The first selector can be used to switch organizations. The second selector can be used to switch spaces (courses). The third selector switches instances. The last selector can be used to switch snapshots.\n\n![image](data:image/png;base64,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mTNn3i73kEWHQAisPYHrr7++xrlNNtlk7R+eIE8sX7yw3HDmGeXW8y8vZd3pZf0ddy533OW+nXyJmG+++eaby6JFi8qsWTkVuz2r3PLFt5TrzvhhmbLpduUOu9wnvwVrFcKc8AUIp3zeeeeVE044oWJ6/vOfX7bffvuy7rrrdmoDN9xwQ/nGN75RNtpoo/LkJz+5rL/++mXSOJzb3XrrreU3v/lNLbYUWhtvvHHZZpttyh3veMc63+WXX1554FI79LNmlfvc5z7lsssuKxdccEHZeeedy6abblp/tnTp0vLHP/6xDA0Nlfvf//5l2rRpxfieP//888vUqVPLPe95z3L3u9+9/n3BggXl7LPPLjvssEPZbLN/vQP9l7/8pe51u+22qz//+9//Xi699NK6LmMuW7as/P73v6/3WpM1+2/HHXesMvrd735X1llnnTJ9+vRy17vetdz5zndeUUC6/69//WvBdpdddqnz/POf/ywXXXRRHYvTt2fPP+hBD6rz+9nDHvawOvbixYvLhRdeWPdjHfe4xz3qfuxz4cKF5be//W3ZeuutKz+Xez1z73vf+zYpYlensGTz1a9+tbKiY3RtPC4M6MVNN930/3TMfHjPmTOnytnf/UcXcPX5xRdfXB760IfWAsnPyAhnOvaABzygrp2csDYGvbrXve61QsduvPHGqmM+23zzzev26C150g8Bnk7QczpGt/3sT3/6U5XdSB3bdtttqz6xF8+Zy7+N0/wDvbAWhR191Tww9t/+9re69jYenXn4wx9err322rruBz7wgbXZwIY8f+6559b76RhboKvkdc4559R9aIzg4dn58+fX5+mty3PsDT+f4Xy3u92t/mk+NtKaKne6053K/e53v/rcn//852oPd7jDHapdux8rnzXZ0OUtttii/ttasVhvvfWqPbXruuuuqzIyt3VvtdVW9T9zkht7tg987WOnnXaqa6YjmDUOmPm7tbcLP+tnw1OmTCmzZ8+ufPydzDSOzMsnsUP8WzJHzv/4xz/q/vgLtto4XH311XWvOLJlOtP8Ad3jD9xLrmQjgTd2+/wPf/hD5TFSX3BtvnE87Oo/HdM6v/3tbxe28bSnPa2ucTyabGyBHvizydWab7nllqprdOEhD3lIlZ2L3pAheZJNu6yTvmBP99n9FVdcUe2EjPxn/XwBvWUPxvdZ8yfkbWxj+JwOmKfFuf+U5Xg9xza++93vVj1/0pOetMLex2M+Oiuesze+lD6wZ5+zAzbPzuiN2MfvsUm+pHFmp/yg+/hGfsH9/CJ/wXd6zjzsp8mGPPl647iXnPzM2ORrHf7kQ1f2n3SHzNvF9ptt8jd8OV/DD47UEw03OsRvXXXVVXVP/Ky10B223Hx/ywfkgHyln/HDLuPwXWkQ904rJ3QBwlEywhNPPLGePrgY45577lnue9/7rnCUvcM99kjWIhk/44wzakL2jGc8ozrNXhchnP773//+6iTs9ZJLLqnG+rznPa8G8F//+tfl1FNPrU5IYHefIP2Tn/ykfPOb36yJq7VZF2Yf+9jHatLw6le/ujqcb33rWzWwcyQMVxB4/OMfXx7xiEfUIP6BD3ygOtd99tmnBoPPf/7zdR1Pf/rTy/e///16P2dhnY961KNqsv/zn/+8JrNkJbGUKEkEJA4f//jHy2Me85g6NqdlXM7P+sz/0Y9+tAah/fbbrxY+EjhOy3gcEadl/Y973ONq8SFQH3LIIXXvP/rRj8ovf/nLuh5BkzMyv/3rVn34wx+uCZexOavvfOc7NcjvtddeK5LDLnRnTeeQAEj6Tj/99Bo8MB+PkxBO/TOf+UyVE/kJCuZ+0YteVOclTwW/Qk9AETww/sEPflB1YPfdd686I0A1ncH5ta99bdWZk08+uSYo9FLgEMzoymMf+9gafD70oQ/VZIMusKFTTjmlzkPG9FuwZN8CmKTR/L/61a+qnhiLjHWK2YCCg44LWPYlOX/2s5+9Iomnp+ajD/vuu2/dhyJK0SyoKgwkY1hILIz/ta99rRx44IHVzu3XvfbCB0gAjIEBHf30pz9dGbzhDW+owf7rX/965XnAAQdUe3NJHDCZO3dutWEytm77F8w/9alP1f3Scw0F3H/605+Ws846q87rOZ/ZI1aSSImB8dkxmbEndnPcccdVnbH+FojZ1Gc/+9lqh/hL7rHwHJvhN8gDUwnJU57ylGof9vbKV76yrpUtK475BpzaRW8+8pGP1D1KUhUVbH+33XYrn/vc56pe3eUud6lFivU/97nPrUnVl770pSoT9/IL5PaCF7ygrsNeMLIuXMmJjCWzkhQ6Q1fow1e+8pV6v6RJ8oIThnS4JdDk6xkFZit619Qmu7iPfycXvs31nOc8p66z10WIRPSDH/xglT/WEkYXnT/22GOr7R500EE1kWs6+4tf/KLqoMYfe5fEHn/88dU26aA/+Sljsnn7EHfYCOaPfvSjV8Rw8uNv2PODH/zgcswxx1TbkTTSQzZIL8fD5/23csRDkXXSSSdVu3vmM59Z/UOv4795FOX0WtxlU3g+9alPrf6HHYhf/IX4KTfiN8R98ZefIVd+haxe+tKX1jWSu6Sd/fAH4v0TnvCEGj81VtmhfbFVY4sPfIHnPcdP8j3skY2LxWTON4nRZG0847us9Ytf/GK1cXGdDVujMa1NXuMzc2k0PfKRj6zz00Pj+/eznvWs6tPpoLgtLvAP9Mdz/NvRRx9dYzvfi4PmGD3O1RsCE7YAcQIgaEkGKOHIi+JRTsGmBfne4F71KJyD4P/DH/6wBjwG12tlZ5Tve9/7aqDmFCQ5Ark977333nX+M888syYGkjYOXQA77bTTaoLIECU/gsj3vve9mshw7AoQAVtSYRyJneRAoP7xj39cXve619XNc1Qcl2SRw/jCF76wogDhUDAQIFt3vgVJTpPzePGLX1y73S6O7pOf/GQ5+OCDayGg2OAcJSfWzBHpKikejCcoCnItIH/5y18uL3vZy1acxtg7B/vOd76zOj/FkWRJEiZhkqRKnDlJzkghxxFykIpWiT1HZo2tOz1S4vhIHtvpUvsZB85J6jL1OuCsrHHmlvAqriR+gjvn3sur6RQmEspWkNAlekW/BMB3v/vdVS7NxhRwCnAyevvb316ZCMiScvr2+te/vvImc51ccqFjP/vZz6oevvGNb6xJoYLAPtmP+ySadFmCLAnzjH2zLbrQZCVo0aGXvOQlNflxWbsg9MIXvrAW45/4xCeq7N3j2ZZgW6u90H3j+ZmE3T6tq3XGJf0S7Te/+c1135LrXXfdtdoD2ZONIsPP6b658eQP8LR+OkQH8WwFiCBvPIkEPdYIOOyww2ogVhy85jWvqclGO7mxT5eErHEwn7kVUC9/+ctromZM62oJo262MSWNbMMlMZHwW7Mk9PDDD68JJbtg79bO35ib/LCRzGNpHnoo2WFbEpQ2rrHJSqEvYTamJEWjhn7Yl2aDgoWdY/fWt761Jrz0hs8xnjn5eevUXKAL7nWPhJhPJAdjKpLs2X4xldAYR+LT7Lb5JJyOOuqoWoy1U9DR7AgzCZVieeWL3+LPRnZ2e2mLI8eyBvzoL7top2q9mo/sjzjiiFo08GVsHUtyZcP8DPmwZZ1+zaiWAO+///7V3hWidFNSqQlBB0cWSuKQpJautdioqUD+4pI5+Hs6y3b8/RWveEX13Rpr5hntFad2+i0vWPmyXjJq9tYrXqONQ0b2wlbkIO30sVdzStjFNfGeT7MnNoYXXWcHGheK6tYUaPoiceef+RLyY7+ab+RAltarMDS+i23jbj9iNFmSh/hPNuzHOtiXQlHsZY/WxGblZ/IH8qMbIy9jiL/8NP/pmXZq6z6NHX7A2Nbv0oignxoVfKqcpeUZfAB/yU8pal3itVgjjihuyWSsN2PwsB8sV77skf50/VZNr3RmPMeZkAUIJ8OQODMGOdrFWCge5RYkuroYlkDJWarEdUI4wF5dKxcgkgEOXBeAoXMyghQnzVnohgjKiiIGqRAQ8HWHnT4IILoUgg2Dl4QLDs2wdTY4Gz/3mW6s7pQgIlmSTJiL83L6IQGyX8WRLkrreIxVgAhWEpP2GoiCgrELhubSXTE+5yZRUECtSQFiXZI4AcszLk5G0mw+AZYDVPBwlIKln9OnsQoQRY3kUyfPGtqFi2ckbL3uSo6mN+20TWCwD8lILwvdlQsQe1Ug0DEy0H1W/EnayJrT1+1TgLRjfidyTiLIV8AgfzpELpJHpyFNNzh+gZPesW2dT/pjHqdVuqYSvCc+8Ym1KJUss2/dLE2GNs5YBYgk0wmLgCyg7rHHHrXAxlGwNbbOGZ9ifwLemhQg7hHgBGqJtAs7XUgFkgRR0c02FOrW0LqCoxUgil/rUpDhyp6dRmJoLIGQP2O7TgRwsAasFGc4sD/Pu1/R5LRH8CcXa5W00F8cFYSe4a80MciRLHBvDQxyIcuRr2zZp2RH0sK34IelvfG5/EK7BHQFpf0oevhsflEzQRfV55IQzRHJmlM2voosdVeb79bdpHPvec97apK6cgGiyFEIWYs927v90kHrGa0xsDYFiGJG4c2/t4sOOulq3dle+fixxlFA8dUKL75do4dv61XToxUgZKLApH+6x3TDn2T+lre8pcpMYulUXXwRb+gf3bUWDStytjbJYDuBtq+xChAnc/SC7SnUPSvuKGz5ZnMZ25pGi6cKEI0K9430zfRbDLaOLpqRZMRf0RfrpIvtdeVe6IdTFv6ATxGHR17mXV0BIiaKF2yePCXxuErs+VO+gv8QF/lbctaEcRpK3/kIsYZs3GtOTQJ2RrZrWoDgpMiQR7BVJ5bttWx7WrkAIVP+mR+wBg0JPtbpWHsFbLQCBCv74zv5MI2i0S6xX45h/JFFCP/DZ/KxKUD+ndyELEAEO8ZD4XULKWALVJIMyi3pkWhIsNs7q71wAKsbo30ZXddIMBRoV67+VzfGqn4+WgHCYUiiOWfJBUNtXQXJCicswEvuJNiCC2OXDHI0kjIJh+LFqcjIjq9TComCnwv8Tkh0WCQA7T15Y3G0grMAqZDRMeP0/Yf/WAUIh8l5ec6JimDO0CUHuq/t1RNy5hAlOOTN8a3qBMTaBAEdFImNSwGmuytocpoKEB1vR9gcoUKCo9JVHu0EhGyxU4R4/YujEig5RMVHV3pmHbro1iEo0PNevjoyWgFCf8hUgk722Cvk6IQOOftTgFibbhhdoHuSNsGFTuq2SXzpq8DXXgHymaRdciMJ0hmX1NNP+iyQK0Tph0sQpmNOI+iLEzM6MVYBIjklJ8m8olgAlozQOfrMR+Ao8WY3/nOt7gTEPQKcolnH19USfcmhxMOp4Kte9apqYxIze6FbbGzkCYjCwfrplGDLxiTU9Fiwt/f2PQl/uqd9V4XutteXJGG42YNEATfz8A8SCa8Zka+9sWm2Zw7Fvj1ggo+AqxPOBiU7nht58b8KOwFdcsq3WIckdOUTEIWKAK+xwBb5HIkm9k4XyNxa6ZO9KUCsiT9r3U9jSzoUIPRmtBMQ66SP9sGHKGTJ1uejNQbWtACxbydp9Ns6rJe+S4Dsv4vOujWQuXXQFbJh95j2sgA58sgjq84Yn1wVmOyNf2HLbLSxdY8EUJPKpaAlGydFdJk9kaMClo8gg7EKEL6a3pE3XWYn9J5v5pcVGIpTTY/RZNnYSFw1S/gfMlJ8klEXJ1RNRpppXn2yZsVP8w3/Tdxvz4o/fA4bY5MjZT9aAcLmyQRb8Z0NaU6IhQo98uOvvVXhc/6LT1BYkwVfLTEX3/lIsiF/stG0oSsaIZqE9OFtb3vbGp2A2I/isjU86FBbz2gFCJYKYfkdnbcXOqnxR7ZjnYBosuKvQeR+cX+0i/7wUWyrfT+MT7JvhUtX+tMLHelyjAlZgADMwTAMDk3QErAlPzopHIAAKjHoousxUuAtQZVICHy9fi2nFSA6wzpLDJJhCrQSYRW8ZEeyJzBy1hgI6pgxQF1ZTkTihh2GkhGOSNeQ09StbK/HSDwd2yr82nvfihoBXoHCGTJUa2lfPJZwcnKSfYFgVa9gKRLc71ldT8auq2Yf7QutnJsE34mG4LS6AoQO4KLr3L7wKzDhoPtsDgUIHcFEQi3A0hvJ72gFSJOzBE5RRtb0TgHWqyRgdc6Do6QDAonkjcytv5fz258iQILFaZsHS0GGwycXgU3HSXJAx8jGiYy/66QJkv7utM095EnHfCZxVZi6j05JzBUUXsGgM9gqUFqnTeEgIBqLDjcdI0trpWPmX9UrWIKbbh49UhAIppJ1ui3Rb8UDHbYvtrO6AoQOKW7sQ5fWutifU0SvqtgbWzOfS1OCjkminPaM9gqW4O+0hE0pliRwZGGM9gsaPOe0hF3TU7pg75JDMmBr9JrduUdx4KSHTbQTREmlDqrCBl9JhOKSHbTXXiSSTi/MS898bizz48hX8As617gZw72regWr2RU58iXsW3JgzxJVBYwEoDUXJDkSfnukG9aIs+KT/O3Z5xoZXhORNPt5+z4b/6SQkYTxZ/bQuK9NAdISJjJ00stHSgC7jC+aR3w1ndCMaV+oX53PWNOf46wAEVfYuiRaTNVEI1+nC3jTI76fLokjntNE4JslpJLF9n0QCZ2x2C5WYxUgirtWwNAR9yqKjeNZrwvxR2xtVb65/aIOjQtFOP3u4lS6MSYjbz80GbGxXs7PF/MpdJxNioVsiS9yAslexWIy5BvpK5tsBYg4y858zg8pYvkSTQI5RfuuDn9DvgoQsuHP+BPs2+txihE5hOaUkxXFvzcM1uQVrPaLJppPEV80rIxn/JVPQDRV6GN77RAHTTgnLvZHJ0c7AaE39ACP5hdWdZJBlzWNNBg1kVanb2tqW4N6XwqQ006rSslAOEuVvMSw6wKkvRftHW+GzwkIrr10Pi1Jssf2ZUtJAkfBwXD0kkPJns84C59Zi9dnOCqvrEgUWjD3p6RFcmhMz7tXYeJ+wUTyp4Ml8W0FiPEFcP/mZAUH8+qgCh4cgjVJKKxjdd8BsQ+G711NiZdC0riKB45DwqTrogtmLZzPqk5AODbJJeeJgTF0OHTDdGA53VaACJo6bZyVo2ZF0KqCHDlIwBRsEqRey3gsZ0XHcKBjeOE7HjpGf7GWQAsm9EAhYj4dUYUc9hJHnJ3wCWoSb9wEfXqhQy8poUM6nHRMUeE+iTgdktCSCx1VyHm1qBUgimpyNhaZec1DsNN9p2N014mYRHBVJyDtOyD24guydLutUSHUuvv0WcesvUO9ugIEEzom4ZD4uugEHaPDdKwVIGxLcJdUWfub3vSmUQsQAVhBJgmX3PNlTock+ZIM87DHVoD6jM05CcJCU0ahJSgLtOwdZwm+Qo2u0yMnivRIQs9W23dA2Lg1G8uz5CHwYycBIS/sJPS9KEDokOLNa0VkLfEhS0wlAU6RcGS/XoXwJ3+l4FJ4O63UjFAIYoStdfqODz02rv1JjugzTjqa5ljbAqSdhPAVkrcuiw82JCmT2OrqOxnu9fwjCxCc6J3CQ5KnQaAA0bxh/xhgTy8kgxJYuqXp5mRWIo6xP/ns1iRZ1StY7qGz5Cj5U+TwL/yx77zxGXTAPKu6rIfv0SlfnR/vZWKo+GFTbIZO+x5Gr1/bYbv8nwaQfEcjhX/mE9g59uyBn6DvTsyccowsQNgY+2EbChDPKeDJTlHBR+Lm7QB+yFzijM/aa+V8qnsVh3RTQWPfhx566BoVIPyIxkp7pZGeKHTbq6wjCxA61ophPowP4BPopzcPNAPEkFW9gsX++QW+a1Xf96IPxhZn22/r66WODNpYE7oAYewqesf6Xmlo7xsL9BJZ3dquXoth6AyaMTJ2ydN4OD+Gq2PpT4bIASnA2nvw7bdJtfcYGR2j9jnnJYGUZHDSHD6nKcnx99Yt5cB8hp2x8bUXAaq98ynxMQenYw6JAu4CE8cn0TRm6za2jgUH1n6LCafjeYZubn/nVM0nqfJ8O/o0pn0rJjhX6xZkcG73cELmd+RqvZwbZ20v9m7cJhcJvC8MmsN62vdKMHVPL08UeuV08OeIOUiOtP1GoF6N38bBjSzo8so65t+Kr/ZrFj2Dv6SAXrkENA6cjBR0WPt30zH/JpdWrEqWm47REzrmOXpFx9zbkm967LnRdEyypNA1T3u9y14EW3OwEeuWmPq3cdrrV9bNpiS9CpT2Kx7dz36aHtOxltwYz/j2Ziy667n22qfxrN1e2hfb7c3nkqNWuNI9eostO2pfFG+/2tSe2nvt5pQMWAe9xtJefWaN1sEO24Urdoo1gbf5Q7YnAbe3ltS013mssSWCxjGPPdqr0yz7cdERY1pTk5O/t+9cucfY1m9tmDe78rnndXDdbz/tt4D5rDGga/7Nb7iPTvEDrvZre9uXxNuXzO1RkwJzsjaPe9g5Tl4tsQ6fNQZdfk9wbe2Vriu8FR8KZk2dXhcf1oSfkwy+u/2GRXJt+sa+MacLdKr9lieyxNFFN8iR3IxnHLJrsZAeKgjpWtNFNs1G20U+9JIespEWp9zD9/fj/2eDTWusOHHT0NA463Xx0fjgShYKdjGBTZILmTSdth6xHnf/sR3+vPmBZn/03n3kx3cZyz3GJ/ef5RMQAAAEKUlEQVQWt0fKxudkwZ6arZMpmYsDZNZeafJ58/sj9b59V8bPXWQq12h6wofJqVqx0OZr36fxPLs2F53jm7A3Rvt/5fCNfA9GLvrGp/b6l7asrT0P0v0TtgBp37VgLIIeh9aCnSClK9t+l30XAmcAugUMstevxHSx/pXnaAlPPybia8tjUPYiGXAULUiM/H8irC2Pfrl/UOTSEm1/dm0vGHYx520lK37e/v7bPXbFaTxsy9q9I68Q8YpeVyeu47GXQR2Tb1YwKey9SjRexcdocfq/tY1BlUn2Nf4EJmwBMv5oM0MIhEAIhEAIhEAIhEAIhMDKBFKARCdCIARCIARCIARCIARCIAQ6I5ACpDPUmSgEQiAEQiAEQiAEQiAEQiAFSHQgBEIgBEIgBEIgBEIgBEKgMwIpQDpDnYlCIARCIARCIARCIARCIARSgEQHQiAEQiAEQiAEQiAEQiAEOiOQAqQz1JkoBEIgBEIgBEIgBEIgBEIgBUh0IARCIARCIARCIARCIARCoDMCKUA6Q52JQiAEQiAEQiAEQiAEQiAEUoBEB0IgBEIgBEIgBEIgBEIgBDojkAKkM9SZKARCIARCIARCIARCIARCIAVIdCAEQiAEQiAEQiAEQiAEQqAzAn1RgAwNDXW24UwUAiEQAiEQAiEQAiEQArdXApMmTSqTJ0++vS6/rrsvCpBLL730dg0xiw+BEAiBEAiBEAiBEAiBLghMmzatzJ49u4upxm2OvihAxm13GTgEQiAEQiAEQiAEQiAEQqCvCKQA6StxZDEhEAIhEAIhEAIhEAIhMNgEUoAMtnyzuxAIgRAIgRAIgRAIgRDoKwIpQPpKHFlMCIRACIRACIRACIRACAw2gRQggy3f7C4EQiAEQiAEQiAEQiAE+opACpC+EkcWEwIhEAIhEAIhEAIhEAKDTSAFyGDLN7sLgRAIgRAIgRAIgRAIgb4ikAKkr8SRxYRACIRACIRACIRACITAYBNIATLY8s3uQiAEQiAEQiAEQiAEQqCvCKQA6StxZDEhEAIhEAIhEAIhEAIhMNgEUoAMtnyzuxAIgRAIgRAIgRAIgRDoKwIpQPpKHFlMCIRACIRACIRACIRACAw2gRQggy3f7C4EQiAEQiAEQiAEQiAE+opACpC+EkcWEwIhEAIhEAIhEAIhEAKDTSAFyGDLN7sLgRAIgRAIgRAIgRAIgb4ikAKkr8SRxYRACIRACIRACIRACITAYBNIATLY8s3uQiAEQiAEQiAEQiAEQqCvCKQA6StxZDEhEAIhEAIhEAIhEAIhMNgEUoAMtnyzuxAIgRAIgRAIgRAIgRDoKwIpQPpKHFlMCIRACIRACIRACIRACAw2gRQggy3f7C4EQiAEQiAEQiAEQiAE+opACpC+EkcWEwIhEAIhEAIhEAIhEAKDTeD/APGCcFjlLLLqAAAAAElFTkSuQmCC)\n\n#### Applications\n\nYou can interact with files / tables in Nuvolos via applications. Applications are automatically stopped if closed & idle for a given time. If you need to restart an application, stop it via the Nuvolos interface and start it again. Learn more\n\n#### Assignments\n\nYour instructor can create assignments for you. You can hand in your solutions through Nuvolos until the deadline of the assignment. Only **the latest version will be graded**. You can also review the graded version on Nuvolos directly. Learn more`\n\nconst readmeMdRes = `### Getting Started with Nuvolos\n\nBelow are useful features of Nuvolos to maximize productivity.\n\n#### Objects\n\nNuvolos can store files, applications (with pre-installed packages / libraries) and tables. You can distribute objects across spaces and instances for sharing results or data. Learn more\n\nFiles (multiple or even complete folders) can be downloaded to your local computer if needed. Learn more\n\n#### Snapshots\n\nYou should save your work always in the applications you use. Different saved versions of objects can be stored in **snapshots**. If you accidentally delete or modify an object, you can restore past versions from snapshots. Snapshots are automatically created every week if you run applications, however we recommend to **make snapshots often to be able to reverse accidental changes**. Learn more\n\n##### Creating an instance from a snapshot\n\nSnapshots can also be used to create a new instance to test out an idea in a completely independent \"sandbox\". Learn more\n\n#### Synchronizing Data\n\n###### Dropbox\n\nYou can synchronize data with Nuvolos via Dropbox. Learn more\n\n###### Git\n\nGit is also fully supported, make sure to follow our configuraiton guide for the optimal experience. Learn more\n\n#### Navigation\n\nUse the top toolbar to navigate. The house icon takes you back to the dashboard. The first selector can be used to switch organizations. The second selector can be used to switch spaces (research projects). The third selector switches instances. The last selector can be used to switch snapshots.\n\n![image](data:image/png;base64,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mTNn3i73kEWHQAisPYHrr7++xrlNNtlk7R+eIE8sX7yw3HDmGeXW8y8vZd3pZf0ddy533OW+nXyJmG+++eaby6JFi8qsWTkVuz2r3PLFt5TrzvhhmbLpduUOu9wnvwVrFcKc8AUIp3zeeeeVE044oWJ6/vOfX7bffvuy7rrrdmoDN9xwQ/nGN75RNtpoo/LkJz+5rL/++mXSOJzb3XrrreU3v/lNLbYUWhtvvHHZZpttyh3veMc63+WXX1554FI79LNmlfvc5z7lsssuKxdccEHZeeedy6abblp/tnTp0vLHP/6xDA0Nlfvf//5l2rRpxfieP//888vUqVPLPe95z3L3u9+9/n3BggXl7LPPLjvssEPZbLN/vQP9l7/8pe51u+22qz//+9//Xi699NK6LmMuW7as/P73v6/3WpM1+2/HHXesMvrd735X1llnnTJ9+vRy17vetdz5zndeUUC6/69//WvBdpdddqnz/POf/ywXXXRRHYvTt2fPP+hBD6rz+9nDHvawOvbixYvLhRdeWPdjHfe4xz3qfuxz4cKF5be//W3ZeuutKz+Xez1z73vf+zYpYlensGTz1a9+tbKiY3RtPC4M6MVNN930/3TMfHjPmTOnytnf/UcXcPX5xRdfXB760IfWAsnPyAhnOvaABzygrp2csDYGvbrXve61QsduvPHGqmM+23zzzev26C150g8Bnk7QczpGt/3sT3/6U5XdSB3bdtttqz6xF8+Zy7+N0/wDvbAWhR191Tww9t/+9re69jYenXn4wx9err322rruBz7wgbXZwIY8f+6559b76RhboKvkdc4559R9aIzg4dn58+fX5+mty3PsDT+f4Xy3u92t/mk+NtKaKne6053K/e53v/rcn//852oPd7jDHapdux8rnzXZ0OUtttii/ttasVhvvfWqPbXruuuuqzIyt3VvtdVW9T9zkht7tg987WOnnXaqa6YjmDUOmPm7tbcLP+tnw1OmTCmzZ8+ufPydzDSOzMsnsUP8WzJHzv/4xz/q/vgLtto4XH311XWvOLJlOtP8Ad3jD9xLrmQjgTd2+/wPf/hD5TFSX3BtvnE87Oo/HdM6v/3tbxe28bSnPa2ucTyabGyBHvizydWab7nllqprdOEhD3lIlZ2L3pAheZJNu6yTvmBP99n9FVdcUe2EjPxn/XwBvWUPxvdZ8yfkbWxj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)\n\n#### Applications\n\nYou can interact with files / tables in Nuvolos via applications. Applications are **automatically stopped if closed & idle for a given time**. If you need to restart an application, stop it via the Nuvolos interface and start it again. Learn more`\n\nconst readmeMdData = `### Getting Started with Nuvolos\n\nBelow are useful features of Nuvolos to maximize productivity.\n\n#### Objects\n\nNuvolos can store files, applications (with pre-installed packages / libraries) and tables. You can distribute objects across spaces and instances for sharing results or data. Learn more\n\nFiles (multiple or even complete folders) can be downloaded to your local computer if needed. Learn more\n\n#### Snapshots\n\nYou should save your work always in the applications you use. Different saved versions of objects can be stored in **snapshots**. If you accidentally delete or modify an object, you can restore past versions from snapshots. Snapshots are automatically created every week if you run applications, however we recommend to **make snapshots often to be able to reverse accidental changes**. Learn more\n\n#### Synchronizing Data\n\n###### Dropbox\n\nYou can synchronize data with Nuvolos via Dropbox. Learn more\n\n###### Git\n\nGit is also fully supported, make sure to follow our configuraiton guide for the optimal experience. Learn more\n\n#### Uploading data to tables\n\nTabular data can be uploaded to the database backend of Nuvolos. This has a number of advantages:\n\n- Typed data: querying data will return a dataframe with the correct types\n- Cross-application support: multiple applications can access the same dataset conveniently\n- Large datasets: it's easy to access parts of very large datasets for analysis or to run aggregations before importing into an application.\n- Documentation: you can document columns and tables in Nuvolos, which can help other make use of a dataset.\n\nLearn more\n`\nexport { readmeMdEdu, readmeMdRes, readmeMdData }\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!./TheSnapshotOverview.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!./TheSnapshotOverview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheSnapshotOverview.vue?vue&type=template&id=590c13ba&\"\nimport script from \"./TheSnapshotOverview.vue?vue&type=script&lang=js&\"\nexport * from \"./TheSnapshotOverview.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","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Applicationable('left', [\n 'isActive',\n 'isMobile',\n 'miniVariant',\n 'expandOnHover',\n 'permanent',\n 'right',\n 'temporary',\n 'width',\n ]),\n Colorable,\n Dependent,\n Mobile,\n Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\n },\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n props: {\n bottom: Boolean,\n clipped: Boolean,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default (): string {\n return this.app ? '100vh' : '100%'\n },\n },\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 56,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n stateless: Boolean,\n tag: {\n type: String,\n default (): string {\n return this.app ? 'nav' : 'aside'\n },\n },\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n value: null as unknown as PropType,\n },\n\n data: () => ({\n isMouseover: false,\n touchArea: {\n left: 0,\n right: 0,\n },\n stackMinZIndex: 6,\n }),\n\n computed: {\n /**\n * Used for setting an app value from a dynamic\n * property. Called from applicationable.js\n */\n applicationProperty (): string {\n return this.right ? 'right' : 'left'\n },\n classes (): object {\n return {\n 'v-navigation-drawer': true,\n 'v-navigation-drawer--absolute': this.absolute,\n 'v-navigation-drawer--bottom': this.bottom,\n 'v-navigation-drawer--clipped': this.clipped,\n 'v-navigation-drawer--close': !this.isActive,\n 'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-navigation-drawer--floating': this.floating,\n 'v-navigation-drawer--is-mobile': this.isMobile,\n 'v-navigation-drawer--is-mouseover': this.isMouseover,\n 'v-navigation-drawer--mini-variant': this.isMiniVariant,\n 'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n 'v-navigation-drawer--open': this.isActive,\n 'v-navigation-drawer--open-on-hover': this.expandOnHover,\n 'v-navigation-drawer--right': this.right,\n 'v-navigation-drawer--temporary': this.temporary,\n ...this.themeClasses,\n }\n },\n computedMaxHeight (): number | null {\n if (!this.hasApp) return null\n\n const computedMaxHeight = (\n this.$vuetify.application.bottom +\n this.$vuetify.application.footer +\n this.$vuetify.application.bar\n )\n\n if (!this.clipped) return computedMaxHeight\n\n return computedMaxHeight + this.$vuetify.application.top\n },\n computedTop (): number {\n if (!this.hasApp) return 0\n\n let computedTop = this.$vuetify.application.bar\n\n computedTop += this.clipped\n ? this.$vuetify.application.top\n : 0\n\n return computedTop\n },\n computedTransform (): number {\n if (this.isActive) return 0\n if (this.isBottom) return 100\n return this.right ? 100 : -100\n },\n computedWidth (): string | number {\n return this.isMiniVariant ? this.miniVariantWidth : this.width\n },\n hasApp (): boolean {\n return (\n this.app &&\n (!this.isMobile && !this.temporary)\n )\n },\n isBottom (): boolean {\n return this.bottom && this.isMobile\n },\n isMiniVariant (): boolean {\n return (\n !this.expandOnHover &&\n this.miniVariant\n ) || (\n this.expandOnHover &&\n !this.isMouseover\n )\n },\n isMobile (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n Mobile.options.computed.isMobile.call(this)\n )\n },\n reactsToClick (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n )\n },\n reactsToMobile (): boolean {\n return (\n this.app &&\n !this.disableResizeWatcher &&\n !this.permanent &&\n !this.stateless &&\n !this.temporary\n )\n },\n reactsToResize (): boolean {\n return !this.disableResizeWatcher && !this.stateless\n },\n reactsToRoute (): boolean {\n return (\n !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n )\n },\n showOverlay (): boolean {\n return (\n !this.hideOverlay &&\n this.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n return {\n height: convertToUnit(this.height),\n top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n maxHeight: this.computedMaxHeight != null\n ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n : undefined,\n transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n width: convertToUnit(this.computedWidth),\n }\n },\n },\n\n watch: {\n $route: 'onRouteChange',\n isActive (val) {\n this.$emit('input', val)\n },\n /**\n * When mobile changes, adjust the active state\n * only when there has been a previous value\n */\n isMobile (val, prev) {\n !val &&\n this.isActive &&\n !this.temporary &&\n this.removeOverlay()\n\n if (prev == null ||\n !this.reactsToResize ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) this.isActive = true\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n value (val) {\n if (this.permanent) return\n\n if (val == null) {\n this.init()\n return\n }\n\n if (val !== this.isActive) this.isActive = val\n },\n expandOnHover: 'updateMiniVariant',\n isMouseover (val) {\n this.updateMiniVariant(!val)\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n const parent = this.$el.parentNode as Element\n\n if (!parent) return\n\n const parentRect = parent.getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50,\n }\n },\n closeConditional () {\n return this.isActive && !this._isDestroyed && this.reactsToClick\n },\n genAppend () {\n return this.genPosition('append')\n },\n genBackground () {\n const props = {\n height: '100%',\n width: '100%',\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img(props)\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__image',\n }, [image])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [{\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n }]\n\n if (!this.touchless && !this.stateless) {\n directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight,\n },\n } as any)\n }\n\n return directives\n },\n genListeners () {\n const on: Record void> = {\n mouseenter: () => (this.isMouseover = true),\n mouseleave: () => (this.isMouseover = false),\n transitionend: (e: Event) => {\n if (e.target !== e.currentTarget) return\n this.$emit('transitionend', e)\n\n // IE11 does not support new Event('resize')\n const resizeEvent = document.createEvent('UIEvents')\n resizeEvent.initUIEvent('resize', true, false, window, 0)\n window.dispatchEvent(resizeEvent)\n },\n }\n\n if (this.miniVariant) {\n on.click = () => this.$emit('update:mini-variant', false)\n }\n\n return on\n },\n genPosition (name: 'prepend' | 'append') {\n const slot = getSlot(this, name)\n\n if (!slot) return slot\n\n return this.$createElement('div', {\n staticClass: `v-navigation-drawer__${name}`,\n }, slot)\n },\n genPrepend () {\n return this.genPosition('prepend')\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__content',\n }, this.$slots.default)\n },\n genBorder () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__border',\n })\n },\n init () {\n if (this.permanent) {\n this.isActive = true\n } else if (this.stateless ||\n this.value != null\n ) {\n this.isActive = this.value\n } else if (!this.temporary) {\n this.isActive = !this.isMobile\n }\n },\n onRouteChange () {\n if (this.reactsToRoute && this.closeConditional()) {\n this.isActive = false\n }\n },\n swipeLeft (e: TouchWrapper) {\n if (this.isActive && this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (this.right &&\n e.touchstartX >= this.touchArea.right\n ) this.isActive = true\n else if (!this.right && this.isActive) this.isActive = false\n },\n swipeRight (e: TouchWrapper) {\n if (this.isActive && !this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (!this.right &&\n e.touchstartX <= this.touchArea.left\n ) this.isActive = true\n else if (this.right && this.isActive) this.isActive = false\n },\n /**\n * Update the application layout\n */\n updateApplication () {\n if (\n !this.isActive ||\n this.isMobile ||\n this.temporary ||\n !this.$el\n ) return 0\n\n const width = Number(this.miniVariant ? this.miniVariantWidth : this.width)\n\n return isNaN(width) ? this.$el.clientWidth : width\n },\n updateMiniVariant (val: boolean) {\n if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genPrepend(),\n this.genContent(),\n this.genAppend(),\n this.genBorder(),\n ]\n\n if (this.src || getSlot(this, 'img')) children.unshift(this.genBackground())\n\n return h(this.tag, this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n directives: this.genDirectives(),\n on: this.genListeners(),\n }), children)\n },\n})\n"],"sourceRoot":""}