@jeraldj/discussions-ui 8.0.3-v16

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 (174) hide show
  1. package/README.md +24 -0
  2. package/assets/images/Buffer-512.webp +0 -0
  3. package/assets/images/announcement.svg +25 -0
  4. package/assets/images/back-img.png +0 -0
  5. package/assets/images/bookmarks.png +0 -0
  6. package/assets/images/card-icon.png +0 -0
  7. package/assets/images/close.png +0 -0
  8. package/assets/images/delete.svg +13 -0
  9. package/assets/images/down-arrow.png +0 -0
  10. package/assets/images/down-chevron.png +0 -0
  11. package/assets/images/down.svg +12 -0
  12. package/assets/images/edit.svg +11 -0
  13. package/assets/images/empty.svg +37 -0
  14. package/assets/images/eye-icon.png +0 -0
  15. package/assets/images/general discussion.svg +15 -0
  16. package/assets/images/import-export-arrows.png +0 -0
  17. package/assets/images/loader-icon.svg +6 -0
  18. package/assets/images/profits.png +0 -0
  19. package/assets/images/search-icon.png +0 -0
  20. package/assets/images/select-bookmarks.png +0 -0
  21. package/assets/images/select-down-arrow.png +0 -0
  22. package/assets/images/select-profits.png +0 -0
  23. package/assets/images/select-up-arrow.png +0 -0
  24. package/assets/images/up-arrow.png +0 -0
  25. package/assets/images/up-chevron.png +0 -0
  26. package/assets/images/up.svg +12 -0
  27. package/assets/images/views.svg +9 -0
  28. package/assets/images/votes.svg +14 -0
  29. package/assets/styles/global.scss +283 -0
  30. package/esm2022/jeraldj-discussions-ui.mjs +5 -0
  31. package/esm2022/lib/common/constants.json +630 -0
  32. package/esm2022/lib/components/components.module.mjs +105 -0
  33. package/esm2022/lib/components/discuss-all/discuss-all.component.mjs +269 -0
  34. package/esm2022/lib/components/discuss-category/discuss-category.component.mjs +152 -0
  35. package/esm2022/lib/components/discuss-home/discuss-home.component.mjs +142 -0
  36. package/esm2022/lib/components/discuss-start/discuss-start.component.mjs +199 -0
  37. package/esm2022/lib/components/discuss-tags/discuss-tags.component.mjs +93 -0
  38. package/esm2022/lib/components/discussion-details/discussion-details.component.mjs +459 -0
  39. package/esm2022/lib/components/lib-entry/lib-entry.component.mjs +96 -0
  40. package/esm2022/lib/components/my-discussion/my-discussion.component.mjs +234 -0
  41. package/esm2022/lib/components/side-pannel/side-pannel.component.mjs +79 -0
  42. package/esm2022/lib/components/tag-all-discussion/tag-all-discussion.component.mjs +151 -0
  43. package/esm2022/lib/components/trending-tags/trending-tags.component.mjs +62 -0
  44. package/esm2022/lib/config/url.config.mjs +32 -0
  45. package/esm2022/lib/discussion-events.service.mjs +27 -0
  46. package/esm2022/lib/discussion-routing/discussion-routing.module.mjs +80 -0
  47. package/esm2022/lib/discussion-ui.module.mjs +41 -0
  48. package/esm2022/lib/elements/app-loader/app-loader.component.mjs +36 -0
  49. package/esm2022/lib/elements/avatar-photo/avatar-photo.component.mjs +81 -0
  50. package/esm2022/lib/elements/category-card/category-card.component.mjs +17 -0
  51. package/esm2022/lib/elements/discuss-card/discuss-card.component.mjs +45 -0
  52. package/esm2022/lib/elements/elements.module.mjs +69 -0
  53. package/esm2022/lib/elements/load-alert/load-alert.component.mjs +34 -0
  54. package/esm2022/lib/elements/post-reply/post-reply.component.mjs +69 -0
  55. package/esm2022/lib/elements/related-discussion/related-discussion.component.mjs +61 -0
  56. package/esm2022/lib/elements/sliders/sliders.component.mjs +76 -0
  57. package/esm2022/lib/events.service.mjs +31 -0
  58. package/esm2022/lib/models/discuss.model.mjs +16 -0
  59. package/esm2022/lib/models/discussion-config.model.mjs +2 -0
  60. package/esm2022/lib/navigation-service.service.mjs +39 -0
  61. package/esm2022/lib/pipes/pipe-filter/pipe-filter.pipe.mjs +20 -0
  62. package/esm2022/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.mjs +22 -0
  63. package/esm2022/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.mjs +41 -0
  64. package/esm2022/lib/pipes/pipes.module.mjs +24 -0
  65. package/esm2022/lib/pipes/sort-by/sort-by.pipe.mjs +34 -0
  66. package/esm2022/lib/pipes/split-initials/split-initials.pipe.mjs +23 -0
  67. package/esm2022/lib/router-service.service.mjs +21 -0
  68. package/esm2022/lib/services/abstract-config.service.mjs +3 -0
  69. package/esm2022/lib/services/config.service.mjs +76 -0
  70. package/esm2022/lib/services/discuss-utils.service.mjs +36 -0
  71. package/esm2022/lib/services/discussion.service.mjs +254 -0
  72. package/esm2022/lib/telemetry-utils.service.mjs +103 -0
  73. package/esm2022/lib/wrapper/base-wrapper/base-wrapper.component.mjs +41 -0
  74. package/esm2022/lib/wrapper/category-widget/category-widget.component.mjs +37 -0
  75. package/esm2022/lib/wrapper/tags-widget/tags-widget.component.mjs +33 -0
  76. package/esm2022/lib/wrapper-navigate.service.mjs +23 -0
  77. package/esm2022/public-api.mjs +29 -0
  78. package/fesm2022/jeraldj-discussions-ui.mjs +3929 -0
  79. package/fesm2022/jeraldj-discussions-ui.mjs.map +1 -0
  80. package/index.d.ts +6 -0
  81. package/jeraldj-discussions-ui.d.ts.map +1 -0
  82. package/lib/components/components.module.d.ts +24 -0
  83. package/lib/components/components.module.d.ts.map +1 -0
  84. package/lib/components/discuss-all/discuss-all.component.d.ts +61 -0
  85. package/lib/components/discuss-all/discuss-all.component.d.ts.map +1 -0
  86. package/lib/components/discuss-category/discuss-category.component.d.ts +45 -0
  87. package/lib/components/discuss-category/discuss-category.component.d.ts.map +1 -0
  88. package/lib/components/discuss-home/discuss-home.component.d.ts +59 -0
  89. package/lib/components/discuss-home/discuss-home.component.d.ts.map +1 -0
  90. package/lib/components/discuss-start/discuss-start.component.d.ts +50 -0
  91. package/lib/components/discuss-start/discuss-start.component.d.ts.map +1 -0
  92. package/lib/components/discuss-tags/discuss-tags.component.d.ts +41 -0
  93. package/lib/components/discuss-tags/discuss-tags.component.d.ts.map +1 -0
  94. package/lib/components/discussion-details/discussion-details.component.d.ts +112 -0
  95. package/lib/components/discussion-details/discussion-details.component.d.ts.map +1 -0
  96. package/lib/components/lib-entry/lib-entry.component.d.ts +42 -0
  97. package/lib/components/lib-entry/lib-entry.component.d.ts.map +1 -0
  98. package/lib/components/my-discussion/my-discussion.component.d.ts +54 -0
  99. package/lib/components/my-discussion/my-discussion.component.d.ts.map +1 -0
  100. package/lib/components/side-pannel/side-pannel.component.d.ts +34 -0
  101. package/lib/components/side-pannel/side-pannel.component.d.ts.map +1 -0
  102. package/lib/components/tag-all-discussion/tag-all-discussion.component.d.ts +53 -0
  103. package/lib/components/tag-all-discussion/tag-all-discussion.component.d.ts.map +1 -0
  104. package/lib/components/trending-tags/trending-tags.component.d.ts +26 -0
  105. package/lib/components/trending-tags/trending-tags.component.d.ts.map +1 -0
  106. package/lib/config/url.config.d.ts +29 -0
  107. package/lib/config/url.config.d.ts.map +1 -0
  108. package/lib/discussion-events.service.d.ts +12 -0
  109. package/lib/discussion-events.service.d.ts.map +1 -0
  110. package/lib/discussion-routing/discussion-routing.module.d.ts +9 -0
  111. package/lib/discussion-routing/discussion-routing.module.d.ts.map +1 -0
  112. package/lib/discussion-ui.module.d.ts +16 -0
  113. package/lib/discussion-ui.module.d.ts.map +1 -0
  114. package/lib/elements/app-loader/app-loader.component.d.ts +17 -0
  115. package/lib/elements/app-loader/app-loader.component.d.ts.map +1 -0
  116. package/lib/elements/avatar-photo/avatar-photo.component.d.ts +19 -0
  117. package/lib/elements/avatar-photo/avatar-photo.component.d.ts.map +1 -0
  118. package/lib/elements/category-card/category-card.component.d.ts +10 -0
  119. package/lib/elements/category-card/category-card.component.d.ts.map +1 -0
  120. package/lib/elements/discuss-card/discuss-card.component.d.ts +17 -0
  121. package/lib/elements/discuss-card/discuss-card.component.d.ts.map +1 -0
  122. package/lib/elements/elements.module.d.ts +18 -0
  123. package/lib/elements/elements.module.d.ts.map +1 -0
  124. package/lib/elements/load-alert/load-alert.component.d.ts +15 -0
  125. package/lib/elements/load-alert/load-alert.component.d.ts.map +1 -0
  126. package/lib/elements/post-reply/post-reply.component.d.ts +22 -0
  127. package/lib/elements/post-reply/post-reply.component.d.ts.map +1 -0
  128. package/lib/elements/related-discussion/related-discussion.component.d.ts +26 -0
  129. package/lib/elements/related-discussion/related-discussion.component.d.ts.map +1 -0
  130. package/lib/elements/sliders/sliders.component.d.ts +18 -0
  131. package/lib/elements/sliders/sliders.component.d.ts.map +1 -0
  132. package/lib/events.service.d.ts +18 -0
  133. package/lib/events.service.d.ts.map +1 -0
  134. package/lib/models/discuss.model.d.ts +298 -0
  135. package/lib/models/discuss.model.d.ts.map +1 -0
  136. package/lib/models/discussion-config.model.d.ts +42 -0
  137. package/lib/models/discussion-config.model.d.ts.map +1 -0
  138. package/lib/navigation-service.service.d.ts +22 -0
  139. package/lib/navigation-service.service.d.ts.map +1 -0
  140. package/lib/pipes/pipe-filter/pipe-filter.pipe.d.ts +8 -0
  141. package/lib/pipes/pipe-filter/pipe-filter.pipe.d.ts.map +1 -0
  142. package/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.d.ts +8 -0
  143. package/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.d.ts.map +1 -0
  144. package/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.d.ts +8 -0
  145. package/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.d.ts.map +1 -0
  146. package/lib/pipes/pipes.module.d.ts +13 -0
  147. package/lib/pipes/pipes.module.d.ts.map +1 -0
  148. package/lib/pipes/sort-by/sort-by.pipe.d.ts +8 -0
  149. package/lib/pipes/sort-by/sort-by.pipe.d.ts.map +1 -0
  150. package/lib/pipes/split-initials/split-initials.pipe.d.ts +8 -0
  151. package/lib/pipes/split-initials/split-initials.pipe.d.ts.map +1 -0
  152. package/lib/router-service.service.d.ts +10 -0
  153. package/lib/router-service.service.d.ts.map +1 -0
  154. package/lib/services/abstract-config.service.d.ts +4 -0
  155. package/lib/services/abstract-config.service.d.ts.map +1 -0
  156. package/lib/services/config.service.d.ts +36 -0
  157. package/lib/services/config.service.d.ts.map +1 -0
  158. package/lib/services/discuss-utils.service.d.ts +14 -0
  159. package/lib/services/discuss-utils.service.d.ts.map +1 -0
  160. package/lib/services/discussion.service.d.ts +76 -0
  161. package/lib/services/discussion.service.d.ts.map +1 -0
  162. package/lib/telemetry-utils.service.d.ts +20 -0
  163. package/lib/telemetry-utils.service.d.ts.map +1 -0
  164. package/lib/wrapper/base-wrapper/base-wrapper.component.d.ts +22 -0
  165. package/lib/wrapper/base-wrapper/base-wrapper.component.d.ts.map +1 -0
  166. package/lib/wrapper/category-widget/category-widget.component.d.ts +23 -0
  167. package/lib/wrapper/category-widget/category-widget.component.d.ts.map +1 -0
  168. package/lib/wrapper/tags-widget/tags-widget.component.d.ts +17 -0
  169. package/lib/wrapper/tags-widget/tags-widget.component.d.ts.map +1 -0
  170. package/lib/wrapper-navigate.service.d.ts +11 -0
  171. package/lib/wrapper-navigate.service.d.ts.map +1 -0
  172. package/package.json +44 -0
  173. package/public-api.d.ts +26 -0
  174. package/public-api.d.ts.map +1 -0
@@ -0,0 +1,81 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class AvatarPhotoComponent {
5
+ constructor() {
6
+ this.size = '';
7
+ this.randomColor = false;
8
+ this.showInitials = false;
9
+ this.random = Math.random().toString(36).slice(2);
10
+ // public initials!: string
11
+ this.colors = [
12
+ // '#EB7181', // red
13
+ '#306933', // green
14
+ // '#000000', // black
15
+ // '#3670B2', // blue
16
+ // '#4E9E87',
17
+ // '#7E4C8D',
18
+ ];
19
+ this.randomcolors = [
20
+ '#EB7181',
21
+ '#006400',
22
+ '#000000',
23
+ '#3670B2',
24
+ '#4E9E87',
25
+ '#7E4C8D',
26
+ ];
27
+ }
28
+ ngOnInit() {
29
+ if (!this.photoUrl) {
30
+ this.showInitials = true;
31
+ if (!this.initials) {
32
+ this.createInititals();
33
+ }
34
+ const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));
35
+ this.circleColor = this.colors[randomIndex];
36
+ if (this.randomColor) {
37
+ const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomcolors.length));
38
+ this.circleColor = this.randomcolors[randomIndex1];
39
+ }
40
+ }
41
+ }
42
+ createInititals() {
43
+ let initials = '';
44
+ const array = `${this.name} `.toString().split(' ');
45
+ if (array[0] !== 'undefined' && typeof array[1] !== 'undefined') {
46
+ initials += array[0].charAt(0);
47
+ initials += array[1].charAt(0);
48
+ }
49
+ else {
50
+ for (let i = 0; i < this.name.length; i += 1) {
51
+ if (this.name.charAt(i) === ' ') {
52
+ continue;
53
+ }
54
+ if (this.name.charAt(i) === this.name.charAt(i)) {
55
+ initials += this.name.charAt(i);
56
+ if (initials.length === 2) {
57
+ break;
58
+ }
59
+ }
60
+ }
61
+ }
62
+ this.initials = initials.toUpperCase();
63
+ }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarPhotoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AvatarPhotoComponent, selector: "lib-avatar-photo", inputs: { photoUrl: "photoUrl", name: "name", size: "size", randomColor: "randomColor", initials: "initials" }, ngImport: i0, template: "<div [ngClass]=\"{'circle-s' : size=== 's',\n'circle-m' : size=== 'm',\n'circle-l' : size=== 'l',\n'circle-xl' : size=== 'xl',\n'circle-xxl' : size=== 'xxl',\n'circle-xl-s' : size=== 'xl-s',\n'circle-xxl-s': size=== 'xxl-s'}\" [ngStyle]=\"{'background-color': circleColor }\">\n <img *ngIf=\"!showInitials\" src=\"{{photoUrl}}\" [alt]=\"photoUrl? '' :(name || initials || size || random)\">\n\n <div *ngIf=\"showInitials\" class=\"initials\" i18n-aria-label>\n {{ initials }}\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
66
+ }
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarPhotoComponent, decorators: [{
68
+ type: Component,
69
+ args: [{ selector: 'lib-avatar-photo', template: "<div [ngClass]=\"{'circle-s' : size=== 's',\n'circle-m' : size=== 'm',\n'circle-l' : size=== 'l',\n'circle-xl' : size=== 'xl',\n'circle-xxl' : size=== 'xxl',\n'circle-xl-s' : size=== 'xl-s',\n'circle-xxl-s': size=== 'xxl-s'}\" [ngStyle]=\"{'background-color': circleColor }\">\n <img *ngIf=\"!showInitials\" src=\"{{photoUrl}}\" [alt]=\"photoUrl? '' :(name || initials || size || random)\">\n\n <div *ngIf=\"showInitials\" class=\"initials\" i18n-aria-label>\n {{ initials }}\n </div>\n</div>" }]
70
+ }], propDecorators: { photoUrl: [{
71
+ type: Input
72
+ }], name: [{
73
+ type: Input
74
+ }], size: [{
75
+ type: Input
76
+ }], randomColor: [{
77
+ type: Input
78
+ }], initials: [{
79
+ type: Input
80
+ }] } });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLXBob3RvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rpc2N1c3Npb24tdWkvc3JjL2xpYi9lbGVtZW50cy9hdmF0YXItcGhvdG8vYXZhdGFyLXBob3RvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rpc2N1c3Npb24tdWkvc3JjL2xpYi9lbGVtZW50cy9hdmF0YXItcGhvdG8vYXZhdGFyLXBob3RvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPekQsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVNXLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUV0QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUU1QixXQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFN0MsMkJBQTJCO1FBRW5CLFdBQU0sR0FBRztZQUNmLG9CQUFvQjtZQUNwQixTQUFTLEVBQUUsUUFBUTtZQUNuQixzQkFBc0I7WUFDdEIscUJBQXFCO1lBQ3JCLGFBQWE7WUFDYixhQUFhO1NBQ2QsQ0FBQztRQUVNLGlCQUFZLEdBQUc7WUFDckIsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1NBQ1YsQ0FBQztLQXlDSDtJQXZDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN4QjtZQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM1QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN0RixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDcEQ7U0FDRjtJQUVILENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLEtBQUssR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEQsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxJQUFJLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsRUFBRTtZQUMvRCxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoQzthQUFNO1lBQ0wsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzVDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO29CQUMvQixTQUFTO2lCQUNWO2dCQUVELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQy9DLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFaEMsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTt3QkFDekIsTUFBTTtxQkFDUDtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QyxDQUFDOytHQXJFVSxvQkFBb0I7bUdBQXBCLG9CQUFvQix3S0NQakMscWZBWU07OzRGRExPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7OEJBTW5CLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWF2YXRhci1waG90bycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXItcGhvdG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdmF0YXItcGhvdG8uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhclBob3RvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBwaG90b1VybCE6IHN0cmluZztcbiAgQElucHV0KCkgbmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZSA9ICcnO1xuICBASW5wdXQoKSByYW5kb21Db2xvciA9IGZhbHNlO1xuICBASW5wdXQoKSBpbml0aWFscz86IHN0cmluZztcbiAgcHVibGljIHNob3dJbml0aWFscyA9IGZhbHNlO1xuICBwdWJsaWMgY2lyY2xlQ29sb3IhOiBzdHJpbmc7XG4gIHJhbmRvbSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO1xuXG4gIC8vIHB1YmxpYyBpbml0aWFscyE6IHN0cmluZ1xuXG4gIHByaXZhdGUgY29sb3JzID0gW1xuICAgIC8vICcjRUI3MTgxJywgLy8gcmVkXG4gICAgJyMzMDY5MzMnLCAvLyBncmVlblxuICAgIC8vICcjMDAwMDAwJywgLy8gYmxhY2tcbiAgICAvLyAnIzM2NzBCMicsIC8vIGJsdWVcbiAgICAvLyAnIzRFOUU4NycsXG4gICAgLy8gJyM3RTRDOEQnLFxuICBdO1xuXG4gIHByaXZhdGUgcmFuZG9tY29sb3JzID0gW1xuICAgICcjRUI3MTgxJywgLy8gcmVkXG4gICAgJyMwMDY0MDAnLCAvLyBncmVlblxuICAgICcjMDAwMDAwJywgLy8gYmxhY2tcbiAgICAnIzM2NzBCMicsIC8vIGJsdWVcbiAgICAnIzRFOUU4NycsXG4gICAgJyM3RTRDOEQnLFxuICBdO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5waG90b1VybCkge1xuICAgICAgdGhpcy5zaG93SW5pdGlhbHMgPSB0cnVlO1xuICAgICAgaWYgKCF0aGlzLmluaXRpYWxzKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlSW5pdGl0YWxzKCk7XG4gICAgICB9XG4gICAgICBjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IodGhpcy5jb2xvcnMubGVuZ3RoKSk7XG4gICAgICB0aGlzLmNpcmNsZUNvbG9yID0gdGhpcy5jb2xvcnNbcmFuZG9tSW5kZXhdO1xuICAgICAgaWYgKHRoaXMucmFuZG9tQ29sb3IpIHtcbiAgICAgICAgY29uc3QgcmFuZG9tSW5kZXgxID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcih0aGlzLnJhbmRvbWNvbG9ycy5sZW5ndGgpKTtcbiAgICAgICAgdGhpcy5jaXJjbGVDb2xvciA9IHRoaXMucmFuZG9tY29sb3JzW3JhbmRvbUluZGV4MV07XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUluaXRpdGFscygpOiB2b2lkIHtcbiAgICBsZXQgaW5pdGlhbHMgPSAnJztcbiAgICBjb25zdCBhcnJheSA9IGAke3RoaXMubmFtZX0gYC50b1N0cmluZygpLnNwbGl0KCcgJyk7XG4gICAgaWYgKGFycmF5WzBdICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgYXJyYXlbMV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBpbml0aWFscyArPSBhcnJheVswXS5jaGFyQXQoMCk7XG4gICAgICBpbml0aWFscyArPSBhcnJheVsxXS5jaGFyQXQoMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5uYW1lLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGlmICh0aGlzLm5hbWUuY2hhckF0KGkpID09PSAnICcpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hbWUuY2hhckF0KGkpID09PSB0aGlzLm5hbWUuY2hhckF0KGkpKSB7XG4gICAgICAgICAgaW5pdGlhbHMgKz0gdGhpcy5uYW1lLmNoYXJBdChpKTtcblxuICAgICAgICAgIGlmIChpbml0aWFscy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmluaXRpYWxzID0gaW5pdGlhbHMudG9VcHBlckNhc2UoKTtcbiAgfVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJ7J2NpcmNsZS1zJyA6IHNpemU9PT0gJ3MnLFxuJ2NpcmNsZS1tJyA6IHNpemU9PT0gJ20nLFxuJ2NpcmNsZS1sJyA6IHNpemU9PT0gJ2wnLFxuJ2NpcmNsZS14bCcgOiBzaXplPT09ICd4bCcsXG4nY2lyY2xlLXh4bCcgOiBzaXplPT09ICd4eGwnLFxuJ2NpcmNsZS14bC1zJyA6IHNpemU9PT0gJ3hsLXMnLFxuJ2NpcmNsZS14eGwtcyc6IHNpemU9PT0gJ3h4bC1zJ31cIiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiAgY2lyY2xlQ29sb3IgfVwiPlxuICA8aW1nICpuZ0lmPVwiIXNob3dJbml0aWFsc1wiIHNyYz1cInt7cGhvdG9Vcmx9fVwiIFthbHRdPVwicGhvdG9Vcmw/ICcnIDoobmFtZSB8fCBpbml0aWFscyB8fCBzaXplIHx8IHJhbmRvbSlcIj5cblxuICA8ZGl2ICpuZ0lmPVwic2hvd0luaXRpYWxzXCIgY2xhc3M9XCJpbml0aWFsc1wiIGkxOG4tYXJpYS1sYWJlbD5cbiAgICB7eyBpbml0aWFscyB9fVxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class CategoryCardComponent {
4
+ constructor() { }
5
+ ngOnInit() {
6
+ console.log(this.category);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CategoryCardComponent, selector: "lib-category-card", inputs: { category: "category" }, ngImport: i0, template: "<div class=\"category-card\" tabindex=\"0\" role=\"link\">\n <div class=\"category-card-header\">\n <div class=\"category-card-header-image\">\n <img src=\"./assets/discussion-ui/images/Buffer-512.webp\" alt=\"category card icon\" class=\"category-card-img\">\n </div>\n <div class=\"category-card-header-label\" [innerHTML]=\"category.name\"></div>\n </div>\n <p class=\"category-card-header-text\">{{category.description}}</p>\n <div class=\"category-card-main\">\n <div class=\"category-card-main-content\">\n <div class=\"discussion-label\">{{category.totalTopicCount}} Discussions</div>\n <div class=\"post-label\">{{category.totalPostCount}} Posts</div>\n </div>\n <div><img src=\"./assets/discussion-ui/images/eye-icon.png\" class=\"eye-icon\" alt=\"eye icon\">\n </div>\n </div>\n</div>", styles: ["::ng-deep:root{--df-category-card-label: var(--df-text);--df-category-card-text: var(--df-text)}.category-card{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background:var(--df-card-bg);color:var(--df-text);transition:box-shadow .28s cubic-bezier(.4,0,.2,1);display:block;position:relative;border-radius:.25rem;height:11rem;width:auto;padding:1rem;cursor:pointer}.category-card .category-card-header{display:flex;flex-direction:row;align-items:center}.category-card .category-card-header .category-card-header-image{border:.0625rem solid var(--red-0);border-radius:50%;max-width:3.125rem;width:100%;height:3.125rem;position:relative}.category-card .category-card-header .category-card-header-image .category-card-img{position:absolute;top:.5rem;left:.5rem;width:2rem;height:2rem}.category-card .category-card-header .category-card-header-label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;color:var(--df-category-card-label);word-break:break-word;margin:0 .5rem;font-weight:700}.category-card .category-card-header-text{color:var(--df-category-card-text);-webkit-box-orient:vertical;display:-webkit-box;-webkit-line-clamp:3;overflow:hidden;text-overflow:ellipsis;word-break:break-all;padding:.5rem 0;font-size:.875rem}.category-card .category-card-main{display:flex;justify-content:space-between;align-items:center;color:var(--df-category-card-text);margin:.5rem 0;font-size:.875rem;font-weight:700}.category-card .category-card-main .category-card-main-content{display:flex}.category-card .category-card-main .post-label{margin:0 1rem}.category-card .category-card-main .eye-icon{width:1.4rem;height:1.4rem}\n"] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryCardComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'lib-category-card', template: "<div class=\"category-card\" tabindex=\"0\" role=\"link\">\n <div class=\"category-card-header\">\n <div class=\"category-card-header-image\">\n <img src=\"./assets/discussion-ui/images/Buffer-512.webp\" alt=\"category card icon\" class=\"category-card-img\">\n </div>\n <div class=\"category-card-header-label\" [innerHTML]=\"category.name\"></div>\n </div>\n <p class=\"category-card-header-text\">{{category.description}}</p>\n <div class=\"category-card-main\">\n <div class=\"category-card-main-content\">\n <div class=\"discussion-label\">{{category.totalTopicCount}} Discussions</div>\n <div class=\"post-label\">{{category.totalPostCount}} Posts</div>\n </div>\n <div><img src=\"./assets/discussion-ui/images/eye-icon.png\" class=\"eye-icon\" alt=\"eye icon\">\n </div>\n </div>\n</div>", styles: ["::ng-deep:root{--df-category-card-label: var(--df-text);--df-category-card-text: var(--df-text)}.category-card{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background:var(--df-card-bg);color:var(--df-text);transition:box-shadow .28s cubic-bezier(.4,0,.2,1);display:block;position:relative;border-radius:.25rem;height:11rem;width:auto;padding:1rem;cursor:pointer}.category-card .category-card-header{display:flex;flex-direction:row;align-items:center}.category-card .category-card-header .category-card-header-image{border:.0625rem solid var(--red-0);border-radius:50%;max-width:3.125rem;width:100%;height:3.125rem;position:relative}.category-card .category-card-header .category-card-header-image .category-card-img{position:absolute;top:.5rem;left:.5rem;width:2rem;height:2rem}.category-card .category-card-header .category-card-header-label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;color:var(--df-category-card-label);word-break:break-word;margin:0 .5rem;font-weight:700}.category-card .category-card-header-text{color:var(--df-category-card-text);-webkit-box-orient:vertical;display:-webkit-box;-webkit-line-clamp:3;overflow:hidden;text-overflow:ellipsis;word-break:break-all;padding:.5rem 0;font-size:.875rem}.category-card .category-card-main{display:flex;justify-content:space-between;align-items:center;color:var(--df-category-card-text);margin:.5rem 0;font-size:.875rem;font-weight:700}.category-card .category-card-main .category-card-main-content{display:flex}.category-card .category-card-main .post-label{margin:0 1rem}.category-card .category-card-main .eye-icon{width:1.4rem;height:1.4rem}\n"] }]
14
+ }], ctorParameters: function () { return []; }, propDecorators: { category: [{
15
+ type: Input
16
+ }] } });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kaXNjdXNzaW9uLXVpL3NyYy9saWIvZWxlbWVudHMvY2F0ZWdvcnktY2FyZC9jYXRlZ29yeS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rpc2N1c3Npb24tdWkvc3JjL2xpYi9lbGVtZW50cy9jYXRlZ29yeS1jYXJkL2NhdGVnb3J5LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT3pELE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7K0dBVlUscUJBQXFCO21HQUFyQixxQkFBcUIsMkZDUGxDLCsxQkFnQk07OzRGRFRPLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7MEVBUXBCLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNhdGVnb3J5LWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0ZWdvcnktY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhdGVnb3J5LWNhcmQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDYXRlZ29yeUNhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8vIFRPRE86IENyZWF0ZSBpbnRlcmZhY2UgZm9yIHR5cGUgY2hlY2tcbiAgLy8gVE9ETzogcmVwbGFjZSBtYXQtaWNvblxuICBASW5wdXQoKSBjYXRlZ29yeTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5jYXRlZ29yeSk7XG4gIH1cblxufVxuXG4iLCI8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktY2FyZFwiIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJsaW5rXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWNhcmQtaGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktY2FyZC1oZWFkZXItaW1hZ2VcIj5cbiAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9kaXNjdXNzaW9uLXVpL2ltYWdlcy9CdWZmZXItNTEyLndlYnBcIiBhbHQ9XCJjYXRlZ29yeSBjYXJkIGljb25cIiBjbGFzcz1cImNhdGVnb3J5LWNhcmQtaW1nXCI+XG4gICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWNhcmQtaGVhZGVyLWxhYmVsXCIgW2lubmVySFRNTF09XCJjYXRlZ29yeS5uYW1lXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHAgY2xhc3M9XCJjYXRlZ29yeS1jYXJkLWhlYWRlci10ZXh0XCI+e3tjYXRlZ29yeS5kZXNjcmlwdGlvbn19PC9wPlxuICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1jYXJkLW1haW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1jYXJkLW1haW4tY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzY3Vzc2lvbi1sYWJlbFwiPnt7Y2F0ZWdvcnkudG90YWxUb3BpY0NvdW50fX0gRGlzY3Vzc2lvbnM8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc3QtbGFiZWxcIj57e2NhdGVnb3J5LnRvdGFsUG9zdENvdW50fX0gUG9zdHM8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDxkaXY+PGltZyBzcmM9XCIuL2Fzc2V0cy9kaXNjdXNzaW9uLXVpL2ltYWdlcy9leWUtaWNvbi5wbmdcIiBjbGFzcz1cImV5ZS1pY29uXCIgYWx0PVwiZXllIGljb25cIj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -0,0 +1,45 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class DiscussCardComponent {
5
+ constructor() { }
6
+ ngOnInit() {
7
+ console.log('discussionData', this.discussionData);
8
+ }
9
+ getBgColor(tagTitle) {
10
+ const bgColor = this.stringToColor(tagTitle.toLowerCase());
11
+ const color = this.getContrast();
12
+ return { color, 'background-color': bgColor };
13
+ }
14
+ stringToColor(title) {
15
+ let hash = 0;
16
+ for (let i = 0; i < title.length; i++) {
17
+ // tslint:disable-next-line: no-bitwise
18
+ hash = title.charCodeAt(i) + ((hash << 5) - hash);
19
+ }
20
+ const hue = Math.abs(hash % 360);
21
+ // tslint:disable-next-line: prefer-template
22
+ const colour = 'hsl(' + hue + ',100%,30%)';
23
+ return colour;
24
+ }
25
+ getContrast() {
26
+ return 'rgba(255, 255, 255, 80%)';
27
+ }
28
+ IsSingleComent(postCount) {
29
+ if (postCount && (postCount - 1) == 1) {
30
+ return true;
31
+ }
32
+ else {
33
+ return false;
34
+ }
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DiscussCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DiscussCardComponent, selector: "lib-discuss-card", inputs: { discussionData: "discussionData" }, ngImport: i0, template: "<!-- Card container -->\n<div class=\"discuss-card-content\" tabindex=\"0\" role=\"link\">\n\n <!-- Card header -->\n <div tabindex=\"0\" role=\"link\">\n <!-- <a href=\"javascript:void(0)\" i18n-aria-label tabindex=\"0\" role=\"link\"> -->\n <h3 class='discuss-card-title' *ngIf=\"discussionData?.title\" [innerHTML]=\"discussionData?.title\"></h3>\n <h3 class='discuss-card-title' *ngIf=\"!discussionData?.title && discussionData?.topic?.title\" [innerHTML]=\"discussionData?.topic?.title\"></h3>\n <h3 class='discuss-card-title' *ngIf=\"!discussionData?.title && !discussionData?.topic?.title && discussionData?.name\" [innerHTML]=\"discussionData?.name\"></h3>\n <!-- </a> -->\n\n <!-- Card subtitle -->\n <div class=\"discuss-card-subtitle\">\n <div class=\"card-label-container\">\n <div *ngIf=\"discussionData?.category?.name\" class=\"discuss-card-label\">\n <img src=\"./assets/discussion-ui/images/Buffer-512.webp\" alt=\"category card icon\" width=\"20px\" class=\"mr-4\">\n {{discussionData.category.name}}\n </div>\n <div>\n <span class=\"dot\"></span>\n <span class=\"discuss-user-label\" *ngIf=\"discussionData?.user?.username\">{{discussionData?.user?.username}}</span>\n <span class=\"discuss-user-label\" *ngIf=\"!(discussionData?.user?.username)\">{{'Anonymous'}}</span>\n </div>\n </div>\n\n <div class=\"timing\">{{discussionData.lastposttime | date}}</div>\n <!-- <span class=\"margin-left-l\">{{discussionData.timestamp | pipeRelativeTime}}</span> -->\n </div>\n <!-- /Card subtitle -->\n </div>\n <!-- /Card header -->\n\n <!-- Card content -->\n <div class=\"tags\">\n <ng-container *ngIf=\"discussionData && discussionData.tags && discussionData.tags.length > 0\">\n <span *ngFor=\"let tag of discussionData.tags\" class=\"tag\" [ngStyle]=\"getBgColor(tag.value)\">\n {{tag.value}}\n </span>\n </ng-container>\n </div>\n <!-- /Card content -->\n\n <!-- Card footer -->\n <div class=\"discuss-card-comments\">\n <div class=\"comments-content\">\n <span class=\"votes-content\">\n <!-- <mat-icon class=\"cursor-pointer\">import_export</mat-icon> -->\n <img src=\"./assets/discussion-ui/images/votes.svg\" alt=\"votes icon\">\n <span>{{(discussionData.upvotes + discussionData.downvotes) || 0 }} Votes</span>\n </span>\n <span class=\"views-content\">\n <!-- <mat-icon>trending_up</mat-icon> -->\n <img src=\"./assets/discussion-ui/images/views.svg\" alt=\"views icon\">\n <span>{{discussionData.viewcount || 0}} Views</span>\n </span>\n </div>\n <div class=\"comments-count\">{{((discussionData.postcount || 1) -1) }}\n comments\n </div>\n </div>\n\n <!-- /Card footer -->\n</div>\n<!-- /Card header -->", styles: [".discuss-card-content{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background:var(--df-card-bg);color:var(--df-text);flex:1;height:auto;margin-bottom:1rem;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);display:block;position:relative;padding:1rem;border-radius:.25rem;word-break:break-all;cursor:pointer;width:auto}.discuss-card-content .discuss-card-title{margin:0;color:var(--df-text);cursor:pointer;font-size:1rem;font-weight:700;word-break:break-word}.discuss-card-content .discuss-card-subtitle{margin:8px 0 0;font-size:.875rem;display:flex;align-items:center}@media screen and (max-width: 768px){.discuss-card-content .discuss-card-subtitle{align-items:flex-start}}.discuss-card-content .discuss-card-subtitle .card-label-container{display:flex;align-items:center}@media screen and (max-width: 768px){.discuss-card-content .discuss-card-subtitle .card-label-container{margin-right:auto;flex-wrap:wrap}}.discuss-card-content .discuss-card-subtitle .card-label-container .discuss-card-label{color:var(--primary);display:flex;align-items:center}.discuss-card-content .discuss-card-subtitle .card-label-container .discuss-card-label img{margin-right:.25rem}@media screen and (max-width: 768px){.discuss-card-content .discuss-card-subtitle .card-label-container .discuss-card-label{flex-basis:100%}}.discuss-card-content .discuss-card-subtitle .card-label-container .dot{height:.375rem;width:.375rem;background-color:var(--gray-400);border-radius:50%;display:inline-block;margin:0 .5rem;position:relative;bottom:.0625rem}.discuss-card-content .discuss-card-subtitle .card-label-container .discuss-user-label{word-break:break-word}.discuss-card-content .discuss-card-subtitle .timing{margin:0 .5rem}@media screen and (max-width: 768px){.discuss-card-content .discuss-card-subtitle .timing{flex:0 0 auto}}.discuss-card-content .discuss-card-comments{display:flex;justify-content:space-between;font-size:.875rem;flex-wrap:wrap;font-weight:700;align-items:center;padding-top:.5rem}.discuss-card-content .discuss-card-comments .comments-content{display:flex}.discuss-card-content .discuss-card-comments .comments-content .votes-content,.discuss-card-content .discuss-card-comments .comments-content .views-content{display:flex;align-items:center;font-size:.875rem}.discuss-card-content .discuss-card-comments .comments-content .votes-content span,.discuss-card-content .discuss-card-comments .comments-content .views-content span{margin:0 .5rem}.discuss-card-content .discuss-card-comments .comments-content .views-content{margin-left:1.5rem}.discuss-card-content .discuss-card-comments .comments-content .votes-content img,.discuss-card-content .discuss-card-comments .comments-content .views-content img{height:1rem;width:1rem;cursor:pointer}.discuss-card-content .discuss-card-comments .comments-count{color:var(--primary);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DiscussCardComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ selector: 'lib-discuss-card', template: "<!-- Card container -->\n<div class=\"discuss-card-content\" tabindex=\"0\" role=\"link\">\n\n <!-- Card header -->\n <div tabindex=\"0\" role=\"link\">\n <!-- <a href=\"javascript:void(0)\" i18n-aria-label tabindex=\"0\" role=\"link\"> -->\n <h3 class='discuss-card-title' *ngIf=\"discussionData?.title\" [innerHTML]=\"discussionData?.title\"></h3>\n <h3 class='discuss-card-title' *ngIf=\"!discussionData?.title && discussionData?.topic?.title\" [innerHTML]=\"discussionData?.topic?.title\"></h3>\n <h3 class='discuss-card-title' *ngIf=\"!discussionData?.title && !discussionData?.topic?.title && discussionData?.name\" [innerHTML]=\"discussionData?.name\"></h3>\n <!-- </a> -->\n\n <!-- Card subtitle -->\n <div class=\"discuss-card-subtitle\">\n <div class=\"card-label-container\">\n <div *ngIf=\"discussionData?.category?.name\" class=\"discuss-card-label\">\n <img src=\"./assets/discussion-ui/images/Buffer-512.webp\" alt=\"category card icon\" width=\"20px\" class=\"mr-4\">\n {{discussionData.category.name}}\n </div>\n <div>\n <span class=\"dot\"></span>\n <span class=\"discuss-user-label\" *ngIf=\"discussionData?.user?.username\">{{discussionData?.user?.username}}</span>\n <span class=\"discuss-user-label\" *ngIf=\"!(discussionData?.user?.username)\">{{'Anonymous'}}</span>\n </div>\n </div>\n\n <div class=\"timing\">{{discussionData.lastposttime | date}}</div>\n <!-- <span class=\"margin-left-l\">{{discussionData.timestamp | pipeRelativeTime}}</span> -->\n </div>\n <!-- /Card subtitle -->\n </div>\n <!-- /Card header -->\n\n <!-- Card content -->\n <div class=\"tags\">\n <ng-container *ngIf=\"discussionData && discussionData.tags && discussionData.tags.length > 0\">\n <span *ngFor=\"let tag of discussionData.tags\" class=\"tag\" [ngStyle]=\"getBgColor(tag.value)\">\n {{tag.value}}\n </span>\n </ng-container>\n </div>\n <!-- /Card content -->\n\n <!-- Card footer -->\n <div class=\"discuss-card-comments\">\n <div class=\"comments-content\">\n <span class=\"votes-content\">\n <!-- <mat-icon class=\"cursor-pointer\">import_export</mat-icon> -->\n <img src=\"./assets/discussion-ui/images/votes.svg\" alt=\"votes icon\">\n <span>{{(discussionData.upvotes + discussionData.downvotes) || 0 }} Votes</span>\n </span>\n <span class=\"views-content\">\n <!-- <mat-icon>trending_up</mat-icon> -->\n <img src=\"./assets/discussion-ui/images/views.svg\" alt=\"views icon\">\n <span>{{discussionData.viewcount || 0}} Views</span>\n </span>\n </div>\n <div class=\"comments-count\">{{((discussionData.postcount || 1) -1) }}\n comments\n </div>\n </div>\n\n <!-- /Card footer -->\n</div>\n<!-- /Card header -->", styles: [".discuss-card-content{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background:var(--df-card-bg);color:var(--df-text);flex:1;height:auto;margin-bottom:1rem;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);display:block;position:relative;padding:1rem;border-radius:.25rem;word-break:break-all;cursor:pointer;width:auto}.discuss-card-content .discuss-card-title{margin:0;color:var(--df-text);cursor:pointer;font-size:1rem;font-weight:700;word-break:break-word}.discuss-card-content .discuss-card-subtitle{margin:8px 0 0;font-size:.875rem;display:flex;align-items:center}@media screen and (max-width: 768px){.discuss-card-content .discuss-card-subtitle{align-items:flex-start}}.discuss-card-content .discuss-card-subtitle .card-label-container{display:flex;align-items:center}@media screen and (max-width: 768px){.discuss-card-content .discuss-card-subtitle .card-label-container{margin-right:auto;flex-wrap:wrap}}.discuss-card-content .discuss-card-subtitle .card-label-container .discuss-card-label{color:var(--primary);display:flex;align-items:center}.discuss-card-content .discuss-card-subtitle .card-label-container .discuss-card-label img{margin-right:.25rem}@media screen and (max-width: 768px){.discuss-card-content .discuss-card-subtitle .card-label-container .discuss-card-label{flex-basis:100%}}.discuss-card-content .discuss-card-subtitle .card-label-container .dot{height:.375rem;width:.375rem;background-color:var(--gray-400);border-radius:50%;display:inline-block;margin:0 .5rem;position:relative;bottom:.0625rem}.discuss-card-content .discuss-card-subtitle .card-label-container .discuss-user-label{word-break:break-word}.discuss-card-content .discuss-card-subtitle .timing{margin:0 .5rem}@media screen and (max-width: 768px){.discuss-card-content .discuss-card-subtitle .timing{flex:0 0 auto}}.discuss-card-content .discuss-card-comments{display:flex;justify-content:space-between;font-size:.875rem;flex-wrap:wrap;font-weight:700;align-items:center;padding-top:.5rem}.discuss-card-content .discuss-card-comments .comments-content{display:flex}.discuss-card-content .discuss-card-comments .comments-content .votes-content,.discuss-card-content .discuss-card-comments .comments-content .views-content{display:flex;align-items:center;font-size:.875rem}.discuss-card-content .discuss-card-comments .comments-content .votes-content span,.discuss-card-content .discuss-card-comments .comments-content .views-content span{margin:0 .5rem}.discuss-card-content .discuss-card-comments .comments-content .views-content{margin-left:1.5rem}.discuss-card-content .discuss-card-comments .comments-content .votes-content img,.discuss-card-content .discuss-card-comments .comments-content .views-content img{height:1rem;width:1rem;cursor:pointer}.discuss-card-content .discuss-card-comments .comments-count{color:var(--primary);font-weight:700}\n"] }]
42
+ }], ctorParameters: function () { return []; }, propDecorators: { discussionData: [{
43
+ type: Input
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY3Vzcy1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rpc2N1c3Npb24tdWkvc3JjL2xpYi9lbGVtZW50cy9kaXNjdXNzLWNhcmQvZGlzY3Vzcy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rpc2N1c3Npb24tdWkvc3JjL2xpYi9lbGVtZW50cy9kaXNjdXNzLWNhcmQvZGlzY3Vzcy1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPekQsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxRQUFhO1FBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFLO1FBQ2pCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUViLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLHVDQUF1QztZQUN2QyxJQUFJLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDakMsNENBQTRDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQzNDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTywwQkFBMEIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQVM7UUFDdEIsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDOytHQXZDVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixzR0NQakMsaTBGQStEcUI7OzRGRHhEUixvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCOzBFQU1uQixjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kaXNjdXNzLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlzY3Vzcy1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlzY3Vzcy1jYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGlzY3Vzc0NhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGRpc2N1c3Npb25EYXRhOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zb2xlLmxvZygnZGlzY3Vzc2lvbkRhdGEnLCB0aGlzLmRpc2N1c3Npb25EYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCZ0NvbG9yKHRhZ1RpdGxlOiBhbnkpIHtcbiAgICBjb25zdCBiZ0NvbG9yID0gdGhpcy5zdHJpbmdUb0NvbG9yKHRhZ1RpdGxlLnRvTG93ZXJDYXNlKCkpO1xuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5nZXRDb250cmFzdCgpO1xuICAgIHJldHVybiB7IGNvbG9yLCAnYmFja2dyb3VuZC1jb2xvcic6IGJnQ29sb3IgfTtcbiAgfVxuXG4gIHN0cmluZ1RvQ29sb3IodGl0bGUpIHtcbiAgICBsZXQgaGFzaCA9IDA7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRpdGxlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWJpdHdpc2VcbiAgICAgIGhhc2ggPSB0aXRsZS5jaGFyQ29kZUF0KGkpICsgKChoYXNoIDw8IDUpIC0gaGFzaCk7XG4gICAgfVxuICAgIGNvbnN0IGh1ZSA9IE1hdGguYWJzKGhhc2ggJSAzNjApO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogcHJlZmVyLXRlbXBsYXRlXG4gICAgY29uc3QgY29sb3VyID0gJ2hzbCgnICsgaHVlICsgJywxMDAlLDMwJSknO1xuICAgIHJldHVybiBjb2xvdXI7XG4gIH1cblxuICBnZXRDb250cmFzdCgpIHtcbiAgICByZXR1cm4gJ3JnYmEoMjU1LCAyNTUsIDI1NSwgODAlKSc7XG4gIH1cblxuICBJc1NpbmdsZUNvbWVudChwb3N0Q291bnQpIHtcbiAgICBpZiAocG9zdENvdW50ICYmIChwb3N0Q291bnQgLSAxKSA9PSAxKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLSBDYXJkIGNvbnRhaW5lciAtLT5cbjxkaXYgY2xhc3M9XCJkaXNjdXNzLWNhcmQtY29udGVudFwiIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJsaW5rXCI+XG5cbiAgPCEtLSBDYXJkIGhlYWRlciAtLT5cbiAgPGRpdiB0YWJpbmRleD1cIjBcIiByb2xlPVwibGlua1wiPlxuICAgICAgPCEtLSA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgaTE4bi1hcmlhLWxhYmVsIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJsaW5rXCI+IC0tPlxuICAgICAgICA8aDMgY2xhc3M9J2Rpc2N1c3MtY2FyZC10aXRsZScgKm5nSWY9XCJkaXNjdXNzaW9uRGF0YT8udGl0bGVcIiBbaW5uZXJIVE1MXT1cImRpc2N1c3Npb25EYXRhPy50aXRsZVwiPjwvaDM+XG4gICAgICAgIDxoMyBjbGFzcz0nZGlzY3Vzcy1jYXJkLXRpdGxlJyAqbmdJZj1cIiFkaXNjdXNzaW9uRGF0YT8udGl0bGUgJiYgZGlzY3Vzc2lvbkRhdGE/LnRvcGljPy50aXRsZVwiIFtpbm5lckhUTUxdPVwiZGlzY3Vzc2lvbkRhdGE/LnRvcGljPy50aXRsZVwiPjwvaDM+XG4gICAgICAgIDxoMyBjbGFzcz0nZGlzY3Vzcy1jYXJkLXRpdGxlJyAqbmdJZj1cIiFkaXNjdXNzaW9uRGF0YT8udGl0bGUgJiYgIWRpc2N1c3Npb25EYXRhPy50b3BpYz8udGl0bGUgJiYgZGlzY3Vzc2lvbkRhdGE/Lm5hbWVcIiBbaW5uZXJIVE1MXT1cImRpc2N1c3Npb25EYXRhPy5uYW1lXCI+PC9oMz5cbiAgICAgIDwhLS0gPC9hPiAtLT5cblxuICAgIDwhLS0gQ2FyZCBzdWJ0aXRsZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZGlzY3Vzcy1jYXJkLXN1YnRpdGxlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbC1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRpc2N1c3Npb25EYXRhPy5jYXRlZ29yeT8ubmFtZVwiIGNsYXNzPVwiZGlzY3Vzcy1jYXJkLWxhYmVsXCI+XG4gICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9kaXNjdXNzaW9uLXVpL2ltYWdlcy9CdWZmZXItNTEyLndlYnBcIiBhbHQ9XCJjYXRlZ29yeSBjYXJkIGljb25cIiB3aWR0aD1cIjIwcHhcIiBjbGFzcz1cIm1yLTRcIj5cbiAgICAgICAgICB7e2Rpc2N1c3Npb25EYXRhLmNhdGVnb3J5Lm5hbWV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpc2N1c3MtdXNlci1sYWJlbFwiICpuZ0lmPVwiZGlzY3Vzc2lvbkRhdGE/LnVzZXI/LnVzZXJuYW1lXCI+e3tkaXNjdXNzaW9uRGF0YT8udXNlcj8udXNlcm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpc2N1c3MtdXNlci1sYWJlbFwiICpuZ0lmPVwiIShkaXNjdXNzaW9uRGF0YT8udXNlcj8udXNlcm5hbWUpXCI+e3snQW5vbnltb3VzJ319PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGltaW5nXCI+e3tkaXNjdXNzaW9uRGF0YS5sYXN0cG9zdHRpbWUgfCBkYXRlfX08L2Rpdj5cbiAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJtYXJnaW4tbGVmdC1sXCI+e3tkaXNjdXNzaW9uRGF0YS50aW1lc3RhbXAgfCBwaXBlUmVsYXRpdmVUaW1lfX08L3NwYW4+IC0tPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gL0NhcmQgc3VidGl0bGUgLS0+XG4gIDwvZGl2PlxuICA8IS0tIC9DYXJkIGhlYWRlciAtLT5cblxuICA8IS0tIENhcmQgY29udGVudCAtLT5cbiAgPGRpdiBjbGFzcz1cInRhZ3NcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzY3Vzc2lvbkRhdGEgJiYgZGlzY3Vzc2lvbkRhdGEudGFncyAmJiBkaXNjdXNzaW9uRGF0YS50YWdzLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCB0YWcgb2YgZGlzY3Vzc2lvbkRhdGEudGFnc1wiIGNsYXNzPVwidGFnXCIgW25nU3R5bGVdPVwiZ2V0QmdDb2xvcih0YWcudmFsdWUpXCI+XG4gICAgICAgIHt7dGFnLnZhbHVlfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDwhLS0gL0NhcmQgY29udGVudCAtLT5cblxuICA8IS0tIENhcmQgZm9vdGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiZGlzY3Vzcy1jYXJkLWNvbW1lbnRzXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbW1lbnRzLWNvbnRlbnRcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidm90ZXMtY29udGVudFwiPlxuICAgICAgICA8IS0tIDxtYXQtaWNvbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+aW1wb3J0X2V4cG9ydDwvbWF0LWljb24+IC0tPlxuICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2Rpc2N1c3Npb24tdWkvaW1hZ2VzL3ZvdGVzLnN2Z1wiIGFsdD1cInZvdGVzIGljb25cIj5cbiAgICAgICAgPHNwYW4+e3soZGlzY3Vzc2lvbkRhdGEudXB2b3RlcyArIGRpc2N1c3Npb25EYXRhLmRvd252b3RlcykgfHwgMCB9fSBWb3Rlczwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidmlld3MtY29udGVudFwiPlxuICAgICAgICA8IS0tIDxtYXQtaWNvbj50cmVuZGluZ191cDwvbWF0LWljb24+IC0tPlxuICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2Rpc2N1c3Npb24tdWkvaW1hZ2VzL3ZpZXdzLnN2Z1wiIGFsdD1cInZpZXdzIGljb25cIj5cbiAgICAgICAgPHNwYW4+e3tkaXNjdXNzaW9uRGF0YS52aWV3Y291bnQgfHwgMH19IFZpZXdzPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb21tZW50cy1jb3VudFwiPnt7KChkaXNjdXNzaW9uRGF0YS5wb3N0Y291bnQgfHwgMSkgLTEpIH19XG4gICAgICAgIGNvbW1lbnRzXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gL0NhcmQgZm9vdGVyIC0tPlxuPC9kaXY+XG48IS0tIC9DYXJkIGhlYWRlciAtLT4iXX0=
@@ -0,0 +1,69 @@
1
+ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
2
+ import { NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { CategoryCardComponent } from './category-card/category-card.component';
5
+ import { DiscussCardComponent } from './discuss-card/discuss-card.component';
6
+ import { AvatarPhotoComponent } from './avatar-photo/avatar-photo.component';
7
+ import { AppLoaderComponent } from './app-loader/app-loader.component';
8
+ import { RelatedDiscussionComponent } from './related-discussion/related-discussion.component';
9
+ import { PipesModule } from './../pipes/pipes.module';
10
+ import { PostReplyComponent } from './post-reply/post-reply.component';
11
+ import { SlidersComponent } from './sliders/sliders.component';
12
+ import { LoadAlertComponent } from './load-alert/load-alert.component';
13
+ import * as i0 from "@angular/core";
14
+ export class ElementsModule {
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ElementsModule, declarations: [PostReplyComponent,
17
+ CategoryCardComponent,
18
+ DiscussCardComponent,
19
+ AvatarPhotoComponent,
20
+ AppLoaderComponent,
21
+ RelatedDiscussionComponent,
22
+ SlidersComponent,
23
+ LoadAlertComponent], imports: [CommonModule, PipesModule,
24
+ FormsModule,
25
+ ReactiveFormsModule], exports: [CategoryCardComponent,
26
+ DiscussCardComponent,
27
+ AvatarPhotoComponent,
28
+ AppLoaderComponent,
29
+ RelatedDiscussionComponent,
30
+ AppLoaderComponent,
31
+ PostReplyComponent,
32
+ SlidersComponent,
33
+ LoadAlertComponent] }); }
34
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementsModule, imports: [CommonModule, PipesModule,
35
+ FormsModule,
36
+ ReactiveFormsModule] }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementsModule, decorators: [{
39
+ type: NgModule,
40
+ args: [{
41
+ declarations: [
42
+ PostReplyComponent,
43
+ CategoryCardComponent,
44
+ DiscussCardComponent,
45
+ AvatarPhotoComponent,
46
+ AppLoaderComponent,
47
+ RelatedDiscussionComponent,
48
+ SlidersComponent,
49
+ LoadAlertComponent
50
+ ],
51
+ imports: [
52
+ CommonModule, PipesModule,
53
+ FormsModule,
54
+ ReactiveFormsModule
55
+ ],
56
+ exports: [
57
+ CategoryCardComponent,
58
+ DiscussCardComponent,
59
+ AvatarPhotoComponent,
60
+ AppLoaderComponent,
61
+ RelatedDiscussionComponent,
62
+ AppLoaderComponent,
63
+ PostReplyComponent,
64
+ SlidersComponent,
65
+ LoadAlertComponent
66
+ ]
67
+ }]
68
+ }] });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGlzY3Vzc2lvbi11aS9zcmMvbGliL2VsZW1lbnRzL2VsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQTZCdkUsTUFBTSxPQUFPLGNBQWM7K0dBQWQsY0FBYztnSEFBZCxjQUFjLGlCQTFCdkIsa0JBQWtCO1lBQ2xCLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQiwwQkFBMEI7WUFDMUIsZ0JBQWdCO1lBQ2hCLGtCQUFrQixhQUdsQixZQUFZLEVBQUUsV0FBVztZQUN4QixXQUFXO1lBQ1osbUJBQW1CLGFBR25CLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQiwwQkFBMEI7WUFDMUIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsa0JBQWtCO2dIQUdULGNBQWMsWUFoQnZCLFlBQVksRUFBRSxXQUFXO1lBQ3hCLFdBQVc7WUFDWixtQkFBbUI7OzRGQWNWLGNBQWM7a0JBNUIxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVksRUFBRSxXQUFXO3dCQUN4QixXQUFXO3dCQUNaLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7cUJBQ25CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENhdGVnb3J5Q2FyZENvbXBvbmVudCB9IGZyb20gJy4vY2F0ZWdvcnktY2FyZC9jYXRlZ29yeS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNjdXNzQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGlzY3Vzcy1jYXJkL2Rpc2N1c3MtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXZhdGFyUGhvdG9Db21wb25lbnQgfSBmcm9tICcuL2F2YXRhci1waG90by9hdmF0YXItcGhvdG8uY29tcG9uZW50JztcbmltcG9ydCB7IEFwcExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYXBwLWxvYWRlci9hcHAtbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWxhdGVkRGlzY3Vzc2lvbkNvbXBvbmVudCB9IGZyb20gJy4vcmVsYXRlZC1kaXNjdXNzaW9uL3JlbGF0ZWQtZGlzY3Vzc2lvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGlwZXNNb2R1bGUgfSBmcm9tICcuLy4uL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFBvc3RSZXBseUNvbXBvbmVudCB9IGZyb20gJy4vcG9zdC1yZXBseS9wb3N0LXJlcGx5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGlkZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9zbGlkZXJzL3NsaWRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRBbGVydENvbXBvbmVudCB9IGZyb20gJy4vbG9hZC1hbGVydC9sb2FkLWFsZXJ0LmNvbXBvbmVudCc7XG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBQb3N0UmVwbHlDb21wb25lbnQsXG4gICAgQ2F0ZWdvcnlDYXJkQ29tcG9uZW50LFxuICAgIERpc2N1c3NDYXJkQ29tcG9uZW50LFxuICAgIEF2YXRhclBob3RvQ29tcG9uZW50LFxuICAgIEFwcExvYWRlckNvbXBvbmVudCxcbiAgICBSZWxhdGVkRGlzY3Vzc2lvbkNvbXBvbmVudCxcbiAgICBTbGlkZXJzQ29tcG9uZW50LFxuICAgIExvYWRBbGVydENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLCBQaXBlc01vZHVsZSxcbiAgICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ2F0ZWdvcnlDYXJkQ29tcG9uZW50LFxuICAgIERpc2N1c3NDYXJkQ29tcG9uZW50LFxuICAgIEF2YXRhclBob3RvQ29tcG9uZW50LFxuICAgIEFwcExvYWRlckNvbXBvbmVudCwgXG4gICAgUmVsYXRlZERpc2N1c3Npb25Db21wb25lbnQsXG4gICAgQXBwTG9hZGVyQ29tcG9uZW50LFxuICAgIFBvc3RSZXBseUNvbXBvbmVudCxcbiAgICBTbGlkZXJzQ29tcG9uZW50LFxuICAgIExvYWRBbGVydENvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRzTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,34 @@
1
+ import { Component, Output, EventEmitter } from '@angular/core';
2
+ import { NSDiscussData } from './../../models/discuss.model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./../../telemetry-utils.service";
5
+ /* tslint:enable */
6
+ export class LoadAlertComponent {
7
+ constructor(telemetryUtils) {
8
+ this.telemetryUtils = telemetryUtils;
9
+ this.close = new EventEmitter();
10
+ this.exit = new EventEmitter();
11
+ }
12
+ ngOnInit() {
13
+ this.telemetryUtils.logImpression(NSDiscussData.IPageName.LOAD_ALERT);
14
+ }
15
+ exitForum(event) {
16
+ this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.LOAD_ALERT);
17
+ this.exit.emit(event);
18
+ }
19
+ closeModal(event) {
20
+ this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.LOAD_ALERT);
21
+ this.close.emit();
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadAlertComponent, deps: [{ token: i1.TelemetryUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LoadAlertComponent, selector: "lib-load-alert", outputs: { close: "close", exit: "exit" }, ngImport: i0, template: "<div class=\"modal fade\" id=\"alertModal\">\n <div class=\"df-dimmer-alert-modal\">\n <div class=\"df-alert-modal\"> \n <div class=\"df-alert-modal-header\">Alert</div> \n <div class=\"df-alert-modal-content\">\n <label class=\"df-alert-label\">We are experiencing high traffic.Please try after sometime.</label>\n </div>\n <div class=\"df-alert-modal-buttons\">\n <button class=\"df-btn df-btn-normal df-btn-primary df-alert-close-btn\" id=\"load-alert-close\" (click)=\"exitForum($event)\">Close</button>\n </div>\n </div>\n </div>\n</div>", styles: ["#alertModal{display:block;opacity:2!important}.df-dimmer-alert-modal{position:fixed;inset:0;background:#000c;z-index:99999;opacity:1;transition:opacity .1s ease-in;pointer-events:auto}.df-dimmer-alert-modal .df-alert-modal{max-width:30rem;width:100%;margin:0 auto;border-radius:.1875rem;background:var(--white);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);overflow:auto;height:auto}.df-dimmer-alert-modal .df-alert-modal .df-alert-modal-header{background-color:var(--primary);color:var(--white);font-weight:700;font-size:1rem;padding:.5rem 1rem;border-bottom:0 solid var(--gray-100);min-height:2.5rem;line-height:1.5rem}.df-dimmer-alert-modal .df-alert-modal .df-alert-modal-content{padding:1rem;min-height:3.75rem}.df-dimmer-alert-modal .df-alert-modal .df-alert-modal-content .df-alert-label{display:inline-block;margin-bottom:0;font-size:.8125rem;font-weight:700}.df-dimmer-alert-modal .df-alert-modal .df-alert-modal-buttons{padding:.5rem 1rem;background:var(--white);border-top:.0625rem solid var(--gray-100);min-height:3.5rem;display:flex;flex-direction:row-reverse;align-items:center;cursor:pointer}\n"] }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadAlertComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'lib-load-alert', template: "<div class=\"modal fade\" id=\"alertModal\">\n <div class=\"df-dimmer-alert-modal\">\n <div class=\"df-alert-modal\"> \n <div class=\"df-alert-modal-header\">Alert</div> \n <div class=\"df-alert-modal-content\">\n <label class=\"df-alert-label\">We are experiencing high traffic.Please try after sometime.</label>\n </div>\n <div class=\"df-alert-modal-buttons\">\n <button class=\"df-btn df-btn-normal df-btn-primary df-alert-close-btn\" id=\"load-alert-close\" (click)=\"exitForum($event)\">Close</button>\n </div>\n </div>\n </div>\n</div>", styles: ["#alertModal{display:block;opacity:2!important}.df-dimmer-alert-modal{position:fixed;inset:0;background:#000c;z-index:99999;opacity:1;transition:opacity .1s ease-in;pointer-events:auto}.df-dimmer-alert-modal .df-alert-modal{max-width:30rem;width:100%;margin:0 auto;border-radius:.1875rem;background:var(--white);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);overflow:auto;height:auto}.df-dimmer-alert-modal .df-alert-modal .df-alert-modal-header{background-color:var(--primary);color:var(--white);font-weight:700;font-size:1rem;padding:.5rem 1rem;border-bottom:0 solid var(--gray-100);min-height:2.5rem;line-height:1.5rem}.df-dimmer-alert-modal .df-alert-modal .df-alert-modal-content{padding:1rem;min-height:3.75rem}.df-dimmer-alert-modal .df-alert-modal .df-alert-modal-content .df-alert-label{display:inline-block;margin-bottom:0;font-size:.8125rem;font-weight:700}.df-dimmer-alert-modal .df-alert-modal .df-alert-modal-buttons{padding:.5rem 1rem;background:var(--white);border-top:.0625rem solid var(--gray-100);min-height:3.5rem;display:flex;flex-direction:row-reverse;align-items:center;cursor:pointer}\n"] }]
29
+ }], ctorParameters: function () { return [{ type: i1.TelemetryUtilsService }]; }, propDecorators: { close: [{
30
+ type: Output
31
+ }], exit: [{
32
+ type: Output
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1hbGVydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kaXNjdXNzaW9uLXVpL3NyYy9saWIvZWxlbWVudHMvbG9hZC1hbGVydC9sb2FkLWFsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rpc2N1c3Npb24tdWkvc3JjL2xpYi9lbGVtZW50cy9sb2FkLWFsZXJ0L2xvYWQtYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBd0MsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQU83RCxtQkFBbUI7QUFPbkIsTUFBTSxPQUFPLGtCQUFrQjtJQUk3QixZQUNVLGNBQXFDO1FBQXJDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUpyQyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQixTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUloQyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQzsrR0FwQlUsa0JBQWtCO21HQUFsQixrQkFBa0IsaUdDakIvQiw4bUJBWU07OzRGREtPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0I7NEdBS2hCLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGlzY3Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2Rpc2N1c3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5TRGlzY3Vzc0RhdGEgfSBmcm9tICcuLy4uLy4uL21vZGVscy9kaXNjdXNzLm1vZGVsJztcbmltcG9ydCB7IFRlbGVtZXRyeVV0aWxzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vdGVsZW1ldHJ5LXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlzY3Vzc1V0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Rpc2N1c3MtdXRpbHMuc2VydmljZSc7XG4vKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlzY3Vzc2lvbkV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9kaXNjdXNzaW9uLWV2ZW50cy5zZXJ2aWNlJztcbi8qIHRzbGludDplbmFibGUgKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWxvYWQtYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZC1hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvYWQtYWxlcnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMb2FkQWxlcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBleGl0ID0gbmV3IEV2ZW50RW1pdHRlcigpOyBcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRlbGVtZXRyeVV0aWxzOiBUZWxlbWV0cnlVdGlsc1NlcnZpY2UsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50ZWxlbWV0cnlVdGlscy5sb2dJbXByZXNzaW9uKE5TRGlzY3Vzc0RhdGEuSVBhZ2VOYW1lLkxPQURfQUxFUlQpO1xuICB9XG5cbiAgZXhpdEZvcnVtKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRlbGVtZXRyeVV0aWxzLmxvZ0ludGVyYWN0KGV2ZW50LCBOU0Rpc2N1c3NEYXRhLklQYWdlTmFtZS5MT0FEX0FMRVJUKTtcbiAgICB0aGlzLmV4aXQuZW1pdChldmVudCk7XG4gIH1cblxuICBjbG9zZU1vZGFsKGV2ZW50KXtcbiAgICB0aGlzLnRlbGVtZXRyeVV0aWxzLmxvZ0ludGVyYWN0KGV2ZW50LCBOU0Rpc2N1c3NEYXRhLklQYWdlTmFtZS5MT0FEX0FMRVJUKTtcbiAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIFxufVxuXG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwgZmFkZVwiIGlkPVwiYWxlcnRNb2RhbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkZi1kaW1tZXItYWxlcnQtbW9kYWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRmLWFsZXJ0LW1vZGFsXCI+ICBcbiAgICAgICAgPGRpdiBjbGFzcz1cImRmLWFsZXJ0LW1vZGFsLWhlYWRlclwiPkFsZXJ0PC9kaXY+IFxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGYtYWxlcnQtbW9kYWwtY29udGVudFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZGYtYWxlcnQtbGFiZWxcIj5XZSBhcmUgZXhwZXJpZW5jaW5nIGhpZ2ggdHJhZmZpYy5QbGVhc2UgdHJ5IGFmdGVyIHNvbWV0aW1lLjwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGYtYWxlcnQtbW9kYWwtYnV0dG9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRmLWJ0biBkZi1idG4tbm9ybWFsIGRmLWJ0bi1wcmltYXJ5IGRmLWFsZXJ0LWNsb3NlLWJ0blwiIGlkPVwibG9hZC1hbGVydC1jbG9zZVwiIChjbGljayk9XCJleGl0Rm9ydW0oJGV2ZW50KVwiPkNsb3NlPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,69 @@
1
+ import { Validators } from '@angular/forms';
2
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "@angular/common";
6
+ export class PostReplyComponent {
7
+ constructor(formBuilder) {
8
+ this.formBuilder = formBuilder;
9
+ this.showCancel = true;
10
+ this.mode = 'add';
11
+ this.actionEvent = new EventEmitter();
12
+ this.isButtonEnabled = false;
13
+ }
14
+ ngOnInit() {
15
+ console.log('conent came', this.content);
16
+ this.initializeFormFields();
17
+ }
18
+ initializeFormFields() {
19
+ this.replyForm = this.formBuilder.group({
20
+ replyContent: ['', Validators.required]
21
+ });
22
+ this.replyForm.valueChanges.subscribe(val => {
23
+ this.isButtonEnabled = this.validateForm();
24
+ });
25
+ }
26
+ validateForm() {
27
+ if (this.replyForm.status === 'VALID') {
28
+ return true;
29
+ }
30
+ else {
31
+ return false;
32
+ }
33
+ }
34
+ isFieldValid(field) {
35
+ let valueNoWhiteSpace = this.replyForm.get(field).value;
36
+ if (valueNoWhiteSpace) {
37
+ const length = valueNoWhiteSpace.length;
38
+ if (length >= 2 && valueNoWhiteSpace.charAt(length - 2) === " ") {
39
+ this.replyForm.patchValue({ replyContent: this.replyForm.get(field).value.trim() });
40
+ }
41
+ else {
42
+ this.replyForm.patchValue({ replyContent: this.replyForm.get(field).value.trimStart() });
43
+ }
44
+ }
45
+ return !this.replyForm.get(field).valid && this.replyForm.get(field).dirty;
46
+ }
47
+ onReplyClick(mode) {
48
+ // tslint:disable-next-line:no-string-literal
49
+ this.actionEvent.emit({ action: mode, content: this.replyForm.controls['replyContent'].value.trim() });
50
+ }
51
+ onCancelClick() {
52
+ this.actionEvent.emit({ action: 'cancel' });
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PostReplyComponent, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PostReplyComponent, selector: "lib-post-reply", inputs: { showCancel: "showCancel", mode: "mode", content: "content" }, outputs: { actionEvent: "actionEvent" }, ngImport: i0, template: "<form [formGroup]=\"replyForm\">\n <div appearance=\"outline\" class=\"text-form-field\">\n <label class=\"text-form-label\">Your answer here</label>\n <textarea placeholder=\"Type here (minimum 10 characters)\" \n minlength=\"10\" aria-label=\"Type your message here\"\n formControlName=\"replyContent\" \n class=\"text-content\"\n [ngModel]=\"content\"\n [ngClass]=\"{'is-invalid' : isFieldValid('replyContent')}\">\n </textarea>\n </div>\n</form>\n<div class=\"updatePostActions\">\n <button class=\"df-btn df-btn-normal df-cancel-btn\"\n *ngIf=\"showCancel\"\n (click)=\"onCancelClick()\" \n id=\"cancel-update-post\" \n type=\"button\">\n <span class=\"text-white\">Cancel</span>\n </button>\n <button [ngClass]=\"{'df-btn-disabled': !isButtonEnabled }\" \n *ngIf=\"mode === 'edit'\"\n [disabled]=\"!isButtonEnabled\" \n class=\"df-btn df-btn-normal df-btn-primary\" \n (click)=\"onReplyClick('edit')\" \n id=\"update-post\"\n type=\"button\">\n <span class=\"text-white\">Update</span>\n </button>\n <button [ngClass]=\"{'df-btn-disabled': !replyForm.valid }\" \n *ngIf=\"mode !== 'edit'\"\n [disabled]=\"!isButtonEnabled\" \n class=\"df-btn df-btn-normal df-btn-primary\" \n (click)=\"onReplyClick('reply')\" \n id=\"update-post\"\n type=\"button\">\n <span class=\"text-white\">Post Reply</span>\n </button>\n</div>", styles: [".text-form-field{display:flex;flex-direction:column}.text-form-label{font-size:.875rem;margin-bottom:1rem}.text-content{min-height:6.75rem;max-height:33.75rem;margin-bottom:.875rem;background-color:var(--df-field-control-bg);border:.0625rem solid var(--gray-200);border-radius:.1875rem;color:var(--df-text);display:block;font-size:.8125rem;font-family:sans-serif;position:relative;cursor:pointer;outline:0;padding:.5rem .875rem}.updatePostActions{display:flex;justify-content:flex-end;margin-bottom:1rem}.df-update-btn,.df-post-reply-btn{margin:.5rem 0}.cancel-update-post{margin-right:20px}.df-btn-disabled{background-color:var(--gray-100);border:solid var(--gray-100)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PostReplyComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ selector: 'lib-post-reply', template: "<form [formGroup]=\"replyForm\">\n <div appearance=\"outline\" class=\"text-form-field\">\n <label class=\"text-form-label\">Your answer here</label>\n <textarea placeholder=\"Type here (minimum 10 characters)\" \n minlength=\"10\" aria-label=\"Type your message here\"\n formControlName=\"replyContent\" \n class=\"text-content\"\n [ngModel]=\"content\"\n [ngClass]=\"{'is-invalid' : isFieldValid('replyContent')}\">\n </textarea>\n </div>\n</form>\n<div class=\"updatePostActions\">\n <button class=\"df-btn df-btn-normal df-cancel-btn\"\n *ngIf=\"showCancel\"\n (click)=\"onCancelClick()\" \n id=\"cancel-update-post\" \n type=\"button\">\n <span class=\"text-white\">Cancel</span>\n </button>\n <button [ngClass]=\"{'df-btn-disabled': !isButtonEnabled }\" \n *ngIf=\"mode === 'edit'\"\n [disabled]=\"!isButtonEnabled\" \n class=\"df-btn df-btn-normal df-btn-primary\" \n (click)=\"onReplyClick('edit')\" \n id=\"update-post\"\n type=\"button\">\n <span class=\"text-white\">Update</span>\n </button>\n <button [ngClass]=\"{'df-btn-disabled': !replyForm.valid }\" \n *ngIf=\"mode !== 'edit'\"\n [disabled]=\"!isButtonEnabled\" \n class=\"df-btn df-btn-normal df-btn-primary\" \n (click)=\"onReplyClick('reply')\" \n id=\"update-post\"\n type=\"button\">\n <span class=\"text-white\">Post Reply</span>\n </button>\n</div>", styles: [".text-form-field{display:flex;flex-direction:column}.text-form-label{font-size:.875rem;margin-bottom:1rem}.text-content{min-height:6.75rem;max-height:33.75rem;margin-bottom:.875rem;background-color:var(--df-field-control-bg);border:.0625rem solid var(--gray-200);border-radius:.1875rem;color:var(--df-text);display:block;font-size:.8125rem;font-family:sans-serif;position:relative;cursor:pointer;outline:0;padding:.5rem .875rem}.updatePostActions{display:flex;justify-content:flex-end;margin-bottom:1rem}.df-update-btn,.df-post-reply-btn{margin:.5rem 0}.cancel-update-post{margin-right:20px}.df-btn-disabled{background-color:var(--gray-100);border:solid var(--gray-100)}\n"] }]
60
+ }], ctorParameters: function () { return [{ type: i1.UntypedFormBuilder }]; }, propDecorators: { showCancel: [{
61
+ type: Input
62
+ }], mode: [{
63
+ type: Input
64
+ }], content: [{
65
+ type: Input
66
+ }], actionEvent: [{
67
+ type: Output
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC1yZXBseS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kaXNjdXNzaW9uLXVpL3NyYy9saWIvZWxlbWVudHMvcG9zdC1yZXBseS9wb3N0LXJlcGx5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rpc2N1c3Npb24tdWkvc3JjL2xpYi9lbGVtZW50cy9wb3N0LXJlcGx5L3Bvc3QtcmVwbHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTy9FLE1BQU0sT0FBTyxrQkFBa0I7SUFXN0IsWUFDVSxXQUErQjtRQUEvQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFYaEMsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBR1osZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSTNDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO0lBSXBCLENBQUM7SUFFTCxRQUFRO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN0QyxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUN4QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssT0FBTyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUs7UUFDaEIsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDeEQsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7WUFDeEMsSUFBSSxNQUFNLElBQUksQ0FBQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO2dCQUMvRCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ3JGO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUE7YUFDekY7U0FDSjtRQUNDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzdFLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWTtRQUN2Qiw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDOytHQXpEVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1S0NSL0IsZzhDQXNDTTs7NEZEOUJPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0I7eUdBS2pCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcG9zdC1yZXBseScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3N0LXJlcGx5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcG9zdC1yZXBseS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUG9zdFJlcGx5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc2hvd0NhbmNlbCA9IHRydWU7XG4gIEBJbnB1dCgpIG1vZGUgPSAnYWRkJztcbiAgQElucHV0KCkgY29udGVudDogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByZXBseUZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIGlzQnV0dG9uRW5hYmxlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlclxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnNvbGUubG9nKCdjb25lbnQgY2FtZScsIHRoaXMuY29udGVudCk7XG4gICAgdGhpcy5pbml0aWFsaXplRm9ybUZpZWxkcygpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZUZvcm1GaWVsZHMoKSB7XG4gICAgdGhpcy5yZXBseUZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHJlcGx5Q29udGVudDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgIH0pO1xuICAgIHRoaXMucmVwbHlGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIHRoaXMuaXNCdXR0b25FbmFibGVkID0gdGhpcy52YWxpZGF0ZUZvcm0oKTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlRm9ybSgpIHtcbiAgICBpZiAodGhpcy5yZXBseUZvcm0uc3RhdHVzID09PSAnVkFMSUQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGlzRmllbGRWYWxpZChmaWVsZCkge1xuICAgIGxldCB2YWx1ZU5vV2hpdGVTcGFjZSA9IHRoaXMucmVwbHlGb3JtLmdldChmaWVsZCkudmFsdWU7XG4gICAgaWYgKHZhbHVlTm9XaGl0ZVNwYWNlKSB7XG4gICAgICBjb25zdCBsZW5ndGggPSB2YWx1ZU5vV2hpdGVTcGFjZS5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoID49IDIgJiYgdmFsdWVOb1doaXRlU3BhY2UuY2hhckF0KGxlbmd0aCAtIDIpID09PSBcIiBcIikge1xuICAgICAgICB0aGlzLnJlcGx5Rm9ybS5wYXRjaFZhbHVlKHsgcmVwbHlDb250ZW50OiB0aGlzLnJlcGx5Rm9ybS5nZXQoZmllbGQpLnZhbHVlLnRyaW0oKSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVwbHlGb3JtLnBhdGNoVmFsdWUoeyByZXBseUNvbnRlbnQ6IHRoaXMucmVwbHlGb3JtLmdldChmaWVsZCkudmFsdWUudHJpbVN0YXJ0KCkgfSlcbiAgICAgIH1cbiAgfVxuICAgIHJldHVybiAhdGhpcy5yZXBseUZvcm0uZ2V0KGZpZWxkKS52YWxpZCAmJiB0aGlzLnJlcGx5Rm9ybS5nZXQoZmllbGQpLmRpcnR5O1xuICB9XG5cbiAgb25SZXBseUNsaWNrKG1vZGU6IHN0cmluZykge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1zdHJpbmctbGl0ZXJhbFxuICAgIHRoaXMuYWN0aW9uRXZlbnQuZW1pdCh7YWN0aW9uOiBtb2RlLCBjb250ZW50OiB0aGlzLnJlcGx5Rm9ybS5jb250cm9sc1sncmVwbHlDb250ZW50J10udmFsdWUudHJpbSgpfSk7XG4gIH1cblxuICBvbkNhbmNlbENsaWNrKCkge1xuICAgIHRoaXMuYWN0aW9uRXZlbnQuZW1pdCh7YWN0aW9uOiAnY2FuY2VsJ30pO1xuICB9XG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwicmVwbHlGb3JtXCI+XG4gIDxkaXYgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInRleHQtZm9ybS1maWVsZFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cInRleHQtZm9ybS1sYWJlbFwiPllvdXIgYW5zd2VyIGhlcmU8L2xhYmVsPlxuICAgIDx0ZXh0YXJlYSBwbGFjZWhvbGRlcj1cIlR5cGUgaGVyZSAobWluaW11bSAxMCBjaGFyYWN0ZXJzKVwiIFxuICAgICAgbWlubGVuZ3RoPVwiMTBcIiBhcmlhLWxhYmVsPVwiVHlwZSB5b3VyIG1lc3NhZ2UgaGVyZVwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXBseUNvbnRlbnRcIiBcbiAgICAgIGNsYXNzPVwidGV4dC1jb250ZW50XCJcbiAgICAgIFtuZ01vZGVsXT1cImNvbnRlbnRcIlxuICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJyA6IGlzRmllbGRWYWxpZCgncmVwbHlDb250ZW50Jyl9XCI+XG4gIDwvdGV4dGFyZWE+XG4gIDwvZGl2PlxuPC9mb3JtPlxuPGRpdiBjbGFzcz1cInVwZGF0ZVBvc3RBY3Rpb25zXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImRmLWJ0biBkZi1idG4tbm9ybWFsIGRmLWNhbmNlbC1idG5cIlxuICAgICAgKm5nSWY9XCJzaG93Q2FuY2VsXCJcbiAgICAgIChjbGljayk9XCJvbkNhbmNlbENsaWNrKClcIiBcbiAgICAgIGlkPVwiY2FuY2VsLXVwZGF0ZS1wb3N0XCIgXG4gICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtd2hpdGVcIj5DYW5jZWw8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBbbmdDbGFzc109XCJ7J2RmLWJ0bi1kaXNhYmxlZCc6ICFpc0J1dHRvbkVuYWJsZWQgfVwiIFxuICAgICAgKm5nSWY9XCJtb2RlID09PSAnZWRpdCdcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFpc0J1dHRvbkVuYWJsZWRcIiBcbiAgICAgIGNsYXNzPVwiZGYtYnRuIGRmLWJ0bi1ub3JtYWwgZGYtYnRuLXByaW1hcnlcIiBcbiAgICAgIChjbGljayk9XCJvblJlcGx5Q2xpY2soJ2VkaXQnKVwiIFxuICAgICAgaWQ9XCJ1cGRhdGUtcG9zdFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtd2hpdGVcIj5VcGRhdGU8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBbbmdDbGFzc109XCJ7J2RmLWJ0bi1kaXNhYmxlZCc6ICFyZXBseUZvcm0udmFsaWQgfVwiIFxuICAgICAgKm5nSWY9XCJtb2RlICE9PSAnZWRpdCdcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFpc0J1dHRvbkVuYWJsZWRcIiBcbiAgICAgIGNsYXNzPVwiZGYtYnRuIGRmLWJ0bi1ub3JtYWwgZGYtYnRuLXByaW1hcnlcIiBcbiAgICAgIChjbGljayk9XCJvblJlcGx5Q2xpY2soJ3JlcGx5JylcIiBcbiAgICAgIGlkPVwidXBkYXRlLXBvc3RcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+UG9zdCBSZXBseTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { Component, Input, EventEmitter, Output } from '@angular/core';
2
+ import _ from 'lodash-es';
3
+ import * as CONSTANTS from './../../common/constants.json';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ import * as i2 from "../../services/config.service";
7
+ import * as i3 from "../../services/discussion.service";
8
+ import * as i4 from "../../navigation-service.service";
9
+ import * as i5 from "@angular/common";
10
+ import * as i6 from "../../pipes/pipe-relative-time/pipe-relative-time.pipe";
11
+ export class RelatedDiscussionComponent {
12
+ constructor(router, configService, discussionService, navigationService) {
13
+ this.router = router;
14
+ this.configService = configService;
15
+ this.discussionService = discussionService;
16
+ this.navigationService = navigationService;
17
+ this.stateChange = new EventEmitter();
18
+ this.fetchSingleCategoryLoader = false;
19
+ }
20
+ ngOnInit() {
21
+ }
22
+ ngOnChanges() {
23
+ if (this.catId) {
24
+ this.fetchRelatedDiscussionData(this.catId);
25
+ }
26
+ }
27
+ fetchRelatedDiscussionData(cid) {
28
+ this.fetchSingleCategoryLoader = true;
29
+ this.discussionService.fetchSingleCategoryDetails(cid).subscribe((data) => {
30
+ this.relatedDiscussions = [];
31
+ _.filter(data.topics, (topic) => {
32
+ if (topic.deleted === 0 && this.topicId !== topic.tid) {
33
+ this.relatedDiscussions.push(topic);
34
+ }
35
+ });
36
+ this.fetchSingleCategoryLoader = false;
37
+ }, (err) => {
38
+ console.log('Error in fetching category details');
39
+ // this.openSnackbar(err.error.message.split('|')[1] || this.defaultError)
40
+ this.fetchSingleCategoryLoader = false;
41
+ });
42
+ }
43
+ getDiscussion(discuss) {
44
+ const input = { data: { url: `${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.DISCUSSION}topic/${discuss.slug}`, queryParams: {} } };
45
+ this.navigationService.navigate(input);
46
+ this.stateChange.emit(discuss);
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedDiscussionComponent, deps: [{ token: i1.Router }, { token: i2.ConfigService }, { token: i3.DiscussionService }, { token: i4.NavigationServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RelatedDiscussionComponent, selector: "lib-related-discussion", inputs: { catId: "catId", topicId: "topicId" }, outputs: { stateChange: "stateChange" }, usesOnChanges: true, ngImport: i0, template: "<h5 aria-label=\"Related discussions\" class=\"related-discuss-label\">Related discussions</h5>\n<ng-container *ngIf=\"relatedDiscussions && relatedDiscussions.length > 0\">\n <div *ngFor=\"let discussion of relatedDiscussions | slice:0:5;\" class=\"related-discuss-card df-card\" tabindex=\"0\">\n <label role=\"link\" tabindex=\"0\" aria-label=\"related discussion post df-text-color\"\n class=\"related-discuss-card-content discuss-user-label\" (click)=\"getDiscussion(discussion)\"\n [innerHTML]=\"discussion?.title\">\n </label>\n <div class=\"related-discuss-card-description mt-8\">\n <div class=\"category-name\" [innerHTML]=\"discussion.category.name\"></div>\n <div class=\"dot\"></div>\n <div class=\"time\">{{ discussion.timestamp | pipeRelativeTime }}</div>\n </div>\n </div>\n</ng-container>", styles: ["::ng-deep:root{--df-related-card-bg:var(--df-background)}.related-discuss-card{padding:1rem;display:flex;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background:var(--df-related-card-bg);color:var(--df-text);margin-bottom:1rem;flex-direction:column;max-width:18.75rem}@media (max-width: 768px){.related-discuss-card{max-width:100%}}.related-discuss-label{font-weight:700;margin:0 0 1rem;color:var(--df-text)}@media (max-width: 768px){.related-discuss-label{margin:1rem 0}}.related-discuss-card-content{margin:0;cursor:pointer;font-size:.875rem;font-weight:700;word-break:break-all}.related-discuss-card-description{display:flex;align-items:center;font-size:.875rem;flex-wrap:wrap;margin-top:.5rem}.related-discuss-card-description .dot{height:.375rem;width:.375rem;background-color:var(--gray-400);border-radius:50%;display:inline-block;margin:0 .5rem;position:relative;bottom:0}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.SlicePipe, name: "slice" }, { kind: "pipe", type: i6.PipeRelativeTimePipe, name: "pipeRelativeTime" }] }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedDiscussionComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'lib-related-discussion', template: "<h5 aria-label=\"Related discussions\" class=\"related-discuss-label\">Related discussions</h5>\n<ng-container *ngIf=\"relatedDiscussions && relatedDiscussions.length > 0\">\n <div *ngFor=\"let discussion of relatedDiscussions | slice:0:5;\" class=\"related-discuss-card df-card\" tabindex=\"0\">\n <label role=\"link\" tabindex=\"0\" aria-label=\"related discussion post df-text-color\"\n class=\"related-discuss-card-content discuss-user-label\" (click)=\"getDiscussion(discussion)\"\n [innerHTML]=\"discussion?.title\">\n </label>\n <div class=\"related-discuss-card-description mt-8\">\n <div class=\"category-name\" [innerHTML]=\"discussion.category.name\"></div>\n <div class=\"dot\"></div>\n <div class=\"time\">{{ discussion.timestamp | pipeRelativeTime }}</div>\n </div>\n </div>\n</ng-container>", styles: ["::ng-deep:root{--df-related-card-bg:var(--df-background)}.related-discuss-card{padding:1rem;display:flex;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background:var(--df-related-card-bg);color:var(--df-text);margin-bottom:1rem;flex-direction:column;max-width:18.75rem}@media (max-width: 768px){.related-discuss-card{max-width:100%}}.related-discuss-label{font-weight:700;margin:0 0 1rem;color:var(--df-text)}@media (max-width: 768px){.related-discuss-label{margin:1rem 0}}.related-discuss-card-content{margin:0;cursor:pointer;font-size:.875rem;font-weight:700;word-break:break-all}.related-discuss-card-description{display:flex;align-items:center;font-size:.875rem;flex-wrap:wrap;margin-top:.5rem}.related-discuss-card-description .dot{height:.375rem;width:.375rem;background-color:var(--gray-400);border-radius:50%;display:inline-block;margin:0 .5rem;position:relative;bottom:0}\n"] }]
54
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ConfigService }, { type: i3.DiscussionService }, { type: i4.NavigationServiceService }]; }, propDecorators: { catId: [{
55
+ type: Input
56
+ }], topicId: [{
57
+ type: Input
58
+ }], stateChange: [{
59
+ type: Output
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1kaXNjdXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rpc2N1c3Npb24tdWkvc3JjL2xpYi9lbGVtZW50cy9yZWxhdGVkLWRpc2N1c3Npb24vcmVsYXRlZC1kaXNjdXNzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rpc2N1c3Npb24tdWkvc3JjL2xpYi9lbGVtZW50cy9yZWxhdGVkLWRpc2N1c3Npb24vcmVsYXRlZC1kaXNjdXNzaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sQ0FBQyxNQUFNLFdBQVcsQ0FBQztBQUcxQixPQUFPLEtBQUssU0FBUyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQVUzRCxNQUFNLE9BQU8sMEJBQTBCO0lBVXJDLFlBQ1UsTUFBYyxFQUNkLGFBQTRCLEVBQzFCLGlCQUFvQyxFQUNwQyxpQkFBMkM7UUFIN0MsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQVY3QyxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRzlELDhCQUF5QixHQUFHLEtBQUssQ0FBQztJQVM5QixDQUFDO0lBRUwsUUFBUTtJQUNSLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUM1QztJQUNILENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxHQUFXO1FBQ3BDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FDOUQsQ0FBQyxJQUFpQyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUU7b0JBQ3JELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3JDO1lBQ0gsQ0FBQyxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLENBQUMsRUFDRCxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO1lBQ2pELDBFQUEwRTtZQUMxRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFPO1FBQ25CLE1BQU0sS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsU0FBUyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUE7UUFDNUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDOytHQWxEVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiw0S0NmdkMsZzRCQWFlOzs0RkRFRiwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0Usd0JBQXdCO2dNQU16QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgRGlzY3Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kaXNjdXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIENPTlNUQU5UUyBmcm9tICcuLy4uLy4uL2NvbW1vbi9jb25zdGFudHMuanNvbic7XG5pbXBvcnQgeyBOU0Rpc2N1c3NEYXRhIH0gZnJvbSAnLi8uLi8uLi9tb2RlbHMvZGlzY3Vzcy5tb2RlbCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uLXNlcnZpY2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1yZWxhdGVkLWRpc2N1c3Npb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVsYXRlZC1kaXNjdXNzaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVsYXRlZC1kaXNjdXNzaW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGhvc3Q6IHsgY2xhc3M6ICdtYXJnaW4tbGVmdC1sJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBSZWxhdGVkRGlzY3Vzc2lvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY2F0SWQ6IGFueTtcbiAgQElucHV0KCkgdG9waWNJZDogYW55O1xuXG4gIEBPdXRwdXQoKSBzdGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcmVsYXRlZERpc2N1c3Npb25zOiBhbnlbXTtcbiAgZmV0Y2hTaW5nbGVDYXRlZ29yeUxvYWRlciA9IGZhbHNlO1xuICBzaW1pbGFyUG9zdHM6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICAgIHByaXZhdGUgZGlzY3Vzc2lvblNlcnZpY2U6IERpc2N1c3Npb25TZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2VTZXJ2aWNlXG5cbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGlmICh0aGlzLmNhdElkKSB7XG4gICAgICB0aGlzLmZldGNoUmVsYXRlZERpc2N1c3Npb25EYXRhKHRoaXMuY2F0SWQpXG4gICAgfVxuICB9XG5cbiAgZmV0Y2hSZWxhdGVkRGlzY3Vzc2lvbkRhdGEoY2lkOiBudW1iZXIpIHtcbiAgICB0aGlzLmZldGNoU2luZ2xlQ2F0ZWdvcnlMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMuZGlzY3Vzc2lvblNlcnZpY2UuZmV0Y2hTaW5nbGVDYXRlZ29yeURldGFpbHMoY2lkKS5zdWJzY3JpYmUoXG4gICAgICAoZGF0YTogTlNEaXNjdXNzRGF0YS5JQ2F0ZWdvcnlEYXRhKSA9PiB7XG4gICAgICAgIHRoaXMucmVsYXRlZERpc2N1c3Npb25zID0gW107XG4gICAgICAgIF8uZmlsdGVyKGRhdGEudG9waWNzLCAodG9waWMpID0+IHtcbiAgICAgICAgICBpZiAodG9waWMuZGVsZXRlZCA9PT0gMCAmJiB0aGlzLnRvcGljSWQgIT09IHRvcGljLnRpZCkge1xuICAgICAgICAgICAgdGhpcy5yZWxhdGVkRGlzY3Vzc2lvbnMucHVzaCh0b3BpYyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLmZldGNoU2luZ2xlQ2F0ZWdvcnlMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGluIGZldGNoaW5nIGNhdGVnb3J5IGRldGFpbHMnKVxuICAgICAgICAvLyB0aGlzLm9wZW5TbmFja2JhcihlcnIuZXJyb3IubWVzc2FnZS5zcGxpdCgnfCcpWzFdIHx8IHRoaXMuZGVmYXVsdEVycm9yKVxuICAgICAgICB0aGlzLmZldGNoU2luZ2xlQ2F0ZWdvcnlMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0RGlzY3Vzc2lvbihkaXNjdXNzKSB7XG4gICAgY29uc3QgaW5wdXQgPSB7IGRhdGE6IHsgdXJsOiBgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Um91dGVyU2x1ZygpfSR7Q09OU1RBTlRTLlJPVVRFUy5ESVNDVVNTSU9OfXRvcGljLyR7ZGlzY3Vzcy5zbHVnfWAsIHF1ZXJ5UGFyYW1zOiB7fSB9IH1cbiAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLm5hdmlnYXRlKGlucHV0KTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoZGlzY3Vzcyk7XG4gIH1cblxuXG59XG4iLCI8aDUgYXJpYS1sYWJlbD1cIlJlbGF0ZWQgZGlzY3Vzc2lvbnNcIiBjbGFzcz1cInJlbGF0ZWQtZGlzY3Vzcy1sYWJlbFwiPlJlbGF0ZWQgZGlzY3Vzc2lvbnM8L2g1PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbGF0ZWREaXNjdXNzaW9ucyAmJiByZWxhdGVkRGlzY3Vzc2lvbnMubGVuZ3RoID4gMFwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGRpc2N1c3Npb24gb2YgcmVsYXRlZERpc2N1c3Npb25zIHwgc2xpY2U6MDo1O1wiIGNsYXNzPVwicmVsYXRlZC1kaXNjdXNzLWNhcmQgZGYtY2FyZFwiIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICA8bGFiZWwgcm9sZT1cImxpbmtcIiB0YWJpbmRleD1cIjBcIiBhcmlhLWxhYmVsPVwicmVsYXRlZCBkaXNjdXNzaW9uIHBvc3QgZGYtdGV4dC1jb2xvclwiXG4gICAgICAgICAgICBjbGFzcz1cInJlbGF0ZWQtZGlzY3Vzcy1jYXJkLWNvbnRlbnQgZGlzY3Vzcy11c2VyLWxhYmVsXCIgKGNsaWNrKT1cImdldERpc2N1c3Npb24oZGlzY3Vzc2lvbilcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJkaXNjdXNzaW9uPy50aXRsZVwiPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRlZC1kaXNjdXNzLWNhcmQtZGVzY3JpcHRpb24gbXQtOFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LW5hbWVcIiBbaW5uZXJIVE1MXT1cImRpc2N1c3Npb24uY2F0ZWdvcnkubmFtZVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvdFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj57eyBkaXNjdXNzaW9uLnRpbWVzdGFtcCB8IHBpcGVSZWxhdGl2ZVRpbWUgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj4iXX0=