{"version":3,"sources":["$_lazy_route_resource lazy namespace object","src/app/app.component.html","src/app/components/console/console.component.html","src/app/components/editor/editor.component.html","src/app/components/footer/footer.component.html","src/app/components/main.component.html","src/app/components/preview/preview.component.html","src/app/components/store/store.component.html","node_modules/tslib/tslib.es6.js","src/app/app-routing.module.ts","src/app/app.component.scss","src/app/app.component.ts","src/app/app.module.ts","src/app/components/console/console.component.scss","src/app/components/console/console.component.ts","src/app/components/editor/editor.completion.ts","src/app/components/editor/editor.component.scss","src/app/components/editor/editor.component.ts","src/app/components/editor/editor.initial.ts","src/app/components/editor/editor.theme.ts","src/app/components/footer/footer.component.scss","src/app/components/footer/footer.component.ts","src/app/components/main.component.scss","src/app/components/main.component.ts","src/app/components/preview/preview.component.scss","src/app/components/preview/preview.component.ts","src/app/components/preview/show-ttf.ts","src/app/components/store/store.component.scss","src/app/components/store/store.component.ts","src/environments/environment.ts","src/main.ts","fs (ignored)"],"names":[],"mappings":"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","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","export default \"\\n\"","export default \"
\\n\\t
\\n\\t\\t
Console:
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t

\\n\\t\\t\\t\\t{{line.text}}\\n\\t\\t\\t

\\n\\t\\t\\t

… limited to {{limit}} lines

\\n\\t\\t
\\n\\t
\\n
\\n\"","export default \"
\\n\\t
\\n\\t\\t\\n\\t\\t
\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n\\t\\n\\t
\\n\\t\\tFormat\\n\\t\\t
\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t
Running...
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t

File name is empty

\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t

Server error

\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t
Saving...
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t

Here is your embed link:

\\n\\t\\t\\t

The link is copied to the buffer

\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t

Play should be saved first

\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n
\\n\"","export default \"\\n\"","export default \"
\\n\\t\\n\\t\\t\\n \\t\\n\\t\\n\\t\\t\\n\\t\\tUniDoc Home\\n\\t\\n
\\n
\\n
\\n\\t\\n\\t\\n\\t\\n\\t\\n
\\n
\\n\\n
\\n\\t
\\n\\t
\\n\\t\\t

{{ serverError }}

\\n\\t\\t\\n\\t
\\n
\\n
\\n\\t
\\n\\t
\\n\\t\\t

Loading...

\\n\\t
\\n
\\n\"","export default \"
\\n\\t
\\n\\t\\t
Preview:
\\n\\t
\\n\\t
\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t
\\n
\\n\"","export default \"
\\n\\t
\\n\\t\\t
Filestore:
\\n\\t\\t
\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{ filename }}\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{ getSize(filename) }}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tX\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{ filename }}\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tX\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t

{{warning}}

\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t

Loading...

\\n\\t\\t
\\n\\t
\\n
\\n\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { MainComponent } from './components/main.component';\n\n\nconst routes: Routes = [\n\t{path: 'p/:playId', component: MainComponent},\n\t{path: '', component: MainComponent},\n];\n\n@NgModule({\n\timports: [RouterModule.forRoot(routes)],\n\texports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'app-root',\n\ttemplateUrl: './app.component.html',\n\tstyleUrls: ['./app.component.scss']\n})\n\nexport class AppComponent {}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor';\nimport { PdfJsViewerModule } from 'ng2-pdfjs-viewer';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { MainComponent } from './components/main.component';\nimport { EditorComponent } from './components/editor/editor.component';\nimport { PreviewComponent } from './components/preview/preview.component';\nimport { ConsoleComponent } from './components/console/console.component';\nimport { StoreComponent } from './components/store/store.component';\nimport { FooterComponent } from './components/footer/footer.component';\n\n@NgModule({\n\tdeclarations: [\n\t\tAppComponent,\n\t\tMainComponent,\n\t\tEditorComponent,\n\t\tPreviewComponent,\n\t\tConsoleComponent,\n\t\tStoreComponent,\n\t\tFooterComponent,\n\t],\n\timports: [\n\t\tBrowserModule,\n\t\tAppRoutingModule,\n\t\tFormsModule,\n\t\tMonacoEditorModule,\n\t\tPdfJsViewerModule,\n\t],\n\tproviders: [],\n\tbootstrap: [AppComponent]\n})\nexport class AppModule {}\n","export default \".console-area {\\n background: #F6F6F6;\\n height: 100%;\\n padding: 20px 0 20px 20px;\\n}\\n@media (max-width: 992px) {\\n .console-area {\\n min-height: 200px;\\n border-top: 1px solid #CCC;\\n padding: 20px 10px;\\n }\\n}\\n.console-area .console-wrapper {\\n height: calc(100% - 42px);\\n overflow-y: scroll;\\n}\\n.console-area .console-output {\\n padding: 0;\\n width: 100%;\\n height: 100%;\\n font-size: 10px;\\n font-family: \\\"Roboto Mono\\\", \\\"monospace\\\";\\n}\\n.console-area .console-output p {\\n margin: 0;\\n line-height: 1.6em;\\n}\\n.console-area .console-output .message {\\n color: #212529;\\n}\\n.console-area .console-output .error {\\n color: red;\\n}\\n.console-area .console-output .limited {\\n margin-top: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9nby9zcmMvZ2l0aHViLmNvbS91bmlkb2MvdW5pZG9jLXBsYXlncm91bmQvc3JjL2FwcC9jb21wb25lbnRzL2NvbnNvbGUvY29uc29sZS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9jb25zb2xlL2NvbnNvbGUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDQyxtQkFBQTtFQUNBLFlBQUE7RUFDQSx5QkFBQTtBQ0NEO0FEQUM7RUFKRDtJQUtFLGlCQUFBO0lBQ0EsMEJBQUE7SUFDQSxrQkFBQTtFQ0dBO0FBQ0Y7QURGQztFQUNDLHlCQUFBO0VBQ0Esa0JBQUE7QUNJRjtBREZDO0VBQ0MsVUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLHVDQUFBO0FDSUY7QURIRTtFQUNDLFNBQUE7RUFDQSxrQkFBQTtBQ0tIO0FESEU7RUFDQyxjQUFBO0FDS0g7QURIRTtFQUNDLFVBQUE7QUNLSDtBREhFO0VBQ0MsZ0JBQUE7QUNLSCIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29uc29sZS9jb25zb2xlLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnNvbGUtYXJlYSB7XG5cdGJhY2tncm91bmQ6ICNGNkY2RjY7XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZzogMjBweCAwIDIwcHggMjBweDtcblx0QG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG5cdFx0bWluLWhlaWdodDogMjAwcHg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNDQ0M7XG5cdFx0cGFkZGluZzogMjBweCAxMHB4O1xuXHR9XG5cdC5jb25zb2xlLXdyYXBwZXIge1xuXHRcdGhlaWdodDogY2FsYygxMDAlIC0gNDJweCk7XG5cdFx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHR9XG5cdC5jb25zb2xlLW91dHB1dCB7XG5cdFx0cGFkZGluZzogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nLCAnbW9ub3NwYWNlJztcblx0XHRwIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjZlbTtcblx0XHR9XG5cdFx0Lm1lc3NhZ2Uge1xuXHRcdFx0Y29sb3I6ICMyMTI1Mjk7XG5cdFx0fVxuXHRcdC5lcnJvciB7XG5cdFx0XHRjb2xvcjogcmVkO1xuXHRcdH1cblx0XHQubGltaXRlZCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdH1cblx0fVxufVxuIiwiLmNvbnNvbGUtYXJlYSB7XG4gIGJhY2tncm91bmQ6ICNGNkY2RjY7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMjBweCAwIDIwcHggMjBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuICAuY29uc29sZS1hcmVhIHtcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0NDQztcbiAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gIH1cbn1cbi5jb25zb2xlLWFyZWEgLmNvbnNvbGUtd3JhcHBlciB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNDJweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbi5jb25zb2xlLWFyZWEgLmNvbnNvbGUtb3V0cHV0IHtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LWZhbWlseTogXCJSb2JvdG8gTW9ub1wiLCBcIm1vbm9zcGFjZVwiO1xufVxuLmNvbnNvbGUtYXJlYSAuY29uc29sZS1vdXRwdXQgcCB7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNmVtO1xufVxuLmNvbnNvbGUtYXJlYSAuY29uc29sZS1vdXRwdXQgLm1lc3NhZ2Uge1xuICBjb2xvcjogIzIxMjUyOTtcbn1cbi5jb25zb2xlLWFyZWEgLmNvbnNvbGUtb3V0cHV0IC5lcnJvciB7XG4gIGNvbG9yOiByZWQ7XG59XG4uY29uc29sZS1hcmVhIC5jb25zb2xlLW91dHB1dCAubGltaXRlZCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\n\n\n@Component({\n\tselector: 'app-console',\n\ttemplateUrl: './console.component.html',\n\tstyleUrls: ['./console.component.scss']\n})\nexport class ConsoleComponent implements OnInit {\n\n\toutput = [];\n\tmore = false;\n\tlimit = 500;\n\n\tupdate(content, isError) {\n\t\tlet lines = content.replace(/ /g, \"\\u00A0\").split(\"\\n\")\n\t\tthis.more = lines.length > this.limit;\n\t\tlines = lines.slice(0, this.limit);\n\t\tlines.forEach(line => {\n\t\t\tthis.output.push({\n\t\t\t\ttext: line,\n\t\t\t\tisError,\n\t\t\t})\n\t\t})\n\t}\n\n\tclear() {\n\t\tthis.output = [];\n\t}\n\n\tgetClass(isError) {\n\t\treturn isError ? \"error\" : \"message\";\n\t}\n\n\tngOnInit() {\n\t}\n}\n","const commandRe = /\\s*([A-Za-z0-9_]+)\\.([A-Za-z0-9_]+)$/;\nconst wholePkgRe = /\\s*([A-Za-z0-9_]+)\\.$/;\nconst pkgRe = /\\s*([A-Za-z0-9_]+)$/;\nconst functionKind = monaco.languages.CompletionItemKind.Function;\nconst methodKind = monaco.languages.CompletionItemKind.Method;\n\nconst goCompletionProvider = {\n\tprovideCompletionItems: async (model, position) => {\n\t\tconst textUntilPosition = model.getValueInRange({startLineNumber: position.lineNumber, startColumn: 1, endLineNumber: position.lineNumber, endColumn: position.column});\n\t\tconst commandMatch = textUntilPosition.match(commandRe);\n\t\tconst wholePkgMatch = textUntilPosition.match(wholePkgRe);\n\t\tconst pkgMatch = textUntilPosition.match(pkgRe);\n\t\tif (commandMatch) {\n\t\t\tconst [_, briefPkg, cmd] = commandMatch;\n\t\t\tconst pkg = getFullPkgName(model, briefPkg);\n\t\t\treturn {\n\t\t\t\tsuggestions: await getSuggestions({pkg, cmd}, functionKind, getRange(model, position))\n\t\t\t}\n\t\t}\n\t\tif (wholePkgMatch) {\n\t\t\tconst [_, briefPkg] = wholePkgMatch;\n\t\t\tconst pkg = getFullPkgName(model, briefPkg);\n\t\t\treturn {\n\t\t\t\tsuggestions: await getSuggestions({pkg, cmd: \"-\"}, functionKind, getRange(model, position))\n\t\t\t}\n\t\t}\n\t\tif (pkgMatch) {\n\t\t\tconst [_, pkg] = pkgMatch;\n\t\t\treturn {\n\t\t\t\tsuggestions: await getSuggestions({pkg}, methodKind, getRange(model, position))\n\t\t\t}\n\t\t}\n\t\treturn { suggestions: [] };\n\t}\n};\n\nfunction getRange(model, position) {\n\tconst word = model.getWordUntilPosition(position);\n\treturn {\n\t\tstartLineNumber: position.lineNumber,\n\t\tendLineNumber: position.lineNumber,\n\t\tstartColumn: word.startColumn,\n\t\tendColumn: word.endColumn\n\t};\n}\n\nconst reOneLineImport = /\\n[\\t| ]*import(.*)\\\"(.*)\\\"[\\t| ]*/g;\nconst reMultiLineImport = /\\n[\\t| ]*import \\(([^)]+)\\)/g;\nconst reLine = /(.*)\\\"(.*)\\\"/;\n\nfunction getFullPkgName(model, briefPkg) {\n\tconst code = model.getValue();\n\tconst importsMap = {};\n\tlet oneMatch;\n\tdo {\n\t\toneMatch = reOneLineImport.exec(code);\n\t\tif (oneMatch) {\n\t\t\tconst alias = getAlias(oneMatch[1], oneMatch[2])\n\t\t\timportsMap[alias] = oneMatch[2];\n\t\t}\n\t} while (oneMatch);\n\tlet multiMatch;\n\tdo {\n\t\tmultiMatch = reMultiLineImport.exec(code);\n\t\tif (multiMatch) {\n\t\t\tconst lines = multiMatch[1].split(\"\\n\");\n\t\t\tlines.forEach(line => {\n\t\t\t\tconst lineMatch = reLine.exec(line);\n\t\t\t\tif (lineMatch) {\n\t\t\t\t\tconst alias = getAlias(lineMatch[1], lineMatch[2]);\n\t\t\t\t\timportsMap[alias] = lineMatch[2];\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t} while (multiMatch);\n\treturn importsMap[briefPkg] ? importsMap[briefPkg] : briefPkg;\n}\n\nfunction getAlias(alias, full) {\n\talias = alias.trim();\n\tif (!alias) {\n\t\tconst splitted = full.split(\"/\");\n\t\talias = splitted[splitted.length - 1];\n\t}\n\treturn alias;\n}\n\nasync function getSuggestions(body, kind, range) {\n\tconst resp = await fetch('/get-suggestions', {\n\t\t'method': 'POST',\n\t\t'body': JSON.stringify(body),\n\t\t'headers': {\n\t\t\t 'Content-Type': 'application/json',\n\t\t },\n\t});\n\tif (resp.status != 200) {\n\t\tconsole.error(resp);\n\t\treturn [];\n\t}\n\tconst response = await resp.json();\n\tconst suggestions = response ? response.map(suggestion => {\n\t\treturn {\n\t\t\t...suggestion,\n\t\t\trange,\n\t\t\tkind,\n\t\t}\n\t}) : [];\n\treturn suggestions;\n}\n\nexport default goCompletionProvider;\n","export default \".editor-area {\\n position: relative;\\n height: 100%;\\n}\\n.editor-area .editor-top {\\n height: 65px;\\n padding: 15px 31px;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-align: baseline;\\n align-items: baseline;\\n}\\n@media (max-width: 540px) {\\n .editor-area .editor-top {\\n display: block;\\n height: 100%;\\n padding: 15px;\\n }\\n}\\n.editor-area .editor-top input {\\n width: 100%;\\n min-width: 80px;\\n margin-right: 40px;\\n padding-bottom: 3px;\\n border: none;\\n border-bottom: 1px solid #ccc;\\n font-size: 17px;\\n}\\n@media (max-width: 540px) {\\n .editor-area .editor-top .editor-buttons {\\n margin-top: 20px;\\n margin-bottom: 5px;\\n -webkit-box-pack: start;\\n justify-content: flex-start;\\n }\\n}\\n.editor-area .editor-top .editor-buttons button {\\n margin-left: 8px;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-align: center;\\n align-items: center;\\n}\\n.editor-area .editor-top .editor-buttons button img {\\n vertical-align: middle;\\n margin-right: 8px;\\n}\\n.editor-area .editor-top .editor-buttons button span {\\n text-transform: capitalize;\\n}\\n.editor-area .editor-top .editor-buttons button:first-child {\\n margin-left: 0;\\n}\\n.editor-area .customMonacoEditor {\\n min-height: 365px;\\n height: calc(100% - 85px);\\n}\\n.editor-area .editor-bottom {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-align: center;\\n align-items: center;\\n background: #EBFAFE;\\n height: 20px;\\n padding: 0 20px;\\n border-top: 1px solid #CCC;\\n font-size: 10px;\\n}\\n.editor-area .editor-bottom .fmt,\\n.editor-area .editor-bottom .vim-toggle {\\n cursor: pointer;\\n}\\n.editor-area .editor-bottom .vim-toggle {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-align: center;\\n align-items: center;\\n margin-left: 15px;\\n}\\n.editor-area .editor-bottom .vim-toggle input {\\n margin: 0 0 1px 5px;\\n}\\n@media (max-width: 992px) {\\n .editor-area .editor-bottom .vim-toggle {\\n display: none;\\n }\\n}\\n.editor-area .embed-link-modal {\\n width: 500px;\\n}\\n.editor-area .embed-link-modal input {\\n width: 300px;\\n border: none;\\n border-bottom: 1px solid #CCC;\\n font-size: 12px;\\n color: #212529;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9nby9zcmMvZ2l0aHViLmNvbS91bmlkb2MvdW5pZG9jLXBsYXlncm91bmQvc3JjL2FwcC9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNDLGtCQUFBO0VBQ0EsWUFBQTtBQ0NEO0FEQUM7RUFDQyxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFNQSwyQkFBQTtVQUFBLHFCQUFBO0FDSEY7QURGRTtFQUpEO0lBS0UsY0FBQTtJQUNBLFlBQUE7SUFDQSxhQUFBO0VDS0Q7QUFDRjtBREhFO0VBQ0MsV0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLDZCQUFBO0VBQ0EsZUFBQTtBQ0tIO0FERkc7RUFERDtJQUVFLGdCQUFBO0lBQ0Esa0JBQUE7SUFDQSx1QkFBQTtZQUFBLDJCQUFBO0VDS0Y7QUFDRjtBREpHO0VBQ0MsZ0JBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSx5QkFBQTtVQUFBLG1CQUFBO0FDTUo7QURMSTtFQUNDLHNCQUFBO0VBQ0EsaUJBQUE7QUNPTDtBRExJO0VBQ0MsMEJBQUE7QUNPTDtBREpHO0VBQ0MsY0FBQTtBQ01KO0FERkM7RUFDQyxpQkFBQTtFQUNBLHlCQUFBO0FDSUY7QURGQztFQUNDLG9CQUFBO0VBQUEsYUFBQTtFQUNBLHlCQUFBO1VBQUEsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0VBQ0EsMEJBQUE7RUFDQSxlQUFBO0FDSUY7QURIRTs7RUFFQyxlQUFBO0FDS0g7QURIRTtFQUNDLG9CQUFBO0VBQUEsYUFBQTtFQUNBLHlCQUFBO1VBQUEsbUJBQUE7RUFDQSxpQkFBQTtBQ0tIO0FESkc7RUFDQyxtQkFBQTtBQ01KO0FESkc7RUFQRDtJQVFFLGFBQUE7RUNPRjtBQUNGO0FESkM7RUFDQyxZQUFBO0FDTUY7QURMRTtFQUNDLFlBQUE7RUFDQSxZQUFBO0VBQ0EsNkJBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtBQ09IIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmVkaXRvci1hcmVhIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdC5lZGl0b3ItdG9wIHtcblx0XHRoZWlnaHQ6IDY1cHg7XG5cdFx0cGFkZGluZzogMTVweCAzMXB4O1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDU0MHB4KSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IDE1cHg7XG5cdFx0fVxuXHRcdGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcblx0XHRpbnB1dCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1pbi13aWR0aDogODBweDtcblx0XHRcdG1hcmdpbi1yaWdodDogNDBweDtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAzcHg7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblx0XHRcdGZvbnQtc2l6ZTogMTdweDtcblx0XHR9XG5cdFx0LmVkaXRvci1idXR0b25zIHtcblx0XHRcdEBtZWRpYSAobWF4LXdpZHRoOiA1NDBweCkge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHRcdH1cblx0XHRcdGJ1dHRvbiB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA4cHg7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDhweDtcblx0XHRcdFx0fVxuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0YnV0dG9uOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5jdXN0b21Nb25hY29FZGl0b3Ige1xuXHRcdG1pbi1oZWlnaHQ6IDM2NXB4O1xuXHRcdGhlaWdodDogY2FsYygxMDAlIC0gODVweCk7XG5cdH1cblx0LmVkaXRvci1ib3R0b20ge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kOiAjRUJGQUZFO1xuXHRcdGhlaWdodDogMjBweDtcblx0XHRwYWRkaW5nOiAwIDIwcHg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNDQ0M7XG5cdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdC5mbXQsXG5cdFx0LnZpbS10b2dnbGUge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdH1cblx0XHQudmltLXRvZ2dsZSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxNXB4O1xuXHRcdFx0aW5wdXQge1xuXHRcdFx0XHRtYXJnaW46IDAgMCAxcHggNXB4O1xuXHRcdFx0fVxuXHRcdFx0QG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5lbWJlZC1saW5rLW1vZGFsIHtcblx0XHR3aWR0aDogNTAwcHg7XG5cdFx0aW5wdXQge1xuXHRcdFx0d2lkdGg6IDMwMHB4O1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0M7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRjb2xvcjogIzIxMjUyOTtcblx0XHR9XG5cdH1cbn1cbiIsIi5lZGl0b3ItYXJlYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmVkaXRvci1hcmVhIC5lZGl0b3ItdG9wIHtcbiAgaGVpZ2h0OiA2NXB4O1xuICBwYWRkaW5nOiAxNXB4IDMxcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NDBweCkge1xuICAuZWRpdG9yLWFyZWEgLmVkaXRvci10b3Age1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICB9XG59XG4uZWRpdG9yLWFyZWEgLmVkaXRvci10b3AgaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiA4MHB4O1xuICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIGZvbnQtc2l6ZTogMTdweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NDBweCkge1xuICAuZWRpdG9yLWFyZWEgLmVkaXRvci10b3AgLmVkaXRvci1idXR0b25zIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbn1cbi5lZGl0b3ItYXJlYSAuZWRpdG9yLXRvcCAuZWRpdG9yLWJ1dHRvbnMgYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5lZGl0b3ItYXJlYSAuZWRpdG9yLXRvcCAuZWRpdG9yLWJ1dHRvbnMgYnV0dG9uIGltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLmVkaXRvci1hcmVhIC5lZGl0b3ItdG9wIC5lZGl0b3ItYnV0dG9ucyBidXR0b24gc3BhbiB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuLmVkaXRvci1hcmVhIC5lZGl0b3ItdG9wIC5lZGl0b3ItYnV0dG9ucyBidXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5lZGl0b3ItYXJlYSAuY3VzdG9tTW9uYWNvRWRpdG9yIHtcbiAgbWluLWhlaWdodDogMzY1cHg7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gODVweCk7XG59XG4uZWRpdG9yLWFyZWEgLmVkaXRvci1ib3R0b20ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjRUJGQUZFO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNDQ0M7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cbi5lZGl0b3ItYXJlYSAuZWRpdG9yLWJvdHRvbSAuZm10LFxuLmVkaXRvci1hcmVhIC5lZGl0b3ItYm90dG9tIC52aW0tdG9nZ2xlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmVkaXRvci1hcmVhIC5lZGl0b3ItYm90dG9tIC52aW0tdG9nZ2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG59XG4uZWRpdG9yLWFyZWEgLmVkaXRvci1ib3R0b20gLnZpbS10b2dnbGUgaW5wdXQge1xuICBtYXJnaW46IDAgMCAxcHggNXB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5lZGl0b3ItYXJlYSAuZWRpdG9yLWJvdHRvbSAudmltLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmVkaXRvci1hcmVhIC5lbWJlZC1saW5rLW1vZGFsIHtcbiAgd2lkdGg6IDUwMHB4O1xufVxuLmVkaXRvci1hcmVhIC5lbWJlZC1saW5rLW1vZGFsIGlucHV0IHtcbiAgd2lkdGg6IDMwMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjMjEyNTI5O1xufSJdfQ== */\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { Router } from \"@angular/router\";\nimport { MonacoEditorLoaderService } from '@materia-ui/ngx-monaco-editor';\nimport { initVimMode } from 'monaco-vim';\nimport { filter, take } from 'rxjs/operators';\nimport unidocTheme from './editor.theme';\nimport initialCode from './editor.initial';\nimport goCompletionProvider from './editor.completion';\n\n@Component({\n\tselector: 'app-editor',\n\ttemplateUrl: './editor.component.html',\n\tstyleUrls: ['./editor.component.scss']\n})\n\nexport class EditorComponent implements OnInit {\n\t@Output() downloadCodeEvent = new EventEmitter();\n\t@Output() updateConsoleEvent = new EventEmitter();\n\t@Output() clearConsoleEvent = new EventEmitter();\n\t@Output() showOutputEvent = new EventEmitter();\n\t@Output() addOutputToStoreEvent = new EventEmitter();\n\t@Output() assignNewPlayIdEvent = new EventEmitter();\n\t@Input() storeFiles: Object;\n\n\tmonacoOptions = {\n\t\ttheme: 'UnidocTheme',\n\t\tlanguage: 'go',\n\t};\n\n\tcode;\n\ttitle = '';\n\tplayLink = '';\n\tplayId = '';\n\tlastModified = null;\n\tembedLink = '';\n\tvimMode;\n\tvimModeOn = false;\n\tmonacoEditor;\n\terrLines = [];\n\tshowRunModal = false;\n\tshowEmptyFileModal = false;\n\tshowServerErrorModal = false;\n\tshowEmbedLinkModal = false;\n\tsaveInProcess = false;\n\tshowCopyMessage = false;\n\tshowNoSaveModal = false;\n\treErr = /(playground.go|tmp.go):([0-9]+)(:| )/g\n\n\tconstructor(private monacoLoaderService: MonacoEditorLoaderService, private router: Router) {\n\t\tthis.resetPlay();\n\t\tthis.monacoLoaderService.isMonacoLoaded$.pipe(\n\t\t\tfilter(isLoaded => isLoaded),\n\t\t\ttake(1),\n\t\t).subscribe(() => {\n\t\t\tconst {monaco} = (window as any);\n\t\t\tmonaco.editor.defineTheme('UnidocTheme', unidocTheme);\n\t\t\tmonaco.languages.registerCompletionItemProvider('go', goCompletionProvider);\n\t\t});\n\t}\n\n\tngOnInit() {}\n\n\tmonacoInit(editor) {\n\t\teditor.onDidScrollChange(() => this.highlightErrLines());\n\t\tthis.monacoEditor = editor;\n\t}\n\n\ttoggleVimMode() {\n\t\tif (this.vimModeOn) {\n\t\t\tthis.vimMode = initVimMode(this.monacoEditor, null);\n\t\t} else {\n\t\t\tthis.vimMode.dispose();\n\t\t}\n\t\tthis.monacoEditor.focus();\n\t}\n\n\tasync runCode() {\n\t\tthis.clearConsoleEvent.emit();\n\t\tthis.clearHighlights();\n\t\tthis.showRunModal = true;\n\t\tconst play = {\n\t\t\tCode: this.code,\n\t\t\tFiles: Object.values(this.storeFiles),\n\t\t}\n\t\tconst resp = await fetch('/api/run', {\n\t\t\t'method': 'POST',\n\t\t\t'body': JSON.stringify(play),\n\t\t\t'headers': {\n\t\t\t\t 'Content-Type': 'application/json',\n\t\t\t\t 'Pass-Next-Get': 'on',\n\t\t\t },\n\t\t});\n\t\tthis.hideRunModal()\n\t\tif (resp.status == 200) {\n\t\t\tconst result = await resp.json();\n\t\t\tthis.code = result.Code;\n\t\t\tif (result.Stdout) {\n\t\t\t\tthis.updateConsoleEvent.emit({\n\t\t\t\t\tcontent: result.Stdout,\n\t\t\t\t\tisError: false\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (result.Stderr) {\n\t\t\t\tthis.updateConsoleEvent.emit({\n\t\t\t\t\tcontent: result.Stderr,\n\t\t\t\t\tisError: true\n\t\t\t\t});\n\t\t\t\tconst errIter = result.Stderr.matchAll(this.reErr);\n\t\t\t\twhile (true) {\n\t\t\t\t\tconst {value, done} = errIter.next();\n\t\t\t\t\tif (done || value.length < 3) {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tconst errLine = Number(value[2]);\n\t\t\t\t\tif (!isNaN(errLine)) {\n\t\t\t\t\t\tthis.highlightErrLine(errLine)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result.Modified && result.Modified.length) {\n\t\t\t\tthis.lastModified = result.Modified[result.Modified.length - 1];\n\t\t\t\tthis.addOutputToStoreEvent.emit(result.Modified);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.error(\"Run error:\", await resp.text());\n\t\t\tthis.showServerErrorModal = true;\n\t\t}\n\t}\n\n\tdownloadCode() {\n\t\tif (this.title.length > 0) {\n\t\t\tthis.downloadCodeEvent.emit({\n\t\t\t\ttitle: this.title,\n\t\t\t\tcode: this.code,\n\t\t\t});\n\t\t} else {\n\t\t\tthis.showEmptyFileModal = true;\n\t\t}\n\t}\n\tasync savePlay() {\n\t\tthis.saveInProcess = true;\n\t\tconst files = Object.values(this.storeFiles);\n\t\tconst play = {\n\t\t\tCode: this.code,\n\t\t\tTitle: this.title,\n\t\t\tOutputFilename: this.lastModified ? this.lastModified.Filename : \"\",\n\t\t\tFiles: files,\n\t\t}\n\t\tconst resp = await fetch('/api', {\n\t\t\t'method': 'POST',\n\t\t\t'body': JSON.stringify(play),\n\t\t\t'headers': {\n\t\t\t\t 'Content-Type': 'application/json',\n\t\t\t\t 'Pass-Next-Get': 'on',\n\t\t\t },\n\t\t});\n\t\tthis.saveInProcess = false;\n\t\tif (resp.status == 200) {\n\t\t\tthis.showOutputEvent.emit(this.lastModified);\n\t\t\tconst newPlayId = await resp.text();\n\t\t\tconst playLink = '/p/' + newPlayId;\n\t\t\tthis.copySaveLink(window.location.origin + playLink);\n\t\t\tthis.playId = newPlayId;\n\t\t\tthis.assignNewPlayIdEvent.emit(newPlayId);\n\t\t\tthis.router.navigate([playLink]);\n\t\t} else if (await resp.text() === \"The title is empty\") {\n\t\t\tthis.showEmptyFileModal = true;\n\t\t} else {\n\t\t\tthis.showServerErrorModal = true;\n\t\t}\n\t}\n\tasync embedPlay() {\n\t\tif (this.playId) {\n\t\t\tconst { origin } = window.location;\n\t\t\tthis.embedLink = `
`\n\t\t\tthis.showEmbedLinkModal = true;\n\t\t} else {\n\t\t\tthis.showNoSaveModal = true;\n\t\t}\n\t}\n\tcopySaveLink(playLink) {\n\t\tconst input = document.createElement(\"input\")\n\t\tinput.setAttribute(\"id\", \"hidden-input\")\n\t\tdocument.body.appendChild(input);\n\t\tinput.value = playLink\n\t\tthis.copyLink(input)\n\t}\n\tcopyEmbedLink() {\n\t\tconst input = document.getElementById(\"embed-link\");\n\t\tthis.copyLink(input);\n\t\tthis.showCopyMessage = true;\n\t}\n\tcopyLink(input) {\n\t\tinput.setAttribute('contenteditable', 'true');\n\t\tinput.focus();\n\t\tdocument.execCommand('selectAll');\n\t\tdocument.execCommand('copy');\n\t\tinput.setAttribute('contenteditable', 'false');\n\t\tinput.blur();\n\t}\n\tupdate({Id, Title, Code, OutputFilename}) {\n\t\tif (Id == \"\") {\n\t\t\tthis.resetPlay();\n\t\t\tthis.router.navigate(['/']);\n\t\t\treturn;\n\t\t}\n\t\tthis.playId = Id;\n\t\tthis.title = Title;\n\t\tthis.code = Code;\n\t\tthis.lastModified = OutputFilename;\n\t}\n\tupdateCode(code) {\n\t\tthis.code = code;\n\t}\n\tresetPlay() {\n\t\tthis.code = initialCode;\n\t\tthis.playId = \"\";\n\t\tthis.title = \"\";\n\t\tthis.lastModified = \"\";\n\t}\n\thideRunModal() {\n\t\tthis.showRunModal = false;\n\t}\n\thideEmptyFileModal() {\n\t\tthis.showEmptyFileModal = false;\n\t}\n\thideServerErrorModal() {\n\t\tthis.showServerErrorModal = false;\n\t}\n\thideEmbedLinkModal() {\n\t\tthis.embedLink = '';\n\t\tthis.showEmbedLinkModal = false;\n\t\tthis.showCopyMessage = false;\n\t}\n\thideNoSaveModal() {\n\t\tthis.showNoSaveModal = false;\n\t}\n\tpanic(message) {\n\t\tthis.showRunModal = false;\n\t\tthis.updateConsoleEvent.emit({\n\t\t\tcontent: `panic: ${JSON.stringify(message)}`,\n\t\t\tisError: true\n\t\t});\n\t}\n\thighlightErrLine(errLine) {\n\t\tthis.errLines.push(errLine);\n\t\tthis.highlightErrLines();\n\t\tthis.monacoEditor.revealLineInCenter(this.errLines[0]);\n\t}\n\thighlightErrLines() {\n\t\tconst numberBlocks = document.getElementsByClassName(\"line-numbers\");\n\t\tsetTimeout(() => {\n\t\t\tfor (let i = 0; i < numberBlocks.length; i++) {\n\t\t\t\tconst block = numberBlocks[i];\n\t\t\t\tif (this.errLines.includes(Number(block.innerHTML))) {\n\t\t\t\t\t(block.parentNode as HTMLElement).classList.add(\"error-line\");\n\t\t\t\t}\n\t\t\t}\n\t\t}, 100);\n\t}\n\tclearHighlights() {\n\t\tconst numberBlocks = document.getElementsByClassName(\"line-numbers\");\n\t\tfor (let i = 0; i < numberBlocks.length; i++) {\n\t\t\t(numberBlocks[i].parentNode as HTMLElement).classList.remove(\"error-line\");\n\t\t}\n\t\tthis.errLines = [];\n\t}\n}\n","const initialCode = `package main\n\nimport (\n\t\"bytes\"\n\t\"time\"\n\t\"log\"\n\n\t\"github.com/unidoc/unipdf/v3/creator\"\n\t\"github.com/unidoc/unipdf/v3/model\"\n)\n\nfunc main() {\n\tc := creator.New()\n\tc.SetPageMargins(50, 50, 100, 70)\n\n\thelvetica, _ := model.NewStandard14Font(\"Helvetica\")\n\thelveticaBold, _ := model.NewStandard14Font(\"Helvetica-Bold\")\n\n\tp := c.NewParagraph(\"UniDoc\")\n\tp.SetFont(helvetica)\n\tp.SetFontSize(48)\n\tp.SetMargins(15, 0, 150, 0)\n\tp.SetColor(creator.ColorRGBFrom8bit(56, 68, 77))\n\tc.Draw(p)\n\n\tp = c.NewParagraph(\"Example Page\")\n\tp.SetFont(helveticaBold)\n\tp.SetFontSize(30)\n\tp.SetMargins(15, 0, 0, 0)\n\tp.SetColor(creator.ColorRGBFrom8bit(45, 148, 215))\n\tc.Draw(p)\n\n\tt := time.Now().UTC()\n\tdateStr := t.Format(\"1 Jan, 2006 15:04\")\n\n\tp = c.NewParagraph(dateStr)\n\tp.SetFont(helveticaBold)\n\tp.SetFontSize(12)\n\tp.SetMargins(15, 0, 5, 60)\n\tp.SetColor(creator.ColorRGBFrom8bit(56, 68, 77))\n\tc.Draw(p)\n\n\tloremTxt := \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt\" +\n\t\t\"ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut \" +\n\t\t\"aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore\" +\n\t\t\"eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt \" +\n\t\t\"mollit anim id est laborum.\"\n\n\tp = c.NewParagraph(loremTxt)\n\tp.SetFontSize(16)\n\tp.SetColor(creator.ColorBlack)\n\tp.SetLineHeight(1.5)\n\tp.SetMargins(0, 0, 5, 0)\n\tp.SetTextAlignment(creator.TextAlignmentJustify)\n\tc.Draw(p)\n\n\terr := c.WriteToFile(\"report.pdf\")\n\tif err != nil {\n\t\tlog.Println(\"Write file error:\", err)\n\t}\n}`;\n\nexport default initialCode;\n","const unidocTheme = {\n\tbase: 'vs',\n\tinherit: true,\n\trules: [\n\t\t{ token: '', foreground: '000000', background: 'EBFAFE' },\n\t\t{ token: 'string', foreground: '#DD1144' },\n\t\t{ token: 'string.key.json', foreground: '#DD1144' },\n\t\t{ token: 'keyword', foreground: '#0086B3' },\n\t],\n\tcolors: {\n\t\t'editor.background': '#EBFAFE',\n\t\t'editor.foreground': '#000',\n\t\t'editor.selectionBackground': '#B5D4FB',\n\t\t'editor.lineHighlightBackground': '#F7EFC9',\n\t\t'editor.lineHighlightBorder': '#F7EFC9',\n\t\t'editorGutter.background': '#CCE9F2',\n\t\t'editorLineNumber.foreground': '#AAA',\n\t\t'scrollbarSlider.background': '#EBFAFE',\n\t}\n};\n\nexport default unidocTheme;\n","export default \"footer {\\n margin: 50px 0;\\n width: 100%;\\n text-align: center;\\n font-size: 65%;\\n font-weight: 400;\\n}\\nfooter span:first-child {\\n display: block;\\n margin-bottom: 5px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9nby9zcmMvZ2l0aHViLmNvbS91bmlkb2MvdW5pZG9jLXBsYXlncm91bmQvc3JjL2FwcC9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNDLGNBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7QUNDRDtBREFDO0VBQ0MsY0FBQTtFQUNBLGtCQUFBO0FDRUYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJmb290ZXIge1xuXHRtYXJnaW46IDUwcHggMDtcblx0d2lkdGg6IDEwMCU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC1zaXplOiA2NSU7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdHNwYW46Zmlyc3QtY2hpbGQge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0fVxufVxuIiwiZm9vdGVyIHtcbiAgbWFyZ2luOiA1MHB4IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogNjUlO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuZm9vdGVyIHNwYW46Zmlyc3QtY2hpbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'app-footer',\n\ttemplateUrl: './footer.component.html',\n\tstyleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit {\n\tplaygroundVersion;\n\n\tngOnInit() {\n\t\tfetch('assets/playground_version.txt').then(resp => resp.text()).then(hash => this.playgroundVersion = hash.slice(0,6));\n\t}\n}\n","export default \".top {\\n padding: 14px 24px 13px 16px;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n}\\n@media (max-width: 540px) {\\n .top {\\n padding: 14px 6px 13px 0;\\n }\\n}\\n.top a {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-align: center;\\n align-items: center;\\n text-decoration: none !important;\\n color: rgba(0, 0, 0, 0.9);\\n}\\n.top a span {\\n padding-bottom: 3px;\\n font-size: 13px;\\n}\\n@media (max-width: 512px) {\\n .top a span {\\n display: none;\\n }\\n}\\n.main-grid-wrapper,\\n.main-stacked-view {\\n border: 1px solid #DDD;\\n}\\n.main-grid-wrapper {\\n background-color: #DDD;\\n overflow: hidden;\\n min-height: 800px;\\n height: calc(100% - 163px);\\n}\\n.main-grid-wrapper .main-grid {\\n min-height: 800px;\\n height: 100%;\\n display: grid;\\n grid-gap: 2px;\\n grid-template-columns: 50% 50%;\\n grid-template-rows: calc(100% - 350px) 350px;\\n}\\n.main-grid-wrapper .main-grid > * {\\n background-color: white;\\n}\\n.main-grid-wrapper .main-grid #editor {\\n -webkit-box-ordinal-group: 2;\\n order: 1;\\n}\\n.main-grid-wrapper .main-grid #preview {\\n -webkit-box-ordinal-group: 3;\\n order: 2;\\n}\\n.main-grid-wrapper .main-grid #console {\\n -webkit-box-ordinal-group: 4;\\n order: 3;\\n}\\n.main-grid-wrapper .main-grid #store {\\n -webkit-box-ordinal-group: 5;\\n order: 4;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9nby9zcmMvZ2l0aHViLmNvbS91bmlkb2MvdW5pZG9jLXBsYXlncm91bmQvc3JjL2FwcC9jb21wb25lbnRzL21haW4uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvbWFpbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNDLDRCQUFBO0VBQ0Esb0JBQUE7RUFBQSxhQUFBO0VBQ0EseUJBQUE7VUFBQSw4QkFBQTtBQ0NEO0FEQUM7RUFKRDtJQUtFLHdCQUFBO0VDR0E7QUFDRjtBREZDO0VBQ0Msb0JBQUE7RUFBQSxhQUFBO0VBQ0EseUJBQUE7VUFBQSxtQkFBQTtFQUNBLGdDQUFBO0VBQ0EseUJBQUE7QUNJRjtBREhFO0VBQ0MsbUJBQUE7RUFDQSxlQUFBO0FDS0g7QURKRztFQUhEO0lBSUUsYUFBQTtFQ09GO0FBQ0Y7QURIQTs7RUFFQyxzQkFBQTtBQ01EO0FESkE7RUFDQyxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSwwQkFBQTtBQ09EO0FETkM7RUFDQyxpQkFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO0VBQ0EsNENBQUE7QUNRRjtBRFBFO0VBQ0MsdUJBQUE7QUNTSDtBRFBFO0VBQ0MsNEJBQUE7VUFBQSxRQUFBO0FDU0g7QURQRTtFQUNDLDRCQUFBO1VBQUEsUUFBQTtBQ1NIO0FEUEU7RUFDQyw0QkFBQTtVQUFBLFFBQUE7QUNTSDtBRFBFO0VBQ0MsNEJBQUE7VUFBQSxRQUFBO0FDU0giLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21haW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudG9wIHtcblx0cGFkZGluZzogMTRweCAyNHB4IDEzcHggMTZweDtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRAbWVkaWEgKG1heC13aWR0aDogNTQwcHgpIHtcblx0XHRwYWRkaW5nOiAxNHB4IDZweCAxM3B4IDA7XG5cdH1cblx0YSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG5cdFx0c3BhbiB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogM3B4O1xuXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0QG1lZGlhIChtYXgtd2lkdGg6IDUxMnB4KSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4ubWFpbi1ncmlkLXdyYXBwZXIsXG4ubWFpbi1zdGFja2VkLXZpZXcge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjREREO1xufVxuLm1haW4tZ3JpZC13cmFwcGVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI0RERDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0bWluLWhlaWdodDogODAwcHg7XG5cdGhlaWdodDogY2FsYygxMDAlIC0gMTYzcHgpO1xuXHQubWFpbi1ncmlkIHtcblx0XHRtaW4taGVpZ2h0OiA4MDBweDtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLWdhcDogMnB4O1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTAlIDUwJTtcblx0XHRncmlkLXRlbXBsYXRlLXJvd3M6IGNhbGMoMTAwJSAtIDM1MHB4KSAzNTBweDtcblx0XHQmID4gKiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHR9XG5cdFx0I2VkaXRvciB7XG5cdFx0XHRvcmRlcjogMTtcblx0XHR9XG5cdFx0I3ByZXZpZXcge1xuXHRcdFx0b3JkZXI6IDI7XG5cdFx0fVxuXHRcdCNjb25zb2xlIHtcblx0XHRcdG9yZGVyOiAzO1xuXHRcdH1cblx0XHQjc3RvcmUge1xuXHRcdFx0b3JkZXI6IDQ7XG5cdFx0fVxuXHR9XG59XG4iLCIudG9wIHtcbiAgcGFkZGluZzogMTRweCAyNHB4IDEzcHggMTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU0MHB4KSB7XG4gIC50b3Age1xuICAgIHBhZGRpbmc6IDE0cHggNnB4IDEzcHggMDtcbiAgfVxufVxuLnRvcCBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG59XG4udG9wIGEgc3BhbiB7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1MTJweCkge1xuICAudG9wIGEgc3BhbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4ubWFpbi1ncmlkLXdyYXBwZXIsXG4ubWFpbi1zdGFja2VkLXZpZXcge1xuICBib3JkZXI6IDFweCBzb2xpZCAjREREO1xufVxuXG4ubWFpbi1ncmlkLXdyYXBwZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREREO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4taGVpZ2h0OiA4MDBweDtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNjNweCk7XG59XG4ubWFpbi1ncmlkLXdyYXBwZXIgLm1haW4tZ3JpZCB7XG4gIG1pbi1oZWlnaHQ6IDgwMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiAycHg7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTAlIDUwJTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBjYWxjKDEwMCUgLSAzNTBweCkgMzUwcHg7XG59XG4ubWFpbi1ncmlkLXdyYXBwZXIgLm1haW4tZ3JpZCA+ICoge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5tYWluLWdyaWQtd3JhcHBlciAubWFpbi1ncmlkICNlZGl0b3Ige1xuICBvcmRlcjogMTtcbn1cbi5tYWluLWdyaWQtd3JhcHBlciAubWFpbi1ncmlkICNwcmV2aWV3IHtcbiAgb3JkZXI6IDI7XG59XG4ubWFpbi1ncmlkLXdyYXBwZXIgLm1haW4tZ3JpZCAjY29uc29sZSB7XG4gIG9yZGVyOiAzO1xufVxuLm1haW4tZ3JpZC13cmFwcGVyIC5tYWluLWdyaWQgI3N0b3JlIHtcbiAgb3JkZXI6IDQ7XG59Il19 */\"","import { Component, ViewChild, NgZone } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { StoreComponent } from './store/store.component';\nimport { EditorComponent } from './editor/editor.component';\nimport { PreviewComponent } from './preview/preview.component';\nimport { ConsoleComponent } from './console/console.component';\n\n@Component({\n\tselector: 'app-main',\n\ttemplateUrl: './main.component.html',\n\tstyleUrls: ['./main.component.scss']\n})\n\nexport class MainComponent {\n\n\t@ViewChild('store', {static: false}) store:StoreComponent;\n\t@ViewChild('editor', {static: false}) editor:EditorComponent;\n\t@ViewChild('preview', {static: false}) preview:PreviewComponent;\n\t@ViewChild('console', {static: false}) console:ConsoleComponent;\n\n\tconstructor(private route: ActivatedRoute){\n\t}\n\n\tngOnInit(){\n\t\twindow.addEventListener('resize', () => this.setView())\n\t\tthis.setView();\n\t\tconst { playId } = this.route.snapshot.params;\n\t\tif (playId && playId.length) {\n\t\t\tthis.fetchPlayFromBackend(playId);\n\t\t} else {\n\t\t\tthis.pingBackend()\n\t\t}\n\t}\n\n\tserverError = '';\n\tshowLoadingModal = false;\n\tstackedView = false;\n\n\tsetView() {\n\t\tthis.stackedView = window.innerWidth < 992;\n\t}\n\n\tasync fetchPlayFromBackend(playId) {\n\t\tthis.showLoadingModal = true;\n\t\tconst resp = await fetch(`/api/get-play/${playId}`);\n\t\tif (resp.status == 200) {\n\t\t\tconst play = await resp.json();\n\t\t\tthis.updatePlay(play);\n\t\t} else {\n\t\t\tthis.serverError = 'Play not found';\n\t\t}\n\t\tthis.showLoadingModal = false;\n\t}\n\n\tasync pingBackend() {\n\t\tawait fetch(\"/api/ping\");\n\t}\n\n\thideServerErrorModal() {\n\t\tthis.serverError = '';\n\t}\n\taddOutputToStore(modified) {\n\t\tmodified.forEach(file => this.store.addDocumentToStore(file));\n\t\tthis.store.selectDocumentForPreview(modified[modified.length - 1].Filename);\n\t\tthis.editor.hideRunModal();\n\t}\n\tupdateEditor(code) {\n\t\tthis.editor.updateCode(code);\n\t}\n\tupdatePlay({Id, Title, Code, OutputFilename, Files}) {\n\t\tthis.editor.update({Id, Title, Code, OutputFilename});\n\t\tthis.store.updateEditorFiles(Files, OutputFilename);\n\t}\n\tshowOutput(filename){\n\t\tthis.store.selectDocumentForPreview(filename);\n\t}\n\tdownloadCode(data) {\n\t\tthis.store.downloadCode(data);\n\t}\n\tupdateConsole({content, isError}) {\n\t\tthis.console.update(content, isError);\n\t}\n\tclearConsole() {\n\t\tthis.console.clear();\n\t}\n\tpreviewDocfile(b64url) {\n\t\tthis.preview.previewDocfile(b64url);\n\t}\n\n\tstoreFiles = {};\n\taddToStore(file) {\n\t\tthis.storeFiles[file.Filename] = file;\n\t}\n\tremoveFromStore(name) {\n\t\tdelete this.storeFiles[name];\n\t}\n\tresetStore() {\n\t\tthis.storeFiles = {};\n\t}\n\tassignNewPlayId(newPlayId) {\n\t\tObject.keys(this.storeFiles).forEach(name => this.storeFiles[name].PlayId = newPlayId)\n\t}\n}\n","export default \".preview {\\n height: calc(100% - 20px);\\n overflow: hidden;\\n padding: 20px 0 20px 20px;\\n}\\n@media (max-width: 992px) {\\n .preview {\\n height: 500px;\\n border-top: 1px solid #CCC;\\n padding: 20px 10px;\\n }\\n}\\n.preview #preview-parent {\\n width: 100%;\\n height: calc(100% - 20px);\\n}\\n.preview #preview-parent iframe {\\n width: calc(100% - 20px);\\n height: calc(100% - 24px);\\n border: 1px solid #ccc;\\n}\\n.preview #preview-parent #font-preview {\\n border: 1px solid #ccc;\\n}\\n.preview #preview-parent .image-preview {\\n max-height: 250px;\\n max-width: 650px;\\n}\\n.preview #preview-parent .hidden {\\n visibility: hidden;\\n height: 0;\\n width: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9nby9zcmMvZ2l0aHViLmNvbS91bmlkb2MvdW5pZG9jLXBsYXlncm91bmQvc3JjL2FwcC9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDQyx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EseUJBQUE7QUNDRDtBREFDO0VBSkQ7SUFLRSxhQUFBO0lBQ0EsMEJBQUE7SUFDQSxrQkFBQTtFQ0dBO0FBQ0Y7QURGQztFQUNDLFdBQUE7RUFDQSx5QkFBQTtBQ0lGO0FESEU7RUFDQyx3QkFBQTtFQUNBLHlCQUFBO0VBQ0Esc0JBQUE7QUNLSDtBREhFO0VBQ0Msc0JBQUE7QUNLSDtBREhFO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTtBQ0tIO0FESEU7RUFDQyxrQkFBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0FDS0giLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5wcmV2aWV3IHtcblx0aGVpZ2h0OiBjYWxjKDEwMCUgLSAyMHB4KTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZzogMjBweCAwIDIwcHggMjBweDtcblx0QG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG5cdFx0aGVpZ2h0OiA1MDBweDtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI0NDQztcblx0XHRwYWRkaW5nOiAyMHB4IDEwcHg7XG5cdH1cblx0I3ByZXZpZXctcGFyZW50IHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGNhbGMoMTAwJSAtIDIwcHgpO1xuXHRcdGlmcmFtZSB7XG5cdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0cHgpO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcblx0XHR9XG5cdFx0I2ZvbnQtcHJldmlldyB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuXHRcdH1cblx0XHQuaW1hZ2UtcHJldmlldyB7XG5cdFx0XHRtYXgtaGVpZ2h0OiAyNTBweDtcblx0XHRcdG1heC13aWR0aDogNjUwcHg7XG5cdFx0fVxuXHRcdC5oaWRkZW4ge1xuXHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0fVxuXHR9XG59XG4iLCIucHJldmlldyB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMjBweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDIwcHggMCAyMHB4IDIwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLnByZXZpZXcge1xuICAgIGhlaWdodDogNTAwcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNDQ0M7XG4gICAgcGFkZGluZzogMjBweCAxMHB4O1xuICB9XG59XG4ucHJldmlldyAjcHJldmlldy1wYXJlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyMHB4KTtcbn1cbi5wcmV2aWV3ICNwcmV2aWV3LXBhcmVudCBpZnJhbWUge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMjRweCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG59XG4ucHJldmlldyAjcHJldmlldy1wYXJlbnQgI2ZvbnQtcHJldmlldyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG59XG4ucHJldmlldyAjcHJldmlldy1wYXJlbnQgLmltYWdlLXByZXZpZXcge1xuICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgbWF4LXdpZHRoOiA2NTBweDtcbn1cbi5wcmV2aWV3ICNwcmV2aWV3LXBhcmVudCAuaGlkZGVuIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xufSJdfQ== */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { showTTF } from './show-ttf';\n\nconst basePreviewPath = `${window.location.origin}/preview`;\n\n@Component({\n\tselector: 'app-preview',\n\ttemplateUrl: './preview.component.html',\n\tstyleUrls: ['./preview.component.scss']\n})\nexport class PreviewComponent implements OnInit {\n\t@Output() addToStoreEvent = new EventEmitter();\n\n\tconstructor(private sanitizer: DomSanitizer) {}\n\tdocSource = null;\n\tshowType = {}\n\tngOnInit(){}\n\n\tasync previewDocfile(docData) {\n\t\tthis.docSource = null;\n\t\tif (docData) {\n\t\t\tconst {MimeType} = docData;\n\t\t\tswitch (MimeType) {\n\t\t\tcase \"font/ttf\":\n\t\t\t\tthis.showType = {showFont: true};\n\t\t\t\tshowTTF(docData.B64str);\n\t\t\t\tbreak;\n\t\t\tcase \"application/pdf\":\n\t\t\t\tthis.docSource = getUint8ArrayFromB64(docData.B64str);\n\t\t\t\tthis.showType = {};\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.showType = {showPDF: true};\n\t\t\t\t}, 200) // otherwise when switching from one pdf to another preview didn't load the new document\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tif (MimeType.indexOf(\"image\") !== -1) {\n\t\t\t\t\tthis.docSource = this.sanitizer.bypassSecurityTrustResourceUrl(getFullB64Url(docData));\n\t\t\t\t\tthis.showType = {showImage: true};\n\t\t\t\t} else if (MimeType.indexOf(\"openxmlformats\") !== -1) {\n\t\t\t\t\tconst previewUrl = await this.getPreviewUrl(docData);\n\t\t\t\t\tif (previewUrl) {\n\t\t\t\t\t\tthis.docSource = this.sanitizer.bypassSecurityTrustResourceUrl(previewUrl);\n\t\t\t\t\t\tthis.showType = {showDocument: true};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.docSource = null;\n\t\t\tthis.showType = {};\n\t\t}\n\t}\n\tasync getPreviewUrl(file) {\n\t\tif (file.Id) {\n\t\t\treturn getOfficePreviewUrl(`${basePreviewPath}/${file.Id}/${file.Filename}`);\n\t\t}\n\t\tconst resp = await fetch('/api/upload-for-preview', {\n\t\t\t'method': 'POST',\n\t\t\t'body': JSON.stringify(file),\n\t\t\t'headers': {\n\t\t\t\t 'Content-Type': 'application/json',\n\t\t\t\t 'Pass-Next-Get': 'on',\n\t\t\t },\n\t\t});\n\t\tif (resp.status === 200) {\n\t\t\tfile.Id = await resp.text();\n\t\t\tthis.addToStoreEvent.emit(file);\n\t\t\treturn getOfficePreviewUrl(`${basePreviewPath}/${file.Id}/${file.Filename}`);\n\t\t}\n\t\treturn \"\";\n\t}\n}\nfunction getOfficePreviewUrl(url) {\n\treturn `https://view.officeapps.live.com/op/embed.aspx?src=${encodeURIComponent(url)}`;\n}\nfunction getFullB64Url({B64str, MimeType}) { // exists only in preview\n\treturn `data:${MimeType};base64, ${B64str}`;\n}\nfunction getUint8ArrayFromB64(b64str) { // exists only in preview\n\tconst dataStr = atob(b64str);\n\tconst dataStrLength = dataStr.length;\n\tconst array = new Uint8Array(new ArrayBuffer(dataStrLength));\n\tfor (let i = 0; i < dataStrLength; i++) {\n\t\tarray[i] = dataStr.charCodeAt(i);\n\t}\n\treturn array;\n}\n","import * as opentype from 'opentype.js';\n\nconst previewText = [\n\t\"AaBbCcDdEeFfGgHhIiJjKkLlMm\",\n\t\"NnOoPpQqRrSsTtUuVvWwXxYyZz\",\n\t`01234567890'!@#$%^&*()-=_+\"`,\n\t\"~`,.<>/?|:;±§[]{}\",\n];\n\nfunction showTTF(fontB64) {\n\tconst fontBytes = b64toAB(fontB64)\n\tconst font = opentype.parse(fontBytes);\n\tconst canvas = document.getElementById('font-preview');\n\tconst parent = document.getElementById('preview-parent');\n\tcanvas.width = parent.offsetWidth - 20;\n\tcanvas.height = parent.offsetHeight - 26;\n\tconst ctx = canvas.getContext('2d');\n\tfor (let i = 0; i < previewText.length; i++) {\n\t\tfont.draw(ctx, previewText[i], 10, 50 + i * 50, 36);\n\t}\n}\n\nfunction b64toAB(base64) {\n\tconst binaryString = atob(base64);\n\tconst len = binaryString.length;\n\tconst bytes = new Uint8Array(len);\n\tfor (let i = 0; i < len; i++) {\n\t\tbytes[i] = binaryString.charCodeAt(i);\n\t}\n\treturn bytes.buffer;\n}\n\nexport {showTTF};\n","export default \".store {\\n height: 100%;\\n padding: 20px 0 20px 20px;\\n background-color: #f6f6f6;\\n}\\n.store img {\\n margin-right: 5px;\\n}\\n@media (max-width: 992px) {\\n .store {\\n min-height: 200px;\\n max-height: 320px;\\n border-top: 1px solid #CCC;\\n padding: 20px 10px;\\n }\\n}\\n.store .section-top {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n padding-right: 20px;\\n}\\n@media (max-width: 540px) {\\n .store .section-top {\\n padding-right: 0;\\n }\\n}\\n.store .section-top input[type=file] {\\n position: absolute;\\n height: 0.1px;\\n width: 0.1px;\\n overflow: hidden;\\n opacity: 0;\\n z-index: -1;\\n}\\n.store .section-top input[type=file] + label {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: end;\\n justify-content: flex-end;\\n -webkit-box-align: center;\\n align-items: center;\\n border: none;\\n height: 24px;\\n width: 70px;\\n font-family: \\\"Roboto\\\", sans-serif;\\n font-size: 12px;\\n text-transform: uppercase;\\n text-align: center;\\n cursor: pointer;\\n}\\n.store .store-list-wrapper {\\n height: calc(100% - 40px);\\n overflow-y: scroll;\\n}\\n@media (max-width: 992px) {\\n .store .store-list-wrapper {\\n max-height: 237px;\\n }\\n}\\n.store .store-list-wrapper .list-item {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n border-top: 1px solid #dee2e6;\\n font-size: 13px;\\n padding: 12px 12px 14px;\\n}\\n@media (max-width: 540px) {\\n .store .store-list-wrapper .list-item .file {\\n overflow-wrap: break-word;\\n }\\n}\\n.store .store-list-wrapper .list-item .file,\\n.store .store-list-wrapper .list-item .right-block {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-align: center;\\n align-items: center;\\n}\\n.store .store-list-wrapper .list-item .file {\\n word-break: break-all;\\n}\\n.store .store-list-wrapper .list-item .size {\\n text-align: end;\\n width: 70px;\\n}\\n.store .store-list-wrapper .list-item .file,\\n.store .store-list-wrapper .list-item .download,\\n.store .store-list-wrapper .list-item .delete {\\n cursor: pointer;\\n}\\n.store .store-list-wrapper .list-item .size,\\n.store .store-list-wrapper .list-item .download,\\n.store .store-list-wrapper .list-item .delete {\\n margin-left: 20px;\\n}\\n.store .store-list-wrapper .list-item .download {\\n height: 16px;\\n}\\n.store .store-list-wrapper .list-item .delete {\\n color: #1082b6;\\n}\\n.store .store-list-wrapper .list-item .active {\\n font-weight: bold;\\n}\\n.store .store-list-wrapper .list-item:nth-child(odd) {\\n background-color: #e9e9e9;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9nby9zcmMvZ2l0aHViLmNvbS91bmlkb2MvdW5pZG9jLXBsYXlncm91bmQvc3JjL2FwcC9jb21wb25lbnRzL3N0b3JlL3N0b3JlLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3N0b3JlL3N0b3JlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0MsWUFBQTtFQUNBLHlCQUFBO0VBQ0EseUJBQUE7QUNDRDtBREFDO0VBQ0MsaUJBQUE7QUNFRjtBREFDO0VBUEQ7SUFRRSxpQkFBQTtJQUNBLGlCQUFBO0lBQ0EsMEJBQUE7SUFDQSxrQkFBQTtFQ0dBO0FBQ0Y7QURGQztFQUNDLG9CQUFBO0VBQUEsYUFBQTtFQUNBLHlCQUFBO1VBQUEsOEJBQUE7RUFDQSxtQkFBQTtBQ0lGO0FESEU7RUFKRDtJQUtFLGdCQUFBO0VDTUQ7QUFDRjtBRExFO0VBQ0Msa0JBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7QUNPSDtBRExFO0VBQ0Msb0JBQUE7RUFBQSxhQUFBO0VBQ0EscUJBQUE7VUFBQSx5QkFBQTtFQUNBLHlCQUFBO1VBQUEsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxpQ0FBQTtFQUNBLGVBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQ09IO0FESkM7RUFDQyx5QkFBQTtFQUNBLGtCQUFBO0FDTUY7QURMRTtFQUhEO0lBSUUsaUJBQUE7RUNRRDtBQUNGO0FEUEU7RUFDQyxvQkFBQTtFQUFBLGFBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0VBQ0EsNkJBQUE7RUFDQSxlQUFBO0VBQ0EsdUJBQUE7QUNTSDtBRFJHO0VBQ0M7SUFDQyx5QkFBQTtFQ1VIO0FBQ0Y7QURSRzs7RUFFQyxvQkFBQTtFQUFBLGFBQUE7RUFDQSx5QkFBQTtVQUFBLG1CQUFBO0FDVUo7QURSRztFQUNDLHFCQUFBO0FDVUo7QURSRztFQUNDLGVBQUE7RUFDQSxXQUFBO0FDVUo7QURSRzs7O0VBR0MsZUFBQTtBQ1VKO0FEUkc7OztFQUdDLGlCQUFBO0FDVUo7QURSRztFQUNDLFlBQUE7QUNVSjtBRFJHO0VBQ0MsY0FBQTtBQ1VKO0FEUkc7RUFDQyxpQkFBQTtBQ1VKO0FEUEU7RUFDQyx5QkFBQTtBQ1NIIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zdG9yZS9zdG9yZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5zdG9yZSB7XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZzogMjBweCAwIDIwcHggMjBweDtcblx0YmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjtcblx0aW1nIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcblx0fVxuXHRAbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcblx0XHRtaW4taGVpZ2h0OiAyMDBweDtcblx0XHRtYXgtaGVpZ2h0OiAzMjBweDtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI0NDQztcblx0XHRwYWRkaW5nOiAyMHB4IDEwcHg7XG5cdH1cblx0LnNlY3Rpb24tdG9wIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA1NDBweCkge1xuXHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHR9XG5cdFx0aW5wdXRbdHlwZT0nZmlsZSddIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGhlaWdodDogMC4xcHg7XG5cdFx0XHR3aWR0aDogMC4xcHg7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdHotaW5kZXg6IC0xO1xuXHRcdH1cblx0XHRpbnB1dFt0eXBlPSdmaWxlJ10gKyBsYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRoZWlnaHQ6IDI0cHg7XG5cdFx0XHR3aWR0aDogNzBweDtcblx0XHRcdGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0fVxuXHR9XG5cdC5zdG9yZS1saXN0LXdyYXBwZXIge1xuXHRcdGhlaWdodDogY2FsYygxMDAlIC0gNDBweCk7XG5cdFx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuXHRcdFx0bWF4LWhlaWdodDogMjM3cHg7XG5cdFx0fVxuXHRcdC5saXN0LWl0ZW0ge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGVlMmU2O1xuXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0cGFkZGluZzogMTJweCAxMnB4IDE0cHg7XG5cdFx0XHRAbWVkaWEgKG1heC13aWR0aDogNTQwcHgpIHtcblx0XHRcdFx0LmZpbGUge1xuXHRcdFx0XHRcdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5maWxlLFxuXHRcdFx0LnJpZ2h0LWJsb2NrIHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdH1cblx0XHRcdC5maWxlIHtcblx0XHRcdFx0d29yZC1icmVhazogYnJlYWstYWxsO1xuXHRcdFx0fVxuXHRcdFx0LnNpemUge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBlbmQ7XG5cdFx0XHRcdHdpZHRoOiA3MHB4O1xuXHRcdFx0fVxuXHRcdFx0LmZpbGUsXG5cdFx0XHQuZG93bmxvYWQsXG5cdFx0XHQuZGVsZXRlIHtcblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0fVxuXHRcdFx0LnNpemUsXG5cdFx0XHQuZG93bmxvYWQsXG5cdFx0XHQuZGVsZXRlIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdFx0XHR9XG5cdFx0XHQuZG93bmxvYWQge1xuXHRcdFx0XHRoZWlnaHQ6IDE2cHg7XG5cdFx0XHR9XG5cdFx0XHQuZGVsZXRlIHtcblx0XHRcdFx0Y29sb3I6ICMxMDgyYjY7XG5cdFx0XHR9XG5cdFx0XHQuYWN0aXZlIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5saXN0LWl0ZW06bnRoLWNoaWxkKG9kZCkge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2U5ZTllOTtcblx0XHR9XG5cdH1cbn1cbiIsIi5zdG9yZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMjBweCAwIDIwcHggMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjtcbn1cbi5zdG9yZSBpbWcge1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuICAuc3RvcmUge1xuICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgIG1heC1oZWlnaHQ6IDMyMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjQ0NDO1xuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcbiAgfVxufVxuLnN0b3JlIC5zZWN0aW9uLXRvcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NDBweCkge1xuICAuc3RvcmUgLnNlY3Rpb24tdG9wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG4uc3RvcmUgLnNlY3Rpb24tdG9wIGlucHV0W3R5cGU9ZmlsZV0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMC4xcHg7XG4gIHdpZHRoOiAwLjFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogLTE7XG59XG4uc3RvcmUgLnNlY3Rpb24tdG9wIGlucHV0W3R5cGU9ZmlsZV0gKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiAyNHB4O1xuICB3aWR0aDogNzBweDtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc3RvcmUgLnN0b3JlLWxpc3Qtd3JhcHBlciB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNDBweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuICAuc3RvcmUgLnN0b3JlLWxpc3Qtd3JhcHBlciB7XG4gICAgbWF4LWhlaWdodDogMjM3cHg7XG4gIH1cbn1cbi5zdG9yZSAuc3RvcmUtbGlzdC13cmFwcGVyIC5saXN0LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGVlMmU2O1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDEycHggMTJweCAxNHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU0MHB4KSB7XG4gIC5zdG9yZSAuc3RvcmUtbGlzdC13cmFwcGVyIC5saXN0LWl0ZW0gLmZpbGUge1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIH1cbn1cbi5zdG9yZSAuc3RvcmUtbGlzdC13cmFwcGVyIC5saXN0LWl0ZW0gLmZpbGUsXG4uc3RvcmUgLnN0b3JlLWxpc3Qtd3JhcHBlciAubGlzdC1pdGVtIC5yaWdodC1ibG9jayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uc3RvcmUgLnN0b3JlLWxpc3Qtd3JhcHBlciAubGlzdC1pdGVtIC5maWxlIHtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuLnN0b3JlIC5zdG9yZS1saXN0LXdyYXBwZXIgLmxpc3QtaXRlbSAuc2l6ZSB7XG4gIHRleHQtYWxpZ246IGVuZDtcbiAgd2lkdGg6IDcwcHg7XG59XG4uc3RvcmUgLnN0b3JlLWxpc3Qtd3JhcHBlciAubGlzdC1pdGVtIC5maWxlLFxuLnN0b3JlIC5zdG9yZS1saXN0LXdyYXBwZXIgLmxpc3QtaXRlbSAuZG93bmxvYWQsXG4uc3RvcmUgLnN0b3JlLWxpc3Qtd3JhcHBlciAubGlzdC1pdGVtIC5kZWxldGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc3RvcmUgLnN0b3JlLWxpc3Qtd3JhcHBlciAubGlzdC1pdGVtIC5zaXplLFxuLnN0b3JlIC5zdG9yZS1saXN0LXdyYXBwZXIgLmxpc3QtaXRlbSAuZG93bmxvYWQsXG4uc3RvcmUgLnN0b3JlLWxpc3Qtd3JhcHBlciAubGlzdC1pdGVtIC5kZWxldGUge1xuICBtYXJnaW4tbGVmdDogMjBweDtcbn1cbi5zdG9yZSAuc3RvcmUtbGlzdC13cmFwcGVyIC5saXN0LWl0ZW0gLmRvd25sb2FkIHtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLnN0b3JlIC5zdG9yZS1saXN0LXdyYXBwZXIgLmxpc3QtaXRlbSAuZGVsZXRlIHtcbiAgY29sb3I6ICMxMDgyYjY7XG59XG4uc3RvcmUgLnN0b3JlLWxpc3Qtd3JhcHBlciAubGlzdC1pdGVtIC5hY3RpdmUge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5zdG9yZSAuc3RvcmUtbGlzdC13cmFwcGVyIC5saXN0LWl0ZW06bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllOWU5O1xufSJdfQ== */\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\nconst MB = 1024 * 1024;\n\nconst maxDocSizeMB = 5;\nconst maxDocTotalSizeMB = 20;\nconst maxCodeSizeMB = 1;\n\nconst maxDocSize = MB * maxDocSizeMB;\nconst maxDocTotalSize = MB * maxDocTotalSizeMB;\nconst maxCodeSize = MB * maxCodeSizeMB;\nconst maxCodeLines = 1000;\n\n@Component({\n\tselector: 'app-store',\n\ttemplateUrl: './store.component.html',\n\tstyleUrls: ['./store.component.scss']\n})\n\nexport class StoreComponent implements OnInit {\n\n\t@Output() addToStoreEvent = new EventEmitter();\n\t@Output() removeFromStoreEvent = new EventEmitter();\n\t@Output() resetStoreEvent = new EventEmitter();\n\t@Output() previewDocfileEvent = new EventEmitter();\n\t@Output() updateEditorEvent = new EventEmitter();\n\t@Input() storeFiles: Object;\n\n\tngOnInit(){\n\t}\n\n\treCodeExt = /.*\\.go$/i;\n\tobjectKeys = Object.keys;\n\tshowCodeFileNamePrompt = false;\n\tshowLoadingModal = false;\n\tcodeFiles = {};\n\twarning = \"\";\n\tactiveFilename = '';\n\ttotalSize = 0;\n\n\tgetFilenames() {\n\t\treturn Object.keys(this.storeFiles);\n\t}\n\n\tupload(event) {\n\t\tthis.showLoadingModal = true;\n\t\tconst { files } = event.target;\n\t\tlet totalSize = this.totalSize;\n\t\tfor (let i=0; i < files.length; i++) {\n\t\t\ttotalSize += files[i].size;\n\t\t\tif (totalSize > maxDocTotalSize) {\n\t\t\t\tthis.finishLoading(`Total size of documents should not exceed ${maxDocTotalSizeMB} MB`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tfor (let i=0; i < files.length; i++) {\n\t\t\tconst file = files[i];\n\t\t\tconst last = i === files.length - 1;\n\t\t\tif (this.reCodeExt.test(file.name)) {\n\t\t\t\tthis.uploadCode(file, last);\n\t\t\t} else {\n\t\t\t\tthis.addDocumentFromInput(file, last);\n\t\t\t}\n\t\t}\n\t}\n\n\taddDocumentFromInput(file, last) {\n\t\tconst Filename = file.name;\n\t\tif (this.storeFiles[Filename]) {\n\t\t\tthis.finishLoading('File with that name already exists');\n\t\t\treturn;\n\t\t}\n\t\tconst docReader = new FileReader();\n\t\tdocReader.onload = () => {\n\t\t\tconst bytes = new Uint8Array(docReader.result as ArrayBuffer);\n\t\t\tconst MimeType = getMimeType(bytes.slice(0, 4), Filename);\n\t\t\tlet binary = '';\n\t\t\tfor (var i = 0; i < bytes.byteLength; i++) {\n\t\t\t\tbinary += String.fromCharCode(bytes[i]);\n\t\t\t}\n\t\t\tconst B64str = btoa(binary);\n\t\t\tthis.addDocumentToStore({Filename, B64str, MimeType, Size: file.size})\n\t\t\tif (last) {\n\t\t\t\tthis.finishLoading('');\n\t\t\t}\n\t\t}\n\t\tdocReader.readAsArrayBuffer(file);\n\t}\n\n\tfinishLoading(warning) {\n\t\tthis.showLoadingModal = false;\n\t\t(document.getElementById(\"uploadDocument\")).value = '';\n\t\tthis.warning = warning;\n\t}\n\n\taddDocumentToStore({Filename, B64str, MimeType, Size}) {\n\t\tthis.addToStoreEvent.emit({Filename, B64str, MimeType, Size})\n\t\tthis.totalSize += Size;\n\t}\n\n\tgetSize(filename) {\n\t\tlet size = this.storeFiles[filename].Size;\n\t\tlet suffix = \"b\"\n\t\tif (size >= 1048576) {\n\t\t\tsize = precise(size / 1048576);\n\t\t\tsuffix = \"mb\";\n\t\t} else if (size >= 1024) {\n\t\t\tsize = precise(size / 1024);\n\t\t\tsuffix = \"kb\";\n\t\t}\n\t\treturn `${size} ${suffix}`;\n\t}\n\n\tdownloadDocument(filename) {\n\t\tconst doc = this.storeFiles[filename];\n\t\tconst docStr = atob(doc.B64str);\n\t\tconst bytes = new Uint8Array(docStr.length);\n\t\tfor (let i = 0; i < docStr.length; ++i) {\n\t\t\tbytes[i] = docStr.charCodeAt(i);\n\t\t}\n\t\tconst blob = new Blob([bytes], {type: doc.MimeType});\n\t\tconst a = document.createElement(\"a\");\n\t\ta.download = filename;\n\t\ta.href = URL.createObjectURL(blob);\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\tdocument.body.removeChild(a);\n\t}\n\tdeleteDocument(filename) {\n\t\tif (filename === this.activeFilename) {\n\t\t\tthis.activeFilename = '';\n\t\t\tthis.previewDocfile(null);\n\t\t}\n\t\tconst doc = this.storeFiles[filename];\n\t\tif (doc) {\n\t\t\tthis.totalSize -= doc.Size;\n\t\t\tthis.removeFromStoreEvent.emit(filename);\n\t\t} else {\n\t\t\tthis.warning = \"Unknown error with file: \" + filename;\n\t\t}\n\t}\n\n\tselectDocumentForPreview(filename) {\n\t\tconst doc = this.storeFiles[filename];\n\t\tif (doc) {\n\t\t\tthis.activeFilename = filename;\n\t\t\tthis.warning = \"\";\n\t\t\tthis.previewDocfile(doc);\n\t\t}\n\t}\n\n\tpreviewDocfile(docData) {\n\t\tthis.previewDocfileEvent.emit(docData);\n\t}\n\n\tselectCodeForEdit(filename) {\n\t\tthis.activeFilename = filename;\n\t\tthis.getCodeFileData(this.codeFiles[filename], this.updateEditor.bind(this));\n\t}\n\n\tupdateEditor(code) {\n\t\tthis.updateEditorEvent.emit(code);\n\t}\n\n\tuploadCode(file, last) {\n\t\tconst filename = file.name;\n\t\tif (this.codeFiles[filename]) {\n\t\t\tthis.finishLoading('File with that name already exists');\n\t\t} else if (file.size > maxCodeSize) {\n\t\t\tthis.finishLoading(`File size should not exceed ${maxCodeSizeMB} MB`);\n\t\t} else {\n\t\t\tthis.activeFilename = filename;\n\t\t\tthis.getCodeFileData(file, null, true);\n\t\t\tif (last) {\n\t\t\t\tthis.finishLoading('');\n\t\t\t}\n\t\t}\n\t}\n\n\tgetCodeFileData(file, callback, upload=false) {\n\t\tconst codeReader = new FileReader();\n\t\tcodeReader.onload = () => {\n\t\t\tconst result = codeReader.result as string;\n\t\t\tif (upload) {\n\t\t\t\tconst lines = result.split(\"\\n\").length;\n\t\t\t\tif (lines > maxCodeLines) {\n\t\t\t\t\tthis.warning = `The number of lines in file should not exceed ${maxCodeLines}`;\n\t\t\t\t} else {\n\t\t\t\t\tif (callback) callback(result);\n\t\t\t\t\tthis.warning = \"\";\n\t\t\t\t\tthis.codeFiles[file.name] = file;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (callback) callback(result);\n\t\t\t}\n\t\t}\n\t\tcodeReader.readAsText(file);\n\t}\n\n\tdownloadCode(filename) {\n\t\tconst code = this.codeFiles[filename];\n\t\tconst a = document.createElement(\"a\");\n\t\ta.download = filename;\n\t\ta.href = URL.createObjectURL(code);\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\tdocument.body.removeChild(a);\n\t}\n\tdeleteCode(filename) {\n\t\tif (filename === this.activeFilename) {\n\t\t\tthis.activeFilename = '';\n\t\t}\n\t\tdelete this.codeFiles[filename];\n\t}\n\n\tclearWarning() {\n\t\tthis.warning = \"\";\n\t}\n\tgetActiveClass(filename) {\n\t\treturn \"file\" + (filename === this.activeFilename ? \" active\" : \"\");\n\t}\n\tupdateEditorFiles(files, outputFilename) {\n\t\tif (files) {\n\t\t\tfiles.forEach(file => {\n\t\t\t\tconst { Filename } = file;\n\t\t\t\tthis.addToStoreEvent.emit({...file, Size: atob(file.B64str).length})\n\t\t\t});\n\t\t\tif (outputFilename) {\n\t\t\t\tthis.selectDocumentForPreview(outputFilename);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.activeFilename = '';\n\t\t\tthis.resetStoreEvent.emit()\n\t\t}\n\t}\n}\n\nfunction precise(x) {\n\tconst parts = x.toString().split(\".\");\n\tif (parts.length == 1) {\n\t\treturn x;\n\t}\n\tlet precision = parts[1].length;\n\tif (precision > 2) precision = 2;\n\tconst pow = Math.pow(10, precision);\n\treturn Math.floor(x * pow) / pow;\n}\n\nfunction getMimeType(mimeBytes, filename) {\n\tlet mimeType = mimeMap[btoa(mimeBytes)];\n\tif (mimeType === \"ooxml\") {\n\t\tconst sl = filename.split(\".\");\n\t\tif (sl.length < 2) {\n\t\t\treturn \"text/plain\";\n\t\t}\n\t\tconst extension = sl[sl.length - 1];\n\t\tmimeType = ooxmlMap[extension];\n\t}\n\treturn mimeType ? mimeType : \"text/plain\";\n}\n\nconst mimeMap = {\n\t\"MzcsODAsNjgsNzA=\": \"application/pdf\",\n\t\"MjU1LDIxNiwyNTUsMjI0\": \"image/jpeg\",\n\t\"MjU1LDIxNiwyNTUsMjI1\": \"image/jpeg\",\n\t\"MTM3LDgwLDc4LDcx\": \"image/png\",\n\t\"NjYsNzcsMTM4LDEwMw==\": \"image/bmp\",\n\t\"MCwwLDAsMzI=\": \"image/heic\",\n\t\"MCwxLDAsMA==\": \"font/ttf\",\n\t\"ODAsNzUsMyw0\": \"ooxml\",\n\t\"MCwwLDAsMjA=\": \"video/quicktime\",\n}\n\nconst ooxmlMap = {\n\t\"docx\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n\t\"xlsx\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n\t\"pptx\": \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n}\n","export const environment = {\n production: true\n};\n","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\tenableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n\t.catch(err => console.error(err));\n","/* (ignored) */"],"sourceRoot":"webpack:///","file":"main-es5.js"}