@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 @@
1
+ {"version":3,"file":"jeraldj-discussions-ui.mjs","sources":["../../../projects/discussion-ui/src/lib/discussion-events.service.ts","../../../projects/discussion-ui/src/lib/telemetry-utils.service.ts","../../../projects/discussion-ui/src/lib/elements/category-card/category-card.component.ts","../../../projects/discussion-ui/src/lib/elements/category-card/category-card.component.html","../../../projects/discussion-ui/src/lib/elements/discuss-card/discuss-card.component.ts","../../../projects/discussion-ui/src/lib/elements/discuss-card/discuss-card.component.html","../../../projects/discussion-ui/src/lib/elements/avatar-photo/avatar-photo.component.ts","../../../projects/discussion-ui/src/lib/elements/avatar-photo/avatar-photo.component.html","../../../projects/discussion-ui/src/lib/config/url.config.ts","../../../projects/discussion-ui/src/lib/services/discussion.service.ts","../../../projects/discussion-ui/src/lib/elements/app-loader/app-loader.component.ts","../../../projects/discussion-ui/src/lib/elements/app-loader/app-loader.component.html","../../../projects/discussion-ui/src/lib/services/config.service.ts","../../../projects/discussion-ui/src/lib/events.service.ts","../../../projects/discussion-ui/src/lib/wrapper-navigate.service.ts","../../../projects/discussion-ui/src/lib/router-service.service.ts","../../../projects/discussion-ui/src/lib/navigation-service.service.ts","../../../projects/discussion-ui/src/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.ts","../../../projects/discussion-ui/src/lib/elements/related-discussion/related-discussion.component.ts","../../../projects/discussion-ui/src/lib/elements/related-discussion/related-discussion.component.html","../../../projects/discussion-ui/src/lib/pipes/pipe-filter/pipe-filter.pipe.ts","../../../projects/discussion-ui/src/lib/pipes/sort-by/sort-by.pipe.ts","../../../projects/discussion-ui/src/lib/pipes/split-initials/split-initials.pipe.ts","../../../projects/discussion-ui/src/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.ts","../../../projects/discussion-ui/src/lib/pipes/pipes.module.ts","../../../projects/discussion-ui/src/lib/elements/post-reply/post-reply.component.ts","../../../projects/discussion-ui/src/lib/elements/post-reply/post-reply.component.html","../../../projects/discussion-ui/src/lib/elements/sliders/sliders.component.ts","../../../projects/discussion-ui/src/lib/elements/sliders/sliders.component.html","../../../projects/discussion-ui/src/lib/models/discuss.model.ts","../../../projects/discussion-ui/src/lib/elements/load-alert/load-alert.component.ts","../../../projects/discussion-ui/src/lib/elements/load-alert/load-alert.component.html","../../../projects/discussion-ui/src/lib/elements/elements.module.ts","../../../projects/discussion-ui/src/lib/components/side-pannel/side-pannel.component.ts","../../../projects/discussion-ui/src/lib/components/side-pannel/side-pannel.component.html","../../../projects/discussion-ui/src/lib/components/lib-entry/lib-entry.component.ts","../../../projects/discussion-ui/src/lib/components/lib-entry/lib-entry.component.html","../../../projects/discussion-ui/src/lib/services/discuss-utils.service.ts","../../../projects/discussion-ui/src/lib/components/discuss-start/discuss-start.component.ts","../../../projects/discussion-ui/src/lib/components/discuss-start/discuss-start.component.html","../../../projects/discussion-ui/src/lib/components/discuss-home/discuss-home.component.ts","../../../projects/discussion-ui/src/lib/components/discuss-home/discuss-home.component.html","../../../projects/discussion-ui/src/lib/components/discuss-category/discuss-category.component.ts","../../../projects/discussion-ui/src/lib/components/discuss-category/discuss-category.component.html","../../../projects/discussion-ui/src/lib/components/discuss-tags/discuss-tags.component.ts","../../../projects/discussion-ui/src/lib/components/discuss-tags/discuss-tags.component.html","../../../projects/discussion-ui/src/lib/components/my-discussion/my-discussion.component.ts","../../../projects/discussion-ui/src/lib/components/my-discussion/my-discussion.component.html","../../../projects/discussion-ui/src/lib/components/discussion-details/discussion-details.component.ts","../../../projects/discussion-ui/src/lib/components/discussion-details/discussion-details.component.html","../../../projects/discussion-ui/src/lib/components/trending-tags/trending-tags.component.ts","../../../projects/discussion-ui/src/lib/components/trending-tags/trending-tags.component.html","../../../projects/discussion-ui/src/lib/components/discuss-all/discuss-all.component.ts","../../../projects/discussion-ui/src/lib/components/discuss-all/discuss-all.component.html","../../../projects/discussion-ui/src/lib/components/tag-all-discussion/tag-all-discussion.component.ts","../../../projects/discussion-ui/src/lib/components/tag-all-discussion/tag-all-discussion.component.html","../../../projects/discussion-ui/src/lib/components/components.module.ts","../../../projects/discussion-ui/src/lib/discussion-routing/discussion-routing.module.ts","../../../projects/discussion-ui/src/lib/wrapper/base-wrapper/base-wrapper.component.ts","../../../projects/discussion-ui/src/lib/wrapper/base-wrapper/base-wrapper.component.html","../../../projects/discussion-ui/src/lib/wrapper/category-widget/category-widget.component.ts","../../../projects/discussion-ui/src/lib/wrapper/category-widget/category-widget.component.html","../../../projects/discussion-ui/src/lib/wrapper/tags-widget/tags-widget.component.ts","../../../projects/discussion-ui/src/lib/wrapper/tags-widget/tags-widget.component.html","../../../projects/discussion-ui/src/lib/discussion-ui.module.ts","../../../projects/discussion-ui/src/lib/services/abstract-config.service.ts","../../../projects/discussion-ui/src/public-api.ts","../../../projects/discussion-ui/src/jeraldj-discussions-ui.ts"],"sourcesContent":["import { Injectable, EventEmitter } from '@angular/core';\nimport { Subject } from 'rxjs';\n/* tslint:disable */\nimport * as _ from 'lodash'\n/* tslint:enable */\n@Injectable({\n providedIn: 'root'\n})\nexport class DiscussionEventsService {\n\n public telemetryEvent = new Subject<any>();\n public actionEvent = new EventEmitter<any>();\n\n constructor() { }\n\n emitTelemetry(event) {\n console.log('Lib Event', event);\n if (!_.isEmpty(event)) {\n this.telemetryEvent.next(event);\n }\n }\n}\n","\nimport { DiscussionEventsService } from './discussion-events.service';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n/* tslint:disable */\nimport * as _ from 'lodash'\n/* tslint:enable */\ninterface ITelemetryObj {\n eid: string,\n edata: {},\n context?: {}\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TelemetryUtilsService {\n\n _context = []\n currentObj = {};\n\n constructor(\n private discussionEvents: DiscussionEventsService,\n private router: Router\n ) { }\n\n setContext(context) {\n this._context = context;\n this.currentObj = _.last(context);\n }\n\n uppendContext(data) {\n const matchedC = _.find(this._context, { id: data.id });\n if (!_.isEmpty(data) && !_.isEqual(data, matchedC)) {\n this._context.push(data);\n }\n this.currentObj = _.last(this._context);\n }\n\n deleteContext(prevTopic) {\n const topic = _.find(this._context, prevTopic);\n if (topic) {\n this._context = _.reject(this._context, topic);\n }\n }\n\n getContext() {\n return this._context;\n }\n\n logImpression(pageId) {\n this.discussionEvents.emitTelemetry({});\n const impressionEvent: ITelemetryObj = {\n eid: 'IMPRESSION',\n edata: {\n type: 'view',\n pageid: pageId,\n uri: this.router.url\n }\n }\n if (this.currentObj) {\n impressionEvent.context = { cdata: [{\n id: _.get(this.currentObj, 'id').toString(),\n type: _.get(this.currentObj, 'type') }\n ]};\n }\n this.discussionEvents.emitTelemetry(impressionEvent);\n }\n\n logInteract(event, pageId) {\n const target = _.get(event, 'currentTarget.attributes.id') || _.get(event, 'target.attributes.id') ||\n _.get(event, 'srcElement.attributes.id');\n const interactEvent: ITelemetryObj = {\n eid: 'INTERACT',\n edata: {\n id: _.get(target, 'value') || _.get(event, 'action'),\n type: 'CLICK',\n pageid: pageId\n }\n };\n\n if (this.currentObj) {\n const object = {\n id: _.get(this.currentObj, 'id').toString(),\n type: _.get(this.currentObj, 'type'),\n ver: '1'\n };\n object['rollup'] = this._context.length > 1 ? this.getRollUp() : {};\n interactEvent.context = {\n cdata: [{\n id: _.get(this.currentObj, 'id').toString(),\n type: _.get(this.currentObj, 'type')\n }], object\n };\n }\n\n this.discussionEvents.emitTelemetry(interactEvent);\n }\n\n getRollUp() {\n\n const rollUp = {};\n const data = _.reject(this._context, this.currentObj);\n\n if (this._context.length > 1) {\n data.forEach((element, index) => {\n console.log('rollup', element);\n rollUp['l' + (index + 1)] = element.toString();\n });\n }\n\n if (_.get(this.currentObj, 'type') !== 'Post') {\n return rollUp;\n }\n\n return {};\n\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-category-card',\n templateUrl: './category-card.component.html',\n styleUrls: ['./category-card.component.scss']\n})\nexport class CategoryCardComponent implements OnInit {\n\n // TODO: Create interface for type check\n // TODO: replace mat-icon\n @Input() category: any;\n\n constructor() { }\n\n ngOnInit() {\n console.log(this.category);\n }\n\n}\n\n","<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>","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-discuss-card',\n templateUrl: './discuss-card.component.html',\n styleUrls: ['./discuss-card.component.scss']\n})\nexport class DiscussCardComponent implements OnInit {\n\n @Input() discussionData: any;\n\n constructor() { }\n\n ngOnInit() {\n console.log('discussionData', this.discussionData);\n }\n\n public getBgColor(tagTitle: any) {\n const bgColor = this.stringToColor(tagTitle.toLowerCase());\n const color = this.getContrast();\n return { color, 'background-color': bgColor };\n }\n\n stringToColor(title) {\n let hash = 0;\n\n for (let i = 0; i < title.length; i++) {\n // tslint:disable-next-line: no-bitwise\n hash = title.charCodeAt(i) + ((hash << 5) - hash);\n }\n const hue = Math.abs(hash % 360);\n // tslint:disable-next-line: prefer-template\n const colour = 'hsl(' + hue + ',100%,30%)';\n return colour;\n }\n\n getContrast() {\n return 'rgba(255, 255, 255, 80%)';\n }\n\n IsSingleComent(postCount) {\n if (postCount && (postCount - 1) == 1) {\n return true;\n } else {\n return false;\n }\n }\n}\n","<!-- 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 -->","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-avatar-photo',\n templateUrl: './avatar-photo.component.html',\n styleUrls: ['./avatar-photo.component.css']\n})\nexport class AvatarPhotoComponent implements OnInit {\n\n @Input() photoUrl!: string;\n @Input() name!: string;\n @Input() size = '';\n @Input() randomColor = false;\n @Input() initials?: string;\n public showInitials = false;\n public circleColor!: string;\n random = Math.random().toString(36).slice(2);\n\n // public initials!: string\n\n private colors = [\n // '#EB7181', // red\n '#306933', // green\n // '#000000', // black\n // '#3670B2', // blue\n // '#4E9E87',\n // '#7E4C8D',\n ];\n\n private randomcolors = [\n '#EB7181', // red\n '#006400', // green\n '#000000', // black\n '#3670B2', // blue\n '#4E9E87',\n '#7E4C8D',\n ];\n\n ngOnInit() {\n if (!this.photoUrl) {\n this.showInitials = true;\n if (!this.initials) {\n this.createInititals();\n }\n const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));\n this.circleColor = this.colors[randomIndex];\n if (this.randomColor) {\n const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomcolors.length));\n this.circleColor = this.randomcolors[randomIndex1];\n }\n }\n\n }\n\n private createInititals(): void {\n let initials = '';\n const array = `${this.name} `.toString().split(' ');\n if (array[0] !== 'undefined' && typeof array[1] !== 'undefined') {\n initials += array[0].charAt(0);\n initials += array[1].charAt(0);\n } else {\n for (let i = 0; i < this.name.length; i += 1) {\n if (this.name.charAt(i) === ' ') {\n continue;\n }\n\n if (this.name.charAt(i) === this.name.charAt(i)) {\n initials += this.name.charAt(i);\n\n if (initials.length === 2) {\n break;\n }\n }\n }\n }\n this.initials = initials.toUpperCase();\n }\n}\n","<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>","export const urlConfig = {\n // endpoint configs...!\n host: 'http://localhost:3002',\n // host: 'https://dev.sunbirded.org',\n apiSlug: '/discussion',\n apiBasePath: () => `${urlConfig.host}${urlConfig.apiSlug}`,\n\n // URLs...!\n getAllCategories: () => `${urlConfig.apiBasePath()}/categories`,\n getSingleCategoryDetails: (cid: number) => `${urlConfig.apiBasePath()}/category/${cid}`,\n getAllTags: () => `${urlConfig.apiBasePath()}/tags`,\n getTagBasedDiscussion: (tag: string) => `${urlConfig.apiBasePath()}/tags/${tag}`,\n createPost: () => `${urlConfig.apiBasePath()}/v3/topics`,\n votePost: (pid: number) => `${urlConfig.apiBasePath()}/v3/posts/${pid}/vote`,\n replyPost: (tid: number) => `${urlConfig.apiBasePath()}/v3/topics/${tid}`,\n bookmarkPost: (pid: number) => `${urlConfig.apiBasePath()}/v3/posts/${pid}/bookmark`,\n recentPost: () => `${urlConfig.apiBasePath()}/recent`,\n popularPost: () => `${urlConfig.apiBasePath()}/popular`,\n unread: () => `${urlConfig.apiBasePath()}/topics/unread/total`,\n getTopic: () => `${urlConfig.apiBasePath()}/topic`,\n profile: () => `${urlConfig.apiBasePath()}/users/me`,\n fetchProfile: (slug: string) => `${urlConfig.apiBasePath()}/users/${slug}/about`,\n listUpVote: (slug: string) => `${urlConfig.apiBasePath()}/user/${slug}/upvoted`,\n listDownVoted: (slug: string) => `${urlConfig.apiBasePath()}/user/${slug}/downvoted`,\n listSaved: (slug: string) => `${urlConfig.apiBasePath()}/user/${slug}/bookmarks`,\n fetchNetworkProfile: `user/profileDetails/getUserRegistry`,\n userDetails: (username: string) => `${urlConfig.apiBasePath()}/user/${username}`,\n getContextBasedTopics: (slug: string) => `${urlConfig.apiBasePath()}/category/${slug}`,\n registerUser: () => `${urlConfig.apiBasePath()}/user/v1/create`,\n getContextBasedDiscussion: () => `${urlConfig.apiBasePath()}/category/list`,\n getContextBasedTagDiscussion: () => `${urlConfig.apiBasePath()}/tags/list`\n};\n","import { Inject, Injectable } from '@angular/core';\nimport { of as observableOf, throwError as observableThrowError, Observable, throwError, Subject } from 'rxjs';\nimport { map, catchError } from 'rxjs/operators';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { urlConfig } from './../config/url.config';\nimport { NSDiscussData } from '../models/discuss.model';\n\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { CsDiscussionService } from '@jeraldj/client-services/services/discussion';\nimport { CsModule } from '@jeraldj/client-services';\n/* tslint:enable */\n\nexport const CONTEXT_PROPS = {\n cid: 'cid',\n tid: 'tid',\n uid: 'uid'\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DiscussionService {\n\n // tslint:disable-next-line:variable-name\n private _userDetails: any;\n\n // tslint:disable-next-line:variable-name\n private _userId: any;\n\n // tslint:disable-next-line:variable-name\n private _forumIds: any;\n private csDiscussionService: CsDiscussionService;\n\n // tslint:disable-next-line:variable-name\n private _context: any = {};\n\n public alertEvent = new Subject();\n\n usr: any;\n\n constructor(\n private http: HttpClient,\n @Inject('CsModule') private csModule: CsModule\n ) {\n // TODO: Take from the logged in user data;\n // this.usr = this.configSvc.userProfile\n this.usr = { userId: '1234' };\n console.log('CsModule init---', CsModule.instance);\n this.csDiscussionService = CsModule.instance.discussionService;\n\n }\n\n initializeUserDetails(userId) {\n userId = userId\n this.userDetails = JSON.parse(sessionStorage.getItem('dFUserDetails'))\n this.fetchUserProfile(userId).subscribe(response => {\n this.userDetails = response;\n sessionStorage.setItem('dFUserDetails', JSON.stringify(response));\n }, (error) => {\n // TODO: toaster error\n console.log('error fetching user details');\n });\n }\n\n appendPage(page: any, url: string) {\n if (page) {\n return `${url}?page=${page}`;\n }\n return `${url}?page=1`;\n }\n\n fetchAllTags() {\n // const tags = this.http.get(urlConfig.getAllTags())\n // .toPromise();\n // return tags;\n console.log('innn fetchAllTags');\n return this.csDiscussionService.fetchAllTags();\n }\n\n createPost(data: any) {\n // return this.http.post(urlConfig.createPost(), data);\n return this.csDiscussionService.createPost(data);\n }\n /**\n * @description To get all the categories\n */\n\n fetchAllCategories() {\n // return this.http.get<NSDiscussData.ICategorie[]>(urlConfig.getAllCategories()).pipe(\n // map((data: any) => {\n // // Taking only \"categories\" from the response\n // const resp = (data as any).categories;\n // return resp;\n // }),\n // catchError( error => {\n // return throwError( 'Something went wrong!' );\n // })\n // );\n console.log('in fetchall categories');\n return this.csDiscussionService.fetchAllCategories().pipe(\n map((data: any) => data.categories)\n );\n }\n\n fetchSingleCategoryDetails(cid: any) {\n return this.csDiscussionService.fetchSingleCategoryDetails(cid);\n // return this.http.get<NSDiscussData.ICategorie>(urlConfig.getSingleCategoryDetails(cid));\n }\n fetchSingleCategoryDetailsSort(cid: number, sort: any, page?: any) {\n return this.csDiscussionService.fetchSingleCategoryDetails(cid);\n }\n\n fetchAllTag() {\n return this.csDiscussionService.fetchAllTags();\n // return this.http.get(urlConfig.getAllTags());\n }\n\n contextBasedTags(data) {\n return this.csDiscussionService.contextBasedTags(data);\n // return this.http.get(urlConfig.getAllTags());\n }\n\n fetchPostDetails() {\n return this.csDiscussionService.fetchAllTags();\n // return this.http.get(urlConfig.getAllTags());\n }\n\n votePost(pid: number, data: any) {\n return this.csDiscussionService.votePost(pid, data);\n // const url = urlConfig.votePost(pid);\n // return this.http.post(url, data);\n }\n\n deleteVotePost(pid: number) {\n // const url = urlConfig.votePost(pid);\n // return this.http.delete(url);\n return this.csDiscussionService.deleteVotePost(pid);\n }\n\n bookmarkPost(pid: number) {\n // const url = urlConfig.bookmarkPost(pid);\n // return this.http.post(url, {});\n return this.csDiscussionService.bookmarkPost(pid);\n }\n\n deleteBookmarkPost(pid: number) {\n // const url = urlConfig.bookmarkPost(pid);\n // return this.http.delete(url);\n return this.csDiscussionService.deleteBookmarkPost(pid);\n }\n\n replyPost(tid: number, data: any) {\n // const url = urlConfig.replyPost(tid);\n // return this.http.post(url, data);\n return this.csDiscussionService.replyPost(tid, data);\n }\n\n fetchRecentPost(pageId?) {\n return this.csDiscussionService.recentPost(_.get(this._userDetails, 'username'), pageId);\n }\n\n getTagBasedDiscussion(tag?: string, page?: any) {\n return this.csDiscussionService.getTagBasedDiscussion(tag);\n }\n\n getContextBasedDiscussion(data) {\n return this.csDiscussionService.getContextBasedDiscussion(data);\n }\n\n getContextBasedTagDiscussion(data) {\n return this.csDiscussionService.getContextBasedTagDiscussion(data);\n }\n\n fetchPopularD(page?: any) {\n return this.csDiscussionService.popularPost(page);\n }\n\n fetchTopicById(topicId: number, slug?: any, page?: any) {\n // let url = urlConfig.getTopic() + '/' + topicId.toString() + '/' + slug;\n // url = this.appendPage(page, url);\n // return this.http.get(url);\n return this.csDiscussionService.fetchTopicById(topicId, slug, page);\n }\n\n fetchTopicByIdSort(topicId: number, sort: any, page?: any) {\n // let url = urlConfig.getTopic + topicId.toString();\n // url = this.appendPage(page, url);\n // return this.http.get(`${url}&sort=${sort}`);\n return this.csDiscussionService.fetchTopicById(topicId, sort, page);\n }\n\n fetchUnreadCOunt() {\n // return this.http.get<any>(urlConfig.unread());\n return this.csDiscussionService.fetchUnreadCOunt();\n\n }\n // fetchProfile() {\n // // return this.http.get(urlConfig.profile());\n // return this.csDiscussionService.fetchProfile();\n // }\n fetchProfileInfo(slug: string) {\n // return this.http.get(urlConfig.fetchProfile(slug));\n return this.csDiscussionService.fetchProfileInfo(slug);\n }\n fetchUpvoted(pageId: number) {// 0\n // return this.http.get(urlConfig.listUpVote(_.get(this._userDetails, 'username')));\n return this.csDiscussionService.fetchUpvoted(_.get(this._userDetails, 'username'), pageId);\n }\n fetchDownvoted(pageId: number) { // 0\n // return this.http.get(urlConfig.listDownVoted(_.get(this._userDetails, 'username')));\n return this.csDiscussionService.fetchDownvoted(_.get(this._userDetails, 'username'), pageId);\n }\n fetchSaved(pageId: number) { // 0 this.usr.userId\n // return this.http.get(urlConfig.listSaved(_.get(this._userDetails, 'username')));\n return this.csDiscussionService.fetchSaved(_.get(this._userDetails, 'username'), pageId);\n }\n\n fetchBestPost(pageId: number) {\n return this.csDiscussionService.fetchBestPost(_.get(this._userDetails, 'username'), pageId);\n }\n\n fetchUserProfile(userId) {\n // return this.http.get<any>(urlConfig.userDetails(userName));\n return this.csDiscussionService.getUserDetails(userId);\n }\n\n getContextBasedTopic(slug: string, pageId: number) {\n // return this.http.get(urlConfig.getContextBasedTopics(slug));\n return this.csDiscussionService.getContextBasedTopic(slug, pageId);\n }\n\n registerUser(data) {\n return this.http.post(urlConfig.registerUser(), data);\n }\n\n createForum(data) {\n return this.csDiscussionService.createForum(data)\n }\n\n getForumIds(data) {\n return this.csDiscussionService.getForumIds(data).toPromise()\n }\n\n set userDetails(userDetails) {\n this._userDetails = userDetails;\n }\n\n get userDetails() {\n return this._userDetails;\n }\n\n set userId(userId) {\n this._userId = userId;\n }\n\n get userId() {\n return this._userId;\n }\n\n set forumIds(ids) {\n this._forumIds = ids;\n }\n\n get forumIds() {\n return this._forumIds;\n }\n\n setContext(key, value) {\n if (CONTEXT_PROPS[key]) {\n this._context[key] = value;\n } else {\n console.log('Context can not be set for this key: ', key);\n }\n }\n\n getContext(key?: string) {\n return key ? this._context[key] : this._context;\n }\n\n editPost(pid: number, data: any) {\n return this.csDiscussionService.editPost(pid, data);\n }\n\n deletePost(pid: number, uid: number) {\n return this.csDiscussionService.deletePost(pid, uid);\n }\n\n editTopic(tid: number, data: any) {\n return this.csDiscussionService.editTopic(tid, data);\n }\n\n deleteTopic(tid: number) {\n return this.csDiscussionService.deleteTopic(tid);\n }\n\n /** To check the error code and show alert message\n * if it is 502 - error \n */\n showTrafficAlert(errorObject) {\n const errorCode = _.get(errorObject, 'response.responseCode')\n if (errorCode) {\n if ([502, '502'].includes(errorCode)) {\n this.alertEvent.next();\n }\n }\n }\n\n}\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\n\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { Subscription, timer } from 'rxjs';\nimport { DiscussionService } from '../../services/discussion.service';\n/* tslint:enable */\n\n@Component({\n selector: 'lib-app-loader',\n templateUrl: './app-loader.component.html',\n styleUrls: ['./app-loader.component.css']\n})\nexport class AppLoaderComponent implements OnInit, OnDestroy {\n\n @Input() data;\n headerMessage: string;\n loaderMessage: string;\n countDown:Subscription;\n\n constructor(\n private discussionService: DiscussionService\n ) { }\n\n ngOnInit() {\n this.headerMessage = 'Please wait';\n this.loaderMessage = 'We are fetching details';\n if (this.data) {\n this.headerMessage = _.get(this.data, 'headerMessage') || this.headerMessage;\n this.loaderMessage = _.get(this.data, 'loaderMessage') || this.loaderMessage;\n }\n this.countDown = timer(10000)\n .subscribe(() => {\n this.discussionService.alertEvent.next()\n });\n }\n\n ngOnDestroy(){\n this.countDown.unsubscribe();\n }\n}\n\n","<ng-container>\n <div class=\"dt-app-loader-container\">\n <img src=\"./assets/discussion-ui/images/loader-icon.svg\" width=\"50px\">\n <div class=\"loader-content\">\n <div class=\"loader-label\">\n {{headerMessage}}\n </div>\n <p>{{loaderMessage}}</p>\n </div>\n </div>\n</ng-container>","import { DiscussionService } from './discussion.service';\nimport { Injectable, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ReplaySubject, Subscription } from 'rxjs';\nimport * as _ from 'lodash'\nimport { IdiscussionConfig } from '../models/discussion-config.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService implements OnInit {\n\n paramsSubscription: Subscription;\n private _config: IdiscussionConfig;\n public checkContext: boolean;\n public queryParams;\n getContextData: any;\n hasContextData: any;\n getParams: IdiscussionConfig;\n setCategoryId = new ReplaySubject(1)\n categoryId: string\n\n constructor(\n public activatedRoute: ActivatedRoute,\n private discussionService: DiscussionService,\n ) { }\n\n ngOnInit() {\n\n }\n\n setConfig(activatedRoute) {\n activatedRoute.data.subscribe((config) => {\n this._config = config.data;\n });\n }\n\n setConfigFromParams(activatedRoute) {\n activatedRoute.queryParams.subscribe((params) => {\n const obj: IdiscussionConfig = {\n userId : _.get(params, 'userId'),\n categories : JSON.parse(_.get(params, 'categories'))\n };\n this._config = obj;\n });\n }\n\n setConfigFromWidgetBaseClass(config){\n this._config = config\n }\n\n public getConfig() {\n return this._config;\n }\n\n public getCategories() {\n this.getParams = this.getConfig()\n return _.get(this.getParams, 'categories')\n }\n\n public hasContext() {\n this.hasContextData = this.getCategories() ?\n (this.getCategories().result ? this.getCategories().result.length : null)\n : null\n return this.hasContextData\n }\n\n public getContext() {\n this.getContextData = this.getCategories() ?\n (this.getCategories().result ? this.getCategories().result : null)\n : null\n return this.getContextData\n }\n\n setCategoryid(id) {\n this.categoryId = id\n this.setCategoryId.next(id)\n }\n\n\n public getHeaderOption() {\n return this._config.headerOptions !== undefined ? this._config.headerOptions : true;\n }\n\n public getBannerOption() {\n return this._config.bannerOption ? this._config.bannerOption : false;\n }\n\n public getCategoryid() {\n return this.categoryId\n }\n\n public getRouterSlug() {\n return this._config.routerSlug ? this._config.routerSlug : '';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { Observable, ReplaySubject } from 'rxjs'\n// import {BehaviorSubject} from 'rxjs/BehaviorSubject';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EventsService {\n private _navItemSource = new BehaviorSubject<any>(0);\n // Observable navItem stream\n navItem$ = this._navItemSource.asObservable();\n registeredEvents: Array<Object> = [];\n toggleMenuItem: ReplaySubject<any> = new ReplaySubject(1)\n\n constructor() { }\n /**\n * This function is used to update the states in widget with data\n * @param {} data\n * TODO: Not being used anymore have to cleanup \n */\n toggle(data) {\n this.toggleMenuItem.next(data);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { EventEmitter } from 'events';\nimport { EventsService } from './events.service';\n\n@Injectable({\n providedIn: 'root'\n})\n\n//TODO: Need to cleanup this service since we are not gonna use\nexport class WrapperNavigateService {\n\n closeSideNav = new EventEmitter()\n\n constructor(private _eventService: EventsService) { }\n\n navigate(input){ \n // this._eventService.toggle(input)\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RouterServiceService {\n\n constructor(public router: Router) { }\n\n navigate(input) {\n // this.router.navigate(url)\n this.router.navigate([input.data.url], { queryParams: input.data.queryParams, queryParamsHandling: \"merge\" })\n }\n}\n","import { Injectable, OnInit } from '@angular/core';\nimport { RouterServiceService } from './router-service.service';\nimport { WrapperNavigateService } from './wrapper-navigate.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigationServiceService {\n\n navigateService: any = \"routerService\"\n\n \n constructor(private wrapperService: WrapperNavigateService,private routerService: RouterServiceService) { }\n /**\n * used to intialize the navigation service with the wrapperservice or routerservice \n * @param {string} wrapperService\n */\n initService(wrapperService: string) {\n this.navigateService = wrapperService\n }\n /**\n * used for navigating to the other pages based on the service initalized\n * @param {} input\n */\n navigate(input){\n if(this.navigateService === 'routerService'){\n this.routerService.navigate(input)\n }else{\n this.wrapperService.navigate(input)\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'pipeRelativeTime',\n})\nexport class PipeRelativeTimePipe implements PipeTransform {\n transform(value: number): any {\n\n if (value) {\n const seconds = Math.floor((+new Date() - +new Date(value)) / 1000);\n if (seconds < 29) // less than 30 seconds ago will show as 'Just now'\n return 'Just now';\n const intervals = {\n 'year': 31536000,\n 'month': 2592000,\n 'week': 604800,\n 'day': 86400,\n 'hour': 3600,\n 'minute': 60,\n 'second': 1\n };\n let counter;\n for (const i in intervals) {\n counter = Math.floor(seconds / intervals[i]);\n if (counter > 0)\n if (counter === 1) {\n return counter + ' ' + i + ' ago'; // singular (1 day ago)\n } else {\n return counter + ' ' + i + 's ago'; // plural (2 days ago)\n }\n }\n }\n return value;\n }\n}\n\n","import { Component, Input, OnChanges, OnInit, EventEmitter, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport _ from 'lodash-es';\nimport { DiscussionService } from '../../services/discussion.service';\nimport { ConfigService } from '../../services/config.service';\nimport * as CONSTANTS from './../../common/constants.json';\nimport { NSDiscussData } from './../../models/discuss.model';\nimport { NavigationServiceService } from '../../navigation-service.service';\n\n@Component({\n selector: 'lib-related-discussion',\n templateUrl: './related-discussion.component.html',\n styleUrls: ['./related-discussion.component.scss'],\n // host: { class: 'margin-left-l' },\n})\nexport class RelatedDiscussionComponent implements OnInit, OnChanges {\n @Input() catId: any;\n @Input() topicId: any;\n\n @Output() stateChange: EventEmitter<any> = new EventEmitter();\n\n relatedDiscussions: any[];\n fetchSingleCategoryLoader = false;\n similarPosts: any;\n\n constructor(\n private router: Router,\n private configService: ConfigService,\n private discussionService: DiscussionService,\n private navigationService: NavigationServiceService\n\n ) { }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n if (this.catId) {\n this.fetchRelatedDiscussionData(this.catId)\n }\n }\n\n fetchRelatedDiscussionData(cid: number) {\n this.fetchSingleCategoryLoader = true;\n this.discussionService.fetchSingleCategoryDetails(cid).subscribe(\n (data: NSDiscussData.ICategoryData) => {\n this.relatedDiscussions = [];\n _.filter(data.topics, (topic) => {\n if (topic.deleted === 0 && this.topicId !== topic.tid) {\n this.relatedDiscussions.push(topic);\n }\n })\n this.fetchSingleCategoryLoader = false;\n },\n (err: any) => {\n console.log('Error in fetching category details')\n // this.openSnackbar(err.error.message.split('|')[1] || this.defaultError)\n this.fetchSingleCategoryLoader = false;\n });\n }\n\n getDiscussion(discuss) {\n const input = { data: { url: `${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.DISCUSSION}topic/${discuss.slug}`, queryParams: {} } }\n this.navigationService.navigate(input);\n this.stateChange.emit(discuss);\n }\n\n\n}\n","<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>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'pipeFilter'\n})\nexport class PipeFilterPipe implements PipeTransform {\n\n transform(value: any, keys: string, term: string): string {\n if (!term) {\n return value;\n }\n return (value || []).filter((item: any) => keys.split(',')\n .some(key => item.hasOwnProperty(key) && new RegExp(`^${term}$`, 'gi').test(item[key])));\n\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n/* tslint:disable */\nimport { orderBy } from 'lodash-es';\n/* tslint:enable */\n\n@Pipe({\n name: 'sortBy'\n})\nexport class SortByPipe implements PipeTransform {\n\n transform(data: any[], sortField: string, sortOrder: string): any[] {\n if (!data || !data.length || sortOrder === '' || !sortOrder) { return data; }\n if (!sortField || sortField === '') {\n data = data.map(e => e.trim());\n if (sortOrder === 'asc') {\n return data.sort();\n } else {\n return data.sort().reverse();\n }\n }\n data.forEach((obj) => {\n obj[sortField] = obj[sortField].trim();\n });\n return orderBy(data, [sortField], [sortOrder]);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'splitInitials'\n})\nexport class SplitInitialsPipe implements PipeTransform {\n\n transform(value: string): any {\n if (value) {\n let userInitial = '';\n const name = value.split(' ');\n name.forEach(element => {\n userInitial = userInitial + element.charAt(0);\n });\n return userInitial;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n name: 'pipeListFilter',\n})\nexport class PipeListFilterPipe implements PipeTransform {\n\n transform(value: any, keys: string, term: string): string {\n if (!term) {\n return value\n }\n return (value || []).filter((item: any) => keys.split(',')\n .some(key => item.hasOwnProperty(key)\n && item[key] && (`${item[key]} `).toLocaleLowerCase().includes(term.toLocaleLowerCase())))\n // new RegExp(`^${term}$`, 'gi').test(item[key])\n\n }\n\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PipeFilterPipe } from './pipe-filter/pipe-filter.pipe';\nimport { SortByPipe } from './sort-by/sort-by.pipe';\nimport { PipeRelativeTimePipe } from './pipe-relative-time/pipe-relative-time.pipe';\nimport { SplitInitialsPipe } from './split-initials/split-initials.pipe';\nimport { PipeListFilterPipe } from './pipe-list-filter/pipe-list-filter.pipe';\n\n\n@NgModule({\n declarations: [PipeFilterPipe, SortByPipe, PipeRelativeTimePipe, SplitInitialsPipe, PipeListFilterPipe],\n imports: [\n CommonModule\n ],\n exports: [PipeFilterPipe, SortByPipe, PipeRelativeTimePipe, SplitInitialsPipe, PipeListFilterPipe]\n})\nexport class PipesModule { }\n","import { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\nimport { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'lib-post-reply',\n templateUrl: './post-reply.component.html',\n styleUrls: ['./post-reply.component.css']\n})\nexport class PostReplyComponent implements OnInit {\n @Input() showCancel = true;\n @Input() mode = 'add';\n @Input() content: string;\n\n @Output() actionEvent = new EventEmitter();\n\n replyForm!: UntypedFormGroup;\n\n isButtonEnabled = false;\n\n constructor(\n private formBuilder: UntypedFormBuilder\n ) { }\n\n ngOnInit() {\n console.log('conent came', this.content);\n this.initializeFormFields();\n }\n\n initializeFormFields() {\n this.replyForm = this.formBuilder.group({\n replyContent: ['', Validators.required]\n });\n this.replyForm.valueChanges.subscribe(val => {\n this.isButtonEnabled = this.validateForm();\n });\n }\n\n validateForm() {\n if (this.replyForm.status === 'VALID') {\n return true;\n } else {\n return false;\n }\n }\n\n isFieldValid(field) {\n let valueNoWhiteSpace = this.replyForm.get(field).value;\n if (valueNoWhiteSpace) {\n const length = valueNoWhiteSpace.length;\n if (length >= 2 && valueNoWhiteSpace.charAt(length - 2) === \" \") {\n this.replyForm.patchValue({ replyContent: this.replyForm.get(field).value.trim() });\n } else {\n this.replyForm.patchValue({ replyContent: this.replyForm.get(field).value.trimStart() })\n }\n }\n return !this.replyForm.get(field).valid && this.replyForm.get(field).dirty;\n }\n\n onReplyClick(mode: string) {\n // tslint:disable-next-line:no-string-literal\n this.actionEvent.emit({action: mode, content: this.replyForm.controls['replyContent'].value.trim()});\n }\n\n onCancelClick() {\n this.actionEvent.emit({action: 'cancel'});\n }\n\n}\n","<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>","import { Component, HostBinding, Input, OnInit } from '@angular/core'\n// import { NsWidgetResolver, WidgetBaseComponent } from '@sunbird-cb/resolver'\nimport { Subscription, interval } from 'rxjs'\n// import { EventService } from '@sunbird-cb/utils'\n\n@Component({\n selector: 'ws-widget-sliders',\n templateUrl: './sliders.component.html',\n styleUrls: ['./sliders.component.scss'],\n})\nexport class SlidersComponent implements OnInit {\n @Input() bannerData: any\n @HostBinding('id')\n public id = `banner_${Math.random()}`\n currentIndex = 0\n slideInterval: Subscription | null = null\n\n constructor() {\n // super()\n }\n\n ngOnInit() {\n this.reInitiateSlideInterval()\n }\n reInitiateSlideInterval() {\n console.log('---------------', this.bannerData)\n if (this.bannerData.widgetData.length > 1) {\n try {\n if (this.slideInterval) {\n this.slideInterval.unsubscribe()\n }\n } catch (e) {\n } finally {\n this.slideInterval = interval(8000).subscribe(() => {\n if (this.currentIndex === this.bannerData.widgetData.length - 1) {\n this.currentIndex = 0\n } else {\n this.currentIndex += 1\n }\n })\n }\n }\n }\n slideTo(index: number) {\n if (index >= 0 && index < this.bannerData.widgetData.length) {\n this.currentIndex = index\n } else if (index === this.bannerData.widgetDatalength) {\n this.currentIndex = 0\n } else {\n this.currentIndex = this.bannerData.widgetData.length + index\n }\n this.reInitiateSlideInterval()\n }\n\n get isOpenInNewTab() {\n const currentData = this.bannerData[this.currentIndex]\n if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.bannerData[this.currentIndex].openInNewTab) {\n return true\n } return false\n }\n\n openInNewTab() {\n const currentData = this.bannerData[this.currentIndex]\n if (currentData.redirectUrl && currentData.redirectUrl.includes('mailto') || this.bannerData[this.currentIndex].openInNewTab) {\n window.open(currentData.redirectUrl)\n }\n }\n // raiseTelemetry(bannerUrl: string | undefined) {\n // this.openInNewTab()\n // const path = window.location.pathname.replace('/', '')\n // const url = path + window.location.search\n\n // // this.events.raiseInteractTelemetry('click', 'banner', {\n // // pageUrl: url,\n // // bannerRedirectUrl: bannerUrl,\n // // })\n // }\n}\n","<div class=\"banner-container\" (swipeleft)=\"slideTo(currentIndex + 1)\" (swiperight)=\"slideTo(currentIndex - 1)\"\n *ngIf=\"bannerData.widgetData?.length > 1\">\n\n <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of bannerData.widgetData; let i = index\" [hidden]=\"i !== currentIndex\">\n <p>{{slide.banners | json}}</p>\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"banner-image\" />\n </div>\n <div class=\"banner-meta\">\n <!-- <a [routerLink]=\" !isOpenInNewTab ? widgetData[currentIndex].redirectUrl : './'\"\n class=\"banner-title text-truncate\" *ngIf=\"widgetData[currentIndex].title\"\n [title]=\"widgetData[currentIndex].title\">\n {{ widgetData[currentIndex].title }}\n </a> -->\n <div class=\"dots-container\" *ngIf=\"bannerData.widgetData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" *ngFor=\"let slide of bannerData.widgetData; let j = index\"\n (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n <a *ngIf=\"bannerData.widgetData?.length > 1\" role=\"button\" class=\"prev\" (click)=\"slideTo(currentIndex - 1)\">&#10094;</a>\n <a *ngIf=\"bannerData.widgetData?.length > 1\" role=\"button\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\">&#10095;</a>\n</div>\n<div class=\"banner-container-solo\" *ngIf=\"bannerData.widgetData?.length == 1\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"bannerData.widgetData[0].banners.xl\" wsUtilsImageResponsive class=\"banner-image-solo\" />\n</div>\n","// import { IGroup } from '../../infy/routes/navigator/models/navigator.model'\n\nexport namespace NSDiscussData {\n export interface IDiscussJsonData {\n tabs: IDiscussionTab[]\n }\n\n export interface IDiscussionTab {\n name: string\n key: string\n badges: {\n enabled: boolean\n uri?: string\n }\n enabled: boolean\n routerLink: string\n }\n\n export interface IDiscussionData {\n cid: number\n tid: number\n uid: number\n mainPid: number\n content?: string\n slug: string\n title: string\n titleRaw: string\n lastposttime: number\n timestampISO: string\n lastposttimeISO: string\n timestamp: number\n upvotes: number\n downvotes: number\n viewcount: number\n postcount: number\n deleterUid: number\n deleted: boolean | number\n locked: boolean | number\n pinned: boolean | number\n thumb?: string | null\n category: ICategorie\n user?: IUser\n postIndex?: number\n teaser?: any\n tagWhitelist?: any[]\n tags: ITag[]\n minTags?: number\n maxTags?: number\n thread_tools?: []\n isFollowing?: boolean\n isNotFollowing?: boolean\n isIgnoring?: boolean\n isOwner?: boolean\n ignored?: boolean\n unread?: boolean\n bookmark?: any\n postSharing?: []\n deleter?: any | null\n merger?: any | null\n related?: []\n privileges?: any | null\n topicStaleDays?: number\n unreplied: boolean\n icons?: any[]\n index?: number\n votes?: number\n teaserPid: number | null | undefined\n pagination?: IPagination\n posts?: IPosts[]\n topics?: any[]\n result?: any[]\n }\n\n export interface ICategoryData {\n bgColor: string,\n cid: number,\n class: string,\n color: string,\n description: string,\n descriptionParsed: string,\n disabled: number,\n icon: string,\n imageClass: string,\n isSection: number,\n link: string,\n name: string,\n numRecentReplies: number,\n order: number,\n parentCid: number,\n post_count: number,\n slug: string,\n topic_count: number,\n minTags: number,\n maxTags: number,\n totalPostCount: number,\n totalTopicCount: number,\n tagWhitelist: any[],\n children: any[],\n topics: any[],\n nextStart: number,\n isWatched: boolean,\n isNotWatched: boolean,\n isIgnored: boolean,\n breadcrumbs: any[],\n title: string,\n privileges: any,\n pagination: any,\n loggedIn: boolean,\n relative_path: string,\n template: any,\n url: string,\n bodyClass: string,\n _header: any,\n widgets: any\n }\n\n export interface ITag {\n value: string\n valueEscaped: string\n color: string\n bgColor: string\n score: number\n }\n\n export interface ICategorie {\n \"cid\": number,\n \"name\": string,\n \"description\": string,\n \"descriptionParsed\": string,\n \"icon\": any,\n \"bgColor\": string,\n \"color\": string,\n \"slug\": string,\n \"parentCid\": number,\n \"topic_count\": number,\n \"post_count\": number,\n \"disabled\": number,\n \"order\": number,\n \"link\": string,\n \"numRecentReplies\": number,\n \"class\": string,\n \"imageClass\": string,\n \"isSection\": number,\n \"totalPostCount\": number,\n \"totalTopicCount\": number,\n \"minTags\": number,\n \"maxTags\": number,\n \"tagWhitelist\": any,\n \"unread-class\": string,\n \"children\": any,\n \"posts\": any,\n \"teaser\": any\n }\n\n export interface IRelatedDiscussion {\n id: number\n title: string\n category: string\n time: string\n }\n\n export interface IUser {\n uid: number\n username: string\n fullname?: string\n userslug: string\n reputation: number\n postcount: number\n topiccount?: number\n picture?: string | null\n signature?: string | null\n banned: number\n 'banned:expire'?: number\n status: string\n lastonline?: number | null | undefined\n groupTitle?: string\n groupTitleArray?: string[]\n 'icon:text'?: string\n 'icon:bgColor'?: string\n lastonlineISO?: string\n banned_until?: number | boolean\n banned_until_readable?: string\n selectedGroups?: any[]\n custom_profile_info?: any[]\n }\n\n export interface IPagination {\n prev: IPageData\n next: IPageData\n first: IPageData\n last: IPageData\n rel?: any[]\n pages?: any[]\n currentPage: number\n pageCount: number\n }\n\n export interface IPageData {\n page: number\n active: boolean\n }\n\n export interface IEditor {\n uid: number\n username: string\n userslug: string\n }\n\n export interface IPosts {\n content: string\n pid: number\n tid: number\n timestamp: number\n uid: number\n deleted: number | boolean\n upvotes: number\n downvotes: number\n viewcount?: number\n deleterUid: number\n edited: number | boolean\n votes: number\n timestampISO: string\n editedISO?: string\n index: number\n user: IUser\n category?: ICategorie\n topic?: ITopic\n editor?: IEditor | null\n bookmarked: boolean\n upvoted: boolean\n downvoted: boolean\n bookmarks?: number | null\n replies: {\n hasMore: false\n users: any[]\n text: any\n count: number\n }\n selfPost: boolean\n display_edit_tools: boolean\n display_delete_tools: boolean\n display_moderator_tools: boolean\n display_move_tools: boolean\n display_post_menu: boolean\n }\n \n export interface ITopic {\n cid: number\n deleted: number\n mainPid: number\n postcount: number\n slug: string\n teaserPid: number\n tid: number\n title: string\n titleRaw: string\n uid: number\n }\n \n export interface IProfile {\n uid: number\n username: string\n userslug: string\n email: string\n 'email:confirmed': number\n joindate: number\n lastonline: number\n picture: string\n fullname: string\n location: string\n birthday: string\n website: string\n aboutme: string\n signature: string\n uploadedpicture: string\n profileviews: number\n reputation: number\n postcount: number\n topiccount: number\n lastposttime: number\n banned: number\n 'banned:expire': number\n status: string\n flags: number\n followerCount: number\n followingCount: number\n 'cover:url': string\n 'cover:position': string\n groupTitle: string\n groupTitleArray: []\n joindateISO: string\n lastonlineISO: string\n isBlocked: true\n blocksCount: number\n canEdit: true\n canBan: true\n // groups: IGroup[]\n posts: IPosts[]\n latestPosts: IPosts[]\n bestPosts: IPosts[]\n title: string\n }\n\n export enum IPageName {\n HOME = 'discussion-home',\n START = 'discussion-start',\n DETAILS = 'discussion-details',\n CATEGORY = 'discussion-category',\n TAGS = 'discussion-category',\n MY_DISCUSSION = 'my-discussion',\n LIB_ENTRY = 'lib-entry',\n LOAD_ALERT = 'load-alert'\n }\n}\n","import { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { DiscussionService } from './../../services/discussion.service';\nimport { Component, OnInit, ElementRef, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { NSDiscussData } from './../../models/discuss.model';\nimport { TelemetryUtilsService } from './../../telemetry-utils.service';\nimport { DiscussUtilsService } from '../../services/discuss-utils.service';\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { ConfigService } from '../../services/config.service';\nimport { DiscussionEventsService } from '../../discussion-events.service';\n/* tslint:enable */\n\n@Component({\n selector: 'lib-load-alert',\n templateUrl: './load-alert.component.html',\n styleUrls: ['./load-alert.component.scss']\n})\nexport class LoadAlertComponent implements OnInit {\n @Output() close = new EventEmitter();\n @Output() exit = new EventEmitter(); \n\n constructor(\n private telemetryUtils: TelemetryUtilsService,\n ) { }\n\n ngOnInit() {\n this.telemetryUtils.logImpression(NSDiscussData.IPageName.LOAD_ALERT);\n }\n\n exitForum(event: string) {\n this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.LOAD_ALERT);\n this.exit.emit(event);\n }\n\n closeModal(event){\n this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.LOAD_ALERT);\n this.close.emit();\n }\n\n \n}\n\n","<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>","import { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CategoryCardComponent } from './category-card/category-card.component';\nimport { DiscussCardComponent } from './discuss-card/discuss-card.component';\nimport { AvatarPhotoComponent } from './avatar-photo/avatar-photo.component';\nimport { AppLoaderComponent } from './app-loader/app-loader.component';\nimport { RelatedDiscussionComponent } from './related-discussion/related-discussion.component';\nimport { PipesModule } from './../pipes/pipes.module';\n\nimport { PostReplyComponent } from './post-reply/post-reply.component';\nimport { SlidersComponent } from './sliders/sliders.component';\nimport { LoadAlertComponent } from './load-alert/load-alert.component';\n@NgModule({\n declarations: [\n PostReplyComponent,\n CategoryCardComponent,\n DiscussCardComponent,\n AvatarPhotoComponent,\n AppLoaderComponent,\n RelatedDiscussionComponent,\n SlidersComponent,\n LoadAlertComponent\n ],\n imports: [\n CommonModule, PipesModule,\n FormsModule,\n ReactiveFormsModule\n ],\n exports: [\n CategoryCardComponent,\n DiscussCardComponent,\n AvatarPhotoComponent,\n AppLoaderComponent, \n RelatedDiscussionComponent,\n AppLoaderComponent,\n PostReplyComponent,\n SlidersComponent,\n LoadAlertComponent\n ]\n})\nexport class ElementsModule { }\n","import { NSDiscussData } from './../../models/discuss.model';\nimport { TelemetryUtilsService } from './../../telemetry-utils.service';\nimport { DiscussionService } from './../../services/discussion.service';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport * as CONSTANTS from './../../common/constants.json';\n\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { first } from 'rxjs/operators';\nimport { ConfigService } from '../../services/config.service';\nimport { IdiscussionConfig, IMenuOptions } from '../../models/discussion-config.model';\n/* tslint:enable */\n\n@Component({\n selector: 'lib-side-pannel',\n templateUrl: './side-pannel.component.html',\n styleUrls: ['./side-pannel.component.scss']\n})\nexport class SidePannelComponent implements OnInit, OnDestroy {\n\n paramsSubscription: Subscription;\n\n userName: string;\n\n defaultPage = 'categories';\n\n data: IdiscussionConfig;\n hideSidePanel: boolean;\n menu: Array<IMenuOptions> = [];\n selectedTab: string;\n showSideMenu: Boolean = true;\n landingPage: string\n\n constructor(\n public router: Router,\n public discussService: DiscussionService,\n public activatedRoute: ActivatedRoute,\n private telemetryUtils: TelemetryUtilsService,\n private configService: ConfigService\n ) { }\n\n ngOnInit() {\n // TODO: loader or spinner\n this.telemetryUtils.setContext([]);\n this.hideSidePanel = document.body.classList.contains('widget');\n this.telemetryUtils.logImpression(NSDiscussData.IPageName.HOME);\n this.data = this.configService.getConfig();\n const menuArr = _.get(this.data, 'menuOptions') && _.get(this.data, 'menuOptions').length > 0\n ? this.data.menuOptions : CONSTANTS.MENUOPTIONS;\n // })\n for (let i = 0; i < menuArr.length; i++) {\n if (menuArr[i].enable) {\n this.menu.push(menuArr[i]);\n }\n }\n\n }\n\n isActive(selectedItem) {\n this.landingPage = this.data.defaultLandingPage ? this.data.defaultLandingPage : 'categories'\n if (this.router.url.indexOf(`/${selectedItem}`) > -1 || this.selectedTab === selectedItem) {\n if (!this.selectedTab) {\n this.selectedTab = selectedItem\n }\n return true\n } else if (selectedItem === this.landingPage && !this.selectedTab) {\n return true\n }\n return false\n }\n\n navigate(pageName: string, event?) {\n this.selectedTab = pageName;\n this.telemetryUtils.setContext([]);\n if (event) {\n this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.HOME);\n }\n this.router.navigate([`${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.DISCUSSION}${pageName}`], { queryParamsHandling: \"merge\" });\n this.closeNav();\n }\n\n ngOnDestroy() {\n if (this.paramsSubscription) {\n this.paramsSubscription.unsubscribe();\n }\n }\n\n showMenuButton() {\n this.showSideMenu = this.showSideMenu ? false : true;\n }\n\n closeNav() {\n this.showSideMenu = this.showSideMenu ? false : true;\n }\n\n}\n","<ul class=\"sb-sidebar-menu pl-0\" *ngIf=\"!hideSidePanel\">\n <!-- <li class=\"df-sidebar-menu-list\" *ngIf=\"false\" (click)=\"navigate('home', $event)\" id=\"all-discussions\"><a>All discussions</a></li> -->\n <li *ngFor='let d of menu' class=\"df-sidebar-menu-list\" tabindex=\"0\" role=\"link\" [ngClass]=\"{'menu-active': isActive(d.route)}\"\n (click)=\"navigate(d.route, $event)\" id=\"d.route\"><a>{{d.label}}</a></li>\n <!-- <li class=\"df-sidebar-menu-list\" id=\"leader-board\"><a>Leaderboard</a></li> -->\n</ul>\n\n<!-- for mobile-view -->\n<button type=\"button\" class=\"open-btn\" (click)=\"showMenuButton()\">☰</button> \n<div class=\"overlay-sidebar\" *ngIf=\"!showSideMenu\">\n <div class=\"overlay-sidebar__menu\">\n <a href=\"javascript:void(0)\" class=\"close-btn\" (click)=\"closeNav()\">&times;</a>\n <div class=\"overlay-sidebar__menu__content\">\n <ul class=\"sb-sidebar-menu-mob pl-0\">\n <li *ngFor='let d of menu' class=\"df-sidebar-menu-list\" tabindex=\"0\" role=\"link\" [ngClass]=\"{'menu-active': isActive(d.route)}\"\n (click)=\"navigate(d.route, $event)\" id=\"d.route\"><a>{{d.label}}</a></li>\n <!-- <li class=\"df-sidebar-menu-list\" tabindex=\"0\" role=\"link\" *ngIf=\"false\" (click)=\"navigate('home', $event)\" id=\"all-discussions\"><a>All discussions</a></li>\n <li class=\"df-sidebar-menu-list\" tabindex=\"0\" role=\"link\" [ngClass]=\"{'menu-active': selectedTab === 'categories'}\" (click)=\"navigate('categories', $event)\" id=\"discussion-categories\"><a>Categories</a></li>\n <li class=\"df-sidebar-menu-list\" tabindex=\"0\" role=\"link\"[ngClass]=\"{'menu-active': selectedTab === 'tags'}\" (click)=\"navigate('tags', $event)\" id=\"discussion-tags\"><a>Tags</a></li>\n <li class=\"df-sidebar-menu-list\" tabindex=\"0\" role=\"link\" [ngClass]=\"{'menu-active': selectedTab === 'my-discussion'}\" (click)=\"navigate('my-discussion', $event)\" id=\"my-discussion\"><a>My discussions</a></li> -->\n </ul>\n </div>\n </div>\n</div>","import { DiscussionService } from './../../services/discussion.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { DiscussionEventsService } from './../../discussion-events.service';\nimport { TelemetryUtilsService } from './../../telemetry-utils.service';\nimport { NSDiscussData } from './../../models/discuss.model';\n\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { IdiscussionConfig } from '../../models/discussion-config.model';\nimport { ConfigService } from '../../services/config.service';\nimport { Inject } from '@angular/core';\nimport { NavigationServiceService } from '../../navigation-service.service';\nimport { AbstractConfigService } from '../../services/abstract-config.service';\nimport { Subscription } from 'rxjs';\n/* tslint:enable */\n@Component({\n selector: 'lib-lib-entry',\n templateUrl: './lib-entry.component.html',\n styleUrls: ['./lib-entry.component.scss'],\n /* tslint:disable */\n host: { class: 'flex-1 main_discuss_lib',},\n /* tslint:enable */\n})\nexport class LibEntryComponent implements OnInit, OnDestroy {\n\n data: IdiscussionConfig;\n headerOption = true;\n banner: any\n private bannerSubscription: any\n bannerOption: boolean;\n currentRoute = 'all-discussions'\n pageKey: string;\n config: any;\n histtoryStartIndex: number;\n showLoaderAlert = false;\n subscription: Subscription\n\n constructor(\n public activatedRoute: ActivatedRoute,\n private discussionService: DiscussionService,\n private configService: ConfigService,\n private location: Location,\n private navigationServiceService: NavigationServiceService,\n private discussionEventService: DiscussionEventsService,\n private telemetryUtils: TelemetryUtilsService,\n // @Inject('configService') protected configService: AbstractConfigService\n\n ) {\n this.bannerSubscription = this.activatedRoute.data.subscribe(data => {\n if (data && data.pageData) {\n this.banner = data.pageData.data.banner || []\n }\n })\n }\n\n ngOnInit() {\n /**\n * calling the initservice to tell navigationservice to use the router service\n * because this component is invoke only in router approach \n */\n this.navigationServiceService.initService('routerService')\n this.histtoryStartIndex = window.history.length-1;\n this.configService.setConfig(this.activatedRoute);\n // this.activatedRoute.data.subscribe((data) => {\n this.data = this.configService.getConfig();\n if (!this.data) {\n // fallback for query params\n this.configService.setConfigFromParams(this.activatedRoute);\n this.data = this.configService.getConfig();\n }\n this.discussionService.userId = _.get(this.data, 'userId');\n const rawCategories = _.get(this.data, 'categories');\n this.discussionService.forumIds = _.get(rawCategories, 'result');\n this.discussionService.initializeUserDetails(this.discussionService.userId);\n this.handleLoaderAlert();\n }\n\n handleLoaderAlert(){\n\n this.subscription = this.discussionService.alertEvent.subscribe(() => {\n this.showLoaderAlert = true;\n })\n }\n\n goBack() {\n const eventAction = {\n action: 'DF_BACK'\n };\n this.discussionEventService.emitTelemetry(eventAction);\n this.location.back();\n }\n\n close(event) {\n this.showLoaderAlert = false;\n const eventAction = {\n action: 'DF_CLOSE'\n };\n this.discussionEventService.emitTelemetry(eventAction);\n this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.LIB_ENTRY);\n window.history.go(-(window.history.length - this.histtoryStartIndex ));\n }\n\n closeLoadAlert(){\n this.showLoaderAlert = false;\n }\n\n ngOnDestroy(){\n this.subscription.unsubscribe()\n }\n\n onScrollTopActive(event) {\n window.scroll({\n top: 0, \n left: 0, \n behavior: 'smooth'\n });\n }\n\n}\n","<div class=\"sbt-inside-page-container ui container\">\n <div class=\"df-header\">\n <button type=\"button\" class=\"df-btn df-btn-normal df-btn-primary df-back-btn\" tabindex=\"0\" autofocus\n role=\"button\" (click)=\"goBack()\">\n <img src=\"./assets/discussion-ui/images/back-img.png\" alt=\"back icon\" />\n Back\n </button>\n <button (click)=\"close($event)\" class=\"df-btn df-btn-normal df-btn-danger df-close-btn\" tabindex=\"0\"\n id=\"close-discussion-forum\" type=\"button\" autofocus>\n Close\n <img src=\"./assets/discussion-ui/images/close.png\" alt=\"close icon\" />\n </button>\n </div>\n\n <div class=\"discussion-forum-content\">\n <div class=\"discuss-left-panel\">\n <lib-side-pannel></lib-side-pannel>\n </div>\n <div class=\"discuss-right-panel\">\n <router-outlet (activate)=\"onScrollTopActive($event)\"></router-outlet>\n </div>\n </div>\n</div>\n\n<lib-load-alert *ngIf=\"showLoaderAlert\" (exit)=\"close($event)\" (close)=\"closeLoadAlert()\"></lib-load-alert>","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DiscussUtilsService {\n\n constructor() { }\n\n stringToColor(title) {\n let hash = 0;\n\n for (let i = 0; i < title.length; i++) {\n // tslint:disable-next-line: no-bitwise\n hash = title.charCodeAt(i) + ((hash << 5) - hash);\n }\n const hue = Math.abs(hash % 360);\n // tslint:disable-next-line: prefer-template\n const colour = 'hsl(' + hue + ',100%,30%)';\n return colour;\n }\n\n getContrast() {\n return 'rgba(255, 255, 255, 80%)';\n }\n\n /**\n * The htmlDecode() method parses a string containing either HTML or XML\n * @param {any} str\n */\n htmlDecode(str: any) {\n const doc = new DOMParser().parseFromString(str, \"text/html\");\n return doc.documentElement.textContent;\n }\n\n}\n","import { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\nimport { DiscussionService } from './../../services/discussion.service';\nimport { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { NSDiscussData } from './../../models/discuss.model';\nimport { TelemetryUtilsService } from './../../telemetry-utils.service';\nimport { DiscussUtilsService } from '../../services/discuss-utils.service';\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { ConfigService } from '../../services/config.service';\n/* tslint:enable */\n\n@Component({\n selector: 'lib-discuss-start',\n templateUrl: './discuss-start.component.html',\n styleUrls: ['./discuss-start.component.scss']\n})\nexport class DiscussStartComponent implements OnInit {\n @Input() categoryId: string;\n @Input() topicData: any;\n @Input() mode: string;\n @Output() close = new EventEmitter();\n\n startForm!: UntypedFormGroup;\n editable = true;\n allCategories!: NSDiscussData.ICategorie[];\n allTags!: NSDiscussData.ITag[];\n postTagsArray: string[] = [];\n uploadSaveData = false;\n showErrorMsg = false;\n showSelectCategory = false;\n createErrorMsg = '';\n defaultError = 'Something went wrong, Please try again after sometime!';\n\n enableSubmitButton = false;\n cIds: any;\n\n constructor(\n private discussService: DiscussionService,\n private formBuilder: UntypedFormBuilder,\n private telemetryUtils: TelemetryUtilsService,\n private configService: ConfigService,\n private discussUtils: DiscussUtilsService\n ) { }\n\n ngOnInit() {\n (document.querySelector('[tabindex=\"-1\"]') as HTMLElement).focus();\n // debugger\n this.telemetryUtils.logImpression(NSDiscussData.IPageName.START);\n this.cIds = this.configService.getCategories()\n if (this.categoryId) {\n this.showSelectCategory = false;\n } else {\n this.showSelectCategory = true;\n }\n\n this.initializeData();\n this.initializeFormFields(this.topicData);\n }\n\n initializeFormFields(topicData) {\n this.startForm = this.formBuilder.group({\n question: [null, [Validators.required, Validators.minLength(8)]],\n description: [null, [Validators.required, Validators.minLength(8)]],\n tags: [],\n category: []\n });\n this.startForm.valueChanges.subscribe(val => {\n this.validateForm();\n });\n\n /** If popup is in edit mode */\n if (topicData) {\n const tags = _.map(_.get(topicData, 'tags'), (element) => {\n return _.get(element, 'value');\n });\n\n /** calling htmlDecode method to get the parsed string */\n this.startForm.controls['question'].setValue(this.discussUtils.htmlDecode(_.get(topicData, 'title')));\n this.startForm.controls['description'].setValue(_.get(topicData, 'posts[0].content').replace(/<[^>]+>/g, ''));\n this.startForm.controls['tags'].setValue(tags);\n this.validateForm();\n }\n }\n\n isFieldValid(field) {\n let valueNoWhiteSpace = this.startForm.get(field).value;\n if (valueNoWhiteSpace) {\n const index = valueNoWhiteSpace.length;\n if (index >= 2 && valueNoWhiteSpace.charAt(index - 2) === \" \") {\n this.startForm.patchValue({ replyContent: this.startForm.get(field).value.trim() });\n } else {\n this.startForm.patchValue({ replyContent: this.startForm.get(field).value.trimStart() })\n }\n }\n return (!this.startForm.get(field).valid && this.startForm.get(field).dirty);\n }\n\n validateForm() {\n if (this.startForm.status === 'VALID') {\n this.enableSubmitButton = true;\n } else {\n this.enableSubmitButton = false;\n }\n }\n\n initializeData() {\n // debugger\n if (this.configService.hasContext() && !this.categoryId) {\n const req = {\n cids: this.cIds.result\n };\n\n this.discussService.getContextBasedDiscussion(req).subscribe((data: any) => {\n this.allCategories = data.result;\n if (this.startForm.get('category')) { }\n this.startForm.controls['category'].setValue(this.allCategories[0].cid)\n });\n } else if (this.categoryId) {\n const req = {\n cids: [this.categoryId]\n };\n this.showSelectCategory = false;\n this.editable = false;\n this.discussService.getContextBasedDiscussion(req).subscribe((data: any) => {\n this.allCategories = data.result;\n if (this.startForm.get('category')) { }\n this.startForm.controls.category.setValue(this.allCategories[0].cid);\n });\n } else {\n this.discussService.fetchAllCategories().subscribe((data: any) => {\n this.allCategories = data\n if (this.startForm.get('category')) { }\n this.startForm.controls['category'].setValue(this.allCategories[1].cid)\n });\n }\n\n this.discussService.fetchAllTag().subscribe(data => {\n const tags = _.get(data, 'tags');\n this.allTags = _.map(tags, (tag) => tag.value);\n });\n }\n showError(meta: string) {\n if (meta) {\n return true;\n }\n return false;\n }\n\n public submitPost(form: any) {\n this.uploadSaveData = true;\n this.showErrorMsg = false;\n const postCreateReq = {\n cid: this.categoryId ? this.categoryId : parseInt(form.value.category),\n title: form.value.question,\n content: form.value.description,\n tags: form.value.tags,\n };\n this.discussService.createPost(postCreateReq).subscribe(\n () => {\n this.closeModal('success');\n form.reset();\n this.uploadSaveData = false;\n // success toast;\n // this.openSnackbar(this.toastSuccess.nativeElement.value)\n // close the modal\n },\n err => {\n this.closeModal('discard');\n // error toast\n // .openSnackbar(this.toastError.nativeElement.value)\n this.uploadSaveData = false;\n if (err) {\n if (err.error && err.error.message) {\n this.showErrorMsg = true;\n this.createErrorMsg = err.error.message.split('|')[1] || this.defaultError;\n }\n }\n });\n }\n\n\n /**\n * @param {any} form\n * @description - It will emit an event when popup is opened in edit topic/thread mode\n * Here, as 'tid', we are passing the main topic pid from the post array\n */\n updatePost(form: any) {\n const updateTopicRequest = {\n title: form.value.question,\n content: form.value.description,\n tags: form.value.tags,\n uid: _.get(this.topicData, 'uid')\n };\n this.close.emit({\n action: 'update',\n tid: _.get(this.topicData, 'posts[0].pid'),\n request: updateTopicRequest\n });\n }\n\n closeModal(eventMessage: string) {\n this.close.emit({ message: eventMessage });\n }\n\n logTelemetry(event) {\n this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.START);\n }\n}\n\n","<!--modals-->\n<div class=\"modal fade\" id=\"myModal\">\n <div class=\"discussion-start-modal\">\n <div class=\"discussion-start-modal-content\" id=\"topic-scroll\" tabindex=\"-1\" role=\"dialog\">\n <form [formGroup]=\"startForm\" class=\"discussion-start-form\">\n\n <div class=\"start-form-content\" *ngIf=\"showSelectCategory\" [ngClass]=\"{ 'is-invalid': showError('subTitle') }\">\n <label class=\"start-form-label\">Select category*</label>\n <div class=\"start-form-field\">\n <label class=\"start-form-label\" for=\"myList\">Select list </label>\n <select formControlName=\"category\" #category [required]=\"true\" id=\"myList\" class=\"select-category\">\n <option [value]=\"c.cid\" *ngFor=\"let c of allCategories\" [innerHTML]=\"c.name\"></option>\n </select>\n </div>\n <small class=\"mandatory-label\" *ngIf=\"!startForm.get('category').valid\" i18n=\"category Error|Explains category is required\">\n category is mandatory</small>\n </div>\n\n <div class=\"start-form-content\" [ngClass]=\"{ 'is-invalid': showError('subTitle') }\">\n <label class=\"start-form-label\">Discussion topic*</label>\n <div class=\"start-form-field\">\n <input [ngClass]=\"{'is-invalid' : isFieldValid('question')}\" class=\"start-form-field-control\" placeholder=\"Type here (minimum 8 characters)\"\n formControlName=\"question\" #question maxlength=\"1000\" />\n </div>\n <small class=\"mandatory-label\" *ngIf=\"!startForm.get('question').valid\" i18n=\"question Error|Explains question is required\">\n Question is mandatory. It should be minimum of\n 8 characters</small>\n </div>\n\n <div class=\"start-form-content\">\n <div class=\"start-form-field\">\n <label class=\"start-form-label\" for=\"description\">Please elaborate your question or idea here*</label>\n <textarea [ngClass]=\"{'is-invalid' : isFieldValid('description')}\" minlength=\"8\" class=\"start-form-field-control\" rows=\"8\" formControlName=\"description\"\n #description name=\"moretext\" placeholder=\"Type here (minimum 8 characters)\" id=\"description\"></textarea>\n </div>\n <small class=\"mandatory-label\" *ngIf=\"!startForm.get('description').valid\"\n i18n=\"description Error|Explains description is required\"> Description is mandatory. It should be minimum of\n 8 characters </small>\n </div>\n\n <div #postTags [ngClass]=\"{ 'is-invalid': showError('tags') }\" class=\"start-tags\">\n <label class=\"mb-0\">Tags</label>\n <div *ngFor=\"let tag of postTagsArray\">\n {{ tag }}\n </div>\n <!-- TODO: check the padding for placeholder -->\n <tag-input class=\"tag-input\" secondaryPlaceholder=\"Add a tag and press Enter\" formControlName=\"tags\"\n [modelAsStrings]=\"true\">\n </tag-input>\n </div>\n\n <div *ngIf=\"showErrorMsg\">\n <small class=\"mandatory-label\">\n {{createErrorMsg}}\n </small>\n </div>\n\n <div class=\"start-modal-buttons\">\n <button (click)=\"closeModal('discard');logTelemetry($event)\" mat-raised-button type=\"button\"\n class=\"df-btn df-btn-normal df-cancel-btn\" id=\"discard-discussion-start-form\">Cancel\n </button>\n <span *ngIf=\"uploadSaveData\">\n </span>\n <button *ngIf=\"mode !== 'edit'\" type=\"submit\" class=\"df-btn df-btn-normal df-btn-primary df-submit-btn\"\n [ngClass]=\"{'df-btn-disabled': !enableSubmitButton }\" [disabled]=\"!enableSubmitButton\"\n (click)=\"submitPost(startForm);logTelemetry($event)\" id=\"submit-discussion-start-form\">\n <span class=\"text-white\">Submit</span>\n </button>\n <button *ngIf=\"mode === 'edit'\" type=\"submit\" class=\"df-btn df-btn-normal df-btn-primary df-update-btn\"\n [ngClass]=\"{'df-btn-disabled': !enableSubmitButton }\" [disabled]=\"!enableSubmitButton\"\n (click)=\"updatePost(startForm);logTelemetry($event)\" id=\"update-topic-popup\">\n <span class=\"text-white\">Update</span>\n </button>\n </div>\n ​\n </form>\n ​\n <input type=\"hidden\" i18-value i18-aria-value aria-value=\"Post created successful\"\n value=\"Post created successfully!\" #toastSuccess />\n <input type=\"hidden\" i18-value i18-aria-value aria-value=\"unable to create post\"\n value=\"Error in creating new post!\" #toastError />\n </div>\n </div>\n</div>","import { CONTEXT_PROPS } from './../../services/discussion.service';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { DiscussionService } from '../../services/discussion.service';\nimport { TelemetryUtilsService } from './../../telemetry-utils.service';\nimport * as CONSTANTS from './../../common/constants.json';\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { NSDiscussData } from '../../models/discuss.model';\nimport { ConfigService } from '../../services/config.service';\nimport { NavigationServiceService } from '../../navigation-service.service';\n/* tslint:enable */\n\n@Component({\n selector: 'lib-discuss-home',\n templateUrl: './discuss-home.component.html',\n styleUrls: ['./discuss-home.component.css']\n})\nexport class DiscussHomeComponent implements OnInit {\n @Input() categoryId;\n @Input() categoryHomeAction;\n @Output() stateChange: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('scrollContainerHeight') elementView: ElementRef;\n discussionList = [];\n routeParams: any;\n showStartDiscussionModal = false;\n // categoryId: string;\n isTopicCreator = false;\n showLoader = false;\n currentActivePage: number = 1;\n pagination = Object.create({});\n\n // Input parameters for infinite scroll\n InfiniteScrollConfig = {\n modalScrollDistance: 2,\n modalScrollThrottle: 50\n };\n\n // Input parameters for infinite scroll\n modalScrollDistance = -12;\n modalScrollThrottle = 500;\n scrollUpDistance = 5;\n\n currentPage = 0;\n pageSize: number;\n totalTopics: number;\n title: any;\n\n constructor(\n public router: Router,\n private route: ActivatedRoute,\n private discussionService: DiscussionService,\n private configService: ConfigService,\n private telemetryUtils: TelemetryUtilsService,\n private navigationService: NavigationServiceService) { }\n\n ngOnInit() {\n this.telemetryUtils.logImpression(NSDiscussData.IPageName.HOME);\n this.route.params.subscribe(params => {\n this.configService.setCategoryId.subscribe((categoryIds: string) => {\n this.routeParams = categoryIds;\n // categoryIds = this.discussionService.getContext(CONTEXT_PROPS.cid)\n categoryIds = this.categoryId ? this.categoryId : categoryIds\n this.getDiscussionList(categoryIds);\n })\n this.routeParams = params;\n this.categoryId = this.discussionService.getContext(CONTEXT_PROPS.cid);\n // this.getDiscussionList(_.get(this.routeParams, 'slug'));\n });\n }\n\n /**\n * @description - set the scroll container height\n */\n ngAfterViewChecked() {\n if (this.elementView && this.elementView.nativeElement && !this.elementView.nativeElement.style.height) {\n // the number 10 is just a random value to reduce the height of the parent container to the infinite scroll\n this.elementView.nativeElement.style.height = (this.elementView.nativeElement.clientHeight - 10) + 'px';\n }\n }\n\n navigateToDiscussionDetails(discussionData) {\n const matchedTopic = _.find(this.telemetryUtils.getContext(), { type: 'Topic' });\n if (matchedTopic) {\n this.telemetryUtils.deleteContext(matchedTopic);\n }\n\n this.telemetryUtils.uppendContext({\n id: _.get(discussionData, 'tid'),\n type: 'Topic'\n });\n let routerSlug = this.configService.getConfig().routerSlug ? this.configService.getConfig().routerSlug : ''\n let input = { data: { url: `${routerSlug}${CONSTANTS.ROUTES.TOPIC}${_.trim(_.get(discussionData, 'slug'))}`, queryParams: {}, tid: discussionData.tid, title: discussionData.title }, action: CONSTANTS.CATEGORY_DETAILS }\n this.navigationService.navigate(input)\n this.stateChange.emit({ tid: discussionData.tid, title: discussionData.title, action: this.categoryHomeAction })\n }\n /**\n * @description - To get all the topics\n * @param - required cid as a slug\n */\n getDiscussionList(slug: string) {\n this.showLoader = true;\n const scrollIndex = this.pagination.currentPage ? this.pagination.currentPage : 1;\n this.discussionService.getContextBasedTopic(slug, scrollIndex).subscribe(data => {\n this.pagination = data.pagination;\n this.showLoader = false;\n this.isTopicCreator = _.get(data, 'privileges.topics:create') === true ? true : false;\n this.discussionList = [...this.discussionList, ...(_.union(_.get(data, 'topics'), _.get(data, 'children')))];\n }, error => {\n this.showLoader = false;\n // error code check\n this.discussionService.showTrafficAlert(error);\n // TODO: Toaster\n console.log('error fetching topic list', error);\n });\n }\n\n startDiscussion() {\n this.showStartDiscussionModal = true;\n }\n\n logTelemetry(event) {\n this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.HOME);\n }\n\n closeModal(event) {\n if (_.get(event, 'message') === 'success') {\n this.discussionList = [];\n this.pagination.currentPage = this.pagination.first.page;\n this.getDiscussionList(_.get(this.routeParams, 'slug'));\n }\n this.showStartDiscussionModal = false;\n }\n\n /**\n * @description - call the topic get api when scrolled down\n */\n onModalScrollDown() {\n if (this.pagination.currentPage !== this.pagination.pageCount) {\n this.pagination.currentPage = this.pagination.next.page;\n this.getDiscussionList(_.get(this.routeParams, 'slug'));\n }\n }\n}","<button *ngIf=\"isTopicCreator\" (click)=\"startDiscussion();logTelemetry($event)\" role=\"link\" tabindex=\"0\"\n class=\"df-btn df-btn-normal df-btn-primary df-start-btn\" data-toggle=\"modal\" data-target=\"#myModal\" data-backdrop=\"static\" data-keyboard=\"false\"\n id=\"start-discussion\">Start Discussion</button>\n<div *ngIf=\"discussionList && discussionList.length > 0\" class=\"topic-list-container\" id=\"topic-scroll\" #scrollContainerHeight>\n <div [infiniteScrollContainer]=\"'.topic-list-container'\" infinite-scroll class=\"infinite-scroll\"\n [scrollWindow]=\"false\" [infiniteScrollDistance]=\"InfiniteScrollConfig.modalScrollDistance\" [fromRoot]=\"true\"\n [infiniteScrollThrottle]=\"InfiniteScrollConfig.modalScrollThrottle\" (scrolled)=\"onModalScrollDown()\">\n <div *ngFor=\"let discussionData of discussionList\"\n (click)=\"navigateToDiscussionDetails(discussionData);logTelemetry($event)\" id=\"topic-card\">\n <lib-discuss-card [discussionData]=\"discussionData\"></lib-discuss-card>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"!(discussionList && discussionList.length > 0)\">\n <div class=\"no-card-content\" id=\"topic-card\" 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<lib-app-loader *ngIf=\"showLoader\"></lib-app-loader>\n<lib-discuss-start [categoryId]=\"categoryId\" (close)=\"closeModal($event)\" *ngIf=\"showStartDiscussionModal\">\n</lib-discuss-start>","import { Subscription } from 'rxjs';\nimport { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\nimport { DiscussionService, CONTEXT_PROPS } from '../../services/discussion.service';\nimport { NSDiscussData } from './../../models/discuss.model';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { TelemetryUtilsService } from './../../telemetry-utils.service';\n\nimport * as CONSTANTS from './../../common/constants.json';\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { ConfigService } from '../../services/config.service';\nimport { NavigationServiceService } from '../../navigation-service.service';\n/* tslint:enable */\n\n@Component({\n selector: 'lib-discuss-category',\n templateUrl: './discuss-category.component.html',\n styleUrls: ['./discuss-category.component.css']\n})\nexport class DiscussCategoryComponent implements OnInit, OnDestroy {\n\n categories: NSDiscussData.ICategorie[] = [];\n\n forumIds: any;\n @Input() categoryIds;\n @Input() categoryAction;\n @Output() stateChange: EventEmitter<any> = new EventEmitter();\n\n pageId = 0;\n\n isTopicCreator = false;\n\n showStartDiscussionModal = false;\n\n categoryId: any;\n\n paramsSubscription: Subscription;\n\n showLoader = false;\n\n constructor(\n public discussService: DiscussionService,\n public configService: ConfigService,\n public router: Router,\n public activatedRoute: ActivatedRoute,\n private telemetryUtils: TelemetryUtilsService,\n private navigationService: NavigationServiceService\n ) { }\n\n ngOnInit() {\n /** It will look for the queryParams, if back button is clicked,\n * the queryParams will change and it will fetch the categories\n * if there is no queryParams available, then it will fetch the default categories of the forumIds\n */\n this.telemetryUtils.setContext([]);\n this.telemetryUtils.logImpression(NSDiscussData.IPageName.CATEGORY);\n this.forumIds = this.categoryIds ? this.categoryIds : this.discussService.forumIds;\n this.paramsSubscription = this.activatedRoute.queryParams.subscribe((params) => {\n if (_.get(params, 'cid')) {\n this.navigateToDiscussionPage(_.get(params, 'cid'));\n } else {\n this.categories = [];\n if (this.forumIds.length) {\n this.fetchAllAvailableCategories(this.forumIds);\n } else {\n this.fetchAllCategories();\n }\n }\n });\n }\n\n fetchAllAvailableCategories(ids) {\n this.showLoader = true;\n ids.forEach((cid) => {\n this.fetchCategory(cid).subscribe(data => {\n this.showLoader = false;\n this.categories.push(data);\n }, error => {\n // TODO: Toast error\n // error code check\n this.discussService.showTrafficAlert(error);\n console.log('issue fetching category', error);\n this.showLoader = false;\n });\n });\n }\n\n fetchAllCategories() {\n this.showLoader = true;\n this.discussService.fetchAllCategories().subscribe(data => {\n this.showLoader = false;\n this.categories = data\n }, error => {\n // TODO: Toast error\n // error code check\n this.discussService.showTrafficAlert(error);\n console.log('issue fetching category', error);\n this.showLoader = false;\n });\n }\n\n fetchCategory(cid) {\n return this.discussService.fetchSingleCategoryDetails(cid);\n }\n\n /**\n * It will fetch the children for each category click.\n * if there is no children available the it will redirect to the topic list page\n */\n navigateToDiscussionPage(cid, slug?) {\n this.showLoader = true;\n this.telemetryUtils.uppendContext({ id: cid, type: 'Category' });\n this.discussService.fetchSingleCategoryDetails(cid).subscribe(response => {\n this.showLoader = false;\n this.categoryId = _.get(response, 'cid');\n this.isTopicCreator = _.get(response, 'privileges.topics:create') === true ? true : false;\n this.showStartDiscussionModal = false;\n let input\n if (_.get(response, 'children').length > 0) {\n this.router.navigate([], { relativeTo: this.activatedRoute.parent, queryParams: { cid: this.categoryId } });\n\n // input = { data: { url: '', queryParams: { cid: this.categoryId } }, action: this.categoryAction}\n // this.navigationService.navigate(input)\n\n _.get(response, 'children').forEach(subCategoryData => {\n this.categories.push(subCategoryData);\n });\n } else {\n this.discussService.setContext(CONTEXT_PROPS.cid, this.categoryId);\n this.configService.setCategoryid(this.categoryId)\n\n let routerSlug = this.configService.getConfig().routerSlug ? this.configService.getConfig().routerSlug : ''\n input = { data: { url: `${routerSlug}${CONSTANTS.ROUTES.CATEGORY}${this.categoryId}`, queryParams: {} }, action: CONSTANTS.CATEGORY_HOME, }\n this.navigationService.navigate(input)\n this.stateChange.emit({ action: this.categoryAction, categoryId: this.categoryId })\n }\n }, error => {\n // error code check\n this.discussService.showTrafficAlert(error);\n this.showLoader = false;\n // TODO: Toast error\n console.log('issue fetching category', error);\n });\n }\n\n startDiscussion() {\n this.showStartDiscussionModal = true;\n }\n\n closeModal(event) {\n this.showStartDiscussionModal = false;\n }\n\n logTelemetry(event) {\n this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.CATEGORY);\n };\n\n ngOnDestroy() {\n if (this.paramsSubscription) {\n this.paramsSubscription.unsubscribe();\n }\n }\n}\n","<lib-app-loader *ngIf=\"showLoader\"></lib-app-loader>\n <button (click)=\"startDiscussion();logTelemetry($event)\" *ngIf=\"isTopicCreator\" class=\"df-btn df-btn-primary df-btn-normal mb-16\" id=\"start-discussion\">Start Discussion</button>\n <div class=\"discuss-category-cards\">\n <ng-container *ngFor=\"let data of categories\">\n <div (click)=\"navigateToDiscussionPage(data?.cid, data?.slug);logTelemetry($event)\" class=\"categories-card-content\" id=\"category-card\">\n <lib-category-card [category]=\"data\" ></lib-category-card>\n </div>\n </ng-container>\n </div>\n\n <lib-discuss-start (close)=\"closeModal($event)\" [categoryId]=\"categoryId\" *ngIf=\"showStartDiscussionModal\" ></lib-discuss-start>\n","import { Component, OnInit, EventEmitter, Output } from '@angular/core';\n\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { DiscussionService } from '../../services/discussion.service';\nimport { NSDiscussData } from '../../models/discuss.model';\nimport { TelemetryUtilsService } from './../../telemetry-utils.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { ConfigService } from '../../services/config.service';\nimport * as CONSTANTS from './../../common/constants.json';\nimport { DiscussUtilsService } from '../../services/discuss-utils.service';\nimport { NavigationServiceService } from '../../navigation-service.service';\n/* tslint:enable */\n\n@Component({\n selector: 'lib-discuss-tags',\n templateUrl: './discuss-tags.component.html',\n styleUrls: ['./discuss-tags.component.scss']\n})\nexport class DiscussTagsComponent implements OnInit {\n\n @Output() stateChange: EventEmitter<any> = new EventEmitter();\n query: string;\n filteredTags: NSDiscussData.ITag[];\n showLoader = false;\n queryParam: any;\n paramsSubscription: Subscription;\n getParams: any;\n cIds: any;\n constructor(\n private discussionService: DiscussionService,\n private telemetryUtils: TelemetryUtilsService,\n private router: Router,\n public activatedRoute: ActivatedRoute,\n private configService: ConfigService,\n private discussUtils: DiscussUtilsService,\n private navigationService: NavigationServiceService\n ) { }\n\n ngOnInit() {\n this.telemetryUtils.setContext([]);\n this.telemetryUtils.logImpression(NSDiscussData.IPageName.TAGS);\n\n this.cIds = this.configService.getCategories()\n if (this.configService.hasContext()) {\n this.getContextBasedTags(this.cIds.result)\n } else {\n this.fetchAllTags();\n }\n\n }\n\n fetchAllTags() {\n this.showLoader = true;\n this.discussionService.fetchAllTag().subscribe(data => {\n this.showLoader = false;\n this.filteredTags = _.get(data, 'tags');\n }, error => {\n this.showLoader = false;\n // TODO: toaster\n console.log('error fetching tags');\n });\n }\n\n getContextBasedTags(cid: any) {\n const req = {\n cids: cid\n }\n this.showLoader = true;\n this.discussionService.contextBasedTags(req).subscribe(data => {\n this.showLoader = false;\n this.filteredTags = _.get(data, 'result');\n }, error => {\n this.showLoader = false;\n // TODO: toaster\n console.log('error fetching tags');\n });\n }\n\n public getBgColor(tagTitle: any) {\n const bgColor = this.discussUtils.stringToColor(tagTitle.toLowerCase());\n const color = this.discussUtils.getContrast();\n return { color, 'background-color': bgColor };\n }\n\n getAllDiscussions(tag: { value: any }) {\n this.queryParam = tag.value;\n const tagdata = {\n tagname: ''\n };\n\n tagdata.tagname = tag.value;\n this.queryParam = tagdata;\n const routerSlug = this.configService.getConfig().routerSlug ? this.configService.getConfig().routerSlug : '';\n const input = { data: { url: `${routerSlug}${CONSTANTS.ROUTES.TAG}tag-discussions`,\n queryParams: this.queryParam, tagName: this.queryParam.tagName }, action: 'tagsAll'};\n this.navigationService.navigate(input);\n this.stateChange.emit({ action: CONSTANTS.TAG_ALL_DISCUSS, title: tag.value, tid: 'sd' });\n // tslint:disable-next-line: max-line-length\n // this.router.navigate([`${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.TAG}tag-discussions`], { queryParams: this.queryParam });\n }\n\n}\n","<lib-app-loader *ngIf=\"showLoader\"></lib-app-loader>\n<div class=\"flex flex-1 margin-top-m flex-column discussion-tag-content\">\n <ng-container *ngIf=\"filteredTags && filteredTags.length > 0\">\n <div class=\"tags\">\n <div *ngFor=\"let tag of filteredTags \" class=\"tag\" [ngStyle]=\"getBgColor(tag.value)\"\n (click)=\"getAllDiscussions(tag)\">\n <!-- Can enable random colors from below commented code -->\n <!-- <div *ngFor=\"let tag of filteredTags | pipeFilter:'score,value':query\"\n class=\"tag text-capitalize\" [ngStyle]=\"getBgColor(tag.value)\"> -->\n <span class=\"margin-left-m\">{{tag.value}}</span>\n <span class=\"ws-mat-default-text count\">{{tag.score}}</span>\n </div>\n </div>\n </ng-container>\n</div>\n​\n​\n<div class=\"tag-empty-container\" *ngIf=\"!showLoader && !filteredTags.length\">\n <div class=\"tag-empty-img\"><img src=\"./assets/discussion-ui/images/empty.svg\" alt=\"empty image\"></div>\n <label class=\"tag-empty-label\">No tags Available !</label>\n <p class=\"tag-empty-text\">Stay tuned ! we will be updating our tags library and add them here</p>\n</div>\n","import { DiscussionService } from './../../services/discussion.service';\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { TelemetryUtilsService } from './../../telemetry-utils.service';\nimport { NSDiscussData } from './../../models/discuss.model';\nimport { Router } from '@angular/router';\nimport * as CONSTANTS from '../../common/constants.json';\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { ConfigService } from '../../services/config.service';\nimport { combineLatest } from 'rxjs';\n/* tslint:enable */\n\n@Component({\n selector: 'lib-my-discussion',\n templateUrl: './my-discussion.component.html',\n styleUrls: ['./my-discussion.component.scss']\n})\nexport class MyDiscussionComponent implements OnInit {\n\n @ViewChild('scrollContainerHeight') elementView: ElementRef;\n data; // this is for user\n discussionList = []; // this is for posts\n currentFilter = 'timestamp';\n department!: string | null;\n location!: string | null;\n profilePhoto!: string;\n userInitial = '';\n showLoader = false;\n pagination = Object.create({});\n recentFilter;\n\n // Input parameters for infinite scroll\n InfiniteScrollConfig = {\n modalScrollDistance: 2,\n modalScrollThrottle: 50\n };\n\n constructor(\n private discussService: DiscussionService,\n private configService: ConfigService,\n public router: Router,\n private telemetryUtils: TelemetryUtilsService) { }\n\n /** To fetch user details */\n fetchUserProfile(userName) {\n this.discussService.fetchUserProfile(userName).subscribe(response => {\n this.showLoader = false;\n console.log(response);\n this.data = response;\n if (_.get(this.data, 'posts')) {\n this.discussionList = _.get(this.data, 'posts').filter(p => (p.isMainPost === true));\n }\n // if (this.configSvc.userProfile) {\n // localStorage.setItem(this.configSvc.userProfile.userId, this.profilePhoto);\n // }\n }, error => {\n this.showLoader = false;\n // error code check\n this.discussService.showTrafficAlert(error);\n // TODO: Toaster\n console.log('error fetching user details');\n });\n }\n\n ngOnInit() {\n this.telemetryUtils.setContext([]);\n this.telemetryUtils.logImpression(NSDiscussData.IPageName.MY_DISCUSSION);\n this.filter(this.currentFilter, false);\n }\n\n /**\n * @description - set the scroll container height\n */\n ngAfterViewChecked() {\n if (this.elementView && this.elementView.nativeElement && !this.elementView.nativeElement.style.height) {\n // the number 10 is just a random value to reduce the height of the parent container to the infinite scroll\n this.elementView.nativeElement.style.height = (this.elementView.nativeElement.clientHeight - 10) + 'px';\n }\n }\n \n /**\n * @param {string|'timestamp'|'best'|'saved'|'watched'|'upvoted'|'downvoted'} key\n * @param {boolean} resetpagination - its used to reset the pagination value based on the filter data\n */\n filter(key: string | 'timestamp' | 'best' | 'saved' | 'watched' | 'upvoted' | 'downvoted', resetpagination: boolean) {\n this.currentFilter = key;\n if (key) {\n // reset the currentpage value to 1 and reset the discussionList data based on the respective api response when the filter is changed\n if (resetpagination) {\n this.discussionList = []\n this.pagination.currentPage = 1;\n }\n // setting the current page index \n const scrollIndex = this.pagination.currentPage ? this.pagination.currentPage : 1;\n this.showLoader = true;\n switch (key) {\n case 'timestamp':\n this.getRecentTopics(scrollIndex);\n break;\n case 'best':\n // this.discussionList = _.uniqBy(this.data.bestPosts, 'tid');\n this.discussService.fetchBestPost(scrollIndex).subscribe(result => {\n if (result) {\n const bestPost = result['posts'].filter(p => (p.isMainPost === true));\n this.discussionList = [...this.discussionList, ...bestPost];\n this.pagination = _.get(result, 'pagination');\n this.showLoader = false;\n } else {\n this.showLoader = false;\n this.discussionList = [];\n }\n }, error => {\n // error code check\n this.discussService.showTrafficAlert(error);\n });\n break;\n case 'saved':\n this.discussService.fetchSaved(scrollIndex).subscribe(response => {\n if (response) {\n // this.discussionList = _.uniqBy(response['posts'], 'tid');\n this.discussionList = [...this.discussionList, ...response['posts']];\n this.pagination = _.get(response, 'pagination');\n this.showLoader = false;\n } else {\n this.showLoader = false;\n this.discussionList = [];\n }\n },\n // tslint:disable-next-line\n (error) => {\n // error code check\n this.discussService.showTrafficAlert(error);\n this.discussionList = [];\n })\n break;\n case 'watched':\n this.showLoader = false;\n this.discussionList = [];\n break;\n case 'upvoted':\n this.discussService.fetchUpvoted(scrollIndex).subscribe(response => {\n if (response) {\n // this.discussionList = _.uniqBy(response['posts'], 'tid');\n const upvoted = response['posts'].filter(p => (p.isMainPost === true));\n this.pagination = _.get(response, 'pagination');\n this.discussionList = [...this.discussionList, ...upvoted];\n this.showLoader = false;\n } else {\n this.showLoader = false;\n this.discussionList = [];\n }\n },\n // tslint:disable-next-line\n (error) => {\n this.discussionList = [];\n // error code check\n this.discussService.showTrafficAlert(error);\n });\n\n break;\n case 'downvoted':\n this.discussService.fetchDownvoted(scrollIndex).subscribe(response => {\n if (response) {\n // this.discussionList = _.uniqBy(response['posts'], 'tid');\n const downvoted = response['posts'].filter(p => (p.isMainPost === true));\n this.discussionList = [...this.discussionList, ...downvoted];\n this.pagination = _.get(response, 'pagination');\n this.showLoader = false;\n } else {\n this.showLoader = false;\n this.discussionList = [];\n }\n },\n // tslint:disable-next-line\n (error) => {\n this.discussionList = [];\n // error code check\n this.discussService.showTrafficAlert(error);\n });\n break;\n default:\n // this.discussionList = _.uniqBy(this.data.latestPosts, 'tid');\n this.pagination = _.get(this.data, 'pagination');\n this.discussionList = _.get(this.data, 'latestPosts');\n break;\n }\n }\n }\n\n navigateToDiscussionDetails(discussionData) {\n console.log('discussionData', discussionData);\n const slug = _.get(discussionData, 'slug') || _.get(discussionData, 'topic.slug')\n this.router.navigate([`${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.TOPIC}${slug}`]);\n }\n\n logTelemetry(event) {\n this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.MY_DISCUSSION);\n }\n\n /**\n * @description - getting the recent post data\n * @param {number} scrollIndex\n */\n getRecentTopics(scrollIndex: number) {\n const userId = this.discussService.userId;\n // const userSlug = this.discussService.userDetails.userslug;\n combineLatest([\n this.discussService.fetchUserProfile(userId),\n this.discussService.fetchRecentPost(scrollIndex)\n ]).subscribe(result => {\n console.log('getRecentTopics', result)\n this.showLoader = false;\n this.data = _.merge(result[0], result[1]);\n this.discussionList = [...this.discussionList, ...(_.get(this.data, 'posts'))];\n this.discussionList = this.discussionList.filter(p => (p.isMainPost === true));\n this.pagination = _.get(this.data, 'pagination');\n }, error => {\n this.showLoader = false;\n console.log(error);\n });\n }\n \n /**\n * @description - call the topic get api when scrolled down and setting the limit of API Call\n */\n onModalScrollDown() {\n if (this.pagination.currentPage !== this.pagination.pageCount) {\n this.pagination.currentPage = this.pagination.next.page;\n const resetpagination = false;\n // using settimeout to avoid the function call before getting the pagination response from api, \n // because the api is called twice with the same page index\n setTimeout(() => {\n this.filter(this.currentFilter, resetpagination)\n }, 800); \n }\n }\n}\n","<lib-app-loader *ngIf=\"showLoader\"></lib-app-loader>\n\n<div class=\"profileCard\">\n <div class=\"profile-card-content\">\n <div class=\"profile-header-image\">\n <div class=\"box-text\">\n <span class=\"box-label\"></span>{{ data?.username | splitInitials }}\n </div>\n </div>\n <div>\n <div class=\"profile-label name\" [innerHTML]=\"data?.username\"></div>\n <div class=\"profile-label department\">{{ department }}</div>\n <div class=\"profile-label location\">{{ location }}</div>\n <div class=\"profile-label email\">{{ data?.email || data?.username }}</div>\n <ng-container>\n <div class=\"my-discuss-topics\">\n <div class=\"my-discuss-topics__content\">\n <div class=\"my-discuss-label\">\n <span class=\"number\">{{ data?.topiccount || 0 }}</span>\n Discussions\n </div>\n <div class=\"post-count-area my-discuss-label\">\n <span class=\"number\">{{ data?.postcount || 0 }}</span>\n Posts\n </div>\n </div>\n <div class=\"text-right\">\n <!-- Enable lated when other user can visit your profile -->\n <!-- <span class=\"noocoments\" mat-card-subtitle>Last online {{data?.lastonline | pipeRelativeTime}}</span> -->\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-container>\n <div class=\"recent-tabs\">\n <div class=\"tabs-content\">\n <div class=\"tabs-filter\">\n <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option\" [ngClass]=\"{\n 'tabs-active': currentFilter === 'timestamp',\n 'ws-mat-accent-border font-medium': currentFilter !== 'timestamp'\n }\" (click)=\"filter('timestamp', true); logTelemetry($event)\" id=\"recent-post\">\n Recent posts\n </a>\n <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option\" [ngClass]=\"{\n 'tabs-active': currentFilter === 'best',\n 'ws-mat-accent-border font-medium': currentFilter !== 'best'\n }\" (click)=\"filter('best', true); logTelemetry($event)\" id=\"best-post\">\n Best posts\n </a>\n <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option\" [ngClass]=\"{\n 'tabs-active': currentFilter === 'saved',\n 'ws-mat-accent-border font-medium': currentFilter !== 'saved'\n }\" (click)=\"filter('saved', true); logTelemetry($event)\" id=\"saved-post\">\n Saved posts\n </a>\n <!-- <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option \" [ngClass]=\"{'ws-mat-accent-border-active' : currentFilter === 'watched',\n 'ws-mat-accent-border font-medium':currentFilter !== 'watched'}\" mat-button\n (click)=\"filter('watched')\">\n Watched </a> -->\n <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option\" [ngClass]=\"{\n 'tabs-active': currentFilter === 'upvoted',\n 'ws-mat-accent-border font-medium': currentFilter !== 'upvoted'\n }\" (click)=\"filter('upvoted', true); logTelemetry($event)\" id=\"upvoted-post\">\n Upvoted\n </a>\n\n <a href=\"javascript:void(0)\" role=\"link\" class=\"filter-option\" [ngClass]=\"{\n 'tabs-active': currentFilter === 'downvoted',\n 'ws-mat-accent-border font-medium': currentFilter !== 'downvoted'\n }\" (click)=\"filter('downvoted', true); logTelemetry($event)\" id=\"downvoted-post\">\n Downvoted\n </a>\n </div>\n </div>\n </div>\n</ng-container>\n\n<div *ngIf=\"discussionList && discussionList.length > 0\" class=\"topic-list-container\" id=\"topic-scroll\"\n #scrollContainerHeight>\n <!--infinite scroll-->\n <div [infiniteScrollContainer]=\"'.topic-list-container'\" infinite-scroll class=\"infinite-scroll\"\n [scrollWindow]=\"false\" [infiniteScrollDistance]=\"InfiniteScrollConfig.modalScrollDistance\" [fromRoot]=\"true\"\n [infiniteScrollThrottle]=\"InfiniteScrollConfig.modalScrollThrottle\" (scrolled)=\"onModalScrollDown()\">\n <ng-container *ngFor=\"let data of discussionList\">\n <div (click)=\"navigateToDiscussionDetails(data); logTelemetry($event)\" id=\"discuss-card\">\n <lib-discuss-card [discussionData]=\"data\"></lib-discuss-card>\n </div>\n </ng-container>\n </div>\n</div>\n\n<lib-app-loader *ngIf=\"showLoader\"></lib-app-loader>\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>","import { TelemetryUtilsService } from './../../telemetry-utils.service';\nimport { DiscussionService } from './../../services/discussion.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Component, OnInit, OnDestroy, Input, Renderer2, Output, EventEmitter } from '@angular/core';\nimport { NSDiscussData } from './../../models/discuss.model';\nimport { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\nimport * as CONSTANTS from '../../common/constants.json';\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { Subscription } from 'rxjs';\nimport { ConfigService } from '../../services/config.service';\n/* tslint:enable */\nimport { Location } from '@angular/common';\n\nimport { NavigationServiceService } from '../../navigation-service.service';\n\nconst MSGS = {\n deletePost: `Are you sure you want to delete this Post? This can't be undone.`,\n deleteTopic: `Are you sure you want to delete this topic? Your action cannot be undone.`\n};\n\n@Component({\n selector: 'lib-discussion-details',\n templateUrl: './discussion-details.component.html',\n styleUrls: ['./discussion-details.component.scss']\n})\nexport class DiscussionDetailsComponent implements OnInit, OnDestroy {\n @Input() topicId: any;\n @Input() slug: string;\n @Input() widget: boolean;\n\n @Output() stateChange: EventEmitter<any> = new EventEmitter();\n\n routeParams: any;\n currentActivePage = 1;\n currentFilter = 'timestamp'; // 'recent\n data: any;\n paginationData!: any;\n pager = {};\n postAnswerForm!: UntypedFormGroup;\n UpdatePostAnswerForm: UntypedFormGroup;\n replyForm: UntypedFormGroup;\n fetchSingleCategoryLoader = false;\n paramsSubscription: Subscription;\n editMode = false;\n updatedPost = false;\n contentPost: any;\n editContentIndex: any;\n mainUid: number;\n similarPosts: any[];\n showEditTopicModal = false;\n editableTopicDetails: any;\n dropdownContent = true;\n categoryId: any;\n showLoader = false;\n\n constructor(\n private route: ActivatedRoute,\n private discussionService: DiscussionService,\n private configService: ConfigService,\n private formBuilder: UntypedFormBuilder,\n public router: Router,\n private telemetryUtils: TelemetryUtilsService,\n private renderer: Renderer2,\n private location: Location,\n private navigationService: NavigationServiceService,\n ) {\n /**\n * @description - It will check for the outside click while kebab menu is in open mode.\n */\n this.renderer.listen('window', 'click', (e: Event) => {\n // tslint:disable-next-line:no-string-literal\n if (e.target['id'] !== 'group-actions') {\n this.dropdownContent = true;\n }\n });\n }\n\n ngOnInit() {\n this.initializeFormFiled();\n if(this.widget){\n this.fetchSingleCategoryLoader = true\n }\n if (!this.topicId && !this.slug) {\n this.route.params.subscribe(params => {\n this.routeParams = params;\n this.slug = _.get(this.routeParams, 'slug');\n this.topicId = _.get(this.routeParams, 'topicId');\n this.refreshPostData(this.currentActivePage);\n // this.getRealtedDiscussion(this.cid)\n });\n } else {\n this.refreshPostData(this.currentActivePage);\n // this.getRealtedDiscussion(this.cid)\n }\n\n\n this.telemetryUtils.logImpression(NSDiscussData.IPageName.DETAILS);\n }\n\n // tslint:disable-next-line: use-life-cycle-interface\n ngOnChanges() {\n if (!this.topicId && !this.slug) {\n this.route.params.subscribe(params => {\n this.routeParams = params;\n this.slug = _.get(this.routeParams, 'slug');\n this.topicId = _.get(this.routeParams, 'topicId');\n this.refreshPostData(this.currentActivePage);\n // this.getRealtedDiscussion(this.cid)\n });\n } else {\n this.refreshPostData(this.currentActivePage);\n // this.getRealtedDiscussion(this.cid)\n }\n }\n\n // new method\n acceptData(discuss) {\n // debugger\n const matchedTopic = _.find(this.telemetryUtils.getContext(), { type: 'Topic' });\n if (matchedTopic) {\n this.telemetryUtils.deleteContext(matchedTopic);\n }\n\n this.telemetryUtils.uppendContext({\n id: _.get(discuss, 'tid'),\n type: 'Topic'\n });\n\n const slug = _.trim(_.get(discuss, 'slug'))\n const input = {\n data: { url: `${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.TOPIC}${slug}`, queryParams: {} },\n action: CONSTANTS.CATEGORY_DETAILS };\n\n this.navigationService.navigate(input);\n this.stateChange.emit({ action: CONSTANTS.CATEGORY_DETAILS, title: discuss.title, tid: discuss.tid });\n }\n\n initializeFormFiled() {\n this.postAnswerForm = this.formBuilder.group({\n answer: [],\n });\n this.UpdatePostAnswerForm = this.formBuilder.group({\n updatedAnswer: [],\n });\n this.replyForm = this.formBuilder.group({\n reply: []\n });\n }\n\n async refreshPostData(page?: any) {\n if (this.currentFilter === 'timestamp') {\n\n this.discussionService.fetchTopicById(this.topicId, this.slug, page).subscribe(\n (data: NSDiscussData.IDiscussionData) => {\n this.appendResponse(data)\n this.showLoader = true;\n },\n (err: any) => {\n // error code check\n this.discussionService.showTrafficAlert(err);\n console.log('Error in fetching topics')\n // toast message\n // this.openSnackbar(err.error.message.split('|')[1] || this.defaultError);\n });\n } else {\n this.discussionService.fetchTopicByIdSort(this.topicId, 'voted', page).subscribe(\n (data: NSDiscussData.IDiscussionData) => {\n this.appendResponse(data)\n this.showLoader = true;\n },\n (err: any) => {\n // error code check\n this.discussionService.showTrafficAlert(err);\n console.log('Error in fetching topics')\n });\n }\n }\n\n appendResponse(data) {\n this.data = data;\n this.paginationData = _.get(data, 'pagination');\n // TODO: After updating the nodebb version to v1.18.6 or above. Remove the fallback after 2/3 releases.\n this.mainUid = _.get(data, 'loggedInUser.uid') || _.get(data, 'privileges.uid');\n this.categoryId = _.get(data, 'cid');\n this.topicId = _.get(data, 'tid');\n }\n\n\n setPagination() {\n this.pager = {\n startIndex: this.paginationData.first.page,\n endIndex: this.paginationData.last.page,\n pages: this.paginationData.pages,\n currentPage: this.paginationData.currentPage,\n totalPage: this.paginationData.pageCount,\n };\n }\n\n upvote(discuss: NSDiscussData.IDiscussionData) {\n const req = {\n delta: 1,\n };\n this.processVote(discuss, req);\n }\n\n downvote(discuss: NSDiscussData.IDiscussionData) {\n const req = {\n delta: -1,\n };\n this.processVote(discuss, req);\n }\n\n private async processVote(discuss: any, req: any) {\n if (discuss && discuss.uid) {\n this.discussionService.votePost(discuss.pid, req).subscribe(\n () => {\n // toast\n // this.openSnackbar(this.toastSuccess.nativeElement.value);\n this.postAnswerForm.reset();\n this.refreshPostData(this.currentActivePage);\n },\n (err: any) => {\n // error code check\n this.discussionService.showTrafficAlert(err);\n // toast\n // this.openSnackbar(err.error.message.split('|')[1] || this.defaultError);\n });\n }\n }\n\n bookmark(discuss: any) {\n this.discussionService.bookmarkPost(discuss.pid).subscribe(data => {\n // toast\n // this.openSnackbar('Bookmark added successfully!');\n this.refreshPostData(this.currentActivePage);\n },\n (err: any) => {\n // error code check\n this.discussionService.showTrafficAlert(err);\n // toast\n // this.openSnackbar(err.error.message.split('|')[1] || this.defaultError);\n });\n }\n\n unBookMark(discuss: any) {\n this.discussionService.deleteBookmarkPost(discuss.pid).subscribe(data => {\n // toast\n this.refreshPostData(this.currentActivePage);\n },\n (err: any) => {\n // error code check\n this.discussionService.showTrafficAlert(err);\n // toast\n // this.openSnackbar(err.error.message.split('|')[1] || this.defaultError);\n });\n }\n\n deleteVote(discuss: any) {\n this.discussionService.deleteVotePost(discuss.pid).subscribe(data => {\n // toast\n this.refreshPostData(this.currentActivePage);\n },\n (err: any) => {\n // error code check\n this.discussionService.showTrafficAlert(err);\n // toast\n // this.openSnackbar(err.error.message.split('|')[1] || this.defaultError);\n });\n }\n\n postReply(replyContent: string, post: NSDiscussData.IDiscussionData) {\n const req = {\n content: replyContent,\n };\n this.postAnswerForm.controls['answer'].setValue('');\n if (post && post.tid) {\n this.discussionService.replyPost(post.tid, req).subscribe(\n () => {\n // toast\n // this.openSnackbar('Your reply was saved succesfuly!');\n // this.fetchNewData = true;\n this.refreshPostData(this.currentActivePage);\n },\n (err: any) => {\n // error code check\n this.discussionService.showTrafficAlert(err);\n // toast\n // this.openSnackbar(err.error.message.split('|')[1] || this.defaultError);\n });\n }\n }\n\n postCommentsReply(replyContent: string, post: NSDiscussData.IPosts) {\n const req = {\n content: replyContent,\n toPid: post.pid,\n };\n if (post && post.tid) {\n this.discussionService.replyPost(post.tid, req).subscribe(\n () => {\n // toast\n // this.openSnackbar('Your reply was saved succesfuly!');\n this.refreshPostData(this.currentActivePage);\n },\n (err: any) => {\n // error code check\n this.discussionService.showTrafficAlert(err);\n // toast\n // this.openSnackbar(err.error.message.split('|')[1] || this.defaultError);\n });\n }\n }\n\n confirmDelete(pid) {\n if (window.confirm(MSGS.deletePost)) {\n this.deletePost(pid);\n }\n }\n\n filter(key: string | 'timestamp' | 'upvotes') {\n if (key) {\n this.currentFilter = key;\n this.refreshPostData(this.currentActivePage);\n }\n }\n\n navigateWithPage(page: any) {\n if (page !== this.currentActivePage) {\n this.router.navigate([`${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.CATEGORY} ${this.topicId}`], { queryParams: { page }, queryParamsHandling: \"merge\" });\n }\n }\n\n showError(meta: string) {\n if (meta) {\n return true;\n }\n return false;\n }\n\n public getBgColor(tagTitle: any) {\n const bgColor = this.stringToColor(tagTitle.toLowerCase());\n const color = this.getContrast();\n return { color, 'background-color': bgColor };\n }\n\n stringToColor(title) {\n let hash = 0;\n\n for (let i = 0; i < title.length; i++) {\n // tslint:disable-next-line: no-bitwise\n hash = title.charCodeAt(i) + ((hash << 5) - hash);\n }\n const hue = Math.abs(hash % 360);\n // tslint:disable-next-line: prefer-template\n const colour = 'hsl(' + hue + ',100%,30%)';\n return colour;\n }\n\n getContrast() {\n return 'rgba(255, 255, 255, 80%)';\n }\n\n logTelemetry(event, data?) {\n const pid = _.get(data, 'pid') || _.get(data, 'mainPid') ?\n { id: _.get(data, 'pid') || _.get(data, 'mainPid'), type: 'Post' } : {};\n this.telemetryUtils.uppendContext(pid);\n this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.DETAILS);\n }\n\n onEditMode(UpdatePostStatus: boolean) {\n if (UpdatePostStatus) {\n this.editMode = true;\n } else {\n this.editMode = false;\n }\n }\n\n getRealtimePost(post: any, index: any) {\n this.editMode = true;\n this.editContentIndex = index;\n this.contentPost = _.get(post, 'content').replace(/<[^>]*>/g, '');\n post.toggle = false;\n }\n\n updatePost(updatedPostContent: any, pid: number) {\n this.editMode = false;\n const req = {\n content: updatedPostContent,\n title: '',\n tags: [],\n uid: this.mainUid\n };\n this.discussionService.editPost(pid, req).subscribe((data: any) => {\n // TODO: Success toast\n this.refreshPostData(this.currentActivePage);\n }, (error) => {\n // error code check\n this.discussionService.showTrafficAlert(error);\n // TODO: error toast\n console.log('e', error);\n });\n console.log(pid);\n }\n\n deletePost(postId: number) {\n this.discussionService.deletePost(postId, this.mainUid).subscribe((data: any) => {\n // TODO: Success toast\n this.refreshPostData(this.currentActivePage);\n }, (error) => {\n // error code check\n this.discussionService.showTrafficAlert(error);\n // TODO: error toast\n console.log('e', error);\n });\n }\n\n editReplyHandler(event, post) {\n if (_.get(event, 'action') === 'cancel') {\n this.onEditMode(false);\n } else if (_.get(event, 'action') === 'edit') {\n this.updatePost(_.get(event, 'content'), _.get(post, 'pid'));\n this.logTelemetry(event, post);\n }\n }\n\n commentReplyHandler(event, post) {\n if (_.get(event, 'action') === 'cancel') {\n this.togglePost(post);\n } else if (_.get(event, 'action') === 'reply') {\n this.postCommentsReply(_.get(event, 'content'), post);\n this.logTelemetry(event, post);\n }\n }\n\n postReplyHandler(event, post) {\n if (_.get(event, 'action') === 'reply') {\n this.postReply(_.get(event, 'content'), post);\n this.logTelemetry(event, post);\n }\n }\n\n togglePost(post) {\n post.toggle = !post.toggle;\n this.onEditMode(false);\n }\n\n /**\n * @description - It will trigger the event handlers and close the update thread popup.\n */\n closeModal(event: any) {\n console.log('close event', event);\n if (_.get(event, 'action') === 'update') {\n this.editTopicHandler(event, _.get(event, 'tid'), _.get(event, 'request'));\n }\n this.showEditTopicModal = false;\n }\n\n /**\n * @description - It will open update thread popup.\n */\n editTopic(event, topicData) {\n this.showEditTopicModal = true;\n this.logTelemetry(event, topicData);\n }\n\n /**\n * @description - It will all the update topic api. If success, then will refresh the data.\n */\n editTopicHandler(event, tid, updateTopicRequest) {\n this.logTelemetry(event, this.editableTopicDetails);\n this.discussionService.editPost(tid, updateTopicRequest).subscribe(data => {\n console.log('update success', data);\n this.refreshPostData(this.currentActivePage);\n }, error => {\n // error code check\n this.discussionService.showTrafficAlert(error);\n console.log('error while updating', error);\n });\n }\n\n /**\n * @description - It will open the confirmation popup before deleting the topic,\n * If clicked yes, then will call the delete topic handler.\n */\n deleteTopic(event, topicData) {\n if (window.confirm(MSGS.deleteTopic)) {\n this.logTelemetry(event, topicData);\n this.deleteTopicHandler(_.get(topicData, 'tid'));\n }\n }\n\n /**\n * @description - It will all the delete topic api. If success, then will navigate back to the previous page.\n */\n deleteTopicHandler(topicId) {\n this.discussionService.deleteTopic(topicId).subscribe(data => {\n this.location.back();\n }, error => {\n // error code check\n this.discussionService.showTrafficAlert(error);\n console.log('error while deleting', error);\n });\n }\n /**\n * @description - It will toggle the kebab menu click\n */\n onMenuClick() {\n this.dropdownContent = !this.dropdownContent;\n }\n\n ngOnDestroy() {\n if (this.paramsSubscription) {\n this.paramsSubscription.unsubscribe();\n }\n }\n\n}\n","<lib-app-loader *ngIf=\"!showLoader\"></lib-app-loader>\n<div class=\"discuss-details-content\" *ngIf=\"showLoader\">\n <div class=\"discussion-details\" tabindex=\"0\" role=\"link\">\n\n <!-- header -->\n <div class=\"discuss-card-kabab-menu\">\n <h3 class=\"discussion-card-title df-label-color\" [innerHTML]=\"data?.title\"></h3>\n <div *ngIf=\"data?.uid === mainUid\">\n <div class=\"kabab-menu\" id=\"group-actions\" (click)=\"onMenuClick()\" tabindex=\"0\"></div>\n <div class=\"kabab-menu-dropdown-content\" [hidden]=\"dropdownContent\">\n <div id=\"edit-topic\" class=\"list\" tabindex=\"0\"\n (click)=\"editTopic($event, data); editableTopicDetails = data\">Edit\n </div>\n <div id=\"delete-topic\" class=\"list\" (click)=\"deleteTopic($event, data)\" tabindex=\"0\">Delete</div>\n </div>\n </div>\n </div>\n <!-- /header -->\n\n <ng-container *ngFor=\"let post of data?.posts\">\n <div class=\"post-reply-card\" *ngIf=\"post?.index === 0\">\n <h3 class=\"discussion-heading df-text-color\" [innerHTML]=\"post?.content\"></h3>\n <div class=\"discussion-content\">\n <div class=\"circle-text\">\n <div class=\"circle-label\">{{ post?.user?.username | splitInitials }}</div>\n </div>\n <div class=\"discussion-labels\">{{'Asked by '}}</div>\n <div class=\"discussion-labels\" *ngIf=\"post.user.fullname\" [innerHTML]=\"post.user.fullname\"></div>\n <div class=\"discussion-labels\" *ngIf=\"!post.user.fullname\" [innerHTML]=\"post.user.username\"></div>\n </div>\n\n <div class=\"tags\" aria-label=\"tags\">\n <ng-container *ngIf=\"data && data?.tags && data?.tags?.length > 0\">\n <span *ngFor=\"let tag of data?.tags\" class=\"tag\" role=\"link\" tabindex=\"0\"\n [ngStyle]=\"getBgColor(tag.value)\">\n {{tag.value}}\n </span>\n </ng-container>\n </div>\n\n <div class=\"comments-area\">\n <div>\n <span class=\"post-icons mobile\">\n <span role=\"link\" tabindex=\"0\" *ngIf=\"!post.upvoted\" (click)=\"upvote(post);logTelemetry($event, post)\"\n aria-label=\"upvote the post\" id=\"up-vote\">\n <!-- upward arrow -->\n <img src=\"./assets/discussion-ui/images/up-arrow.png\" alt=\"up-arrow\" class=\"icons\"\n alt=\"up arrow icon for like the post\">\n </span>\n <span *ngIf=\"post.upvoted\" role=\"link\" tabindex=\"0\"\n (click)=\"deleteVote(post);logTelemetry($event, post)\" aria-label=\"remove upvote\" id=\"delete-vote\">\n <!-- upward arrow -->\n <img src=\"./assets/discussion-ui/images/up.svg\" alt=\"select-up-arrow\" class=\"icons\" alt=\"up image\">\n </span>\n <span class=\"vote-value\" role=\"text\"\n [attr.aria-label]=\"'total upvoat is' + data?.upvotes\">{{data?.upvotes}}</span>\n </span>\n <span class=\"post-icons mobile\">\n <span *ngIf=\"!post?.downvoted\" role=\"link\" tabindex=\"0\"\n (click)=\"downvote(post);logTelemetry($event, post)\" aria-label=\"downvote post\" id=\"down-vote\">\n <!-- downward arrow -->\n <img src=\"./assets/discussion-ui/images/down-arrow.png\" class=\"icons\"\n alt=\"down arrow icon for unlike post\">\n </span>\n <span *ngIf=\"post?.downvoted\" role=\"link\" tabindex=\"0\"\n (click)=\"deleteVote(post);logTelemetry($event, post)\" aria-label=\"remove down vote\" id=\"delete-vote\">\n <!-- downward arrow -->\n <img src=\"./assets/discussion-ui/images/down.svg\" class=\"icons\" alt=\"down image\">\n </span>\n <span class=\"vote-value\" role=\"text\"\n [attr.aria-label]=\"'total upvoat is' + data?.upvotes\">{{data?.downvotes}}</span>\n </span>\n <span class=\"post-icons mobile\" role=\"link\" tabindex=\"0\">\n <!-- trending -->\n <img src=\"./assets/discussion-ui/images/views.svg\" alt=\"views icon for seeing the posts\" class=\"icons\">\n <span class=\"vote-value\" aria-label=\"views count\">{{data.viewcount}} Views</span>\n </span>\n <span class=\"post-icons mobile\">\n <span *ngIf=\"!data?.posts[0]?.bookmarked\" role=\"link\" tabindex=\"0\"\n (click)=\"bookmark(post);logTelemetry($event, post)\" aria-label=\"Bookmark post\" id=\"bookmark\">\n <!-- bookmark -->\n <img src=\"./assets/discussion-ui/images/bookmarks.png\" class=\"icons\" alt=\"bookmark icon\">\n </span>\n <span *ngIf=\"data?.posts[0]?.bookmarked\" role=\"link\" tabindex=\"0\"\n (click)=\"unBookMark(post);logTelemetry($event, post)\" aria-label=\"unBookmark post\"\n id=\"un-bookmark-vote\">\n <!-- bookmark -->\n <img src=\"./assets/discussion-ui/images/select-bookmarks.png\" class=\"icons bookmark-icon\"\n alt=\"select bookmark icon\">\n </span>\n </span>\n </div>\n <div class=\"comments-count\">\n <span *ngIf=\"data?.postcount-1 > 0\" aria-label=\"comments count\">\n {{data?.postcount-1}}\n comments\n </span>\n <span *ngIf=\"data?.postcount-1 <=0\" aria-label=\"comments count\">\n 0 comments</span>\n </div>\n </div>\n <!-- /card content -->\n <!-- post reply -->\n <lib-post-reply (actionEvent)=\"postReplyHandler($event, post); logTelemetry($event, post)\" [mode]=\"'reply'\"\n [showCancel]=\"false\"></lib-post-reply>\n \n </div>\n </ng-container>\n <!-- /card end -->\n\n <ng-container *ngIf=\"data?.posts && data?.postcount > 1\">\n <div class=\"recent-tabs\">\n <div class=\"tabs-content\">\n <div class=\"tabs-filter\">\n <a href=\"javascript:void(0)\" class=\"filter-option\" role=\"link\" tabindex=\"0\" [ngClass]=\"{'tabs-active' : currentFilter === 'timestamp',\n 'ws-mat-accent-border':currentFilter !== 'timestamp'}\"\n (click)=\"filter('timestamp');logTelemetry($event)\" id=\"recent-post\">\n Recent </a>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngFor=\"let post of data?.posts | sortBy: 'timestampISO':'desc'; index as i\">\n <!-- card content -->\n <div *ngIf=\"post?.index != 0\" class=\"post-card\">\n <!-- header -->\n <div class=\"comment-section\">\n <div class=\"post-header-content\">\n <span class=\"circle-text\"><span class=\"circle-label\">{{ post?.user?.username | splitInitials\n }}</span></span>\n <span class=\"post-name\" *ngIf=\"post?.user?.fullname\" [innerHTML]=\"post?.user?.fullname\"></span>\n <span class=\"post-name df-label-color\" *ngIf=\"!post?.user?.fullname\"\n [innerHTML]=\"post?.user?.username\"></span>\n </div>\n <div class=\"custom-actions\">\n <span class=\"post-time\">{{ post?.timestamp | date: 'dd MMM yyyy hh:mm a'}}</span>\n <ng-container *ngIf=\"mainUid === post?.uid\">\n <img src=\"./assets/discussion-ui/images/edit.svg\" class=\"edit-icon\" id=\"edit-post\" alt=\"edit icon\"\n (click)=\"getRealtimePost(post, i)\" tabindex=\"0\">\n <img src=\"./assets/discussion-ui/images/delete.svg\" class=\"delete-icon\" id=\"delete-post\" alt=\"delete icon\"\n (click)=\"confirmDelete(post?.pid)\" tabindex=\"0\">\n </ng-container>\n </div>\n </div>\n <!-- / header -->\n <div>\n <div class=\"edit-text\" *ngIf=\"!editMode || editContentIndex !== i\">\n <p [innerHTML]=\"post?.content\" class=\"post-labels df-text-color\"></p>\n <div class=\"edited-text\" *ngIf=\"post?.edited\">(edited)</div>\n </div>\n <div *ngIf=\"editMode && editContentIndex === i\">\n <lib-post-reply (actionEvent)=\"editReplyHandler($event, post)\" [mode]=\"'edit'\" [showCancel]=\"true\"\n [content]=\"contentPost\"></lib-post-reply>\n </div>\n <div class=\"reply-area\">\n <div>\n <span class=\"flex mobile\">\n <!-- upward arrow -->\n <span class=\"up-vote-text\" *ngIf=\"!post?.upvoted\" role=\"link\" tabindex=\"0\"\n (click)=\"upvote(post);logTelemetry($event, post)\" aria-label=\"upvote comment\" id=\"up-vote\">\n <img src=\"./assets/discussion-ui/images/up.svg\" class=\"icons\" alt=\"up icon\">\n </span>\n </span>\n <span class=\"post-icons mobile\">\n <!-- upward arrow -->\n <span class=\"down-vote-text\" *ngIf=\"post.upvoted\" role=\"link\" tabindex=\"0\"\n (click)=\"deleteVote(post);logTelemetry($event, post)\" aria-label=\"delete upvote on comment\"\n id=\"delete-vote\">\n <img src=\"./assets/discussion-ui/images/up.svg\" class=\"icons\" alt=\"up icon\">\n </span>\n <span class=\"vote-value\">{{post?.upvotes}}</span>\n </span>\n\n <span class=\"flex mobile\">\n <span id=\"down-vote\" *ngIf=\"!post?.downvoted\" role=\"link\" tabindex=\"0\"\n (click)=\"downvote(post);logTelemetry($event, post)\" aria-label=\"downvote comment\">\n <!-- downward arrow -->\n <img src=\"./assets/discussion-ui/images/down-arrow.png\" class=\"icons\" alt=\"down arrow icon\">\n </span>\n </span>\n <span class=\"post-icons mobile\">\n <span id=\"delete-vote\" *ngIf=\"post?.downvoted\" role=\"link\" tabindex=\"0\"\n (click)=\"deleteVote(post);logTelemetry($event, post)\" aria-label=\"delete downvote on comment\">\n <!-- down arrow -->\n <img src=\"./assets/discussion-ui/images/down.svg\" class=\"icons\" alt=\"down icon\">\n </span>\n <span class=\"vote-value\">{{post?.downvotes}}</span>\n </span>\n </div>\n\n <button (click)=\"togglePost(post); logTelemetry($event, post)\"\n class=\"df-btn df-btn-normal df-btn-primary df-reply-btn\" id=\"reply-comment\">\n Reply </button>\n\n </div>\n <div class=\"replies\" *ngIf=\"post?.toggle\">\n <ng-container [ngTemplateOutlet]=\"reply\" [ngTemplateOutletContext]=\"{post:post}\">\n </ng-container>\n </div>\n <ng-container *ngIf=\"post?.replies?.count > 0\">\n <div>\n <div>\n <div class=\"reply-content\" (click)=\"post.replyCountToggle = !post.replyCountToggle\" tabindex=\"0\">\n <span class=\"replies-count\"> {{post?.replies?.count}} reply(s) </span>\n <div *ngIf=\"post?.replyCountToggle\" role=\"link\" tabindex=\"0\" aria-label=\"reply toggle\">\n <span class=\"toggle-icon\" *ngIf=\"post?.replyCountToggle\" aria-label=\"reply toggle upwards\">\n <!-- up arrow -->\n <img src=\"./assets/discussion-ui/images/up-chevron.png\" class=\"icons\" alt=\"up chevron icon\">\n </span>\n </div>\n <div *ngIf=\"!post.replyCountToggle\" role=\"link\" tabindex=\"0\" aria-label=\"reply toggle\">\n <span class=\"toggle-icon\" *ngIf=\"!post.replyCountToggle\" aria-label=\"reply toggle downwards\">\n <!-- down arrow -->\n <img src=\"./assets/discussion-ui/images/down-chevron.png\" class=\"icons\" alt=\"down chevron icon\">\n </span>\n </div>\n </div>\n </div>\n <div class=\"last-reply-data\">\n <span *ngIf=\"!post.replyCountToggle\">Last reply\n {{ post?.replies?.timestampISO | date: 'dd MMM yyyy hh:mm a' }} </span>\n </div>\n </div>\n <div class=\"replies\" *ngIf=\"post?.replyCountToggle\">\n <ng-container [ngTemplateOutlet]=\"replies\"\n [ngTemplateOutletContext]=\"{posts:data.posts, postId:post.pid}\">\n </ng-container>\n </div>\n </ng-container>\n </div>\n <!-- /card content -->\n </div>\n <!-- / card -->\n <!-- Divider -->\n <div *ngIf=\"post.index != 0\"></div>\n </ng-container>\n </div>\n\n <div class=\"related-discuss-part\">\n <div *ngIf=\"fetchSingleCategoryLoader\" class=\"related-discuss-part-content\"></div>\n <lib-related-discussion *ngIf=\"!fetchSingleCategoryLoader\" [catId]=\"categoryId\" [topicId]=\"topicId\">\n </lib-related-discussion>\n </div>\n</div>\n\n<ng-template #reply let-post=\"post\">\n <lib-post-reply (actionEvent)=\"commentReplyHandler($event, post)\" [mode]=\"'reply'\" [showCancel]=\"true\">\n </lib-post-reply>\n</ng-template>\n\n<ng-template #replies let-posts=\"posts\" let-postId=\"postId\">\n <ng-container *ngFor=\"let post of posts | pipeFilter:'toPid': postId; index as index; last as last\">\n <!-- card -->\n <div class=\"post-sub-card\">\n <!-- card-header -->\n <div class=\"comment-section\">\n <div class=\"post-header-content\">\n <div class=\"circle-text\"><div class=\"circle-label\">{{ post?.user?.username | splitInitials }}</div></div>\n <div class=\"post-name\" *ngIf=\"post?.user?.fullname\" [innerHTML]=\"post?.user?.fullname\"></div>\n <div class=\"df-label-color post-name\" *ngIf=\"!post?.user?.fullname\"\n [innerHTML]=\"post?.user?.username\"></div>\n </div>\n <div class=\"post-time\">{{ post?.timestamp | date}}</div>\n </div>\n <!-- /card-header -->\n\n <!-- card-content -->\n <div>\n <p role=\"link\" tabindex=\"0\" tabindex=\"0\" [innerHTML]=\"post?.content\"></p>\n <div class=\"reply-area\">\n <div class=\"reply-area-content\">\n <span class=\"post-icons mobile\">\n <!-- up arrow -->\n <img *ngIf=\"!post?.upvoted\" class=\"cursor-pointer\" (click)=\"upvote(post);logTelemetry($event, post)\"\n src=\"./assets/discussion-ui/images/up-arrow.png\" alt=\"up arrow icon\" class=\"icons\" tabindex=\"0\">\n <img *ngIf=\"post?.upvoted\" class=\"cursor-pointer\" (click)=\"deleteVote(post);logTelemetry($event, post)\"\n src=\"./assets/discussion-ui/images/up.svg\" alt=\"select up arrow icon\" class=\"icons\" tabindex=\"0\">\n <span class=\"vote-value\">{{post.upvotes}}</span>\n </span>\n <span class=\"post-icons mobile\">\n <img *ngIf=\"!post?.downvoted\" class=\"cursor-pointer\" (click)=\"downvote(post); logTelemetry($event, post)\"\n id=\"up-vote\" tabindex=\"0\" src=\"./assets/discussion-ui/images/down-arrow.png\" alt=\"down arrow icon\"\n class=\"icons\">\n <img *ngIf=\"post?.downvoted\" class=\"cursor-pointer\" (click)=\"deleteVote(post);logTelemetry($event, post)\"\n id=\"delete-vote\" tabindex=\"0\" src=\"./assets/discussion-ui/images/down.svg\" alt=\"select down arrow icon\"\n class=\"icons\">\n <span class=\"vote-value\">{{post?.downvotes}}</span>\n </span>\n </div>\n </div>\n </div>\n </div> \n <!-- /card -->\n </ng-container>\n</ng-template>\n\n<input type=\"hidden\" i18-value i18-aria-value aria-value=\"Thank you for voting!\" value=\"Thank you for voting!!\"\n #toastSuccess />\n<input type=\"hidden\" i18-value i18-aria-value aria-value=\"Something went wrong, please try again later!\"\n value=\"Something went wrong, please try again later!\" #toastError />\n\n<lib-discuss-start [mode]=\"'edit'\" [topicData]=\"editableTopicDetails\" (close)=\"closeModal($event)\"\n *ngIf=\"showEditTopicModal\"></lib-discuss-start>","import { Component, Input, OnChanges, OnInit, SimpleChanges, EventEmitter, Output } from '@angular/core';\nimport { NSDiscussData } from '../../models/discuss.model';\n/* tslint:disable */\nimport _ from 'lodash'\nimport { Router } from '@angular/router';\nimport { ConfigService } from '../../services/config.service';\nimport * as CONSTANTS from './../../common/constants.json';\nimport { NavigationServiceService } from '../../navigation-service.service'\n\n/* tslint:enable */\n@Component({\n selector: 'lib-discuss-trending-tags',\n templateUrl: './trending-tags.component.html',\n styleUrls: ['./trending-tags.component.scss'],\n})\nexport class TrendingTagsComponent implements OnInit, OnChanges {\n @Input() tags!: NSDiscussData.ITag[];\n @Output() stateChange: EventEmitter<any> = new EventEmitter();\n\n max = 0;\n trandingTags!: NSDiscussData.ITag[];\n queryParam: any;\n constructor(\n public router: Router,\n private configService: ConfigService,\n private navigationService: NavigationServiceService\n ) {\n\n }\n ngOnInit(): void {\n // debugger\n this.max = _.get(_.maxBy(this.tags, 'score'), 'score') || 0;\n this.trandingTags = _.chain(this.tags).orderBy('score', 'desc').take(5).value();\n }\n\n ngOnChanges(data: SimpleChanges) {\n // debugger\n // this.tableData!.columns = data.tableData.currentValue.columns\n this.tags = _.get(data, 'tags.currentValue')\n this.max = _.get(_.maxBy(this.tags, 'score'), 'score') || 0;\n this.trandingTags = _.chain(this.tags).orderBy('score', 'desc').take(5).value();\n }\n\n // TODO: To enable trending tags click and navigate to tags detals page\n getAllDiscussions(tag: { value: any }) {\n // debugger\n this.queryParam = tag.value;\n const tagdata = {\n tagname: ''\n };\n tagdata.tagname = tag.value;\n this.queryParam = tagdata;\n const routerSlug = this.configService.getConfig().routerSlug ? this.configService.getConfig().routerSlug : '';\n const input = { data: { url: `${routerSlug}${CONSTANTS.ROUTES.TAG}tag-discussions`,\n queryParams: this.queryParam, tagName: this.queryParam.tagName }, action: 'tagsAll'};\n this.navigationService.navigate(input);\n this.stateChange.emit({ action: CONSTANTS.TAG_ALL_DISCUSS, title: tag.value, tid: 'sd' });\n\n // tslint:disable-next-line: max-line-length\n // this.router.navigate([`${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.TAG}tag-discussions`], { queryParams: this.queryParam });\n }\n\n css() {\n // return 'linear - gradient(to left, #00ff00 \" + 80 + \" %, #ff0000 20 %)\"\n }\n}","<div class=\"margin-left-l right_tag_inner_box\">\n <span class=\"mat-subheading-2\" role=\"link\" tabindex=\"0\" aria-label=\"Trending tags\">Trending tags</span>\n <ng-container *ngIf=\"trandingTags && trandingTags.length > 0\">\n <div *ngFor=\"let tag of trandingTags\" class=\"tag ws-mat-primary-lite-background-important cursor-pointer\" role=\"link\" tabindex=\"0\"\n [attr.aria-label]=\"tag.value\"\n [ngStyle]=\"{'background-image':'linear-gradient(to right, #ECECEC, #ECECEC ' + ((tag.score / max) *100 ) + '%, #FFF 24px)'}\" (click)=\"getAllDiscussions(tag)\">\n <span class=\"margin-left-m mat-caption\">{{tag.value}}</span>\n <span class=\"custom-margin margin-right-m mat-subheading-2\">{{tag.score}}</span>\n </div>\n </ng-container>\n </div>\n\n <div class=\"update_box margin-left-l\"> \n <span class=\"mat-subheading-2\" role=\"link\" tabindex=\"0\" aria-label=\"Updates\">Updates</span>\n <div class=\"update_inner_box flex flex-col items-center justify-center\">\n\n <div class=\"mat-card flex flex-col update_card margin-bottom-s\">\n <div class=\"flex fex-1 items-center justify-start card_head\">\n <p class=\"mat-subheading-1 blue_heading\">1 Upvote on your question</p>\n </div>\n <div class=\"flex fex-1 items-center justify-start card_body\">\n <p class=\"mat-body-2\">What is the most reliable and useful source for COVID related ..</p>\n </div>\n </div>\n\n <div class=\"mat-card flex flex-col update_card margin-bottom-s\">\n <div class=\"flex fex-1 items-center justify-start card_head\">\n <p class=\"mat-subheading-1 blue_heading\">@sundaramraj answered your question</p>\n </div>\n <div class=\"flex fex-1 items-center justify-start card_body\">\n <p class=\"mat-body-2\">I think the solution to such a problem would be to extensively..</p>\n </div>\n </div>\n\n <div class=\"mat-card flex flex-col update_card margin-bottom-s\">\n <div class=\"flex fex-1 items-center justify-start card_head\">\n <p class=\"mat-subheading-1 blue_heading\">1 Upvote on your question</p>\n </div>\n <div class=\"flex fex-1 items-center justify-start card_body\">\n <p class=\"mat-body-2\">What is the most reliable and useful source for COVID related ..</p>\n </div>\n </div>\n\n <div class=\"flex flex-col items-center update_btn_box\">\n <a class=\"all_update_link flex mat-subheading-2 justify-center\">ALL UPDATES</a>\n </div>\n\n </div>\n </div>","import { CONTEXT_PROPS } from './../../services/discussion.service';\nimport { Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { DiscussionService } from '../../services/discussion.service';\nimport { ConfigService } from '../../services/config.service';\nimport { TelemetryUtilsService } from './../../telemetry-utils.service';\nimport * as CONSTANTS from './../../common/constants.json';\n/* tslint:disable */\nimport * as _ from 'lodash'\nimport { NSDiscussData } from '../../models/discuss.model';\nimport { DiscussStartComponent } from '../discuss-start/discuss-start.component';\nimport { Subscription } from 'rxjs';\nimport { NavigationServiceService } from '../../navigation-service.service';\n// import { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\n\n/* tslint:enable */\n\n@Component({\n selector: 'lib-discuss-all',\n templateUrl: './discuss-all.component.html',\n styleUrls: ['./discuss-all.component.scss']\n})\nexport class DiscussAllComponent implements OnInit {\n\n @Input() context: any\n @Input() categoryAction;\n\n @Output() stateChange: EventEmitter<any> = new EventEmitter();\n\n discussionList: any[];\n routeParams: any;\n showStartDiscussionModal = false;\n categoryId: string;\n isTopicCreator = false;\n showLoader = false;\n currentFilter = 'recent'\n currentActivePage: number = 1;\n fetchNewData: false;\n // modalRef: BsModalRef;\n paramsSubscription: Subscription;\n getParams: any;\n cIds: any = [];\n allTopics: any;\n trendingTags!: NSDiscussData.ITag[];\n sticky = false;\n data\n startDiscussionCategoryId: any;\n isWidget: boolean;\n\n constructor(\n public router: Router,\n private route: ActivatedRoute,\n private discussionService: DiscussionService,\n private configService: ConfigService,\n public activatedRoute: ActivatedRoute,\n private telemetryUtils: TelemetryUtilsService,\n private navigationService: NavigationServiceService\n // private modalService: BsModalService\n ) { }\n\n ngOnInit() {\n this.telemetryUtils.logImpression(NSDiscussData.IPageName.HOME);\n if (this.context) {\n this.isWidget = true\n this.getForumIds()\n } else {\n this.cIds = this.configService.getCategories().result\n this.loadDiscussionData()\n }\n }\n\n async getForumIds() {\n let body = {\n \"identifier\":\n this.context.contextIdArr\n ,\n \"type\": this.context.contextType\n }\n let resp = await this.discussionService.getForumIds(body)\n if (resp.result.length > 0) {\n resp.result.forEach(forum => {\n this.cIds.push(forum.cid)\n });\n } else {\n this.discussionService.createForum(this.context.categoryObj).subscribe(((data: any) => {\n data.result.forEach(forum => {\n this.cIds.push(forum.newCid)\n });\n }))\n\n }\n this.loadDiscussionData()\n }\n\n loadDiscussionData() {\n // debugger\n // this.cIds = this.context ? this.context.categories : this.configService.getCategories()\n this.categoryId = this.discussionService.getContext(CONTEXT_PROPS.cid);\n if (this.configService.hasContext() || this.context) {\n this.getContextBasedDiscussion(this.cIds)\n // This is to show context based trending tags\n this.getContextBasedTags(this.cIds);\n } else {\n // this.currentActivePage = 1\n this.refreshData();\n // This is to show trending tags\n this.fetchAllTags();\n }\n }\n\n navigateToDiscussionDetails(discussionData) {\n\n const matchedTopic = _.find(this.telemetryUtils.getContext(), { type: 'Topic' });\n if (matchedTopic) {\n this.telemetryUtils.deleteContext(matchedTopic);\n }\n\n this.telemetryUtils.uppendContext({\n id: _.get(discussionData, 'tid'),\n type: 'Topic'\n });\n\n const slug = _.trim(_.get(discussionData, 'slug'));\n // tslint:disable-next-line: max-line-length\n const input = { data: { url: `${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.TOPIC}${slug}`, queryParams: {} }, action: CONSTANTS.CATEGORY_DETAILS, }\n this.navigationService.navigate(input);\n this.stateChange.emit({ action: CONSTANTS.CATEGORY_DETAILS, title: discussionData.title, tid: discussionData.tid });\n\n // this.router.navigate([`${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.TOPIC}${slug}`], { queryParamsHandling: \"merge\" });\n }\n\n acceptData(singleTagDetails) {\n // debugger\n if(this.context){\n singleTagDetails.cIds = this.cIds;\n }\n this.stateChange.emit(singleTagDetails);\n }\n\n getDiscussionList(slug: string) {\n this.showLoader = true;\n // TODO : this.currentActivePage shoulb be dynamic when pagination will be implemented\n this.discussionService.getContextBasedTopic(slug, this.currentActivePage).subscribe(data => {\n this.showLoader = false;\n this.isTopicCreator = _.get(data, 'privileges.topics:create') === true ? true : false;\n this.discussionList = _.union(_.get(data, 'topics'), _.get(data, 'children'));\n }, error => {\n this.showLoader = false;\n // TODO: Toaster\n console.log('error fetching topic list', error);\n });\n }\n\n filter(key: string | 'recent' | 'popular') {\n if (key) {\n this.currentFilter = key;\n switch (key) {\n case 'recent':\n this.cIds.length ? this.getContextData(this.cIds.result) : this.fillrecent()\n break;\n case 'popular':\n this.cIds.length ? this.getContextData(this.cIds.result) : this.fillPopular()\n break;\n default:\n break;\n }\n }\n }\n\n fillrecent(_page?: any) {\n this.getRecentData();\n }\n\n fillPopular(page?: any) {\n this.showLoader = true;\n return this.discussionService.fetchPopularD(page).subscribe((response: any) => {\n this.showLoader = false;\n this.discussionList = [];\n _.filter(response.topics, (topic) => {\n if (topic.user.uid !== 0 && topic.cid !== 1 ) {\n this.discussionList.push(topic);\n }\n });\n // this.discussionList = _.get(response, 'topics')\n }, error => {\n this.showLoader = false;\n // TODO: Toaster\n console.log('error fetching topic list', error);\n });\n }\n\n getContextBasedDiscussion(cid: any) {\n this.currentFilter === 'recent' ? this.getContextData(cid) : this.getContextData(cid)\n }\n\n refreshData(page?: any) {\n this.currentFilter === 'recent' ? this.getRecentData() : this.fillPopular(page)\n }\n\n getRecentData() {\n this.showLoader = true;\n return this.discussionService.fetchRecentPost().subscribe(\n (data: any) => {\n this.showLoader = false;\n this.discussionList = [];\n _.filter(data.topics, (topic) => {\n if (topic.user.uid !== 0 && topic.cid !== 1) {\n this.discussionList.push(topic);\n }\n });\n this.discussionList = _.get(data, 'posts');\n }, error => {\n this.showLoader = false;\n // TODO: Toaster\n console.log('error fetching topic list', error);\n });\n }\n\n getContextData(cid: any) {\n this.showLoader = true;\n const req = {\n // request: {\n cids: cid\n // }\n };\n return this.discussionService.getContextBasedDiscussion(req).subscribe(\n (data: any) => {\n this.showLoader = false;\n let result = data.result\n let res = result.filter((elem) => {\n return (elem.statusCode !== 404)\n })\n this.allTopics = _.map(res, (topic) => topic.topics);\n this.discussionList = _.flatten(this.allTopics)\n }, error => {\n this.showLoader = false;\n // TODO: Toaster\n console.log('error fetching topic list', error);\n });\n }\n\n fetchAllTags() {\n this.showLoader = true;\n this.discussionService.fetchAllTag().subscribe(data => {\n this.showLoader = false;\n this.trendingTags = _.get(data, 'tags');\n }, error => {\n this.showLoader = false;\n // TODO: toaster\n console.log('error fetching tags');\n });\n }\n\n getContextBasedTags(cid: any) {\n const req = {\n cids: cid\n }\n this.showLoader = true;\n this.discussionService.contextBasedTags(req).subscribe(data => {\n this.showLoader = false;\n this.trendingTags = _.get(data, 'result');\n }, error => {\n this.showLoader = false;\n // TODO: toaster\n console.log('error fetching tags');\n });\n }\n\n // startDiscussion(template: TemplateRef<any>) {\n // this.modalRef = this.modalService.show(template);\n\n // this.showStartDiscussionModal = true;\n // this.bsModalRef = this.modalService.show(DiscussStartComponent);\n\n // this.bsModalRef.content.onClose().subscribe(\n // console.log('completed')\n // );\n // }\n\n startDiscussion() {\n debugger\n this.showStartDiscussionModal = true;\n if (this.context) {\n this.startDiscussionCategoryId = this.cIds;\n }\n\n }\n\n logTelemetry(event) {\n this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.HOME);\n }\n\n closeModal(event) {\n if (_.get(event, 'message') === 'success') {\n if (this.context) {\n this.getContextBasedDiscussion(this.cIds)\n } else {\n this.refreshData()\n }\n // this.getDiscussionList(_.get(this.routeParams, 'slug'));\n }\n this.showStartDiscussionModal = false;\n }\n}","<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>","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core'\nimport { NSDiscussData } from '../../models/discuss.model'\nimport { Router, ActivatedRoute } from '@angular/router'\nimport { DiscussionService } from '../../services/discussion.service';\n/* tslint:disable */\nimport _ from 'lodash'\nimport { Subscriber, Subscription } from 'rxjs';\nimport { ConfigService } from '../../services/config.service';\nimport * as CONSTANTS from './../../common/constants.json';\nimport { DiscussUtilsService } from '../../services/discuss-utils.service';\nimport { TelemetryUtilsService } from './../../telemetry-utils.service';\nimport { NavigationServiceService } from '../../navigation-service.service';\n\n@Component({\n selector: 'lib-tag-all-discussion',\n templateUrl: './tag-all-discussion.component.html',\n styleUrls: ['./tag-all-discussion.component.scss']\n})\nexport class TagAllDiscussionComponent implements OnInit {\n @Input() widgetTagName: any;\n @Input() widgetcIds: any;\n\n @Output() stateChange: EventEmitter<any> = new EventEmitter();\n\n routeParams: any;\n tagName!: any\n similarPosts :any[]\n queryParam: any\n fetchSingleCategoryLoader = false\n currentActivePage: 1\n defaultError = 'Something went wrong, Please try again after sometime!'\n pager = {}\n paginationData!: any\n fetchNewData = false\n paramsSubscription: Subscription;\n getParams: any;\n cIds: any;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private discussService: DiscussionService, \n public activatedRoute: ActivatedRoute,\n private configService: ConfigService,\n private telemetryUtils: TelemetryUtilsService,\n private discussUtils: DiscussUtilsService,\n private navigationService: NavigationServiceService\n ) { }\n\n ngOnInit() {\n // debugger\n this.cIds = this.widgetcIds? this.widgetcIds: this.configService.getCategories()\n\n if(this.widgetTagName)\n {\n this.tagName = this.widgetTagName;\n }\n else\n {\n this.activatedRoute.queryParams.subscribe((params) => {\n this.tagName = params.tagname ? params.tagname: this.tagName\n })\n }\n \n // To check wheather any contexts are there or not from the config service\n if (this.configService.hasContext() || this.widgetcIds) {\n this.fetchContextBasedTagDetails(this.tagName, this.cIds, this.currentActivePage)\n } else {\n this.fetchSingleTagDetails(this.tagName, this.currentActivePage)\n }\n\n }\n\n /**Method to fetch the tag based discussion */\n fetchSingleTagDetails(tagname: string, page?: any) {\n this.fetchSingleCategoryLoader = true\n this.discussService.getTagBasedDiscussion(tagname).subscribe(\n (data: NSDiscussData.IDiscussionData) => {\n this.similarPosts = data.topics\n this.paginationData = data.pagination\n this.fetchSingleCategoryLoader = false\n this.setPagination()\n },\n (err: any) => {\n console.error('Error in fetching single tag details', err)\n // this.openSnackbar(err.error.message.split('|')[1] || this.defaultError)\n this.fetchSingleCategoryLoader = false\n })\n }\n\n /** Method to fetch the context based discussions */\n fetchContextBasedTagDetails(tagname: string, cid: any, page?: any) {\n this.fetchSingleCategoryLoader = true\n const req = {\n cid: cid.result,\n tag: tagname\n };\n\n this.discussService.getContextBasedTagDiscussion(req).subscribe(\n (data: NSDiscussData.IDiscussionData) => {\n this.similarPosts = data.result\n // this.paginationData = data.pagination\n this.fetchSingleCategoryLoader = false\n this.setPagination()\n },\n (err: any) => {\n console.error('Error in fetching context based tag details', err)\n // this.openSnackbar(err.error.message.split('|')[1] || this.defaultError)\n this.fetchSingleCategoryLoader = false\n })\n }\n\n\n // TODO : for pagination\n // getNextData(tagname: string, page: any) {\n // return this.discussService.fetchNextTagD(tagname, page).subscribe(\n // (data: any) => {\n // this.paginationData = data.pagination\n // this.setPagination()\n // this.similarPosts = _.get(data, 'topics')\n // })\n // }\n\n setPagination() {\n this.pager = {\n startIndex: this.paginationData.first.page,\n endIndex: this.paginationData.last.page,\n pages: this.paginationData.pages,\n currentPage: this.paginationData.currentPage,\n totalPage: this.paginationData.pageCount,\n }\n }\n\n navigateWithPage(page: any) {\n if (page !== this.currentActivePage) {\n this.fetchNewData = true\n this.router.navigate([`${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.TAG}tag-discussions`], { queryParams: { page, tagname: this.queryParam }, queryParamsHandling: \"merge\" });\n }\n }\n\n /** Method to navigate to the dicussion detail page on click of tag related discussion */\n navigateToDiscussionDetails(discussionData) {\n const matchedTopic = _.find(this.telemetryUtils.getContext(), { type: 'Topic' });\n if (matchedTopic) {\n this.telemetryUtils.deleteContext(matchedTopic);\n }\n\n this.telemetryUtils.uppendContext({\n id: _.get(discussionData, 'tid'),\n type: 'Topic'\n });\n\n let slug = _.trim(_.get(discussionData, 'slug'))\n let input = { data: { url: `${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.TOPIC}${slug}`, queryParams: {} }, action: CONSTANTS.CATEGORY_DETAILS, }\n this.navigationService.navigate(input)\n this.stateChange.emit({ action: CONSTANTS.CATEGORY_DETAILS, title: discussionData.title, tid: discussionData.tid })\n\n // this.router.navigate([`${this.configService.getRouterSlug()}${CONSTANTS.ROUTES.TOPIC}${_.trim(_.get(discussionData, 'slug'))}`], { queryParamsHandling: \"merge\" });\n }\n\n logTelemetry(event) {\n this.telemetryUtils.logInteract(event, NSDiscussData.IPageName.HOME);\n }\n\n // TODO: add refershdata function\n // refreshData(tagname: string, page: any) {\n // if (this.fetchNewData) {\n // // this.getNextData(tagname, page)\n // }\n // }\n\n // for tag color\n public getBgColor(tagTitle: any) {\n const bgColor = this.discussUtils.stringToColor(tagTitle.toLowerCase());\n const color = this.discussUtils.getContrast();\n return { color, 'background-color': bgColor };\n }\n\n}\n","<div class=\"main-div\">\n <div class=\"flex flex-1 margin-top-xl\">\n <h2 class=\"margin-remove-bottom tagtitle\" [ngStyle]=\"getBgColor(tagName)\">{{tagName}}</h2>\n </div>\n <div>\n <span>&nbsp;</span>\n </div>\n <div class=\"flex flex-1 custom\">\n <div class=\"flex flex-1 flex-column margin-fix\">\n <lib-app-loader *ngIf=\"fetchSingleCategoryLoader\"></lib-app-loader>\n\n <ng-container *ngIf=\"similarPosts && similarPosts.length > 0\">\n <div (click)=\"navigateToDiscussionDetails(data);logTelemetry($event)\"\n *ngFor=\"let data of similarPosts\" id=\"discuss-card\">\n <lib-discuss-card [discussionData]=\"data\"></lib-discuss-card>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!(similarPosts && similarPosts.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>\n </div>\n <!-- <div class=\"flex flex-1 flex-column margin-top-xl margin-bottom-xl pagination-container\">\n <ws-app-pagination [pager]=\"pager\" (changePage)=\"navigateWithPage($event)\"></ws-app-pagination>\n </div> -->\n</div>","import { PipesModule } from './../pipes/pipes.module';\nimport { DiscussionService } from './../services/discussion.service';\nimport { ConfigService } from './../services/config.service';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ElementsModule } from './../elements/elements.module';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SidePannelComponent } from './side-pannel/side-pannel.component';\nimport { DiscussHomeComponent } from './discuss-home/discuss-home.component';\nimport { DiscussCategoryComponent } from './discuss-category/discuss-category.component';\nimport { DiscussTagsComponent } from './discuss-tags/discuss-tags.component';\nimport { MyDiscussionComponent } from './my-discussion/my-discussion.component';\nimport { DiscussionDetailsComponent } from './discussion-details/discussion-details.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DiscussStartComponent } from './discuss-start/discuss-start.component';\nimport { TagInputModule } from 'ngx-chips';\nimport { DiscussAllComponent } from './discuss-all/discuss-all.component';\nimport { TagAllDiscussionComponent } from './tag-all-discussion/tag-all-discussion.component';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { TrendingTagsComponent } from './trending-tags/trending-tags.component';\n@NgModule({\n declarations: [\n SidePannelComponent,\n DiscussHomeComponent,\n DiscussCategoryComponent,\n DiscussTagsComponent,\n MyDiscussionComponent,\n DiscussionDetailsComponent,\n DiscussStartComponent,\n DiscussAllComponent,\n TagAllDiscussionComponent,\n TrendingTagsComponent,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n ElementsModule,\n FormsModule,\n ReactiveFormsModule,\n TagInputModule,\n PipesModule,\n InfiniteScrollModule\n ],\n exports: [\n SidePannelComponent,\n DiscussHomeComponent,\n DiscussCategoryComponent,\n DiscussTagsComponent,\n MyDiscussionComponent,\n DiscussionDetailsComponent,\n DiscussStartComponent,\n // TODO: Add this components\n DiscussAllComponent,\n TagAllDiscussionComponent,\n TrendingTagsComponent,\n ],\n providers: [\n DiscussionService, ConfigService\n ]\n})\nexport class ComponentsModule { }\n","import { DiscussionDetailsComponent } from './../components/discussion-details/discussion-details.component';\nimport { MyDiscussionComponent } from './../components/my-discussion/my-discussion.component';\nimport { DiscussTagsComponent } from './../components/discuss-tags/discuss-tags.component';\nimport { DiscussCategoryComponent } from './../components/discuss-category/discuss-category.component';\nimport { LibEntryComponent } from './../components/lib-entry/lib-entry.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule, Routes } from '@angular/router';\nimport { DiscussHomeComponent } from './../components/discuss-home/discuss-home.component';\nimport { DiscussAllComponent } from './../components/discuss-all/discuss-all.component';\nimport { TagAllDiscussionComponent } from './../components/tag-all-discussion/tag-all-discussion.component';\n\n\nconst routes: Routes = [\n {\n path: '',\n component: LibEntryComponent,\n children: [\n {\n path: '',\n pathMatch: 'full',\n component: DiscussCategoryComponent\n },\n {\n path: 'all-discussions',\n pathMatch: 'full',\n component: DiscussAllComponent\n },\n {\n path: 'categories',\n pathMatch: 'full',\n component: DiscussCategoryComponent\n },\n {\n path: 'tags',\n pathMatch: 'full',\n component: DiscussTagsComponent\n },\n // TODO: ADD LATER\n {\n path: 'tags/tag-discussions',\n pathMatch: 'full',\n component: TagAllDiscussionComponent\n },\n {\n path: 'my-discussion',\n pathMatch: 'full',\n component: MyDiscussionComponent\n },\n {\n path: 'category/:slug',\n pathMatch: 'full',\n component: DiscussHomeComponent\n },\n {\n path: 'topic/:topicId/:slug',\n pathMatch: 'full',\n component: DiscussionDetailsComponent\n }\n ]\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [\n RouterModule.forChild(routes),\n CommonModule\n ],\n exports: [RouterModule]\n})\nexport class DiscussionRoutingModule { }\n","import { Component, Input, OnInit } from '@angular/core';\nimport { EventsService } from '../../events.service';\nimport { NavigationServiceService } from '../../navigation-service.service';\nimport { ConfigService } from '../../services/config.service';\nimport { DiscussionService } from '../../services/discussion.service';\nimport * as _ from 'lodash'\nimport { IdiscussionConfig } from '../../models/discussion-config.model';\n\n@Component({\n selector: 'sb-base-wrapper',\n templateUrl: './base-wrapper.component.html',\n styleUrls: ['./base-wrapper.component.css'],\n providers: [NavigationServiceService, EventsService]\n})\nexport class BaseWrapperComponent implements OnInit {\n\n @Input() config: IdiscussionConfig\n state: string\n constructor(private navigationServiceService: NavigationServiceService, private eventService: EventsService, private configSvc: ConfigService, private discussionService: DiscussionService) { }\n\n ngOnInit() {\n this.navigationServiceService.initService('wrapperService')\n this.configSvc.setConfigFromWidgetBaseClass(this.config)\n this.discussionService.userId = _.get(this.config, 'userName')\n const rawCategories = _.get(this.config, 'categories')\n this.discussionService.forumIds = _.get(rawCategories, 'result')\n this.discussionService.initializeUserDetails(this.config.userName)\n\n this.eventService.toggleMenuItem.subscribe((data) => {\n this.wrapperEventListener(data)\n this.state = data.action\n \n })\n this.wrapperInit()\n }\n\n protected wrapperInit() { }\n\n protected wrapperEventListener(data) { }\n\n}\n","<p>base-wrapper works!</p>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ConfigService } from '../../services/config.service';\nimport { DiscussionService } from '../../services/discussion.service';\nimport * as _ from 'lodash'\nimport { NavigationServiceService } from '../../navigation-service.service';\nimport * as CONSTANTS from '../../common/constants.json';\nimport { EventsService } from '../../events.service';\nimport { BaseWrapperComponent } from '../base-wrapper/base-wrapper.component';\nimport { IdiscussionConfig } from '../../models/discussion-config.model';\n@Component({\n selector: 'sb-category-widget',\n templateUrl: './category-widget.component.html',\n styleUrls: ['./category-widget.component.css']\n})\nexport class CategoryWidgetComponent extends BaseWrapperComponent {\n\n detailsToggle = true;\n category = CONSTANTS.CATEGORY;\n detailsPage = CONSTANTS.CATEGORY_DETAILS\n homePage = CONSTANTS.CATEGORY_HOME\n tid: number \n slug: string \n context: IdiscussionConfig\n\n constructor(configSvc: ConfigService, discussionService: DiscussionService, navigationServiceService: NavigationServiceService, eventService: EventsService) {\n super(navigationServiceService, eventService, configSvc, discussionService)\n }\n\n\n wrapperInit() {\n this.state = this.detailsPage;\n }\n\n stateChange(event) {\n this.state = event.action\n if (event.action === this.detailsPage) {\n this.tid = event.tid\n this.slug = event.title\n }\n }\n\n protected wrapperEventListener(data) {\n }\n\n}\n","<div class='widget-container'>\n <!-- <lib-discuss-category *ngIf='state === category ' [categoryAction]='homePage' (stateChange)='stateChange($event)'></lib-discuss-category>\n <lib-discuss-home *ngIf='state === homePage' [categoryHomeAction]='detailsPage' (stateChange)='stateChange($event)'></lib-discuss-home> -->\n <!-- <lib-discussion-details *ngIf='state === detailsPage' [widget]=\"true\" [topicId]='tid' [slug]='slug'></lib-discussion-details> -->\n <lib-discuss-all [context]='context'></lib-discuss-all>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { EventsService } from '../../events.service';\nimport { NavigationServiceService } from '../../navigation-service.service';\nimport { ConfigService } from '../../services/config.service';\nimport { DiscussionService } from '../../services/discussion.service';\nimport { BaseWrapperComponent } from '../base-wrapper/base-wrapper.component';\nimport * as CONSTANTS from '../../common/constants.json';\n\n@Component({\n selector: 'sb-tags-widget',\n templateUrl: './tags-widget.component.html',\n styleUrls: ['./tags-widget.component.css']\n})\nexport class TagsWidgetComponent extends BaseWrapperComponent {\n\n tags: string = CONSTANTS.TAGS\n tagsAll: string = CONSTANTS.TAGSALL\n tagName: string\n\n constructor(configSvc: ConfigService, discussionService: DiscussionService, navigationServiceService: NavigationServiceService, eventService: EventsService) {\n super(navigationServiceService, eventService, configSvc, discussionService)\n }\n\n wrapperInit() {\n this.state = this.tags\n }\n\n wrapperEventListener(data) {\n // if (data.action === this.tags || data.action === this.tagName) {\n // this.state = data.action\n // }\n this.tagName = data.tagName\n }\n\n}\n","<div >\n <lib-discuss-tags *ngIf='state === tags'></lib-discuss-tags>\n <!-- <lib-tag-all-discussion *ngIf='state === tagsAll' [tagName]='tagName'></lib-tag-all-discussion> -->\n <!-- <lib-discuss-home *ngIf='state === homePage'></lib-discuss-home>\n <lib-discussion-details *ngIf='state === detailsPage' [topicId]='tid' [slug]='slug'></lib-discussion-details> -->\n</div>","import { TelemetryUtilsService } from './telemetry-utils.service';\nimport { ElementsModule } from './elements/elements.module';\nimport { LibEntryComponent } from './components/lib-entry/lib-entry.component';\nimport { ComponentsModule } from './components/components.module';\nimport { DiscussionRoutingModule } from './discussion-routing/discussion-routing.module';\nimport { CategoryWidgetComponent } from './wrapper/category-widget/category-widget.component';\n\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { DiscussionEventsService } from './discussion-events.service';\nimport { BaseWrapperComponent } from './wrapper/base-wrapper/base-wrapper.component';\nimport { TagsWidgetComponent } from './wrapper/tags-widget/tags-widget.component';\nimport { CommonModule } from '@angular/common';\n\nexport function provideCsModule(){\n return window['CsModule'];\n}\n@NgModule({\n declarations: [ LibEntryComponent, CategoryWidgetComponent, BaseWrapperComponent, TagsWidgetComponent],\n imports: [\n ComponentsModule,\n DiscussionRoutingModule,\n ElementsModule,\n CommonModule,\n ],\n exports: [ ComponentsModule , CategoryWidgetComponent, BaseWrapperComponent, TagsWidgetComponent ],\n providers: [ DiscussionEventsService, TelemetryUtilsService,{provide: 'CsModule', useFactory: provideCsModule} ]\n})\nexport class DiscussionUiModule { \n}\n","import { IdiscussionConfig } from '../models/discussion-config.model';\n\nexport abstract class AbstractConfigService {\n\n abstract getConfig(key): any\n \n }","/*\n * Public API Surface of discussion-ui\n */\n\nexport * from './lib/discussion-ui.module';\nexport * from './lib/discussion-events.service';\nexport * from './lib/models/discussion-config.model';\nexport * from './lib/services/config.service'\nexport * from './lib/services/discussion.service';\nexport * from './lib/wrapper-navigate.service'\nexport * from './lib/discussion-events.service'\nexport * from './lib/events.service'\nexport * from './lib/navigation-service.service'\nexport * from './lib/services/abstract-config.service'\nexport * from './lib/wrapper/category-widget/category-widget.component'\nexport * from './lib/wrapper/base-wrapper/base-wrapper.component'\nexport * from './lib/wrapper/tags-widget/tags-widget.component'\nexport * from './lib/components/components.module'\nexport * from './lib/components/discuss-all/discuss-all.component'\nexport * from './lib/components/discuss-category/discuss-category.component'\nexport * from './lib/components/discuss-home/discuss-home.component'\nexport * from './lib/components/discuss-start/discuss-start.component'\nexport * from './lib/components/discuss-tags/discuss-tags.component'\nexport * from './lib/components/discussion-details/discussion-details.component'\nexport * from './lib/components/lib-entry/lib-entry.component'\nexport * from './lib/components/my-discussion/my-discussion.component'\nexport * from './lib/components/side-pannel/side-pannel.component'\nexport * from './lib/components/tag-all-discussion/tag-all-discussion.component'\nexport * from './lib/components/trending-tags/trending-tags.component'\n\n\n\n\n\n\n\n\n\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DiscussionEventsService","i2","i1","i1.DiscussionService","i2.DiscussionService","EventEmitter","i1.EventsService","i1.WrapperNavigateService","i2.RouterServiceService","_","CONSTANTS.ROUTES","i2.ConfigService","i3.DiscussionService","i4.NavigationServiceService","i5","i6.PipeRelativeTimePipe","i1.TelemetryUtilsService","CONSTANTS.MENUOPTIONS","i3.TelemetryUtilsService","i4.ConfigService","i3.ConfigService","i4","i5.NavigationServiceService","i6.DiscussionEventsService","i7.TelemetryUtilsService","i8.SidePannelComponent","i9.LoadAlertComponent","i5.DiscussUtilsService","CONSTANTS.CATEGORY_DETAILS","i4.TelemetryUtilsService","i7.DiscussCardComponent","i8.AppLoaderComponent","i10.DiscussStartComponent","CONSTANTS.CATEGORY_HOME","i3","i7.CategoryCardComponent","i9.DiscussStartComponent","CONSTANTS.TAG_ALL_DISCUSS","i2.TelemetryUtilsService","i6.NavigationServiceService","i7","i6.DiscussCardComponent","i7.AppLoaderComponent","i8","i9.SplitInitialsPipe","i5.TelemetryUtilsService","i7.NavigationServiceService","i9.RelatedDiscussionComponent","i10.PostReplyComponent","i11.DiscussStartComponent","i12.PipeFilterPipe","i13.SortByPipe","i14.SplitInitialsPipe","i3.NavigationServiceService","i8.DiscussStartComponent","i9.TrendingTagsComponent","i8.DiscussCardComponent","i9.AppLoaderComponent","i1.NavigationServiceService","i2.EventsService","i4.DiscussionService","CONSTANTS.CATEGORY","i1.ConfigService","i4.EventsService","i5.DiscussAllComponent","CONSTANTS.TAGS","CONSTANTS.TAGSALL","i5.DiscussTagsComponent"],"mappings":"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"}