{"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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","file":"main-es2015.js","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:///"}