@thecodeblogs/blog 0.15.5 → 0.19.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.
Files changed (70) hide show
  1. package/fesm2022/thecodeblogs-blog.mjs +2018 -0
  2. package/fesm2022/thecodeblogs-blog.mjs.map +1 -0
  3. package/lib/components/entry-creator/entry-creator.component.d.ts +1 -1
  4. package/lib/components/entry-renderer/entry-renderer.component.d.ts +1 -1
  5. package/lib/components/entry-renderer-wrapper/entry-renderer-wrapper.component.d.ts +1 -1
  6. package/lib/components/entry-selector-dialog/entry-selector-dialog.component.d.ts +1 -1
  7. package/lib/components/entry-summary/entry-summary.component.d.ts +1 -1
  8. package/lib/components/json-renderer/json-renderer.component.d.ts +1 -1
  9. package/lib/components/landing-page/landing-page.component.d.ts +1 -1
  10. package/lib/components/main/main.component.d.ts +1 -1
  11. package/lib/components/media-upload-modal/media-upload-modal.component.d.ts +4 -2
  12. package/lib/components/outline-view/outline-view.component.d.ts +1 -1
  13. package/lib/components/schedule-publish-dialog/schedule-publish-dialog.component.d.ts +1 -1
  14. package/lib/components/side-navigation/side-navigation.component.d.ts +1 -1
  15. package/lib/components/static-html/static-html.component.d.ts +1 -1
  16. package/lib/core.module.d.ts +38 -39
  17. package/lib/pipes/LinkyPipe.d.ts +1 -1
  18. package/lib/pipes/TimeAgoPipe.d.ts +1 -1
  19. package/package.json +22 -26
  20. package/esm2020/lib/components/entry-creator/entry-creator.component.mjs +0 -341
  21. package/esm2020/lib/components/entry-renderer/entry-renderer.component.mjs +0 -108
  22. package/esm2020/lib/components/entry-renderer-wrapper/entry-renderer-wrapper.component.mjs +0 -75
  23. package/esm2020/lib/components/entry-selector-dialog/entry-selector-dialog-data.mjs +0 -3
  24. package/esm2020/lib/components/entry-selector-dialog/entry-selector-dialog.component.mjs +0 -54
  25. package/esm2020/lib/components/entry-summary/entry-summary.component.mjs +0 -28
  26. package/esm2020/lib/components/json-renderer/json-renderer.component.mjs +0 -26
  27. package/esm2020/lib/components/landing-page/landing-page.component.mjs +0 -35
  28. package/esm2020/lib/components/main/main.component.mjs +0 -56
  29. package/esm2020/lib/components/media-upload-modal/media-upload-modal.component.mjs +0 -160
  30. package/esm2020/lib/components/outline-view/outline-view.component.mjs +0 -38
  31. package/esm2020/lib/components/schedule-publish-dialog/schedule-publish-dialog-data.mjs +0 -3
  32. package/esm2020/lib/components/schedule-publish-dialog/schedule-publish-dialog.component.mjs +0 -33
  33. package/esm2020/lib/components/side-navigation/side-navigation.component.mjs +0 -230
  34. package/esm2020/lib/components/static-html/static-html.component.mjs +0 -28
  35. package/esm2020/lib/core.module.mjs +0 -213
  36. package/esm2020/lib/data/base.mjs +0 -7
  37. package/esm2020/lib/data/content-type.mjs +0 -10
  38. package/esm2020/lib/data/content.mjs +0 -5
  39. package/esm2020/lib/data/core-event-type.enum.mjs +0 -7
  40. package/esm2020/lib/data/core-event.mjs +0 -7
  41. package/esm2020/lib/data/entry.mjs +0 -79
  42. package/esm2020/lib/data/guid.mjs +0 -12
  43. package/esm2020/lib/data/identity.mjs +0 -2
  44. package/esm2020/lib/data/list-response.mjs +0 -3
  45. package/esm2020/lib/data/section.mjs +0 -11
  46. package/esm2020/lib/data/tag.mjs +0 -7
  47. package/esm2020/lib/data/visitor-profile.mjs +0 -3
  48. package/esm2020/lib/pipes/LinkyPipe.mjs +0 -15
  49. package/esm2020/lib/pipes/TimeAgoPipe.mjs +0 -100
  50. package/esm2020/lib/routing/routes.mjs +0 -25
  51. package/esm2020/lib/services/analytics/interaction.service.mjs +0 -20
  52. package/esm2020/lib/services/analytics/view.service.mjs +0 -20
  53. package/esm2020/lib/services/comment.service.mjs +0 -28
  54. package/esm2020/lib/services/django-rest-framework-endpoint.service.mjs +0 -50
  55. package/esm2020/lib/services/entry.service.mjs +0 -106
  56. package/esm2020/lib/services/identity.service.mjs +0 -20
  57. package/esm2020/lib/services/interaction.mjs +0 -3
  58. package/esm2020/lib/services/prism.service.mjs +0 -39
  59. package/esm2020/lib/services/static-html.service.mjs +0 -22
  60. package/esm2020/lib/services/tag.service.mjs +0 -33
  61. package/esm2020/lib/services/upload.mjs +0 -3
  62. package/esm2020/lib/services/upload.service.mjs +0 -22
  63. package/esm2020/lib/services/view.mjs +0 -3
  64. package/esm2020/lib/services/visitor-profile.service.mjs +0 -35
  65. package/esm2020/public-api.mjs +0 -45
  66. package/esm2020/thecodeblogs-blog.mjs +0 -5
  67. package/fesm2015/thecodeblogs-blog.mjs +0 -1942
  68. package/fesm2015/thecodeblogs-blog.mjs.map +0 -1
  69. package/fesm2020/thecodeblogs-blog.mjs +0 -1936
  70. package/fesm2020/thecodeblogs-blog.mjs.map +0 -1
@@ -1,108 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { Content } from '../../data/content';
3
- import { ContentType } from '../../data/content-type';
4
- import { EntryCreatorComponent } from '../../components/entry-creator/entry-creator.component';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../services/prism.service";
7
- import * as i2 from "../../services/identity.service";
8
- import * as i3 from "../../services/comment.service";
9
- import * as i4 from "@angular/router";
10
- import * as i5 from "../../services/entry.service";
11
- import * as i6 from "@angular/common";
12
- import * as i7 from "@angular/forms";
13
- import * as i8 from "@angular/material/card";
14
- import * as i9 from "@angular/material/button";
15
- import * as i10 from "@angular/material/input";
16
- import * as i11 from "@angular/material/form-field";
17
- import * as i12 from "../static-html/static-html.component";
18
- import * as i13 from "../../pipes/TimeAgoPipe";
19
- export class EntryRendererComponent {
20
- constructor(prismService, ngZone, identityService, commentService, router, entryService) {
21
- this.prismService = prismService;
22
- this.ngZone = ngZone;
23
- this.identityService = identityService;
24
- this.commentService = commentService;
25
- this.router = router;
26
- this.entryService = entryService;
27
- this.ContentType = ContentType;
28
- this.comments = [];
29
- this.commentText = '';
30
- this.alert = alert;
31
- this.editMode = false;
32
- }
33
- ngOnInit() {
34
- this.identityService.getMe().subscribe((me) => {
35
- this.me = me;
36
- });
37
- this.commentService.getComments(this.entry.id).subscribe((response) => {
38
- this.comments = response.results;
39
- for (const comment of this.comments) {
40
- comment.date_obj = new Date(comment.created_on);
41
- }
42
- });
43
- }
44
- ngAfterViewChecked() {
45
- if (!this.editMode) {
46
- this.ngZone.runOutsideAngular(() => {
47
- try {
48
- this.prismService.highlightAll();
49
- }
50
- catch (e) {
51
- }
52
- });
53
- }
54
- }
55
- edit(entry) {
56
- entry.version++;
57
- entry.published = false;
58
- delete entry.publish_date;
59
- this.entryService.create(entry).subscribe((response) => {
60
- localStorage.setItem(EntryCreatorComponent.CURRENT_ENTRY, JSON.stringify(response));
61
- this.router.navigateByUrl('create(left-col:create//right-col:create)').then(() => {
62
- });
63
- });
64
- }
65
- postComment(e) {
66
- e.preventDefault();
67
- if (this.commentText !== '') {
68
- this.commentService.postComment({ entry: this.entry.id, content: this.commentText }).subscribe((comment) => {
69
- this.comments.push(comment);
70
- });
71
- this.commentText = '';
72
- }
73
- }
74
- mediaIsZip(content) {
75
- let mediaIsZip = false;
76
- if (content.additional) {
77
- for (const add of content.additional) {
78
- if (add.key === Content.KEY_MIMETYPE) {
79
- if (add.value === 'application/zip') {
80
- mediaIsZip = true;
81
- }
82
- }
83
- }
84
- }
85
- return mediaIsZip;
86
- }
87
- approve(comment) {
88
- comment.approved = !comment.approved;
89
- this.commentService.patchComment(Object.assign({}, { approved: true }, comment)).subscribe((rComment) => {
90
- });
91
- }
92
- unapprove(comment) {
93
- comment.approved = !comment.approved;
94
- this.commentService.patchComment(Object.assign({}, { approved: false }, comment)).subscribe((rComment) => {
95
- });
96
- }
97
- }
98
- EntryRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EntryRendererComponent, deps: [{ token: i1.PrismService }, { token: i0.NgZone }, { token: i2.IdentityService }, { token: i3.CommentService }, { token: i4.Router }, { token: i5.EntryService }], target: i0.ɵɵFactoryTarget.Component });
99
- EntryRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: EntryRendererComponent, selector: "app-entry-renderer", inputs: { entry: "entry", editMode: "editMode" }, ngImport: i0, template: "<div *ngIf=\"entry\">\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{width:100%;text-align:center;justify-content:center}.source,.description{text-align:center;font-size:12px}.gravatar{margin-right:20px}.smaller{text-size:12px;text-color:gray}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i8.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i8.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i9.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatLabel, selector: "mat-label" }, { kind: "component", type: i12.StaticHtmlComponent, selector: "app-static-html", inputs: ["value"] }, { kind: "pipe", type: i13.TimeAgoPipe, name: "timeAgo" }] });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EntryRendererComponent, decorators: [{
101
- type: Component,
102
- args: [{ selector: 'app-entry-renderer', template: "<div *ngIf=\"entry\">\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{width:100%;text-align:center;justify-content:center}.source,.description{text-align:center;font-size:12px}.gravatar{margin-right:20px}.smaller{text-size:12px;text-color:gray}\n"] }]
103
- }], ctorParameters: function () { return [{ type: i1.PrismService }, { type: i0.NgZone }, { type: i2.IdentityService }, { type: i3.CommentService }, { type: i4.Router }, { type: i5.EntryService }]; }, propDecorators: { entry: [{
104
- type: Input
105
- }], editMode: [{
106
- type: Input
107
- }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZW50cnktcmVuZGVyZXIvZW50cnktcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZW50cnktcmVuZGVyZXIvZW50cnktcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUs1RixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDM0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBU3BELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdEQUF3RCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFPN0YsTUFBTSxPQUFPLHNCQUFzQjtJQWEvQixZQUNZLFlBQTBCLEVBQzFCLE1BQWMsRUFDZCxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixNQUFjLEVBQ2QsWUFBMEI7UUFMMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBZHRDLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBQzFCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVqQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBRUwsYUFBUSxHQUFHLEtBQUssQ0FBQztJQVUxQixDQUFDO0lBR0QsUUFBUTtRQUNKLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2xFLElBQUksQ0FBQyxRQUFRLEdBQUksUUFBZ0IsQ0FBQyxPQUFPLENBQUM7WUFDMUMsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNuRDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUMvQixJQUFJO29CQUNBLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQ3BDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO2lCQUVYO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBWTtRQUNiLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFFMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbkQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLDJDQUEyQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUVqRixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELFdBQVcsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNyRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFnQjtRQUN2QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3BCLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTtnQkFDbEMsSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxZQUFZLEVBQUU7b0JBQ2xDLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxpQkFBaUIsRUFBRTt3QkFDakMsVUFBVSxHQUFHLElBQUksQ0FBQztxQkFDckI7aUJBQ0o7YUFDSjtTQUNKO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFZO1FBQ2hCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFFdEcsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsU0FBUyxDQUFDLE9BQVk7UUFDbEIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUV2RyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O21IQTVGUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiw0R0N0Qm5DLGlrTEFvR0E7MkZEOUVhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDSSxvQkFBb0I7bU9BT3JCLEtBQUs7c0JBQWIsS0FBSztnQkFRRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdDaGVja2VkLCBDb21wb25lbnQsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7b3JkZXJCeX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0VudHJ5fSBmcm9tICcuLi8uLi9kYXRhL2VudHJ5JztcbmltcG9ydCB7Q29udGVudH0gZnJvbSAnLi4vLi4vZGF0YS9jb250ZW50JztcbmltcG9ydCB7Q29udGVudFR5cGV9IGZyb20gJy4uLy4uL2RhdGEvY29udGVudC10eXBlJztcbmltcG9ydCB7SWRlbnRpdHl9IGZyb20gJy4uLy4uL2RhdGEvaWRlbnRpdHknO1xuXG5pbXBvcnQge0lkZW50aXR5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvaWRlbnRpdHkuc2VydmljZSc7XG5pbXBvcnQge0VudHJ5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50cnkuc2VydmljZSc7XG5pbXBvcnQge0NvbW1lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtQcmlzbVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ByaXNtLnNlcnZpY2UnO1xuXG5cbmltcG9ydCB7RW50cnlDcmVhdG9yQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2VudHJ5LWNyZWF0b3IvZW50cnktY3JlYXRvci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1lbnRyeS1yZW5kZXJlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VudHJ5LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbnRyeS1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVudHJ5UmVuZGVyZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuXG4gICAgbWU6IElkZW50aXR5O1xuICAgIEBJbnB1dCgpIGVudHJ5OiBFbnRyeTtcblxuICAgIENvbnRlbnRUeXBlID0gQ29udGVudFR5cGU7XG4gICAgY29tbWVudHMgPSBbXTtcbiAgICBjb21tZW50VGV4dCA9ICcnO1xuXG4gICAgYWxlcnQgPSBhbGVydDtcblxuICAgIEBJbnB1dCgpIGVkaXRNb2RlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBwcmlzbVNlcnZpY2U6IFByaXNtU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBpZGVudGl0eVNlcnZpY2U6IElkZW50aXR5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb21tZW50U2VydmljZTogQ29tbWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgZW50cnlTZXJ2aWNlOiBFbnRyeVNlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pZGVudGl0eVNlcnZpY2UuZ2V0TWUoKS5zdWJzY3JpYmUoKG1lKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1lID0gbWU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLmdldENvbW1lbnRzKHRoaXMuZW50cnkuaWQpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29tbWVudHMgPSAocmVzcG9uc2UgYXMgYW55KS5yZXN1bHRzO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjb21tZW50IG9mIHRoaXMuY29tbWVudHMpIHtcbiAgICAgICAgICAgICAgICBjb21tZW50LmRhdGVfb2JqID0gbmV3IERhdGUoY29tbWVudC5jcmVhdGVkX29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZWRpdE1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByaXNtU2VydmljZS5oaWdobGlnaHRBbGwoKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlZGl0KGVudHJ5OiBFbnRyeSkge1xuICAgICAgICBlbnRyeS52ZXJzaW9uKys7XG4gICAgICAgIGVudHJ5LnB1Ymxpc2hlZCA9IGZhbHNlO1xuICAgICAgICBkZWxldGUgZW50cnkucHVibGlzaF9kYXRlO1xuXG4gICAgICAgIHRoaXMuZW50cnlTZXJ2aWNlLmNyZWF0ZShlbnRyeSkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oRW50cnlDcmVhdG9yQ29tcG9uZW50LkNVUlJFTlRfRU5UUlksIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKSk7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCdjcmVhdGUobGVmdC1jb2w6Y3JlYXRlLy9yaWdodC1jb2w6Y3JlYXRlKScpLnRoZW4oKCkgPT4ge1xuXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHBvc3RDb21tZW50KGUpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAodGhpcy5jb21tZW50VGV4dCAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuY29tbWVudFNlcnZpY2UucG9zdENvbW1lbnQoe2VudHJ5OiB0aGlzLmVudHJ5LmlkLCBjb250ZW50OiB0aGlzLmNvbW1lbnRUZXh0fSkuc3Vic2NyaWJlKChjb21tZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tZW50cy5wdXNoKGNvbW1lbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNvbW1lbnRUZXh0ID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWVkaWFJc1ppcChjb250ZW50OiBDb250ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBtZWRpYUlzWmlwID0gZmFsc2U7XG4gICAgICAgIGlmIChjb250ZW50LmFkZGl0aW9uYWwpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYWRkIG9mIGNvbnRlbnQuYWRkaXRpb25hbCkge1xuICAgICAgICAgICAgICAgIGlmIChhZGQua2V5ID09PSBDb250ZW50LktFWV9NSU1FVFlQRSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWRkLnZhbHVlID09PSAnYXBwbGljYXRpb24vemlwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWFJc1ppcCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lZGlhSXNaaXA7XG4gICAgfVxuICAgIGFwcHJvdmUoY29tbWVudDogYW55KSB7XG4gICAgICAgIGNvbW1lbnQuYXBwcm92ZWQgPSAhY29tbWVudC5hcHByb3ZlZDtcbiAgICAgICAgdGhpcy5jb21tZW50U2VydmljZS5wYXRjaENvbW1lbnQoT2JqZWN0LmFzc2lnbih7fSwge2FwcHJvdmVkOiB0cnVlfSwgY29tbWVudCkpLnN1YnNjcmliZSgockNvbW1lbnQpID0+IHtcblxuICAgICAgICB9KTtcbiAgICB9XG4gICAgdW5hcHByb3ZlKGNvbW1lbnQ6IGFueSkge1xuICAgICAgICBjb21tZW50LmFwcHJvdmVkID0gIWNvbW1lbnQuYXBwcm92ZWQ7XG4gICAgICAgIHRoaXMuY29tbWVudFNlcnZpY2UucGF0Y2hDb21tZW50KE9iamVjdC5hc3NpZ24oe30sIHthcHByb3ZlZDogZmFsc2V9LCBjb21tZW50KSkuc3Vic2NyaWJlKChyQ29tbWVudCkgPT4ge1xuXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJlbnRyeVwiPlxuICAgIDxoMj57e2VudHJ5Py50aXRsZX19PC9oMj5cbiAgICA8YSAqbmdJZj1cIm1lPy5pZCA9PT0gZW50cnk/LmdldFByb3AoJ2F1dGhvcl9pZCcpXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJlZGl0KGVudHJ5KVwiPjxoND5bRWRpdF08L2g0PjwvYT5cbiAgICA8aDM+UG9zdGVkIHt7ZW50cnk/LmNyZWF0ZV9kYXRlLnRvU3RyaW5nKCkgfCB0aW1lQWdvfX0gb24ge3tlbnRyeT8uY3JlYXRlX2RhdGU/LmdldE1vbnRoKCkgKyAxfX0ve3tlbnRyeT8uY3JlYXRlX2RhdGU/LmdldERhdGUoKX19L3t7ZW50cnk/LmNyZWF0ZV9kYXRlPy5nZXRGdWxsWWVhcigpfX08L2gzPlxuICAgIDxoNSAqbmdJZj1cImVudHJ5Py5zaG93RWRpdEluZm9ybWF0aW9uKClcIj5BcnRpY2xlIHdhcyBsYXN0IGVkaXRlZCB7e2VudHJ5Py5lZGl0X2RhdGUudG9TdHJpbmcoKSB8IHRpbWVBZ299fTwvaDU+XG4gICAgPGJyPlxuICAgIDxwICpuZ0lmPVwiZW50cnk/LnRhZ3M/Lmxlbmd0aCA+IDBcIj5UYWdzOiA8c3BhbiAqbmdGb3I9XCJsZXQgdGFnIG9mIGVudHJ5Py50YWdzOyBsZXQgbGFzdCA9IGxhc3RcIj57e3RhZ319PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsYXN0XCI+IHxcbiAgICAgICAgPC9uZy1jb250YWluZXI+PC9zcGFuPjxzcGFuICpuZ0lmPVwiZW50cnk/LnZpZXdzXCI+LCB7e2VudHJ5Ll9mcmllbmRseV92aWV3c319IHZpZXdzPC9zcGFuPjwvcD5cbiAgICA8YnI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGVudHJ5Py5zZWN0aW9uc1wiPlxuICAgICAgICA8aDQ+e3tzZWN0aW9uPy5zdWJoZWFkaW5nfX08L2g0PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb250ZW50IG9mIHNlY3Rpb24/LmNvbnRlbnRzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb250ZW50LnR5cGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb250ZW50VHlwZS5DT0RFXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwcmU+PGNvZGUgY2xhc3M9XCJsYW5ndWFnZS10c1wiPnt7Y29udGVudD8udmFsdWV9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb250ZW50VHlwZS5VUkxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiY29udGVudD8udmFsdWVcIiB0YXJnZXQ9XCJfYmxhbmtcIj57e2NvbnRlbnQudGl0bGV9fTwvYT48YnI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiQ29udGVudFR5cGUuSU1BR0VcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlc3RyaWN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiY29udGVudD8udmFsdWVcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiICpuZ0lmPVwiY29udGVudD8uZGVzY3JpcHRpb25cIj57e2NvbnRlbnQ/LmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzb3VyY2VcIiAqbmdJZj1cImNvbnRlbnQ/LnNvdXJjZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImNvbnRlbnQ/LnNvdXJjZVwiIFt0YXJnZXRdPVwiJ19ibGFuaydcIj5Tb3VyY2U6IHt7Y29udGVudD8uc291cmNlfX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb250ZW50VHlwZS5NRURJQVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVkaWFJc1ppcChjb250ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvd25sb2FkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImNvbnRlbnQ/LnZhbHVlXCI+e3tjb250ZW50Py5kZXNjcmlwdGlvbn19PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1lZGlhSXNaaXAoY29udGVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN0cmljdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiY29udGVudD8udmFsdWVcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgKm5nSWY9XCJjb250ZW50Py5kZXNjcmlwdGlvblwiPnt7Y29udGVudD8uZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzb3VyY2VcIiAqbmdJZj1cImNvbnRlbnQ/LnNvdXJjZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJjb250ZW50Py5zb3VyY2VcIiBbdGFyZ2V0XT1cIidfYmxhbmsnXCI+U291cmNlOiB7e2NvbnRlbnQ/LnNvdXJjZX19PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbnRlbnRUeXBlLkhUTUxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1zdGF0aWMtaHRtbFxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbnRlbnQ/LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtc3RhdGljLWh0bWw+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICA8cD57e2NvbnRlbnQ/LnZhbHVlfX08L3A+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgPGgyPkNvbW1lbnRzPC9oMj5cbiAgICAgICAgPHAgKm5nSWY9XCJjb21tZW50cz8ubGVuZ3RoID09IDBcIj5UaGVyZSBhcmUgbm8gY29tbWVudHMgeWV0LjwvcD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbW1lbnRzPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb21tZW50IG9mIGNvbW1lbnRzXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMjBweDtcIiBjbGFzcz1cInJlc3RyaWN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT48aW1nIGNsYXNzPVwiZ3JhdmF0YXJcIiBzcmM9XCJ7e2NvbW1lbnQuZ3JhdmF0YXJfdXJsfX0gKyA/cz0zMFwiPiB7e2NvbW1lbnQudXNlcl9kaXNwbGF5X25hbWV9fTwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZT57e2NvbW1lbnQuZGF0ZV9vYmogfCB0aW1lQWdvfX08L21hdC1jYXJkLXN1YnRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7Y29tbWVudC5jb250ZW50fX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWU/LmlkID09PSBlbnRyeT8uX19zZXJ2ZXJfZ2VuZXJhdGVkX3Byb3BlcnRpZXM/LmF1dGhvcl9pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgKm5nSWY9XCIhY29tbWVudD8uYXBwcm92ZWRcIiAoY2xpY2spPVwiYXBwcm92ZShjb21tZW50KVwiPkFwcHJvdmU8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiAqbmdJZj1cImNvbW1lbnQ/LmFwcHJvdmVkXCIgKGNsaWNrKT1cInVuYXBwcm92ZShjb21tZW50KVwiPlVuYXBwcm92ZTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1lXCI+XG4gICAgICAgIDxhIGhyZWY9XCIvc2lnbnVwXCI+U2lnbnVwPC9hPiBvciA8YSBocmVmPVwiL2xvZ2luXCI+bG9naW48L2E+IHRvIGpvaW4gdGhlIGNvbnZlcnNhdGlvbiFcbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWUgJiYgIW1lPy5jb21tZW50c19wdWJsaWNcIj5cbiAgICAgICAgPHA+Tm90ZSwgeW91ciBjb21tZW50cyB3aWxsIG5vdCBiZSBwdWJsaWMgYmUgZGVmYXVsdC4gSXQgaXMgcG9zc2libGUgSSB3aWxsIG1ha2UgeW91ciBjb21tZW50cyBwdWJsaWMsIGJ1dCBmb3Igbm93IGNvbW1lbnRzIGFyZSBqdXN0IGJldHdlZW4geW91IGFuZCBtZS48L3A+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1lXCI+XG4gICAgICAgIDxoMiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPkxlYXZlIGEgQ29tbWVudDwvaDI+XG4gICAgICAgIDxicj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicmVzdHJpY3RcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPkNvbW1lbnQ8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDx0ZXh0YXJlYSBbKG5nTW9kZWwpXT1cImNvbW1lbnRUZXh0XCIgKGtleWRvd24uZW50ZXIpPVwicG9zdENvbW1lbnQoJGV2ZW50KVwiIG1hdElucHV0PjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxicj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicG9zdENvbW1lbnQoJGV2ZW50KVwiIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHQ7XCIgbWF0LWJ1dHRvbj5TdWJtaXQ8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMzBweDtcIj48L2Rpdj5cbjwvZGl2PlxuXG4iXX0=
@@ -1,75 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { NavigationEnd } from '@angular/router';
3
- import { Interaction } from '../../services/interaction';
4
- import { View } from '../../services/view';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../services/entry.service";
7
- import * as i2 from "@angular/router";
8
- import * as i3 from "../../services/analytics/view.service";
9
- import * as i4 from "../../services/analytics/interaction.service";
10
- import * as i5 from "@angular/common";
11
- import * as i6 from "../entry-renderer/entry-renderer.component";
12
- export class EntryRendererWrapperComponent {
13
- seeAll(toggle) {
14
- this.seeAllEntries = toggle;
15
- }
16
- constructor(entryService, router, route, viewService, interactionService) {
17
- this.entryService = entryService;
18
- this.router = router;
19
- this.route = route;
20
- this.viewService = viewService;
21
- this.interactionService = interactionService;
22
- this.seeAllEntries = false;
23
- }
24
- getEntry() {
25
- const slug = this.route.snapshot.paramMap.get('slug');
26
- if (slug) {
27
- this.entryService.getBySlug(slug).subscribe((response) => {
28
- this.currentEntry = response;
29
- const view = new View();
30
- view.entry = this.currentEntry.id;
31
- this.viewService.create(view).subscribe((viewResponse) => {
32
- // Noop
33
- });
34
- });
35
- }
36
- this.route.queryParams.subscribe(params => {
37
- const campaign = params['campaign'];
38
- if (campaign && campaign !== '') {
39
- const interaction = new Interaction();
40
- interaction.content = { 'campaign': campaign, slug };
41
- this.interactionService.create(interaction).subscribe((response) => {
42
- });
43
- setTimeout(() => {
44
- const urlMinsCampaign = this.router.url.replace(new RegExp('.campaign=' + campaign), '');
45
- this.router.navigateByUrl(urlMinsCampaign);
46
- }, 0);
47
- }
48
- });
49
- }
50
- ngOnInit() {
51
- this.routerSub = this.router.events.subscribe((e) => {
52
- if (e instanceof NavigationEnd) {
53
- this.currentEntry = null;
54
- this.seeAll(false);
55
- setTimeout(() => {
56
- this.getEntry();
57
- }, 10);
58
- }
59
- });
60
- this.getEntry();
61
- }
62
- ngOnDestroy() {
63
- if (this.routerSub) {
64
- this.routerSub.complete();
65
- this.routerSub = null;
66
- }
67
- }
68
- }
69
- EntryRendererWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EntryRendererWrapperComponent, deps: [{ token: i1.EntryService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.ViewService }, { token: i4.InteractionService }], target: i0.ɵɵFactoryTarget.Component });
70
- EntryRendererWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: EntryRendererWrapperComponent, selector: "lib-entry-renderer-wrapper", ngImport: i0, 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}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.EntryRendererComponent, selector: "app-entry-renderer", inputs: ["entry", "editMode"] }] });
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EntryRendererWrapperComponent, decorators: [{
72
- type: Component,
73
- 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}\n"] }]
74
- }], ctorParameters: function () { return [{ type: i1.EntryService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.ViewService }, { type: i4.InteractionService }]; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktcmVuZGVyZXItd3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9uZW50cy9lbnRyeS1yZW5kZXJlci13cmFwcGVyL2VudHJ5LXJlbmRlcmVyLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZW50cnktcmVuZGVyZXItd3JhcHBlci9lbnRyeS1yZW5kZXJlci13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBaUIsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFJdEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7QUFPekMsTUFBTSxPQUFPLDZCQUE2QjtJQU10QyxNQUFNLENBQUMsTUFBZTtRQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFDWSxZQUEwQixFQUMxQixNQUFjLEVBQ2QsS0FBcUIsRUFDckIsV0FBd0IsRUFDeEIsa0JBQXNDO1FBSnRDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBWmxELGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBY3RCLENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztnQkFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFFbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7b0JBQ3JELE9BQU87Z0JBQ1gsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwQyxJQUFJLFFBQVEsSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFO2dCQUU3QixNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUN0QyxXQUFXLENBQUMsT0FBTyxHQUFHLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFFbkUsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN6RixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDL0MsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ1Q7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsWUFBWSxhQUFhLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQixVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNaLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDcEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ1Y7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQzs7MEhBckVRLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLGtFQ2IxQyxpSkFHQTsyRkRVYSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtJbnRlcmFjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FuYWx5dGljcy9pbnRlcmFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7Vmlld1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FuYWx5dGljcy92aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtFbnRyeVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VudHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHtJbnRlcmFjdGlvbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW50ZXJhY3Rpb24nO1xuaW1wb3J0IHtWaWV3fSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWVudHJ5LXJlbmRlcmVyLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50cnktcmVuZGVyZXItd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VudHJ5LXJlbmRlcmVyLXdyYXBwZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVudHJ5UmVuZGVyZXJXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGVudHJpZXM7XG4gICAgY3VycmVudEVudHJ5O1xuICAgIHNlZUFsbEVudHJpZXMgPSBmYWxzZTtcbiAgICByb3V0ZXJTdWI7XG5cbiAgICBzZWVBbGwodG9nZ2xlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2VlQWxsRW50cmllcyA9IHRvZ2dsZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbnRyeVNlcnZpY2U6IEVudHJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgdmlld1NlcnZpY2U6IFZpZXdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGludGVyYWN0aW9uU2VydmljZTogSW50ZXJhY3Rpb25TZXJ2aWNlXG4gICAgKSB7XG4gICAgfVxuXG4gICAgZ2V0RW50cnkoKSB7XG4gICAgICAgIGNvbnN0IHNsdWcgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnc2x1ZycpO1xuICAgICAgICBpZiAoc2x1Zykge1xuICAgICAgICAgICAgdGhpcy5lbnRyeVNlcnZpY2UuZ2V0QnlTbHVnKHNsdWcpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRFbnRyeSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSBuZXcgVmlldygpO1xuICAgICAgICAgICAgICAgIHZpZXcuZW50cnkgPSB0aGlzLmN1cnJlbnRFbnRyeS5pZDtcblxuICAgICAgICAgICAgICAgIHRoaXMudmlld1NlcnZpY2UuY3JlYXRlKHZpZXcpLnN1YnNjcmliZSgodmlld1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5vb3BcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNhbXBhaWduID0gcGFyYW1zWydjYW1wYWlnbiddO1xuICAgICAgICAgICAgaWYgKGNhbXBhaWduICYmIGNhbXBhaWduICE9PSAnJykge1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBuZXcgSW50ZXJhY3Rpb24oKTtcbiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5jb250ZW50ID0geydjYW1wYWlnbic6IGNhbXBhaWduLCBzbHVnfTtcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZS5jcmVhdGUoaW50ZXJhY3Rpb24pLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcblxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmxNaW5zQ2FtcGFpZ24gPSB0aGlzLnJvdXRlci51cmwucmVwbGFjZShuZXcgUmVnRXhwKCcuY2FtcGFpZ249JyArIGNhbXBhaWduKSwgJycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybE1pbnNDYW1wYWlnbik7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnJvdXRlclN1YiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEVudHJ5ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLnNlZUFsbChmYWxzZSk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RW50cnkoKTtcbiAgICAgICAgICAgICAgICB9LCAxMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZ2V0RW50cnkoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucm91dGVyU3ViKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlclN1Yi5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicmVuZGVyZWQtZW50cnkgc2VjdGlvblwiPlxuICAgIDxhcHAtZW50cnktcmVuZGVyZXIgKm5nSWY9XCJjdXJyZW50RW50cnlcIiBbZW50cnldPVwiY3VycmVudEVudHJ5XCI+PC9hcHAtZW50cnktcmVuZGVyZXI+XG48L2Rpdj5cbiJdfQ==
@@ -1,3 +0,0 @@
1
- export class EntrySelectorDialogData {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktc2VsZWN0b3ItZGlhbG9nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9uZW50cy9lbnRyeS1zZWxlY3Rvci1kaWFsb2cvZW50cnktc2VsZWN0b3ItZGlhbG9nLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHVCQUF1QjtDQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFbnRyeVNlbGVjdG9yRGlhbG9nRGF0YSB7XG59XG4iXX0=
@@ -1,54 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/dialog";
5
- import * as i2 from "../../services/entry.service";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/material/button";
8
- import * as i5 from "@angular/material/divider";
9
- import * as i6 from "@angular/material/table";
10
- import * as i7 from "../../components/entry-selector-dialog/entry-selector-dialog-data";
11
- export class EntrySelectorDialogComponent {
12
- constructor(dialogRef, data, entryService) {
13
- this.dialogRef = dialogRef;
14
- this.data = data;
15
- this.entryService = entryService;
16
- this.columnsToDisplay = ['title', 'create_date', 'actions'];
17
- }
18
- ngOnInit() {
19
- this.entryService.getUnpublishedEntries().subscribe((next) => {
20
- this.entries = next.results;
21
- });
22
- }
23
- onNoClick() {
24
- this.dialogRef.close();
25
- }
26
- select(entry) {
27
- this.entryService.getUnpublishedById(entry.id).subscribe((entry_new) => {
28
- localStorage.setItem(EntrySelectorDialogComponent.CURRENT_ENTRY, JSON.stringify(entry_new));
29
- entry_new.sort();
30
- this.entryService.currentlyEditedEntry.next(entry_new);
31
- this.dialogRef.close(entry_new.id);
32
- });
33
- }
34
- delete(entry) {
35
- this.entryService.delete(entry).subscribe((response) => {
36
- this.entryService.getUnpublishedEntries().subscribe((next) => {
37
- this.entries = next.results;
38
- });
39
- }, (error) => {
40
- alert('NOT DELETED: ' + error);
41
- });
42
- }
43
- }
44
- EntrySelectorDialogComponent.CURRENT_ENTRY = 'current_entry';
45
- EntrySelectorDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EntrySelectorDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.EntryService }], target: i0.ɵɵFactoryTarget.Component });
46
- EntrySelectorDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: EntrySelectorDialogComponent, selector: "app-entry-selector-dialog", ngImport: i0, template: "<h1 mat-dialog-title>Select an Entry to Edit</h1>\n<!--<mat-radio-group aria-label=\"Select an option\">-->\n<!-- <mat-radio-button class=\"option\" value=\"unpublished\">Unpublished</mat-radio-button>-->\n<!-- <mat-radio-button class=\"option\" value=\"published\">Published</mat-radio-button>-->\n<!--</mat-radio-group>-->\n<mat-divider class=\"option-list-divider\"></mat-divider>\n<div mat-dialog-content>\n\n <table mat-table [dataSource]=entries>\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> Id </th>\n <td mat-cell *matCellDef=\"let entry\"> {{entry.id}} </td>\n </ng-container>\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let entry\"> {{entry.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"create_date\">\n <th mat-header-cell *matHeaderCellDef> Created </th>\n <td mat-cell *matCellDef=\"let entry\"> {{entry.create_date}} </td>\n </ng-container>\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let entry\">\n <button mat-button color=\"primary\" (click)=\"select(entry)\">Edit</button> | <button mat-button color=\"warn\" (click)=\"delete(entry)\">Delete</button>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let myRowData; columns: columnsToDisplay\"></tr>\n </table>\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</div>\n", styles: [".entry-checkbox-container{display:inline-block;width:100%;margin:5px 0}.option-list-divider{margin:10px 0}.option{margin-right:5px}.mat-column-actions{min-width:175px}.mat-column-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:365px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }] });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EntrySelectorDialogComponent, decorators: [{
48
- type: Component,
49
- args: [{ selector: 'app-entry-selector-dialog', template: "<h1 mat-dialog-title>Select an Entry to Edit</h1>\n<!--<mat-radio-group aria-label=\"Select an option\">-->\n<!-- <mat-radio-button class=\"option\" value=\"unpublished\">Unpublished</mat-radio-button>-->\n<!-- <mat-radio-button class=\"option\" value=\"published\">Published</mat-radio-button>-->\n<!--</mat-radio-group>-->\n<mat-divider class=\"option-list-divider\"></mat-divider>\n<div mat-dialog-content>\n\n <table mat-table [dataSource]=entries>\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> Id </th>\n <td mat-cell *matCellDef=\"let entry\"> {{entry.id}} </td>\n </ng-container>\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let entry\"> {{entry.title}} </td>\n </ng-container>\n <ng-container matColumnDef=\"create_date\">\n <th mat-header-cell *matHeaderCellDef> Created </th>\n <td mat-cell *matCellDef=\"let entry\"> {{entry.create_date}} </td>\n </ng-container>\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let entry\">\n <button mat-button color=\"primary\" (click)=\"select(entry)\">Edit</button> | <button mat-button color=\"warn\" (click)=\"delete(entry)\">Delete</button>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let myRowData; columns: columnsToDisplay\"></tr>\n </table>\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</div>\n", styles: [".entry-checkbox-container{display:inline-block;width:100%;margin:5px 0}.option-list-divider{margin:10px 0}.option{margin-right:5px}.mat-column-actions{min-width:175px}.mat-column-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:365px}\n"] }]
50
- }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i7.EntrySelectorDialogData, decorators: [{
51
- type: Inject,
52
- args: [MAT_DIALOG_DATA]
53
- }] }, { type: i2.EntryService }]; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktc2VsZWN0b3ItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb21wb25lbnRzL2VudHJ5LXNlbGVjdG9yLWRpYWxvZy9lbnRyeS1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZW50cnktc2VsZWN0b3ItZGlhbG9nL2VudHJ5LXNlbGVjdG9yLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZUFBZSxFQUFlLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7OztBQVN2RSxNQUFNLE9BQU8sNEJBQTRCO0lBUXZDLFlBQ1MsU0FBcUQsRUFDNUIsSUFBNkIsRUFDckQsWUFBMEI7UUFGM0IsY0FBUyxHQUFULFNBQVMsQ0FBNEM7UUFDNUIsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFDckQsaUJBQVksR0FBWixZQUFZLENBQWM7UUFUcEMscUJBQWdCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBV3ZELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzNELElBQUksQ0FBQyxPQUFPLEdBQUksSUFBWSxDQUFDLE9BQU8sQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNyRSxZQUFZLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDNUYsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDM0QsSUFBSSxDQUFDLE9BQU8sR0FBSSxJQUFZLENBQUMsT0FBTyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDWCxLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF0Q00sMENBQWEsR0FBRyxlQUFlLENBQUM7eUhBSjVCLDRCQUE0Qiw4Q0FVN0IsZUFBZTs2R0FWZCw0QkFBNEIsaUVDVnpDLGdzREFtQ0E7MkZEekJhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSwyQkFBMkI7OzBCQWNsQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7RW50cnlTZWxlY3RvckRpYWxvZ0RhdGF9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZW50cnktc2VsZWN0b3ItZGlhbG9nL2VudHJ5LXNlbGVjdG9yLWRpYWxvZy1kYXRhJztcbmltcG9ydCB7RW50cnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbnRyeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWVudHJ5LXNlbGVjdG9yLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRyeS1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRyeS1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFbnRyeVNlbGVjdG9yRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb2x1bW5zVG9EaXNwbGF5ID0gWyd0aXRsZScsICdjcmVhdGVfZGF0ZScsICdhY3Rpb25zJ107XG5cbiAgc3RhdGljIENVUlJFTlRfRU5UUlkgPSAnY3VycmVudF9lbnRyeSc7XG5cbiAgZW50cmllcztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RW50cnlTZWxlY3RvckRpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBFbnRyeVNlbGVjdG9yRGlhbG9nRGF0YSxcbiAgICBwcml2YXRlIGVudHJ5U2VydmljZTogRW50cnlTZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZW50cnlTZXJ2aWNlLmdldFVucHVibGlzaGVkRW50cmllcygpLnN1YnNjcmliZSgobmV4dCkgPT4ge1xuICAgICAgdGhpcy5lbnRyaWVzID0gKG5leHQgYXMgYW55KS5yZXN1bHRzO1xuICAgIH0pO1xuICB9XG5cbiAgb25Ob0NsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cblxuICBzZWxlY3QoZW50cnkpOiB2b2lkIHtcbiAgICB0aGlzLmVudHJ5U2VydmljZS5nZXRVbnB1Ymxpc2hlZEJ5SWQoZW50cnkuaWQpLnN1YnNjcmliZSgoZW50cnlfbmV3KSA9PiB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShFbnRyeVNlbGVjdG9yRGlhbG9nQ29tcG9uZW50LkNVUlJFTlRfRU5UUlksIEpTT04uc3RyaW5naWZ5KGVudHJ5X25ldykpO1xuICAgICAgZW50cnlfbmV3LnNvcnQoKTtcbiAgICAgIHRoaXMuZW50cnlTZXJ2aWNlLmN1cnJlbnRseUVkaXRlZEVudHJ5Lm5leHQoZW50cnlfbmV3KTtcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGVudHJ5X25ldy5pZCk7XG4gICAgfSk7XG4gIH1cblxuICBkZWxldGUoZW50cnkpOiB2b2lkIHtcbiAgICB0aGlzLmVudHJ5U2VydmljZS5kZWxldGUoZW50cnkpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuZW50cnlTZXJ2aWNlLmdldFVucHVibGlzaGVkRW50cmllcygpLnN1YnNjcmliZSgobmV4dCkgPT4ge1xuICAgICAgICB0aGlzLmVudHJpZXMgPSAobmV4dCBhcyBhbnkpLnJlc3VsdHM7XG4gICAgICB9KTtcbiAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgIGFsZXJ0KCdOT1QgREVMRVRFRDogJyArIGVycm9yKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+U2VsZWN0IGFuIEVudHJ5IHRvIEVkaXQ8L2gxPlxuPCEtLTxtYXQtcmFkaW8tZ3JvdXAgYXJpYS1sYWJlbD1cIlNlbGVjdCBhbiBvcHRpb25cIj4tLT5cbjwhLS0gICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJvcHRpb25cIiB2YWx1ZT1cInVucHVibGlzaGVkXCI+VW5wdWJsaXNoZWQ8L21hdC1yYWRpby1idXR0b24+LS0+XG48IS0tICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwib3B0aW9uXCIgdmFsdWU9XCJwdWJsaXNoZWRcIj5QdWJsaXNoZWQ8L21hdC1yYWRpby1idXR0b24+LS0+XG48IS0tPC9tYXQtcmFkaW8tZ3JvdXA+LS0+XG48bWF0LWRpdmlkZXIgY2xhc3M9XCJvcHRpb24tbGlzdC1kaXZpZGVyXCI+PC9tYXQtZGl2aWRlcj5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxuXG4gIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPWVudHJpZXM+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpZFwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gSWQgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbnRyeVwiPiB7e2VudHJ5LmlkfX0gPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInRpdGxlXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBUaXRsZSA8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVudHJ5XCI+IHt7ZW50cnkudGl0bGV9fSA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY3JlYXRlX2RhdGVcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IENyZWF0ZWQgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbnRyeVwiPiB7e2VudHJ5LmNyZWF0ZV9kYXRlfX0gPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEFjdGlvbnMgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbnRyeVwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNlbGVjdChlbnRyeSlcIj5FZGl0PC9idXR0b24+IHwgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJkZWxldGUoZW50cnkpXCI+RGVsZXRlPC9idXR0b24+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiY29sdW1uc1RvRGlzcGxheVwiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCBteVJvd0RhdGE7IGNvbHVtbnM6IGNvbHVtbnNUb0Rpc3BsYXlcIj48L3RyPlxuICA8L3RhYmxlPlxuICA8ZGl2ICpuZ0lmPVwiIWVudHJpZXM/Lmxlbmd0aFwiPlRoZXJlIGFyZSBubyB1bnB1Ymxpc2hlZCBlbnRyaWVzPC9kaXY+XG48L2Rpdj5cbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cIm9uTm9DbGljaygpXCI+Q2FuY2VsPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -1,28 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { ContentType } from '../../data/content-type';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/router";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "../static-html/static-html.component";
7
- import * as i4 from "../../pipes/TimeAgoPipe";
8
- export class EntrySummaryComponent {
9
- constructor(router) {
10
- this.router = router;
11
- this.ContentType = ContentType;
12
- }
13
- ngOnInit() {
14
- }
15
- routeTo(entry) {
16
- this.router.navigate(['/', 'blog', entry.slug]).then(() => {
17
- });
18
- }
19
- }
20
- EntrySummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EntrySummaryComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
21
- EntrySummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: EntrySummaryComponent, selector: "app-entry-summary", inputs: { entry: "entry" }, ngImport: i0, template: "\n<div class=\"entry section restrict\">\n <h2>{{entry?.title}}</h2>\n <!-- <a href=\"javascript:void(0)\" (click)=\"edit(entry)\"><h6>[Edit]</h6></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\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{padding:20px;border-bottom:solid 1px rgba(0,0,0,.12)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.StaticHtmlComponent, selector: "app-static-html", inputs: ["value"] }, { kind: "pipe", type: i4.TimeAgoPipe, name: "timeAgo" }] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EntrySummaryComponent, decorators: [{
23
- type: Component,
24
- args: [{ selector: 'app-entry-summary', template: "\n<div class=\"entry section restrict\">\n <h2>{{entry?.title}}</h2>\n <!-- <a href=\"javascript:void(0)\" (click)=\"edit(entry)\"><h6>[Edit]</h6></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\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{padding:20px;border-bottom:solid 1px rgba(0,0,0,.12)}\n"] }]
25
- }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { entry: [{
26
- type: Input
27
- }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktc3VtbWFyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9uZW50cy9lbnRyeS1zdW1tYXJ5L2VudHJ5LXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZW50cnktc3VtbWFyeS9lbnRyeS1zdW1tYXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBT3BELE1BQU0sT0FBTyxxQkFBcUI7SUFPOUIsWUFDWSxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU4xQixnQkFBVyxHQUFHLFdBQVcsQ0FBQztJQVExQixDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBSztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBRTFELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7a0hBbkJRLHFCQUFxQjtzR0FBckIscUJBQXFCLHFGQ1ZsQyxzNEZBdURBOzJGRDdDYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksbUJBQW1COzZGQVFwQixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RW50cnl9IGZyb20gJy4uLy4uL2RhdGEvZW50cnknO1xuaW1wb3J0IHtDb250ZW50VHlwZX0gZnJvbSAnLi4vLi4vZGF0YS9jb250ZW50LXR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1lbnRyeS1zdW1tYXJ5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZW50cnktc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZW50cnktc3VtbWFyeS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVudHJ5U3VtbWFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBDb250ZW50VHlwZSA9IENvbnRlbnRUeXBlO1xuXG4gICAgQElucHV0KCkgZW50cnk6IEVudHJ5O1xuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB9XG5cbiAgICByb3V0ZVRvKGVudHJ5KSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLycsICdibG9nJywgZW50cnkuc2x1Z10pLnRoZW4oKCkgPT4ge1xuXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIlxuPGRpdiBjbGFzcz1cImVudHJ5IHNlY3Rpb24gcmVzdHJpY3RcIj5cbiAgICA8aDI+e3tlbnRyeT8udGl0bGV9fTwvaDI+XG4gICAgPCEtLSAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cImVkaXQoZW50cnkpXCI+PGg2PltFZGl0XTwvaDY+PC9hPi0tPlxuICAgIDxoMz5Qb3N0ZWQge3tlbnRyeT8uY3JlYXRlX2RhdGUudG9TdHJpbmcoKSB8IHRpbWVBZ299fSBvbiB7e2VudHJ5Py5jcmVhdGVfZGF0ZT8uZ2V0TW9udGgoKSArIDF9fS97e2VudHJ5Py5jcmVhdGVfZGF0ZT8uZ2V0RGF0ZSgpfX0ve3tlbnRyeT8uY3JlYXRlX2RhdGU/LmdldEZ1bGxZZWFyKCl9fTwvaDM+XG4gICAgPGg1ICpuZ0lmPVwiZW50cnkuc2hvd0VkaXRJbmZvcm1hdGlvbigpXCI+QXJ0aWNsZSB3YXMgbGFzdCBlZGl0ZWQge3tlbnRyeT8uZWRpdF9kYXRlLnRvU3RyaW5nKCkgfCB0aW1lQWdvfX08L2g1PlxuICAgIDxicj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgZW50cnk/LnNlY3Rpb25zLnNsaWNlKDAsIDEpXCI+XG4gICAgICAgIDxoND57e3NlY3Rpb24/LnN1YmhlYWRpbmd9fTwvaDQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbnRlbnQgb2Ygc2VjdGlvbj8uY29udGVudHMuc2xpY2UoMCwgMSlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbnRlbnQudHlwZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbnRlbnRUeXBlLkNPREVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHByZT48Y29kZSBjbGFzcz1cImxhbmd1YWdlLXRzXCI+e3tjb250ZW50Py52YWx1ZX19PC9jb2RlPjwvcHJlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbnRlbnRUeXBlLlVSTFwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJjb250ZW50Py52YWx1ZVwiIHRhcmdldD1cIl9ibGFua1wiPnt7Y29udGVudC50aXRsZX19PC9hPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbnRlbnRUeXBlLklNQUdFXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN0cmljdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImNvbnRlbnQ/LnZhbHVlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiAqbmdJZj1cImNvbnRlbnQ/LmRlc2NyaXB0aW9uXCI+e3tjb250ZW50Py5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic291cmNlXCIgKm5nSWY9XCJjb250ZW50Py5zb3VyY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJjb250ZW50Py5zb3VyY2VcIiBbdGFyZ2V0XT1cIidfYmxhbmsnXCI+U291cmNlOiB7e2NvbnRlbnQ/LnNvdXJjZX19PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbnRlbnRUeXBlLk1FRElBXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN0cmljdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImNvbnRlbnQ/LnZhbHVlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiAqbmdJZj1cImNvbnRlbnQ/LmRlc2NyaXB0aW9uXCI+e3tjb250ZW50Py5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic291cmNlXCIgKm5nSWY9XCJjb250ZW50Py5zb3VyY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJjb250ZW50Py5zb3VyY2VcIiBbdGFyZ2V0XT1cIidfYmxhbmsnXCI+U291cmNlOiB7e2NvbnRlbnQ/LnNvdXJjZX19PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbnRlbnRUeXBlLkhUTUxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1zdGF0aWMtaHRtbFxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbnRlbnQ/LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtc3RhdGljLWh0bWw+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICA8cD57e2NvbnRlbnQ/LnZhbHVlfX08L3A+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIChjbGljayk9XCJyb3V0ZVRvKGVudHJ5KVwiPlJlYWQgbW9yZS4uLjwvYT5cbjwvZGl2PlxuIl19
@@ -1,26 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../services/entry.service";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "../entry-renderer/entry-renderer.component";
6
- export class JsonRendererComponent {
7
- constructor(entryService) {
8
- this.entryService = entryService;
9
- this.JSON = JSON;
10
- }
11
- ngOnInit() {
12
- this.entryService.currentlyEditedEntry.subscribe((entry) => {
13
- console.log(entry);
14
- this.entry = entry;
15
- });
16
- }
17
- }
18
- JsonRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: JsonRendererComponent, deps: [{ token: i1.EntryService }], target: i0.ɵɵFactoryTarget.Component });
19
- JsonRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: JsonRendererComponent, selector: "app-json-renderer", inputs: { entry: "entry" }, ngImport: i0, template: "<div class=\"section json-render json\">\n <app-entry-renderer [editMode]=\"true\" [entry]=\"entry\"></app-entry-renderer>\n <pre *ngIf=\"entry\">{{JSON.stringify(entry)}}</pre>\n</div>\n", styles: [".json pre{white-space:pre-wrap;word-wrap:anywhere}.json-render{padding:0 20px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EntryRendererComponent, selector: "app-entry-renderer", inputs: ["entry", "editMode"] }] });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: JsonRendererComponent, decorators: [{
21
- type: Component,
22
- 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 *ngIf=\"entry\">{{JSON.stringify(entry)}}</pre>\n</div>\n", styles: [".json pre{white-space:pre-wrap;word-wrap:anywhere}.json-render{padding:0 20px}\n"] }]
23
- }], ctorParameters: function () { return [{ type: i1.EntryService }]; }, propDecorators: { entry: [{
24
- type: Input
25
- }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9uZW50cy9qc29uLXJlbmRlcmVyL2pzb24tcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvanNvbi1yZW5kZXJlci9qc29uLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7OztBQVN2RCxNQUFNLE9BQU8scUJBQXFCO0lBSzlCLFlBQ1ksWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFKdEMsU0FBSSxHQUFHLElBQUksQ0FBQztJQU1aLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2RCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7a0hBZlEscUJBQXFCO3NHQUFyQixxQkFBcUIscUZDVGxDLG1NQUlBOzJGREthLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxtQkFBbUI7bUdBT3BCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RW50cnl9IGZyb20gJy4uLy4uL2RhdGEvZW50cnknO1xuaW1wb3J0IHtFbnRyeVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VudHJ5LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1qc29uLXJlbmRlcmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vanNvbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vanNvbi1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEpzb25SZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBKU09OID0gSlNPTjtcbiAgICBASW5wdXQoKSBlbnRyeTogRW50cnk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbnRyeVNlcnZpY2U6IEVudHJ5U2VydmljZSxcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5lbnRyeVNlcnZpY2UuY3VycmVudGx5RWRpdGVkRW50cnkuc3Vic2NyaWJlKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZW50cnkpO1xuICAgICAgICAgICAgdGhpcy5lbnRyeSA9IGVudHJ5O1xuICAgICAgICB9KTtcbiAgICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWN0aW9uIGpzb24tcmVuZGVyIGpzb25cIj5cbiAgICA8YXBwLWVudHJ5LXJlbmRlcmVyIFtlZGl0TW9kZV09XCJ0cnVlXCIgW2VudHJ5XT1cImVudHJ5XCI+PC9hcHAtZW50cnktcmVuZGVyZXI+XG4gICAgPHByZSAqbmdJZj1cImVudHJ5XCI+e3tKU09OLnN0cmluZ2lmeShlbnRyeSl9fTwvcHJlPlxuPC9kaXY+XG4iXX0=
@@ -1,35 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { map } from 'lodash';
3
- import { Entry } from '../../data/entry';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/router";
6
- import * as i2 from "../../services/entry.service";
7
- import * as i3 from "@angular/common";
8
- import * as i4 from "../entry-summary/entry-summary.component";
9
- export class LandingPageComponent {
10
- constructor(router, entryService) {
11
- this.router = router;
12
- this.entryService = entryService;
13
- this.JSON = JSON;
14
- }
15
- ngOnInit() {
16
- this.entryService.get().subscribe((response) => {
17
- this.entries = map(response.results.slice(0, 3), (result) => {
18
- return { id: result.id, entry: new Entry(result) };
19
- });
20
- });
21
- }
22
- ngOnDestroy() {
23
- if (this.sourceSub) {
24
- this.sourceSub.unsubscribe();
25
- this.sourceSub = null;
26
- }
27
- }
28
- }
29
- LandingPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LandingPageComponent, deps: [{ token: i1.Router }, { token: i2.EntryService }], target: i0.ɵɵFactoryTarget.Component });
30
- LandingPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: LandingPageComponent, selector: "app-landing-page", ngImport: i0, 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{min-height:calc(100vh - 100px);max-height:calc(100vh - 100px)}@media screen and (max-height: 560px){.landing-page{max-height:100vh}}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.EntrySummaryComponent, selector: "app-entry-summary", inputs: ["entry"] }] });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LandingPageComponent, decorators: [{
32
- type: Component,
33
- 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{min-height:calc(100vh - 100px);max-height:calc(100vh - 100px)}@media screen and (max-height: 560px){.landing-page{max-height:100vh}}\n"] }]
34
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.EntryService }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZGluZy1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb21wb25lbnRzL2xhbmRpbmctcGFnZS9sYW5kaW5nLXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvbGFuZGluZy1wYWdlL2xhbmRpbmctcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTNCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7O0FBUXZDLE1BQU0sT0FBTyxvQkFBb0I7SUFRN0IsWUFDWSxNQUFjLEVBQ2QsWUFBMEI7UUFEMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUnRDLFNBQUksR0FBRyxJQUFJLENBQUM7SUFXWixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUUsUUFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNqRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUM7WUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDekI7SUFDTCxDQUFDOztpSEE1QlEsb0JBQW9CO3FHQUFwQixvQkFBb0Isd0RDWmpDLDBMQUtBOzJGRE9hLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDSSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge21hcH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHtFbnRyeX0gZnJvbSAnLi4vLi4vZGF0YS9lbnRyeSc7XG5pbXBvcnQge0VudHJ5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50cnkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWxhbmRpbmctcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xhbmRpbmctcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGFuZGluZy1wYWdlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGFuZGluZ1BhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBKU09OID0gSlNPTjtcblxuICAgIGVudHJpZXM7XG4gICAgc291cmNlO1xuICAgIHNvdXJjZVN1YjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGVudHJ5U2VydmljZTogRW50cnlTZXJ2aWNlLFxuICAgICkge1xuXG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZW50cnlTZXJ2aWNlLmdldCgpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcyA9IG1hcCgocmVzcG9uc2UgYXMgYW55KS5yZXN1bHRzLnNsaWNlKDAsIDMpLCAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWQ6IHJlc3VsdC5pZCwgZW50cnk6IG5ldyBFbnRyeShyZXN1bHQpfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc291cmNlU3ViKSB7XG4gICAgICAgICAgICB0aGlzLnNvdXJjZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zb3VyY2VTdWIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwibGFuZGluZy1wYWdlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZW50cnkgb2YgZW50cmllc1wiPlxuICAgICAgICA8YXBwLWVudHJ5LXN1bW1hcnkgW2VudHJ5XT1cImVudHJ5LmVudHJ5XCI+PC9hcHAtZW50cnktc3VtbWFyeT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -1,56 +0,0 @@
1
- import { Component, HostListener } from '@angular/core';
2
- import { NavigationEnd } from '@angular/router';
3
- import { Subject, Subscription } from 'rxjs';
4
- import { debounceTime } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/router";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "@angular/material/sidenav";
9
- import * as i4 from "@angular/material/button";
10
- export class MainComponent {
11
- constructor(router) {
12
- this.router = router;
13
- this.loaded = true;
14
- this.subs = new Subscription();
15
- this.resizeSubject = new Subject();
16
- }
17
- ngOnInit() {
18
- this.subs.add(this.router.events.subscribe((e) => {
19
- if (e instanceof NavigationEnd) {
20
- if (e.urlAfterRedirects.includes('create')) {
21
- this.showLeftCol = true;
22
- this.showRightCol = true;
23
- }
24
- else {
25
- this.showLeftCol = true;
26
- this.showRightCol = false;
27
- this.innerWidth = window.innerWidth;
28
- this.collapseLeftColIfTooNarrow();
29
- }
30
- }
31
- }));
32
- this.subs.add(this.resizeSubject.pipe(debounceTime(100)).subscribe((width) => {
33
- this.innerWidth = width;
34
- this.collapseLeftColIfTooNarrow();
35
- }));
36
- }
37
- collapseLeftColIfTooNarrow() {
38
- this.showLeftCol = this.innerWidth >= 800;
39
- }
40
- onResize(event) {
41
- this.resizeSubject.next(window.innerWidth);
42
- }
43
- ngOnDestroy() {
44
- this.subs.unsubscribe();
45
- }
46
- }
47
- MainComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: MainComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
48
- MainComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: MainComponent, selector: "lib-main", host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, 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{min-width:400px;max-width:33vw}.left-toggle{position:fixed;top:50%;left:5px;z-index:100}.right-toggle{position:fixed;top:50%;right:5px;z-index:100}a{margin-right:10px}a:not(:last-child):after{margin-left:10px;content:\"|\"}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i3.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i4.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: MainComponent, decorators: [{
50
- type: Component,
51
- 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{min-width:400px;max-width:33vw}.left-toggle{position:fixed;top:50%;left:5px;z-index:100}.right-toggle{position:fixed;top:50%;right:5px;z-index:100}a{margin-right:10px}a:not(:last-child):after{margin-left:10px;content:\"|\"}\n"] }]
52
- }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { onResize: [{
53
- type: HostListener,
54
- args: ['window:resize', ['$event']]
55
- }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9uZW50cy9tYWluL21haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvbWFpbi9tYWluLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFPNUMsTUFBTSxPQUFPLGFBQWE7SUFXdEIsWUFDWSxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVYxQixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsU0FBSSxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTXhDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQU10QyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxZQUFZLGFBQWEsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7aUJBQzVCO3FCQUFNO29CQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO29CQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztvQkFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO29CQUNwQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztpQkFDckM7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDakMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUNwQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsMEJBQTBCO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUM7SUFDOUMsQ0FBQztJQUdELFFBQVEsQ0FBQyxLQUFLO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QixDQUFDOzswR0FuRFEsYUFBYTs4RkFBYixhQUFhLDhHQ1YxQiw0L0NBdUJBOzJGRGJhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsVUFBVTs2RkFpRGxCLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkVuZCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW1haW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFpbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21haW4uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1haW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBsb2FkZWQgPSB0cnVlO1xuICAgIHN1YnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBzaG93UmlnaHRDb2w6IGJvb2xlYW47XG4gICAgc2hvd0xlZnRDb2w6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgaW5uZXJXaWR0aDogYW55O1xuXG4gICAgcmVzaXplU3ViamVjdCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICkge1xuXG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vicy5hZGQodGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUudXJsQWZ0ZXJSZWRpcmVjdHMuaW5jbHVkZXMoJ2NyZWF0ZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0xlZnRDb2wgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dSaWdodENvbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93TGVmdENvbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1JpZ2h0Q29sID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlTGVmdENvbElmVG9vTmFycm93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KSk7XG5cbiAgICAgICAgdGhpcy5zdWJzLmFkZCh0aGlzLnJlc2l6ZVN1YmplY3QucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApXG4gICAgICAgICkuc3Vic2NyaWJlKCh3aWR0aCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbm5lcldpZHRoID0gd2lkdGg7XG4gICAgICAgICAgICB0aGlzLmNvbGxhcHNlTGVmdENvbElmVG9vTmFycm93KCk7XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBjb2xsYXBzZUxlZnRDb2xJZlRvb05hcnJvdygpIHtcbiAgICAgICAgdGhpcy5zaG93TGVmdENvbCA9IHRoaXMuaW5uZXJXaWR0aCA+PSA4MDA7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5yZXNpemVTdWJqZWN0Lm5leHQod2luZG93LmlubmVyV2lkdGgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJib2R5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxtYXQtc2lkZW5hdi1jb250YWluZXIgW2F1dG9zaXplXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zaWRlbmF2IFsob3BlbmVkKV09XCJzaG93TGVmdENvbFwiICNsZWZ0Y29sIG9wZW5lZCBtb2RlPVwic2lkZVwiIGNsYXNzPVwibGVmdCBuby1zY3JvbGxiYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJsZWZ0LWNvbFwiPjwvcm91dGVyLW91dGxldD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiZmFkZSBsZWZ0LXRvZ2dsZVwiICpuZ0lmPVwic2hvd0xlZnRDb2xcIiAoY2xpY2spPVwibGVmdGNvbC50b2dnbGUoKVwiPiA8PCA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2lkZW5hdj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zaWRlbmF2IFsob3BlbmVkKV09XCJzaG93UmlnaHRDb2xcIiAjcmlnaHRjb2wgbW9kZT1cInNpZGVcIiBwb3NpdGlvbj1cImVuZFwiIGNsYXNzPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiZmFkZSByaWdodC10b2dnbGVcIiAqbmdJZj1cInNob3dSaWdodENvbFwiIChjbGljayk9XCJyaWdodGNvbC50b2dnbGUoKVwiPiA+PiA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJyaWdodC1jb2xcIj48L3JvdXRlci1vdXRsZXQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNpZGVuYXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWRkbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiZmFkZSBsZWZ0LXRvZ2dsZVwiICpuZ0lmPVwiIXNob3dMZWZ0Q29sXCIgKGNsaWNrKT1cImxlZnRjb2wudG9nZ2xlKClcIj4gPj4gPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICBtYXQtbWluaS1mYWIgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJmYWRlIHJpZ2h0LXRvZ2dsZVwiICpuZ0lmPVwiIXNob3dSaWdodENvbFwiIChjbGljayk9XCJyaWdodGNvbC50b2dnbGUoKVwiPiA8PCA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==