@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,105 @@
1
+ import { PipesModule } from './../pipes/pipes.module';
2
+ import { DiscussionService } from './../services/discussion.service';
3
+ import { ConfigService } from './../services/config.service';
4
+ import { HttpClientModule } from '@angular/common/http';
5
+ import { ElementsModule } from './../elements/elements.module';
6
+ import { NgModule } from '@angular/core';
7
+ import { CommonModule } from '@angular/common';
8
+ import { SidePannelComponent } from './side-pannel/side-pannel.component';
9
+ import { DiscussHomeComponent } from './discuss-home/discuss-home.component';
10
+ import { DiscussCategoryComponent } from './discuss-category/discuss-category.component';
11
+ import { DiscussTagsComponent } from './discuss-tags/discuss-tags.component';
12
+ import { MyDiscussionComponent } from './my-discussion/my-discussion.component';
13
+ import { DiscussionDetailsComponent } from './discussion-details/discussion-details.component';
14
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
15
+ import { DiscussStartComponent } from './discuss-start/discuss-start.component';
16
+ import { TagInputModule } from 'ngx-chips';
17
+ import { DiscussAllComponent } from './discuss-all/discuss-all.component';
18
+ import { TagAllDiscussionComponent } from './tag-all-discussion/tag-all-discussion.component';
19
+ import { InfiniteScrollModule } from 'ngx-infinite-scroll';
20
+ import { TrendingTagsComponent } from './trending-tags/trending-tags.component';
21
+ import * as i0 from "@angular/core";
22
+ export class ComponentsModule {
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, declarations: [SidePannelComponent,
25
+ DiscussHomeComponent,
26
+ DiscussCategoryComponent,
27
+ DiscussTagsComponent,
28
+ MyDiscussionComponent,
29
+ DiscussionDetailsComponent,
30
+ DiscussStartComponent,
31
+ DiscussAllComponent,
32
+ TagAllDiscussionComponent,
33
+ TrendingTagsComponent], imports: [CommonModule,
34
+ HttpClientModule,
35
+ ElementsModule,
36
+ FormsModule,
37
+ ReactiveFormsModule,
38
+ TagInputModule,
39
+ PipesModule,
40
+ InfiniteScrollModule], exports: [SidePannelComponent,
41
+ DiscussHomeComponent,
42
+ DiscussCategoryComponent,
43
+ DiscussTagsComponent,
44
+ MyDiscussionComponent,
45
+ DiscussionDetailsComponent,
46
+ DiscussStartComponent,
47
+ // TODO: Add this components
48
+ DiscussAllComponent,
49
+ TagAllDiscussionComponent,
50
+ TrendingTagsComponent] }); }
51
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, providers: [
52
+ DiscussionService, ConfigService
53
+ ], imports: [CommonModule,
54
+ HttpClientModule,
55
+ ElementsModule,
56
+ FormsModule,
57
+ ReactiveFormsModule,
58
+ TagInputModule,
59
+ PipesModule,
60
+ InfiniteScrollModule] }); }
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, decorators: [{
63
+ type: NgModule,
64
+ args: [{
65
+ declarations: [
66
+ SidePannelComponent,
67
+ DiscussHomeComponent,
68
+ DiscussCategoryComponent,
69
+ DiscussTagsComponent,
70
+ MyDiscussionComponent,
71
+ DiscussionDetailsComponent,
72
+ DiscussStartComponent,
73
+ DiscussAllComponent,
74
+ TagAllDiscussionComponent,
75
+ TrendingTagsComponent,
76
+ ],
77
+ imports: [
78
+ CommonModule,
79
+ HttpClientModule,
80
+ ElementsModule,
81
+ FormsModule,
82
+ ReactiveFormsModule,
83
+ TagInputModule,
84
+ PipesModule,
85
+ InfiniteScrollModule
86
+ ],
87
+ exports: [
88
+ SidePannelComponent,
89
+ DiscussHomeComponent,
90
+ DiscussCategoryComponent,
91
+ DiscussTagsComponent,
92
+ MyDiscussionComponent,
93
+ DiscussionDetailsComponent,
94
+ DiscussStartComponent,
95
+ // TODO: Add this components
96
+ DiscussAllComponent,
97
+ TagAllDiscussionComponent,
98
+ TrendingTagsComponent,
99
+ ],
100
+ providers: [
101
+ DiscussionService, ConfigService
102
+ ]
103
+ }]
104
+ }] });
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kaXNjdXNzaW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy9jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUF5Q2hGLE1BQU0sT0FBTyxnQkFBZ0I7K0dBQWhCLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLGlCQXRDekIsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQix3QkFBd0I7WUFDeEIsb0JBQW9CO1lBQ3BCLHFCQUFxQjtZQUNyQiwwQkFBMEI7WUFDMUIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIscUJBQXFCLGFBR3JCLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsY0FBYztZQUNkLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLFdBQVc7WUFDWCxvQkFBb0IsYUFHcEIsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQix3QkFBd0I7WUFDeEIsb0JBQW9CO1lBQ3BCLHFCQUFxQjtZQUNyQiwwQkFBMEI7WUFDMUIscUJBQXFCO1lBQ3JCLDRCQUE0QjtZQUMzQixtQkFBbUI7WUFDcEIseUJBQXlCO1lBQ3pCLHFCQUFxQjtnSEFNWixnQkFBZ0IsYUFKaEI7WUFDVCxpQkFBaUIsRUFBRSxhQUFhO1NBQ2pDLFlBeEJDLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsY0FBYztZQUNkLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLFdBQVc7WUFDWCxvQkFBb0I7OzRGQW1CWCxnQkFBZ0I7a0JBeEM1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsMEJBQTBCO3dCQUMxQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6QixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQix3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLHFCQUFxQjt3QkFDckIsNEJBQTRCO3dCQUMzQixtQkFBbUI7d0JBQ3BCLHlCQUF5Qjt3QkFDekIscUJBQXFCO3FCQUN0QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsaUJBQWlCLEVBQUUsYUFBYTtxQkFDakM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlc01vZHVsZSB9IGZyb20gJy4vLi4vcGlwZXMvcGlwZXMubW9kdWxlJztcbmltcG9ydCB7IERpc2N1c3Npb25TZXJ2aWNlIH0gZnJvbSAnLi8uLi9zZXJ2aWNlcy9kaXNjdXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEVsZW1lbnRzTW9kdWxlIH0gZnJvbSAnLi8uLi9lbGVtZW50cy9lbGVtZW50cy5tb2R1bGUnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTaWRlUGFubmVsQ29tcG9uZW50IH0gZnJvbSAnLi9zaWRlLXBhbm5lbC9zaWRlLXBhbm5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzY3Vzc0hvbWVDb21wb25lbnQgfSBmcm9tICcuL2Rpc2N1c3MtaG9tZS9kaXNjdXNzLWhvbWUuY29tcG9uZW50JztcbmltcG9ydCB7IERpc2N1c3NDYXRlZ29yeUNvbXBvbmVudCB9IGZyb20gJy4vZGlzY3Vzcy1jYXRlZ29yeS9kaXNjdXNzLWNhdGVnb3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNjdXNzVGFnc0NvbXBvbmVudCB9IGZyb20gJy4vZGlzY3Vzcy10YWdzL2Rpc2N1c3MtdGFncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXlEaXNjdXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9teS1kaXNjdXNzaW9uL215LWRpc2N1c3Npb24uY29tcG9uZW50JztcbmltcG9ydCB7IERpc2N1c3Npb25EZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNjdXNzaW9uLWRldGFpbHMvZGlzY3Vzc2lvbi1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERpc2N1c3NTdGFydENvbXBvbmVudCB9IGZyb20gJy4vZGlzY3Vzcy1zdGFydC9kaXNjdXNzLXN0YXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdJbnB1dE1vZHVsZSB9IGZyb20gJ25neC1jaGlwcyc7XG5pbXBvcnQgeyBEaXNjdXNzQWxsQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNjdXNzLWFsbC9kaXNjdXNzLWFsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFnQWxsRGlzY3Vzc2lvbkNvbXBvbmVudCB9IGZyb20gJy4vdGFnLWFsbC1kaXNjdXNzaW9uL3RhZy1hbGwtZGlzY3Vzc2lvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxNb2R1bGUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcbmltcG9ydCB7IFRyZW5kaW5nVGFnc0NvbXBvbmVudCB9IGZyb20gJy4vdHJlbmRpbmctdGFncy90cmVuZGluZy10YWdzLmNvbXBvbmVudCc7XG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTaWRlUGFubmVsQ29tcG9uZW50LFxuICAgIERpc2N1c3NIb21lQ29tcG9uZW50LFxuICAgIERpc2N1c3NDYXRlZ29yeUNvbXBvbmVudCxcbiAgICBEaXNjdXNzVGFnc0NvbXBvbmVudCxcbiAgICBNeURpc2N1c3Npb25Db21wb25lbnQsXG4gICAgRGlzY3Vzc2lvbkRldGFpbHNDb21wb25lbnQsXG4gICAgRGlzY3Vzc1N0YXJ0Q29tcG9uZW50LFxuICAgIERpc2N1c3NBbGxDb21wb25lbnQsXG4gICAgVGFnQWxsRGlzY3Vzc2lvbkNvbXBvbmVudCxcbiAgICBUcmVuZGluZ1RhZ3NDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBFbGVtZW50c01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFRhZ0lucHV0TW9kdWxlLFxuICAgIFBpcGVzTW9kdWxlLFxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTaWRlUGFubmVsQ29tcG9uZW50LFxuICAgIERpc2N1c3NIb21lQ29tcG9uZW50LFxuICAgIERpc2N1c3NDYXRlZ29yeUNvbXBvbmVudCxcbiAgICBEaXNjdXNzVGFnc0NvbXBvbmVudCxcbiAgICBNeURpc2N1c3Npb25Db21wb25lbnQsXG4gICAgRGlzY3Vzc2lvbkRldGFpbHNDb21wb25lbnQsXG4gICAgRGlzY3Vzc1N0YXJ0Q29tcG9uZW50LFxuICAgIC8vIFRPRE86IEFkZCB0aGlzIGNvbXBvbmVudHNcbiAgICAgRGlzY3Vzc0FsbENvbXBvbmVudCxcbiAgICBUYWdBbGxEaXNjdXNzaW9uQ29tcG9uZW50LFxuICAgIFRyZW5kaW5nVGFnc0NvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRGlzY3Vzc2lvblNlcnZpY2UsIENvbmZpZ1NlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,269 @@
1
+ import { CONTEXT_PROPS } from './../../services/discussion.service';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import * as CONSTANTS from './../../common/constants.json';
4
+ /* tslint:disable */
5
+ import * as _ from 'lodash';
6
+ import { NSDiscussData } from '../../models/discuss.model';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/router";
9
+ import * as i2 from "../../services/discussion.service";
10
+ import * as i3 from "../../services/config.service";
11
+ import * as i4 from "./../../telemetry-utils.service";
12
+ import * as i5 from "../../navigation-service.service";
13
+ import * as i6 from "@angular/common";
14
+ import * as i7 from "../../elements/discuss-card/discuss-card.component";
15
+ import * as i8 from "../discuss-start/discuss-start.component";
16
+ import * as i9 from "../trending-tags/trending-tags.component";
17
+ // import { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';
18
+ /* tslint:enable */
19
+ export class DiscussAllComponent {
20
+ constructor(router, route, discussionService, configService, activatedRoute, telemetryUtils, navigationService
21
+ // private modalService: BsModalService
22
+ ) {
23
+ this.router = router;
24
+ this.route = route;
25
+ this.discussionService = discussionService;
26
+ this.configService = configService;
27
+ this.activatedRoute = activatedRoute;
28
+ this.telemetryUtils = telemetryUtils;
29
+ this.navigationService = navigationService;
30
+ this.stateChange = new EventEmitter();
31
+ this.showStartDiscussionModal = false;
32
+ this.isTopicCreator = false;
33
+ this.showLoader = false;
34
+ this.currentFilter = 'recent';
35
+ this.currentActivePage = 1;
36
+ this.cIds = [];
37
+ this.sticky = false;
38
+ }
39
+ ngOnInit() {
40
+ this.telemetryUtils.logImpression(NSDiscussData.IPageName.HOME);
41
+ if (this.context) {
42
+ this.isWidget = true;
43
+ this.getForumIds();
44
+ }
45
+ else {
46
+ this.cIds = this.configService.getCategories().result;
47
+ this.loadDiscussionData();
48
+ }
49
+ }
50
+ async getForumIds() {
51
+ let body = {
52
+ "identifier": this.context.contextIdArr,
53
+ "type": this.context.contextType
54
+ };
55
+ let resp = await this.discussionService.getForumIds(body);
56
+ if (resp.result.length > 0) {
57
+ resp.result.forEach(forum => {
58
+ this.cIds.push(forum.cid);
59
+ });
60
+ }
61
+ else {
62
+ this.discussionService.createForum(this.context.categoryObj).subscribe(((data) => {
63
+ data.result.forEach(forum => {
64
+ this.cIds.push(forum.newCid);
65
+ });
66
+ }));
67
+ }
68
+ this.loadDiscussionData();
69
+ }
70
+ loadDiscussionData() {
71
+ // debugger
72
+ // this.cIds = this.context ? this.context.categories : this.configService.getCategories()
73
+ this.categoryId = this.discussionService.getContext(CONTEXT_PROPS.cid);
74
+ if (this.configService.hasContext() || this.context) {
75
+ this.getContextBasedDiscussion(this.cIds);
76
+ // This is to show context based trending tags
77
+ this.getContextBasedTags(this.cIds);
78
+ }
79
+ else {
80
+ // this.currentActivePage = 1
81
+ this.refreshData();
82
+ // This is to show trending tags
83
+ this.fetchAllTags();
84
+ }
85
+ }
86
+ navigateToDiscussionDetails(discussionData) {
87
+ const matchedTopic = _.find(this.telemetryUtils.getContext(), { type: 'Topic' });
88
+ if (matchedTopic) {
89
+ this.telemetryUtils.deleteContext(matchedTopic);
90
+ }
91
+ this.telemetryUtils.uppendContext({
92
+ id: _.get(discussionData, 'tid'),
93
+ type: 'Topic'
94
+ });
95
+ const slug = _.trim(_.get(discussionData, 'slug'));
96
+ // tslint:disable-next-line: max-line-length
97
+ const input = { data: { url: `${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.TOPIC}${slug}`, queryParams: {} }, action: CONSTANTS.CATEGORY_DETAILS, };
98
+ this.navigationService.navigate(input);
99
+ this.stateChange.emit({ action: CONSTANTS.CATEGORY_DETAILS, title: discussionData.title, tid: discussionData.tid });
100
+ // this.router.navigate([`${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.TOPIC}${slug}`], { queryParamsHandling: "merge" });
101
+ }
102
+ acceptData(singleTagDetails) {
103
+ // debugger
104
+ if (this.context) {
105
+ singleTagDetails.cIds = this.cIds;
106
+ }
107
+ this.stateChange.emit(singleTagDetails);
108
+ }
109
+ getDiscussionList(slug) {
110
+ this.showLoader = true;
111
+ // TODO : this.currentActivePage shoulb be dynamic when pagination will be implemented
112
+ this.discussionService.getContextBasedTopic(slug, this.currentActivePage).subscribe(data => {
113
+ this.showLoader = false;
114
+ this.isTopicCreator = _.get(data, 'privileges.topics:create') === true ? true : false;
115
+ this.discussionList = _.union(_.get(data, 'topics'), _.get(data, 'children'));
116
+ }, error => {
117
+ this.showLoader = false;
118
+ // TODO: Toaster
119
+ console.log('error fetching topic list', error);
120
+ });
121
+ }
122
+ filter(key) {
123
+ if (key) {
124
+ this.currentFilter = key;
125
+ switch (key) {
126
+ case 'recent':
127
+ this.cIds.length ? this.getContextData(this.cIds.result) : this.fillrecent();
128
+ break;
129
+ case 'popular':
130
+ this.cIds.length ? this.getContextData(this.cIds.result) : this.fillPopular();
131
+ break;
132
+ default:
133
+ break;
134
+ }
135
+ }
136
+ }
137
+ fillrecent(_page) {
138
+ this.getRecentData();
139
+ }
140
+ fillPopular(page) {
141
+ this.showLoader = true;
142
+ return this.discussionService.fetchPopularD(page).subscribe((response) => {
143
+ this.showLoader = false;
144
+ this.discussionList = [];
145
+ _.filter(response.topics, (topic) => {
146
+ if (topic.user.uid !== 0 && topic.cid !== 1) {
147
+ this.discussionList.push(topic);
148
+ }
149
+ });
150
+ // this.discussionList = _.get(response, 'topics')
151
+ }, error => {
152
+ this.showLoader = false;
153
+ // TODO: Toaster
154
+ console.log('error fetching topic list', error);
155
+ });
156
+ }
157
+ getContextBasedDiscussion(cid) {
158
+ this.currentFilter === 'recent' ? this.getContextData(cid) : this.getContextData(cid);
159
+ }
160
+ refreshData(page) {
161
+ this.currentFilter === 'recent' ? this.getRecentData() : this.fillPopular(page);
162
+ }
163
+ getRecentData() {
164
+ this.showLoader = true;
165
+ return this.discussionService.fetchRecentPost().subscribe((data) => {
166
+ this.showLoader = false;
167
+ this.discussionList = [];
168
+ _.filter(data.topics, (topic) => {
169
+ if (topic.user.uid !== 0 && topic.cid !== 1) {
170
+ this.discussionList.push(topic);
171
+ }
172
+ });
173
+ this.discussionList = _.get(data, 'posts');
174
+ }, error => {
175
+ this.showLoader = false;
176
+ // TODO: Toaster
177
+ console.log('error fetching topic list', error);
178
+ });
179
+ }
180
+ getContextData(cid) {
181
+ this.showLoader = true;
182
+ const req = {
183
+ // request: {
184
+ cids: cid
185
+ // }
186
+ };
187
+ return this.discussionService.getContextBasedDiscussion(req).subscribe((data) => {
188
+ this.showLoader = false;
189
+ let result = data.result;
190
+ let res = result.filter((elem) => {
191
+ return (elem.statusCode !== 404);
192
+ });
193
+ this.allTopics = _.map(res, (topic) => topic.topics);
194
+ this.discussionList = _.flatten(this.allTopics);
195
+ }, error => {
196
+ this.showLoader = false;
197
+ // TODO: Toaster
198
+ console.log('error fetching topic list', error);
199
+ });
200
+ }
201
+ fetchAllTags() {
202
+ this.showLoader = true;
203
+ this.discussionService.fetchAllTag().subscribe(data => {
204
+ this.showLoader = false;
205
+ this.trendingTags = _.get(data, 'tags');
206
+ }, error => {
207
+ this.showLoader = false;
208
+ // TODO: toaster
209
+ console.log('error fetching tags');
210
+ });
211
+ }
212
+ getContextBasedTags(cid) {
213
+ const req = {
214
+ cids: cid
215
+ };
216
+ this.showLoader = true;
217
+ this.discussionService.contextBasedTags(req).subscribe(data => {
218
+ this.showLoader = false;
219
+ this.trendingTags = _.get(data, 'result');
220
+ }, error => {
221
+ this.showLoader = false;
222
+ // TODO: toaster
223
+ console.log('error fetching tags');
224
+ });
225
+ }
226
+ // startDiscussion(template: TemplateRef<any>) {
227
+ // this.modalRef = this.modalService.show(template);
228
+ // this.showStartDiscussionModal = true;
229
+ // this.bsModalRef = this.modalService.show(DiscussStartComponent);
230
+ // this.bsModalRef.content.onClose().subscribe(
231
+ // console.log('completed')
232
+ // );
233
+ // }
234
+ startDiscussion() {
235
+ debugger;
236
+ this.showStartDiscussionModal = true;
237
+ if (this.context) {
238
+ this.startDiscussionCategoryId = this.cIds;
239
+ }
240
+ }
241
+ logTelemetry(event) {
242
+ this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.HOME);
243
+ }
244
+ closeModal(event) {
245
+ if (_.get(event, 'message') === 'success') {
246
+ if (this.context) {
247
+ this.getContextBasedDiscussion(this.cIds);
248
+ }
249
+ else {
250
+ this.refreshData();
251
+ }
252
+ // this.getDiscussionList(_.get(this.routeParams, 'slug'));
253
+ }
254
+ this.showStartDiscussionModal = false;
255
+ }
256
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DiscussAllComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.DiscussionService }, { token: i3.ConfigService }, { token: i1.ActivatedRoute }, { token: i4.TelemetryUtilsService }, { token: i5.NavigationServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
257
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DiscussAllComponent, selector: "lib-discuss-all", inputs: { context: "context", categoryAction: "categoryAction" }, outputs: { stateChange: "stateChange" }, ngImport: i0, template: "<div class=\"main-div\">\n\n <!-- <button (click)=\"startDiscussion();logTelemetry($event)\" class=\"df-btn df-btn-normal df-btn-primary\" data-toggle=\"modal\"\n data-target=\"#myModal\" id=\"start-discussion\">Start Discussion</button> -->\n\n\n <div class=\"flex flex-1 custom discussion_outer_box\">\n <div class=\"flex flex-3 flex-column discussion_main_box\">\n <div (click)=\"startDiscussion();logTelemetry($event)\" data-toggle=\"modal\"\n data-target=\"#myModal\" id=\"start-discussion\">\n <a href=\"javascript:void(0)\" class=\"flex flex-1 cursor-pointer margin-fix height-48\" i18n-aria-label role=\"link\">\n <div\n class=\"flex flex-1 items-center border discuss border-solid discuss-border ws-mat-primary-background-op100 \">\n <div class=\"w-full discuss truncate\">\n <span class=\"overflow ml-4 start-btn-hint mb-0 mat-body-1\">Ask a question or post an idea</span>\n </div>\n <div class=\"discuss-home text-white flex items-center justify-center cursor-pointer mat-subheading-2\">\n Start discussion\n </div>\n </div>\n <!-- <div class=\"text-box\">Ask a question or post an idea</div> \n <div class=\"buton\">start discussion</div> -->\n </a>\n </div>\n\n <ng-container>\n <div class=\"flex flex-1 flex-row margin-fix tab_margin\">\n <div class=\"flex flex-1 filter max-height-60\">\n <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option\" [ngClass]=\"{'tabs-active' : currentFilter === 'recent',\n ' font-medium':currentFilter !== 'recent'}\" mat-button (click)=\"filter('recent')\" role=\"button\">Recent</a>\n <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option\" [ngClass]=\"{'tabs-active' : currentFilter === 'popular',\n ' font-medium':currentFilter !== 'popular'}\" mat-button (click)=\"filter('popular')\" role=\"button\">Popular</a>\n <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option watching_link\" mat-button role=\"button\">Watching</a>\n </div>\n <div class=\"flex items-center\">\n <a class=\"all_category_link mat-subheading-2 margin-remove\">All categories </a>\n </div>\n </div>\n </ng-container>\n <!-- <lib-app-loader *ngIf=\"showLoader\"></lib-app-loader> -->\n\n\n <ng-container *ngIf=\"discussionList && discussionList.length > 0\">\n <div (click)=\"navigateToDiscussionDetails(data);logTelemetry($event)\"\n *ngFor=\"let data of discussionList\" id=\"discuss-card\">\n <lib-discuss-card [discussionData]=\"data\"></lib-discuss-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\" !(discussionList && discussionList.length > 0)\">\n <div class=\"no-card-content\" tabindex=\"0\">\n <div class=\"no-data-label\">No Data</div>\n <div>\n <span>&nbsp;</span>\n </div>\n </div>\n </ng-container>\n <!-- <div class=\"flex flex-1 flex-column margin-fix pagination-container\">\n <ws-app-pagination [pager]=\"pager\" (changePage)=\"navigateWithPage($event)\"></ws-app-pagination>\n </div> -->\n </div>\n <div *ngIf=\"!isWidget\" class=\"flex flex-1 right_tag_box\" #stickyMenu [class.sticky]=\"sticky\">\n <lib-discuss-trending-tags [tags]=\"trendingTags\" (stateChange)=\"acceptData($event)\"></lib-discuss-trending-tags>\n </div>\n </div>\n\n <lib-discuss-start (close)=\"closeModal($event)\" *ngIf=\"showStartDiscussionModal\" [categoryId]=\"startDiscussionCategoryId\">\n </lib-discuss-start>\n</div>", styles: [".fade:not(.show){opacity:1!important}.buton{display:flex;border:.0625rem solid;flex:1;background:var(--red);align-content:center;text-align:center}.sticky{position:fixed;top:0;overflow:hidden;z-index:10;width:100%}.text-box{display:flex;border:.0625rem solid;flex:3;align-content:center;text-align:center}.overflow{overflow:hidden}.font-medium{font-weight:500!important}.discuss-border{border-radius:.25rem;border:.0625rem solid var(--gray-200);flex:1}.discuss .mat-form-field-wrapper{padding-bottom:0}.discuss .mat-form-field-wrapper .mat-form-field-infix{border-top-width:.25rem!important;padding:0;padding-bottom:.25rem}.discuss-home{background:var(--primary) 0% 0% no-repeat padding-box;border-radius:0px .25rem .25rem 0px;padding:.875rem 2rem;min-width:-moz-fit-content;min-width:fit-content;margin:0 1rem 1rem}.flex-3{flex:3}.filter .filter-option{border-radius:0;border-bottom-width:.125rem;border-top-width:0;border-left-width:0;border-right-width:0;border-bottom:.0625rem solid var(--black)}.filter .filter-option.tabs-active{border-bottom:.1875rem solid var(--blue)}.start-btn-hint{display:block;margin-bottom:0;padding:1rem}.tab_margin{margin-bottom:1rem!important}a.all_category_link{color:var(--primary);display:none}.watching_link{display:none}@media (max-width: 768px){.main-div{display:block!important;width:100%!important;padding:0!important}.discussion_outer_box{display:block!important}.discussion_main_box,.right_tag_box{width:100%;display:block!important;float:none}}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.DiscussCardComponent, selector: "lib-discuss-card", inputs: ["discussionData"] }, { kind: "component", type: i8.DiscussStartComponent, selector: "lib-discuss-start", inputs: ["categoryId", "topicData", "mode"], outputs: ["close"] }, { kind: "component", type: i9.TrendingTagsComponent, selector: "lib-discuss-trending-tags", inputs: ["tags"], outputs: ["stateChange"] }] }); }
258
+ }
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DiscussAllComponent, decorators: [{
260
+ type: Component,
261
+ args: [{ selector: 'lib-discuss-all', template: "<div class=\"main-div\">\n\n <!-- <button (click)=\"startDiscussion();logTelemetry($event)\" class=\"df-btn df-btn-normal df-btn-primary\" data-toggle=\"modal\"\n data-target=\"#myModal\" id=\"start-discussion\">Start Discussion</button> -->\n\n\n <div class=\"flex flex-1 custom discussion_outer_box\">\n <div class=\"flex flex-3 flex-column discussion_main_box\">\n <div (click)=\"startDiscussion();logTelemetry($event)\" data-toggle=\"modal\"\n data-target=\"#myModal\" id=\"start-discussion\">\n <a href=\"javascript:void(0)\" class=\"flex flex-1 cursor-pointer margin-fix height-48\" i18n-aria-label role=\"link\">\n <div\n class=\"flex flex-1 items-center border discuss border-solid discuss-border ws-mat-primary-background-op100 \">\n <div class=\"w-full discuss truncate\">\n <span class=\"overflow ml-4 start-btn-hint mb-0 mat-body-1\">Ask a question or post an idea</span>\n </div>\n <div class=\"discuss-home text-white flex items-center justify-center cursor-pointer mat-subheading-2\">\n Start discussion\n </div>\n </div>\n <!-- <div class=\"text-box\">Ask a question or post an idea</div> \n <div class=\"buton\">start discussion</div> -->\n </a>\n </div>\n\n <ng-container>\n <div class=\"flex flex-1 flex-row margin-fix tab_margin\">\n <div class=\"flex flex-1 filter max-height-60\">\n <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option\" [ngClass]=\"{'tabs-active' : currentFilter === 'recent',\n ' font-medium':currentFilter !== 'recent'}\" mat-button (click)=\"filter('recent')\" role=\"button\">Recent</a>\n <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option\" [ngClass]=\"{'tabs-active' : currentFilter === 'popular',\n ' font-medium':currentFilter !== 'popular'}\" mat-button (click)=\"filter('popular')\" role=\"button\">Popular</a>\n <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option watching_link\" mat-button role=\"button\">Watching</a>\n </div>\n <div class=\"flex items-center\">\n <a class=\"all_category_link mat-subheading-2 margin-remove\">All categories </a>\n </div>\n </div>\n </ng-container>\n <!-- <lib-app-loader *ngIf=\"showLoader\"></lib-app-loader> -->\n\n\n <ng-container *ngIf=\"discussionList && discussionList.length > 0\">\n <div (click)=\"navigateToDiscussionDetails(data);logTelemetry($event)\"\n *ngFor=\"let data of discussionList\" id=\"discuss-card\">\n <lib-discuss-card [discussionData]=\"data\"></lib-discuss-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\" !(discussionList && discussionList.length > 0)\">\n <div class=\"no-card-content\" tabindex=\"0\">\n <div class=\"no-data-label\">No Data</div>\n <div>\n <span>&nbsp;</span>\n </div>\n </div>\n </ng-container>\n <!-- <div class=\"flex flex-1 flex-column margin-fix pagination-container\">\n <ws-app-pagination [pager]=\"pager\" (changePage)=\"navigateWithPage($event)\"></ws-app-pagination>\n </div> -->\n </div>\n <div *ngIf=\"!isWidget\" class=\"flex flex-1 right_tag_box\" #stickyMenu [class.sticky]=\"sticky\">\n <lib-discuss-trending-tags [tags]=\"trendingTags\" (stateChange)=\"acceptData($event)\"></lib-discuss-trending-tags>\n </div>\n </div>\n\n <lib-discuss-start (close)=\"closeModal($event)\" *ngIf=\"showStartDiscussionModal\" [categoryId]=\"startDiscussionCategoryId\">\n </lib-discuss-start>\n</div>", styles: [".fade:not(.show){opacity:1!important}.buton{display:flex;border:.0625rem solid;flex:1;background:var(--red);align-content:center;text-align:center}.sticky{position:fixed;top:0;overflow:hidden;z-index:10;width:100%}.text-box{display:flex;border:.0625rem solid;flex:3;align-content:center;text-align:center}.overflow{overflow:hidden}.font-medium{font-weight:500!important}.discuss-border{border-radius:.25rem;border:.0625rem solid var(--gray-200);flex:1}.discuss .mat-form-field-wrapper{padding-bottom:0}.discuss .mat-form-field-wrapper .mat-form-field-infix{border-top-width:.25rem!important;padding:0;padding-bottom:.25rem}.discuss-home{background:var(--primary) 0% 0% no-repeat padding-box;border-radius:0px .25rem .25rem 0px;padding:.875rem 2rem;min-width:-moz-fit-content;min-width:fit-content;margin:0 1rem 1rem}.flex-3{flex:3}.filter .filter-option{border-radius:0;border-bottom-width:.125rem;border-top-width:0;border-left-width:0;border-right-width:0;border-bottom:.0625rem solid var(--black)}.filter .filter-option.tabs-active{border-bottom:.1875rem solid var(--blue)}.start-btn-hint{display:block;margin-bottom:0;padding:1rem}.tab_margin{margin-bottom:1rem!important}a.all_category_link{color:var(--primary);display:none}.watching_link{display:none}@media (max-width: 768px){.main-div{display:block!important;width:100%!important;padding:0!important}.discussion_outer_box{display:block!important}.discussion_main_box,.right_tag_box{width:100%;display:block!important;float:none}}\n"] }]
262
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.DiscussionService }, { type: i3.ConfigService }, { type: i1.ActivatedRoute }, { type: i4.TelemetryUtilsService }, { type: i5.NavigationServiceService }]; }, propDecorators: { context: [{
263
+ type: Input
264
+ }], categoryAction: [{
265
+ type: Input
266
+ }], stateChange: [{
267
+ type: Output
268
+ }] } });
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY3Vzcy1hbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGlzY3Vzc2lvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvZGlzY3Vzcy1hbGwvZGlzY3Vzcy1hbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGlzY3Vzc2lvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvZGlzY3Vzcy1hbGwvZGlzY3Vzcy1hbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFLNUYsT0FBTyxLQUFLLFNBQVMsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUE7QUFDM0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7OztBQUkzRCxvRUFBb0U7QUFFcEUsbUJBQW1CO0FBT25CLE1BQU0sT0FBTyxtQkFBbUI7SUEyQjlCLFlBQ1MsTUFBYyxFQUNiLEtBQXFCLEVBQ3JCLGlCQUFvQyxFQUNwQyxhQUE0QixFQUM3QixjQUE4QixFQUM3QixjQUFxQyxFQUNyQyxpQkFBMkM7SUFDbkQsdUNBQXVDOztRQVBoQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FB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Q0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDNUM7SUFFSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUs7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFLO1FBQ2QsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQzFDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTthQUNuQjtZQUNELDJEQUEyRDtTQUM1RDtRQUNELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQzsrR0F4UlUsbUJBQW1CO21HQUFuQixtQkFBbUIsa0tDdEJoQyw2aElBb0VNOzs0RkQ5Q08sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjs4UkFNbEIsT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPTlRFWFRfUFJPUFMgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2Rpc2N1c3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBEaXNjdXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Rpc2N1c3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVsZW1ldHJ5VXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi90ZWxlbWV0cnktdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgKiBhcyBDT05TVEFOVFMgZnJvbSAnLi8uLi8uLi9jb21tb24vY29uc3RhbnRzLmpzb24nO1xuLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHsgTlNEaXNjdXNzRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9kaXNjdXNzLm1vZGVsJztcbmltcG9ydCB7IERpc2N1c3NTdGFydENvbXBvbmVudCB9IGZyb20gJy4uL2Rpc2N1c3Mtc3RhcnQvZGlzY3Vzcy1zdGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uLXNlcnZpY2Uuc2VydmljZSc7XG4vLyBpbXBvcnQgeyBCc01vZGFsU2VydmljZSwgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuXG4vKiB0c2xpbnQ6ZW5hYmxlICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kaXNjdXNzLWFsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXNjdXNzLWFsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rpc2N1c3MtYWxsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGlzY3Vzc0FsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgY29udGV4dDogYW55XG4gIEBJbnB1dCgpIGNhdGVnb3J5QWN0aW9uO1xuXG4gIEBPdXRwdXQoKSBzdGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZGlzY3Vzc2lvbkxpc3Q6IGFueVtdO1xuICByb3V0ZVBhcmFtczogYW55O1xuICBzaG93U3RhcnREaXNjdXNzaW9uTW9kYWwgPSBmYWxzZTtcbiAgY2F0ZWdvcnlJZDogc3RyaW5nO1xuICBpc1RvcGljQ3JlYXRvciA9IGZhbHNlO1xuICBzaG93TG9hZGVyID0gZmFsc2U7XG4gIGN1cnJlbnRGaWx0ZXIgPSAncmVjZW50J1xuICBjdXJyZW50QWN0aXZlUGFnZTogbnVtYmVyID0gMTtcbiAgZmV0Y2hOZXdEYXRhOiBmYWxzZTtcbiAgLy8gbW9kYWxSZWY6IEJzTW9kYWxSZWY7XG4gIHBhcmFtc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBnZXRQYXJhbXM6IGFueTtcbiAgY0lkczogYW55ID0gW107XG4gIGFsbFRvcGljczogYW55O1xuICB0cmVuZGluZ1RhZ3MhOiBOU0Rpc2N1c3NEYXRhLklUYWdbXTtcbiAgc3RpY2t5ID0gZmFsc2U7XG4gIGRhdGFcbiAgc3RhcnREaXNjdXNzaW9uQ2F0ZWdvcnlJZDogYW55O1xuICBpc1dpZGdldDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBkaXNjdXNzaW9uU2VydmljZTogRGlzY3Vzc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB0ZWxlbWV0cnlVdGlsczogVGVsZW1ldHJ5VXRpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlU2VydmljZVxuICAgIC8vIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudGVsZW1ldHJ5VXRpbHMubG9nSW1wcmVzc2lvbihOU0Rpc2N1c3NEYXRhLklQYWdlTmFtZS5IT01FKTtcbiAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLmlzV2lkZ2V0ICA9IHRydWVcbiAgICAgIHRoaXMuZ2V0Rm9ydW1JZHMoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNJZHMgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q2F0ZWdvcmllcygpLnJlc3VsdFxuICAgICAgdGhpcy5sb2FkRGlzY3Vzc2lvbkRhdGEoKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldEZvcnVtSWRzKCkge1xuICAgIGxldCBib2R5ID0ge1xuICAgICAgXCJpZGVudGlmaWVyXCI6XG4gICAgICAgIHRoaXMuY29udGV4dC5jb250ZXh0SWRBcnJcbiAgICAgICxcbiAgICAgIFwidHlwZVwiOiB0aGlzLmNvbnRleHQuY29udGV4dFR5cGVcbiAgICB9XG4gICAgbGV0IHJlc3AgPSBhd2FpdCB0aGlzLmRpc2N1c3Npb25TZXJ2aWNlLmdldEZvcnVtSWRzKGJvZHkpXG4gICAgaWYgKHJlc3AucmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc3AucmVzdWx0LmZvckVhY2goZm9ydW0gPT4ge1xuICAgICAgICB0aGlzLmNJZHMucHVzaChmb3J1bS5jaWQpXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNjdXNzaW9uU2VydmljZS5jcmVhdGVGb3J1bSh0aGlzLmNvbnRleHQuY2F0ZWdvcnlPYmopLnN1YnNjcmliZSgoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBkYXRhLnJlc3VsdC5mb3JFYWNoKGZvcnVtID0+IHtcbiAgICAgICAgICB0aGlzLmNJZHMucHVzaChmb3J1bS5uZXdDaWQpXG4gICAgICAgIH0pO1xuICAgICAgfSkpXG5cbiAgICB9XG4gICAgdGhpcy5sb2FkRGlzY3Vzc2lvbkRhdGEoKVxuICB9XG5cbiAgbG9hZERpc2N1c3Npb25EYXRhKCkge1xuICAgIC8vIGRlYnVnZ2VyXG4gICAgLy8gdGhpcy5jSWRzID0gdGhpcy5jb250ZXh0ID8gdGhpcy5jb250ZXh0LmNhdGVnb3JpZXMgOiB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q2F0ZWdvcmllcygpXG4gICAgdGhpcy5jYXRlZ29yeUlkID0gdGhpcy5kaXNjdXNzaW9uU2VydmljZS5nZXRDb250ZXh0KENPTlRFWFRfUFJPUFMuY2lkKTtcbiAgICBpZiAodGhpcy5jb25maWdTZXJ2aWNlLmhhc0NvbnRleHQoKSB8fCB0aGlzLmNvbnRleHQpIHtcbiAgICAgIHRoaXMuZ2V0Q29udGV4dEJhc2VkRGlzY3Vzc2lvbih0aGlzLmNJZHMpXG4gICAgICAvLyBUaGlzIGlzIHRvIHNob3cgY29udGV4dCBiYXNlZCB0cmVuZGluZyB0YWdzXG4gICAgICB0aGlzLmdldENvbnRleHRCYXNlZFRhZ3ModGhpcy5jSWRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhpcy5jdXJyZW50QWN0aXZlUGFnZSA9IDFcbiAgICAgIHRoaXMucmVmcmVzaERhdGEoKTtcbiAgICAgIC8vIFRoaXMgaXMgdG8gc2hvdyB0cmVuZGluZyB0YWdzXG4gICAgICB0aGlzLmZldGNoQWxsVGFncygpO1xuICAgIH1cbiAgfVxuXG4gIG5hdmlnYXRlVG9EaXNjdXNzaW9uRGV0YWlscyhkaXNjdXNzaW9uRGF0YSkge1xuXG4gICAgY29uc3QgbWF0Y2hlZFRvcGljID0gXy5maW5kKHRoaXMudGVsZW1ldHJ5VXRpbHMuZ2V0Q29udGV4dCgpLCB7IHR5cGU6ICdUb3BpYycgfSk7XG4gICAgaWYgKG1hdGNoZWRUb3BpYykge1xuICAgICAgdGhpcy50ZWxlbWV0cnlVdGlscy5kZWxldGVDb250ZXh0KG1hdGNoZWRUb3BpYyk7XG4gICAgfVxuXG4gICAgdGhpcy50ZWxlbWV0cnlVdGlscy51cHBlbmRDb250ZXh0KHtcbiAgICAgIGlkOiBfLmdldChkaXNjdXNzaW9uRGF0YSwgJ3RpZCcpLFxuICAgICAgdHlwZTogJ1RvcGljJ1xuICAgIH0pO1xuXG4gICAgY29uc3Qgc2x1ZyA9IF8udHJpbShfLmdldChkaXNjdXNzaW9uRGF0YSwgJ3NsdWcnKSk7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbiAgICBjb25zdCBpbnB1dCA9IHsgZGF0YTogeyB1cmw6IGAke3RoaXMuY29uZmlnU2VydmljZS5nZXRSb3V0ZXJTbHVnKCl9JHtDT05TVEFOVFMuUk9VVEVTLlRPUElDfSR7c2x1Z31gLCBxdWVyeVBhcmFtczoge30gfSwgYWN0aW9uOiBDT05TVEFOVFMuQ0FURUdPUllfREVUQUlMUywgfVxuICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UubmF2aWdhdGUoaW5wdXQpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCh7IGFjdGlvbjogQ09OU1RBTlRTLkNBVEVHT1JZX0RFVEFJTFMsIHRpdGxlOiBkaXNjdXNzaW9uRGF0YS50aXRsZSwgdGlkOiBkaXNjdXNzaW9uRGF0YS50aWQgfSk7XG5cbiAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldFJvdXRlclNsdWcoKX0ke0NPTlNUQU5UUy5ST1VURVMuVE9QSUN9JHtzbHVnfWBdLCB7IHF1ZXJ5UGFyYW1zSGFuZGxpbmc6IFwibWVyZ2VcIiB9KTtcbiAgfVxuXG4gIGFjY2VwdERhdGEoc2luZ2xlVGFnRGV0YWlscykge1xuICAgIC8vIGRlYnVnZ2VyXG4gICAgaWYodGhpcy5jb250ZXh0KXtcbiAgICBzaW5nbGVUYWdEZXRhaWxzLmNJZHMgPSAgdGhpcy5jSWRzO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoc2luZ2xlVGFnRGV0YWlscyk7XG4gIH1cblxuICBnZXREaXNjdXNzaW9uTGlzdChzbHVnOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xuICAgIC8vIFRPRE8gOiB0aGlzLmN1cnJlbnRBY3RpdmVQYWdlIHNob3VsYiBiZSBkeW5hbWljIHdoZW4gcGFnaW5hdGlvbiB3aWxsIGJlIGltcGxlbWVudGVkXG4gICAgdGhpcy5kaXNjdXNzaW9uU2VydmljZS5nZXRDb250ZXh0QmFzZWRUb3BpYyhzbHVnLCB0aGlzLmN1cnJlbnRBY3RpdmVQYWdlKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNUb3BpY0NyZWF0b3IgPSBfLmdldChkYXRhLCAncHJpdmlsZWdlcy50b3BpY3M6Y3JlYXRlJykgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XG4gICAgICB0aGlzLmRpc2N1c3Npb25MaXN0ID0gXy51bmlvbihfLmdldChkYXRhLCAndG9waWNzJyksIF8uZ2V0KGRhdGEsICdjaGlsZHJlbicpKTtcbiAgICB9LCBlcnJvciA9PiB7XG4gICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgIC8vIFRPRE86IFRvYXN0ZXJcbiAgICAgIGNvbnNvbGUubG9nKCdlcnJvciBmZXRjaGluZyB0b3BpYyBsaXN0JywgZXJyb3IpO1xuICAgIH0pO1xuICB9XG5cbiAgZmlsdGVyKGtleTogc3RyaW5nIHwgJ3JlY2VudCcgfCAncG9wdWxhcicpIHtcbiAgICBpZiAoa2V5KSB7XG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXIgPSBrZXk7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlICdyZWNlbnQnOlxuICAgICAgICAgIHRoaXMuY0lkcy5sZW5ndGggPyB0aGlzLmdldENvbnRleHREYXRhKHRoaXMuY0lkcy5yZXN1bHQpIDogdGhpcy5maWxscmVjZW50KClcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncG9wdWxhcic6XG4gICAgICAgICAgdGhpcy5jSWRzLmxlbmd0aCA/IHRoaXMuZ2V0Q29udGV4dERhdGEodGhpcy5jSWRzLnJlc3VsdCkgOiB0aGlzLmZpbGxQb3B1bGFyKClcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmaWxscmVjZW50KF9wYWdlPzogYW55KSB7XG4gICAgdGhpcy5nZXRSZWNlbnREYXRhKCk7XG4gIH1cblxuICBmaWxsUG9wdWxhcihwYWdlPzogYW55KSB7XG4gICAgdGhpcy5zaG93TG9hZGVyID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5kaXNjdXNzaW9uU2VydmljZS5mZXRjaFBvcHVsYXJEKHBhZ2UpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICB0aGlzLmRpc2N1c3Npb25MaXN0ID0gW107XG4gICAgICBfLmZpbHRlcihyZXNwb25zZS50b3BpY3MsICh0b3BpYykgPT4ge1xuICAgICAgICBpZiAodG9waWMudXNlci51aWQgIT09IDAgJiYgdG9waWMuY2lkICE9PSAxICkge1xuICAgICAgICAgIHRoaXMuZGlzY3Vzc2lvbkxpc3QucHVzaCh0b3BpYyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy8gdGhpcy5kaXNjdXNzaW9uTGlzdCA9IF8uZ2V0KHJlc3BvbnNlLCAndG9waWNzJylcbiAgICB9LCBlcnJvciA9PiB7XG4gICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgIC8vIFRPRE86IFRvYXN0ZXJcbiAgICAgIGNvbnNvbGUubG9nKCdlcnJvciBmZXRjaGluZyB0b3BpYyBsaXN0JywgZXJyb3IpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q29udGV4dEJhc2VkRGlzY3Vzc2lvbihjaWQ6IGFueSkge1xuICAgIHRoaXMuY3VycmVudEZpbHRlciA9PT0gJ3JlY2VudCcgPyB0aGlzLmdldENvbnRleHREYXRhKGNpZCkgOiB0aGlzLmdldENvbnRleHREYXRhKGNpZClcbiAgfVxuXG4gIHJlZnJlc2hEYXRhKHBhZ2U/OiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRGaWx0ZXIgPT09ICdyZWNlbnQnID8gdGhpcy5nZXRSZWNlbnREYXRhKCkgOiB0aGlzLmZpbGxQb3B1bGFyKHBhZ2UpXG4gIH1cblxuICBnZXRSZWNlbnREYXRhKCkge1xuICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuZGlzY3Vzc2lvblNlcnZpY2UuZmV0Y2hSZWNlbnRQb3N0KCkuc3Vic2NyaWJlKFxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kaXNjdXNzaW9uTGlzdCA9IFtdO1xuICAgICAgICBfLmZpbHRlcihkYXRhLnRvcGljcywgKHRvcGljKSA9PiB7XG4gICAgICAgICAgaWYgKHRvcGljLnVzZXIudWlkICE9PSAwICYmIHRvcGljLmNpZCAhPT0gMSkge1xuICAgICAgICAgICAgdGhpcy5kaXNjdXNzaW9uTGlzdC5wdXNoKHRvcGljKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRpc2N1c3Npb25MaXN0ID0gXy5nZXQoZGF0YSwgJ3Bvc3RzJyk7XG4gICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAvLyBUT0RPOiBUb2FzdGVyXG4gICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciBmZXRjaGluZyB0b3BpYyBsaXN0JywgZXJyb3IpO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXRDb250ZXh0RGF0YShjaWQ6IGFueSkge1xuICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgY29uc3QgcmVxID0ge1xuICAgICAgLy8gcmVxdWVzdDoge1xuICAgICAgY2lkczogY2lkXG4gICAgICAvLyB9XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5kaXNjdXNzaW9uU2VydmljZS5nZXRDb250ZXh0QmFzZWREaXNjdXNzaW9uKHJlcSkuc3Vic2NyaWJlKFxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGRhdGEucmVzdWx0XG4gICAgICAgIGxldCByZXMgPSByZXN1bHQuZmlsdGVyKChlbGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChlbGVtLnN0YXR1c0NvZGUgIT09IDQwNClcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5hbGxUb3BpY3MgPSBfLm1hcChyZXMsICh0b3BpYykgPT4gdG9waWMudG9waWNzKTtcbiAgICAgICAgdGhpcy5kaXNjdXNzaW9uTGlzdCA9IF8uZmxhdHRlbih0aGlzLmFsbFRvcGljcylcbiAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIC8vIFRPRE86IFRvYXN0ZXJcbiAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yIGZldGNoaW5nIHRvcGljIGxpc3QnLCBlcnJvcik7XG4gICAgICB9KTtcbiAgfVxuXG4gIGZldGNoQWxsVGFncygpIHtcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMuZGlzY3Vzc2lvblNlcnZpY2UuZmV0Y2hBbGxUYWcoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMudHJlbmRpbmdUYWdzID0gXy5nZXQoZGF0YSwgJ3RhZ3MnKTtcbiAgICB9LCBlcnJvciA9PiB7XG4gICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgIC8vIFRPRE86IHRvYXN0ZXJcbiAgICAgIGNvbnNvbGUubG9nKCdlcnJvciBmZXRjaGluZyB0YWdzJyk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRDb250ZXh0QmFzZWRUYWdzKGNpZDogYW55KSB7XG4gICAgY29uc3QgcmVxID0ge1xuICAgICAgY2lkczogY2lkXG4gICAgfVxuICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5kaXNjdXNzaW9uU2VydmljZS5jb250ZXh0QmFzZWRUYWdzKHJlcSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICB0aGlzLnRyZW5kaW5nVGFncyA9IF8uZ2V0KGRhdGEsICdyZXN1bHQnKTtcbiAgICB9LCBlcnJvciA9PiB7XG4gICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgIC8vIFRPRE86IHRvYXN0ZXJcbiAgICAgIGNvbnNvbGUubG9nKCdlcnJvciBmZXRjaGluZyB0YWdzJyk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBzdGFydERpc2N1c3Npb24odGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgLy8gICB0aGlzLm1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyh0ZW1wbGF0ZSk7XG5cbiAgLy8gdGhpcy5zaG93U3RhcnREaXNjdXNzaW9uTW9kYWwgPSB0cnVlO1xuICAvLyB0aGlzLmJzTW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KERpc2N1c3NTdGFydENvbXBvbmVudCk7XG5cbiAgLy8gdGhpcy5ic01vZGFsUmVmLmNvbnRlbnQub25DbG9zZSgpLnN1YnNjcmliZShcbiAgLy8gICBjb25zb2xlLmxvZygnY29tcGxldGVkJylcbiAgLy8gKTtcbiAgLy8gfVxuXG4gIHN0YXJ0RGlzY3Vzc2lvbigpIHtcbiAgICBkZWJ1Z2dlclxuICAgIHRoaXMuc2hvd1N0YXJ0RGlzY3Vzc2lvbk1vZGFsID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLnN0YXJ0RGlzY3Vzc2lvbkNhdGVnb3J5SWQgPSB0aGlzLmNJZHM7XG4gICAgfVxuXG4gIH1cblxuICBsb2dUZWxlbWV0cnkoZXZlbnQpIHtcbiAgICB0aGlzLnRlbGVtZXRyeVV0aWxzLmxvZ0ludGVyYWN0KGV2ZW50LCBOU0Rpc2N1c3NEYXRhLklQYWdlTmFtZS5IT01FKTtcbiAgfVxuXG4gIGNsb3NlTW9kYWwoZXZlbnQpIHtcbiAgICBpZiAoXy5nZXQoZXZlbnQsICdtZXNzYWdlJykgPT09ICdzdWNjZXNzJykge1xuICAgICAgaWYgKHRoaXMuY29udGV4dCkge1xuICAgICAgICB0aGlzLmdldENvbnRleHRCYXNlZERpc2N1c3Npb24odGhpcy5jSWRzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpXG4gICAgICB9XG4gICAgICAvLyB0aGlzLmdldERpc2N1c3Npb25MaXN0KF8uZ2V0KHRoaXMucm91dGVQYXJhbXMsICdzbHVnJykpO1xuICAgIH1cbiAgICB0aGlzLnNob3dTdGFydERpc2N1c3Npb25Nb2RhbCA9IGZhbHNlO1xuICB9XG59IiwiPGRpdiBjbGFzcz1cIm1haW4tZGl2XCI+XG5cbiAgICA8IS0tIDxidXR0b24gKGNsaWNrKT1cInN0YXJ0RGlzY3Vzc2lvbigpO2xvZ1RlbGVtZXRyeSgkZXZlbnQpXCIgY2xhc3M9XCJkZi1idG4gZGYtYnRuLW5vcm1hbCBkZi1idG4tcHJpbWFyeVwiIGRhdGEtdG9nZ2xlPVwibW9kYWxcIlxuICAgICAgICBkYXRhLXRhcmdldD1cIiNteU1vZGFsXCIgaWQ9XCJzdGFydC1kaXNjdXNzaW9uXCI+U3RhcnQgRGlzY3Vzc2lvbjwvYnV0dG9uPiAtLT5cblxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIGN1c3RvbSBkaXNjdXNzaW9uX291dGVyX2JveFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTMgZmxleC1jb2x1bW4gZGlzY3Vzc2lvbl9tYWluX2JveFwiPlxuICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwic3RhcnREaXNjdXNzaW9uKCk7bG9nVGVsZW1ldHJ5KCRldmVudClcIiBkYXRhLXRvZ2dsZT1cIm1vZGFsXCJcbiAgICAgICAgICAgIGRhdGEtdGFyZ2V0PVwiI215TW9kYWxcIiBpZD1cInN0YXJ0LWRpc2N1c3Npb25cIj5cbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJmbGV4IGZsZXgtMSBjdXJzb3ItcG9pbnRlciBtYXJnaW4tZml4IGhlaWdodC00OFwiIGkxOG4tYXJpYS1sYWJlbCByb2xlPVwibGlua1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC0xIGl0ZW1zLWNlbnRlciBib3JkZXIgZGlzY3VzcyBib3JkZXItc29saWQgZGlzY3Vzcy1ib3JkZXIgd3MtbWF0LXByaW1hcnktYmFja2dyb3VuZC1vcDEwMCBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBkaXNjdXNzIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvdmVyZmxvdyBtbC00IHN0YXJ0LWJ0bi1oaW50IG1iLTAgbWF0LWJvZHktMVwiPkFzayBhIHF1ZXN0aW9uIG9yIHBvc3QgYW4gaWRlYTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXNjdXNzLWhvbWUgdGV4dC13aGl0ZSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBjdXJzb3ItcG9pbnRlciBtYXQtc3ViaGVhZGluZy0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgU3RhcnQgZGlzY3Vzc2lvblxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwidGV4dC1ib3hcIj5Bc2sgYSBxdWVzdGlvbiBvciBwb3N0IGFuIGlkZWE8L2Rpdj4gXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXRvblwiPnN0YXJ0IGRpc2N1c3Npb248L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgZmxleC1yb3cgbWFyZ2luLWZpeCB0YWJfbWFyZ2luXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBmaWx0ZXIgbWF4LWhlaWdodC02MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIHJvbGU9XCJsaW5rXCIgY2xhc3M9XCJmaWx0ZXItb3B0aW9uXCIgW25nQ2xhc3NdPVwieyd0YWJzLWFjdGl2ZScgOiBjdXJyZW50RmlsdGVyID09PSAncmVjZW50JyxcbiAgICAgICAgICAnIGZvbnQtbWVkaXVtJzpjdXJyZW50RmlsdGVyICE9PSAncmVjZW50J31cIiBtYXQtYnV0dG9uIChjbGljayk9XCJmaWx0ZXIoJ3JlY2VudCcpXCIgcm9sZT1cImJ1dHRvblwiPlJlY2VudDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAgcm9sZT1cImxpbmtcIiBjbGFzcz1cImZpbHRlci1vcHRpb25cIiBbbmdDbGFzc109XCJ7J3RhYnMtYWN0aXZlJyA6IGN1cnJlbnRGaWx0ZXIgPT09ICdwb3B1bGFyJyxcbiAgICAgICAgICAnIGZvbnQtbWVkaXVtJzpjdXJyZW50RmlsdGVyICE9PSAncG9wdWxhcid9XCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiZmlsdGVyKCdwb3B1bGFyJylcIiByb2xlPVwiYnV0dG9uXCI+UG9wdWxhcjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAgcm9sZT1cImxpbmtcIiBjbGFzcz1cImZpbHRlci1vcHRpb24gd2F0Y2hpbmdfbGlua1wiICBtYXQtYnV0dG9uIHJvbGU9XCJidXR0b25cIj5XYXRjaGluZzwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJhbGxfY2F0ZWdvcnlfbGluayBtYXQtc3ViaGVhZGluZy0yIG1hcmdpbi1yZW1vdmVcIj5BbGwgY2F0ZWdvcmllcyA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8IS0tIDxsaWItYXBwLWxvYWRlciAqbmdJZj1cInNob3dMb2FkZXJcIj48L2xpYi1hcHAtbG9hZGVyPiAtLT5cblxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzY3Vzc2lvbkxpc3QgICYmIGRpc2N1c3Npb25MaXN0Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJuYXZpZ2F0ZVRvRGlzY3Vzc2lvbkRldGFpbHMoZGF0YSk7bG9nVGVsZW1ldHJ5KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBkaXNjdXNzaW9uTGlzdFwiIGlkPVwiZGlzY3Vzcy1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItZGlzY3Vzcy1jYXJkIFtkaXNjdXNzaW9uRGF0YV09XCJkYXRhXCI+PC9saWItZGlzY3Vzcy1jYXJkPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIgIShkaXNjdXNzaW9uTGlzdCAmJiBkaXNjdXNzaW9uTGlzdC5sZW5ndGggPiAwKVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuby1jYXJkLWNvbnRlbnRcIiB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vLWRhdGEtbGFiZWxcIj5ObyBEYXRhPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4mbmJzcDs8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBmbGV4LWNvbHVtbiBtYXJnaW4tZml4IHBhZ2luYXRpb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8d3MtYXBwLXBhZ2luYXRpb24gW3BhZ2VyXT1cInBhZ2VyXCIgKGNoYW5nZVBhZ2UpPVwibmF2aWdhdGVXaXRoUGFnZSgkZXZlbnQpXCI+PC93cy1hcHAtcGFnaW5hdGlvbj5cbiAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1dpZGdldFwiIGNsYXNzPVwiZmxleCBmbGV4LTEgcmlnaHRfdGFnX2JveFwiICNzdGlja3lNZW51IFtjbGFzcy5zdGlja3ldPVwic3RpY2t5XCI+XG4gICAgICAgICAgICA8bGliLWRpc2N1c3MtdHJlbmRpbmctdGFncyBbdGFnc109XCJ0cmVuZGluZ1RhZ3NcIiAoc3RhdGVDaGFuZ2UpPVwiYWNjZXB0RGF0YSgkZXZlbnQpXCI+PC9saWItZGlzY3Vzcy10cmVuZGluZy10YWdzPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxsaWItZGlzY3Vzcy1zdGFydCAoY2xvc2UpPVwiY2xvc2VNb2RhbCgkZXZlbnQpXCIgKm5nSWY9XCJzaG93U3RhcnREaXNjdXNzaW9uTW9kYWxcIiBbY2F0ZWdvcnlJZF09XCJzdGFydERpc2N1c3Npb25DYXRlZ29yeUlkXCI+XG4gICAgPC9saWItZGlzY3Vzcy1zdGFydD5cbjwvZGl2PiJdfQ==