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