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