@thecodeblogs/blog 0.11.7 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/entry-creator/entry-creator.component.mjs +347 -0
- package/esm2020/lib/components/entry-renderer/entry-renderer.component.mjs +108 -0
- package/esm2020/lib/components/entry-renderer-wrapper/entry-renderer-wrapper.component.mjs +75 -0
- package/esm2020/lib/components/entry-selector-dialog/entry-selector-dialog-data.mjs +3 -0
- package/esm2020/lib/components/entry-selector-dialog/entry-selector-dialog.component.mjs +45 -0
- package/esm2020/lib/components/entry-summary/entry-summary.component.mjs +28 -0
- package/esm2020/lib/components/json-renderer/json-renderer.component.mjs +26 -0
- package/esm2020/lib/components/landing-page/landing-page.component.mjs +35 -0
- package/esm2020/lib/components/main/main.component.mjs +56 -0
- package/esm2020/lib/components/media-upload-modal/media-upload-modal.component.mjs +160 -0
- package/esm2020/lib/components/outline-view/outline-view.component.mjs +40 -0
- package/esm2020/lib/components/schedule-publish-dialog/schedule-publish-dialog-data.mjs +3 -0
- package/esm2020/lib/components/schedule-publish-dialog/schedule-publish-dialog.component.mjs +33 -0
- package/esm2020/lib/components/side-navigation/side-navigation.component.mjs +151 -0
- package/esm2020/lib/components/static-html/static-html.component.mjs +28 -0
- package/esm2020/lib/core.module.mjs +207 -0
- package/esm2020/lib/data/base.mjs +7 -0
- package/esm2020/lib/data/content-type.mjs +10 -0
- package/esm2020/lib/data/content.mjs +5 -0
- package/esm2020/lib/data/core-event-type.enum.mjs +7 -0
- package/esm2020/lib/data/core-event.mjs +7 -0
- package/esm2020/lib/data/entry.mjs +80 -0
- package/esm2020/lib/data/guid.mjs +12 -0
- package/esm2020/lib/data/identity.mjs +2 -0
- package/esm2020/lib/data/list-response.mjs +3 -0
- package/esm2020/lib/data/section.mjs +11 -0
- package/esm2020/lib/data/tag.mjs +7 -0
- package/esm2020/lib/data/visitor-profile.mjs +3 -0
- package/esm2020/lib/pipes/LinkyPipe.mjs +15 -0
- package/esm2020/lib/pipes/TimeAgoPipe.mjs +100 -0
- package/esm2020/lib/routing/routes.mjs +25 -0
- package/esm2020/lib/services/analytics/interaction.service.mjs +20 -0
- package/esm2020/lib/services/analytics/view.service.mjs +20 -0
- package/esm2020/lib/services/comment.service.mjs +28 -0
- package/esm2020/lib/services/django-rest-framework-endpoint.service.mjs +50 -0
- package/esm2020/lib/services/entry.service.mjs +73 -0
- package/esm2020/lib/services/identity.service.mjs +20 -0
- package/esm2020/lib/services/interaction.mjs +3 -0
- package/esm2020/lib/services/prism.service.mjs +39 -0
- package/esm2020/lib/services/static-html.service.mjs +22 -0
- package/esm2020/lib/services/tag.service.mjs +33 -0
- package/esm2020/lib/services/upload.mjs +3 -0
- package/esm2020/lib/services/upload.service.mjs +22 -0
- package/esm2020/lib/services/view.mjs +3 -0
- package/esm2020/lib/services/visitor-profile.service.mjs +35 -0
- package/esm2020/public-api.mjs +45 -0
- package/esm2020/thecodeblogs-blog.mjs +5 -0
- package/fesm2015/thecodeblogs-blog.mjs +1826 -0
- package/fesm2015/thecodeblogs-blog.mjs.map +1 -0
- package/fesm2020/thecodeblogs-blog.mjs +1820 -0
- package/fesm2020/thecodeblogs-blog.mjs.map +1 -0
- package/lib/components/entry-creator/entry-creator.component.d.ts +3 -0
- package/lib/components/entry-renderer/entry-renderer.component.d.ts +3 -0
- package/lib/components/entry-renderer-wrapper/entry-renderer-wrapper.component.d.ts +3 -0
- package/lib/components/entry-selector-dialog/entry-selector-dialog.component.d.ts +3 -0
- package/lib/components/entry-summary/entry-summary.component.d.ts +3 -0
- package/lib/components/json-renderer/json-renderer.component.d.ts +3 -0
- package/lib/components/landing-page/landing-page.component.d.ts +3 -0
- package/lib/components/main/main.component.d.ts +3 -0
- package/lib/components/media-upload-modal/media-upload-modal.component.d.ts +3 -0
- package/lib/components/outline-view/outline-view.component.d.ts +3 -0
- package/lib/components/schedule-publish-dialog/schedule-publish-dialog.component.d.ts +3 -0
- package/lib/components/side-navigation/side-navigation.component.d.ts +3 -0
- package/lib/components/static-html/static-html.component.d.ts +3 -0
- package/lib/core.module.d.ts +40 -0
- package/lib/pipes/LinkyPipe.d.ts +3 -0
- package/lib/pipes/TimeAgoPipe.d.ts +3 -0
- package/lib/services/analytics/interaction.service.d.ts +3 -0
- package/lib/services/analytics/view.service.d.ts +3 -0
- package/lib/services/comment.service.d.ts +3 -0
- package/lib/services/django-rest-framework-endpoint.service.d.ts +3 -0
- package/lib/services/entry.service.d.ts +3 -0
- package/lib/services/identity.service.d.ts +3 -0
- package/lib/services/prism.service.d.ts +3 -0
- package/lib/services/static-html.service.d.ts +3 -0
- package/lib/services/tag.service.d.ts +3 -0
- package/lib/services/upload.service.d.ts +3 -0
- package/lib/services/visitor-profile.service.d.ts +3 -0
- package/package.json +36 -24
- package/thecodeblogs-blog.d.ts +1 -3
- package/bundles/thecodeblogs-blog.umd.js +0 -2279
- package/bundles/thecodeblogs-blog.umd.js.map +0 -1
- package/bundles/thecodeblogs-blog.umd.min.js +0 -17
- package/bundles/thecodeblogs-blog.umd.min.js.map +0 -1
- package/esm2015/lib/components/entry-creator/entry-creator.component.js +0 -336
- package/esm2015/lib/components/entry-renderer/entry-renderer.component.js +0 -108
- package/esm2015/lib/components/entry-renderer-wrapper/entry-renderer-wrapper.component.js +0 -79
- package/esm2015/lib/components/entry-selector-dialog/entry-selector-dialog-data.js +0 -3
- package/esm2015/lib/components/entry-selector-dialog/entry-selector-dialog.component.js +0 -41
- package/esm2015/lib/components/entry-summary/entry-summary.component.js +0 -29
- package/esm2015/lib/components/json-renderer/json-renderer.component.js +0 -29
- package/esm2015/lib/components/landing-page/landing-page.component.js +0 -37
- package/esm2015/lib/components/main/main.component.js +0 -55
- package/esm2015/lib/components/media-upload-modal/media-upload-modal.component.js +0 -155
- package/esm2015/lib/components/outline-view/outline-view.component.js +0 -40
- package/esm2015/lib/components/schedule-publish-dialog/schedule-publish-dialog-data.js +0 -3
- package/esm2015/lib/components/schedule-publish-dialog/schedule-publish-dialog.component.js +0 -28
- package/esm2015/lib/components/side-navigation/side-navigation.component.js +0 -154
- package/esm2015/lib/components/static-html/static-html.component.js +0 -33
- package/esm2015/lib/core.module.js +0 -125
- package/esm2015/lib/data/base.js +0 -7
- package/esm2015/lib/data/content-type.js +0 -10
- package/esm2015/lib/data/content.js +0 -5
- package/esm2015/lib/data/core-event-type.enum.js +0 -7
- package/esm2015/lib/data/core-event.js +0 -7
- package/esm2015/lib/data/entry.js +0 -80
- package/esm2015/lib/data/guid.js +0 -12
- package/esm2015/lib/data/identity.js +0 -2
- package/esm2015/lib/data/list-response.js +0 -3
- package/esm2015/lib/data/section.js +0 -11
- package/esm2015/lib/data/tag.js +0 -7
- package/esm2015/lib/data/visitor-profile.js +0 -3
- package/esm2015/lib/pipes/LinkyPipe.js +0 -11
- package/esm2015/lib/pipes/TimeAgoPipe.js +0 -100
- package/esm2015/lib/routing/routes.js +0 -25
- package/esm2015/lib/services/analytics/interaction.service.js +0 -22
- package/esm2015/lib/services/analytics/view.service.js +0 -22
- package/esm2015/lib/services/comment.service.js +0 -30
- package/esm2015/lib/services/django-rest-framework-endpoint.service.js +0 -52
- package/esm2015/lib/services/entry.service.js +0 -74
- package/esm2015/lib/services/identity.service.js +0 -22
- package/esm2015/lib/services/interaction.js +0 -3
- package/esm2015/lib/services/prism.service.js +0 -37
- package/esm2015/lib/services/static-html.service.js +0 -24
- package/esm2015/lib/services/tag.service.js +0 -35
- package/esm2015/lib/services/upload.js +0 -3
- package/esm2015/lib/services/upload.service.js +0 -24
- package/esm2015/lib/services/view.js +0 -3
- package/esm2015/lib/services/visitor-profile.service.js +0 -39
- package/esm2015/public-api.js +0 -45
- package/esm2015/thecodeblogs-blog.js +0 -8
- package/fesm2015/thecodeblogs-blog.js +0 -1786
- package/fesm2015/thecodeblogs-blog.js.map +0 -1
- package/thecodeblogs-blog.metadata.json +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"thecodeblogs-blog.umd.js","sources":["../../../projects/core/src/lib/data/guid.ts","../../../projects/core/src/lib/data/base.ts","../../../projects/core/src/lib/data/content-type.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/core/src/lib/data/content.ts","../../../projects/core/src/lib/data/entry.ts","../../../projects/core/src/lib/data/list-response.ts","../../../projects/core/src/lib/data/section.ts","../../../projects/core/src/lib/data/core-event.ts","../../../projects/core/src/lib/data/core-event-type.enum.ts","../../../projects/core/src/lib/data/visitor-profile.ts","../../../projects/core/src/lib/services/comment.service.ts","../../../projects/core/src/lib/services/django-rest-framework-endpoint.service.ts","../../../projects/core/src/lib/services/entry.service.ts","../../../projects/core/src/lib/services/identity.service.ts","../../../projects/core/src/lib/services/prism.service.ts","../../../projects/core/src/lib/services/upload.service.ts","../../../projects/core/src/lib/services/upload.ts","../../../projects/core/src/lib/services/analytics/view.service.ts","../../../projects/core/src/lib/services/analytics/interaction.service.ts","../../../projects/core/src/lib/services/view.ts","../../../projects/core/src/lib/services/interaction.ts","../../../projects/core/src/lib/services/visitor-profile.service.ts","../../../projects/core/src/lib/services/static-html.service.ts","../../../projects/core/src/lib/data/tag.ts","../../../projects/core/src/lib/services/tag.service.ts","../../../projects/core/src/lib/components/entry-selector-dialog/entry-selector-dialog-data.ts","../../../projects/core/src/lib/components/entry-selector-dialog/entry-selector-dialog.component.ts","../../../projects/core/src/lib/components/media-upload-modal/media-upload-modal.component.ts","../../../projects/core/src/lib/components/entry-creator/entry-creator.component.ts","../../../projects/core/src/lib/components/entry-renderer/entry-renderer.component.ts","../../../projects/core/src/lib/components/entry-summary/entry-summary.component.ts","../../../projects/core/src/lib/components/json-renderer/json-renderer.component.ts","../../../projects/core/src/lib/components/landing-page/landing-page.component.ts","../../../projects/core/src/lib/components/outline-view/outline-view.component.ts","../../../projects/core/src/lib/components/side-navigation/side-navigation.component.ts","../../../projects/core/src/lib/components/static-html/static-html.component.ts","../../../projects/core/src/lib/components/main/main.component.ts","../../../projects/core/src/lib/components/entry-renderer-wrapper/entry-renderer-wrapper.component.ts","../../../projects/core/src/lib/pipes/LinkyPipe.ts","../../../projects/core/src/lib/pipes/TimeAgoPipe.ts","../../../projects/core/src/lib/routing/routes.ts","../../../projects/core/src/lib/components/schedule-publish-dialog/schedule-publish-dialog-data.ts","../../../projects/core/src/lib/components/schedule-publish-dialog/schedule-publish-dialog.component.ts","../../../projects/core/src/lib/core.module.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/thecodeblogs-blog.ts"],"sourcesContent":["export class Guid {\n newGuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n // tslint:disable-next-line:no-bitwise\n const r = Math.random() * 16 | 0,\n // tslint:disable-next-line:triple-equals no-bitwise\n v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n}\n","import {Guid} from './guid';\n\nexport class Base {\n id: string;\n\n constructor() {\n this.id = new Guid().newGuid();\n }\n}\n","export enum ContentType {\n TEXT = 'text',\n URL = 'url',\n CODE = 'code',\n IMAGE = 'image',\n MEDIA = 'media',\n HTML = 'html',\n}\n\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, 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 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") 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 throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {Base} from './base';\nimport {ContentType} from './content-type';\n\nexport class Content extends Base {\n static KEY_MIMETYPE = 'mimeType';\n\n order: number;\n type: ContentType;\n value: string;\n title: string;\n source: string;\n description: string;\n additional: Array<{key: string, value: string}>;\n}\n","import {Section} from './section';\nimport {Base} from './base';\nimport {orderBy} from 'lodash';\nconst slugify = require('slugify');\n\nexport class Entry extends Base {\n __server_generated_properties: any;\n\n title: string;\n slug: string;\n create_date: Date;\n edit_date: Date;\n sections: Section[];\n version: number;\n published: boolean;\n publish_date: Date;\n tags: string[];\n views: number;\n\n should_publish_in_future = false;\n future_publish_date: Date;\n\n _friendly_views: string;\n\n constructor(init?: Partial<Entry>) {\n super();\n Object.assign(this, init);\n if (!this.create_date) {\n this.create_date = new Date();\n } else {\n this.create_date = new Date(this.create_date);\n }\n if (!this.edit_date) {\n this.edit_date = new Date();\n } else {\n this.edit_date = new Date(this.edit_date);\n }\n if (this.publish_date) {\n this.publish_date = new Date(this.publish_date);\n }\n if (this.future_publish_date) {\n this.future_publish_date = new Date(this.future_publish_date);\n }\n if (!this.version) {\n this.version = 1;\n }\n if (!this.tags) {\n this.tags = [];\n }\n if (this.views) {\n if (this.views < 10) {\n this._friendly_views = 'Less than ten';\n }\n else if (10 < this.views && this.views < 100) {\n this._friendly_views = 'Around one hundred';\n }\n else {\n this._friendly_views = this.views.toString();\n }\n }\n if (!this.sections) {\n this.sections = [];\n }\n // For entries that existed before this variable was introduced, the server will return undefined. If this\n // stays undefined, it will violate the null constraints on the DB, so this code checks for both null\n // and undefined and then populates the value accordingly\n if (typeof(this.should_publish_in_future) === 'undefined' || this.should_publish_in_future === null) {\n this.should_publish_in_future = false;\n }\n }\n\n\n sort() {\n this.sections = orderBy(this.sections, ({order}) => Number(order), ['asc']);\n for (let i = 0; i < this.sections.length; i++) {\n this.sections[i].order = i * 10;\n }\n for (const section of this.sections) {\n section.contents = orderBy(section.contents, ({order}) => Number(order), ['asc']);\n for (let i = 0; i < section.contents.length; i++) {\n section.contents[i].order = i * 10;\n }\n }\n }\n\n showEditInformation() {\n // @ts-ignore\n const difference = Math.floor((this.create_date - this.edit_date) / (1000 * 60 * 60 * 24));\n return (difference > 1 || difference < -1);\n }\n\n getProp(prop: string) {\n if (this.__server_generated_properties) {\n return this.__server_generated_properties[prop];\n } else {\n return '';\n }\n }\n}\n","export class ListResponse<T> {\n next: string;\n previous: string;\n results: T[];\n count: number;\n}\n","import {Content} from './content';\nimport {Base} from './base';\n\nexport class Section extends Base {\n subheading: string;\n order: number;\n contents: Content[];\n constructor() {\n super();\n if (!this.order) {\n this.order = -1;\n }\n this.contents = [];\n }\n}\n","import {CoreEventType} from './core-event-type.enum';\n\nexport class CoreEvent<T> {\n type: CoreEventType;\n data: T;\n\n constructor(data: T, type: CoreEventType) {\n this.data = data;\n this.type = type;\n }\n}\n","export enum CoreEventType {\n UPDATE = 'update',\n CREATE = 'create',\n DELETE = 'delete'\n}\n","export class VisitorProfile {\n id: string;\n user: number| any;\n session_uid: string;\n telemetry: any;\n device: string;\n os_version: string;\n name: string;\n family: string;\n version: string;\n major: number;\n minor: number;\n patch: number;\n language: string;\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommentService {\n\n endpoint = '/blog_api/comments/';\n adminEndpoint = '/blog_api/admin/comments/';\n\n constructor(\n protected http: HttpClient,\n ) {\n }\n\n getComments(entry) {\n return this.http.get(this.endpoint, {params: {entry}});\n }\n postComment(comment) {\n return this.http.post(this.endpoint, comment, {params: {entry: comment.entry}});\n }\n patchComment(comment) {\n return this.http.patch(this.adminEndpoint + '/' + comment.id + '/', comment);\n }\n}\n","import {Injectable, EventEmitter} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {HttpClient} from '@angular/common/http';\nimport {ListResponse} from '../data/list-response';\nimport {CoreEvent} from '../data/core-event';\nimport {CoreEventType} from '../data/core-event-type.enum';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DjangoRestFrameworkEndpointService<T> {\n constructor(\n protected http: HttpClient\n ) {\n }\n\n events = new EventEmitter<CoreEvent<T>>();\n endpoint = '';\n\n triggerCoreEvent(obj: T, type: CoreEventType) {\n this.events.next(new CoreEvent(obj, type));\n return obj;\n }\n\n handleResponse(obj: T) {\n return obj;\n }\n handleListResponse(obj: ListResponse<T>) {\n return obj;\n }\n\n get(): Observable<ListResponse<T>> {\n return this.http.get<ListResponse<T>>(this.endpoint).pipe(\n map(this.handleListResponse.bind(this))\n );\n }\n getById(id: string): Observable<T> {\n return this.http.get<T>(this.endpoint + id + '/').pipe(\n map(this.handleResponse.bind(this))\n );\n }\n create(entity: T): Observable<T> {\n return this.http.post<T>(this.endpoint + '/', entity).pipe(\n map((val) => this.triggerCoreEvent(val, CoreEventType.CREATE)),\n map(this.handleResponse.bind(this))\n );\n }\n delete(entity: T): Observable<T> {\n return this.http.delete<T>(this.endpoint + (entity as any).id + '/').pipe(\n map((val) => this.triggerCoreEvent(val, CoreEventType.DELETE)),\n map(this.handleResponse.bind(this))\n );\n }\n update(entity: T): Observable<T> {\n return this.http.patch<T>(this.endpoint + (entity as any).id + '/', entity).pipe(\n map((val) => this.triggerCoreEvent(val, CoreEventType.UPDATE)),\n map(this.handleResponse.bind(this))\n );\n }\n getListByUrl(url: string): Observable<ListResponse<T>> {\n return this.http.get<ListResponse<T>>(url).pipe(\n map(this.handleListResponse.bind(this))\n );\n }\n}\n","import {Injectable, EventEmitter} from '@angular/core';\nimport {DjangoRestFrameworkEndpointService} from '../services/django-rest-framework-endpoint.service';\nimport {ListResponse} from '../data/list-response';\nimport {Entry} from '../data/entry';\nimport {Observable, Subject} from 'rxjs';\nimport {debounceTime, map} from 'rxjs/operators';\nimport {loMap} from 'lodash';\nimport {HttpClient, HttpParams} from '@angular/common/http';\nimport {CoreEvent} from '../data/core-event';\nimport {CoreEventType} from '../data/core-event-type.enum';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EntryService extends DjangoRestFrameworkEndpointService<Entry> {\n\n endpoint = '/blog_api/entries/';\n adminEndpoint = '/blog_api/admin/entries/';\n\n _currentlyEditedEntry: Entry;\n currentlyEditedEntry: Subject<Entry> = new Subject<Entry>();\n sub;\n\n handleResponse(obj: Entry): Entry {\n return new Entry(obj);\n }\n\n handleListResponse(obj: ListResponse<Entry>): ListResponse<Entry> {\n const response = obj;\n const results = [];\n for (const result of response.results) {\n results.push(new Entry(result));\n }\n response.results = results;\n return response;\n }\n\n\n constructor(\n protected http: HttpClient,\n ) {\n super(http);\n this.sub = this.currentlyEditedEntry.pipe(debounceTime(3000)).subscribe((e) => {\n e.edit_date = new Date();\n const params = new HttpParams().set('published', JSON.stringify(false)).set('defunct', JSON.stringify(false));\n\n this.http.patch(this.adminEndpoint + e.id + '/', e, {params}).pipe(\n map(this.handleResponse.bind(this))\n ).subscribe((response) => {\n this.triggerCoreEvent((response as Entry), CoreEventType.UPDATE);\n console.log('Synced ' + e.id + '...');\n }, (err) => {\n console.log('Error encountered syncing ' + e.id + ', trying to create...');\n this.http.post(this.adminEndpoint, e).pipe(\n map(this.handleResponse)\n ).subscribe((response) => {\n this.triggerCoreEvent((response as Entry), CoreEventType.CREATE);\n console.log('Created ' + e.id + '...');\n }, (createErr) => {\n console.log('Error creating ' + e.id);\n });\n });\n });\n }\n\n get(): Observable<ListResponse<Entry>> {\n return this.http.get(this.endpoint).pipe(\n map(this.handleListResponse.bind(this))\n );\n }\n\n getUnpublishedEntries() {\n const params = new HttpParams().set('published', JSON.stringify(false)).set('defunct', JSON.stringify(false));\n return this.http.get(this.adminEndpoint, {params});\n }\n\n getBySlug(slug: string) {\n return this.http.get(this.endpoint + slug + '/by_slug/').pipe(\n map(this.handleResponse.bind(this))\n );\n }\n getUnpublishedById(id: string): Observable<Entry> {\n const params = new HttpParams().set('published', JSON.stringify(false)).set('defunct', JSON.stringify(false));\n return this.http.get<Entry>(this.adminEndpoint + id, {params}).pipe(\n map(this.handleResponse.bind(this))\n );\n }\n updateUnpublishedEntry(entry: Entry): Observable<Entry> {\n const params = new HttpParams().set('published', JSON.stringify(false)).set('defunct', JSON.stringify(false));\n return this.http.patch<Entry>(this.adminEndpoint + entry.id + '/', entry, {params}).pipe(\n map((val) => this.triggerCoreEvent(val, CoreEventType.UPDATE)),\n map(this.handleResponse.bind(this))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {Identity} from '../data/identity';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IdentityService {\n\n constructor(\n protected http: HttpClient\n ) { }\n getMe(): Observable<Identity> {\n throw new Error('You must provide an implementation for this');\n }\n}\n","import {Inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\n\nimport 'clipboard';\n\nimport 'prismjs';\nimport 'prismjs/plugins/toolbar/prism-toolbar';\nimport 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard';\nimport 'prismjs/components/prism-css';\nimport 'prismjs/components/prism-javascript';\nimport 'prismjs/components/prism-java';\nimport 'prismjs/components/prism-markup';\nimport 'prismjs/components/prism-typescript';\nimport 'prismjs/components/prism-sass';\nimport 'prismjs/components/prism-scss';\n\ndeclare var Prism: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PrismService {\n constructor(@Inject(PLATFORM_ID) private platformId: Object) {\n if (Prism) {\n Prism.manual = true;\n }\n }\n\n highlightAll() {\n if (isPlatformBrowser(this.platformId)) {\n Prism.highlightAll();\n }\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {Upload} from '../services/upload';\nimport {HttpClient} from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UploadService {\n\n static upload_endpoint = '/file_api/uploads/create_image/';\n static status_endpoint = '/file_api/uploads/{pk}/status';\n\n constructor(\n private http: HttpClient\n ) {\n }\n\n get(id: string): Observable<Upload> {\n return this.http.get<Upload>(UploadService.status_endpoint.replace('{pk}', id) + '/');\n }\n}\n","export class Upload {\n id: string;\n processed: boolean;\n path_to_file: string;\n mime_type: string;\n}\n","import {HttpClient} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {DjangoRestFrameworkEndpointService} from '../django-rest-framework-endpoint.service';\nimport {View} from '../view';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewService extends DjangoRestFrameworkEndpointService<View> {\n endpoint = '/blog_api/views/';\n\n constructor(\n public http: HttpClient,\n ) {\n super(http);\n }\n}\n","import {HttpClient} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {DjangoRestFrameworkEndpointService} from '../django-rest-framework-endpoint.service';\nimport {Interaction} from '../interaction';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InteractionService extends DjangoRestFrameworkEndpointService<Interaction> {\n endpoint = '/blog_api/interactions/';\n\n constructor(\n public http: HttpClient,\n ) {\n super(http);\n }\n}\n","export class View {\n id: string;\n entry: string;\n}\n","export class Interaction {\n id: string;\n content: any;\n}\n","import {HttpClient} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {DeviceDetectorService} from 'ngx-device-detector';\nimport {VisitorProfile} from '../data/visitor-profile';\nimport {DjangoRestFrameworkEndpointService} from '../services/django-rest-framework-endpoint.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VisitorProfileService extends DjangoRestFrameworkEndpointService<VisitorProfile> {\n endpoint = '/blog_api/visitor_profiles/';\n\n constructor(\n public http: HttpClient,\n public deviceDetectorService: DeviceDetectorService\n ) {\n super(http);\n }\n\n getVisitorProfile(): VisitorProfile {\n const deviceInfo = this.deviceDetectorService.getDeviceInfo();\n\n const vp = new VisitorProfile();\n\n vp.telemetry = deviceInfo;\n\n vp.name = deviceInfo.os;\n vp.family = deviceInfo.browser;\n vp.version = deviceInfo.browser_version;\n vp.device = deviceInfo.device;\n vp.os_version = deviceInfo.os_version;\n vp.language = navigator.language;\n\n return vp;\n }\n}\n","import {HttpClient} from '@angular/common/http';\nimport { Injectable, SecurityContext } from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StaticHtmlService {\n constructor(\n private domSanitizer: DomSanitizer,\n ) { }\n\n mapStaticHtml(htmlString: string, isTrusted: boolean): string {\n return isTrusted ?\n htmlString :\n this.domSanitizer.sanitize(SecurityContext.HTML, htmlString);\n }\n}\n","export class Tag {\n constructor(obj: any) {\n this.id = obj.id;\n this.label = obj.label;\n }\n id: number;\n label: string;\n}\n","import {HttpClient} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {ListResponse} from '../data/list-response';\nimport {Tag} from '../data/tag';\nimport {DjangoRestFrameworkEndpointService} from './django-rest-framework-endpoint.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TagService extends DjangoRestFrameworkEndpointService<Tag> {\n endpoint = '/blog_api/tags/';\n\n handleResponse(obj: Tag): Tag{\n return new Tag(obj);\n }\n\n handleListResponse(obj: ListResponse<Tag>): ListResponse<Tag> {\n const response = obj;\n const results = [];\n for (let i = 0; i < response.results.length; i++) {\n results.push(new Tag(response.results[i]));\n }\n response.results = results;\n return response;\n }\n\n constructor(\n protected http: HttpClient,\n ) {\n super(http);\n }\n}\n","export class EntrySelectorDialogData {\n}\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {EntrySelectorDialogData} from '../../components/entry-selector-dialog/entry-selector-dialog-data';\nimport {EntryService} from '../../services/entry.service';\n\n@Component({\n selector: 'app-entry-selector-dialog',\n templateUrl: './entry-selector-dialog.component.html',\n styleUrls: ['./entry-selector-dialog.component.scss']\n})\nexport class EntrySelectorDialogComponent implements OnInit {\n\n static CURRENT_ENTRY = 'current_entry';\n\n entries;\n selectedId: string;\n\n constructor(\n public dialogRef: MatDialogRef<EntrySelectorDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: EntrySelectorDialogData,\n private entryService: EntryService,\n ) {\n }\n\n ngOnInit(): void {\n this.entryService.getUnpublishedEntries().subscribe((next) => {\n this.entries = (next as any).results;\n });\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n onYesClick(): void {\n this.entryService.getUnpublishedById(this.selectedId).subscribe((entry) => {\n localStorage.setItem(EntrySelectorDialogComponent.CURRENT_ENTRY, JSON.stringify(entry));\n entry.sort();\n this.entryService.currentlyEditedEntry.next(entry);\n this.dialogRef.close();\n });\n }\n}\n","import {Component, HostListener, Input, OnInit, OnDestroy} from '@angular/core';\nimport {FileUploader} from 'ng2-file-upload';\nimport {MatDialogRef} from '@angular/material/dialog';\n\nimport {DjangoRestFrameworkEndpointService} from '../../services/django-rest-framework-endpoint.service';\nimport {UploadService} from '../../services/upload.service';\n\n@Component({\n selector: 'app-media-upload-modal',\n templateUrl: './media-upload-modal.component.html',\n styleUrls: ['./media-upload-modal.component.css']\n})\nexport class MediaUploadModalComponent implements OnInit, OnDestroy {\n\n @Input() allowedMimeTypes = [\n 'image/jpeg',\n 'image/gif',\n 'image/png',\n 'image/jpg',\n 'video/mp4',\n 'video/webm',\n 'video/ogg',\n ];\n\n @Input() uploadUrlKey = 'path_to_file';\n\n imgLink;\n mimeType;\n socketSub;\n error;\n public uploader: FileUploader;\n uploadId;\n uploading = false;\n @Input() file;\n\n poller;\n\n static getCookie(name: string) {\n const ca: Array<string> = document.cookie.split(';');\n const caLen: number = ca.length;\n const cookieName = `${name}=`;\n let c: string;\n\n for (let i = 0; i < caLen; i += 1) {\n c = ca[i].replace(/^\\s+/g, '');\n if (c.indexOf(cookieName) === 0) {\n return c.substring(cookieName.length, c.length);\n }\n }\n return '';\n }\n\n constructor(\n public dialogRef: MatDialogRef<MediaUploadModalComponent>,\n private uploadService: UploadService\n ) {\n }\n\n\n pollForCompletion() {\n this.uploadService.get(this.uploadId).subscribe((response) => {\n if (response.processed) {\n this.imgLink = response[this.uploadUrlKey];\n this.mimeType = response.mime_type;\n clearInterval(this.poller);\n this.poller = null;\n this.uploading = false;\n }\n });\n }\n\n\n ngOnInit(): void {\n\n this.uploader = new FileUploader(\n {\n url: UploadService.upload_endpoint,\n itemAlias: 'file',\n authToken: '',\n headers: [\n {name: 'X-CSRFToken', value: MediaUploadModalComponent.getCookie('csrftoken')},\n ],\n additionalParameter: {csrf_token: MediaUploadModalComponent.getCookie('csrftoken')},\n removeAfterUpload: true,\n allowedMimeType: this.allowedMimeTypes,\n }\n );\n\n this.uploader.onCompleteItem = (item, response) => {\n const responseObj = JSON.parse(response);\n this.uploadId = responseObj.id;\n this.poller = setInterval(this.pollForCompletion.bind(this), 2000);\n };\n\n this.uploader.onWhenAddingFileFailed = (item, filter, options) => {\n this.error = 'This file is not a supported mimetype.';\n this.uploading = false;\n };\n\n if (this.file) {\n this.uploader.addToQueue([this.file]);\n this.uploader.uploadAll();\n this.uploading = true;\n }\n }\n\n onFileSelected(e) {\n this.uploader.uploadAll();\n this.uploading = true;\n }\n\n buildHost(url) {\n return location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '') + url;\n }\n\n close() {\n this.dialogRef.close();\n }\n\n ngOnDestroy(): void {\n if (this.socketSub) {\n this.socketSub.complete();\n this.socketSub = null;\n }\n }\n\n blobToFile(theBlob, fileName) {\n // A Blob() is almost a File() - it's just missing the two properties below which we will add\n theBlob.lastModifiedDate = new Date();\n theBlob.name = fileName;\n return theBlob;\n }\n\n @HostListener('document:paste', ['$event'])\n onPaste(e) {\n if (e instanceof ClipboardEvent) {\n const files = e.clipboardData.files;\n if (files) {\n if (files.length < 1) {\n // const items = e.clipboardData.items;\n // for(let i = 0; i < items.length; i++) {\n // const item = items[i];\n // item.getAsString((text) => {\n // try {\n // const url = new URL(text);\n // if(url) {\n // fetch(text)\n // .then(res => res.blob()) // Gets the response and returns it as a blob\n // .then(blob => {\n // const file = this.blobToFile(blob, 'web-created')\n // this.uploader.addToQueue([file])\n // this.uploader.uploadAll();\n // this.uploading = true;\n // });\n // }\n // } catch(e) {\n //\n // }\n // });\n // }\n } else if (files.length > 1) {\n console.log('Multiple files detected');\n } else {\n for (let i = 0; i < files.length; i++) {\n this.uploader.addToQueue([files[i]]);\n }\n this.uploader.uploadAll();\n this.uploading = true;\n }\n } else {\n console.log('Stuff not working');\n }\n }\n }\n}\n","import {COMMA, ENTER, TAB} from '@angular/cdk/keycodes';\nimport {ChangeDetectorRef, Component, OnInit, ViewChild, ElementRef, EventEmitter, Output, Input} from '@angular/core';\n\nimport {Entry} from '../../data/entry';\nimport {Section} from '../../data/section';\nimport {Content} from '../../data/content';\nimport {ContentType} from '../../data/content-type';\nimport {Identity} from '../../data/identity';\n\nimport {EntryService} from '../../services/entry.service';\nimport {IdentityService} from '../../services/identity.service';\n\nimport {map as loMap, filter} from 'lodash';\nimport {MatDialog} from '@angular/material/dialog';\nimport {MatAutocompleteSelectedEvent, MatAutocomplete} from '@angular/material/autocomplete';\nimport {EntrySelectorDialogComponent} from '../../components/entry-selector-dialog/entry-selector-dialog.component';\nimport {FileUploader} from 'ng2-file-upload';\nimport {MediaUploadModalComponent} from '../../components/media-upload-modal/media-upload-modal.component';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\nimport {FormControl} from '@angular/forms';\nimport {MatChipInputEvent} from '@angular/material/chips';\nimport {TagService} from '../../services/tag.service';\nimport {SchedulePublishDialogComponent} from '../schedule-publish-dialog/schedule-publish-dialog.component';\nconst slugify = require('slugify');\n\n@Component({\n selector: 'app-entry-creator',\n templateUrl: './entry-creator.component.html',\n styleUrls: ['./entry-creator.component.scss']\n})\nexport class EntryCreatorComponent implements OnInit {\n\n static CURRENT_ENTRY = 'current_entry';\n static DEFAULT_NEW_ENTRY_TITLE = 'A New Entry';\n\n ContentType = ContentType;\n Object = Object;\n\n entry: Entry = new Entry();\n me: Identity;\n\n separatorKeysCodes: number[] = [ENTER, COMMA, TAB];\n removable = true;\n tags: string[];\n all_tags: string[] = ['Angular', 'Bash', 'MacOS', 'Typescript', 'NPM', 'Databases'];\n filtered_tags: Observable<string[]>;\n @ViewChild('tagInput') tagInput: ElementRef<HTMLInputElement>;\n @ViewChild('tagauto') matAutocomplete: MatAutocomplete;\n\n tagCtrl = new FormControl();\n publishDateControl = new FormControl();\n\n tag_to_add: string;\n selectable = false;\n\n scheduling = false;\n customScheduleTime = '';\n today = new Date();\n hours: number;\n minutes: number;\n\n @Input() allowedMimeTypes = [\n 'image/jpeg',\n 'image/gif',\n 'image/png',\n 'image/jpg',\n 'video/mp4',\n 'video/webm',\n 'video/ogg',\n ];\n\n @Input() uploadUrlKey = 'path_to_file';\n\n public uploader: FileUploader = new FileUploader(\n {\n url: '/file_api/uploads/create_image/',\n itemAlias: 'file',\n authToken: '',\n headers: [\n {\n name: 'X-CSRFToken',\n value: EntryCreatorComponent.getCookie('csrftoken')\n },\n ],\n additionalParameter: {\n 'csrf_token': EntryCreatorComponent.getCookie('csrftoken')\n },\n removeAfterUpload: true,\n allowedMimeType: this.allowedMimeTypes,\n }\n );\n\n static getCookie(name: string) {\n const ca: Array<string> = document.cookie.split(';');\n const caLen: number = ca.length;\n const cookieName = `${name}=`;\n let c: string;\n\n for (let i = 0; i < caLen; i += 1) {\n c = ca[i].replace(/^\\s+/g, '');\n if (c.indexOf(cookieName) === 0) {\n return c.substring(cookieName.length, c.length);\n }\n }\n return '';\n }\n\n constructor(\n private entryService: EntryService,\n private tagService: TagService,\n private identityService: IdentityService,\n private cdr: ChangeDetectorRef,\n private dialog: MatDialog,\n ) {\n const scheduledDate = new Date();\n this.customScheduleTime = scheduledDate.getHours() + ':' + scheduledDate.getMinutes() + ' AM';\n }\n\n private _filter(value: string): string[] {\n const filterValue = value.toLowerCase();\n return this.all_tags.filter(tag => tag.toLowerCase().indexOf(filterValue) === 0);\n }\n\n add(event: MatChipInputEvent): void {\n const input = event.input;\n const value = event.value;\n\n // Add our tag\n if ((value || '').trim()) {\n this.tags.push(value.trim());\n }\n\n // Reset the input value\n if (input) {\n input.value = '';\n }\n\n this.tagCtrl.setValue(null);\n this.onChange();\n }\n\n remove(fruit: string): void {\n const index = this.tags.indexOf(fruit);\n\n if (index >= 0) {\n this.tags.splice(index, 1);\n }\n this.onChange();\n }\n\n selected(event: MatAutocompleteSelectedEvent): void {\n this.tags.push(event.option.viewValue);\n this.tagInput.nativeElement.value = '';\n this.tagCtrl.setValue(null);\n this.onChange();\n }\n\n refreshTags() {\n this.tagService.get().subscribe((response) => {\n this.all_tags = loMap(response.results, (t) => t.label);\n this.filtered_tags = this.tagCtrl.valueChanges.pipe(\n startWith(null),\n map((tag: string | null) => tag ? this._filter(tag) : this.all_tags.slice()));\n });\n }\n\n createNewEntry() {\n this.entry = new Entry();\n this.entry.title = EntryCreatorComponent.DEFAULT_NEW_ENTRY_TITLE;\n this.entry.published = false;\n this.entry.version = 1;\n\n this.entryService.create(this.entry).subscribe((response) => {\n this.entry = response;\n this.entry.sort();\n setTimeout(() => {\n this.entryService.currentlyEditedEntry.next(this.entry);\n }, 10);\n });\n }\n\n ngOnInit() {\n this.refreshTags();\n this.identityService.getMe().subscribe((me) => {\n this.me = me;\n });\n\n const savedEntry =\n localStorage.getItem(EntryCreatorComponent.CURRENT_ENTRY);\n\n if (savedEntry) {\n this.entry = new Entry(JSON.parse(savedEntry));\n\n if (this.entry.should_publish_in_future && this.entry.future_publish_date < new Date()) {\n this.createNewEntry();\n }\n\n this.entry.sort();\n if (this.entry.should_publish_in_future) {\n // Restore scheduling settings\n this.scheduling = true;\n let hours = this.entry.future_publish_date.getHours();\n let minutes: string | number = this.entry.future_publish_date.getMinutes();\n const ampm = hours >= 12 ? 'PM' : 'AM';\n if (hours >= 12) {\n hours = hours % 12;\n hours = hours ? hours : 12;\n }\n minutes = minutes < 10 ? '0' + minutes : minutes;\n this.customScheduleTime = hours + ':' + minutes + ' ' + ampm;\n }\n setTimeout(() => {\n this.entryService.currentlyEditedEntry.next(this.entry);\n }, 10);\n } else {\n this.createNewEntry();\n }\n\n this.uploader.onCompleteItem = (item, response) => {\n // const responseObj = JSON.parse(response)\n // this.uploadId = responseObj.id;\n };\n\n this.uploader.onWhenAddingFileFailed = (item, uploadFilter, options) => {\n // this.error = 'This file is not a supported mimetype.'\n // this.uploading = false;\n };\n\n this.tags = this.entry.tags;\n }\n\n onFileSelected(e) {\n this.uploader.uploadAll();\n }\n\n startUploader(content) {\n const dialogRef = this.dialog.open(MediaUploadModalComponent, {\n });\n dialogRef.componentInstance.allowedMimeTypes = this.allowedMimeTypes;\n dialogRef.componentInstance.uploadUrlKey = this.uploadUrlKey;\n dialogRef.afterClosed().subscribe(() => {\n content.value = dialogRef.componentInstance.imgLink;\n content.additional = [];\n content.additional.push({key: Content.KEY_MIMETYPE, value: dialogRef.componentInstance.mimeType});\n this.onChange();\n });\n }\n\n addSection() {\n this.entry.sections.push(new Section());\n this.onChange();\n }\n\n removeSection(section) {\n const remove = confirm('Are you sure you want to remove this section?');\n if (remove) {\n this.entry.sections =\n filter(this.entry.sections, (sct) => sct.id !== section.id);\n this.onChange();\n }\n }\n\n addContent(section) {\n section.contents.push(new Content());\n this.onChange();\n }\n\n removeContent(content) {\n const remove = confirm('Are you sure you want to remove this content?');\n\n if (remove) {\n for (const section of this.entry.sections) {\n section.contents = filter(\n section.contents,\n (ct) => ct.id !== content.id\n );\n }\n this.onChange();\n }\n }\n\n onChange() {\n this.entry.slug = slugify(this.entry.title).toLowerCase();\n localStorage.setItem(\n EntryCreatorComponent.CURRENT_ENTRY,\n JSON.stringify(this.entry)\n );\n this.entry.sort();\n this.cdr.detectChanges();\n this.entryService.currentlyEditedEntry.next(this.entry);\n this.entryService._currentlyEditedEntry = this.entry;\n }\n\n resetDate() {\n this.entry.create_date = new Date();\n this.entry.edit_date = new Date();\n\n this.onChange();\n }\n\n startNew() {\n const finish = confirm('Are you sure your finished? The JSON and entry displayed will be removed. Make sure you have already copied it.');\n if (finish) {\n\n this.entry = new Entry();\n this.entry.title = EntryCreatorComponent.DEFAULT_NEW_ENTRY_TITLE;\n this.entry.published = false;\n this.entry.version = 1;\n\n this.entryService.currentlyEditedEntry.next(this.entry);\n localStorage.setItem(\n EntryCreatorComponent.CURRENT_ENTRY,\n JSON.stringify(this.entry)\n );\n this.entryService.create(this.entry).subscribe((next) => {\n });\n }\n }\n\n seeEntries() {\n const dialogRef = this.dialog.open(EntrySelectorDialogComponent, {\n width: '500px',\n data: {name: 'test', animal: 'test'}\n });\n\n dialogRef.afterClosed().subscribe((id) => {\n if (id) {\n this.entryService.getUnpublishedById(id).subscribe((result) => {\n const entry = result;\n this.entryService.currentlyEditedEntry.next(entry);\n localStorage.setItem(\n EntryCreatorComponent.CURRENT_ENTRY,\n JSON.stringify(entry)\n );\n this.entry = entry;\n });\n }\n });\n }\n\n postPublishCallback() {\n this.entry = new Entry();\n this.entry.title = EntryCreatorComponent.DEFAULT_NEW_ENTRY_TITLE;\n this.entry.published = false;\n this.entry.version = 1;\n this.entryService.currentlyEditedEntry.next(this.entry);\n localStorage.setItem(\n EntryCreatorComponent.CURRENT_ENTRY,\n JSON.stringify(this.entry)\n );\n this.entryService.create(this.entry).subscribe((next) => {\n this.tags = [];\n this.refreshTags();\n });\n }\n\n cancelScheduling() {\n this.entry.future_publish_date = null;\n this.entry.should_publish_in_future = false;\n this.scheduling = false;\n this.onChange();\n }\n\n exposeScheduling() {\n const scheduledDate = new Date();\n scheduledDate.setDate(scheduledDate.getDate() + 1);\n\n this.entry.future_publish_date = scheduledDate;\n this.setTime(this.customScheduleTime);\n\n this.entry.should_publish_in_future = true;\n this.scheduling = true;\n this.onChange();\n }\n publish() {\n const publish = confirm('Are you sure you want to publish? Once an article is published it is available to everyone.');\n if (publish) {\n this.entry.published = true;\n this.entry.publish_date = new Date();\n this.entry.edit_date = new Date();\n this.entryService.updateUnpublishedEntry(this.entry).subscribe(this.postPublishCallback.bind(this));\n }\n }\n delete() {\n const confirmDelete = confirm('Are you sure you want to delete this draft? Once it is deleted it cannot be recovered.');\n if (confirmDelete) {\n this.entryService.delete(this.entry).subscribe(() => {\n this.entry = null;\n });\n }\n }\n onDateChange() {\n this.entry.future_publish_date.setHours(this.hours);\n this.entry.future_publish_date.setMinutes(this.minutes);\n this.onChange();\n }\n\n\n setTime(e) {\n const firstTimeSplit = e.split(' ');\n const secondTimeSplit = firstTimeSplit[0].split(':');\n this.hours = Number(secondTimeSplit[0]);\n this.minutes = Number(secondTimeSplit[1]);\n\n if (firstTimeSplit[1] === 'PM') {\n this.hours = Number(this.hours) + 12;\n }\n\n this.entry.future_publish_date.setHours(this.hours);\n this.entry.future_publish_date.setMinutes(this.minutes);\n\n this.onChange();\n }\n}\n","import {AfterViewChecked, Component, Input, NgZone, OnDestroy, OnInit} from '@angular/core';\nimport {orderBy} from 'lodash';\nimport {ActivatedRoute, NavigationEnd, NavigationStart, Router} from '@angular/router';\n\nimport {Entry} from '../../data/entry';\nimport {Content} from '../../data/content';\nimport {ContentType} from '../../data/content-type';\nimport {Identity} from '../../data/identity';\n\nimport {IdentityService} from '../../services/identity.service';\nimport {EntryService} from '../../services/entry.service';\nimport {CommentService} from '../../services/comment.service';\nimport {PrismService} from '../../services/prism.service';\n\n\nimport {EntryCreatorComponent} from '../../components/entry-creator/entry-creator.component';\n\n@Component({\n selector: 'app-entry-renderer',\n templateUrl: './entry-renderer.component.html',\n styleUrls: ['./entry-renderer.component.scss']\n})\nexport class EntryRendererComponent implements OnInit, AfterViewChecked {\n\n me: Identity;\n @Input() entry: Entry;\n\n ContentType = ContentType;\n comments = [];\n commentText = '';\n\n alert = alert;\n\n @Input() editMode = false;\n\n constructor(\n private prismService: PrismService,\n private ngZone: NgZone,\n private identityService: IdentityService,\n private commentService: CommentService,\n private router: Router,\n private entryService: EntryService,\n ) {\n }\n\n\n ngOnInit() {\n this.identityService.getMe().subscribe((me) => {\n this.me = me;\n });\n this.commentService.getComments(this.entry.id).subscribe((response) => {\n this.comments = (response as any).results;\n for (const comment of this.comments) {\n comment.date_obj = new Date(comment.created_on);\n }\n });\n }\n\n ngAfterViewChecked(): void {\n if (!this.editMode) {\n this.ngZone.runOutsideAngular(() => {\n try {\n this.prismService.highlightAll();\n } catch (e) {\n\n }\n });\n }\n }\n edit(entry: Entry) {\n entry.version++;\n entry.published = false;\n delete entry.publish_date;\n\n this.entryService.create(entry).subscribe((response) => {\n localStorage.setItem(EntryCreatorComponent.CURRENT_ENTRY, JSON.stringify(response));\n this.router.navigateByUrl('create(left-col:create//right-col:create)').then(() => {\n\n });\n });\n }\n postComment(e) {\n e.preventDefault();\n if (this.commentText !== '') {\n this.commentService.postComment({entry: this.entry.id, content: this.commentText}).subscribe((comment) => {\n this.comments.push(comment);\n });\n this.commentText = '';\n }\n }\n mediaIsZip(content: Content): boolean {\n let mediaIsZip = false;\n if (content.additional) {\n for (const add of content.additional) {\n if (add.key === Content.KEY_MIMETYPE) {\n if (add.value === 'application/zip') {\n mediaIsZip = true;\n }\n }\n }\n }\n return mediaIsZip;\n }\n approve(comment: any) {\n comment.approved = !comment.approved;\n this.commentService.patchComment(Object.assign({}, {approved: true}, comment)).subscribe((rComment) => {\n\n });\n }\n unapprove(comment: any) {\n comment.approved = !comment.approved;\n this.commentService.patchComment(Object.assign({}, {approved: false}, comment)).subscribe((rComment) => {\n\n });\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {Entry} from '../../data/entry';\nimport {ContentType} from '../../data/content-type';\n\n@Component({\n selector: 'app-entry-summary',\n templateUrl: './entry-summary.component.html',\n styleUrls: ['./entry-summary.component.scss']\n})\nexport class EntrySummaryComponent implements OnInit {\n\n ContentType = ContentType;\n\n @Input() entry: Entry;\n\n\n constructor(\n private router: Router,\n ) {\n }\n\n ngOnInit(): void {\n }\n\n routeTo(entry) {\n this.router.navigate(['/', 'blog', entry.slug]).then(() => {\n\n });\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {Entry} from '../../data/entry';\nimport {EntryService} from '../../services/entry.service';\n\n@Component({\n selector: 'app-json-renderer',\n templateUrl: './json-renderer.component.html',\n styleUrls: ['./json-renderer.component.scss']\n})\nexport class JsonRendererComponent implements OnInit {\n\n JSON = JSON;\n @Input() entry: Entry = new Entry();\n\n constructor(\n private entryService: EntryService,\n ) {\n }\n\n ngOnInit() {\n this.entryService.currentlyEditedEntry.subscribe((entry) => {\n this.entry = entry;\n });\n }\n\n}\n","import {Component, OnDestroy, OnInit} from '@angular/core';\nimport {NavigationEnd, Router} from '@angular/router';\nimport {map} from 'lodash';\n\nimport {Entry} from '../../data/entry';\nimport {EntryService} from '../../services/entry.service';\n\n@Component({\n selector: 'app-landing-page',\n templateUrl: './landing-page.component.html',\n styleUrls: ['./landing-page.component.scss']\n})\nexport class LandingPageComponent implements OnInit, OnDestroy {\n\n JSON = JSON;\n\n entries;\n source;\n sourceSub;\n\n constructor(\n private router: Router,\n private entryService: EntryService,\n ) {\n\n }\n\n ngOnInit() {\n this.entryService.get().subscribe((response) => {\n this.entries = map((response as any).results.slice(0, 3), (result) => {\n return { id: result.id, entry: new Entry(result)};\n });\n });\n }\n\n ngOnDestroy(): void {\n if (this.sourceSub) {\n this.sourceSub.unsubscribe();\n this.sourceSub = null;\n }\n }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\nimport {Entry} from '../../data/entry';\nimport {EntryService} from '../../services/entry.service';\n\n@Component({\n selector: 'app-outline-view',\n templateUrl: './outline-view.component.html',\n styleUrls: ['./outline-view.component.scss']\n})\nexport class OutlineViewComponent implements OnInit {\n\n entry: Entry = new Entry();\n Math = Math;\n\n constructor(\n private entryService: EntryService\n ) {\n }\n\n ngOnInit() {\n this.entryService.currentlyEditedEntry.subscribe((entry) => {\n this.entry = entry;\n });\n }\n\n sectionDrop(e) {\n const entry = this.entry;\n const diff = e.currentIndex - e.previousIndex;\n entry.sections[e.previousIndex].order = e.currentIndex * 10 + (diff > 0 ? 1 : -1);\n entry.sort();\n this.entryService.currentlyEditedEntry.next(this.entry);\n }\n\n contentDrop(e, section) {\n const entry = this.entry;\n const diff = e.currentIndex - e.previousIndex;\n section.contents[e.previousIndex].order = e.currentIndex * 10 + (diff > 0 ? 1 : -1);\n entry.sort();\n this.entryService.currentlyEditedEntry.next(this.entry);\n }\n}\n","import {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {filter} from 'lodash';\nimport {map} from 'lodash';\n\nimport {Entry} from '../../data/entry';\nimport {Identity} from '../../data/identity';\n\nimport {EntryService} from '../../services/entry.service';\nimport {IdentityService} from '../../services/identity.service';\n\n@Component({\n selector: 'app-side-navigation',\n templateUrl: './side-navigation.component.html',\n styleUrls: ['./side-navigation.component.scss']\n})\nexport class SideNavigationComponent implements OnInit, OnDestroy {\n\n sourceSub;\n identity: Identity;\n\n entries: {id: string, entry: Entry}[] = [];\n entriesByMonthAndYear: {month_year: string, month_year_number: number, entries: Entry[]}[] = [];\n\n constructor(\n private entryService: EntryService,\n private router: Router,\n private identityService: IdentityService,\n ) {\n }\n\n ngOnInit() {\n this.identityService.getMe().subscribe((identity) => {\n this.identity = identity;\n }, (err) => {\n this.identity = null;\n });\n\n this.getEntries();\n\n }\n\n getEntriesWithUrl(url: string) {\n this.entryService.getListByUrl(url).subscribe((response) => {\n this.entries = this.entries.concat(\n map((response as any).results, (result) => {\n return { id: result.id, entry: new Entry(result)};\n })\n );\n if ((response as any).next) {\n this.getEntriesWithUrl(response.next);\n } else {\n this.organizeEntries();\n }\n });\n }\n\n organizeEntries() {\n for (const entryWrapper of this.entries) {\n const entry = entryWrapper.entry;\n const create_date = new Date(entry.create_date);\n const month = create_date.getMonth();\n const year = create_date.getFullYear();\n const key = month + '/' + year;\n const sort_index = (year * 100) + month;\n const containers = filter(this.entriesByMonthAndYear, (entryContainer) => entryContainer.month_year === key);\n if (containers.length > 0) {\n const container = containers[0];\n const entriesWithId = filter(container.entries, (e) => e.id === entryWrapper.entry.id);\n if (entriesWithId.length === 0) {\n container.entries.push(entry);\n }\n } else {\n const newContainer = {month_year: key, month_year_number: sort_index, entries: [entry]};\n this.entriesByMonthAndYear.push(newContainer);\n }\n }\n this.entriesByMonthAndYear.sort(\n (entry_a, entry_b) => {\n return entry_a.month_year_number - entry_b.month_year_number;\n });\n this.entriesByMonthAndYear.reverse();\n }\n\n getEntries() {\n this.entryService.get().subscribe((response) => {\n this.entries = map(response.results, (result) => {\n return { id: result.id, entry: new Entry(result)};\n });\n if ((response as any).next) {\n this.getEntriesWithUrl(response.next);\n } else {\n this.organizeEntries();\n }\n });\n }\n\n render() {\n }\n\n routeTo(entry) {\n if (!entry) {\n this.router.navigateByUrl('create(left-col:create//right-col:create)').then(() => {\n\n });\n } else {\n this.router.navigate(['/', 'blog', entry.slug]).then(() => {\n // Noop\n });\n }\n }\n\n getMonthAndYearFromKey(key: string) {\n let subheading = '';\n const parts = key.split('/');\n\n switch (Number(parts[0])) {\n case 0:\n subheading += 'January ';\n break;\n case 1:\n subheading += 'February ';\n break;\n case 2:\n subheading += 'March ';\n break;\n case 3:\n subheading += 'April ';\n break;\n case 4:\n subheading += 'May ';\n break;\n case 5:\n subheading += 'June ';\n break;\n case 6:\n subheading += 'July ';\n break;\n case 7:\n subheading += 'August ';\n break;\n case 8:\n subheading += 'September ';\n break;\n case 9:\n subheading += 'October ';\n break;\n case 10:\n subheading += 'November ';\n break;\n case 11:\n subheading += 'December ';\n break;\n default:\n subheading += 'January ';\n }\n subheading += parts[1];\n\n return subheading;\n }\n\n ngOnDestroy(): void {\n if (this.sourceSub) {\n this.sourceSub.unsubscribe();\n this.sourceSub = null;\n }\n }\n}\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\nimport {StaticHtmlService} from '../../services/static-html.service';\n\n@Component({\n selector: 'app-static-html',\n templateUrl: './static-html.component.html',\n styleUrls: ['./static-html.component.css']\n})\nexport class StaticHtmlComponent implements OnInit, OnChanges {\n\n innerHtml: SafeHtml;\n @Input() value;\n\n constructor(\n private staticHtmlService: StaticHtmlService,\n private domSanitizer: DomSanitizer\n ) { }\n\n refreshContent() {\n this.innerHtml = this.domSanitizer.bypassSecurityTrustHtml(this.staticHtmlService.mapStaticHtml(this.value, false));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.refreshContent();\n }\n\n ngOnInit(): void {\n this.refreshContent();\n }\n\n}\n","import { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport {NavigationEnd, Router} from '@angular/router';\nimport {Subject, Subscription} from 'rxjs';\nimport {debounceTime} from 'rxjs/operators';\n\n@Component({\n selector: 'lib-main',\n templateUrl: './main.component.html',\n styleUrls: ['./main.component.css']\n})\nexport class MainComponent implements OnInit, OnDestroy {\n\n loaded = true;\n subs: Subscription = new Subscription();\n showRightCol: boolean;\n showLeftCol: boolean;\n\n public innerWidth: any;\n\n resizeSubject = new Subject<number>();\n\n constructor(\n private router: Router,\n ) {\n\n }\n\n ngOnInit(): void {\n this.subs.add(this.router.events.subscribe((e) => {\n if (e instanceof NavigationEnd) {\n if (e.urlAfterRedirects.includes('create')) {\n this.showLeftCol = true;\n this.showRightCol = true;\n } else {\n this.showLeftCol = true;\n this.showRightCol = false;\n this.innerWidth = window.innerWidth;\n this.collapseLeftColIfTooNarrow();\n }\n }\n }));\n\n this.subs.add(this.resizeSubject.pipe(\n debounceTime(100)\n ).subscribe((width) => {\n this.innerWidth = width;\n this.collapseLeftColIfTooNarrow();\n }));\n }\n\n collapseLeftColIfTooNarrow() {\n this.showLeftCol = this.innerWidth >= 800;\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event) {\n this.resizeSubject.next(window.innerWidth);\n }\n\n ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\nimport {InteractionService} from '../../services/analytics/interaction.service';\nimport {ViewService} from '../../services/analytics/view.service';\nimport {EntryService} from '../../services/entry.service';\nimport {Interaction} from '../../services/interaction';\nimport {View} from '../../services/view';\n\n@Component({\n selector: 'lib-entry-renderer-wrapper',\n templateUrl: './entry-renderer-wrapper.component.html',\n styleUrls: ['./entry-renderer-wrapper.component.css']\n})\nexport class EntryRendererWrapperComponent implements OnInit, OnDestroy {\n entries;\n currentEntry;\n seeAllEntries = false;\n routerSub;\n\n seeAll(toggle: boolean) {\n this.seeAllEntries = toggle;\n }\n\n constructor(\n private entryService: EntryService,\n private router: Router,\n private route: ActivatedRoute,\n private viewService: ViewService,\n private interactionService: InteractionService\n ) {\n }\n\n getEntry() {\n const slug = this.route.snapshot.paramMap.get('slug');\n if (slug) {\n this.entryService.getBySlug(slug).subscribe((response) => {\n this.currentEntry = response;\n const view = new View();\n view.entry = this.currentEntry.id;\n\n this.viewService.create(view).subscribe((viewResponse) => {\n // Noop\n });\n });\n }\n\n this.route.queryParams.subscribe(params => {\n const campaign = params['campaign'];\n if (campaign && campaign !== '') {\n\n const interaction = new Interaction();\n interaction.content = {'campaign': campaign, slug};\n this.interactionService.create(interaction).subscribe((response) => {\n\n });\n setTimeout(() => {\n const urlMinsCampaign = this.router.url.replace(new RegExp('.campaign=' + campaign), '');\n this.router.navigateByUrl(urlMinsCampaign);\n }, 0);\n }\n });\n }\n\n ngOnInit() {\n this.routerSub = this.router.events.subscribe((e) => {\n if (e instanceof NavigationEnd) {\n this.currentEntry = null;\n this.seeAll(false);\n setTimeout(() => {\n this.getEntry();\n }, 10);\n }\n });\n\n this.getEntry();\n }\n\n ngOnDestroy(): void {\n if (this.routerSub) {\n this.routerSub.complete();\n this.routerSub = null;\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport Autolinker from 'autolinker';\n\n@Pipe({ name: 'linky' })\nexport class LinkyPipe implements PipeTransform {\n transform(value: string, options?: any): string {\n return Autolinker.link(value, Object.assign({}, options, {newWindow: true, stripPrefix: false}));\n }\n}\n","import {Pipe, PipeTransform, NgZone, ChangeDetectorRef, OnDestroy} from \"@angular/core\";\n@Pipe({\n name:'timeAgo',\n pure:false\n})\nexport class TimeAgoPipe implements PipeTransform, OnDestroy {\n private timer: number;\n constructor(private changeDetectorRef: ChangeDetectorRef, private ngZone: NgZone) {}\n transform(value:string) {\n this.removeTimer();\n let d = new Date(value);\n let now = new Date();\n let seconds = Math.round(Math.abs((now.getTime() - d.getTime())/1000));\n let timeToUpdate = (Number.isNaN(seconds)) ? 1000 : this.getSecondsUntilUpdate(seconds) *1000;\n this.timer = this.ngZone.runOutsideAngular(() => {\n if (typeof window !== 'undefined') {\n return window.setTimeout(() => {\n this.ngZone.run(() => this.changeDetectorRef.markForCheck());\n }, timeToUpdate);\n }\n return null;\n });\n let minutes = Math.round(Math.abs(seconds / 60));\n let hours = Math.round(Math.abs(minutes / 60));\n let days = Math.round(Math.abs(hours / 24));\n let months = Math.round(Math.abs(days/30.416));\n let years = Math.round(Math.abs(days/365));\n if (Number.isNaN(seconds)){\n return '';\n } else if (seconds <= 45) {\n return 'a few seconds ago';\n } else if (seconds <= 90) {\n return 'a minute ago';\n } else if (minutes <= 45) {\n return minutes + ' minutes ago';\n } else if (minutes <= 90) {\n return 'an hour ago';\n } else if (hours <= 22) {\n return hours + ' hours ago';\n } else if (hours <= 36) {\n return 'a day ago';\n } else if (days <= 25) {\n return days + ' days ago';\n } else if (days <= 45) {\n return 'a month ago';\n } else if (days <= 345) {\n return months + ' months ago';\n } else if (days <= 545) {\n return 'a year ago';\n } else { // (days > 545)\n return years + ' years ago';\n }\n }\n ngOnDestroy(): void {\n this.removeTimer();\n }\n private removeTimer() {\n if (this.timer) {\n window.clearTimeout(this.timer);\n this.timer = null;\n }\n }\n private getSecondsUntilUpdate(seconds:number) {\n let min = 60;\n let hr = min * 60;\n let day = hr * 24;\n if (seconds < min) { // less than 1 min, update every 2 secs\n return 2;\n } else if (seconds < hr) { // less than an hour, update every 30 secs\n return 30;\n } else if (seconds < day) { // less then a day, update every 5 mins\n return 300;\n } else { // update every hour\n return 3600;\n }\n }\n}\n","import {Routes as AngularRoutes, RouterModule} from '@angular/router';\nimport {EntryCreatorComponent} from '../components/entry-creator/entry-creator.component';\nimport {EntryRendererWrapperComponent} from '../components/entry-renderer-wrapper/entry-renderer-wrapper.component';\nimport {JsonRendererComponent} from '../components/json-renderer/json-renderer.component';\nimport {MainComponent} from '../components/main/main.component';\nimport {OutlineViewComponent} from '../components/outline-view/outline-view.component';\nimport {SideNavigationComponent} from '../components/side-navigation/side-navigation.component';\n\nconst routes: AngularRoutes = [\n {path: '', component: SideNavigationComponent, outlet: 'left-col'},\n {\n path: 'landing',\n component: MainComponent\n },\n {path: 'blog/:slug', component: EntryRendererWrapperComponent},\n {path: 'create', component: EntryCreatorComponent},\n {path: 'create', component: OutlineViewComponent, outlet: 'left-col'},\n {path: 'create', component: JsonRendererComponent, outlet: 'right-col'},\n {path: '', redirectTo: '/landing', pathMatch: 'full'},\n {path: '**', redirectTo: '/404error'}\n];\n\nexport class Routes {\n routes: AngularRoutes = routes;\n}\n","export class SchedulePublishDialogData {\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport {MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\nimport {SchedulePublishDialogData} from './schedule-publish-dialog-data';\n\n@Component({\n selector: 'lib-schedule-publish-dialog',\n templateUrl: './schedule-publish-dialog.component.html',\n styleUrls: ['./schedule-publish-dialog.component.css']\n})\nexport class SchedulePublishDialogComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef<SchedulePublishDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: SchedulePublishDialogData,\n ) { }\n\n ngOnInit(): void {\n }\n\n onNoClick(): void {\n }\n\n onYesClick(): void {\n this.dialogRef.close('test');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {BrowserModule} from '@angular/platform-browser';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\n\nimport {DragDropModule} from '@angular/cdk/drag-drop';\nimport {MatDividerModule} from '@angular/material/divider';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatListModule} from '@angular/material/list';\nimport {MatRadioModule} from '@angular/material/radio';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\nimport {MatChipsModule} from '@angular/material/chips';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatNativeDateModule} from '@angular/material/core';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {FontAwesomeModule, FaIconLibrary} from '@fortawesome/angular-fontawesome';\nimport {faSpinner} from '@fortawesome/free-solid-svg-icons';\nimport {FileUploadModule} from 'ng2-file-upload';\nimport {NgxMaterialTimepickerModule} from 'ngx-material-timepicker';\n\nimport { CommentService } from './services/comment.service';\nimport { EntryService } from './services/entry.service';\nimport { UploadService } from './services/upload.service';\nimport { PrismService } from './services/prism.service';\nimport { IdentityService } from './services/identity.service';\nimport { DjangoRestFrameworkEndpointService } from './services/django-rest-framework-endpoint.service';\nimport {EntryRendererComponent} from './components/entry-renderer/entry-renderer.component';\nimport {EntryCreatorComponent} from './components/entry-creator/entry-creator.component';\nimport {OutlineViewComponent} from './components/outline-view/outline-view.component';\nimport {SideNavigationComponent} from './components/side-navigation/side-navigation.component';\nimport {LandingPageComponent} from './components/landing-page/landing-page.component';\nimport {JsonRendererComponent} from './components/json-renderer/json-renderer.component';\nimport {EntrySummaryComponent} from './components/entry-summary/entry-summary.component';\nimport { MediaUploadModalComponent } from './components/media-upload-modal/media-upload-modal.component';\nimport { EntrySelectorDialogComponent } from './components/entry-selector-dialog/entry-selector-dialog.component';\nimport {TimeAgoPipe} from './pipes/TimeAgoPipe';\nimport {LinkyPipe} from './pipes/LinkyPipe';\nimport { StaticHtmlComponent } from './components/static-html/static-html.component';\nimport {TagService} from './services/tag.service';\nimport { MainComponent } from './components/main/main.component';\nimport { EntryRendererWrapperComponent } from './components/entry-renderer-wrapper/entry-renderer-wrapper.component';\nimport {RouterModule} from '@angular/router';\nimport { SchedulePublishDialogComponent } from './components/schedule-publish-dialog/schedule-publish-dialog.component';\n\n\n@NgModule({\n declarations: [\n EntryRendererComponent,\n EntryCreatorComponent,\n LandingPageComponent,\n SideNavigationComponent,\n OutlineViewComponent,\n JsonRendererComponent,\n EntrySummaryComponent,\n EntrySelectorDialogComponent,\n MediaUploadModalComponent,\n TimeAgoPipe,\n LinkyPipe,\n StaticHtmlComponent,\n MainComponent,\n EntryRendererWrapperComponent,\n SchedulePublishDialogComponent,\n ],\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n DragDropModule,\n MatCardModule,\n MatSidenavModule,\n MatButtonModule,\n MatInputModule,\n MatListModule,\n MatRadioModule,\n MatDialogModule,\n MatCheckboxModule,\n MatDividerModule,\n MatAutocompleteModule,\n MatChipsModule,\n MatIconModule,\n MatDatepickerModule,\n MatNativeDateModule,\n FontAwesomeModule,\n FileUploadModule,\n NgxMaterialTimepickerModule,\n ],\n providers: [\n CommentService,\n EntryService,\n UploadService,\n PrismService,\n IdentityService,\n DjangoRestFrameworkEndpointService,\n TagService,\n ],\n exports: [\n EntryRendererComponent,\n EntryCreatorComponent,\n LandingPageComponent,\n SideNavigationComponent,\n OutlineViewComponent,\n JsonRendererComponent,\n EntrySummaryComponent,\n EntrySelectorDialogComponent,\n MediaUploadModalComponent,\n TimeAgoPipe,\n LinkyPipe,\n StaticHtmlComponent,\n MainComponent,\n EntryRendererWrapperComponent,\n ]\n})\nexport class CoreModule {\n constructor(\n private library: FaIconLibrary\n ) {\n this.library.addIcons(faSpinner);\n }\n}\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib/data/base';\nexport * from './lib/data/content-type';\nexport * from './lib/data/content';\nexport * from './lib/data/entry';\nexport * from './lib/data/guid';\nexport * from './lib/data/identity';\nexport * from './lib/data/list-response';\nexport * from './lib/data/section';\nexport * from './lib/data/core-event';\nexport * from './lib/data/core-event-type.enum';\nexport * from './lib/data/visitor-profile';\n\nexport * from './lib/services/comment.service';\nexport * from './lib/services/django-rest-framework-endpoint.service';\nexport * from './lib/services/entry.service';\nexport * from './lib/services/identity.service';\nexport * from './lib/services/prism.service';\nexport * from './lib/services/upload.service';\nexport * from './lib/services/upload';\nexport * from './lib/services/analytics/view.service';\nexport * from './lib/services/analytics/interaction.service';\nexport * from './lib/services/view';\nexport * from './lib/services/interaction';\nexport * from './lib/services/visitor-profile.service';\nexport * from './lib/services/static-html.service';\nexport * from './lib/services/tag.service';\n\nexport * from './lib/components/entry-creator/entry-creator.component';\nexport * from './lib/components/entry-renderer/entry-renderer.component';\nexport * from './lib/components/entry-selector-dialog/entry-selector-dialog.component';\nexport * from './lib/components/entry-summary/entry-summary.component';\nexport * from './lib/components/json-renderer/json-renderer.component';\nexport * from './lib/components/landing-page/landing-page.component';\nexport * from './lib/components/media-upload-modal/media-upload-modal.component';\nexport * from './lib/components/outline-view/outline-view.component';\nexport * from './lib/components/side-navigation/side-navigation.component';\nexport * from './lib/components/static-html/static-html.component';\nexport * from './lib/components/main/main.component';\nexport * from './lib/components/entry-renderer-wrapper/entry-renderer-wrapper.component';\n\nexport * from './lib/pipes/LinkyPipe';\nexport * from './lib/pipes/TimeAgoPipe';\n\nexport * from './lib/routing/routes';\n\nexport * from './lib/core.module';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {EntrySelectorDialogData as ɵa} from './lib/components/entry-selector-dialog/entry-selector-dialog-data';\nexport {SchedulePublishDialogData as ɵc} from './lib/components/schedule-publish-dialog/schedule-publish-dialog-data';\nexport {SchedulePublishDialogComponent as ɵb} from './lib/components/schedule-publish-dialog/schedule-publish-dialog.component';"],"names":["ContentType","orderBy","CoreEventType","Injectable","HttpClient","EventEmitter","map","Subject","debounceTime","HttpParams","isPlatformBrowser","Inject","PLATFORM_ID","DeviceDetectorService","SecurityContext","DomSanitizer","Component","MatDialogRef","MAT_DIALOG_DATA","FileUploader","Input","HostListener","slugify","ENTER","COMMA","TAB","FormControl","loMap","startWith","filter","ChangeDetectorRef","MatDialog","ViewChild","NgZone","Router","Subscription","NavigationEnd","ActivatedRoute","Autolinker","Pipe","faSpinner","NgModule","CommonModule","RouterModule","FormsModule","ReactiveFormsModule","DragDropModule","MatCardModule","MatSidenavModule","MatButtonModule","MatInputModule","MatListModule","MatRadioModule","MatDialogModule","MatCheckboxModule","MatDividerModule","MatAutocompleteModule","MatChipsModule","MatIconModule","MatDatepickerModule","MatNativeDateModule","FontAwesomeModule","FileUploadModule","NgxMaterialTimepickerModule","FaIconLibrary"],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("lodash"),require("@angular/core"),require("@angular/common/http"),require("rxjs/operators"),require("rxjs"),require("@angular/common"),require("clipboard"),require("prismjs"),require("prismjs/plugins/toolbar/prism-toolbar"),require("prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard"),require("prismjs/components/prism-css"),require("prismjs/components/prism-javascript"),require("prismjs/components/prism-java"),require("prismjs/components/prism-markup"),require("prismjs/components/prism-typescript"),require("prismjs/components/prism-sass"),require("prismjs/components/prism-scss"),require("ngx-device-detector"),require("@angular/platform-browser"),require("@angular/cdk/keycodes"),require("@angular/material/dialog"),require("ng2-file-upload"),require("@angular/forms"),require("@angular/router"),require("autolinker"),require("@angular/cdk/drag-drop"),require("@angular/material/divider"),require("@angular/material/card"),require("@angular/material/sidenav"),require("@angular/material/button"),require("@angular/material/input"),require("@angular/material/list"),require("@angular/material/radio"),require("@angular/material/checkbox"),require("@angular/material/autocomplete"),require("@angular/material/chips"),require("@angular/material/icon"),require("@angular/material/core"),require("@angular/material/datepicker"),require("@fortawesome/angular-fontawesome"),require("@fortawesome/free-solid-svg-icons"),require("ngx-material-timepicker")):"function"==typeof define&&define.amd?define("@thecodeblogs/blog",["exports","lodash","@angular/core","@angular/common/http","rxjs/operators","rxjs","@angular/common","clipboard","prismjs","prismjs/plugins/toolbar/prism-toolbar","prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard","prismjs/components/prism-css","prismjs/components/prism-javascript","prismjs/components/prism-java","prismjs/components/prism-markup","prismjs/components/prism-typescript","prismjs/components/prism-sass","prismjs/components/prism-scss","ngx-device-detector","@angular/platform-browser","@angular/cdk/keycodes","@angular/material/dialog","ng2-file-upload","@angular/forms","@angular/router","autolinker","@angular/cdk/drag-drop","@angular/material/divider","@angular/material/card","@angular/material/sidenav","@angular/material/button","@angular/material/input","@angular/material/list","@angular/material/radio","@angular/material/checkbox","@angular/material/autocomplete","@angular/material/chips","@angular/material/icon","@angular/material/core","@angular/material/datepicker","@fortawesome/angular-fontawesome","@fortawesome/free-solid-svg-icons","ngx-material-timepicker"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).thecodeblogs=t.thecodeblogs||{},t.thecodeblogs.blog={}),t.lodash,t.ng.core,t.ng.common.http,t.rxjs.operators,t.rxjs,t.ng.common,null,null,null,null,null,null,null,null,null,null,null,t.i2,t.ng.platformBrowser,t.ng.cdk.keycodes,t.ng.material.dialog,t.ng2FileUpload,t.ng.forms,t.ng.router,t.Autolinker,t.ng.cdk.dragDrop,t.ng.material.divider,t.ng.material.card,t.ng.material.sidenav,t.ng.material.button,t.ng.material.input,t.ng.material.list,t.ng.material.radio,t.ng.material.checkbox,t.ng.material.autocomplete,t.ng.material.chips,t.ng.material.icon,t.ng.material.core,t.ng.material.datepicker,t.angularFontawesome,t.freeSolidSvgIcons,t.ngxMaterialTimepicker)}(this,(function(t,e,n,r,i,o,a,s,c,l,u,p,d,h,m,g,f,y,v,b,w,C,S,x,I,_,k,T,E,M,D,j,R,A,N,O,P,L,F,U,q,H,z){"use strict";function Y(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var J,B=Y(_),V=function(){function t(){}return t.prototype.newGuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))},t}(),W=function(){this.id=(new V).newGuid()};(J=t.ContentType||(t.ContentType={})).TEXT="text",J.URL="url",J.CODE="code",J.IMAGE="image",J.MEDIA="media",J.HTML="html";
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */
|
|
16
|
-
var K=function(t,e){return(K=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)};function Z(t,e){function n(){this.constructor=t}K(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}Object.create;function $(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}Object.create;var G=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Z(e,t),e}(W);G.KEY_MIMETYPE="mimeType";require("slugify");var X,Q=function(t){function n(e){var n=t.call(this)||this;return n.should_publish_in_future=!1,Object.assign(n,e),n.create_date?n.create_date=new Date(n.create_date):n.create_date=new Date,n.edit_date?n.edit_date=new Date(n.edit_date):n.edit_date=new Date,n.publish_date&&(n.publish_date=new Date(n.publish_date)),n.future_publish_date&&(n.future_publish_date=new Date(n.future_publish_date)),n.version||(n.version=1),n.tags||(n.tags=[]),n.views&&(n.views<10?n._friendly_views="Less than ten":10<n.views&&n.views<100?n._friendly_views="Around one hundred":n._friendly_views=n.views.toString()),n.sections||(n.sections=[]),void 0!==n.should_publish_in_future&&null!==n.should_publish_in_future||(n.should_publish_in_future=!1),n}return Z(n,t),n.prototype.sort=function(){var t,n;this.sections=e.orderBy(this.sections,(function(t){var e=t.order;return Number(e)}),["asc"]);for(var r=0;r<this.sections.length;r++)this.sections[r].order=10*r;try{for(var i=$(this.sections),o=i.next();!o.done;o=i.next()){var a=o.value;a.contents=e.orderBy(a.contents,(function(t){var e=t.order;return Number(e)}),["asc"]);for(r=0;r<a.contents.length;r++)a.contents[r].order=10*r}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}},n.prototype.showEditInformation=function(){var t=Math.floor((this.create_date-this.edit_date)/864e5);return t>1||t<-1},n.prototype.getProp=function(t){return this.__server_generated_properties?this.__server_generated_properties[t]:""},n}(W),tt=function(){},et=function(t){function e(){var e=t.call(this)||this;return e.order||(e.order=-1),e.contents=[],e}return Z(e,t),e}(W),nt=function(t,e){this.data=t,this.type=e};(X=t.CoreEventType||(t.CoreEventType={})).UPDATE="update",X.CREATE="create",X.DELETE="delete";var rt=function(){},it=function(){function t(t){this.http=t,this.endpoint="/blog_api/comments/",this.adminEndpoint="/blog_api/admin/comments/"}return t.prototype.getComments=function(t){return this.http.get(this.endpoint,{params:{entry:t}})},t.prototype.postComment=function(t){return this.http.post(this.endpoint,t,{params:{entry:t.entry}})},t.prototype.patchComment=function(t){return this.http.patch(this.adminEndpoint+"/"+t.id+"/",t)},t}();it.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new it(n.ɵɵinject(r.HttpClient))},token:it,providedIn:"root"}),it.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],it.ctorParameters=function(){return[{type:r.HttpClient}]};var ot=function(){function e(t){this.http=t,this.events=new n.EventEmitter,this.endpoint=""}return e.prototype.triggerCoreEvent=function(t,e){return this.events.next(new nt(t,e)),t},e.prototype.handleResponse=function(t){return t},e.prototype.handleListResponse=function(t){return t},e.prototype.get=function(){return this.http.get(this.endpoint).pipe(i.map(this.handleListResponse.bind(this)))},e.prototype.getById=function(t){return this.http.get(this.endpoint+t+"/").pipe(i.map(this.handleResponse.bind(this)))},e.prototype.create=function(e){var n=this;return this.http.post(this.endpoint+"/",e).pipe(i.map((function(e){return n.triggerCoreEvent(e,t.CoreEventType.CREATE)})),i.map(this.handleResponse.bind(this)))},e.prototype.delete=function(e){var n=this;return this.http.delete(this.endpoint+e.id+"/").pipe(i.map((function(e){return n.triggerCoreEvent(e,t.CoreEventType.DELETE)})),i.map(this.handleResponse.bind(this)))},e.prototype.update=function(e){var n=this;return this.http.patch(this.endpoint+e.id+"/",e).pipe(i.map((function(e){return n.triggerCoreEvent(e,t.CoreEventType.UPDATE)})),i.map(this.handleResponse.bind(this)))},e.prototype.getListByUrl=function(t){return this.http.get(t).pipe(i.map(this.handleListResponse.bind(this)))},e}();ot.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new ot(n.ɵɵinject(r.HttpClient))},token:ot,providedIn:"root"}),ot.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],ot.ctorParameters=function(){return[{type:r.HttpClient}]};var at=function(e){function n(n){var a=e.call(this,n)||this;return a.http=n,a.endpoint="/blog_api/entries/",a.adminEndpoint="/blog_api/admin/entries/",a.currentlyEditedEntry=new o.Subject,a.sub=a.currentlyEditedEntry.pipe(i.debounceTime(3e3)).subscribe((function(e){e.edit_date=new Date;var n=(new r.HttpParams).set("published",JSON.stringify(!1)).set("defunct",JSON.stringify(!1));a.http.patch(a.adminEndpoint+e.id+"/",e,{params:n}).pipe(i.map(a.handleResponse.bind(a))).subscribe((function(n){a.triggerCoreEvent(n,t.CoreEventType.UPDATE),console.log("Synced "+e.id+"...")}),(function(n){console.log("Error encountered syncing "+e.id+", trying to create..."),a.http.post(a.adminEndpoint,e).pipe(i.map(a.handleResponse)).subscribe((function(n){a.triggerCoreEvent(n,t.CoreEventType.CREATE),console.log("Created "+e.id+"...")}),(function(t){console.log("Error creating "+e.id)}))}))})),a}return Z(n,e),n.prototype.handleResponse=function(t){return new Q(t)},n.prototype.handleListResponse=function(t){var e,n,r=t,i=[];try{for(var o=$(r.results),a=o.next();!a.done;a=o.next()){var s=a.value;i.push(new Q(s))}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}return r.results=i,r},n.prototype.get=function(){return this.http.get(this.endpoint).pipe(i.map(this.handleListResponse.bind(this)))},n.prototype.getUnpublishedEntries=function(){var t=(new r.HttpParams).set("published",JSON.stringify(!1)).set("defunct",JSON.stringify(!1));return this.http.get(this.adminEndpoint,{params:t})},n.prototype.getBySlug=function(t){return this.http.get(this.endpoint+t+"/by_slug/").pipe(i.map(this.handleResponse.bind(this)))},n.prototype.getUnpublishedById=function(t){var e=(new r.HttpParams).set("published",JSON.stringify(!1)).set("defunct",JSON.stringify(!1));return this.http.get(this.adminEndpoint+t,{params:e}).pipe(i.map(this.handleResponse.bind(this)))},n.prototype.updateUnpublishedEntry=function(e){var n=this,o=(new r.HttpParams).set("published",JSON.stringify(!1)).set("defunct",JSON.stringify(!1));return this.http.patch(this.adminEndpoint+e.id+"/",e,{params:o}).pipe(i.map((function(e){return n.triggerCoreEvent(e,t.CoreEventType.UPDATE)})),i.map(this.handleResponse.bind(this)))},n}(ot);at.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new at(n.ɵɵinject(r.HttpClient))},token:at,providedIn:"root"}),at.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],at.ctorParameters=function(){return[{type:r.HttpClient}]};var st=function(){function t(t){this.http=t}return t.prototype.getMe=function(){throw new Error("You must provide an implementation for this")},t}();st.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new st(n.ɵɵinject(r.HttpClient))},token:st,providedIn:"root"}),st.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],st.ctorParameters=function(){return[{type:r.HttpClient}]};var ct=function(){function t(t){this.platformId=t,Prism&&(Prism.manual=!0)}return t.prototype.highlightAll=function(){a.isPlatformBrowser(this.platformId)&&Prism.highlightAll()},t}();ct.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new ct(n.ɵɵinject(n.PLATFORM_ID))},token:ct,providedIn:"root"}),ct.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],ct.ctorParameters=function(){return[{type:Object,decorators:[{type:n.Inject,args:[n.PLATFORM_ID]}]}]};var lt=function(){function t(t){this.http=t}return t.prototype.get=function(e){return this.http.get(t.status_endpoint.replace("{pk}",e)+"/")},t}();lt.upload_endpoint="/file_api/uploads/create_image/",lt.status_endpoint="/file_api/uploads/{pk}/status",lt.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new lt(n.ɵɵinject(r.HttpClient))},token:lt,providedIn:"root"}),lt.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],lt.ctorParameters=function(){return[{type:r.HttpClient}]};var ut=function(){},pt=function(t){function e(e){var n=t.call(this,e)||this;return n.http=e,n.endpoint="/blog_api/views/",n}return Z(e,t),e}(ot);pt.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new pt(n.ɵɵinject(r.HttpClient))},token:pt,providedIn:"root"}),pt.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],pt.ctorParameters=function(){return[{type:r.HttpClient}]};var dt=function(t){function e(e){var n=t.call(this,e)||this;return n.http=e,n.endpoint="/blog_api/interactions/",n}return Z(e,t),e}(ot);dt.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new dt(n.ɵɵinject(r.HttpClient))},token:dt,providedIn:"root"}),dt.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],dt.ctorParameters=function(){return[{type:r.HttpClient}]};var ht=function(){},mt=function(){},gt=function(t){function e(e,n){var r=t.call(this,e)||this;return r.http=e,r.deviceDetectorService=n,r.endpoint="/blog_api/visitor_profiles/",r}return Z(e,t),e.prototype.getVisitorProfile=function(){var t=this.deviceDetectorService.getDeviceInfo(),e=new rt;return e.telemetry=t,e.name=t.os,e.family=t.browser,e.version=t.browser_version,e.device=t.device,e.os_version=t.os_version,e.language=navigator.language,e},e}(ot);gt.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new gt(n.ɵɵinject(r.HttpClient),n.ɵɵinject(v.DeviceDetectorService))},token:gt,providedIn:"root"}),gt.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],gt.ctorParameters=function(){return[{type:r.HttpClient},{type:v.DeviceDetectorService}]};var ft=function(){function t(t){this.domSanitizer=t}return t.prototype.mapStaticHtml=function(t,e){return e?t:this.domSanitizer.sanitize(n.SecurityContext.HTML,t)},t}();ft.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new ft(n.ɵɵinject(b.DomSanitizer))},token:ft,providedIn:"root"}),ft.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],ft.ctorParameters=function(){return[{type:b.DomSanitizer}]};var yt=function(t){this.id=t.id,this.label=t.label},vt=function(t){function e(e){var n=t.call(this,e)||this;return n.http=e,n.endpoint="/blog_api/tags/",n}return Z(e,t),e.prototype.handleResponse=function(t){return new yt(t)},e.prototype.handleListResponse=function(t){for(var e=t,n=[],r=0;r<e.results.length;r++)n.push(new yt(e.results[r]));return e.results=n,e},e}(ot);vt.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new vt(n.ɵɵinject(r.HttpClient))},token:vt,providedIn:"root"}),vt.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],vt.ctorParameters=function(){return[{type:r.HttpClient}]};var bt=function(){},wt=function(){function t(t,e,n){this.dialogRef=t,this.data=e,this.entryService=n}return t.prototype.ngOnInit=function(){var t=this;this.entryService.getUnpublishedEntries().subscribe((function(e){t.entries=e.results}))},t.prototype.onNoClick=function(){this.dialogRef.close()},t.prototype.onYesClick=function(){var e=this;this.entryService.getUnpublishedById(this.selectedId).subscribe((function(n){localStorage.setItem(t.CURRENT_ENTRY,JSON.stringify(n)),n.sort(),e.entryService.currentlyEditedEntry.next(n),e.dialogRef.close()}))},t}();wt.CURRENT_ENTRY="current_entry",wt.decorators=[{type:n.Component,args:[{selector:"app-entry-selector-dialog",template:'<h1 mat-dialog-title>Select an Entry to Edit</h1>\n\x3c!--<mat-radio-group aria-label="Select an option">--\x3e\n\x3c!-- <mat-radio-button class="option" value="unpublished">Unpublished</mat-radio-button>--\x3e\n\x3c!-- <mat-radio-button class="option" value="published">Published</mat-radio-button>--\x3e\n\x3c!--</mat-radio-group>--\x3e\n<mat-divider class="option-list-divider"></mat-divider>\n<div mat-dialog-content>\n <mat-radio-group [(ngModel)]="selectedId">\n <mat-radio-button *ngFor="let entry of entries" class="option" [value]="entry.id">{{entry.title}}</mat-radio-button>\n </mat-radio-group>\n <div *ngIf="!entries?.length">There are no unpublished entries</div>\n</div>\n<div mat-dialog-actions>\n <button mat-button (click)="onNoClick()">Cancel</button>\n <button mat-button (click)="onYesClick()" [mat-dialog-close]="this.selectedId" cdkFocusInitial>Edit Selected Entry</button>\n</div>\n',styles:[".entry-checkbox-container{display:inline-block;margin:5px 0;width:100%}.option-list-divider{margin:10px 0}.option{margin-right:5px}"]}]}],wt.ctorParameters=function(){return[{type:C.MatDialogRef},{type:bt,decorators:[{type:n.Inject,args:[C.MAT_DIALOG_DATA]}]},{type:at}]};var Ct=function(){function t(t,e){this.dialogRef=t,this.uploadService=e,this.allowedMimeTypes=["image/jpeg","image/gif","image/png","image/jpg","video/mp4","video/webm","video/ogg"],this.uploadUrlKey="path_to_file",this.uploading=!1}return t.getCookie=function(t){for(var e,n=document.cookie.split(";"),r=n.length,i=t+"=",o=0;o<r;o+=1)if(0===(e=n[o].replace(/^\s+/g,"")).indexOf(i))return e.substring(i.length,e.length);return""},t.prototype.pollForCompletion=function(){var t=this;this.uploadService.get(this.uploadId).subscribe((function(e){e.processed&&(t.imgLink=e[t.uploadUrlKey],t.mimeType=e.mime_type,clearInterval(t.poller),t.poller=null,t.uploading=!1)}))},t.prototype.ngOnInit=function(){var e=this;this.uploader=new S.FileUploader({url:lt.upload_endpoint,itemAlias:"file",authToken:"",headers:[{name:"X-CSRFToken",value:t.getCookie("csrftoken")}],additionalParameter:{csrf_token:t.getCookie("csrftoken")},removeAfterUpload:!0,allowedMimeType:this.allowedMimeTypes}),this.uploader.onCompleteItem=function(t,n){var r=JSON.parse(n);e.uploadId=r.id,e.poller=setInterval(e.pollForCompletion.bind(e),2e3)},this.uploader.onWhenAddingFileFailed=function(t,n,r){e.error="This file is not a supported mimetype.",e.uploading=!1},this.file&&(this.uploader.addToQueue([this.file]),this.uploader.uploadAll(),this.uploading=!0)},t.prototype.onFileSelected=function(t){this.uploader.uploadAll(),this.uploading=!0},t.prototype.buildHost=function(t){return location.protocol+"//"+location.hostname+(location.port?":"+location.port:"")+t},t.prototype.close=function(){this.dialogRef.close()},t.prototype.ngOnDestroy=function(){this.socketSub&&(this.socketSub.complete(),this.socketSub=null)},t.prototype.blobToFile=function(t,e){return t.lastModifiedDate=new Date,t.name=e,t},t.prototype.onPaste=function(t){if(t instanceof ClipboardEvent){var e=t.clipboardData.files;if(e)if(e.length<1);else if(e.length>1)console.log("Multiple files detected");else{for(var n=0;n<e.length;n++)this.uploader.addToQueue([e[n]]);this.uploader.uploadAll(),this.uploading=!0}else console.log("Stuff not working")}},t}();Ct.decorators=[{type:n.Component,args:[{selector:"app-media-upload-modal",template:'<h1 mat-dialog-title>Upload an Image</h1>\n\x3c!--<mat-radio-group aria-label="Select an option">--\x3e\n\x3c!-- <mat-radio-button class="option" value="unpublished">Unpublished</mat-radio-button>--\x3e\n\x3c!-- <mat-radio-button class="option" value="published">Published</mat-radio-button>--\x3e\n\x3c!--</mat-radio-group>--\x3e\n<mat-divider class="option-list-divider"></mat-divider>\n<div mat-dialog-content>\n <div *ngIf="uploading">\n <fa-icon [icon]="\'spinner\'" [spin]="true"></fa-icon>\n </div>\n <ng-container *ngIf="!imgLink && !uploading">\n <h4>Select a File</h4>\n <div class="input-group">\n <div class="form-group">\n \x3c!-- <label for="import_file">Choose File</label>--\x3e\n <input type="file" id="import_file"\n *ngIf="uploader.queue.length==0 && !uploading"\n ng2FileSelect\n [uploader]="uploader"\n (onFileSelected)="onFileSelected($event)"\n >\n </div>\n </div>\n <br>\n <h3>Paste a File</h3>\n <p>You can use the paste command to paste any image here</p>\n </ng-container>\n <div *ngIf="imgLink">\n <img *ngIf="imgLink" [src]="imgLink"/>\n </div>\n <div *ngIf="error">\n <div class="alert alert-danger">\n {{error}}\n </div>\n </div>\n</div>\n<div mat-dialog-actions>\n <button mat-button [disabled]="!imgLink || uploading" (click)="close()">Attach</button>\n</div>\n',styles:[""]}]}],Ct.ctorParameters=function(){return[{type:C.MatDialogRef},{type:lt}]},Ct.propDecorators={allowedMimeTypes:[{type:n.Input}],uploadUrlKey:[{type:n.Input}],file:[{type:n.Input}],onPaste:[{type:n.HostListener,args:["document:paste",["$event"]]}]};var St=require("slugify"),xt=function(){function n(e,r,i,o,a){this.entryService=e,this.tagService=r,this.identityService=i,this.cdr=o,this.dialog=a,this.ContentType=t.ContentType,this.Object=Object,this.entry=new Q,this.separatorKeysCodes=[w.ENTER,w.COMMA,w.TAB],this.removable=!0,this.all_tags=["Angular","Bash","MacOS","Typescript","NPM","Databases"],this.tagCtrl=new x.FormControl,this.publishDateControl=new x.FormControl,this.selectable=!1,this.scheduling=!1,this.customScheduleTime="",this.today=new Date,this.allowedMimeTypes=["image/jpeg","image/gif","image/png","image/jpg","video/mp4","video/webm","video/ogg"],this.uploadUrlKey="path_to_file",this.uploader=new S.FileUploader({url:"/file_api/uploads/create_image/",itemAlias:"file",authToken:"",headers:[{name:"X-CSRFToken",value:n.getCookie("csrftoken")}],additionalParameter:{csrf_token:n.getCookie("csrftoken")},removeAfterUpload:!0,allowedMimeType:this.allowedMimeTypes});var s=new Date;this.customScheduleTime=s.getHours()+":"+s.getMinutes()+" AM"}return n.getCookie=function(t){for(var e,n=document.cookie.split(";"),r=n.length,i=t+"=",o=0;o<r;o+=1)if(0===(e=n[o].replace(/^\s+/g,"")).indexOf(i))return e.substring(i.length,e.length);return""},n.prototype._filter=function(t){var e=t.toLowerCase();return this.all_tags.filter((function(t){return 0===t.toLowerCase().indexOf(e)}))},n.prototype.add=function(t){var e=t.input,n=t.value;(n||"").trim()&&this.tags.push(n.trim()),e&&(e.value=""),this.tagCtrl.setValue(null),this.onChange()},n.prototype.remove=function(t){var e=this.tags.indexOf(t);e>=0&&this.tags.splice(e,1),this.onChange()},n.prototype.selected=function(t){this.tags.push(t.option.viewValue),this.tagInput.nativeElement.value="",this.tagCtrl.setValue(null),this.onChange()},n.prototype.refreshTags=function(){var t=this;this.tagService.get().subscribe((function(n){t.all_tags=e.map(n.results,(function(t){return t.label})),t.filtered_tags=t.tagCtrl.valueChanges.pipe(i.startWith(null),i.map((function(e){return e?t._filter(e):t.all_tags.slice()})))}))},n.prototype.createNewEntry=function(){var t=this;this.entry=new Q,this.entry.title=n.DEFAULT_NEW_ENTRY_TITLE,this.entry.published=!1,this.entry.version=1,this.entryService.create(this.entry).subscribe((function(e){t.entry=e,t.entry.sort(),setTimeout((function(){t.entryService.currentlyEditedEntry.next(t.entry)}),10)}))},n.prototype.ngOnInit=function(){var t=this;this.refreshTags(),this.identityService.getMe().subscribe((function(e){t.me=e}));var e=localStorage.getItem(n.CURRENT_ENTRY);if(e){if(this.entry=new Q(JSON.parse(e)),this.entry.should_publish_in_future&&this.entry.future_publish_date<new Date&&this.createNewEntry(),this.entry.sort(),this.entry.should_publish_in_future){this.scheduling=!0;var r=this.entry.future_publish_date.getHours(),i=this.entry.future_publish_date.getMinutes(),o=r>=12?"PM":"AM";r>=12&&(r=(r%=12)||12),i=i<10?"0"+i:i,this.customScheduleTime=r+":"+i+" "+o}setTimeout((function(){t.entryService.currentlyEditedEntry.next(t.entry)}),10)}else this.createNewEntry();this.uploader.onCompleteItem=function(t,e){},this.uploader.onWhenAddingFileFailed=function(t,e,n){},this.tags=this.entry.tags},n.prototype.onFileSelected=function(t){this.uploader.uploadAll()},n.prototype.startUploader=function(t){var e=this,n=this.dialog.open(Ct,{});n.componentInstance.allowedMimeTypes=this.allowedMimeTypes,n.componentInstance.uploadUrlKey=this.uploadUrlKey,n.afterClosed().subscribe((function(){t.value=n.componentInstance.imgLink,t.additional=[],t.additional.push({key:G.KEY_MIMETYPE,value:n.componentInstance.mimeType}),e.onChange()}))},n.prototype.addSection=function(){this.entry.sections.push(new et),this.onChange()},n.prototype.removeSection=function(t){confirm("Are you sure you want to remove this section?")&&(this.entry.sections=e.filter(this.entry.sections,(function(e){return e.id!==t.id})),this.onChange())},n.prototype.addContent=function(t){t.contents.push(new G),this.onChange()},n.prototype.removeContent=function(t){var n,r;if(confirm("Are you sure you want to remove this content?")){try{for(var i=$(this.entry.sections),o=i.next();!o.done;o=i.next()){var a=o.value;a.contents=e.filter(a.contents,(function(e){return e.id!==t.id}))}}catch(t){n={error:t}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}this.onChange()}},n.prototype.onChange=function(){this.entry.slug=St(this.entry.title).toLowerCase(),localStorage.setItem(n.CURRENT_ENTRY,JSON.stringify(this.entry)),this.entry.sort(),this.cdr.detectChanges(),this.entryService.currentlyEditedEntry.next(this.entry),this.entryService._currentlyEditedEntry=this.entry},n.prototype.resetDate=function(){this.entry.create_date=new Date,this.entry.edit_date=new Date,this.onChange()},n.prototype.startNew=function(){confirm("Are you sure your finished? The JSON and entry displayed will be removed. Make sure you have already copied it.")&&(this.entry=new Q,this.entry.title=n.DEFAULT_NEW_ENTRY_TITLE,this.entry.published=!1,this.entry.version=1,this.entryService.currentlyEditedEntry.next(this.entry),localStorage.setItem(n.CURRENT_ENTRY,JSON.stringify(this.entry)),this.entryService.create(this.entry).subscribe((function(t){})))},n.prototype.seeEntries=function(){var t=this;this.dialog.open(wt,{width:"500px",data:{name:"test",animal:"test"}}).afterClosed().subscribe((function(e){e&&t.entryService.getUnpublishedById(e).subscribe((function(e){var r=e;t.entryService.currentlyEditedEntry.next(r),localStorage.setItem(n.CURRENT_ENTRY,JSON.stringify(r)),t.entry=r}))}))},n.prototype.postPublishCallback=function(){var t=this;this.entry=new Q,this.entry.title=n.DEFAULT_NEW_ENTRY_TITLE,this.entry.published=!1,this.entry.version=1,this.entryService.currentlyEditedEntry.next(this.entry),localStorage.setItem(n.CURRENT_ENTRY,JSON.stringify(this.entry)),this.entryService.create(this.entry).subscribe((function(e){t.tags=[],t.refreshTags()}))},n.prototype.cancelScheduling=function(){this.entry.future_publish_date=null,this.entry.should_publish_in_future=!1,this.scheduling=!1,this.onChange()},n.prototype.exposeScheduling=function(){var t=new Date;t.setDate(t.getDate()+1),this.entry.future_publish_date=t,this.setTime(this.customScheduleTime),this.entry.should_publish_in_future=!0,this.scheduling=!0,this.onChange()},n.prototype.publish=function(){confirm("Are you sure you want to publish? Once an article is published it is available to everyone.")&&(this.entry.published=!0,this.entry.publish_date=new Date,this.entry.edit_date=new Date,this.entryService.updateUnpublishedEntry(this.entry).subscribe(this.postPublishCallback.bind(this)))},n.prototype.delete=function(){var t=this;confirm("Are you sure you want to delete this draft? Once it is deleted it cannot be recovered.")&&this.entryService.delete(this.entry).subscribe((function(){t.entry=null}))},n.prototype.onDateChange=function(){this.entry.future_publish_date.setHours(this.hours),this.entry.future_publish_date.setMinutes(this.minutes),this.onChange()},n.prototype.setTime=function(t){var e=t.split(" "),n=e[0].split(":");this.hours=Number(n[0]),this.minutes=Number(n[1]),"PM"===e[1]&&(this.hours=Number(this.hours)+12),this.entry.future_publish_date.setHours(this.hours),this.entry.future_publish_date.setMinutes(this.minutes),this.onChange()},n}();xt.CURRENT_ENTRY="current_entry",xt.DEFAULT_NEW_ENTRY_TITLE="A New Entry",xt.decorators=[{type:n.Component,args:[{selector:"app-entry-creator",template:'<div class="section creator fields">\n <form #createForm="ngForm" (change)="onChange()" *ngIf="this.entry">\n <div class="form-group">\n <mat-form-field class="full-width">\n <mat-label>Title</mat-label>\n <input matInput\n [(ngModel)]="entry.title"\n name="title">\n </mat-form-field>\n </div>\n <mat-card class="form-section tags">\n <div>\n <mat-form-field class="full-width" hintLabel="Use a comma to seperate different tags">\n <mat-chip-list #tagList aria-label="Tags">\n <mat-chip\n *ngFor="let tag of tags"\n [selectable]="selectable"\n [removable]="removable"\n (removed)="remove(tag)">\n {{tag}}\n <mat-icon matChipRemove *ngIf="removable">cancel</mat-icon>\n </mat-chip>\n <input\n matInput\n placeholder="Tags..."\n #tagInput\n [formControl]="tagCtrl"\n [matAutocomplete]="tagauto"\n [matChipInputFor]="tagList"\n [matChipInputSeparatorKeyCodes]="separatorKeysCodes"\n (matChipInputTokenEnd)="add($event)">\n </mat-chip-list>\n <mat-autocomplete #tagauto="matAutocomplete" (optionSelected)="selected($event)">\n <mat-option *ngFor="let tag of filtered_tags | async" [value]="tag">\n {{tag}}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n </mat-card>\n <mat-card class="form-section" *ngFor="let section of entry.sections">\n <div>\n <mat-form-field class="full-width">\n <mat-label>Subheading</mat-label>\n <input matInput\n [(ngModel)]="section.subheading"\n name="{{section.id}}-subheading">\n </mat-form-field>\n <div class="form-content" *ngFor="let content of section.contents">\n <div class="form-group">\n <mat-radio-group\n aria-label="Select the Content Type"\n name="{{content.id}}-content-type"\n class="radio-group"\n [(ngModel)]="content.type">\n <mat-radio-button\n *ngFor="let value of Object.values(ContentType)"\n class="radio-button"\n [value]="value">{{value}}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n <ng-container [ngSwitch]="content.type">\n <ng-container *ngSwitchCase="ContentType.URL">\n <mat-form-field class="full-width">\n <mat-label>Value</mat-label>\n <input\n matInput\n name="{{content.id}}-content-value"\n [(ngModel)]="content.value">\n </mat-form-field>\n <mat-form-field class="full-width">\n <mat-label>Title</mat-label>\n <input\n matInput\n name="{{content.id}}-content-title"\n [(ngModel)]="content.title">\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.TEXT">\n <mat-form-field class="full-width">\n <mat-label>Value</mat-label>\n <textarea matInput\n cdkTextareaAutosize\n #autosize="cdkTextareaAutosize"\n cdkAutosizeMinRows="3"\n cdkAutosizeMaxRows="20"\n name="{{content.id}}-content-value"\n [(ngModel)]="content.value"\n ></textarea>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.HTML">\n <mat-form-field class="full-width">\n <mat-label>Value</mat-label>\n <textarea matInput\n cdkTextareaAutosize\n #autosize="cdkTextareaAutosize"\n cdkAutosizeMinRows="3"\n cdkAutosizeMaxRows="20"\n name="{{content.id}}-content-value"\n [(ngModel)]="content.value"\n ></textarea>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.CODE">\n <mat-form-field class="full-width">\n <mat-label>Value</mat-label>\n <textarea matInput\n cdkTextareaAutosize\n #autosize="cdkTextareaAutosize"\n cdkAutosizeMinRows="10"\n cdkAutosizeMaxRows="100"\n name="{{content.id}}-content-value"\n [(ngModel)]="content.value"\n ></textarea>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.IMAGE">\n <mat-form-field class="full-width">\n <mat-label>Value</mat-label>\n <input\n matInput\n name="{{content.id}}-content-value"\n [(ngModel)]="content.value">\n </mat-form-field>\n <mat-form-field class="full-width">\n <mat-label>Value</mat-label>\n <input\n matInput\n name="{{content.id}}-content-source"\n [(ngModel)]="content.value">\n </mat-form-field>\n <mat-form-field class="full-width">\n <mat-label>Description</mat-label>\n <input\n matInput\n name="{{content.id}}-content-description"\n [(ngModel)]="content.description">\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.MEDIA">\n <div class="full-width">\n <ng-container *ngIf="content.value">\n <mat-form-field class="full-width">\n <mat-label>Value</mat-label>\n <input\n matInput\n name="{{content.id}}-content-value"\n [(ngModel)]="content.value">\n </mat-form-field>\n <mat-form-field class="full-width">\n <mat-label>Description</mat-label>\n <input\n matInput\n name="{{content.id}}-content-description"\n [(ngModel)]="content.description">\n </mat-form-field>\n </ng-container>\n <ng-container *ngIf="content.additional">\n <ng-container *ngFor="let add of content.additional">\n <mat-form-field class="full-width">\n <mat-label>{{add.key}}</mat-label>\n <input\n matInput\n name="{{content.id}}-content-{{add.key}}"\n [(ngModel)]="add.value"\n [disabled]="true"\n >\n </mat-form-field>\n </ng-container>\n </ng-container>\n <ng-container *ngIf="!content.value">\n <button mat-raised-button (click)=startUploader(content)>Upload</button>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n <button mat-raised-button (click)=removeContent(content)>Remove Content</button>\n <button mat-raised-button (click)="addContent(section)">+ Add Content</button>\n </div>\n <button mat-raised-button (click)="removeSection(section)">Remove Section</button>\n <button mat-raised-button (click)="addContent(section)" *ngIf="section.contents.length === 0">+ Add\n Content\n </button>\n <button mat-raised-button (click)="addSection()">+ Add Section</button>\n </div>\n\n </mat-card>\n <button mat-raised-button (click)="addSection()" *ngIf="entry.sections?.length === 0">+ Add Section</button>\n <button mat-raised-button (click)="addSection()" *ngIf="!entry.sections">+ Add Section</button>\n\n <div class="controls">\n <button mat-raised-button (click)="resetDate()">Reset the Date</button>\n <button mat-raised-button (click)="delete()">Delete</button>\n <button mat-raised-button [disabled]="scheduling" (click)="publish()">Publish</button>\n <button mat-raised-button [disabled]="scheduling" (click)="exposeScheduling()">Schedule</button>\n <button mat-raised-button (click)="startNew()">New</button>\n </div>\n <p *ngIf="scheduling">Publishing is disabled while scheduling is being used.</p>\n\n <mat-card [hidden]="!scheduling">\n <h4>\n Scheduling Options\n </h4>\n\n <div class="form-group">\n <mat-form-field class="full-width">\n <mat-label>Date</mat-label>\n <input\n #futurePublishDate\n matInput\n [matDatepicker]="picker"\n [min]="today"\n (dateInput)="onDateChange()"\n (dateChange)="onDateChange()"\n [(ngModel)]="entry.future_publish_date"\n name="future-publish-date"\n >\n <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>\n <mat-datepicker\n #picker></mat-datepicker>\n </mat-form-field>\n\n <mat-label>Time</mat-label>\n <ngx-timepicker-field\n [defaultTime]="customScheduleTime"\n [format]="12"\n [buttonAlign]="\'left\'"\n (timeChanged)="setTime($event)"\n ></ngx-timepicker-field>\n <p>Times are represented in your local time zone</p>\n </div>\n\n <div mat-dialog-actions>\n <div class="controls">\n <button mat-raised-button (click)="cancelScheduling()">Cancel Scheduling</button>\n </div>\n </div>\n <p>This post will be published as soon as its scheduled date and time arrive. No further action is needed by you. If you do not\n want to use scheduling, you can cancel scheduling and manually publish.</p>\n </mat-card>\n </form>\n <div class="controls">\n <button mat-raised-button (click)="seeEntries()">See Entries</button>\n <button *ngIf="!this.entry" mat-raised-button (click)="startNew()">New</button>\n </div>\n</div>\n',styles:[".creator{min-height:calc(100vh - 100px)}form{padding:20px}.content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button{margin:4px}.radio-group{display:flex;flex-direction:column;margin:15px 0}.radio-button{margin:4px}.full-width{width:100%}.content-card{margin:0 0 10px}.form-section{margin-bottom:10px}.form-content:not(:last-child){border-bottom:1px dotted #aaa;padding-bottom:10px}.controls{display:inline-block;padding:10px;width:100%}[hidden]{display:none!important}"]}]}],xt.ctorParameters=function(){return[{type:at},{type:vt},{type:st},{type:n.ChangeDetectorRef},{type:C.MatDialog}]},xt.propDecorators={tagInput:[{type:n.ViewChild,args:["tagInput"]}],matAutocomplete:[{type:n.ViewChild,args:["tagauto"]}],allowedMimeTypes:[{type:n.Input}],uploadUrlKey:[{type:n.Input}]};var It=function(){function e(e,n,r,i,o,a){this.prismService=e,this.ngZone=n,this.identityService=r,this.commentService=i,this.router=o,this.entryService=a,this.ContentType=t.ContentType,this.comments=[],this.commentText="",this.alert=alert,this.editMode=!1}return e.prototype.ngOnInit=function(){var t=this;this.identityService.getMe().subscribe((function(e){t.me=e})),this.commentService.getComments(this.entry.id).subscribe((function(e){var n,r;t.comments=e.results;try{for(var i=$(t.comments),o=i.next();!o.done;o=i.next()){var a=o.value;a.date_obj=new Date(a.created_on)}}catch(t){n={error:t}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}}))},e.prototype.ngAfterViewChecked=function(){var t=this;this.editMode||this.ngZone.runOutsideAngular((function(){try{t.prismService.highlightAll()}catch(t){}}))},e.prototype.edit=function(t){var e=this;t.version++,t.published=!1,delete t.publish_date,this.entryService.create(t).subscribe((function(t){localStorage.setItem(xt.CURRENT_ENTRY,JSON.stringify(t)),e.router.navigateByUrl("create(left-col:create//right-col:create)").then((function(){}))}))},e.prototype.postComment=function(t){var e=this;t.preventDefault(),""!==this.commentText&&(this.commentService.postComment({entry:this.entry.id,content:this.commentText}).subscribe((function(t){e.comments.push(t)})),this.commentText="")},e.prototype.mediaIsZip=function(t){var e,n,r=!1;if(t.additional)try{for(var i=$(t.additional),o=i.next();!o.done;o=i.next()){var a=o.value;a.key===G.KEY_MIMETYPE&&"application/zip"===a.value&&(r=!0)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}return r},e.prototype.approve=function(t){t.approved=!t.approved,this.commentService.patchComment(Object.assign({},{approved:!0},t)).subscribe((function(t){}))},e.prototype.unapprove=function(t){t.approved=!t.approved,this.commentService.patchComment(Object.assign({},{approved:!1},t)).subscribe((function(t){}))},e}();It.decorators=[{type:n.Component,args:[{selector:"app-entry-renderer",template:'<div>\n <h2>{{entry?.title}}</h2>\n <a *ngIf="me?.id === entry?.getProp(\'author_id\')" href="javascript:void(0)" (click)="edit(entry)"><h4>[Edit]</h4></a>\n <h3>Posted {{entry?.create_date.toString() | timeAgo}} on {{entry?.create_date?.getMonth() + 1}}/{{entry?.create_date?.getDate()}}/{{entry?.create_date?.getFullYear()}}</h3>\n <h5 *ngIf="entry?.showEditInformation()">Article was last edited {{entry?.edit_date.toString() | timeAgo}}</h5>\n <br>\n <p *ngIf="entry?.tags?.length > 0">Tags: <span *ngFor="let tag of entry?.tags; let last = last">{{tag}}<ng-container *ngIf="!last"> |\n </ng-container></span><span *ngIf="entry?.views">, {{entry._friendly_views}} views</span></p>\n <br>\n\n <ng-container *ngFor="let section of entry?.sections">\n <h4>{{section?.subheading}}</h4>\n <ng-container *ngFor="let content of section?.contents">\n <ng-container [ngSwitch]="content.type">\n <ng-container *ngSwitchCase="ContentType.CODE">\n <pre><code class="language-ts">{{content?.value}}</code></pre>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.URL">\n <a [href]="content?.value" target="_blank">{{content.title}}</a><br>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.IMAGE">\n <div class="restrict">\n <div class="image">\n <img [src]="content?.value"/>\n </div>\n <div class="description" *ngIf="content?.description">{{content?.description}}</div>\n <div class="source" *ngIf="content?.source">\n <a [href]="content?.source" [target]="\'_blank\'">Source: {{content?.source}}</a>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase="ContentType.MEDIA">\n <ng-container *ngIf="mediaIsZip(content)">\n <div class="download">\n <a href="content?.value">{{content?.description}}</a>\n </div>\n </ng-container>\n <ng-container *ngIf="!mediaIsZip(content)">\n <div class="restrict">\n <div class="image">\n <img [src]="content?.value"/>\n </div>\n <div class="description" *ngIf="content?.description">{{content?.description}}</div>\n <div class="source" *ngIf="content?.source">\n <a [href]="content?.source" [target]="\'_blank\'">Source: {{content?.source}}</a>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.HTML">\n <app-static-html\n [value]="content?.value"\n >\n </app-static-html>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <p>{{content?.value}}</p>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-container>\n <h2>Comments</h2>\n <p *ngIf="comments?.length == 0">There are no comments yet.</p>\n <ng-container *ngIf="comments?.length > 0">\n <div *ngFor="let comment of comments">\n <mat-card style="margin-bottom: 20px;" class="restrict">\n <mat-card-title><img class="gravatar" src="{{comment.gravatar_url}} + ?s=30"> {{comment.user_display_name}}</mat-card-title>\n <mat-card-subtitle>{{comment.date_obj | timeAgo}}</mat-card-subtitle>\n <mat-card-content>\n <p>{{comment.content}}</p>\n <ng-container *ngIf="me?.id === entry?.__server_generated_properties?.author_id">\n <a href="javascript:void(0);" *ngIf="!comment?.approved" (click)="approve(comment)">Approve</a>\n <a href="javascript:void(0);" *ngIf="comment?.approved" (click)="unapprove(comment)">Unapprove</a>\n </ng-container>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf="!me">\n <a href="/signup">Signup</a> or <a href="/login">login</a> to join the conversation!\n </ng-container>\n <ng-container *ngIf="me && !me?.comments_public">\n <p>Note, your comments will not be public be default. It is possible I will make your comments public, but for now comments are just between you and me.</p>\n </ng-container>\n <ng-container *ngIf="me">\n <h2 style="width: 100%;">Leave a Comment</h2>\n <br>\n <mat-form-field class="restrict" style="width: 100%;" appearance="outline">\n <mat-label>Comment</mat-label>\n <textarea [(ngModel)]="commentText" (keydown.enter)="postComment($event)" matInput></textarea>\n </mat-form-field>\n <br>\n <button (click)="postComment($event)" style="text-align: right;" mat-button>Submit</button>\n </ng-container>\n <div style="margin-bottom: 30px;"></div>\n</div>\n\n',styles:[".image{justify-content:center;text-align:center;width:100%}.description,.source{font-size:12px;text-align:center}.gravatar{margin-right:20px}.smaller{text-color:grey;text-size:12px}"]}]}],It.ctorParameters=function(){return[{type:ct},{type:n.NgZone},{type:st},{type:it},{type:I.Router},{type:at}]},It.propDecorators={entry:[{type:n.Input}],editMode:[{type:n.Input}]};var _t=function(){function e(e){this.router=e,this.ContentType=t.ContentType}return e.prototype.ngOnInit=function(){},e.prototype.routeTo=function(t){this.router.navigate(["/","blog",t.slug]).then((function(){}))},e}();_t.decorators=[{type:n.Component,args:[{selector:"app-entry-summary",template:'\n<div class="entry section restrict">\n <h2>{{entry?.title}}</h2>\n \x3c!-- <a href="javascript:void(0)" (click)="edit(entry)"><h6>[Edit]</h6></a>--\x3e\n <h3>Posted {{entry?.create_date.toString() | timeAgo}} on {{entry?.create_date?.getMonth() + 1}}/{{entry?.create_date?.getDate()}}/{{entry?.create_date?.getFullYear()}}</h3>\n <h5 *ngIf="entry.showEditInformation()">Article was last edited {{entry?.edit_date.toString() | timeAgo}}</h5>\n <br>\n\n <ng-container *ngFor="let section of entry?.sections.slice(0, 1)">\n <h4>{{section?.subheading}}</h4>\n <ng-container *ngFor="let content of section?.contents.slice(0, 1)">\n <ng-container [ngSwitch]="content.type">\n <ng-container *ngSwitchCase="ContentType.CODE">\n <pre><code class="language-ts">{{content?.value}}</code></pre>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.URL">\n <a [href]="content?.value" target="_blank">{{content.title}}</a>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.IMAGE">\n <div class="restrict">\n <div class="image">\n <img [src]="content?.value"/>\n </div>\n <div class="description" *ngIf="content?.description">{{content?.description}}</div>\n <div class="source" *ngIf="content?.source">\n <a [href]="content?.source" [target]="\'_blank\'">Source: {{content?.source}}</a>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.MEDIA">\n <div class="restrict">\n <div class="image">\n <img [src]="content?.value"/>\n </div>\n <div class="description" *ngIf="content?.description">{{content?.description}}</div>\n <div class="source" *ngIf="content?.source">\n <a [href]="content?.source" [target]="\'_blank\'">Source: {{content?.source}}</a>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase="ContentType.HTML">\n <app-static-html\n [value]="content?.value"\n >\n </app-static-html>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <p>{{content?.value}}</p>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <a href="javascript:void(0);" (click)="routeTo(entry)">Read more...</a>\n</div>\n',styles:[".entry{border-bottom:1px solid rgba(0,0,0,.12);padding:20px}"]}]}],_t.ctorParameters=function(){return[{type:I.Router}]},_t.propDecorators={entry:[{type:n.Input}]};var kt=function(){function t(t){this.entryService=t,this.JSON=JSON,this.entry=new Q}return t.prototype.ngOnInit=function(){var t=this;this.entryService.currentlyEditedEntry.subscribe((function(e){t.entry=e}))},t}();kt.decorators=[{type:n.Component,args:[{selector:"app-json-renderer",template:'<div class="section json-render json">\n <app-entry-renderer [editMode]="true" [entry]="entry"></app-entry-renderer>\n <pre>{{JSON.stringify(entry)}}</pre>\n</div>\n',styles:[".json pre{white-space:pre-wrap;word-wrap:anywhere}.json-render{padding:0 20px}"]}]}],kt.ctorParameters=function(){return[{type:at}]},kt.propDecorators={entry:[{type:n.Input}]};var Tt=function(){function t(t,e){this.router=t,this.entryService=e,this.JSON=JSON}return t.prototype.ngOnInit=function(){var t=this;this.entryService.get().subscribe((function(n){t.entries=e.map(n.results.slice(0,3),(function(t){return{id:t.id,entry:new Q(t)}}))}))},t.prototype.ngOnDestroy=function(){this.sourceSub&&(this.sourceSub.unsubscribe(),this.sourceSub=null)},t}();Tt.decorators=[{type:n.Component,args:[{selector:"app-landing-page",template:'<div class="landing-page">\n <ng-container *ngFor="let entry of entries">\n <app-entry-summary [entry]="entry.entry"></app-entry-summary>\n </ng-container>\n</div>\n',styles:[".landing-page{max-height:calc(100vh - 100px);min-height:calc(100vh - 100px)}@media screen and (max-height:560px){.landing-page{max-height:100vh}}"]}]}],Tt.ctorParameters=function(){return[{type:I.Router},{type:at}]};var Et=function(){function t(t){this.entryService=t,this.entry=new Q,this.Math=Math}return t.prototype.ngOnInit=function(){var t=this;this.entryService.currentlyEditedEntry.subscribe((function(e){t.entry=e}))},t.prototype.sectionDrop=function(t){var e=this.entry,n=t.currentIndex-t.previousIndex;e.sections[t.previousIndex].order=10*t.currentIndex+(n>0?1:-1),e.sort(),this.entryService.currentlyEditedEntry.next(this.entry)},t.prototype.contentDrop=function(t,e){var n=this.entry,r=t.currentIndex-t.previousIndex;e.contents[t.previousIndex].order=10*t.currentIndex+(r>0?1:-1),n.sort(),this.entryService.currentlyEditedEntry.next(this.entry)},t}();Et.decorators=[{type:n.Component,args:[{selector:"app-outline-view",template:'<div class="section outline">\n <h1 *ngIf="entry?.sections?.length === 0">Outline View</h1>\n <div cdkDropList class="sections" (cdkDropListDropped)="sectionDrop($event)">\n <mat-card class="card" cdkDrag *ngFor="let section of entry.sections">\n <h3>Section {{Math.ceil(section.order / 10) + 1}}</h3>\n {{section.subheading}}\n <div cdkDropList class="contents" (cdkDropListDropped)="contentDrop($event, section)">\n <h3>Contents for {{section.subheading}}</h3>\n <div class="content-card" *ngFor="let content of section.contents" cdkDrag>\n <div class="content">{{content.value}}</div>\n <div class="content-placeholder" *cdkDragPlaceholder></div>\n </div>\n </div>\n </mat-card>\n <div class="custom-placeholder" *cdkDragPlaceholder></div>\n </div>\n</div>\n',styles:[".outline{padding:0 20px}.content{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card,.content-card{cursor:pointer;margin:4px}.content-card:not(:last-child){border-bottom:1px dotted #aaa}.custom-placeholder{min-height:60px}.content-placeholder,.custom-placeholder{background:#ccc;border:3px dotted #999;transition:transform .25s cubic-bezier(0,0,.2,1)}.content-placeholder{min-height:30px}"]}]}],Et.ctorParameters=function(){return[{type:at}]};var Mt=function(){function t(t,e,n){this.entryService=t,this.router=e,this.identityService=n,this.entries=[],this.entriesByMonthAndYear=[]}return t.prototype.ngOnInit=function(){var t=this;this.identityService.getMe().subscribe((function(e){t.identity=e}),(function(e){t.identity=null})),this.getEntries()},t.prototype.getEntriesWithUrl=function(t){var n=this;this.entryService.getListByUrl(t).subscribe((function(t){n.entries=n.entries.concat(e.map(t.results,(function(t){return{id:t.id,entry:new Q(t)}}))),t.next?n.getEntriesWithUrl(t.next):n.organizeEntries()}))},t.prototype.organizeEntries=function(){var t,n,r=function(t){var n=t.entry,r=new Date(n.create_date),o=r.getMonth(),a=r.getFullYear(),s=o+"/"+a,c=100*a+o,l=e.filter(i.entriesByMonthAndYear,(function(t){return t.month_year===s}));if(l.length>0){var u=l[0];0===e.filter(u.entries,(function(e){return e.id===t.entry.id})).length&&u.entries.push(n)}else{var p={month_year:s,month_year_number:c,entries:[n]};i.entriesByMonthAndYear.push(p)}},i=this;try{for(var o=$(this.entries),a=o.next();!a.done;a=o.next()){r(a.value)}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}this.entriesByMonthAndYear.sort((function(t,e){return t.month_year_number-e.month_year_number})),this.entriesByMonthAndYear.reverse()},t.prototype.getEntries=function(){var t=this;this.entryService.get().subscribe((function(n){t.entries=e.map(n.results,(function(t){return{id:t.id,entry:new Q(t)}})),n.next?t.getEntriesWithUrl(n.next):t.organizeEntries()}))},t.prototype.render=function(){},t.prototype.routeTo=function(t){t?this.router.navigate(["/","blog",t.slug]).then((function(){})):this.router.navigateByUrl("create(left-col:create//right-col:create)").then((function(){}))},t.prototype.getMonthAndYearFromKey=function(t){var e="",n=t.split("/");switch(Number(n[0])){case 0:e+="January ";break;case 1:e+="February ";break;case 2:e+="March ";break;case 3:e+="April ";break;case 4:e+="May ";break;case 5:e+="June ";break;case 6:e+="July ";break;case 7:e+="August ";break;case 8:e+="September ";break;case 9:e+="October ";break;case 10:e+="November ";break;case 11:e+="December ";break;default:e+="January "}return e+=n[1]},t.prototype.ngOnDestroy=function(){this.sourceSub&&(this.sourceSub.unsubscribe(),this.sourceSub=null)},t}();Mt.decorators=[{type:n.Component,args:[{selector:"app-side-navigation",template:'<div class="sidenav no-scrollbar">\n <mat-nav-list *ngFor="let container of entriesByMonthAndYear">\n <h3>{{getMonthAndYearFromKey(container.month_year)}}</h3>\n <a mat-list-item *ngFor="let entry of container.entries" href="javascript:void(0)" (click)="routeTo(entry)">{{entry.title}}</a>\n </mat-nav-list>\n\n <ng-container *ngIf="identity?.id === 1">\n <h2>Misc</h2>\n\n <mat-nav-list>\n <a mat-list-item href="javascript:void(0);" (click)="routeTo(null)">Create</a>\n </mat-nav-list>\n </ng-container>\n <h3 *ngIf="identity">Logged in as {{identity?.email}}</h3>\n</div>\n\n',styles:[".sidenav{max-height:calc(100vh - 100px)}@media screen and (max-height:560px){.sidenav{max-height:100vh}}h2,h3{justify-content:right;margin-left:10px}"]}]}],Mt.ctorParameters=function(){return[{type:at},{type:I.Router},{type:st}]};var Dt=function(){function t(t,e){this.staticHtmlService=t,this.domSanitizer=e}return t.prototype.refreshContent=function(){this.innerHtml=this.domSanitizer.bypassSecurityTrustHtml(this.staticHtmlService.mapStaticHtml(this.value,!1))},t.prototype.ngOnChanges=function(t){this.refreshContent()},t.prototype.ngOnInit=function(){this.refreshContent()},t}();Dt.decorators=[{type:n.Component,args:[{selector:"app-static-html",template:'<div [innerHtml]="innerHtml">\n</div>\n',styles:[""]}]}],Dt.ctorParameters=function(){return[{type:ft},{type:b.DomSanitizer}]},Dt.propDecorators={value:[{type:n.Input}]};var jt=function(){function t(t){this.router=t,this.loaded=!0,this.subs=new o.Subscription,this.resizeSubject=new o.Subject}return t.prototype.ngOnInit=function(){var t=this;this.subs.add(this.router.events.subscribe((function(e){e instanceof I.NavigationEnd&&(e.urlAfterRedirects.includes("create")?(t.showLeftCol=!0,t.showRightCol=!0):(t.showLeftCol=!0,t.showRightCol=!1,t.innerWidth=window.innerWidth,t.collapseLeftColIfTooNarrow()))}))),this.subs.add(this.resizeSubject.pipe(i.debounceTime(100)).subscribe((function(e){t.innerWidth=e,t.collapseLeftColIfTooNarrow()})))},t.prototype.collapseLeftColIfTooNarrow=function(){this.showLeftCol=this.innerWidth>=800},t.prototype.onResize=function(t){this.resizeSubject.next(window.innerWidth)},t.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},t}();jt.decorators=[{type:n.Component,args:[{selector:"lib-main",template:'<ng-container *ngIf="loaded">\n <div class="container">\n <div class="body">\n <div class="container-row">\n <mat-sidenav-container [autosize]="true">\n <mat-sidenav [(opened)]="showLeftCol" #leftcol opened mode="side" class="left no-scrollbar">\n <router-outlet name="left-col"></router-outlet>\n <button mat-mini-fab color="primary" class="fade left-toggle" *ngIf="showLeftCol" (click)="leftcol.toggle()"> << </button>\n </mat-sidenav>\n <mat-sidenav [(opened)]="showRightCol" #rightcol mode="side" position="end" class="right">\n <button mat-mini-fab color="primary" class="fade right-toggle" *ngIf="showRightCol" (click)="rightcol.toggle()"> >> </button>\n <router-outlet name="right-col"></router-outlet>\n </mat-sidenav>\n <div class="middle">\n <button mat-mini-fab color="primary" class="fade left-toggle" *ngIf="!showLeftCol" (click)="leftcol.toggle()"> >> </button>\n <button mat-mini-fab color="primary" class="fade right-toggle" *ngIf="!showRightCol" (click)="rightcol.toggle()"> << </button>\n <router-outlet></router-outlet>\n </div>\n </mat-sidenav-container>\n </div>\n </div>\n </div>\n</ng-container>\n',styles:['a{text-decoration:none}.body{flex-grow:1;max-height:calc(100vh - 100px);overflow:scroll}@media screen and (max-height:560px){.body{max-height:100vh}}.left,.right{max-width:33vw;min-width:400px}.left-toggle{left:5px}.left-toggle,.right-toggle{position:fixed;top:50%;z-index:100}.right-toggle{right:5px}a{margin-right:10px;&:not(:last-child):after{content:"|";margin-left:10px}}']}]}],jt.ctorParameters=function(){return[{type:I.Router}]},jt.propDecorators={onResize:[{type:n.HostListener,args:["window:resize",["$event"]]}]};var Rt=function(){function t(t,e,n,r,i){this.entryService=t,this.router=e,this.route=n,this.viewService=r,this.interactionService=i,this.seeAllEntries=!1}return t.prototype.seeAll=function(t){this.seeAllEntries=t},t.prototype.getEntry=function(){var t=this,e=this.route.snapshot.paramMap.get("slug");e&&this.entryService.getBySlug(e).subscribe((function(e){t.currentEntry=e;var n=new ht;n.entry=t.currentEntry.id,t.viewService.create(n).subscribe((function(t){}))})),this.route.queryParams.subscribe((function(n){var r=n.campaign;if(r&&""!==r){var i=new mt;i.content={campaign:r,slug:e},t.interactionService.create(i).subscribe((function(t){})),setTimeout((function(){var e=t.router.url.replace(new RegExp(".campaign="+r),"");t.router.navigateByUrl(e)}),0)}}))},t.prototype.ngOnInit=function(){var t=this;this.routerSub=this.router.events.subscribe((function(e){e instanceof I.NavigationEnd&&(t.currentEntry=null,t.seeAll(!1),setTimeout((function(){t.getEntry()}),10))})),this.getEntry()},t.prototype.ngOnDestroy=function(){this.routerSub&&(this.routerSub.complete(),this.routerSub=null)},t}();Rt.decorators=[{type:n.Component,args:[{selector:"lib-entry-renderer-wrapper",template:'<div class="rendered-entry section">\n <app-entry-renderer *ngIf="currentEntry" [entry]="currentEntry"></app-entry-renderer>\n</div>\n',styles:[".rendered-entry{padding:0 20px}"]}]}],Rt.ctorParameters=function(){return[{type:at},{type:I.Router},{type:I.ActivatedRoute},{type:pt},{type:dt}]};var At=function(){function t(){}return t.prototype.transform=function(t,e){return B.default.link(t,Object.assign({},e,{newWindow:!0,stripPrefix:!1}))},t}();At.decorators=[{type:n.Pipe,args:[{name:"linky"}]}];var Nt=function(){function t(t,e){this.changeDetectorRef=t,this.ngZone=e}return t.prototype.transform=function(t){var e=this;this.removeTimer();var n=new Date(t),r=new Date,i=Math.round(Math.abs((r.getTime()-n.getTime())/1e3)),o=Number.isNaN(i)?1e3:1e3*this.getSecondsUntilUpdate(i);this.timer=this.ngZone.runOutsideAngular((function(){return"undefined"!=typeof window?window.setTimeout((function(){e.ngZone.run((function(){return e.changeDetectorRef.markForCheck()}))}),o):null}));var a=Math.round(Math.abs(i/60)),s=Math.round(Math.abs(a/60)),c=Math.round(Math.abs(s/24)),l=Math.round(Math.abs(c/30.416)),u=Math.round(Math.abs(c/365));return Number.isNaN(i)?"":i<=45?"a few seconds ago":i<=90?"a minute ago":a<=45?a+" minutes ago":a<=90?"an hour ago":s<=22?s+" hours ago":s<=36?"a day ago":c<=25?c+" days ago":c<=45?"a month ago":c<=345?l+" months ago":c<=545?"a year ago":u+" years ago"},t.prototype.ngOnDestroy=function(){this.removeTimer()},t.prototype.removeTimer=function(){this.timer&&(window.clearTimeout(this.timer),this.timer=null)},t.prototype.getSecondsUntilUpdate=function(t){return t<60?2:t<3600?30:t<86400?300:3600},t}();Nt.decorators=[{type:n.Pipe,args:[{name:"timeAgo",pure:!1}]}],Nt.ctorParameters=function(){return[{type:n.ChangeDetectorRef},{type:n.NgZone}]};var Ot=[{path:"",component:Mt,outlet:"left-col"},{path:"landing",component:jt},{path:"blog/:slug",component:Rt},{path:"create",component:xt},{path:"create",component:Et,outlet:"left-col"},{path:"create",component:kt,outlet:"right-col"},{path:"",redirectTo:"/landing",pathMatch:"full"},{path:"**",redirectTo:"/404error"}],Pt=function(){this.routes=Ot},Lt=function(){},Ft=function(){function t(t,e){this.dialogRef=t,this.data=e}return t.prototype.ngOnInit=function(){},t.prototype.onNoClick=function(){},t.prototype.onYesClick=function(){this.dialogRef.close("test")},t}();Ft.decorators=[{type:n.Component,args:[{selector:"lib-schedule-publish-dialog",template:'<h1 mat-dialog-title>Select a Date and Time to Schedule This Post</h1>\n\x3c!--<mat-radio-group aria-label="Select an option">--\x3e\n\x3c!-- <mat-radio-button class="option" value="unpublished">Unpublished</mat-radio-button>--\x3e\n\x3c!-- <mat-radio-button class="option" value="published">Published</mat-radio-button>--\x3e\n\x3c!--</mat-radio-group>--\x3e\n<p>Date</p>\n<mat-form-field appearance="fill">\n <mat-label>Choose a date</mat-label>\n <input matInput [matDatepicker]="picker">\n <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n<p>Time</p>\n<input [ngxTimepicker]="timepicker" readonly>\n<ngx-material-timepicker #timepicker></ngx-material-timepicker>\n<div mat-dialog-actions>\n <button mat-button (click)="onNoClick()">Cancel</button>\n <button mat-button (click)="onYesClick()" cdkFocusInitial>Schedule Publish</button>\n</div>\n',styles:[""]}]}],Ft.ctorParameters=function(){return[{type:C.MatDialogRef},{type:Lt,decorators:[{type:n.Inject,args:[C.MAT_DIALOG_DATA]}]}]};var Ut=function(t){this.library=t,this.library.addIcons(H.faSpinner)};Ut.decorators=[{type:n.NgModule,args:[{declarations:[It,xt,Tt,Mt,Et,kt,_t,wt,Ct,Nt,At,Dt,jt,Rt,Ft],imports:[a.CommonModule,I.RouterModule,x.FormsModule,x.ReactiveFormsModule,k.DragDropModule,E.MatCardModule,M.MatSidenavModule,D.MatButtonModule,j.MatInputModule,R.MatListModule,A.MatRadioModule,C.MatDialogModule,N.MatCheckboxModule,T.MatDividerModule,O.MatAutocompleteModule,P.MatChipsModule,L.MatIconModule,U.MatDatepickerModule,F.MatNativeDateModule,q.FontAwesomeModule,S.FileUploadModule,z.NgxMaterialTimepickerModule],providers:[it,at,lt,ct,st,ot,vt],exports:[It,xt,Tt,Mt,Et,kt,_t,wt,Ct,Nt,At,Dt,jt,Rt]}]}],Ut.ctorParameters=function(){return[{type:q.FaIconLibrary}]},t.Base=W,t.CommentService=it,t.Content=G,t.CoreEvent=nt,t.CoreModule=Ut,t.DjangoRestFrameworkEndpointService=ot,t.Entry=Q,t.EntryCreatorComponent=xt,t.EntryRendererComponent=It,t.EntryRendererWrapperComponent=Rt,t.EntrySelectorDialogComponent=wt,t.EntryService=at,t.EntrySummaryComponent=_t,t.Guid=V,t.IdentityService=st,t.Interaction=mt,t.InteractionService=dt,t.JsonRendererComponent=kt,t.LandingPageComponent=Tt,t.LinkyPipe=At,t.ListResponse=tt,t.MainComponent=jt,t.MediaUploadModalComponent=Ct,t.OutlineViewComponent=Et,t.PrismService=ct,t.Routes=Pt,t.Section=et,t.SideNavigationComponent=Mt,t.StaticHtmlComponent=Dt,t.StaticHtmlService=ft,t.TagService=vt,t.TimeAgoPipe=Nt,t.Upload=ut,t.UploadService=lt,t.View=ht,t.ViewService=pt,t.VisitorProfile=rt,t.VisitorProfileService=gt,t.ɵa=bt,t.ɵb=Ft,t.ɵc=Lt,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
17
|
-
//# sourceMappingURL=thecodeblogs-blog.umd.min.js.map
|