{"version":3,"sources":["C:/Repos/seeya/src/$_lazy_route_resource lazy","C:/Repos/seeya/src/app/app-routing.module.ts","C:/Repos/seeya/src/app/app.component.css","C:/Repos/seeya/src/app/app.component.html","C:/Repos/seeya/src/app/app.component.ts","C:/Repos/seeya/src/app/app.module.ts","C:/Repos/seeya/src/app/generator/add-edit-link-dialog/add-edit-link-dialog.component.css","C:/Repos/seeya/src/app/generator/add-edit-link-dialog/add-edit-link-dialog.component.html","C:/Repos/seeya/src/app/generator/add-edit-link-dialog/add-edit-link-dialog.component.ts","C:/Repos/seeya/src/app/generator/add-edit-scene-dialog/add-edit-scene-dialog.component.css","C:/Repos/seeya/src/app/generator/add-edit-scene-dialog/add-edit-scene-dialog.component.html","C:/Repos/seeya/src/app/generator/add-edit-scene-dialog/add-edit-scene-dialog.component.ts","C:/Repos/seeya/src/app/generator/add-flag-dialog/add-flag-dialog.component.css","C:/Repos/seeya/src/app/generator/add-flag-dialog/add-flag-dialog.component.html","C:/Repos/seeya/src/app/generator/add-flag-dialog/add-flag-dialog.component.ts","C:/Repos/seeya/src/app/generator/add-scene/add-scene.component.css","C:/Repos/seeya/src/app/generator/add-scene/add-scene.component.html","C:/Repos/seeya/src/app/generator/add-scene/add-scene.component.ts","C:/Repos/seeya/src/app/generator/export-game-dialog/export-game-dialog.component.css","C:/Repos/seeya/src/app/generator/export-game-dialog/export-game-dialog.component.html","C:/Repos/seeya/src/app/generator/export-game-dialog/export-game-dialog.component.ts","C:/Repos/seeya/src/app/generator/flag/flag.component.css","C:/Repos/seeya/src/app/generator/flag/flag.component.html","C:/Repos/seeya/src/app/generator/flag/flag.component.ts","C:/Repos/seeya/src/app/generator/generator.component.css","C:/Repos/seeya/src/app/generator/generator.component.html","C:/Repos/seeya/src/app/generator/generator.component.ts","C:/Repos/seeya/src/app/generator/generator.module.ts","C:/Repos/seeya/src/app/generator/import-export-game/import-export-game.component.css","C:/Repos/seeya/src/app/generator/import-export-game/import-export-game.component.html","C:/Repos/seeya/src/app/generator/import-export-game/import-export-game.component.ts","C:/Repos/seeya/src/app/generator/import-game-dialog/import-game-dialog.component.css","C:/Repos/seeya/src/app/generator/import-game-dialog/import-game-dialog.component.html","C:/Repos/seeya/src/app/generator/import-game-dialog/import-game-dialog.component.ts","C:/Repos/seeya/src/app/generator/link/link.component.css","C:/Repos/seeya/src/app/generator/link/link.component.html","C:/Repos/seeya/src/app/generator/link/link.component.ts","C:/Repos/seeya/src/app/generator/scene/scene.component.css","C:/Repos/seeya/src/app/generator/scene/scene.component.html","C:/Repos/seeya/src/app/generator/scene/scene.component.ts","C:/Repos/seeya/src/app/generator/scene/scene.service.ts","C:/Repos/seeya/src/app/home/home.component.css","C:/Repos/seeya/src/app/home/home.component.html","C:/Repos/seeya/src/app/home/home.component.ts","C:/Repos/seeya/src/app/home/home.module.ts","C:/Repos/seeya/src/app/runner/game-runner/game-runner.component.css","C:/Repos/seeya/src/app/runner/game-runner/game-runner.component.html","C:/Repos/seeya/src/app/runner/game-runner/game-runner.component.ts","C:/Repos/seeya/src/app/runner/import-game-dialog/import-game-dialog.component.css","C:/Repos/seeya/src/app/runner/import-game-dialog/import-game-dialog.component.html","C:/Repos/seeya/src/app/runner/import-game-dialog/import-game-dialog.component.ts","C:/Repos/seeya/src/app/runner/import-game/import-game.component.css","C:/Repos/seeya/src/app/runner/import-game/import-game.component.html","C:/Repos/seeya/src/app/runner/import-game/import-game.component.ts","C:/Repos/seeya/src/app/runner/runner.component.css","C:/Repos/seeya/src/app/runner/runner.component.html","C:/Repos/seeya/src/app/runner/runner.component.ts","C:/Repos/seeya/src/app/runner/runner.module.ts","C:/Repos/seeya/src/app/runner/scene/scene.component.css","C:/Repos/seeya/src/app/runner/scene/scene.component.html","C:/Repos/seeya/src/app/runner/scene/scene.component.ts","C:/Repos/seeya/src/app/runner/scene/scene.service.ts","C:/Repos/seeya/src/app/shared/factories/flag-factory.ts","C:/Repos/seeya/src/app/shared/factories/flag-reference-factory.ts","C:/Repos/seeya/src/app/shared/factories/game-factory.ts","C:/Repos/seeya/src/app/shared/factories/link-factory.ts","C:/Repos/seeya/src/app/shared/factories/scene-factory.ts","C:/Repos/seeya/src/app/shared/models/flag-model.ts","C:/Repos/seeya/src/app/shared/models/flag-reference-model.ts","C:/Repos/seeya/src/app/shared/models/game-model.ts","C:/Repos/seeya/src/app/shared/models/link-model.ts","C:/Repos/seeya/src/app/shared/models/scene-model.ts","C:/Repos/seeya/src/app/shared/shared.module.ts","C:/Repos/seeya/src/environments/environment.ts","C:/Repos/seeya/src/main.ts"],"names":[],"mappings":"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","file":"main.bundle.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"../../../../../src/$$_lazy_route_resource lazy recursive\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/$$_lazy_route_resource lazy\n// module id = ../../../../../src/$$_lazy_route_resource lazy recursive\n// module chunks = main","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { HomeComponent } from './home/home.component';\r\nimport { GeneratorComponent } from './generator/generator.component';\r\nimport { RunnerComponent } from './runner/runner.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', component: HomeComponent },\r\n { path: 'generator', component: GeneratorComponent },\r\n { path: 'runner', component: RunnerComponent }\r\n];\r\n\r\n@NgModule({\r\n imports: [ RouterModule.forRoot(routes)],\r\n exports: [ RouterModule ]\r\n})\r\nexport class AppRoutingModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/app-routing.module.ts","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".container {\\r\\n width: 100%;\\r\\n margin: auto;\\r\\n}\\r\\n\\r\\n@media (min-width: 480px) {\\r\\n .container {\\r\\n width: 80%;\\r\\n }\\r\\n}\\r\\n\\r\\n@media (min-width: 1080px) {\\r\\n .container {\\r\\n width: 60%;\\r\\n }\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/app.component.css\n// module id = ../../../../../src/app/app.component.css\n// module chunks = main","module.exports = \"
\\r\\n \\r\\n \\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/app.component.html\n// module id = ../../../../../src/app/app.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'seeya-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent {\r\n // Not thrilled about maintaining routes in two places...\r\n routes = [\r\n { path: './', label: 'Home' },\r\n { path: 'generator', label: 'Generator' },\r\n { path: 'runner', label: 'Runner' }\r\n ];\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/app.component.ts","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { FlexLayoutModule, MediaService } from '@angular/flex-layout';\r\n\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\n\r\nimport { AppRoutingModule } from './/app-routing.module';\r\n\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { HomeModule } from './home/home.module';\r\nimport { GeneratorModule } from './generator/generator.module';\r\nimport { RunnerModule } from './runner/runner.module';\r\n\r\nimport { AppComponent } from './app.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n NoopAnimationsModule,\r\n AppRoutingModule,\r\n SharedModule,\r\n HomeModule,\r\n GeneratorModule,\r\n RunnerModule,\r\n MatTabsModule,\r\n FlexLayoutModule\r\n ],\r\n providers: [ MediaService ],\r\n bootstrap: [ AppComponent ]\r\n})\r\nexport class AppModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/app.module.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-width {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.align-right {\\r\\n text-align: right;\\r\\n display: block;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/add-edit-link-dialog/add-edit-link-dialog.component.css\n// module id = ../../../../../src/app/generator/add-edit-link-dialog/add-edit-link-dialog.component.css\n// module chunks = main","module.exports = \"

{{editMode ? \\\"Edit Link\\\" : \\\"Add Link\\\"}}

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{scene.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{flag.name}} (Scene #{{flag.sceneId}})\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Cancel\\r\\n {{editMode ? \\\"Save\\\" : \\\"Add Link\\\"}}\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/add-edit-link-dialog/add-edit-link-dialog.component.html\n// module id = ../../../../../src/app/generator/add-edit-link-dialog/add-edit-link-dialog.component.html\n// module chunks = main","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\nimport { SceneService } from '../scene/scene.service';\r\n\r\nimport { LinkFactory } from '../../shared/factories/link-factory';\r\n\r\nimport { SceneModel } from '../../shared/models/scene-model';\r\nimport { LinkModel } from '../../shared/models/link-model';\r\nimport { FlagModel } from '../../shared/models/flag-model';\r\nimport { FlagReferenceModel } from '../../shared/models/flag-reference-model';\r\n\r\n@Component({\r\n selector: 'seeya-add-edit-link-dialog',\r\n templateUrl: './add-edit-link-dialog.component.html',\r\n styleUrls: ['./add-edit-link-dialog.component.css']\r\n})\r\nexport class AddEditLinkDialogComponent implements OnInit {\r\n lf: LinkFactory;\r\n\r\n displayText: string;\r\n toSceneId: number;\r\n fromSceneId: number;\r\n requiredFlags: FlagModel[];\r\n requiredFlagReferences: FlagReferenceModel[];\r\n\r\n editMode: boolean;\r\n\r\n private linkedSceneIds: number[];\r\n\r\n constructor(\r\n public sceneService: SceneService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.lf = new LinkFactory();\r\n\r\n this.editMode = data.editMode;\r\n\r\n if (this.editMode) {\r\n this.toSceneId = data.link.toSceneId;\r\n this.fromSceneId = data.link.fromSceneId;\r\n this.displayText = data.link.displayText;\r\n this.requiredFlagReferences = data.link.flagReferences;\r\n\r\n this.requiredFlags = new Array();\r\n\r\n this.requiredFlagReferences.map(rfr => {\r\n this.requiredFlags.push(this.sceneService.getFlag(\r\n rfr.id,\r\n rfr.sceneId\r\n ));\r\n });\r\n } else {\r\n this.displayText = '';\r\n this.fromSceneId = data.fromSceneId;\r\n\r\n this.linkedSceneIds = data.linkedSceneIds;\r\n\r\n this.requiredFlags = new Array();\r\n this.requiredFlagReferences = new Array();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getUnlinkedScenes(): SceneModel[] {\r\n const allScenes = this.sceneService.getScenes();\r\n\r\n return allScenes.filter(scene => {\r\n return scene.id !== this.fromSceneId &&\r\n !this.linkedSceneIds.some(id => id === scene.id);\r\n });\r\n }\r\n\r\n getAllFlags(): FlagModel[] {\r\n return this.sceneService.getAllFlags();\r\n }\r\n\r\n inputIsValid(): boolean {\r\n return this.displayText !== '' &&\r\n this.fromSceneId > 0 &&\r\n this.toSceneId > 0;\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n cancel(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/add-edit-link-dialog/add-edit-link-dialog.component.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"h3 {\\r\\n margin-bottom: 0px;\\r\\n}\\r\\n\\r\\nmat-list {\\r\\n max-height: 300px;\\r\\n overflow-y: auto;\\r\\n padding: 0px;\\r\\n border: 1px solid #DADADA;\\r\\n margin-bottom: 15px;\\r\\n}\\r\\n\\r\\n#links-section {\\r\\n margin-top: 25px;\\r\\n}\\r\\n\\r\\n.form {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.full-width {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.align-right {\\r\\n text-align: right;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.small-spacing {\\r\\n padding-bottom: 5px;\\r\\n}\\r\\n\\r\\n.half-width-left {\\r\\n width: 50%;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.half-width-right {\\r\\n width: 50%;\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.image-label {\\r\\n color: rgba(0,0,0,.54);\\r\\n font-family: Roboto,\\\"Helvetica Neue\\\",sans-serif;\\r\\n font-size: inherit;\\r\\n font-weight: 400;\\r\\n margin-top: 0px;\\r\\n}\\r\\n\\r\\n.image-input {\\r\\n vertical-align: top;\\r\\n}\\r\\n\\r\\n.image-container {\\r\\n margin-bottom: 25px;\\r\\n}\\r\\n\\r\\n.image-container img {\\r\\n margin: auto;\\r\\n display: block;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/add-edit-scene-dialog/add-edit-scene-dialog.component.css\n// module id = ../../../../../src/app/generator/add-edit-scene-dialog/add-edit-scene-dialog.component.css\n// module chunks = main","module.exports = \"
\\r\\n

\\r\\n {{editMode ? 'Edit Scene' : 'Add Scene'}}\\r\\n

\\r\\n

\\r\\n Set as Start Scene\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n

0\\\">Links

\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Add Link\\r\\n
\\r\\n \\r\\n \\r\\n

0\\\">Flags

\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Add Flag\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n Cancel\\r\\n Add Scene\\r\\n Save\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/add-edit-scene-dialog/add-edit-scene-dialog.component.html\n// module id = ../../../../../src/app/generator/add-edit-scene-dialog/add-edit-scene-dialog.component.html\n// module chunks = main","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\nimport { SceneService } from '../scene/scene.service';\r\n\r\nimport { AddEditLinkDialogComponent } from '../add-edit-link-dialog/add-edit-link-dialog.component';\r\nimport { AddFlagDialogComponent } from '../add-flag-dialog/add-flag-dialog.component';\r\n\r\nimport { SceneModel } from '../../shared/models/scene-model';\r\nimport { LinkModel } from '../../shared/models/link-model';\r\nimport { FlagModel } from '../../shared/models/flag-model';\r\n\r\n@Component({\r\n selector: 'seeya-add-edit-scene-dialog',\r\n templateUrl: './add-edit-scene-dialog.component.html',\r\n styleUrls: ['./add-edit-scene-dialog.component.css']\r\n})\r\nexport class AddEditSceneDialogComponent implements OnInit {\r\n editMode: boolean;\r\n editedScene: SceneModel;\r\n\r\n sceneId: number;\r\n sceneHeader: string;\r\n sceneDescription: string;\r\n sceneImageUrl: string;\r\n sceneLinks: LinkModel[];\r\n sceneFlags: FlagModel[];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog,\r\n private sceneService: SceneService) {\r\n this.editMode = data.editMode;\r\n\r\n if (this.editMode) {\r\n this.sceneId = data.scene.id;\r\n this.sceneHeader = data.scene.header;\r\n this.sceneDescription = data.scene.description;\r\n this.sceneImageUrl = data.scene.imageUrl;\r\n this.sceneLinks = data.scene.links;\r\n this.sceneFlags = data.scene.flags;\r\n } else {\r\n this.sceneId = sceneService.getNextSceneId();\r\n this.sceneHeader = '';\r\n this.sceneDescription = '';\r\n this.sceneImageUrl = '';\r\n this.sceneLinks = new Array();\r\n this.sceneFlags = new Array();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n addScene(): void {\r\n this.sceneService.addScene(\r\n this.sceneId,\r\n this.sceneHeader,\r\n this.sceneDescription,\r\n this.sceneImageUrl,\r\n this.sceneLinks,\r\n this.sceneFlags\r\n );\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n editScene(): void {\r\n this.sceneService.editScene(\r\n this.sceneId,\r\n this.sceneHeader,\r\n this.sceneDescription,\r\n this.sceneImageUrl,\r\n this.sceneLinks,\r\n this.sceneFlags\r\n );\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n inputIsValid(): boolean {\r\n return this.sceneHeader !== '' && this.sceneDescription !== '';\r\n }\r\n\r\n isCurrentStartScene(): boolean {\r\n return this.sceneId === this.sceneService.getInitialSceneId();\r\n }\r\n\r\n otherScenesExist(): boolean {\r\n return this.sceneService.getNumberOfScenes() > 0;\r\n }\r\n\r\n setAsStartScene(): void {\r\n this.sceneService.setInitialSceneId(this.sceneId);\r\n }\r\n\r\n addLink(): void {\r\n const dialogRef = this.dialog.open(AddEditLinkDialogComponent, {\r\n width: '440px',\r\n disableClose: true,\r\n data: {\r\n editMode: false,\r\n fromSceneId: this.sceneId,\r\n linkedSceneIds: this.sceneLinks.map(link => link.toSceneId)\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(newLink => {\r\n if (newLink) {\r\n this.sceneLinks.push(newLink);\r\n }\r\n });\r\n }\r\n\r\n editLink(editedLink: LinkModel): void {\r\n const linkToEdit = this.sceneLinks.filter(link => {\r\n return link.fromSceneId === editedLink.fromSceneId &&\r\n link.toSceneId === editedLink.toSceneId;\r\n })[0];\r\n\r\n if (linkToEdit) {\r\n linkToEdit.displayText = editedLink.displayText;\r\n linkToEdit.flagReferences = editedLink.flagReferences;\r\n }\r\n }\r\n\r\n removeLink(linkToId: number): void {\r\n this.sceneLinks = this.sceneLinks.filter(link => {\r\n return link.toSceneId !== linkToId;\r\n });\r\n }\r\n\r\n addFlag(): void {\r\n let previousMaxId = -1;\r\n\r\n if (this.sceneFlags.length > 0) {\r\n previousMaxId = Math.max(...this.sceneFlags.map(flag => flag.id));\r\n }\r\n\r\n const dialogRef = this.dialog.open(AddFlagDialogComponent, {\r\n width: '440px',\r\n disableClose: true,\r\n data: {\r\n sceneId: this.sceneId,\r\n previousMaxId: previousMaxId\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(newFlag => {\r\n if (newFlag) {\r\n this.sceneFlags.push(newFlag);\r\n }\r\n });\r\n }\r\n\r\n removeFlag(flagId: number): void {\r\n this.sceneFlags = this.sceneFlags.filter(flag => {\r\n return flag.id !== flagId;\r\n });\r\n }\r\n\r\n cancel(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/add-edit-scene-dialog/add-edit-scene-dialog.component.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".full-width {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.align-right {\\r\\n text-align: right;\\r\\n display: block;\\r\\n}\\r\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/add-flag-dialog/add-flag-dialog.component.css\n// module id = ../../../../../src/app/generator/add-flag-dialog/add-flag-dialog.component.css\n// module chunks = main","module.exports = \"

Add Flag

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Cancel\\r\\n Add Flag\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/add-flag-dialog/add-flag-dialog.component.html\n// module id = ../../../../../src/app/generator/add-flag-dialog/add-flag-dialog.component.html\n// module chunks = main","import { Component, OnInit, Inject } from '@angular/core';\r\n\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\nimport { SceneService } from '../scene/scene.service';\r\n\r\nimport { FlagFactory } from '../../shared/factories/flag-factory';\r\n\r\n@Component({\r\n selector: 'seeya-add-flag-dialog',\r\n templateUrl: './add-flag-dialog.component.html',\r\n styleUrls: ['./add-flag-dialog.component.css']\r\n})\r\nexport class AddFlagDialogComponent implements OnInit {\r\n ff: FlagFactory;\r\n\r\n sceneId: number;\r\n name: string;\r\n\r\n previousMaxId: number;\r\n\r\n constructor(\r\n public sceneService: SceneService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.ff = new FlagFactory();\r\n\r\n this.sceneId = data.sceneId;\r\n this.name = '';\r\n\r\n this.previousMaxId = data.previousMaxId;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getNextFlagId(): number {\r\n // This will return the max ID for all Flags that have been saved to\r\n // a Scene previously.\r\n const allNextFlagId = this.sceneService.getNextFlagId();\r\n\r\n // If other new Flags have been added since this Scene was saved,\r\n // then previousMaxId will be larger than allNextFlagId, so we'll need\r\n // to use that as our baseline instead.\r\n return Math.max(allNextFlagId, this.previousMaxId + 1);\r\n }\r\n\r\n inputIsValid(): boolean {\r\n return this.sceneId > 0 &&\r\n this.name !== '';\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n cancel(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/add-flag-dialog/add-flag-dialog.component.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".align-right {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.spacer {\\r\\n margin-top: 25px;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/add-scene/add-scene.component.css\n// module id = ../../../../../src/app/generator/add-scene/add-scene.component.css\n// module chunks = main","module.exports = \"
\\r\\n \\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/add-scene/add-scene.component.html\n// module id = ../../../../../src/app/generator/add-scene/add-scene.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material';\r\n\r\nimport { AddEditSceneDialogComponent } from '../add-edit-scene-dialog/add-edit-scene-dialog.component';\r\n\r\n@Component({\r\n selector: 'seeya-add-scene',\r\n templateUrl: './add-scene.component.html',\r\n styleUrls: ['./add-scene.component.css']\r\n})\r\nexport class AddSceneComponent implements OnInit {\r\n constructor(public dialog: MatDialog) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n openDialog(): void {\r\n this.dialog.open(AddEditSceneDialogComponent, {\r\n width: '600px',\r\n disableClose: true,\r\n data: {\r\n editMode: false\r\n }\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/add-scene/add-scene.component.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".align-right {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.export-container {\\r\\n width: 100%;\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.exported-game {\\r\\n word-break: break-all;\\r\\n font-family: Courier New, Courier, monospace;\\r\\n background-color: #F0F0F0;\\r\\n padding: 15px;\\r\\n max-height: 240px;\\r\\n overflow-y: auto;\\r\\n resize: none;\\r\\n width: calc(100% - 30px);\\r\\n}\\r\\n\\r\\n.copy-success {\\r\\n background-color: #1B5E20;\\r\\n color: #FAFAFA;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/export-game-dialog/export-game-dialog.component.css\n// module id = ../../../../../src/app/generator/export-game-dialog/export-game-dialog.component.css\n// module chunks = main","module.exports = \"

Game Exported Successfully

\\r\\n\\r\\n

Please copy this text exactly and save it somewhere to import into the Runner.

\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{data.exportedGame}}\\r\\n
\\r\\n\\r\\n

Click anywhere outside this dialog to close.

\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/export-game-dialog/export-game-dialog.component.html\n// module id = ../../../../../src/app/generator/export-game-dialog/export-game-dialog.component.html\n// module chunks = main","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'seeya-export-game-dialog',\r\n templateUrl: './export-game-dialog.component.html',\r\n styleUrls: ['./export-game-dialog.component.css']\r\n})\r\nexport class ExportGameDialogComponent {\r\n copySuccessful: boolean;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.copySuccessful = false;\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/export-game-dialog/export-game-dialog.component.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".align-right {\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.interactive {\\r\\n position: relative;\\r\\n width:24px; height:24px;\\r\\n -webkit-transition: color 0.25s;\\r\\n transition: color 0.25s;\\r\\n}\\r\\n\\r\\n.interactive:hover {\\r\\n cursor: pointer;\\r\\n color: #AAAAAA;\\r\\n}\\r\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/flag/flag.component.css\n// module id = ../../../../../src/app/generator/flag/flag.component.css\n// module chunks = main","module.exports = \"\\r\\n {{flag.name}}\\r\\n \\r\\n delete\\r\\n \\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/flag/flag.component.html\n// module id = ../../../../../src/app/generator/flag/flag.component.html\n// module chunks = main","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { FlagModel } from '../../shared/models/flag-model';\r\n\r\n@Component({\r\n selector: 'seeya-flag',\r\n templateUrl: './flag.component.html',\r\n styleUrls: ['./flag.component.css']\r\n})\r\nexport class FlagComponent implements OnInit {\r\n @Input() flag: FlagModel;\r\n @Output() flagRemovedEvent = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n deleteFlag(): void {\r\n this.flagRemovedEvent.emit(this.flag.id);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/flag/flag.component.ts","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".scene {\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\nmat-grid-list {\\r\\n margin-top: 25px;\\r\\n margin-left: -1px;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/generator.component.css\n// module id = ../../../../../src/app/generator/generator.component.css\n// module chunks = main","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/generator.component.html\n// module id = ../../../../../src/app/generator/generator.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\nimport { MediaChange, ObservableMedia, MediaService } from '@angular/flex-layout';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport { SceneService } from './scene/scene.service';\r\n\r\nimport { SceneModel } from '../shared/models/scene-model';\r\n\r\n@Component({\r\n selector: 'seeya-generator',\r\n templateUrl: './generator.component.html',\r\n styleUrls: ['./generator.component.css']\r\n})\r\nexport class GeneratorComponent implements OnInit {\r\n public columns: Number;\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private sceneService: SceneService,\r\n private _media$: ObservableMedia,\r\n private mediaService: MediaService\r\n ) {\r\n this.subscription = this._media$.subscribe((e: MediaChange) => {\r\n this.updateColumns();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.updateColumns();\r\n this.getScenes();\r\n }\r\n\r\n getScenes(): SceneModel[] {\r\n return this.sceneService.getScenes();\r\n }\r\n\r\n private updateColumns() {\r\n const isSmall = this.mediaService.isActive('lt-md');\r\n this.columns = isSmall ? 1 : 2;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/generator.component.ts","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule, MatGridListModule, MatListModule, MatSelectModule } from '@angular/material';\r\n\r\nimport { ClipboardModule } from 'ngx-clipboard';\r\n\r\nimport { SceneService } from './scene/scene.service';\r\n\r\nimport { GeneratorComponent } from './generator.component';\r\nimport { SceneComponent } from './scene/scene.component';\r\nimport { AddSceneComponent } from './add-scene/add-scene.component';\r\nimport { LinkComponent } from './link/link.component';\r\nimport { FlagComponent } from './flag/flag.component';\r\nimport { ImportExportGameComponent } from './import-export-game/import-export-game.component';\r\nimport { ExportGameDialogComponent } from './export-game-dialog/export-game-dialog.component';\r\nimport { ImportGameDialogComponent } from './import-game-dialog/import-game-dialog.component';\r\nimport { AddEditLinkDialogComponent } from './add-edit-link-dialog/add-edit-link-dialog.component';\r\nimport { AddEditSceneDialogComponent } from './add-edit-scene-dialog/add-edit-scene-dialog.component';\r\nimport { AddFlagDialogComponent } from './add-flag-dialog/add-flag-dialog.component';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n NoopAnimationsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatGridListModule,\r\n MatListModule,\r\n MatSelectModule,\r\n ClipboardModule\r\n ],\r\n declarations: [\r\n GeneratorComponent,\r\n SceneComponent,\r\n AddSceneComponent,\r\n ImportExportGameComponent,\r\n ExportGameDialogComponent,\r\n ImportGameDialogComponent,\r\n AddEditLinkDialogComponent,\r\n AddEditSceneDialogComponent,\r\n LinkComponent,\r\n FlagComponent,\r\n AddFlagDialogComponent\r\n ],\r\n entryComponents: [\r\n ExportGameDialogComponent,\r\n ImportGameDialogComponent,\r\n AddEditSceneDialogComponent,\r\n AddEditLinkDialogComponent,\r\n AddFlagDialogComponent\r\n ],\r\n providers: [\r\n SceneService\r\n ],\r\n exports: [\r\n GeneratorComponent\r\n ]\r\n})\r\nexport class GeneratorModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/generator.module.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"div {\\r\\n margin-top: 25px;\\r\\n}\\r\\n\\r\\n.align-right {\\r\\n text-align: right;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/import-export-game/import-export-game.component.css\n// module id = ../../../../../src/app/generator/import-export-game/import-export-game.component.css\n// module chunks = main","module.exports = \"
\\r\\n \\r\\n \\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/import-export-game/import-export-game.component.html\n// module id = ../../../../../src/app/generator/import-export-game/import-export-game.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { MatDialog } from '@angular/material';\r\n\r\nimport { SceneService } from '../scene/scene.service';\r\nimport { ExportGameDialogComponent } from '../export-game-dialog/export-game-dialog.component';\r\nimport { ImportGameDialogComponent } from '../import-game-dialog/import-game-dialog.component';\r\n\r\n@Component({\r\n selector: 'seeya-import-export-game',\r\n templateUrl: './import-export-game.component.html',\r\n styleUrls: ['./import-export-game.component.css']\r\n})\r\nexport class ImportExportGameComponent implements OnInit {\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private sceneService: SceneService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n gameHasAnyScenes(): boolean {\r\n return this.sceneService.getNumberOfScenes() > 0;\r\n }\r\n\r\n gameHasStartScene(): boolean {\r\n const scenes = this.sceneService.getScenes();\r\n\r\n return scenes.some(s => s.id === this.sceneService.getInitialSceneId());\r\n }\r\n\r\n importGame(): void {\r\n this.dialog.open(ImportGameDialogComponent, {\r\n width: '440px'\r\n });\r\n }\r\n\r\n exportGame(): void {\r\n this.dialog.open(ExportGameDialogComponent, {\r\n width: '440px',\r\n data: { exportedGame: this.sceneService.exportGame() }\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/import-export-game/import-export-game.component.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".align-right {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.import-container {\\r\\n width: 100%;\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.full-width {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.errors {\\r\\n margin-top: 10px;\\r\\n margin-bottom: 25px;\\r\\n}\\r\\n\\r\\n.error {\\r\\n color: #B71C1C;\\r\\n font-weight: bold;\\r\\n margin: 0px;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/import-game-dialog/import-game-dialog.component.css\n// module id = ../../../../../src/app/generator/import-game-dialog/import-game-dialog.component.css\n// module chunks = main","module.exports = \"

Import Existing Game

\\r\\n\\r\\n

Please copy your text exported by the Generator into this textbox, and click Import to load your existing Game. Please note that this will overwrite whatever Scenes you currently have configured.

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n

The text entered could not be successfully imported.

\\r\\n

Please check to make sure it is the exact output from the Generator.

\\r\\n\\r\\n\\r\\n

Click anywhere outside this dialog to close.

\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/import-game-dialog/import-game-dialog.component.html\n// module id = ../../../../../src/app/generator/import-game-dialog/import-game-dialog.component.html\n// module chunks = main","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\nimport { SceneService } from '../scene/scene.service';\r\n\r\n@Component({\r\n selector: 'seeya-import-game-dialog',\r\n templateUrl: './import-game-dialog.component.html',\r\n styleUrls: ['./import-game-dialog.component.css']\r\n})\r\nexport class ImportGameDialogComponent implements OnInit {\r\n gameImportString: string;\r\n gameImportSuccessful: boolean;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private sceneService: SceneService) {\r\n this.gameImportString = '';\r\n this.gameImportSuccessful = true;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n importGame() {\r\n this.gameImportSuccessful = true;\r\n\r\n try {\r\n this.sceneService.importGame(this.gameImportString);\r\n this.dialogRef.close();\r\n } catch {\r\n this.gameImportSuccessful = false;\r\n }\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/import-game-dialog/import-game-dialog.component.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".align-right {\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.interactive {\\r\\n position: relative;\\r\\n width:24px; height:24px;\\r\\n -webkit-transition: color 0.25s;\\r\\n transition: color 0.25s;\\r\\n}\\r\\n\\r\\n.interactive:hover {\\r\\n cursor: pointer;\\r\\n color: #AAAAAA;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/link/link.component.css\n// module id = ../../../../../src/app/generator/link/link.component.css\n// module chunks = main","module.exports = \"\\r\\n Link to Scene #{{link.toSceneId}} - \\\"{{link.displayText}}\\\"\\r\\n \\r\\n edit\\r\\n delete\\r\\n \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/link/link.component.html\n// module id = ../../../../../src/app/generator/link/link.component.html\n// module chunks = main","import { Component, OnInit, Input, EventEmitter, Output, Inject } from '@angular/core';\r\n\r\nimport { SceneService } from '../scene/scene.service';\r\n\r\nimport { LinkModel } from '../../shared/models/link-model';\r\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material';\r\nimport { AddEditLinkDialogComponent } from '../add-edit-link-dialog/add-edit-link-dialog.component';\r\n\r\n@Component({\r\n selector: 'seeya-link',\r\n templateUrl: './link.component.html',\r\n styleUrls: ['./link.component.css']\r\n})\r\nexport class LinkComponent implements OnInit {\r\n @Input() link: LinkModel;\r\n @Output() linkEditedEvent = new EventEmitter();\r\n @Output() linkRemovedEvent = new EventEmitter();\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n editLink(): void {\r\n const dialogRef = this.dialog.open(AddEditLinkDialogComponent, {\r\n width: '440px',\r\n disableClose: true,\r\n data: {\r\n link: this.link,\r\n editMode: true\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(editedLink => {\r\n if (editedLink) {\r\n this.linkEditedEvent.emit(editedLink);\r\n }\r\n });\r\n }\r\n\r\n deleteLink(): void {\r\n this.linkRemovedEvent.emit(this.link.toSceneId);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/link/link.component.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"mat-card {\\r\\n height: calc(100% - 50px);\\r\\n width: calc(100% - 50px);\\r\\n margin: auto;\\r\\n overflow-y: auto;\\r\\n}\\r\\n\\r\\nmat-card-content {\\r\\n overflow-x: auto;\\r\\n}\\r\\n\\r\\n#card-content p {\\r\\n white-space: pre-line;\\r\\n}\\r\\n\\r\\n.start-scene {\\r\\n background-color: #DDF0DE;\\r\\n}\\r\\n\\r\\n.mat-caption {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.top-right {\\r\\n text-align: right;\\r\\n margin-top: -10px;\\r\\n}\\r\\n\\r\\n.interactive {\\r\\n position: relative;\\r\\n width:24px; height:24px;\\r\\n -webkit-transition: color 0.25s;\\r\\n transition: color 0.25s;\\r\\n}\\r\\n\\r\\n.interactive:hover {\\r\\n cursor: pointer;\\r\\n color: #AAAAAA;\\r\\n}\\r\\n\\r\\n.image-container {\\r\\n margin-bottom: 25px;\\r\\n}\\r\\n\\r\\n.image-container img {\\r\\n margin: auto;\\r\\n display: block;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/scene/scene.component.css\n// module id = ../../../../../src/app/generator/scene/scene.component.css\n// module chunks = main","module.exports = \"\\r\\n \\r\\n \\r\\n Scene #{{scene.id}}: {{scene.header}}\\r\\n \\r\\n 0\\\">\\r\\n

\\r\\n Linked to Scene(s) {{getLinkedSceneIds()}}\\r\\n
\\r\\n
\\r\\n star\\r\\n edit\\r\\n delete\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n

{{scene.description}}

\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/generator/scene/scene.component.html\n// module id = ../../../../../src/app/generator/scene/scene.component.html\n// module chunks = main","import { Component, OnInit, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material';\r\n\r\nimport { SceneService } from './scene.service';\r\n\r\nimport { AddEditSceneDialogComponent } from '../add-edit-scene-dialog/add-edit-scene-dialog.component';\r\n\r\nimport { SceneModel } from '../../shared/models/scene-model';\r\nimport { LinkModel } from '../../shared/models/link-model';\r\nimport { FlagModel } from '../../shared/models/flag-model';\r\nimport { FlagReferenceModel } from '../../shared/models/flag-reference-model';\r\n\r\n@Component({\r\n selector: 'seeya-scene',\r\n templateUrl: './scene.component.html',\r\n styleUrls: ['./scene.component.css']\r\n})\r\nexport class SceneComponent implements OnInit {\r\n @Input() scene: SceneModel;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private sceneService: SceneService\r\n ) {}\r\n\r\n ngOnInit() {\r\n }\r\n\r\n isStartScene(): boolean {\r\n return this.scene.id === this.sceneService.getInitialSceneId();\r\n }\r\n\r\n getLinkedSceneIds(): string {\r\n return this.scene.links.map(link => link.toSceneId).join(', ');\r\n }\r\n\r\n editScene(): void {\r\n this.dialog.open(AddEditSceneDialogComponent, {\r\n width: '600px',\r\n disableClose: true,\r\n data: {\r\n editMode: true,\r\n // Dirty manual deep copy.\r\n scene: new SceneModel(\r\n this.scene.id,\r\n this.scene.header,\r\n this.scene.description,\r\n this.scene.imageUrl,\r\n this.scene.links.map(link => {\r\n return new LinkModel(\r\n link.fromSceneId,\r\n link.toSceneId,\r\n link.displayText,\r\n link.flagReferences.map(flagReference => {\r\n return new FlagReferenceModel(\r\n flagReference.id,\r\n flagReference.sceneId\r\n );\r\n })\r\n );\r\n }),\r\n this.scene.flags.map(flag => {\r\n return new FlagModel(\r\n flag.id,\r\n flag.sceneId,\r\n flag.name,\r\n flag.isSet\r\n );\r\n })\r\n )\r\n }\r\n });\r\n }\r\n\r\n deleteScene(): void {\r\n this.sceneService.deleteScene(this.scene.id);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/scene/scene.component.ts","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material';\r\n\r\nimport { GameFactory } from '../../shared/factories/game-factory';\r\nimport { SceneFactory } from '../../shared/factories/scene-factory';\r\nimport { LinkFactory } from '../../shared/factories/link-factory';\r\n\r\nimport { GameModel } from '../../shared/models/game-model';\r\nimport { SceneModel } from '../../shared/models/scene-model';\r\nimport { LinkModel } from '../../shared/models/link-model';\r\nimport { FlagModel } from '../../shared/models/flag-model';\r\nimport { FlagReferenceModel } from '../../shared/models/flag-reference-model';\r\n\r\n@Injectable()\r\nexport class SceneService {\r\n private gf: GameFactory;\r\n private sf: SceneFactory;\r\n private lf: LinkFactory;\r\n\r\n private initialSceneId: number;\r\n private scenes: SceneModel[];\r\n\r\n constructor() {\r\n this.gf = new GameFactory();\r\n this.sf = new SceneFactory();\r\n this.lf = new LinkFactory();\r\n\r\n this.initialSceneId = -1;\r\n this.scenes = new Array();\r\n }\r\n\r\n getInitialSceneId(): number {\r\n return this.initialSceneId;\r\n }\r\n\r\n setInitialSceneId(newInitialSceneId: number): void {\r\n this.initialSceneId = newInitialSceneId;\r\n }\r\n\r\n getScenes(): SceneModel[] {\r\n return this.scenes;\r\n }\r\n\r\n getNumberOfScenes(): number {\r\n return this.scenes.length;\r\n }\r\n\r\n getNextSceneId(): number {\r\n // Find next Scene ID.\r\n let currentMax = 0;\r\n\r\n if (this.scenes.length > 0) {\r\n currentMax = Math.max(...(this.scenes.map(scene => scene.id)));\r\n }\r\n\r\n return currentMax + 1;\r\n }\r\n\r\n addScene(\r\n id: number,\r\n header: string,\r\n description: string,\r\n imageUrl: string,\r\n links: LinkModel[],\r\n flags: FlagModel[]\r\n ): void {\r\n this.addNewScene(\r\n id,\r\n header,\r\n description,\r\n imageUrl,\r\n links,\r\n flags);\r\n\r\n // Initialize the Initial Scene ID if one isn't set yet.\r\n if (this.initialSceneId < 0) {\r\n this.initialSceneId = Math.min(...this.scenes.map(s => s.id));\r\n }\r\n }\r\n\r\n editScene(\r\n sceneId: number,\r\n header: string,\r\n description: string,\r\n imageUrl: string,\r\n links: LinkModel[],\r\n flags: FlagModel[]\r\n ): void {\r\n const sceneToEdit = this.scenes.filter(scene => scene.id === sceneId)[0];\r\n\r\n if (sceneToEdit) {\r\n sceneToEdit.header = header;\r\n sceneToEdit.description = description;\r\n sceneToEdit.imageUrl = imageUrl;\r\n sceneToEdit.links = links;\r\n sceneToEdit.flags = flags;\r\n }\r\n }\r\n\r\n deleteScene(sceneId: number): void {\r\n const sceneToDelete = this.scenes.filter(scene => scene.id === sceneId)[0];\r\n\r\n if (sceneToDelete) {\r\n // Remove any Links that previously linked to this scene.\r\n const scenesToUpdate = this.scenes.filter(scene => {\r\n return scene.links.some(link => {\r\n return link.toSceneId === sceneToDelete.id;\r\n });\r\n });\r\n\r\n for (const sceneToUpdate of scenesToUpdate) {\r\n sceneToUpdate.links = sceneToUpdate.links.filter(link => {\r\n return link.toSceneId !== sceneToDelete.id;\r\n });\r\n }\r\n\r\n const sceneToDeleteIndex = this.scenes.indexOf(sceneToDelete);\r\n\r\n this.scenes.splice(sceneToDeleteIndex, 1);\r\n }\r\n }\r\n\r\n getNextFlagId(): number {\r\n let currentMax = 0;\r\n\r\n if (this.scenes.length > 0) {\r\n const allFlags = this.getAllFlags();\r\n\r\n currentMax = Math.max(...allFlags.map(flag => flag.id));\r\n }\r\n\r\n return currentMax + 1;\r\n }\r\n\r\n getAllFlags(): FlagModel[] {\r\n const allFlags = new Array();\r\n\r\n this.scenes.map(scene => {\r\n scene.flags.map(flag => {\r\n allFlags.push(flag);\r\n });\r\n });\r\n\r\n return allFlags;\r\n }\r\n\r\n getFlag(\r\n flagId: number,\r\n sceneId: number\r\n ): FlagModel {\r\n let flag = null;\r\n\r\n const flagScene = this.scenes.filter(scene => {\r\n return scene.id === sceneId;\r\n })[0];\r\n\r\n if (flagScene !== null &&\r\n flagScene !== undefined) {\r\n flag = flagScene.flags.filter(sceneFlag => {\r\n return sceneFlag.id === flagId;\r\n })[0];\r\n }\r\n\r\n return flag;\r\n }\r\n\r\n exportGame(): string {\r\n const game = this.gf.createGame(\r\n this.initialSceneId,\r\n this.scenes);\r\n const gameJsonString = JSON.stringify(game);\r\n\r\n return this.b64EncodeWithUnicode(gameJsonString);\r\n }\r\n\r\n importGame(\r\n gameImportString: string\r\n ): void {\r\n const gameString = this.b64DecodeWithUnicode(gameImportString);\r\n\r\n const game = JSON.parse(gameString) as GameModel;\r\n\r\n this.initialSceneId = game.initialSceneId;\r\n this.scenes = game.scenes;\r\n\r\n this.scenes.map(scene => {\r\n if (!scene.links) {\r\n scene.links = new Array();\r\n } else {\r\n scene.links.map(link => {\r\n if (!link.flagReferences) {\r\n link.flagReferences = new Array();\r\n }\r\n });\r\n }\r\n\r\n if (!scene.flags) {\r\n scene.flags = new Array();\r\n }\r\n });\r\n }\r\n\r\n // https://stackoverflow.com/questions/30106476/using-javascripts-atob-to-decode-base64-doesnt-properly-decode-utf-8-strings/30106551\r\n private b64EncodeWithUnicode(str): string {\r\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => {\r\n return String.fromCharCode(parseInt(p1, 16));\r\n }));\r\n }\r\n\r\n private b64DecodeWithUnicode(str): string {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c) => {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n }\r\n\r\n private addNewScene(\r\n id: number,\r\n header: string,\r\n description: string,\r\n imageUrl: string,\r\n links: LinkModel[],\r\n flags: FlagModel[]\r\n ): void {\r\n this.scenes.push(\r\n this.sf.createScene(\r\n id,\r\n header,\r\n description,\r\n imageUrl,\r\n links,\r\n flags\r\n )\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/generator/scene/scene.service.ts","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mat-headline {\\r\\n margin-top: 25px;\\r\\n}\\r\\n\\r\\n.mat-title {\\r\\n margin-top: 25px;\\r\\n margin-bottom: 0px;\\r\\n}\\r\\n\\r\\n.mat-body-2 {\\r\\n margin-top: 0px;\\r\\n}\\r\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/home/home.component.css\n// module id = ../../../../../src/app/home/home.component.css\n// module chunks = main","module.exports = \"

Welcome to Seeya!

\\r\\n\\r\\n

Seeya is a framework that allows you to build and play custom 'Choose Your Own Adventure' Games! Take a look at these brief\\r\\n instructions to learn how to use it.

\\r\\n\\r\\n

Generator

\\r\\n\\r\\n

The Generator is where you'll be able to create your Games.

\\r\\n
    \\r\\n
  • You can create Scenes that Link to each other, which are then exported into your very own Game.
  • \\r\\n
  • Each Scene can Link to any number of other Scenes, but it cannot Link to itself, and cannot Link to the same Scene more\\r\\n than once.
  • \\r\\n
  • Each Scene can contain one or more Flags. When the Scene is visited in the Runner, all Flags in the Scene are set.
  • \\r\\n
  • Each Link can be associated with one or more Flags. A Link that is associated with any Flags will only be visible on its containing scene if all of its associated Flags are set.
  • \\r\\n
  • When you're done with your Game, or if you'd like to save your progress and return later, you can export your Game.
  • \\r\\n
  • To load an existing Game and continue creating it, simply use the Import Existing Game dialog.
  • \\r\\n
\\r\\n\\r\\n

Runner

\\r\\n\\r\\n

Once you have created your Game, or have an export of someone else's Game, you can take it to the Runner.

\\r\\n
    \\r\\n
  • To import an existing Game, simply use the Import Game dialog.
  • \\r\\n
  • Once a Game has been imported, it will begin immediately.
  • \\r\\n
  • For each Scene, you will see the description of the Scene, and the Links to other Scenes that make up your choices for\\r\\n how to proceed.
  • \\r\\n
  • If a Link has any Flags attached to it, it will only be visible if all of those Flags are set. A Flag is set when the Scene that that Flag is attached to is visited. Flags are not visible to the user in the Runner, and are only used to show and hide Links based on having visited previous Scenes.
  • \\r\\n
  • When you make it to a Scene that does not Link to any other Scene, you've reached an ending of the Game! You'll be able\\r\\n to play the Game again, or import a new Game.
  • \\r\\n
\\r\\n\\r\\n

We hope you have fun creating and exploring your very own Seeya Games!

\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/home/home.component.html\n// module id = ../../../../../src/app/home/home.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'seeya-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent {\r\n\r\n constructor() { }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/home/home.component.ts","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../shared/shared.module';\r\n\r\nimport { HomeComponent } from './home.component';\r\n\r\n@NgModule({\r\n imports: [ SharedModule ],\r\n declarations: [ HomeComponent ],\r\n exports: [ HomeComponent ]\r\n})\r\nexport class HomeModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/home/home.module.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".align-right {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.spacing {\\r\\n margin-top: 50px;\\r\\n}\\r\\n\\r\\n.next-scene-button {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.next-scene-button:not(:first-child) {\\r\\n margin-left: 15px;\\r\\n}\\r\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/runner/game-runner/game-runner.component.css\n// module id = ../../../../../src/app/runner/game-runner/game-runner.component.css\n// module chunks = main","module.exports = \"
\\r\\n \\r\\n\\r\\n
\\r\\n 0\\\">\\r\\n \\r\\n {{link.displayText}}\\r\\n \\r\\n \\r\\n \\r\\n Play Again\\r\\n \\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/runner/game-runner/game-runner.component.html\n// module id = ../../../../../src/app/runner/game-runner/game-runner.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { SceneService } from '../scene/scene.service';\r\n\r\nimport { SceneModel } from '../../shared/models/scene-model';\r\nimport { LinkModel } from '../../shared/models/link-model';\r\n\r\n@Component({\r\n selector: 'seeya-game-runner',\r\n templateUrl: './game-runner.component.html',\r\n styleUrls: ['./game-runner.component.css']\r\n})\r\nexport class GameRunnerComponent implements OnInit {\r\n\r\n constructor(private sceneService: SceneService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n loadNextScene(toSceneId: number): void {\r\n this.sceneService.loadNextScene(toSceneId);\r\n this.sceneService.setFlagsForScene(toSceneId);\r\n }\r\n\r\n restartGame(): void {\r\n this.sceneService.startGame();\r\n }\r\n\r\n visibleLinks(): LinkModel[] {\r\n return this.currentScene.links.filter(link => {\r\n return this.linkIsVisible(link);\r\n });\r\n }\r\n\r\n linkIsVisible(link: LinkModel): boolean {\r\n return this.sceneService.allFlagsSetForLink(link);\r\n }\r\n\r\n get currentScene(): SceneModel {\r\n return this.sceneService.getCurrentScene();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/runner/game-runner/game-runner.component.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".align-right {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.import-container {\\r\\n width: 100%;\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.full-width {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.errors {\\r\\n margin-top: 10px;\\r\\n margin-bottom: 25px;\\r\\n}\\r\\n\\r\\n.error {\\r\\n color: #B71C1C;\\r\\n font-weight: bold;\\r\\n margin: 0px;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/runner/import-game-dialog/import-game-dialog.component.css\n// module id = ../../../../../src/app/runner/import-game-dialog/import-game-dialog.component.css\n// module chunks = main","module.exports = \"

Import Game

\\r\\n\\r\\n

Please copy your text exported by the Generator into this textbox, and click Import to start your Game!

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n

The text entered could not be successfully imported.

\\r\\n

Please check to make sure it is the exact output from the Generator.

\\r\\n\\r\\n\\r\\n

Click anywhere outside this dialog to close.

\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/runner/import-game-dialog/import-game-dialog.component.html\n// module id = ../../../../../src/app/runner/import-game-dialog/import-game-dialog.component.html\n// module chunks = main","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\nimport { SceneService } from '../scene/scene.service';\r\n\r\n@Component({\r\n selector: 'seeya-import-game-dialog',\r\n templateUrl: './import-game-dialog.component.html',\r\n styleUrls: ['./import-game-dialog.component.css']\r\n})\r\nexport class ImportGameDialogComponent implements OnInit {\r\n gameImportString: string;\r\n gameImportSuccessful: boolean;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private sceneService: SceneService) {\r\n this.gameImportString = '';\r\n this.gameImportSuccessful = true;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n importGame() {\r\n this.gameImportSuccessful = true;\r\n\r\n try {\r\n this.sceneService.importGame(this.gameImportString);\r\n this.dialogRef.close();\r\n } catch {\r\n this.gameImportSuccessful = false;\r\n }\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/runner/import-game-dialog/import-game-dialog.component.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"div {\\r\\n margin-top: 25px;\\r\\n}\\r\\n\\r\\n.align-right {\\r\\n text-align: right;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/runner/import-game/import-game.component.css\n// module id = ../../../../../src/app/runner/import-game/import-game.component.css\n// module chunks = main","module.exports = \"
\\r\\n \\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/runner/import-game/import-game.component.html\n// module id = ../../../../../src/app/runner/import-game/import-game.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { MatDialog } from '@angular/material';\r\n\r\nimport { SceneService } from '../scene/scene.service';\r\n\r\nimport { ImportGameDialogComponent } from '../import-game-dialog/import-game-dialog.component';\r\n\r\n@Component({\r\n selector: 'seeya-import-game',\r\n templateUrl: './import-game.component.html',\r\n styleUrls: ['./import-game.component.css']\r\n})\r\nexport class ImportGameComponent implements OnInit {\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private sceneService: SceneService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n importGame(): void {\r\n const dialogRef = this.dialog.open(ImportGameDialogComponent, {\r\n width: '440px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(() => {\r\n if (this.sceneService.getNumberOfScenes() > 0) {\r\n this.sceneService.startGame();\r\n }\r\n });\r\n }\r\n\r\n gameIsFinished(): boolean {\r\n return this.sceneService.gameIsFinished();\r\n }\r\n\r\n gameIsLoaded(): boolean {\r\n return this.sceneService.getCurrentScene() != null;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/runner/import-game/import-game.component.ts","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/runner/runner.component.css\n// module id = ../../../../../src/app/runner/runner.component.css\n// module chunks = main","module.exports = \"\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/runner/runner.component.html\n// module id = ../../../../../src/app/runner/runner.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'seeya-runner',\r\n templateUrl: './runner.component.html',\r\n styleUrls: ['./runner.component.css']\r\n})\r\nexport class RunnerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/runner/runner.component.ts","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { SceneService } from './scene/scene.service';\r\n\r\nimport { RunnerComponent } from './runner.component';\r\nimport { SceneComponent } from './scene/scene.component';\r\nimport { ImportGameComponent } from './import-game/import-game.component';\r\nimport { ImportGameDialogComponent } from './import-game-dialog/import-game-dialog.component';\r\n\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { GameRunnerComponent } from './game-runner/game-runner.component';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n NoopAnimationsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n MatDialogModule,\r\n CommonModule\r\n ],\r\n declarations: [\r\n RunnerComponent,\r\n GameRunnerComponent,\r\n ImportGameComponent,\r\n ImportGameDialogComponent,\r\n SceneComponent\r\n ],\r\n entryComponents: [\r\n ImportGameDialogComponent\r\n ],\r\n providers: [\r\n SceneService\r\n ],\r\n exports: [\r\n RunnerComponent\r\n ]\r\n})\r\nexport class RunnerModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/runner/runner.module.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"h1 {\\r\\n margin-top: 50px;\\r\\n}\\r\\n\\r\\nspan {\\r\\n white-space: pre-line;\\r\\n}\\r\\n\\r\\n.align-right {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.image-container {\\r\\n margin-bottom: 25px;\\r\\n}\\r\\n\\r\\n.image-container img {\\r\\n display: block;\\r\\n margin: auto;\\r\\n max-width: 80%;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/runner/scene/scene.component.css\n// module id = ../../../../../src/app/runner/scene/scene.component.css\n// module chunks = main","module.exports = \"

{{scene.header}}

\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n{{scene.description}}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Repos/seeya/src/app/runner/scene/scene.component.html\n// module id = ../../../../../src/app/runner/scene/scene.component.html\n// module chunks = main","import { Component, OnInit, Input } from '@angular/core';\r\n\r\nimport { SceneModel } from '../../shared/models/scene-model';\r\n\r\n@Component({\r\n selector: 'seeya-scene',\r\n templateUrl: './scene.component.html',\r\n styleUrls: ['./scene.component.css']\r\n})\r\nexport class SceneComponent implements OnInit {\r\n @Input() scene: SceneModel;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/runner/scene/scene.component.ts","import { Injectable } from '@angular/core';\r\nimport { SceneModel } from '../../shared/models/scene-model';\r\nimport { GameModel } from '../../shared/models/game-model';\r\nimport { LinkModel } from '../../shared/models/link-model';\r\nimport { FlagModel } from '../../shared/models/flag-model';\r\nimport { FlagReferenceModel } from '../../shared/models/flag-reference-model';\r\n\r\n@Injectable()\r\nexport class SceneService {\r\n private initialSceneId: number;\r\n private scenes: SceneModel[];\r\n private currentScene: SceneModel;\r\n\r\n constructor() {\r\n this.initialSceneId = -1;\r\n this.scenes = new Array();\r\n this.currentScene = null;\r\n }\r\n\r\n importGame(\r\n gameImportString: string\r\n ): void {\r\n const gameString = this.b64DecodeWithUnicode(gameImportString);\r\n\r\n const game = JSON.parse(gameString) as GameModel;\r\n\r\n this.initialSceneId = game.initialSceneId;\r\n this.scenes = game.scenes;\r\n\r\n this.scenes.map(scene => {\r\n if (!scene.links) {\r\n scene.links = new Array();\r\n } else {\r\n scene.links.map(link => {\r\n if (!link.flagReferences) {\r\n link.flagReferences = new Array();\r\n }\r\n });\r\n }\r\n\r\n if (!scene.flags) {\r\n scene.flags = new Array();\r\n }\r\n });\r\n }\r\n\r\n startGame(): void {\r\n if (this.scenes.length > 0) {\r\n this.scenes.map(scene => {\r\n this.toggleFlagsForScene(\r\n scene.id,\r\n false\r\n );\r\n });\r\n\r\n this.currentScene =\r\n this.scenes.filter(scene => scene.id === this.initialSceneId)[0];\r\n }\r\n }\r\n\r\n getCurrentScene(): SceneModel {\r\n return this.currentScene;\r\n }\r\n\r\n getNumberOfScenes(): number {\r\n return this.scenes.length;\r\n }\r\n\r\n loadNextScene(toSceneId: number): void {\r\n if (this.scenes.length > 0) {\r\n this.currentScene =\r\n this.scenes.filter(scene => scene.id === toSceneId)[0];\r\n }\r\n }\r\n\r\n setFlagsForScene(sceneId: number): void {\r\n this.toggleFlagsForScene(\r\n sceneId,\r\n true\r\n );\r\n }\r\n\r\n allFlagsSetForLink(link: LinkModel): boolean {\r\n let allFlagsSet = true;\r\n\r\n link.flagReferences.map(flagReference => {\r\n const flagScene: SceneModel = this.scenes.filter(scene => {\r\n return scene.id === flagReference.sceneId;\r\n })[0];\r\n\r\n if (flagScene) {\r\n const linkFlag: FlagModel = flagScene.flags.filter(flag => {\r\n return flag.id === flagReference.id;\r\n })[0];\r\n\r\n if (linkFlag) {\r\n if (!linkFlag.isSet) {\r\n allFlagsSet = false;\r\n }\r\n } else {\r\n allFlagsSet = false;\r\n }\r\n } else {\r\n allFlagsSet = false;\r\n }\r\n });\r\n\r\n return allFlagsSet;\r\n }\r\n\r\n gameIsFinished(): boolean {\r\n return this.currentScene !== null && this.currentScene.links.length === 0;\r\n }\r\n\r\n // https://stackoverflow.com/questions/30106476/using-javascripts-atob-to-decode-base64-doesnt-properly-decode-utf-8-strings/30106551\r\n private b64DecodeWithUnicode(str): string {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c) => {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n }\r\n\r\n private toggleFlagsForScene(\r\n sceneId: number,\r\n value: boolean): void {\r\n if (this.scenes.length > 0) {\r\n const sceneToUpdate = this.scenes.filter(scene => {\r\n return scene.id === sceneId;\r\n })[0];\r\n\r\n if (sceneToUpdate) {\r\n const sceneIndexToUpdate = this.scenes.indexOf(sceneToUpdate);\r\n\r\n sceneToUpdate.flags.map(flag => {\r\n flag.isSet = value;\r\n });\r\n\r\n this.scenes[sceneIndexToUpdate] = sceneToUpdate;\r\n }\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/runner/scene/scene.service.ts","import { FlagModel } from '../models/flag-model';\r\n\r\nexport class FlagFactory {\r\n /**\r\n * Creates a new FlagModel object.\r\n */\r\n createFlag(\r\n id: number,\r\n sceneId: number,\r\n name: string,\r\n isSet: boolean\r\n ): FlagModel {\r\n return new FlagModel(\r\n id,\r\n sceneId,\r\n name,\r\n isSet\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/shared/factories/flag-factory.ts","import { FlagReferenceModel } from '../models/flag-reference-model';\r\n\r\nexport class FlagReferenceFactory {\r\n /**\r\n * Creates a new FlagReferenceModel object.\r\n */\r\n createFlagReference(\r\n id: number,\r\n sceneId: number\r\n ): FlagReferenceModel {\r\n return new FlagReferenceModel(\r\n id,\r\n sceneId\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/shared/factories/flag-reference-factory.ts","import { SceneModel } from '../models/scene-model';\r\nimport { GameModel } from '../models/game-model';\r\n\r\nexport class GameFactory {\r\n\r\n createGame(\r\n initialSceneId: number,\r\n scenes: SceneModel[]\r\n ): GameModel {\r\n return new GameModel(\r\n initialSceneId,\r\n scenes\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/shared/factories/game-factory.ts","import { LinkModel } from '../models/link-model';\r\nimport { FlagReferenceModel } from '../models/flag-reference-model';\r\nimport { FlagModel } from '../models/flag-model';\r\nimport { FlagReferenceFactory } from './flag-reference-factory';\r\n\r\nexport class LinkFactory {\r\n /**\r\n * Creates a new LinkModel object.\r\n */\r\n createLink(\r\n fromSceneId: number,\r\n toSceneId: number,\r\n displayText: string,\r\n flagReferences: FlagReferenceModel[]\r\n ): LinkModel {\r\n if (flagReferences === null ||\r\n flagReferences === undefined) {\r\n flagReferences = new Array();\r\n }\r\n\r\n return new LinkModel(\r\n fromSceneId,\r\n toSceneId,\r\n displayText,\r\n flagReferences\r\n );\r\n }\r\n\r\n /**\r\n * Creates a new LinkModel object.\r\n */\r\n createLinkFromFlags(\r\n fromSceneId: number,\r\n toSceneId: number,\r\n displayText: string,\r\n flags: FlagModel[]\r\n ): LinkModel {\r\n const flagReferences = new Array();\r\n\r\n if (flags !== null &&\r\n flags !== undefined) {\r\n\r\n flags.map(flag => {\r\n const frf = new FlagReferenceFactory();\r\n\r\n flagReferences.push(frf.createFlagReference(\r\n flag.id,\r\n flag.sceneId\r\n ));\r\n });\r\n }\r\n\r\n return new LinkModel(\r\n fromSceneId,\r\n toSceneId,\r\n displayText,\r\n flagReferences\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/shared/factories/link-factory.ts","import { SceneModel } from '../models/scene-model';\r\nimport { LinkModel } from '../models/link-model';\r\nimport { FlagModel } from '../models/flag-model';\r\n\r\nexport class SceneFactory {\r\n createScene(\r\n sceneId: number,\r\n header: string,\r\n description: string,\r\n imageUrl: string,\r\n links: LinkModel[],\r\n flags: FlagModel[]\r\n ): SceneModel {\r\n return new SceneModel(\r\n sceneId,\r\n header,\r\n description,\r\n imageUrl,\r\n links,\r\n flags\r\n );\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/shared/factories/scene-factory.ts","export class FlagModel {\r\n /**\r\n * Generates a new FlagModel object, when will be used to toggle Links in\r\n * the Runner.\r\n */\r\n constructor(\r\n id: number,\r\n sceneId: number,\r\n name: string,\r\n isSet: boolean\r\n ) {\r\n this.id = id;\r\n this.sceneId = sceneId;\r\n this.name = name;\r\n this.isSet = isSet;\r\n }\r\n\r\n id: number;\r\n sceneId: number;\r\n name: string;\r\n isSet: boolean;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/shared/models/flag-model.ts","export class FlagReferenceModel {\r\n /**\r\n * Generates a new FlagReferenceModel, which is how a Link will look up\r\n * its attached Flags.\r\n */\r\n constructor(\r\n id: number,\r\n sceneId: number\r\n ) {\r\n this.id = id;\r\n this.sceneId = sceneId;\r\n }\r\n\r\n id: number;\r\n sceneId: number;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/shared/models/flag-reference-model.ts","import { SceneModel } from './scene-model';\r\n\r\nexport class GameModel {\r\n /**\r\n * Generates a GameModel object, which houses the adventure-level information\r\n * for the entire game.\r\n */\r\n constructor(\r\n initialSceneId: number,\r\n scenes: SceneModel[]\r\n ) {\r\n this.initialSceneId = initialSceneId;\r\n this.scenes = scenes;\r\n }\r\n\r\n initialSceneId: number;\r\n scenes: SceneModel[];\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/shared/models/game-model.ts","import { FlagReferenceModel } from './flag-reference-model';\r\n\r\nexport class LinkModel {\r\n /**\r\n * Generates a new LinkModel object, to connect two Scenes together.\r\n */\r\n constructor(\r\n fromSceneId: number,\r\n toSceneId: number,\r\n displayText: string,\r\n flagReferences: FlagReferenceModel[]\r\n ) {\r\n this.fromSceneId = fromSceneId;\r\n this.toSceneId = toSceneId;\r\n this.displayText = displayText;\r\n this.flagReferences = flagReferences;\r\n }\r\n\r\n fromSceneId: number;\r\n toSceneId: number;\r\n displayText: string;\r\n flagReferences: FlagReferenceModel[];\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/shared/models/link-model.ts","import { LinkModel } from './link-model';\r\nimport { FlagModel } from './flag-model';\r\n\r\nexport class SceneModel {\r\n /**\r\n * Generates a new SceneModel object, which represents a scene of the adventure.\r\n */\r\n constructor(\r\n id: number,\r\n header: string,\r\n description: string,\r\n imageUrl: string,\r\n links: LinkModel[],\r\n flags: FlagModel[]\r\n ) {\r\n this.id = id;\r\n this.header = header;\r\n this.description = description;\r\n this.imageUrl = imageUrl;\r\n this.links = links;\r\n this.flags = flags;\r\n }\r\n\r\n id: number;\r\n header: string;\r\n description: string;\r\n imageUrl: string;\r\n links: LinkModel[];\r\n flags: FlagModel[];\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/shared/models/scene-model.ts","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule\n ],\n declarations: [],\n exports: [\n CommonModule,\n FormsModule\n ]\n})\nexport class SharedModule { }\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/app/shared/shared.module.ts","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `.angular-cli.json`.\n\nexport const environment = {\n production: false\n};\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/environments/environment.ts","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n\n\n\n// WEBPACK FOOTER //\n// C:/Repos/seeya/src/main.ts"],"sourceRoot":"webpack:///"}