@thecodeblogs/blog 0.11.6 → 0.13.1

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 (134) hide show
  1. package/esm2020/lib/components/entry-creator/entry-creator.component.mjs +347 -0
  2. package/esm2020/lib/components/entry-renderer/entry-renderer.component.mjs +108 -0
  3. package/esm2020/lib/components/entry-renderer-wrapper/entry-renderer-wrapper.component.mjs +75 -0
  4. package/esm2020/lib/components/entry-selector-dialog/entry-selector-dialog-data.mjs +3 -0
  5. package/esm2020/lib/components/entry-selector-dialog/entry-selector-dialog.component.mjs +45 -0
  6. package/esm2020/lib/components/entry-summary/entry-summary.component.mjs +28 -0
  7. package/esm2020/lib/components/json-renderer/json-renderer.component.mjs +26 -0
  8. package/esm2020/lib/components/landing-page/landing-page.component.mjs +35 -0
  9. package/esm2020/lib/components/main/main.component.mjs +56 -0
  10. package/esm2020/lib/components/media-upload-modal/media-upload-modal.component.mjs +160 -0
  11. package/esm2020/lib/components/outline-view/outline-view.component.mjs +40 -0
  12. package/esm2020/lib/components/schedule-publish-dialog/schedule-publish-dialog-data.mjs +3 -0
  13. package/esm2020/lib/components/schedule-publish-dialog/schedule-publish-dialog.component.mjs +33 -0
  14. package/esm2020/lib/components/side-navigation/side-navigation.component.mjs +151 -0
  15. package/esm2020/lib/components/static-html/static-html.component.mjs +28 -0
  16. package/esm2020/lib/core.module.mjs +207 -0
  17. package/esm2020/lib/data/base.mjs +7 -0
  18. package/esm2020/lib/data/content-type.mjs +10 -0
  19. package/esm2020/lib/data/content.mjs +5 -0
  20. package/esm2020/lib/data/core-event-type.enum.mjs +7 -0
  21. package/esm2020/lib/data/core-event.mjs +7 -0
  22. package/esm2020/lib/data/entry.mjs +80 -0
  23. package/esm2020/lib/data/guid.mjs +12 -0
  24. package/esm2020/lib/data/identity.mjs +2 -0
  25. package/esm2020/lib/data/list-response.mjs +3 -0
  26. package/esm2020/lib/data/section.mjs +11 -0
  27. package/esm2020/lib/data/tag.mjs +7 -0
  28. package/esm2020/lib/data/visitor-profile.mjs +3 -0
  29. package/esm2020/lib/pipes/LinkyPipe.mjs +15 -0
  30. package/esm2020/lib/pipes/TimeAgoPipe.mjs +100 -0
  31. package/esm2020/lib/routing/routes.mjs +25 -0
  32. package/esm2020/lib/services/analytics/interaction.service.mjs +20 -0
  33. package/esm2020/lib/services/analytics/view.service.mjs +20 -0
  34. package/esm2020/lib/services/comment.service.mjs +28 -0
  35. package/esm2020/lib/services/django-rest-framework-endpoint.service.mjs +50 -0
  36. package/esm2020/lib/services/entry.service.mjs +73 -0
  37. package/esm2020/lib/services/identity.service.mjs +20 -0
  38. package/esm2020/lib/services/interaction.mjs +3 -0
  39. package/esm2020/lib/services/prism.service.mjs +39 -0
  40. package/esm2020/lib/services/static-html.service.mjs +22 -0
  41. package/esm2020/lib/services/tag.service.mjs +33 -0
  42. package/esm2020/lib/services/upload.mjs +3 -0
  43. package/esm2020/lib/services/upload.service.mjs +22 -0
  44. package/esm2020/lib/services/view.mjs +3 -0
  45. package/esm2020/lib/services/visitor-profile.service.mjs +35 -0
  46. package/esm2020/public-api.mjs +45 -0
  47. package/esm2020/thecodeblogs-blog.mjs +5 -0
  48. package/fesm2015/thecodeblogs-blog.mjs +1826 -0
  49. package/fesm2015/thecodeblogs-blog.mjs.map +1 -0
  50. package/fesm2020/thecodeblogs-blog.mjs +1820 -0
  51. package/fesm2020/thecodeblogs-blog.mjs.map +1 -0
  52. package/lib/components/entry-creator/entry-creator.component.d.ts +3 -0
  53. package/lib/components/entry-renderer/entry-renderer.component.d.ts +3 -0
  54. package/lib/components/entry-renderer-wrapper/entry-renderer-wrapper.component.d.ts +3 -0
  55. package/lib/components/entry-selector-dialog/entry-selector-dialog.component.d.ts +3 -0
  56. package/lib/components/entry-summary/entry-summary.component.d.ts +3 -0
  57. package/lib/components/json-renderer/json-renderer.component.d.ts +3 -0
  58. package/lib/components/landing-page/landing-page.component.d.ts +3 -0
  59. package/lib/components/main/main.component.d.ts +3 -0
  60. package/lib/components/media-upload-modal/media-upload-modal.component.d.ts +3 -0
  61. package/lib/components/outline-view/outline-view.component.d.ts +3 -0
  62. package/lib/components/schedule-publish-dialog/schedule-publish-dialog.component.d.ts +3 -0
  63. package/lib/components/side-navigation/side-navigation.component.d.ts +3 -0
  64. package/lib/components/static-html/static-html.component.d.ts +3 -0
  65. package/lib/core.module.d.ts +40 -0
  66. package/lib/pipes/LinkyPipe.d.ts +3 -0
  67. package/lib/pipes/TimeAgoPipe.d.ts +3 -0
  68. package/lib/services/analytics/interaction.service.d.ts +3 -0
  69. package/lib/services/analytics/view.service.d.ts +3 -0
  70. package/lib/services/comment.service.d.ts +3 -0
  71. package/lib/services/django-rest-framework-endpoint.service.d.ts +3 -0
  72. package/lib/services/entry.service.d.ts +3 -0
  73. package/lib/services/identity.service.d.ts +3 -0
  74. package/lib/services/prism.service.d.ts +3 -0
  75. package/lib/services/static-html.service.d.ts +3 -0
  76. package/lib/services/tag.service.d.ts +3 -0
  77. package/lib/services/upload.service.d.ts +3 -0
  78. package/lib/services/visitor-profile.service.d.ts +3 -0
  79. package/package.json +36 -24
  80. package/thecodeblogs-blog.d.ts +1 -3
  81. package/bundles/thecodeblogs-blog.umd.js +0 -2279
  82. package/bundles/thecodeblogs-blog.umd.js.map +0 -1
  83. package/bundles/thecodeblogs-blog.umd.min.js +0 -17
  84. package/bundles/thecodeblogs-blog.umd.min.js.map +0 -1
  85. package/esm2015/lib/components/entry-creator/entry-creator.component.js +0 -336
  86. package/esm2015/lib/components/entry-renderer/entry-renderer.component.js +0 -108
  87. package/esm2015/lib/components/entry-renderer-wrapper/entry-renderer-wrapper.component.js +0 -79
  88. package/esm2015/lib/components/entry-selector-dialog/entry-selector-dialog-data.js +0 -3
  89. package/esm2015/lib/components/entry-selector-dialog/entry-selector-dialog.component.js +0 -41
  90. package/esm2015/lib/components/entry-summary/entry-summary.component.js +0 -29
  91. package/esm2015/lib/components/json-renderer/json-renderer.component.js +0 -29
  92. package/esm2015/lib/components/landing-page/landing-page.component.js +0 -37
  93. package/esm2015/lib/components/main/main.component.js +0 -55
  94. package/esm2015/lib/components/media-upload-modal/media-upload-modal.component.js +0 -155
  95. package/esm2015/lib/components/outline-view/outline-view.component.js +0 -40
  96. package/esm2015/lib/components/schedule-publish-dialog/schedule-publish-dialog-data.js +0 -3
  97. package/esm2015/lib/components/schedule-publish-dialog/schedule-publish-dialog.component.js +0 -28
  98. package/esm2015/lib/components/side-navigation/side-navigation.component.js +0 -154
  99. package/esm2015/lib/components/static-html/static-html.component.js +0 -33
  100. package/esm2015/lib/core.module.js +0 -125
  101. package/esm2015/lib/data/base.js +0 -7
  102. package/esm2015/lib/data/content-type.js +0 -10
  103. package/esm2015/lib/data/content.js +0 -5
  104. package/esm2015/lib/data/core-event-type.enum.js +0 -7
  105. package/esm2015/lib/data/core-event.js +0 -7
  106. package/esm2015/lib/data/entry.js +0 -80
  107. package/esm2015/lib/data/guid.js +0 -12
  108. package/esm2015/lib/data/identity.js +0 -2
  109. package/esm2015/lib/data/list-response.js +0 -3
  110. package/esm2015/lib/data/section.js +0 -11
  111. package/esm2015/lib/data/tag.js +0 -7
  112. package/esm2015/lib/data/visitor-profile.js +0 -3
  113. package/esm2015/lib/pipes/LinkyPipe.js +0 -11
  114. package/esm2015/lib/pipes/TimeAgoPipe.js +0 -100
  115. package/esm2015/lib/routing/routes.js +0 -25
  116. package/esm2015/lib/services/analytics/interaction.service.js +0 -22
  117. package/esm2015/lib/services/analytics/view.service.js +0 -22
  118. package/esm2015/lib/services/comment.service.js +0 -30
  119. package/esm2015/lib/services/django-rest-framework-endpoint.service.js +0 -52
  120. package/esm2015/lib/services/entry.service.js +0 -74
  121. package/esm2015/lib/services/identity.service.js +0 -22
  122. package/esm2015/lib/services/interaction.js +0 -3
  123. package/esm2015/lib/services/prism.service.js +0 -37
  124. package/esm2015/lib/services/static-html.service.js +0 -24
  125. package/esm2015/lib/services/tag.service.js +0 -35
  126. package/esm2015/lib/services/upload.js +0 -3
  127. package/esm2015/lib/services/upload.service.js +0 -24
  128. package/esm2015/lib/services/view.js +0 -3
  129. package/esm2015/lib/services/visitor-profile.service.js +0 -39
  130. package/esm2015/public-api.js +0 -45
  131. package/esm2015/thecodeblogs-blog.js +0 -8
  132. package/fesm2015/thecodeblogs-blog.js +0 -1786
  133. package/fesm2015/thecodeblogs-blog.js.map +0 -1
  134. package/thecodeblogs-blog.metadata.json +0 -1
@@ -0,0 +1,20 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { DjangoRestFrameworkEndpointService } from '../django-rest-framework-endpoint.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class ViewService extends DjangoRestFrameworkEndpointService {
6
+ constructor(http) {
7
+ super(http);
8
+ this.http = http;
9
+ this.endpoint = '/blog_api/views/';
10
+ }
11
+ }
12
+ ViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ViewService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
13
+ ViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ViewService, providedIn: 'root' });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ViewService, decorators: [{
15
+ type: Injectable,
16
+ args: [{
17
+ providedIn: 'root'
18
+ }]
19
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2FuYWx5dGljcy92aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBTTdGLE1BQU0sT0FBTyxXQUFZLFNBQVEsa0NBQXdDO0lBR3JFLFlBQ1csSUFBZ0I7UUFFdkIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRkwsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUgzQixhQUFRLEdBQUcsa0JBQWtCLENBQUM7SUFNOUIsQ0FBQzs7d0dBUFEsV0FBVzs0R0FBWCxXQUFXLGNBRlIsTUFBTTsyRkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEamFuZ29SZXN0RnJhbWV3b3JrRW5kcG9pbnRTZXJ2aWNlfSBmcm9tICcuLi9kamFuZ28tcmVzdC1mcmFtZXdvcmstZW5kcG9pbnQuc2VydmljZSc7XG5pbXBvcnQge1ZpZXd9IGZyb20gJy4uL3ZpZXcnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdTZXJ2aWNlIGV4dGVuZHMgRGphbmdvUmVzdEZyYW1ld29ya0VuZHBvaW50U2VydmljZTxWaWV3PiB7XG4gICAgZW5kcG9pbnQgPSAnL2Jsb2dfYXBpL3ZpZXdzLyc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGh0dHApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common/http";
4
+ export class CommentService {
5
+ constructor(http) {
6
+ this.http = http;
7
+ this.endpoint = '/blog_api/comments/';
8
+ this.adminEndpoint = '/blog_api/admin/comments/';
9
+ }
10
+ getComments(entry) {
11
+ return this.http.get(this.endpoint, { params: { entry } });
12
+ }
13
+ postComment(comment) {
14
+ return this.http.post(this.endpoint, comment, { params: { entry: comment.entry } });
15
+ }
16
+ patchComment(comment) {
17
+ return this.http.patch(this.adminEndpoint + '/' + comment.id + '/', comment);
18
+ }
19
+ }
20
+ CommentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CommentService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ CommentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CommentService, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CommentService, decorators: [{
23
+ type: Injectable,
24
+ args: [{
25
+ providedIn: 'root'
26
+ }]
27
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2NvbW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFNekMsTUFBTSxPQUFPLGNBQWM7SUFLdkIsWUFDYyxJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSjlCLGFBQVEsR0FBRyxxQkFBcUIsQ0FBQztRQUNqQyxrQkFBYSxHQUFHLDJCQUEyQixDQUFDO0lBSzVDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxFQUFDLEtBQUssRUFBQyxFQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQU87UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUMsRUFBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakYsQ0FBQzs7MkdBbEJRLGNBQWM7K0dBQWQsY0FBYyxjQUZYLE1BQU07MkZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29tbWVudFNlcnZpY2Uge1xuXG4gICAgZW5kcG9pbnQgPSAnL2Jsb2dfYXBpL2NvbW1lbnRzLyc7XG4gICAgYWRtaW5FbmRwb2ludCA9ICcvYmxvZ19hcGkvYWRtaW4vY29tbWVudHMvJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICApIHtcbiAgICB9XG5cbiAgICBnZXRDb21tZW50cyhlbnRyeSkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVuZHBvaW50LCB7cGFyYW1zOiB7ZW50cnl9fSk7XG4gICAgfVxuICAgIHBvc3RDb21tZW50KGNvbW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZW5kcG9pbnQsIGNvbW1lbnQsIHtwYXJhbXM6IHtlbnRyeTogY29tbWVudC5lbnRyeX19KTtcbiAgICB9XG4gICAgcGF0Y2hDb21tZW50KGNvbW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaCh0aGlzLmFkbWluRW5kcG9pbnQgKyAnLycgKyBjb21tZW50LmlkICsgJy8nLCBjb21tZW50KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { Injectable, EventEmitter } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { CoreEvent } from '../data/core-event';
4
+ import { CoreEventType } from '../data/core-event-type.enum';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ export class DjangoRestFrameworkEndpointService {
8
+ constructor(http) {
9
+ this.http = http;
10
+ this.events = new EventEmitter();
11
+ this.endpoint = '';
12
+ }
13
+ triggerCoreEvent(obj, type) {
14
+ this.events.next(new CoreEvent(obj, type));
15
+ return obj;
16
+ }
17
+ handleResponse(obj) {
18
+ return obj;
19
+ }
20
+ handleListResponse(obj) {
21
+ return obj;
22
+ }
23
+ get() {
24
+ return this.http.get(this.endpoint).pipe(map(this.handleListResponse.bind(this)));
25
+ }
26
+ getById(id) {
27
+ return this.http.get(this.endpoint + id + '/').pipe(map(this.handleResponse.bind(this)));
28
+ }
29
+ create(entity) {
30
+ return this.http.post(this.endpoint + '/', entity).pipe(map((val) => this.triggerCoreEvent(val, CoreEventType.CREATE)), map(this.handleResponse.bind(this)));
31
+ }
32
+ delete(entity) {
33
+ return this.http.delete(this.endpoint + entity.id + '/').pipe(map((val) => this.triggerCoreEvent(val, CoreEventType.DELETE)), map(this.handleResponse.bind(this)));
34
+ }
35
+ update(entity) {
36
+ return this.http.patch(this.endpoint + entity.id + '/', entity).pipe(map((val) => this.triggerCoreEvent(val, CoreEventType.UPDATE)), map(this.handleResponse.bind(this)));
37
+ }
38
+ getListByUrl(url) {
39
+ return this.http.get(url).pipe(map(this.handleListResponse.bind(this)));
40
+ }
41
+ }
42
+ DjangoRestFrameworkEndpointService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DjangoRestFrameworkEndpointService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
43
+ DjangoRestFrameworkEndpointService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DjangoRestFrameworkEndpointService, providedIn: 'root' });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DjangoRestFrameworkEndpointService, decorators: [{
45
+ type: Injectable,
46
+ args: [{
47
+ providedIn: 'root'
48
+ }]
49
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGphbmdvLXJlc3QtZnJhbWV3b3JrLWVuZHBvaW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2VydmljZXMvZGphbmdvLXJlc3QtZnJhbWV3b3JrLWVuZHBvaW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR25DLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7OztBQUszRCxNQUFNLE9BQU8sa0NBQWtDO0lBQzNDLFlBQ2MsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUk5QixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFDMUMsYUFBUSxHQUFHLEVBQUUsQ0FBQztJQUhkLENBQUM7SUFLRCxnQkFBZ0IsQ0FBQyxHQUFNLEVBQUUsSUFBbUI7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0MsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQU07UUFDakIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsR0FBb0I7UUFDbkMsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQsR0FBRztRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ3JELEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzFDLENBQUM7SUFDTixDQUFDO0lBQ0QsT0FBTyxDQUFDLEVBQVU7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDbEQsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3RDLENBQUM7SUFDTixDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQVM7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUM5RCxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdEMsQ0FBQztJQUNOLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBUztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUksSUFBSSxDQUFDLFFBQVEsR0FBSSxNQUFjLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDckUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUM5RCxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdEMsQ0FBQztJQUNOLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBUztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUksSUFBSSxDQUFDLFFBQVEsR0FBSSxNQUFjLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzVFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDOUQsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3RDLENBQUM7SUFDTixDQUFDO0lBQ0QsWUFBWSxDQUFDLEdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMxQyxDQUFDO0lBQ04sQ0FBQzs7K0hBckRRLGtDQUFrQzttSUFBbEMsa0NBQWtDLGNBRi9CLE1BQU07MkZBRVQsa0NBQWtDO2tCQUg5QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0xpc3RSZXNwb25zZX0gZnJvbSAnLi4vZGF0YS9saXN0LXJlc3BvbnNlJztcbmltcG9ydCB7Q29yZUV2ZW50fSBmcm9tICcuLi9kYXRhL2NvcmUtZXZlbnQnO1xuaW1wb3J0IHtDb3JlRXZlbnRUeXBlfSBmcm9tICcuLi9kYXRhL2NvcmUtZXZlbnQtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEamFuZ29SZXN0RnJhbWV3b3JrRW5kcG9pbnRTZXJ2aWNlPFQ+IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnRcbiAgICApIHtcbiAgICB9XG5cbiAgICBldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyPENvcmVFdmVudDxUPj4oKTtcbiAgICBlbmRwb2ludCA9ICcnO1xuXG4gICAgdHJpZ2dlckNvcmVFdmVudChvYmo6IFQsIHR5cGU6IENvcmVFdmVudFR5cGUpIHtcbiAgICAgICAgdGhpcy5ldmVudHMubmV4dChuZXcgQ29yZUV2ZW50KG9iaiwgdHlwZSkpO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cblxuICAgIGhhbmRsZVJlc3BvbnNlKG9iajogVCkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBoYW5kbGVMaXN0UmVzcG9uc2Uob2JqOiBMaXN0UmVzcG9uc2U8VD4pIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG5cbiAgICBnZXQoKTogT2JzZXJ2YWJsZTxMaXN0UmVzcG9uc2U8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TGlzdFJlc3BvbnNlPFQ+Pih0aGlzLmVuZHBvaW50KS5waXBlKFxuICAgICAgICAgICAgbWFwKHRoaXMuaGFuZGxlTGlzdFJlc3BvbnNlLmJpbmQodGhpcykpXG4gICAgICAgICk7XG4gICAgfVxuICAgIGdldEJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLmVuZHBvaW50ICsgaWQgKyAnLycpLnBpcGUoXG4gICAgICAgICAgICBtYXAodGhpcy5oYW5kbGVSZXNwb25zZS5iaW5kKHRoaXMpKVxuICAgICAgICApO1xuICAgIH1cbiAgICBjcmVhdGUoZW50aXR5OiBUKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih0aGlzLmVuZHBvaW50ICsgJy8nLCBlbnRpdHkpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhbCkgPT4gdGhpcy50cmlnZ2VyQ29yZUV2ZW50KHZhbCwgQ29yZUV2ZW50VHlwZS5DUkVBVEUpKSxcbiAgICAgICAgICAgIG1hcCh0aGlzLmhhbmRsZVJlc3BvbnNlLmJpbmQodGhpcykpXG4gICAgICAgICk7XG4gICAgfVxuICAgIGRlbGV0ZShlbnRpdHk6IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VD4odGhpcy5lbmRwb2ludCArIChlbnRpdHkgYXMgYW55KS5pZCArICcvJykucGlwZShcbiAgICAgICAgICAgIG1hcCgodmFsKSA9PiB0aGlzLnRyaWdnZXJDb3JlRXZlbnQodmFsLCBDb3JlRXZlbnRUeXBlLkRFTEVURSkpLFxuICAgICAgICAgICAgbWFwKHRoaXMuaGFuZGxlUmVzcG9uc2UuYmluZCh0aGlzKSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgdXBkYXRlKGVudGl0eTogVCk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPFQ+KHRoaXMuZW5kcG9pbnQgKyAoZW50aXR5IGFzIGFueSkuaWQgKyAnLycsIGVudGl0eSkucGlwZShcbiAgICAgICAgICAgIG1hcCgodmFsKSA9PiB0aGlzLnRyaWdnZXJDb3JlRXZlbnQodmFsLCBDb3JlRXZlbnRUeXBlLlVQREFURSkpLFxuICAgICAgICAgICAgbWFwKHRoaXMuaGFuZGxlUmVzcG9uc2UuYmluZCh0aGlzKSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0TGlzdEJ5VXJsKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxMaXN0UmVzcG9uc2U8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TGlzdFJlc3BvbnNlPFQ+Pih1cmwpLnBpcGUoXG4gICAgICAgICAgICBtYXAodGhpcy5oYW5kbGVMaXN0UmVzcG9uc2UuYmluZCh0aGlzKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,73 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { DjangoRestFrameworkEndpointService } from '../services/django-rest-framework-endpoint.service';
3
+ import { Entry } from '../data/entry';
4
+ import { Subject } from 'rxjs';
5
+ import { debounceTime, map } from 'rxjs/operators';
6
+ import { HttpParams } from '@angular/common/http';
7
+ import { CoreEventType } from '../data/core-event-type.enum';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common/http";
10
+ export class EntryService extends DjangoRestFrameworkEndpointService {
11
+ constructor(http) {
12
+ super(http);
13
+ this.http = http;
14
+ this.endpoint = '/blog_api/entries/';
15
+ this.adminEndpoint = '/blog_api/admin/entries/';
16
+ this.currentlyEditedEntry = new Subject();
17
+ this.sub = this.currentlyEditedEntry.pipe(debounceTime(3000)).subscribe((e) => {
18
+ e.edit_date = new Date();
19
+ const params = new HttpParams().set('published', JSON.stringify(false)).set('defunct', JSON.stringify(false));
20
+ this.http.patch(this.adminEndpoint + e.id + '/', e, { params }).pipe(map(this.handleResponse.bind(this))).subscribe((response) => {
21
+ this.triggerCoreEvent(response, CoreEventType.UPDATE);
22
+ console.log('Synced ' + e.id + '...');
23
+ }, (err) => {
24
+ console.log('Error encountered syncing ' + e.id + ', trying to create...');
25
+ this.http.post(this.adminEndpoint, e).pipe(map(this.handleResponse)).subscribe((response) => {
26
+ this.triggerCoreEvent(response, CoreEventType.CREATE);
27
+ console.log('Created ' + e.id + '...');
28
+ }, (createErr) => {
29
+ console.log('Error creating ' + e.id);
30
+ });
31
+ });
32
+ });
33
+ }
34
+ handleResponse(obj) {
35
+ return new Entry(obj);
36
+ }
37
+ handleListResponse(obj) {
38
+ const response = obj;
39
+ const results = [];
40
+ for (const result of response.results) {
41
+ results.push(new Entry(result));
42
+ }
43
+ response.results = results;
44
+ return response;
45
+ }
46
+ get() {
47
+ return this.http.get(this.endpoint).pipe(map(this.handleListResponse.bind(this)));
48
+ }
49
+ getUnpublishedEntries() {
50
+ const params = new HttpParams().set('published', JSON.stringify(false)).set('defunct', JSON.stringify(false));
51
+ return this.http.get(this.adminEndpoint, { params });
52
+ }
53
+ getBySlug(slug) {
54
+ return this.http.get(this.endpoint + slug + '/by_slug/').pipe(map(this.handleResponse.bind(this)));
55
+ }
56
+ getUnpublishedById(id) {
57
+ const params = new HttpParams().set('published', JSON.stringify(false)).set('defunct', JSON.stringify(false));
58
+ return this.http.get(this.adminEndpoint + id, { params }).pipe(map(this.handleResponse.bind(this)));
59
+ }
60
+ updateUnpublishedEntry(entry) {
61
+ const params = new HttpParams().set('published', JSON.stringify(false)).set('defunct', JSON.stringify(false));
62
+ return this.http.patch(this.adminEndpoint + entry.id + '/', entry, { params }).pipe(map((val) => this.triggerCoreEvent(val, CoreEventType.UPDATE)), map(this.handleResponse.bind(this)));
63
+ }
64
+ }
65
+ EntryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EntryService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
66
+ EntryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EntryService, providedIn: 'root' });
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EntryService, decorators: [{
68
+ type: Injectable,
69
+ args: [{
70
+ providedIn: 'root'
71
+ }]
72
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9lbnRyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFdEcsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFhLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRTVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBSzNELE1BQU0sT0FBTyxZQUFhLFNBQVEsa0NBQXlDO0lBd0J2RSxZQUNjLElBQWdCO1FBRTFCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUZGLFNBQUksR0FBSixJQUFJLENBQVk7UUF2QjlCLGFBQVEsR0FBRyxvQkFBb0IsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLDBCQUEwQixDQUFDO1FBRzNDLHlCQUFvQixHQUFtQixJQUFJLE9BQU8sRUFBUyxDQUFDO1FBc0J4RCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUUsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFOUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUQsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3RDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBRSxRQUFrQixFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUMxQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDUCxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsQ0FBQztnQkFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3RDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQzNCLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBRSxRQUFrQixFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUF4Q0QsY0FBYyxDQUFDLEdBQVU7UUFDckIsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBd0I7UUFDdkMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsUUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDM0IsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQThCRCxHQUFHO1FBQ0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMxQyxDQUFDO0lBQ04sQ0FBQztJQUVELHFCQUFxQjtRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUN6RCxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdEMsQ0FBQztJQUNOLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxFQUFVO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUSxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUMvRCxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdEMsQ0FBQztJQUNOLENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxLQUFZO1FBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBUSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUNwRixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQzlELEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN0QyxDQUFDO0lBQ04sQ0FBQzs7eUdBL0VRLFlBQVk7NkdBQVosWUFBWSxjQUZULE1BQU07MkZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIEV2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RqYW5nb1Jlc3RGcmFtZXdvcmtFbmRwb2ludFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2RqYW5nby1yZXN0LWZyYW1ld29yay1lbmRwb2ludC5zZXJ2aWNlJztcbmltcG9ydCB7TGlzdFJlc3BvbnNlfSBmcm9tICcuLi9kYXRhL2xpc3QtcmVzcG9uc2UnO1xuaW1wb3J0IHtFbnRyeX0gZnJvbSAnLi4vZGF0YS9lbnRyeSc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtsb01hcH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtDb3JlRXZlbnR9IGZyb20gJy4uL2RhdGEvY29yZS1ldmVudCc7XG5pbXBvcnQge0NvcmVFdmVudFR5cGV9IGZyb20gJy4uL2RhdGEvY29yZS1ldmVudC10eXBlLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVudHJ5U2VydmljZSBleHRlbmRzIERqYW5nb1Jlc3RGcmFtZXdvcmtFbmRwb2ludFNlcnZpY2U8RW50cnk+IHtcblxuICAgIGVuZHBvaW50ID0gJy9ibG9nX2FwaS9lbnRyaWVzLyc7XG4gICAgYWRtaW5FbmRwb2ludCA9ICcvYmxvZ19hcGkvYWRtaW4vZW50cmllcy8nO1xuXG4gICAgX2N1cnJlbnRseUVkaXRlZEVudHJ5OiBFbnRyeTtcbiAgICBjdXJyZW50bHlFZGl0ZWRFbnRyeTogU3ViamVjdDxFbnRyeT4gPSBuZXcgU3ViamVjdDxFbnRyeT4oKTtcbiAgICBzdWI7XG5cbiAgICBoYW5kbGVSZXNwb25zZShvYmo6IEVudHJ5KTogRW50cnkge1xuICAgICAgICByZXR1cm4gbmV3IEVudHJ5KG9iaik7XG4gICAgfVxuXG4gICAgaGFuZGxlTGlzdFJlc3BvbnNlKG9iajogTGlzdFJlc3BvbnNlPEVudHJ5Pik6IExpc3RSZXNwb25zZTxFbnRyeT4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IG9iajtcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXNwb25zZS5yZXN1bHRzKSB7XG4gICAgICAgICAgICByZXN1bHRzLnB1c2gobmV3IEVudHJ5KHJlc3VsdCkpO1xuICAgICAgICB9XG4gICAgICAgIHJlc3BvbnNlLnJlc3VsdHMgPSByZXN1bHRzO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGh0dHApO1xuICAgICAgICB0aGlzLnN1YiA9IHRoaXMuY3VycmVudGx5RWRpdGVkRW50cnkucGlwZShkZWJvdW5jZVRpbWUoMzAwMCkpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgZS5lZGl0X2RhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3B1Ymxpc2hlZCcsIEpTT04uc3RyaW5naWZ5KGZhbHNlKSkuc2V0KCdkZWZ1bmN0JywgSlNPTi5zdHJpbmdpZnkoZmFsc2UpKTtcblxuICAgICAgICAgICAgdGhpcy5odHRwLnBhdGNoKHRoaXMuYWRtaW5FbmRwb2ludCArIGUuaWQgKyAnLycsIGUsIHtwYXJhbXN9KS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCh0aGlzLmhhbmRsZVJlc3BvbnNlLmJpbmQodGhpcykpXG4gICAgICAgICAgICApLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJDb3JlRXZlbnQoKHJlc3BvbnNlIGFzIEVudHJ5KSwgQ29yZUV2ZW50VHlwZS5VUERBVEUpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTeW5jZWQgJyArIGUuaWQgKyAnLi4uJyk7XG4gICAgICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGVuY291bnRlcmVkIHN5bmNpbmcgJyArIGUuaWQgKyAnLCB0cnlpbmcgdG8gY3JlYXRlLi4uJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5odHRwLnBvc3QodGhpcy5hZG1pbkVuZHBvaW50LCBlKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAodGhpcy5oYW5kbGVSZXNwb25zZSlcbiAgICAgICAgICAgICAgICApLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyQ29yZUV2ZW50KChyZXNwb25zZSBhcyBFbnRyeSksIENvcmVFdmVudFR5cGUuQ1JFQVRFKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0NyZWF0ZWQgJyArIGUuaWQgKyAnLi4uJyk7XG4gICAgICAgICAgICAgICAgfSwgKGNyZWF0ZUVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3IgY3JlYXRpbmcgJyArIGUuaWQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCgpOiBPYnNlcnZhYmxlPExpc3RSZXNwb25zZTxFbnRyeT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5lbmRwb2ludCkucGlwZShcbiAgICAgICAgICAgIG1hcCh0aGlzLmhhbmRsZUxpc3RSZXNwb25zZS5iaW5kKHRoaXMpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFVucHVibGlzaGVkRW50cmllcygpIHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3B1Ymxpc2hlZCcsIEpTT04uc3RyaW5naWZ5KGZhbHNlKSkuc2V0KCdkZWZ1bmN0JywgSlNPTi5zdHJpbmdpZnkoZmFsc2UpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5hZG1pbkVuZHBvaW50LCB7cGFyYW1zfSk7XG4gICAgfVxuXG4gICAgZ2V0QnlTbHVnKHNsdWc6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVuZHBvaW50ICsgc2x1ZyArICcvYnlfc2x1Zy8nKS5waXBlKFxuICAgICAgICAgICAgbWFwKHRoaXMuaGFuZGxlUmVzcG9uc2UuYmluZCh0aGlzKSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0VW5wdWJsaXNoZWRCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVudHJ5PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwdWJsaXNoZWQnLCBKU09OLnN0cmluZ2lmeShmYWxzZSkpLnNldCgnZGVmdW5jdCcsIEpTT04uc3RyaW5naWZ5KGZhbHNlKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEVudHJ5Pih0aGlzLmFkbWluRW5kcG9pbnQgKyBpZCwge3BhcmFtc30pLnBpcGUoXG4gICAgICAgICAgICBtYXAodGhpcy5oYW5kbGVSZXNwb25zZS5iaW5kKHRoaXMpKVxuICAgICAgICApO1xuICAgIH1cbiAgICB1cGRhdGVVbnB1Ymxpc2hlZEVudHJ5KGVudHJ5OiBFbnRyeSk6IE9ic2VydmFibGU8RW50cnk+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3B1Ymxpc2hlZCcsIEpTT04uc3RyaW5naWZ5KGZhbHNlKSkuc2V0KCdkZWZ1bmN0JywgSlNPTi5zdHJpbmdpZnkoZmFsc2UpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxFbnRyeT4odGhpcy5hZG1pbkVuZHBvaW50ICsgZW50cnkuaWQgKyAnLycsIGVudHJ5LCB7cGFyYW1zfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgodmFsKSA9PiB0aGlzLnRyaWdnZXJDb3JlRXZlbnQodmFsLCBDb3JlRXZlbnRUeXBlLlVQREFURSkpLFxuICAgICAgICAgICAgbWFwKHRoaXMuaGFuZGxlUmVzcG9uc2UuYmluZCh0aGlzKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common/http";
4
+ export class IdentityService {
5
+ constructor(http) {
6
+ this.http = http;
7
+ }
8
+ getMe() {
9
+ throw new Error('You must provide an implementation for this');
10
+ }
11
+ }
12
+ IdentityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: IdentityService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
13
+ IdentityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: IdentityService, providedIn: 'root' });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: IdentityService, decorators: [{
15
+ type: Injectable,
16
+ args: [{
17
+ providedIn: 'root'
18
+ }]
19
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9pZGVudGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVEzQyxNQUFNLE9BQU8sZUFBZTtJQUV4QixZQUNjLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFDMUIsQ0FBQztJQUNMLEtBQUs7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7NEdBUFEsZUFBZTtnSEFBZixlQUFlLGNBRlosTUFBTTsyRkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SWRlbnRpdHl9IGZyb20gJy4uL2RhdGEvaWRlbnRpdHknO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIElkZW50aXR5U2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnRcbiAgICApIHsgfVxuICAgIGdldE1lKCk6IE9ic2VydmFibGU8SWRlbnRpdHk+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIGZvciB0aGlzJyk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export class Interaction {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2VydmljZXMvaW50ZXJhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7Q0FHdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSW50ZXJhY3Rpb24ge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgY29udGVudDogYW55O1xufVxuIl19
@@ -0,0 +1,39 @@
1
+ import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
2
+ import { isPlatformBrowser } from '@angular/common';
3
+ import 'clipboard';
4
+ import 'prismjs';
5
+ import 'prismjs/plugins/toolbar/prism-toolbar';
6
+ import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard';
7
+ import 'prismjs/components/prism-css';
8
+ import 'prismjs/components/prism-javascript';
9
+ import 'prismjs/components/prism-java';
10
+ import 'prismjs/components/prism-markup';
11
+ import 'prismjs/components/prism-typescript';
12
+ import 'prismjs/components/prism-sass';
13
+ import 'prismjs/components/prism-scss';
14
+ import * as i0 from "@angular/core";
15
+ export class PrismService {
16
+ constructor(platformId) {
17
+ this.platformId = platformId;
18
+ if (Prism) {
19
+ Prism.manual = true;
20
+ }
21
+ }
22
+ highlightAll() {
23
+ if (isPlatformBrowser(this.platformId)) {
24
+ Prism.highlightAll();
25
+ }
26
+ }
27
+ }
28
+ PrismService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: PrismService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
29
+ PrismService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: PrismService, providedIn: 'root' });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: PrismService, decorators: [{
31
+ type: Injectable,
32
+ args: [{
33
+ providedIn: 'root'
34
+ }]
35
+ }], ctorParameters: function () { return [{ type: Object, decorators: [{
36
+ type: Inject,
37
+ args: [PLATFORM_ID]
38
+ }] }]; } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpc20uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcmlzbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRCxPQUFPLFdBQVcsQ0FBQztBQUVuQixPQUFPLFNBQVMsQ0FBQztBQUNqQixPQUFPLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sMkRBQTJELENBQUM7QUFDbkUsT0FBTyw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sK0JBQStCLENBQUM7QUFDdkMsT0FBTywrQkFBK0IsQ0FBQzs7QUFPdkMsTUFBTSxPQUFPLFlBQVk7SUFDckIsWUFBeUMsVUFBa0I7UUFBbEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUN2RCxJQUFJLEtBQUssRUFBRTtZQUNQLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDOzt5R0FYUSxZQUFZLGtCQUNELFdBQVc7NkdBRHRCLFlBQVksY0FGVCxNQUFNOzJGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzBEQUV3RCxNQUFNOzBCQUE5QyxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0ICdjbGlwYm9hcmQnO1xuXG5pbXBvcnQgJ3ByaXNtanMnO1xuaW1wb3J0ICdwcmlzbWpzL3BsdWdpbnMvdG9vbGJhci9wcmlzbS10b29sYmFyJztcbmltcG9ydCAncHJpc21qcy9wbHVnaW5zL2NvcHktdG8tY2xpcGJvYXJkL3ByaXNtLWNvcHktdG8tY2xpcGJvYXJkJztcbmltcG9ydCAncHJpc21qcy9jb21wb25lbnRzL3ByaXNtLWNzcyc7XG5pbXBvcnQgJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS1qYXZhc2NyaXB0JztcbmltcG9ydCAncHJpc21qcy9jb21wb25lbnRzL3ByaXNtLWphdmEnO1xuaW1wb3J0ICdwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tbWFya3VwJztcbmltcG9ydCAncHJpc21qcy9jb21wb25lbnRzL3ByaXNtLXR5cGVzY3JpcHQnO1xuaW1wb3J0ICdwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tc2Fzcyc7XG5pbXBvcnQgJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS1zY3NzJztcblxuZGVjbGFyZSB2YXIgUHJpc206IGFueTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcmlzbVNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0KSB7XG4gICAgICAgIGlmIChQcmlzbSkge1xuICAgICAgICAgICAgUHJpc20ubWFudWFsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhpZ2hsaWdodEFsbCgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIFByaXNtLmhpZ2hsaWdodEFsbCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,22 @@
1
+ import { Injectable, SecurityContext } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/platform-browser";
4
+ export class StaticHtmlService {
5
+ constructor(domSanitizer) {
6
+ this.domSanitizer = domSanitizer;
7
+ }
8
+ mapStaticHtml(htmlString, isTrusted) {
9
+ return isTrusted ?
10
+ htmlString :
11
+ this.domSanitizer.sanitize(SecurityContext.HTML, htmlString);
12
+ }
13
+ }
14
+ StaticHtmlService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: StaticHtmlService, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
15
+ StaticHtmlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: StaticHtmlService, providedIn: 'root' });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: StaticHtmlService, decorators: [{
17
+ type: Injectable,
18
+ args: [{
19
+ providedIn: 'root'
20
+ }]
21
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWh0bWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9zdGF0aWMtaHRtbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNNUQsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUNZLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ2xDLENBQUM7SUFFTCxhQUFhLENBQUMsVUFBa0IsRUFBRSxTQUFrQjtRQUNoRCxPQUFPLFNBQVMsQ0FBQyxDQUFDO1lBQ2QsVUFBVSxDQUFDLENBQUM7WUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7OzhHQVRRLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmQsTUFBTTsyRkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBTZWN1cml0eUNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdGF0aWNIdG1sU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgKSB7IH1cblxuICAgIG1hcFN0YXRpY0h0bWwoaHRtbFN0cmluZzogc3RyaW5nLCBpc1RydXN0ZWQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXNUcnVzdGVkID9cbiAgICAgICAgICAgIGh0bWxTdHJpbmcgOlxuICAgICAgICAgICAgdGhpcy5kb21TYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LkhUTUwsIGh0bWxTdHJpbmcpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Tag } from '../data/tag';
3
+ import { DjangoRestFrameworkEndpointService } from './django-rest-framework-endpoint.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ export class TagService extends DjangoRestFrameworkEndpointService {
7
+ constructor(http) {
8
+ super(http);
9
+ this.http = http;
10
+ this.endpoint = '/blog_api/tags/';
11
+ }
12
+ handleResponse(obj) {
13
+ return new Tag(obj);
14
+ }
15
+ handleListResponse(obj) {
16
+ const response = obj;
17
+ const results = [];
18
+ for (let i = 0; i < response.results.length; i++) {
19
+ results.push(new Tag(response.results[i]));
20
+ }
21
+ response.results = results;
22
+ return response;
23
+ }
24
+ }
25
+ TagService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TagService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
26
+ TagService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TagService, providedIn: 'root' });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TagService, decorators: [{
28
+ type: Injectable,
29
+ args: [{
30
+ providedIn: 'root'
31
+ }]
32
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2VydmljZXMvdGFnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLDBDQUEwQyxDQUFDOzs7QUFLNUYsTUFBTSxPQUFPLFVBQVcsU0FBUSxrQ0FBdUM7SUFpQm5FLFlBQ2MsSUFBZ0I7UUFFMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRkYsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWpCOUIsYUFBUSxHQUFHLGlCQUFpQixDQUFDO0lBb0I3QixDQUFDO0lBbEJELGNBQWMsQ0FBQyxHQUFRO1FBQ25CLE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQXNCO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNyQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUM7UUFDRCxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUMzQixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDOzt1R0FmUSxVQUFVOzJHQUFWLFVBQVUsY0FGUCxNQUFNOzJGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xpc3RSZXNwb25zZX0gZnJvbSAnLi4vZGF0YS9saXN0LXJlc3BvbnNlJztcbmltcG9ydCB7VGFnfSBmcm9tICcuLi9kYXRhL3RhZyc7XG5pbXBvcnQge0RqYW5nb1Jlc3RGcmFtZXdvcmtFbmRwb2ludFNlcnZpY2V9IGZyb20gJy4vZGphbmdvLXJlc3QtZnJhbWV3b3JrLWVuZHBvaW50LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRhZ1NlcnZpY2UgZXh0ZW5kcyBEamFuZ29SZXN0RnJhbWV3b3JrRW5kcG9pbnRTZXJ2aWNlPFRhZz4ge1xuICAgIGVuZHBvaW50ID0gJy9ibG9nX2FwaS90YWdzLyc7XG5cbiAgICBoYW5kbGVSZXNwb25zZShvYmo6IFRhZyk6IFRhZ3tcbiAgICAgICAgcmV0dXJuIG5ldyBUYWcob2JqKTtcbiAgICB9XG5cbiAgICBoYW5kbGVMaXN0UmVzcG9uc2Uob2JqOiBMaXN0UmVzcG9uc2U8VGFnPik6IExpc3RSZXNwb25zZTxUYWc+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBvYmo7XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNwb25zZS5yZXN1bHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHRzLnB1c2gobmV3IFRhZyhyZXNwb25zZS5yZXN1bHRzW2ldKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzcG9uc2UucmVzdWx0cyA9IHJlc3VsdHM7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGh0dHApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export class Upload {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3VwbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sTUFBTTtDQUtsQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVcGxvYWQge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgcHJvY2Vzc2VkOiBib29sZWFuO1xuICAgIHBhdGhfdG9fZmlsZTogc3RyaW5nO1xuICAgIG1pbWVfdHlwZTogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,22 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common/http";
4
+ export class UploadService {
5
+ constructor(http) {
6
+ this.http = http;
7
+ }
8
+ get(id) {
9
+ return this.http.get(UploadService.status_endpoint.replace('{pk}', id) + '/');
10
+ }
11
+ }
12
+ UploadService.upload_endpoint = '/file_api/uploads/create_image/';
13
+ UploadService.status_endpoint = '/file_api/uploads/{pk}/status';
14
+ UploadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: UploadService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
15
+ UploadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: UploadService, providedIn: 'root' });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: UploadService, decorators: [{
17
+ type: Injectable,
18
+ args: [{
19
+ providedIn: 'root'
20
+ }]
21
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2VydmljZXMvdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBUXpDLE1BQU0sT0FBTyxhQUFhO0lBS3RCLFlBQ1ksSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUU1QixDQUFDO0lBRUQsR0FBRyxDQUFDLEVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFTLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUMxRixDQUFDOztBQVZNLDZCQUFlLEdBQUcsaUNBQWlDLENBQUM7QUFDcEQsNkJBQWUsR0FBRywrQkFBK0IsQ0FBQzswR0FIaEQsYUFBYTs4R0FBYixhQUFhLGNBRlYsTUFBTTsyRkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtVcGxvYWR9IGZyb20gJy4uL3NlcnZpY2VzL3VwbG9hZCc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRTZXJ2aWNlIHtcblxuICAgIHN0YXRpYyB1cGxvYWRfZW5kcG9pbnQgPSAnL2ZpbGVfYXBpL3VwbG9hZHMvY3JlYXRlX2ltYWdlLyc7XG4gICAgc3RhdGljIHN0YXR1c19lbmRwb2ludCA9ICcvZmlsZV9hcGkvdXBsb2Fkcy97cGt9L3N0YXR1cyc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICAgKSB7XG4gICAgfVxuXG4gICAgZ2V0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVwbG9hZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVcGxvYWQ+KFVwbG9hZFNlcnZpY2Uuc3RhdHVzX2VuZHBvaW50LnJlcGxhY2UoJ3twa30nLCBpZCkgKyAnLycpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export class View {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy92aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxJQUFJO0NBR2hCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFZpZXcge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZW50cnk6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { VisitorProfile } from '../data/visitor-profile';
3
+ import { DjangoRestFrameworkEndpointService } from '../services/django-rest-framework-endpoint.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ import * as i2 from "ngx-device-detector";
7
+ export class VisitorProfileService extends DjangoRestFrameworkEndpointService {
8
+ constructor(http, deviceDetectorService) {
9
+ super(http);
10
+ this.http = http;
11
+ this.deviceDetectorService = deviceDetectorService;
12
+ this.endpoint = '/blog_api/visitor_profiles/';
13
+ }
14
+ getVisitorProfile() {
15
+ const deviceInfo = this.deviceDetectorService.getDeviceInfo();
16
+ const vp = new VisitorProfile();
17
+ vp.telemetry = deviceInfo;
18
+ vp.name = deviceInfo.os;
19
+ vp.family = deviceInfo.browser;
20
+ vp.version = deviceInfo.browser_version;
21
+ vp.device = deviceInfo.device;
22
+ vp.os_version = deviceInfo.os_version;
23
+ vp.language = navigator.language;
24
+ return vp;
25
+ }
26
+ }
27
+ VisitorProfileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VisitorProfileService, deps: [{ token: i1.HttpClient }, { token: i2.DeviceDetectorService }], target: i0.ɵɵFactoryTarget.Injectable });
28
+ VisitorProfileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VisitorProfileService, providedIn: 'root' });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: VisitorProfileService, decorators: [{
30
+ type: Injectable,
31
+ args: [{
32
+ providedIn: 'root'
33
+ }]
34
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.DeviceDetectorService }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci1wcm9maWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2VydmljZXMvdmlzaXRvci1wcm9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sb0RBQW9ELENBQUM7Ozs7QUFLdEcsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGtDQUFrRDtJQUd6RixZQUNXLElBQWdCLEVBQ2hCLHFCQUE0QztRQUVuRCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFITCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFKdkQsYUFBUSxHQUFHLDZCQUE2QixDQUFDO0lBT3pDLENBQUM7SUFFRCxpQkFBaUI7UUFDYixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFOUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUVoQyxFQUFFLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUUxQixFQUFFLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQy9CLEVBQUUsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQztRQUN4QyxFQUFFLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDOUIsRUFBRSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO1FBQ3RDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUVqQyxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7O2tIQXpCUSxxQkFBcUI7c0hBQXJCLHFCQUFxQixjQUZsQixNQUFNOzJGQUVULHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGV2aWNlRGV0ZWN0b3JTZXJ2aWNlfSBmcm9tICduZ3gtZGV2aWNlLWRldGVjdG9yJztcbmltcG9ydCB7VmlzaXRvclByb2ZpbGV9IGZyb20gJy4uL2RhdGEvdmlzaXRvci1wcm9maWxlJztcbmltcG9ydCB7RGphbmdvUmVzdEZyYW1ld29ya0VuZHBvaW50U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvZGphbmdvLXJlc3QtZnJhbWV3b3JrLWVuZHBvaW50LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFZpc2l0b3JQcm9maWxlU2VydmljZSBleHRlbmRzIERqYW5nb1Jlc3RGcmFtZXdvcmtFbmRwb2ludFNlcnZpY2U8VmlzaXRvclByb2ZpbGU+IHtcbiAgICBlbmRwb2ludCA9ICcvYmxvZ19hcGkvdmlzaXRvcl9wcm9maWxlcy8nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwdWJsaWMgZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaHR0cCk7XG4gICAgfVxuXG4gICAgZ2V0VmlzaXRvclByb2ZpbGUoKTogVmlzaXRvclByb2ZpbGUge1xuICAgICAgICBjb25zdCBkZXZpY2VJbmZvID0gdGhpcy5kZXZpY2VEZXRlY3RvclNlcnZpY2UuZ2V0RGV2aWNlSW5mbygpO1xuXG4gICAgICAgIGNvbnN0IHZwID0gbmV3IFZpc2l0b3JQcm9maWxlKCk7XG5cbiAgICAgICAgdnAudGVsZW1ldHJ5ID0gZGV2aWNlSW5mbztcblxuICAgICAgICB2cC5uYW1lID0gZGV2aWNlSW5mby5vcztcbiAgICAgICAgdnAuZmFtaWx5ID0gZGV2aWNlSW5mby5icm93c2VyO1xuICAgICAgICB2cC52ZXJzaW9uID0gZGV2aWNlSW5mby5icm93c2VyX3ZlcnNpb247XG4gICAgICAgIHZwLmRldmljZSA9IGRldmljZUluZm8uZGV2aWNlO1xuICAgICAgICB2cC5vc192ZXJzaW9uID0gZGV2aWNlSW5mby5vc192ZXJzaW9uO1xuICAgICAgICB2cC5sYW5ndWFnZSA9IG5hdmlnYXRvci5sYW5ndWFnZTtcblxuICAgICAgICByZXR1cm4gdnA7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,45 @@
1
+ /*
2
+ * Public API Surface of core
3
+ */
4
+ export * from './lib/data/base';
5
+ export * from './lib/data/content-type';
6
+ export * from './lib/data/content';
7
+ export * from './lib/data/entry';
8
+ export * from './lib/data/guid';
9
+ export * from './lib/data/identity';
10
+ export * from './lib/data/list-response';
11
+ export * from './lib/data/section';
12
+ export * from './lib/data/core-event';
13
+ export * from './lib/data/core-event-type.enum';
14
+ export * from './lib/data/visitor-profile';
15
+ export * from './lib/services/comment.service';
16
+ export * from './lib/services/django-rest-framework-endpoint.service';
17
+ export * from './lib/services/entry.service';
18
+ export * from './lib/services/identity.service';
19
+ export * from './lib/services/prism.service';
20
+ export * from './lib/services/upload.service';
21
+ export * from './lib/services/upload';
22
+ export * from './lib/services/analytics/view.service';
23
+ export * from './lib/services/analytics/interaction.service';
24
+ export * from './lib/services/view';
25
+ export * from './lib/services/interaction';
26
+ export * from './lib/services/visitor-profile.service';
27
+ export * from './lib/services/static-html.service';
28
+ export * from './lib/services/tag.service';
29
+ export * from './lib/components/entry-creator/entry-creator.component';
30
+ export * from './lib/components/entry-renderer/entry-renderer.component';
31
+ export * from './lib/components/entry-selector-dialog/entry-selector-dialog.component';
32
+ export * from './lib/components/entry-summary/entry-summary.component';
33
+ export * from './lib/components/json-renderer/json-renderer.component';
34
+ export * from './lib/components/landing-page/landing-page.component';
35
+ export * from './lib/components/media-upload-modal/media-upload-modal.component';
36
+ export * from './lib/components/outline-view/outline-view.component';
37
+ export * from './lib/components/side-navigation/side-navigation.component';
38
+ export * from './lib/components/static-html/static-html.component';
39
+ export * from './lib/components/main/main.component';
40
+ export * from './lib/components/entry-renderer-wrapper/entry-renderer-wrapper.component';
41
+ export * from './lib/pipes/LinkyPipe';
42
+ export * from './lib/pipes/TimeAgoPipe';
43
+ export * from './lib/routing/routes';
44
+ export * from './lib/core.module';
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBFQUEwRSxDQUFDO0FBRXpGLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvcmVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhL2Jhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS9jb250ZW50LXR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS9jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEvZW50cnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS9ndWlkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEvaWRlbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS9saXN0LXJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEvc2VjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhL2NvcmUtZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS9jb3JlLWV2ZW50LXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhL3Zpc2l0b3ItcHJvZmlsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbW1lbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kamFuZ28tcmVzdC1mcmFtZXdvcmstZW5kcG9pbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9lbnRyeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2lkZW50aXR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcHJpc20uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy91cGxvYWQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy91cGxvYWQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYW5hbHl0aWNzL3ZpZXcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hbmFseXRpY3MvaW50ZXJhY3Rpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy92aWV3JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2ludGVyYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3Zpc2l0b3ItcHJvZmlsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3N0YXRpYy1odG1sLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGFnLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2VudHJ5LWNyZWF0b3IvZW50cnktY3JlYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9lbnRyeS1yZW5kZXJlci9lbnRyeS1yZW5kZXJlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9lbnRyeS1zZWxlY3Rvci1kaWFsb2cvZW50cnktc2VsZWN0b3ItZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2VudHJ5LXN1bW1hcnkvZW50cnktc3VtbWFyeS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9qc29uLXJlbmRlcmVyL2pzb24tcmVuZGVyZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGFuZGluZy1wYWdlL2xhbmRpbmctcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tZWRpYS11cGxvYWQtbW9kYWwvbWVkaWEtdXBsb2FkLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL291dGxpbmUtdmlldy9vdXRsaW5lLXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2lkZS1uYXZpZ2F0aW9uL3NpZGUtbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdGF0aWMtaHRtbC9zdGF0aWMtaHRtbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tYWluL21haW4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZW50cnktcmVuZGVyZXItd3JhcHBlci9lbnRyeS1yZW5kZXJlci13cmFwcGVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL0xpbmt5UGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9UaW1lQWdvUGlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3JvdXRpbmcvcm91dGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS5tb2R1bGUnO1xuXG5cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlY29kZWJsb2dzLWJsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy90aGVjb2RlYmxvZ3MtYmxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19