@thecodeblogs/blog 0.11.7 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -1,79 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
3
- import { InteractionService } from '../../services/analytics/interaction.service';
4
- import { ViewService } from '../../services/analytics/view.service';
5
- import { EntryService } from '../../services/entry.service';
6
- import { Interaction } from '../../services/interaction';
7
- import { View } from '../../services/view';
8
- export class EntryRendererWrapperComponent {
9
- constructor(entryService, router, route, viewService, interactionService) {
10
- this.entryService = entryService;
11
- this.router = router;
12
- this.route = route;
13
- this.viewService = viewService;
14
- this.interactionService = interactionService;
15
- this.seeAllEntries = false;
16
- }
17
- seeAll(toggle) {
18
- this.seeAllEntries = toggle;
19
- }
20
- getEntry() {
21
- const slug = this.route.snapshot.paramMap.get('slug');
22
- if (slug) {
23
- this.entryService.getBySlug(slug).subscribe((response) => {
24
- this.currentEntry = response;
25
- const view = new View();
26
- view.entry = this.currentEntry.id;
27
- this.viewService.create(view).subscribe((viewResponse) => {
28
- // Noop
29
- });
30
- });
31
- }
32
- this.route.queryParams.subscribe(params => {
33
- const campaign = params['campaign'];
34
- if (campaign && campaign !== '') {
35
- const interaction = new Interaction();
36
- interaction.content = { 'campaign': campaign, slug };
37
- this.interactionService.create(interaction).subscribe((response) => {
38
- });
39
- setTimeout(() => {
40
- const urlMinsCampaign = this.router.url.replace(new RegExp('.campaign=' + campaign), '');
41
- this.router.navigateByUrl(urlMinsCampaign);
42
- }, 0);
43
- }
44
- });
45
- }
46
- ngOnInit() {
47
- this.routerSub = this.router.events.subscribe((e) => {
48
- if (e instanceof NavigationEnd) {
49
- this.currentEntry = null;
50
- this.seeAll(false);
51
- setTimeout(() => {
52
- this.getEntry();
53
- }, 10);
54
- }
55
- });
56
- this.getEntry();
57
- }
58
- ngOnDestroy() {
59
- if (this.routerSub) {
60
- this.routerSub.complete();
61
- this.routerSub = null;
62
- }
63
- }
64
- }
65
- EntryRendererWrapperComponent.decorators = [
66
- { type: Component, args: [{
67
- selector: 'lib-entry-renderer-wrapper',
68
- template: "<div class=\"rendered-entry section\">\n <app-entry-renderer *ngIf=\"currentEntry\" [entry]=\"currentEntry\"></app-entry-renderer>\n</div>\n",
69
- styles: [".rendered-entry{padding:0 20px}"]
70
- },] }
71
- ];
72
- EntryRendererWrapperComponent.ctorParameters = () => [
73
- { type: EntryService },
74
- { type: Router },
75
- { type: ActivatedRoute },
76
- { type: ViewService },
77
- { type: InteractionService }
78
- ];
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktcmVuZGVyZXItd3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2JqYW1lc29uL0RldmVsb3BtZW50L2Jsb2cvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9lbnRyeS1yZW5kZXJlci13cmFwcGVyL2VudHJ5LXJlbmRlcmVyLXdyYXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQU96QyxNQUFNLE9BQU8sNkJBQTZCO0lBVXRDLFlBQ1ksWUFBMEIsRUFDMUIsTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLFdBQXdCLEVBQ3hCLGtCQUFzQztRQUp0QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQVpsRCxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQWN0QixDQUFDO0lBWEQsTUFBTSxDQUFDLE1BQWU7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQVdELFFBQVE7UUFDSixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO2dCQUM3QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUVsQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtvQkFDckQsT0FBTztnQkFDWCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksUUFBUSxJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUU7Z0JBRTdCLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ3RDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUVuRSxDQUFDLENBQUMsQ0FBQztnQkFDSCxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNaLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3pGLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDVDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hELElBQUksQ0FBQyxZQUFZLGFBQWEsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1osSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNwQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDVjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDekI7SUFDTCxDQUFDOzs7WUExRUosU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLDJKQUFzRDs7YUFFdkQ7OztZQVJPLFlBQVk7WUFIbUIsTUFBTTtZQUFyQyxjQUFjO1lBRWQsV0FBVztZQURYLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7SW50ZXJhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbmFseXRpY3MvaW50ZXJhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1ZpZXdTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbmFseXRpY3Mvdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7RW50cnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbnRyeS5zZXJ2aWNlJztcbmltcG9ydCB7SW50ZXJhY3Rpb259IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ludGVyYWN0aW9uJztcbmltcG9ydCB7Vmlld30gZnJvbSAnLi4vLi4vc2VydmljZXMvdmlldyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1lbnRyeS1yZW5kZXJlci13cmFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VudHJ5LXJlbmRlcmVyLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRyeS1yZW5kZXJlci13cmFwcGVyLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFbnRyeVJlbmRlcmVyV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBlbnRyaWVzO1xuICAgIGN1cnJlbnRFbnRyeTtcbiAgICBzZWVBbGxFbnRyaWVzID0gZmFsc2U7XG4gICAgcm91dGVyU3ViO1xuXG4gICAgc2VlQWxsKHRvZ2dsZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNlZUFsbEVudHJpZXMgPSB0b2dnbGU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZW50cnlTZXJ2aWNlOiBFbnRyeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHZpZXdTZXJ2aWNlOiBWaWV3U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBpbnRlcmFjdGlvblNlcnZpY2U6IEludGVyYWN0aW9uU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIGdldEVudHJ5KCkge1xuICAgICAgICBjb25zdCBzbHVnID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3NsdWcnKTtcbiAgICAgICAgaWYgKHNsdWcpIHtcbiAgICAgICAgICAgIHRoaXMuZW50cnlTZXJ2aWNlLmdldEJ5U2x1ZyhzbHVnKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RW50cnkgPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgICBjb25zdCB2aWV3ID0gbmV3IFZpZXcoKTtcbiAgICAgICAgICAgICAgICB2aWV3LmVudHJ5ID0gdGhpcy5jdXJyZW50RW50cnkuaWQ7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdTZXJ2aWNlLmNyZWF0ZSh2aWV3KS5zdWJzY3JpYmUoKHZpZXdSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBOb29wXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYW1wYWlnbiA9IHBhcmFtc1snY2FtcGFpZ24nXTtcbiAgICAgICAgICAgIGlmIChjYW1wYWlnbiAmJiBjYW1wYWlnbiAhPT0gJycpIHtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gbmV3IEludGVyYWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uY29udGVudCA9IHsnY2FtcGFpZ24nOiBjYW1wYWlnbiwgc2x1Z307XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGlvblNlcnZpY2UuY3JlYXRlKGludGVyYWN0aW9uKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG5cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsTWluc0NhbXBhaWduID0gdGhpcy5yb3V0ZXIudXJsLnJlcGxhY2UobmV3IFJlZ0V4cCgnLmNhbXBhaWduPScgKyBjYW1wYWlnbiksICcnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmxNaW5zQ2FtcGFpZ24pO1xuICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXJTdWIgPSB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRFbnRyeSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWVBbGwoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEVudHJ5KCk7XG4gICAgICAgICAgICAgICAgfSwgMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmdldEVudHJ5KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJvdXRlclN1Yikge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMucm91dGVyU3ViID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
@@ -1,3 +0,0 @@
1
- export class EntrySelectorDialogData {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktc2VsZWN0b3ItZGlhbG9nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2JqYW1lc29uL0RldmVsb3BtZW50L2Jsb2cvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9lbnRyeS1zZWxlY3Rvci1kaWFsb2cvZW50cnktc2VsZWN0b3ItZGlhbG9nLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHVCQUF1QjtDQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFbnRyeVNlbGVjdG9yRGlhbG9nRGF0YSB7XG59XG4iXX0=
@@ -1,41 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
3
- import { EntrySelectorDialogData } from '../../components/entry-selector-dialog/entry-selector-dialog-data';
4
- import { EntryService } from '../../services/entry.service';
5
- export class EntrySelectorDialogComponent {
6
- constructor(dialogRef, data, entryService) {
7
- this.dialogRef = dialogRef;
8
- this.data = data;
9
- this.entryService = entryService;
10
- }
11
- ngOnInit() {
12
- this.entryService.getUnpublishedEntries().subscribe((next) => {
13
- this.entries = next.results;
14
- });
15
- }
16
- onNoClick() {
17
- this.dialogRef.close();
18
- }
19
- onYesClick() {
20
- this.entryService.getUnpublishedById(this.selectedId).subscribe((entry) => {
21
- localStorage.setItem(EntrySelectorDialogComponent.CURRENT_ENTRY, JSON.stringify(entry));
22
- entry.sort();
23
- this.entryService.currentlyEditedEntry.next(entry);
24
- this.dialogRef.close();
25
- });
26
- }
27
- }
28
- EntrySelectorDialogComponent.CURRENT_ENTRY = 'current_entry';
29
- EntrySelectorDialogComponent.decorators = [
30
- { type: Component, args: [{
31
- selector: 'app-entry-selector-dialog',
32
- 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 <mat-radio-group [(ngModel)]=\"selectedId\">\n <mat-radio-button *ngFor=\"let entry of entries\" class=\"option\" [value]=\"entry.id\">{{entry.title}}</mat-radio-button>\n </mat-radio-group>\n <div *ngIf=\"!entries?.length\">There are no unpublished entries</div>\n</div>\n<div mat-dialog-actions>\n <button mat-button (click)=\"onNoClick()\">Cancel</button>\n <button mat-button (click)=\"onYesClick()\" [mat-dialog-close]=\"this.selectedId\" cdkFocusInitial>Edit Selected Entry</button>\n</div>\n",
33
- styles: [".entry-checkbox-container{display:inline-block;margin:5px 0;width:100%}.option-list-divider{margin:10px 0}.option{margin-right:5px}"]
34
- },] }
35
- ];
36
- EntrySelectorDialogComponent.ctorParameters = () => [
37
- { type: MatDialogRef },
38
- { type: EntrySelectorDialogData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
39
- { type: EntryService }
40
- ];
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktc2VsZWN0b3ItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvYmphbWVzb24vRGV2ZWxvcG1lbnQvYmxvZy9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2VudHJ5LXNlbGVjdG9yLWRpYWxvZy9lbnRyeS1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxlQUFlLEVBQUUsWUFBWSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFDMUcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBTzFELE1BQU0sT0FBTyw0QkFBNEI7SUFPckMsWUFDVyxTQUFxRCxFQUM1QixJQUE2QixFQUNyRCxZQUEwQjtRQUYzQixjQUFTLEdBQVQsU0FBUyxDQUE0QztRQUM1QixTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUNyRCxpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUV0QyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFJLElBQVksQ0FBQyxPQUFPLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0RSxZQUFZLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDeEYsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O0FBN0JNLDBDQUFhLEdBQUcsZUFBZSxDQUFDOztZQVAxQyxTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsczdCQUFxRDs7YUFFeEQ7OztZQVJ3QixZQUFZO1lBQzdCLHVCQUF1Qix1QkFpQnRCLE1BQU0sU0FBQyxlQUFlO1lBaEJ2QixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge0VudHJ5U2VsZWN0b3JEaWFsb2dEYXRhfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2VudHJ5LXNlbGVjdG9yLWRpYWxvZy9lbnRyeS1zZWxlY3Rvci1kaWFsb2ctZGF0YSc7XG5pbXBvcnQge0VudHJ5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50cnkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWVudHJ5LXNlbGVjdG9yLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VudHJ5LXNlbGVjdG9yLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZW50cnktc2VsZWN0b3ItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRW50cnlTZWxlY3RvckRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBzdGF0aWMgQ1VSUkVOVF9FTlRSWSA9ICdjdXJyZW50X2VudHJ5JztcblxuICAgIGVudHJpZXM7XG4gICAgc2VsZWN0ZWRJZDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxFbnRyeVNlbGVjdG9yRGlhbG9nQ29tcG9uZW50PixcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBFbnRyeVNlbGVjdG9yRGlhbG9nRGF0YSxcbiAgICAgICAgcHJpdmF0ZSBlbnRyeVNlcnZpY2U6IEVudHJ5U2VydmljZSxcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbnRyeVNlcnZpY2UuZ2V0VW5wdWJsaXNoZWRFbnRyaWVzKCkuc3Vic2NyaWJlKChuZXh0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMgPSAobmV4dCBhcyBhbnkpLnJlc3VsdHM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uTm9DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBvblllc0NsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVudHJ5U2VydmljZS5nZXRVbnB1Ymxpc2hlZEJ5SWQodGhpcy5zZWxlY3RlZElkKS5zdWJzY3JpYmUoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShFbnRyeVNlbGVjdG9yRGlhbG9nQ29tcG9uZW50LkNVUlJFTlRfRU5UUlksIEpTT04uc3RyaW5naWZ5KGVudHJ5KSk7XG4gICAgICAgICAgICBlbnRyeS5zb3J0KCk7XG4gICAgICAgICAgICB0aGlzLmVudHJ5U2VydmljZS5jdXJyZW50bHlFZGl0ZWRFbnRyeS5uZXh0KGVudHJ5KTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,29 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { ContentType } from '../../data/content-type';
4
- export class EntrySummaryComponent {
5
- constructor(router) {
6
- this.router = router;
7
- this.ContentType = ContentType;
8
- }
9
- ngOnInit() {
10
- }
11
- routeTo(entry) {
12
- this.router.navigate(['/', 'blog', entry.slug]).then(() => {
13
- });
14
- }
15
- }
16
- EntrySummaryComponent.decorators = [
17
- { type: Component, args: [{
18
- selector: 'app-entry-summary',
19
- 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",
20
- styles: [".entry{border-bottom:1px solid rgba(0,0,0,.12);padding:20px}"]
21
- },] }
22
- ];
23
- EntrySummaryComponent.ctorParameters = () => [
24
- { type: Router }
25
- ];
26
- EntrySummaryComponent.propDecorators = {
27
- entry: [{ type: Input }]
28
- };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktc3VtbWFyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2JqYW1lc29uL0RldmVsb3BtZW50L2Jsb2cvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9lbnRyeS1zdW1tYXJ5L2VudHJ5LXN1bW1hcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV2QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFPcEQsTUFBTSxPQUFPLHFCQUFxQjtJQU85QixZQUNZLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTjFCLGdCQUFXLEdBQUcsV0FBVyxDQUFDO0lBUTFCLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLO1FBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFFMUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7WUF4QkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLGc1RkFBNkM7O2FBRWhEOzs7WUFSTyxNQUFNOzs7b0JBYVQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtFbnRyeX0gZnJvbSAnLi4vLi4vZGF0YS9lbnRyeSc7XG5pbXBvcnQge0NvbnRlbnRUeXBlfSBmcm9tICcuLi8uLi9kYXRhL2NvbnRlbnQtdHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWVudHJ5LXN1bW1hcnknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbnRyeS1zdW1tYXJ5LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbnRyeS1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRW50cnlTdW1tYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIENvbnRlbnRUeXBlID0gQ29udGVudFR5cGU7XG5cbiAgICBASW5wdXQoKSBlbnRyeTogRW50cnk7XG5cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIH1cblxuICAgIHJvdXRlVG8oZW50cnkpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJywgJ2Jsb2cnLCBlbnRyeS5zbHVnXSkudGhlbigoKSA9PiB7XG5cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,29 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { Entry } from '../../data/entry';
3
- import { EntryService } from '../../services/entry.service';
4
- export class JsonRendererComponent {
5
- constructor(entryService) {
6
- this.entryService = entryService;
7
- this.JSON = JSON;
8
- this.entry = new Entry();
9
- }
10
- ngOnInit() {
11
- this.entryService.currentlyEditedEntry.subscribe((entry) => {
12
- this.entry = entry;
13
- });
14
- }
15
- }
16
- JsonRendererComponent.decorators = [
17
- { type: Component, args: [{
18
- selector: 'app-json-renderer',
19
- template: "<div class=\"section json-render json\">\n <app-entry-renderer [editMode]=\"true\" [entry]=\"entry\"></app-entry-renderer>\n <pre>{{JSON.stringify(entry)}}</pre>\n</div>\n",
20
- styles: [".json pre{white-space:pre-wrap;word-wrap:anywhere}.json-render{padding:0 20px}"]
21
- },] }
22
- ];
23
- JsonRendererComponent.ctorParameters = () => [
24
- { type: EntryService }
25
- ];
26
- JsonRendererComponent.propDecorators = {
27
- entry: [{ type: Input }]
28
- };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2JqYW1lc29uL0RldmVsb3BtZW50L2Jsb2cvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9qc29uLXJlbmRlcmVyL2pzb24tcmVuZGVyZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFPMUQsTUFBTSxPQUFPLHFCQUFxQjtJQUs5QixZQUNZLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBSnRDLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDSCxVQUFLLEdBQVUsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUtwQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7WUFuQkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLDZMQUE2Qzs7YUFFaEQ7OztZQU5PLFlBQVk7OztvQkFVZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbnRyeX0gZnJvbSAnLi4vLi4vZGF0YS9lbnRyeSc7XG5pbXBvcnQge0VudHJ5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50cnkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWpzb24tcmVuZGVyZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9qc29uLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9qc29uLXJlbmRlcmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSnNvblJlbmRlcmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEpTT04gPSBKU09OO1xuICAgIEBJbnB1dCgpIGVudHJ5OiBFbnRyeSA9IG5ldyBFbnRyeSgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZW50cnlTZXJ2aWNlOiBFbnRyeVNlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZW50cnlTZXJ2aWNlLmN1cnJlbnRseUVkaXRlZEVudHJ5LnN1YnNjcmliZSgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW50cnkgPSBlbnRyeTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG59XG4iXX0=
@@ -1,37 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { map } from 'lodash';
4
- import { Entry } from '../../data/entry';
5
- import { EntryService } from '../../services/entry.service';
6
- export class LandingPageComponent {
7
- constructor(router, entryService) {
8
- this.router = router;
9
- this.entryService = entryService;
10
- this.JSON = JSON;
11
- }
12
- ngOnInit() {
13
- this.entryService.get().subscribe((response) => {
14
- this.entries = map(response.results.slice(0, 3), (result) => {
15
- return { id: result.id, entry: new Entry(result) };
16
- });
17
- });
18
- }
19
- ngOnDestroy() {
20
- if (this.sourceSub) {
21
- this.sourceSub.unsubscribe();
22
- this.sourceSub = null;
23
- }
24
- }
25
- }
26
- LandingPageComponent.decorators = [
27
- { type: Component, args: [{
28
- selector: 'app-landing-page',
29
- 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",
30
- styles: [".landing-page{max-height:calc(100vh - 100px);min-height:calc(100vh - 100px)}@media screen and (max-height:560px){.landing-page{max-height:100vh}}"]
31
- },] }
32
- ];
33
- LandingPageComponent.ctorParameters = () => [
34
- { type: Router },
35
- { type: EntryService }
36
- ];
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZGluZy1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvYmphbWVzb24vRGV2ZWxvcG1lbnQvYmxvZy9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2xhbmRpbmctcGFnZS9sYW5kaW5nLXBhZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBZ0IsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUUzQixPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBTzFELE1BQU0sT0FBTyxvQkFBb0I7SUFRN0IsWUFDWSxNQUFjLEVBQ2QsWUFBMEI7UUFEMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUnRDLFNBQUksR0FBRyxJQUFJLENBQUM7SUFXWixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUUsUUFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNqRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUM7WUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDekI7SUFDTCxDQUFDOzs7WUFqQ0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLG9NQUE0Qzs7YUFFL0M7OztZQVZzQixNQUFNO1lBSXJCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge21hcH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHtFbnRyeX0gZnJvbSAnLi4vLi4vZGF0YS9lbnRyeSc7XG5pbXBvcnQge0VudHJ5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50cnkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWxhbmRpbmctcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xhbmRpbmctcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGFuZGluZy1wYWdlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGFuZGluZ1BhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBKU09OID0gSlNPTjtcblxuICAgIGVudHJpZXM7XG4gICAgc291cmNlO1xuICAgIHNvdXJjZVN1YjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGVudHJ5U2VydmljZTogRW50cnlTZXJ2aWNlLFxuICAgICkge1xuXG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZW50cnlTZXJ2aWNlLmdldCgpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcyA9IG1hcCgocmVzcG9uc2UgYXMgYW55KS5yZXN1bHRzLnNsaWNlKDAsIDMpLCAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWQ6IHJlc3VsdC5pZCwgZW50cnk6IG5ldyBFbnRyeShyZXN1bHQpfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc291cmNlU3ViKSB7XG4gICAgICAgICAgICB0aGlzLnNvdXJjZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zb3VyY2VTdWIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
@@ -1,55 +0,0 @@
1
- import { Component, HostListener } from '@angular/core';
2
- import { NavigationEnd, Router } from '@angular/router';
3
- import { Subject, Subscription } from 'rxjs';
4
- import { debounceTime } from 'rxjs/operators';
5
- export class MainComponent {
6
- constructor(router) {
7
- this.router = router;
8
- this.loaded = true;
9
- this.subs = new Subscription();
10
- this.resizeSubject = new Subject();
11
- }
12
- ngOnInit() {
13
- this.subs.add(this.router.events.subscribe((e) => {
14
- if (e instanceof NavigationEnd) {
15
- if (e.urlAfterRedirects.includes('create')) {
16
- this.showLeftCol = true;
17
- this.showRightCol = true;
18
- }
19
- else {
20
- this.showLeftCol = true;
21
- this.showRightCol = false;
22
- this.innerWidth = window.innerWidth;
23
- this.collapseLeftColIfTooNarrow();
24
- }
25
- }
26
- }));
27
- this.subs.add(this.resizeSubject.pipe(debounceTime(100)).subscribe((width) => {
28
- this.innerWidth = width;
29
- this.collapseLeftColIfTooNarrow();
30
- }));
31
- }
32
- collapseLeftColIfTooNarrow() {
33
- this.showLeftCol = this.innerWidth >= 800;
34
- }
35
- onResize(event) {
36
- this.resizeSubject.next(window.innerWidth);
37
- }
38
- ngOnDestroy() {
39
- this.subs.unsubscribe();
40
- }
41
- }
42
- MainComponent.decorators = [
43
- { type: Component, args: [{
44
- selector: 'lib-main',
45
- 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",
46
- styles: ["a{text-decoration:none}.body{flex-grow:1;max-height:calc(100vh - 100px);overflow:scroll}@media screen and (max-height:560px){.body{max-height:100vh}}.left,.right{max-width:33vw;min-width:400px}.left-toggle{left:5px}.left-toggle,.right-toggle{position:fixed;top:50%;z-index:100}.right-toggle{right:5px}a{margin-right:10px;&:not(:last-child):after{content:\"|\";margin-left:10px}}"]
47
- },] }
48
- ];
49
- MainComponent.ctorParameters = () => [
50
- { type: Router }
51
- ];
52
- MainComponent.propDecorators = {
53
- onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]
54
- };
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2JqYW1lc29uL0RldmVsb3BtZW50L2Jsb2cvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9tYWluL21haW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQU81QyxNQUFNLE9BQU8sYUFBYTtJQVd0QixZQUNZLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVjFCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxTQUFJLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFNeEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO0lBTXRDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFlBQVksYUFBYSxFQUFFO2dCQUM1QixJQUFJLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO29CQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztpQkFDNUI7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO29CQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7b0JBQ3BDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO2lCQUNyQzthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNqQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQ3BCLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCwwQkFBMEI7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQztJQUM5QyxDQUFDO0lBR0QsUUFBUSxDQUFDLEtBQUs7UUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVCLENBQUM7OztZQXhESixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLHNnREFBb0M7O2FBRXJDOzs7WUFSc0IsTUFBTTs7O3VCQXFEeEIsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1N1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItbWFpbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYWluLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFpbi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWFpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIGxvYWRlZCA9IHRydWU7XG4gICAgc3ViczogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHNob3dSaWdodENvbDogYm9vbGVhbjtcbiAgICBzaG93TGVmdENvbDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBpbm5lcldpZHRoOiBhbnk7XG5cbiAgICByZXNpemVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgKSB7XG5cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzLmFkZCh0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS51cmxBZnRlclJlZGlyZWN0cy5pbmNsdWRlcygnY3JlYXRlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93TGVmdENvbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1JpZ2h0Q29sID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dMZWZ0Q29sID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93UmlnaHRDb2wgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbm5lcldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2VMZWZ0Q29sSWZUb29OYXJyb3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKTtcblxuICAgICAgICB0aGlzLnN1YnMuYWRkKHRoaXMucmVzaXplU3ViamVjdC5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDEwMClcbiAgICAgICAgKS5zdWJzY3JpYmUoKHdpZHRoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlubmVyV2lkdGggPSB3aWR0aDtcbiAgICAgICAgICAgIHRoaXMuY29sbGFwc2VMZWZ0Q29sSWZUb29OYXJyb3coKTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNvbGxhcHNlTGVmdENvbElmVG9vTmFycm93KCkge1xuICAgICAgICB0aGlzLnNob3dMZWZ0Q29sID0gdGhpcy5pbm5lcldpZHRoID49IDgwMDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBvblJlc2l6ZShldmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZVN1YmplY3QubmV4dCh3aW5kb3cuaW5uZXJXaWR0aCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxufVxuIl19
@@ -1,155 +0,0 @@
1
- import { Component, HostListener, Input } from '@angular/core';
2
- import { FileUploader } from 'ng2-file-upload';
3
- import { MatDialogRef } from '@angular/material/dialog';
4
- import { UploadService } from '../../services/upload.service';
5
- export class MediaUploadModalComponent {
6
- constructor(dialogRef, uploadService) {
7
- this.dialogRef = dialogRef;
8
- this.uploadService = uploadService;
9
- this.allowedMimeTypes = [
10
- 'image/jpeg',
11
- 'image/gif',
12
- 'image/png',
13
- 'image/jpg',
14
- 'video/mp4',
15
- 'video/webm',
16
- 'video/ogg',
17
- ];
18
- this.uploadUrlKey = 'path_to_file';
19
- this.uploading = false;
20
- }
21
- static getCookie(name) {
22
- const ca = document.cookie.split(';');
23
- const caLen = ca.length;
24
- const cookieName = `${name}=`;
25
- let c;
26
- for (let i = 0; i < caLen; i += 1) {
27
- c = ca[i].replace(/^\s+/g, '');
28
- if (c.indexOf(cookieName) === 0) {
29
- return c.substring(cookieName.length, c.length);
30
- }
31
- }
32
- return '';
33
- }
34
- pollForCompletion() {
35
- this.uploadService.get(this.uploadId).subscribe((response) => {
36
- if (response.processed) {
37
- this.imgLink = response[this.uploadUrlKey];
38
- this.mimeType = response.mime_type;
39
- clearInterval(this.poller);
40
- this.poller = null;
41
- this.uploading = false;
42
- }
43
- });
44
- }
45
- ngOnInit() {
46
- this.uploader = new FileUploader({
47
- url: UploadService.upload_endpoint,
48
- itemAlias: 'file',
49
- authToken: '',
50
- headers: [
51
- { name: 'X-CSRFToken', value: MediaUploadModalComponent.getCookie('csrftoken') },
52
- ],
53
- additionalParameter: { csrf_token: MediaUploadModalComponent.getCookie('csrftoken') },
54
- removeAfterUpload: true,
55
- allowedMimeType: this.allowedMimeTypes,
56
- });
57
- this.uploader.onCompleteItem = (item, response) => {
58
- const responseObj = JSON.parse(response);
59
- this.uploadId = responseObj.id;
60
- this.poller = setInterval(this.pollForCompletion.bind(this), 2000);
61
- };
62
- this.uploader.onWhenAddingFileFailed = (item, filter, options) => {
63
- this.error = 'This file is not a supported mimetype.';
64
- this.uploading = false;
65
- };
66
- if (this.file) {
67
- this.uploader.addToQueue([this.file]);
68
- this.uploader.uploadAll();
69
- this.uploading = true;
70
- }
71
- }
72
- onFileSelected(e) {
73
- this.uploader.uploadAll();
74
- this.uploading = true;
75
- }
76
- buildHost(url) {
77
- return location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '') + url;
78
- }
79
- close() {
80
- this.dialogRef.close();
81
- }
82
- ngOnDestroy() {
83
- if (this.socketSub) {
84
- this.socketSub.complete();
85
- this.socketSub = null;
86
- }
87
- }
88
- blobToFile(theBlob, fileName) {
89
- // A Blob() is almost a File() - it's just missing the two properties below which we will add
90
- theBlob.lastModifiedDate = new Date();
91
- theBlob.name = fileName;
92
- return theBlob;
93
- }
94
- onPaste(e) {
95
- if (e instanceof ClipboardEvent) {
96
- const files = e.clipboardData.files;
97
- if (files) {
98
- if (files.length < 1) {
99
- // const items = e.clipboardData.items;
100
- // for(let i = 0; i < items.length; i++) {
101
- // const item = items[i];
102
- // item.getAsString((text) => {
103
- // try {
104
- // const url = new URL(text);
105
- // if(url) {
106
- // fetch(text)
107
- // .then(res => res.blob()) // Gets the response and returns it as a blob
108
- // .then(blob => {
109
- // const file = this.blobToFile(blob, 'web-created')
110
- // this.uploader.addToQueue([file])
111
- // this.uploader.uploadAll();
112
- // this.uploading = true;
113
- // });
114
- // }
115
- // } catch(e) {
116
- //
117
- // }
118
- // });
119
- // }
120
- }
121
- else if (files.length > 1) {
122
- console.log('Multiple files detected');
123
- }
124
- else {
125
- for (let i = 0; i < files.length; i++) {
126
- this.uploader.addToQueue([files[i]]);
127
- }
128
- this.uploader.uploadAll();
129
- this.uploading = true;
130
- }
131
- }
132
- else {
133
- console.log('Stuff not working');
134
- }
135
- }
136
- }
137
- }
138
- MediaUploadModalComponent.decorators = [
139
- { type: Component, args: [{
140
- selector: 'app-media-upload-modal',
141
- template: "<h1 mat-dialog-title>Upload an Image</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 <div *ngIf=\"uploading\">\n <fa-icon [icon]=\"'spinner'\" [spin]=\"true\"></fa-icon>\n </div>\n <ng-container *ngIf=\"!imgLink && !uploading\">\n <h4>Select a File</h4>\n <div class=\"input-group\">\n <div class=\"form-group\">\n <!-- <label for=\"import_file\">Choose File</label>-->\n <input type=\"file\" id=\"import_file\"\n *ngIf=\"uploader.queue.length==0 && !uploading\"\n ng2FileSelect\n [uploader]=\"uploader\"\n (onFileSelected)=\"onFileSelected($event)\"\n >\n </div>\n </div>\n <br>\n <h3>Paste a File</h3>\n <p>You can use the paste command to paste any image here</p>\n </ng-container>\n <div *ngIf=\"imgLink\">\n <img *ngIf=\"imgLink\" [src]=\"imgLink\"/>\n </div>\n <div *ngIf=\"error\">\n <div class=\"alert alert-danger\">\n {{error}}\n </div>\n </div>\n</div>\n<div mat-dialog-actions>\n <button mat-button [disabled]=\"!imgLink || uploading\" (click)=\"close()\">Attach</button>\n</div>\n",
142
- styles: [""]
143
- },] }
144
- ];
145
- MediaUploadModalComponent.ctorParameters = () => [
146
- { type: MatDialogRef },
147
- { type: UploadService }
148
- ];
149
- MediaUploadModalComponent.propDecorators = {
150
- allowedMimeTypes: [{ type: Input }],
151
- uploadUrlKey: [{ type: Input }],
152
- file: [{ type: Input }],
153
- onPaste: [{ type: HostListener, args: ['document:paste', ['$event'],] }]
154
- };
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdXBsb2FkLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvYmphbWVzb24vRGV2ZWxvcG1lbnQvYmxvZy9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL21lZGlhLXVwbG9hZC1tb2RhbC9tZWRpYS11cGxvYWQtbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUd0RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFPNUQsTUFBTSxPQUFPLHlCQUF5QjtJQXdDbEMsWUFDVyxTQUFrRCxFQUNqRCxhQUE0QjtRQUQ3QixjQUFTLEdBQVQsU0FBUyxDQUF5QztRQUNqRCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXhDL0IscUJBQWdCLEdBQUc7WUFDaEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxXQUFXO1lBQ1gsV0FBVztZQUNYLFdBQVc7WUFDWCxZQUFZO1lBQ1osV0FBVztTQUN0QixDQUFDO1FBRU8saUJBQVksR0FBRyxjQUFjLENBQUM7UUFRdkMsY0FBUyxHQUFHLEtBQUssQ0FBQztJQXdCbEIsQ0FBQztJQW5CRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVk7UUFDekIsTUFBTSxFQUFFLEdBQWtCLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sS0FBSyxHQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDaEMsTUFBTSxVQUFVLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQztRQUM5QixJQUFJLENBQVMsQ0FBQztRQUVkLEtBQUssSUFB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REFBcUQ7b0JBQ3JELGlEQUFpRDtvQkFDakQsMEJBQTBCO29CQUMxQixnQkFBZ0I7b0JBQ2hCLHVCQUF1QjtvQkFDdkIsRUFBRTtvQkFDRixZQUFZO29CQUNaLFVBQVU7b0JBQ1YsSUFBSTtpQkFDUDtxQkFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7aUJBQzFDO3FCQUFNO29CQUNILEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO3dCQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3hDO29CQUNELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUN6QjthQUNKO2lCQUFNO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUNwQztTQUNKO0lBQ0wsQ0FBQzs7O1lBdEtKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyx3a0RBQWtEOzthQUVyRDs7O1lBVE8sWUFBWTtZQUdaLGFBQWE7OzsrQkFTaEIsS0FBSzsyQkFVTCxLQUFLO21CQVNMLEtBQUs7c0JBb0dMLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ZpbGVVcGxvYWRlcn0gZnJvbSAnbmcyLWZpbGUtdXBsb2FkJztcbmltcG9ydCB7TWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQge0RqYW5nb1Jlc3RGcmFtZXdvcmtFbmRwb2ludFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RqYW5nby1yZXN0LWZyYW1ld29yay1lbmRwb2ludC5zZXJ2aWNlJztcbmltcG9ydCB7VXBsb2FkU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1tZWRpYS11cGxvYWQtbW9kYWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZWRpYS11cGxvYWQtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21lZGlhLXVwbG9hZC1tb2RhbC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWVkaWFVcGxvYWRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIEBJbnB1dCgpIGFsbG93ZWRNaW1lVHlwZXMgPSBbXG4gICAgICAgICAgICAgICAgJ2ltYWdlL2pwZWcnLFxuICAgICAgICAgICAgICAgICdpbWFnZS9naWYnLFxuICAgICAgICAgICAgICAgICdpbWFnZS9wbmcnLFxuICAgICAgICAgICAgICAgICdpbWFnZS9qcGcnLFxuICAgICAgICAgICAgICAgICd2aWRlby9tcDQnLFxuICAgICAgICAgICAgICAgICd2aWRlby93ZWJtJyxcbiAgICAgICAgICAgICAgICAndmlkZW8vb2dnJyxcbiAgICBdO1xuXG4gICAgQElucHV0KCkgdXBsb2FkVXJsS2V5ID0gJ3BhdGhfdG9fZmlsZSc7XG5cbiAgICBpbWdMaW5rO1xuICAgIG1pbWVUeXBlO1xuICAgIHNvY2tldFN1YjtcbiAgICBlcnJvcjtcbiAgICBwdWJsaWMgdXBsb2FkZXI6IEZpbGVVcGxvYWRlcjtcbiAgICB1cGxvYWRJZDtcbiAgICB1cGxvYWRpbmcgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBmaWxlO1xuXG4gICAgcG9sbGVyO1xuXG4gICAgc3RhdGljIGdldENvb2tpZShuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgY2E6IEFycmF5PHN0cmluZz4gPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTtcbiAgICAgICAgY29uc3QgY2FMZW46IG51bWJlciA9IGNhLmxlbmd0aDtcbiAgICAgICAgY29uc3QgY29va2llTmFtZSA9IGAke25hbWV9PWA7XG4gICAgICAgIGxldCBjOiBzdHJpbmc7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYUxlbjsgaSArPSAxKSB7XG4gICAgICAgICAgICBjID0gY2FbaV0ucmVwbGFjZSgvXlxccysvZywgJycpO1xuICAgICAgICAgICAgaWYgKGMuaW5kZXhPZihjb29raWVOYW1lKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjLnN1YnN0cmluZyhjb29raWVOYW1lLmxlbmd0aCwgYy5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE1lZGlhVXBsb2FkTW9kYWxDb21wb25lbnQ+LFxuICAgICAgICBwcml2YXRlIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2VcbiAgICApIHtcbiAgICB9XG5cblxuICAgIHBvbGxGb3JDb21wbGV0aW9uKCkge1xuICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuZ2V0KHRoaXMudXBsb2FkSWQpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5wcm9jZXNzZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmltZ0xpbmsgPSByZXNwb25zZVt0aGlzLnVwbG9hZFVybEtleV07XG4gICAgICAgICAgICAgICAgdGhpcy5taW1lVHlwZSA9IHJlc3BvbnNlLm1pbWVfdHlwZTtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMucG9sbGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBvbGxlciA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgICAgICB0aGlzLnVwbG9hZGVyID0gbmV3IEZpbGVVcGxvYWRlcihcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB1cmw6IFVwbG9hZFNlcnZpY2UudXBsb2FkX2VuZHBvaW50LFxuICAgICAgICAgICAgICAgIGl0ZW1BbGlhczogJ2ZpbGUnLFxuICAgICAgICAgICAgICAgIGF1dGhUb2tlbjogJycsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7bmFtZTogJ1gtQ1NSRlRva2VuJywgdmFsdWU6IE1lZGlhVXBsb2FkTW9kYWxDb21wb25lbnQuZ2V0Q29va2llKCdjc3JmdG9rZW4nKX0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUGFyYW1ldGVyOiB7Y3NyZl90b2tlbjogTWVkaWFVcGxvYWRNb2RhbENvbXBvbmVudC5nZXRDb29raWUoJ2NzcmZ0b2tlbicpfSxcbiAgICAgICAgICAgICAgICByZW1vdmVBZnRlclVwbG9hZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhbGxvd2VkTWltZVR5cGU6IHRoaXMuYWxsb3dlZE1pbWVUeXBlcyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnVwbG9hZGVyLm9uQ29tcGxldGVJdGVtID0gKGl0ZW0sIHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZU9iaiA9IEpTT04ucGFyc2UocmVzcG9uc2UpO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRJZCA9IHJlc3BvbnNlT2JqLmlkO1xuICAgICAgICAgICAgdGhpcy5wb2xsZXIgPSBzZXRJbnRlcnZhbCh0aGlzLnBvbGxGb3JDb21wbGV0aW9uLmJpbmQodGhpcyksIDIwMDApO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMudXBsb2FkZXIub25XaGVuQWRkaW5nRmlsZUZhaWxlZCA9IChpdGVtLCBmaWx0ZXIsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSAnVGhpcyBmaWxlIGlzIG5vdCBhIHN1cHBvcnRlZCBtaW1ldHlwZS4nO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5maWxlKSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZGVyLmFkZFRvUXVldWUoW3RoaXMuZmlsZV0pO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRlci51cGxvYWRBbGwoKTtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRmlsZVNlbGVjdGVkKGUpIHtcbiAgICAgICAgdGhpcy51cGxvYWRlci51cGxvYWRBbGwoKTtcbiAgICAgICAgdGhpcy51cGxvYWRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIGJ1aWxkSG9zdCh1cmwpIHtcbiAgICAgICAgcmV0dXJuIGxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIGxvY2F0aW9uLmhvc3RuYW1lICsgKGxvY2F0aW9uLnBvcnQgPyAnOicgKyBsb2NhdGlvbi5wb3J0IDogJycpICsgdXJsO1xuICAgIH1cblxuICAgIGNsb3NlKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zb2NrZXRTdWIpIHtcbiAgICAgICAgICAgIHRoaXMuc29ja2V0U3ViLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB0aGlzLnNvY2tldFN1YiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBibG9iVG9GaWxlKHRoZUJsb2IsIGZpbGVOYW1lKSB7XG4gICAgICAgIC8vIEEgQmxvYigpIGlzIGFsbW9zdCBhIEZpbGUoKSAtIGl0J3MganVzdCBtaXNzaW5nIHRoZSB0d28gcHJvcGVydGllcyBiZWxvdyB3aGljaCB3ZSB3aWxsIGFkZFxuICAgICAgICB0aGVCbG9iLmxhc3RNb2RpZmllZERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB0aGVCbG9iLm5hbWUgPSBmaWxlTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoZUJsb2I7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6cGFzdGUnLCBbJyRldmVudCddKVxuICAgIG9uUGFzdGUoZSkge1xuICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIENsaXBib2FyZEV2ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlcyA9IGUuY2xpcGJvYXJkRGF0YS5maWxlcztcbiAgICAgICAgICAgIGlmIChmaWxlcykge1xuICAgICAgICAgICAgICAgIGlmIChmaWxlcy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IGl0ZW1zID0gZS5jbGlwYm9hcmREYXRhLml0ZW1zO1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3IobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIGl0ZW0uZ2V0QXNTdHJpbmcoKHRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHRleHQpO1xuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBpZih1cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgIGZldGNoKHRleHQpXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzID0+IHJlcy5ibG9iKCkpIC8vIEdldHMgdGhlIHJlc3BvbnNlIGFuZCByZXR1cm5zIGl0IGFzIGEgYmxvYlxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgIC50aGVuKGJsb2IgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gdGhpcy5ibG9iVG9GaWxlKGJsb2IsICd3ZWItY3JlYXRlZCcpXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZXIuYWRkVG9RdWV1ZShbZmlsZV0pXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZXIudXBsb2FkQWxsKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdNdWx0aXBsZSBmaWxlcyBkZXRlY3RlZCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZXIuYWRkVG9RdWV1ZShbZmlsZXNbaV1dKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVyLnVwbG9hZEFsbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnU3R1ZmYgbm90IHdvcmtpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,40 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { Entry } from '../../data/entry';
3
- import { EntryService } from '../../services/entry.service';
4
- export class OutlineViewComponent {
5
- constructor(entryService) {
6
- this.entryService = entryService;
7
- this.entry = new Entry();
8
- this.Math = Math;
9
- }
10
- ngOnInit() {
11
- this.entryService.currentlyEditedEntry.subscribe((entry) => {
12
- this.entry = entry;
13
- });
14
- }
15
- sectionDrop(e) {
16
- const entry = this.entry;
17
- const diff = e.currentIndex - e.previousIndex;
18
- entry.sections[e.previousIndex].order = e.currentIndex * 10 + (diff > 0 ? 1 : -1);
19
- entry.sort();
20
- this.entryService.currentlyEditedEntry.next(this.entry);
21
- }
22
- contentDrop(e, section) {
23
- const entry = this.entry;
24
- const diff = e.currentIndex - e.previousIndex;
25
- section.contents[e.previousIndex].order = e.currentIndex * 10 + (diff > 0 ? 1 : -1);
26
- entry.sort();
27
- this.entryService.currentlyEditedEntry.next(this.entry);
28
- }
29
- }
30
- OutlineViewComponent.decorators = [
31
- { type: Component, args: [{
32
- selector: 'app-outline-view',
33
- template: "<div class=\"section outline\">\n <h1 *ngIf=\"entry?.sections?.length === 0\">Outline View</h1>\n <div cdkDropList class=\"sections\" (cdkDropListDropped)=\"sectionDrop($event)\">\n <mat-card class=\"card\" cdkDrag *ngFor=\"let section of entry.sections\">\n <h3>Section {{Math.ceil(section.order / 10) + 1}}</h3>\n {{section.subheading}}\n <div cdkDropList class=\"contents\" (cdkDropListDropped)=\"contentDrop($event, section)\">\n <h3>Contents for {{section.subheading}}</h3>\n <div class=\"content-card\" *ngFor=\"let content of section.contents\" cdkDrag>\n <div class=\"content\">{{content.value}}</div>\n <div class=\"content-placeholder\" *cdkDragPlaceholder></div>\n </div>\n </div>\n </mat-card>\n <div class=\"custom-placeholder\" *cdkDragPlaceholder></div>\n </div>\n</div>\n",
34
- styles: [".outline{padding:0 20px}.content{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card,.content-card{cursor:pointer;margin:4px}.content-card:not(:last-child){border-bottom:1px dotted #aaa}.custom-placeholder{min-height:60px}.content-placeholder,.custom-placeholder{background:#ccc;border:3px dotted #999;transition:transform .25s cubic-bezier(0,0,.2,1)}.content-placeholder{min-height:30px}"]
35
- },] }
36
- ];
37
- OutlineViewComponent.ctorParameters = () => [
38
- { type: EntryService }
39
- ];
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0bGluZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvYmphbWVzb24vRGV2ZWxvcG1lbnQvYmxvZy9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL291dGxpbmUtdmlldy9vdXRsaW5lLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRXZELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFPMUQsTUFBTSxPQUFPLG9CQUFvQjtJQUs3QixZQUNZLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBSnRDLFVBQUssR0FBVSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzNCLFNBQUksR0FBRyxJQUFJLENBQUM7SUFLWixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVyxDQUFDLENBQUM7UUFDVCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUM5QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLFlBQVksR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEYsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBQyxFQUFFLE9BQU87UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDOUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDOzs7WUFuQ0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLDQ3QkFBNEM7O2FBRS9DOzs7WUFOTyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0VudHJ5fSBmcm9tICcuLi8uLi9kYXRhL2VudHJ5JztcbmltcG9ydCB7RW50cnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbnRyeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtb3V0bGluZS12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vb3V0bGluZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9vdXRsaW5lLXZpZXcuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPdXRsaW5lVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBlbnRyeTogRW50cnkgPSBuZXcgRW50cnkoKTtcbiAgICBNYXRoID0gTWF0aDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVudHJ5U2VydmljZTogRW50cnlTZXJ2aWNlXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZW50cnlTZXJ2aWNlLmN1cnJlbnRseUVkaXRlZEVudHJ5LnN1YnNjcmliZSgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW50cnkgPSBlbnRyeTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2VjdGlvbkRyb3AoZSkge1xuICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZW50cnk7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBlLmN1cnJlbnRJbmRleCAtIGUucHJldmlvdXNJbmRleDtcbiAgICAgICAgZW50cnkuc2VjdGlvbnNbZS5wcmV2aW91c0luZGV4XS5vcmRlciA9IGUuY3VycmVudEluZGV4ICogMTAgKyAoZGlmZiA+IDAgPyAxIDogLTEpO1xuICAgICAgICBlbnRyeS5zb3J0KCk7XG4gICAgICAgIHRoaXMuZW50cnlTZXJ2aWNlLmN1cnJlbnRseUVkaXRlZEVudHJ5Lm5leHQodGhpcy5lbnRyeSk7XG4gICAgfVxuXG4gICAgY29udGVudERyb3AoZSwgc2VjdGlvbikge1xuICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZW50cnk7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBlLmN1cnJlbnRJbmRleCAtIGUucHJldmlvdXNJbmRleDtcbiAgICAgICAgc2VjdGlvbi5jb250ZW50c1tlLnByZXZpb3VzSW5kZXhdLm9yZGVyID0gZS5jdXJyZW50SW5kZXggKiAxMCArIChkaWZmID4gMCA/IDEgOiAtMSk7XG4gICAgICAgIGVudHJ5LnNvcnQoKTtcbiAgICAgICAgdGhpcy5lbnRyeVNlcnZpY2UuY3VycmVudGx5RWRpdGVkRW50cnkubmV4dCh0aGlzLmVudHJ5KTtcbiAgICB9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export class SchedulePublishDialogData {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtcHVibGlzaC1kaWFsb2ctZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvYmphbWVzb24vRGV2ZWxvcG1lbnQvYmxvZy9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NjaGVkdWxlLXB1Ymxpc2gtZGlhbG9nL3NjaGVkdWxlLXB1Ymxpc2gtZGlhbG9nLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHlCQUF5QjtDQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTY2hlZHVsZVB1Ymxpc2hEaWFsb2dEYXRhIHtcbn1cbiJdfQ==
@@ -1,28 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import { SchedulePublishDialogData } from './schedule-publish-dialog-data';
4
- export class SchedulePublishDialogComponent {
5
- constructor(dialogRef, data) {
6
- this.dialogRef = dialogRef;
7
- this.data = data;
8
- }
9
- ngOnInit() {
10
- }
11
- onNoClick() {
12
- }
13
- onYesClick() {
14
- this.dialogRef.close('test');
15
- }
16
- }
17
- SchedulePublishDialogComponent.decorators = [
18
- { type: Component, args: [{
19
- selector: 'lib-schedule-publish-dialog',
20
- template: "<h1 mat-dialog-title>Select a Date and Time to Schedule This Post</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<p>Date</p>\n<mat-form-field appearance=\"fill\">\n <mat-label>Choose a date</mat-label>\n <input matInput [matDatepicker]=\"picker\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n<p>Time</p>\n<input [ngxTimepicker]=\"timepicker\" readonly>\n<ngx-material-timepicker #timepicker></ngx-material-timepicker>\n<div mat-dialog-actions>\n <button mat-button (click)=\"onNoClick()\">Cancel</button>\n <button mat-button (click)=\"onYesClick()\" cdkFocusInitial>Schedule Publish</button>\n</div>\n",
21
- styles: [""]
22
- },] }
23
- ];
24
- SchedulePublishDialogComponent.ctorParameters = () => [
25
- { type: MatDialogRef },
26
- { type: SchedulePublishDialogData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
27
- ];
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtcHVibGlzaC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9iamFtZXNvbi9EZXZlbG9wbWVudC9ibG9nL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2NoZWR1bGUtcHVibGlzaC1kaWFsb2cvc2NoZWR1bGUtcHVibGlzaC1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBQyxZQUFZLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFPekUsTUFBTSxPQUFPLDhCQUE4QjtJQUV2QyxZQUNXLFNBQXVELEVBQzlCLElBQStCO1FBRHhELGNBQVMsR0FBVCxTQUFTLENBQThDO1FBQzlCLFNBQUksR0FBSixJQUFJLENBQTJCO0lBQy9ELENBQUM7SUFFTCxRQUFRO0lBQ1IsQ0FBQztJQUVELFNBQVM7SUFDVCxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OztZQXBCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDZCQUE2QjtnQkFDdkMsaThCQUF1RDs7YUFFMUQ7OztZQVBPLFlBQVk7WUFDWix5QkFBeUIsdUJBV3hCLE1BQU0sU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7U2NoZWR1bGVQdWJsaXNoRGlhbG9nRGF0YX0gZnJvbSAnLi9zY2hlZHVsZS1wdWJsaXNoLWRpYWxvZy1kYXRhJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItc2NoZWR1bGUtcHVibGlzaC1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zY2hlZHVsZS1wdWJsaXNoLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2NoZWR1bGUtcHVibGlzaC1kaWFsb2cuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNjaGVkdWxlUHVibGlzaERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNjaGVkdWxlUHVibGlzaERpYWxvZ0NvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogU2NoZWR1bGVQdWJsaXNoRGlhbG9nRGF0YSxcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgfVxuXG4gICAgb25Ob0NsaWNrKCk6IHZvaWQge1xuICAgIH1cblxuICAgIG9uWWVzQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCd0ZXN0Jyk7XG4gICAgfVxufVxuIl19