@posiwise/resource-module 0.0.163 → 0.0.165
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/fesm2022/{posiwise-resource-module-base-top-banner.component-Cxeoyf5z.mjs → posiwise-resource-module-base-top-banner.component-qdYdb5Le.mjs} +7 -6
- package/fesm2022/posiwise-resource-module-base-top-banner.component-qdYdb5Le.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module-posiwise-resource-module-DlOc6owW.mjs +1795 -0
- package/fesm2022/posiwise-resource-module-posiwise-resource-module-DlOc6owW.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module-resource-blogs.module-BY02aMCz.mjs +69 -0
- package/fesm2022/posiwise-resource-module-resource-blogs.module-BY02aMCz.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module-resource-case-studies.module-CP7-pHth.mjs +133 -0
- package/fesm2022/posiwise-resource-module-resource-case-studies.module-CP7-pHth.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module-resource-events.module-CXAhiCS6.mjs +228 -0
- package/fesm2022/posiwise-resource-module-resource-events.module-CXAhiCS6.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module-resource-hub.module-a6qHwXRb.mjs +233 -0
- package/fesm2022/posiwise-resource-module-resource-hub.module-a6qHwXRb.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module-resource-integrations.module-WfJfGko9.mjs +274 -0
- package/fesm2022/posiwise-resource-module-resource-integrations.module-WfJfGko9.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module-resource-post.module-DvTdeeQt.mjs +304 -0
- package/fesm2022/posiwise-resource-module-resource-post.module-DvTdeeQt.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module-resource-release-notes.module-CxAh59AL.mjs +104 -0
- package/fesm2022/posiwise-resource-module-resource-release-notes.module-CxAh59AL.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module-resource-root.module-BHGO5PqT.mjs +393 -0
- package/fesm2022/posiwise-resource-module-resource-root.module-BHGO5PqT.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module-resource-videos.module-BJxrv9JZ.mjs +69 -0
- package/fesm2022/posiwise-resource-module-resource-videos.module-BJxrv9JZ.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module-resource-white-papers.module-iWQ29ue6.mjs +70 -0
- package/fesm2022/posiwise-resource-module-resource-white-papers.module-iWQ29ue6.mjs.map +1 -0
- package/fesm2022/posiwise-resource-module.mjs +1 -31
- package/fesm2022/posiwise-resource-module.mjs.map +1 -1
- package/lib/public/components/resource-case-studies/resource-case-studies.component.d.ts +1 -0
- package/lib/public/shared/resource-shared.module.d.ts +1 -1
- package/package.json +4 -6
- package/esm2022/index.mjs +0 -25
- package/esm2022/lib/public/components/base/base-resource.component.mjs +0 -144
- package/esm2022/lib/public/components/base/base-top-banner.component.mjs +0 -111
- package/esm2022/lib/public/components/reslease-note-card/release-note-card.component.mjs +0 -174
- package/esm2022/lib/public/components/resource-blogs/resource-blog-top-banner/resource-blog-top-banner.component.mjs +0 -27
- package/esm2022/lib/public/components/resource-blogs/resource-blog.component.mjs +0 -27
- package/esm2022/lib/public/components/resource-case-studies/case-studies-cards/case-studies-cards.component.mjs +0 -108
- package/esm2022/lib/public/components/resource-case-studies/resource-case-studies.component.mjs +0 -78
- package/esm2022/lib/public/components/resource-company-card/resource-company-card.component.mjs +0 -88
- package/esm2022/lib/public/components/resource-contact-us/resource-contact-us.module.mjs +0 -16
- package/esm2022/lib/public/components/resource-edit-card/resource-edit-card.component.mjs +0 -230
- package/esm2022/lib/public/components/resource-edit-card-lazy/resource-edit-card-lazy.component.mjs +0 -75
- package/esm2022/lib/public/components/resource-integration/integration-top-banner/integration-top-banner.component.mjs +0 -27
- package/esm2022/lib/public/components/resource-integration/resource-integration.component.mjs +0 -237
- package/esm2022/lib/public/components/resource-post/related-resources/related-resources.component.mjs +0 -124
- package/esm2022/lib/public/components/resource-post/related-resources/resource-cards/resource-cards.component.mjs +0 -107
- package/esm2022/lib/public/components/resource-post/resource-post-details/resource-post-details.component.mjs +0 -128
- package/esm2022/lib/public/components/resource-post/resource-post.component.mjs +0 -39
- package/esm2022/lib/public/components/resource-release-notes/resource-release-notes-top-banner/resource-release-notes-top-banner.component.mjs +0 -27
- package/esm2022/lib/public/components/resource-release-notes/resource-release-notes.component.mjs +0 -59
- package/esm2022/lib/public/components/resource-top-banner-edit/resource-top-banner-edit.component.mjs +0 -106
- package/esm2022/lib/public/components/resource-vault/resource-vault.component.mjs +0 -76
- package/esm2022/lib/public/components/resource-videos/resource-video-cards/resource-video-cards.component.mjs +0 -130
- package/esm2022/lib/public/components/resource-videos/resource-videos-top-banner/resource-videos-top-banner.component.mjs +0 -27
- package/esm2022/lib/public/components/resource-videos/resource-videos.component.mjs +0 -27
- package/esm2022/lib/public/components/resource-webinars/replay-event-cards/replay-event-cards.component.mjs +0 -101
- package/esm2022/lib/public/components/resource-webinars/resource-webinars.component.mjs +0 -115
- package/esm2022/lib/public/components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component.mjs +0 -148
- package/esm2022/lib/public/components/resources/resource-tags/resource-tags.component.mjs +0 -84
- package/esm2022/lib/public/components/resources/resources.component.mjs +0 -84
- package/esm2022/lib/public/components/resources/vault-section/vault-section.component.mjs +0 -160
- package/esm2022/lib/public/components/resources-hub/resources-hub.component.mjs +0 -208
- package/esm2022/lib/public/components/testimonial-card/testimonial-card.component.mjs +0 -86
- package/esm2022/lib/public/components/white-papers/white-papers-top-banner/white-papers-top-banner.component.mjs +0 -27
- package/esm2022/lib/public/components/white-papers/white-papers.component.mjs +0 -27
- package/esm2022/lib/public/modules/blogs/resource-blogs.module.mjs +0 -31
- package/esm2022/lib/public/modules/case-studies/resource-case-studies.module.mjs +0 -36
- package/esm2022/lib/public/modules/events/resource-events.module.mjs +0 -31
- package/esm2022/lib/public/modules/hub/resource-hub.module.mjs +0 -30
- package/esm2022/lib/public/modules/integrations/resource-integrations.module.mjs +0 -31
- package/esm2022/lib/public/modules/post/resource-post.module.mjs +0 -33
- package/esm2022/lib/public/modules/release-notes/resource-release-notes.module.mjs +0 -31
- package/esm2022/lib/public/modules/root/resource-root-shared.module.mjs +0 -61
- package/esm2022/lib/public/modules/root/resource-root.module.mjs +0 -33
- package/esm2022/lib/public/modules/videos/resource-videos.module.mjs +0 -31
- package/esm2022/lib/public/modules/white-papers/resource-white-papers.module.mjs +0 -32
- package/esm2022/lib/public/resource-public.module.mjs +0 -18
- package/esm2022/lib/public/resource-public.routing.module.mjs +0 -61
- package/esm2022/lib/public/shared/resource-cards.module.mjs +0 -121
- package/esm2022/lib/public/shared/resource-edit.module.mjs +0 -64
- package/esm2022/lib/public/shared/resource-shared.module.mjs +0 -128
- package/esm2022/lib/resource.module.mjs +0 -15
- package/esm2022/lib/resource.service.mjs +0 -79
- package/esm2022/lib/shared/models/resource.model.mjs +0 -12
- package/esm2022/lib/shared/resource-modal.interface.mjs +0 -2
- package/esm2022/posiwise-resource-module.mjs +0 -5
- package/fesm2022/posiwise-resource-module-base-top-banner.component-Cxeoyf5z.mjs.map +0 -1
- package/fesm2022/posiwise-resource-module-posiwise-resource-module-B1G5qNj1.mjs +0 -1795
- package/fesm2022/posiwise-resource-module-posiwise-resource-module-B1G5qNj1.mjs.map +0 -1
- package/fesm2022/posiwise-resource-module-resource-blogs.module-CTYKg3kh.mjs +0 -91
- package/fesm2022/posiwise-resource-module-resource-blogs.module-CTYKg3kh.mjs.map +0 -1
- package/fesm2022/posiwise-resource-module-resource-case-studies.module-Dov1BAfF.mjs +0 -127
- package/fesm2022/posiwise-resource-module-resource-case-studies.module-Dov1BAfF.mjs.map +0 -1
- package/fesm2022/posiwise-resource-module-resource-events.module-K3sH1mdv.mjs +0 -245
- package/fesm2022/posiwise-resource-module-resource-events.module-K3sH1mdv.mjs.map +0 -1
- package/fesm2022/posiwise-resource-module-resource-hub.module-C5t2KeqW.mjs +0 -249
- package/fesm2022/posiwise-resource-module-resource-hub.module-C5t2KeqW.mjs.map +0 -1
- package/fesm2022/posiwise-resource-module-resource-integrations.module-CN_tWJV2.mjs +0 -287
- package/fesm2022/posiwise-resource-module-resource-integrations.module-CN_tWJV2.mjs.map +0 -1
- package/fesm2022/posiwise-resource-module-resource-post.module-PsfJSV3t.mjs +0 -318
- package/fesm2022/posiwise-resource-module-resource-post.module-PsfJSV3t.mjs.map +0 -1
- package/fesm2022/posiwise-resource-module-resource-release-notes.module-TR3GIX0u.mjs +0 -124
- package/fesm2022/posiwise-resource-module-resource-release-notes.module-TR3GIX0u.mjs.map +0 -1
- package/fesm2022/posiwise-resource-module-resource-root.module-Bm5Wv4mP.mjs +0 -408
- package/fesm2022/posiwise-resource-module-resource-root.module-Bm5Wv4mP.mjs.map +0 -1
- package/fesm2022/posiwise-resource-module-resource-videos.module-CDBHydlX.mjs +0 -91
- package/fesm2022/posiwise-resource-module-resource-videos.module-CDBHydlX.mjs.map +0 -1
- package/fesm2022/posiwise-resource-module-resource-white-papers.module-DVDuexfj.mjs +0 -92
- package/fesm2022/posiwise-resource-module-resource-white-papers.module-DVDuexfj.mjs.map +0 -1
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { Component, HostListener, Injector, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { AppBaseComponent } from '@posiwise/app-base-component';
|
|
3
|
-
import { AuthService, TagService } from '@posiwise/common-services';
|
|
4
|
-
import { HelperService } from '@posiwise/helper-service';
|
|
5
|
-
import { forkJoin } from 'rxjs';
|
|
6
|
-
import { ResourceService } from '../../../resource.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../../resource.service";
|
|
9
|
-
import * as i2 from "@posiwise/common-services";
|
|
10
|
-
import * as i3 from "@angular/common";
|
|
11
|
-
import * as i4 from "@angular/forms";
|
|
12
|
-
import * as i5 from "@angular/router";
|
|
13
|
-
import * as i6 from "@posiwise/directives";
|
|
14
|
-
import * as i7 from "../resource-edit-card-lazy/resource-edit-card-lazy.component";
|
|
15
|
-
import * as i8 from "@posiwise/utils";
|
|
16
|
-
import * as i9 from "@posiwise/shared-components";
|
|
17
|
-
import * as i10 from "primeng/progressspinner";
|
|
18
|
-
import * as i11 from "primeng/inputtext";
|
|
19
|
-
import * as i12 from "@posiwise/pipes";
|
|
20
|
-
export class ResourceHubComponent extends AppBaseComponent {
|
|
21
|
-
constructor(resourceService, authService, tagService, injector) {
|
|
22
|
-
super(injector);
|
|
23
|
-
this.resourceService = resourceService;
|
|
24
|
-
this.authService = authService;
|
|
25
|
-
this.tagService = tagService;
|
|
26
|
-
this.delayTimeout = null;
|
|
27
|
-
this.data = [];
|
|
28
|
-
this.posts = [];
|
|
29
|
-
this.tags = [];
|
|
30
|
-
this.selectedTags = [];
|
|
31
|
-
this.currentPage = 1;
|
|
32
|
-
this.pageSize = 20;
|
|
33
|
-
this.objectCount = 0;
|
|
34
|
-
this.searchTextItems = '';
|
|
35
|
-
this.searchInput = false;
|
|
36
|
-
this.loading = true;
|
|
37
|
-
this.loaded = false;
|
|
38
|
-
this.scrollLocked = false;
|
|
39
|
-
this.iconClasses = [
|
|
40
|
-
'fa-lightbulb',
|
|
41
|
-
'fa-rocket',
|
|
42
|
-
'fa-file-alt',
|
|
43
|
-
'fa-users',
|
|
44
|
-
'fa-video',
|
|
45
|
-
'fa-pencil-alt',
|
|
46
|
-
'fa-book-open',
|
|
47
|
-
'fa-cogs'
|
|
48
|
-
];
|
|
49
|
-
this.canEditResourcesValue = false;
|
|
50
|
-
}
|
|
51
|
-
ngOnInit() {
|
|
52
|
-
this.authService.getToken$().subscribe(res => {
|
|
53
|
-
this.userLoggedIn = !!res;
|
|
54
|
-
if (this.userLoggedIn) {
|
|
55
|
-
this.localStorage.getItem$('product').subscribe(res => {
|
|
56
|
-
const data = res ? JSON.parse(res) : null;
|
|
57
|
-
this.subscriptionId = data?.subscriptionId;
|
|
58
|
-
});
|
|
59
|
-
this.userSub = this.userService.getUserInfo().subscribe(data => {
|
|
60
|
-
this.user = data;
|
|
61
|
-
this.updateCanEditResourcesValue();
|
|
62
|
-
this.getPostsAndTags();
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
this.getPostsAndTags();
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
this.masterSubscriptionId = this.appConfig.master_subscription.subscription_id;
|
|
70
|
-
this.readingTime = 0;
|
|
71
|
-
}
|
|
72
|
-
getPostsAndTags() {
|
|
73
|
-
this.loading = true;
|
|
74
|
-
this.loaded = false;
|
|
75
|
-
forkJoin({
|
|
76
|
-
resPosts: this.resourceService.getPublicPosts(this.getEffectiveSubscriptionId(), this.currentPage, this.pageSize, this.searchTextItems),
|
|
77
|
-
resTags: this.tagService.getTagsByType('post_categories', {}, this.getEffectiveSubscriptionId())
|
|
78
|
-
})
|
|
79
|
-
.subscribe(res => {
|
|
80
|
-
this.posts = res?.resPosts?.posts;
|
|
81
|
-
this.objectCount = res?.resPosts.object_count;
|
|
82
|
-
this.data = res?.resPosts?.posts;
|
|
83
|
-
this.data = res?.resPosts?.posts.map(post => ({
|
|
84
|
-
...post,
|
|
85
|
-
expandedTags: false
|
|
86
|
-
}));
|
|
87
|
-
this.totalRecords = this.posts?.length;
|
|
88
|
-
this.tags = res?.resTags?.tags?.filter(tag => tag.visible_in_resources);
|
|
89
|
-
this.tags = this.tags.map(tag => ({
|
|
90
|
-
...tag
|
|
91
|
-
}));
|
|
92
|
-
})
|
|
93
|
-
.add(() => {
|
|
94
|
-
this.loading = false;
|
|
95
|
-
this.loaded = true;
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
toggleDropdown(event, post) {
|
|
99
|
-
event.stopPropagation();
|
|
100
|
-
post.showDropdown = !post.showDropdown;
|
|
101
|
-
}
|
|
102
|
-
getPosts(page, pageSize, fetchAll = false, append = false) {
|
|
103
|
-
if (fetchAll)
|
|
104
|
-
this.selectedTags = [];
|
|
105
|
-
if (!append) {
|
|
106
|
-
this.loading = true;
|
|
107
|
-
this.loaded = false;
|
|
108
|
-
}
|
|
109
|
-
const tagCategoryParam = this.selectedTags.map(tag => tag.tag_category_id).join(',');
|
|
110
|
-
this.resourceService
|
|
111
|
-
.getPublicPosts(this.getEffectiveSubscriptionId(), page, append ? 10 : pageSize, this.searchTextItems, tagCategoryParam)
|
|
112
|
-
.subscribe(response => {
|
|
113
|
-
this.objectCount = response.object_count;
|
|
114
|
-
this.posts = append ? [...this.posts, ...response.posts] : response.posts;
|
|
115
|
-
this.data = [...this.posts];
|
|
116
|
-
this.totalRecords = this.posts?.length;
|
|
117
|
-
})
|
|
118
|
-
.add(() => {
|
|
119
|
-
this.loading = false;
|
|
120
|
-
this.loaded = true;
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
onSearch(seconds) {
|
|
124
|
-
let delay = 0;
|
|
125
|
-
delay = seconds * 1000;
|
|
126
|
-
clearTimeout(this.delayTimeout);
|
|
127
|
-
const delayTimeout = setTimeout(() => {
|
|
128
|
-
this.currentPage = 1;
|
|
129
|
-
this.getPosts(1, this.pageSize);
|
|
130
|
-
}, delay);
|
|
131
|
-
this.delayTimeout = delayTimeout;
|
|
132
|
-
}
|
|
133
|
-
navigateToTagList() {
|
|
134
|
-
HelperService.navigateToTagList();
|
|
135
|
-
}
|
|
136
|
-
onWindowScroll() {
|
|
137
|
-
const scrollPosition = window.scrollY + window.innerHeight;
|
|
138
|
-
const pageHeight = document.documentElement.scrollHeight;
|
|
139
|
-
const nearBottom = scrollPosition >= pageHeight - 100;
|
|
140
|
-
if (nearBottom &&
|
|
141
|
-
this.posts.length < this.objectCount &&
|
|
142
|
-
!this.loading &&
|
|
143
|
-
!this.scrollLocked) {
|
|
144
|
-
this.scrollLocked = true;
|
|
145
|
-
this.currentPage += 1;
|
|
146
|
-
this.getPosts(this.currentPage, this.pageSize, false, true);
|
|
147
|
-
setTimeout(() => {
|
|
148
|
-
this.scrollLocked = false;
|
|
149
|
-
}, 500);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
isSelected(tagId) {
|
|
153
|
-
return this.selectedTags.map(tag => tag.id).includes(tagId);
|
|
154
|
-
}
|
|
155
|
-
tagPost(selectedTag) {
|
|
156
|
-
const index = this.selectedTags.findIndex(tag => tag.tag_category_id === selectedTag?.tag_category_id && tag.id === selectedTag.id);
|
|
157
|
-
if (index === -1) {
|
|
158
|
-
this.selectedTags.push({
|
|
159
|
-
tag_category_id: selectedTag?.tag_category_id,
|
|
160
|
-
id: selectedTag.id
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
this.selectedTags.splice(index, 1);
|
|
165
|
-
}
|
|
166
|
-
this.currentPage = 1;
|
|
167
|
-
this.getPosts(1, this.pageSize);
|
|
168
|
-
}
|
|
169
|
-
thisPostReadingTime(text) {
|
|
170
|
-
if (text) {
|
|
171
|
-
const wordsPerMinute = 200;
|
|
172
|
-
const noOfWords = text.split(/\s/g).length;
|
|
173
|
-
const minutes = noOfWords / wordsPerMinute;
|
|
174
|
-
const readTime = Math.ceil(minutes);
|
|
175
|
-
return `${readTime} minute read`;
|
|
176
|
-
}
|
|
177
|
-
return '';
|
|
178
|
-
}
|
|
179
|
-
ngOnDestroy() {
|
|
180
|
-
this.userSub?.unsubscribe();
|
|
181
|
-
super.ngOnDestroy();
|
|
182
|
-
}
|
|
183
|
-
/** Helper method to get effective subscription ID */
|
|
184
|
-
getEffectiveSubscriptionId() {
|
|
185
|
-
return HelperService.getEffectiveSubscriptionId(this.user, this.subscriptionId, this.appConfig.master_subscription.subscription_id);
|
|
186
|
-
}
|
|
187
|
-
updateCanEditResourcesValue() {
|
|
188
|
-
if (this.userLoggedIn && this.user) {
|
|
189
|
-
this.canEditResourcesValue = HelperService.canEditResources(this.user, this.userLoggedIn, this.permissionService);
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
this.canEditResourcesValue = false;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
canEditResources() {
|
|
196
|
-
return this.canEditResourcesValue;
|
|
197
|
-
}
|
|
198
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHubComponent, deps: [{ token: i1.ResourceService }, { token: i2.AuthService }, { token: i2.TagService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
199
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceHubComponent, selector: "pw-posts-list", host: { listeners: { "window:scroll": "onWindowScroll()" } }, usesInheritance: true, ngImport: i0, template: "<pw-resource-header [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-header>\n<div class=\"all-posts py-5\">\n\n <div class=\"row mt-1 mb-4 px-2\">\n <div class=\"col-md-8\">\n </div>\n <div class=\"col-md-4\">\n <div class=\"text-end mt-0 mt-sm-3 d-flex\">\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer mt-2 me-3\"\n (click)=\"navigateToTagList()\"\n (keydown.enter)=\"navigateToTagList()\"\n (keydown.space)=\"navigateToTagList()\"\n title=\"Edit Logo\"></i>\n <div class=\"search-wrapper position-relative\">\n <i class=\"fa fa-search search-icon\"></i>\n <input type=\"text\" [(ngModel)]=\"searchTextItems\" pInputText size=\"50\" placeholder=\"Search resources...\"\n (input)=\"onSearch(1)\"\n class=\"search-input top-search-input\" />\n </div>\n </div>\n </div>\n </div>\n <div class=\"row resource-row\">\n <!-- All Resources Card -->\n <div class=\"col-md-3 col-sm-6 col-6 mb-4\">\n <div class=\"resource-card d-flex align-items-center p-3\"\n (keydown.enter)=\"getPosts(1, 20, true)\"\n [ngClass]=\"{ 'selected': selectedTags.length === 0 }\"\n (click)=\"getPosts(1, 20, true)\">\n <i class=\"fa fa-layer-group resource-icon me-3\"></i>\n <span class=\"resource-text\">All Resources</span>\n </div>\n </div>\n\n <!-- Dynamic Tags -->\n <div class=\"col-md-3 col-sm-6 mb-4 col-6\"\n *ngFor=\"let tag of tags\">\n <div\n class=\"resource-card d-flex align-items-center p-3\"\n (keydown.enter)=\"tagPost(tag)\"\n [ngClass]=\"{ 'selected': isSelected(tag.id) }\"\n (click)=\"tagPost(tag)\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"loading && !loaded\">\n <div class=\"w-100 text-center mt-3\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n </ng-container>\n <ng-container *ngIf=\"posts?.length && !loading\">\n <div>\n <div class=\"blog-list\">\n <div class=\"row mt-4 mb-5 ms-1 me-1 blog-listing\"\n *ngFor=\"let post of data\">\n <div class=\"col-md-6 col-sm-12 col-xs-12 my-auto\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post?.id\"\n [resourceData]=\"post\"\n (updated)=\"getPosts(1, pageSize)\">\n </pw-resource-edit-card-lazy>\n <div class=\"list-blog-image\" [routerLink]=\"['/resources/view', post.slug]\">\n <img [src]=\"post.picture?.url\"\n alt=\"Resource thumbnail\"\n class=\"img-fluid\" />\n </div>\n </div>\n <div class=\"col-md-6 col-sm-12 col-xs-12 px-4 position-relative\">\n <div class=\"tag-div\">\n <div class=\"author d-flex\">\n <div class=\"avatar-image\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\">\n <img *ngIf=\"post.author?.avatar\"\n [src]=\"post.author?.avatar[0]?.url\"\n alt=\"Author profile\" />\n <img *ngIf=\"!post.author?.avatar\"\n src=\"/assets/img/icons/male.png\"\n alt=\"Default author profile\"\n class=\"default-user-image\" />\n </a>\n </div>\n\n <div class=\"author-name ps-2\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\"\n class=\"name\">\n {{ post.author.first_name }}\n <i class=\"fas fa-crown\" aria-hidden=\"true\"></i></a>\n <ul>\n <li>\n <a href=\"javascript:void(0);\">\n {{ post.published_at | date: 'dd/MM/yyyy' }}\n </a>\n </li>\n <li>.</li>\n <li>\n <a href=\"javascript:void(0);\">{{ thisPostReadingTime(post.body) }}\n </a>\n </li>\n </ul>\n </div>\n <div class=\"share-post\">\n <div class=\"dropdown position-relative d-flex justify-content-end\" (clickOutside)=\"post.showDropdown = false\">\n <div class=\"three-dots-wrapper\" (keydown.enter)=\"toggleDropdown($event, post)\" (click)=\"toggleDropdown($event, post)\">\n <i class=\"fas fa-ellipsis-v\"></i>\n </div>\n\n <div class=\"dropdown-menu show\"\n *ngIf=\"post.showDropdown\">\n <a class=\"dropdown-item\"\n href=\"http://www.facebook.com/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <i class=\"fas fa-share\"></i> Share Post\n </a>\n </div>\n </div>\n\n </div>\n </div>\n <h4 [routerLink]=\"['/resources/view', post.slug]\"\n class=\"title my-3\">{{ post.title }}</h4>\n <p [routerLink]=\"['/resources/view', post.slug]\"\n class=\"body mb-3 pb-3 post-body-text\">\n {{ post.body | removeHtml: 'quill' | textTruncate: 200 }}\n </p>\n <div class=\"d-flex flex-wrap align-items-center gap-2 mt-auto mb-3\">\n <ng-container *ngIf=\"post?.tags?.length\">\n <ng-container *ngFor=\"let tag of post?.tags?.slice(0, 4)\">\n <span class=\"badge m-1\"\n [appDynamicBadge]=\"{ itemsArray: post?.tags, item: tag }\"\n [colorByName]=\"true\"\n [dataName]=\"tag.name\"\n color=\"blue-grey\">\n {{ tag.name }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"post.expandedTags\">\n <ng-container *ngFor=\"let tag of post?.tags?.slice(4)\">\n <span class=\"badge m-1\"\n [appDynamicBadge]=\"{ itemsArray: post?.tags, item: tag }\"\n [colorByName]=\"true\"\n [dataName]=\"tag.name\"\n color=\"blue-grey\">\n {{ tag.name }}\n </span>\n </ng-container>\n </ng-container>\n\n <span *ngIf=\"post?.tags?.length > 4\"\n (click)=\"post.expandedTags = !post.expandedTags\"\n (keydown.enter)=\"post.expandedTags = !post.expandedTags\"\n class=\"fw-bold cursor-pointer m-1 expand-tags\">...</span>\n </ng-container>\n </div>\n\n\n <div class=\"blog-view py-3 blog-list-write-view\">\n <ul class=\"d-flex\">\n <li>{{ post.view !== null ? post.view : '0' }} View</li>\n <li><a [routerLink]=\"['/resources/view', post.slug]\">Write Comment</a></li>\n <li>\n <a [routerLink]=\"['/resources/view', post.slug]\" aria-label=\"Blog\"><i class=\"far fa-heart\" aria-hidden=\"true\"></i></a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!posts?.length && loaded\">\n <pw-no-data [withImage]=\"true\" message=\"We couldn't find any resources.\" > </pw-no-data>\n </ng-container>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}body{background:#fff}.edit-card .in-page-edit-icon{margin-top:1rem!important}.blog-listing{border:1px solid rgb(238,238,238);cursor:pointer;box-shadow:0 4px 12px #00000026}.all-posts{margin:2.5em auto 0;max-width:980px;padding:14px 20px;width:100%}.tag-div{height:100%;display:flex;flex-direction:column;justify-content:space-between}ul.tags{display:inline-flex;font-size:16px;font-weight:400}ul.tags li{color:#337ab7;cursor:pointer;font-weight:600;margin-right:20px}ul.tags li:hover{color:#000}.search{position:relative}.search input{border:0;border-bottom:1px solid rgb(213,206,206)}.search i{position:absolute;right:5px}.scroll-container{max-height:70vh;overflow-y:auto}.blog-list .blog-listing h4{color:#000;font:28px/1.3 Roboto,sans-serif;transition:all .5s}.blog-list .blog-listing h4:hover{color:#0045c7}.blog-list .blog-listing p.body{color:#b3b3b3;font:16px/1.4 Roboto,sans-serif;transition:all .5s;min-height:120px!important;word-break:break-word;overflow-wrap:break-word;white-space:normal}.blog-list .blog-listing p.body:hover{color:#0045c7}.blog-list .blog-listing p.body p{color:inherit;font:inherit;transition:inherit}.blog-list .blog-listing p.body p:hover{color:#0045c7}.blog-list .blog-listing .list-blog-image img{padding:7px 25px 25px}.blog-list .blog-listing .author{padding-top:1.5rem}.blog-list .blog-listing .author .avatar-image{border:1px solid rgb(0,0,0);border-radius:50px;height:50px;clip-path:circle(50% at 50% 50%);width:50px}.blog-list .blog-listing .author .avatar-image img{left:50%;position:relative;top:50%;transform:translate(-50%,-50%)}.blog-list .blog-listing .author .avatar-image .default-user-image{width:50px}.blog-list .blog-listing .author .author-name p.name{color:#000;font:14px/1 Roboto,sans-serif;margin:0;transition:all .5s}.blog-list .blog-listing .author .author-name p.name:hover{color:#0045c7}.blog-list .blog-listing .author .author-name p.name i{color:#000}.blog-list .blog-listing .author .author-name ul li{display:inline-block;padding-right:10px;vertical-align:middle}.blog-list .blog-listing .author .author-name ul li a{color:#b3b3b3;font:12px/1 Roboto,sans-serif}.blog-list .blog-listing .author .share-post{flex-grow:3;position:relative;text-align:right}.blog-list .blog-listing .author .share-post i{color:var(--first)}.blog-list .blog-listing .author .share-post .dropdown-menu{border:0 0;box-shadow:0 3px 8px #0003;left:auto!important;right:12px;top:26px!important;transform:translate(0)!important}.blog-list .blog-listing .blog-view{border-top:1px solid rgb(238,238,238)}.blog-list .blog-listing .blog-view ul li{color:#b3b3b3;font:12px/1 Roboto,sans-serif;padding-right:14px}.blog-list .blog-listing .blog-view ul li a{color:inherit;font:inherit;transition:all .5s}.blog-list .blog-listing .blog-view ul li a:hover{color:#0045c7}.blog-list .blog-listing .blog-view ul li:last-child{flex-grow:3;padding-right:0;text-align:right}.blog-list .blog-listing .blog-view ul li:last-child i{color:#e84a43;font-size:14px}@media only screen and (width <= 1024px){.cust-mt{padding:14px 5px}.cust-mt .blog-list .blog-listing h4{font:20px/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body{font:.9rem/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body p{font:inherit}.cust-mt .blog-list .blog-listing .blog-image{height:300px}}@media only screen and (width <= 767px){.blog-list .blog-listing{height:auto;max-height:none;overflow:visible}.blog-list .blog-listing .blog-view{padding-bottom:1rem}}@media (width >= 768px){.blog-view{bottom:0;width:92%}}.post-body-text:hover{color:var(--titles)!important}.resource-card{border:2px dashed #d4d4d4;border-radius:16px;background-color:#fff;transition:box-shadow .3s ease;cursor:pointer;min-height:95px;padding:1.5rem!important}.resource-card:hover{box-shadow:0 0 30px #00000014}@media (width <= 576px){.resource-card{padding:.3rem 1rem!important;height:100%;min-height:75px}.tag-section{padding-bottom:4.5rem!important}.resource-icon{font-size:2rem!important}.resource-text{font-size:1.2rem!important;line-height:1.6rem!important;word-break:break-word;overflow-wrap:break-word;hyphens:auto}}.selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.resource-icon{font-size:2.5rem;color:var(--first)}.resource-text{font-size:1.4rem;font-weight:500;color:var(--text-color);line-height:2rem}.three-dots-wrapper{width:32px;height:32px;display:flex;margin-top:.25rem!important;justify-content:center;cursor:pointer;position:relative;z-index:2}.expand-tags{font-size:1.2rem}\n", ".top-search-input{color:#000!important;border:3px solid #d4d4d4!important;padding:5px 30px!important;border-radius:29px!important}::placeholder{color:#d4d4d4}.vendors-distributor-wrapper{margin-top:5rem!important}.vendor-icon{max-width:180px;max-height:100%;width:100%!important}.vendor-name{font-size:3rem;line-height:3rem;color:var(--text-color, black)}::ng-deep .customPaginator .p-paginator{border:none!important}::ng-deep .customPaginator .p-paginator button{border:none!important}.int-span{text-transform:uppercase;font-size:2.5rem;color:var(--first)}.boxes{width:100%;min-height:150px;display:flex;align-items:center;justify-content:center;text-align:center;padding:15px;border:1px dashed #ccc;border-radius:8px;word-break:break-word;white-space:normal;height:100%}a.vendor-link{display:inline-block;transition:transform .2s ease}a.vendor-link:hover{transform:scale(1.05);cursor:pointer}.search-wrapper{position:relative;width:300px}.search-input{width:100%;padding:10px 20px 10px 40px;border:2px solid #d4d4d4;border-radius:30px;font-size:1rem;color:#000;background-color:#fff}.search-input::placeholder{color:silver}.search-input:focus{outline:none;border-color:var(--first)}.search-icon{position:absolute;top:50%;left:14px;transform:translateY(-50%);color:#d4d4d4;font-size:1.1rem}@media (width <= 768px){.vendor-icon{width:50!important}.search-container{flex-wrap:wrap!important;gap:2rem}.int-span{font-size:1.75rem}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.DynamicBadgeDirective, selector: "[appDynamicBadge]", inputs: ["appDynamicBadge", "color", "colorByName", "dataName"] }, { kind: "directive", type: i6.LazyImgDirective, selector: "img" }, { kind: "component", type: i7.ResourceEditCardLazyComponent, selector: "pw-resource-edit-card-lazy", inputs: ["id", "resourceData", "canEdit"], outputs: ["updated"] }, { kind: "component", type: i8.ResourceHeaderComponent, selector: "pw-resource-header", inputs: ["user", "userLoggedIn"] }, { kind: "component", type: i9.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "component", type: i10.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "directive", type: i11.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "pipe", type: i12.RemoveHtmlPipe, name: "removeHtml" }, { kind: "pipe", type: i12.TextTruncatePipe, name: "textTruncate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
200
|
-
}
|
|
201
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHubComponent, decorators: [{
|
|
202
|
-
type: Component,
|
|
203
|
-
args: [{ selector: 'pw-posts-list', encapsulation: ViewEncapsulation.None, template: "<pw-resource-header [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-header>\n<div class=\"all-posts py-5\">\n\n <div class=\"row mt-1 mb-4 px-2\">\n <div class=\"col-md-8\">\n </div>\n <div class=\"col-md-4\">\n <div class=\"text-end mt-0 mt-sm-3 d-flex\">\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer mt-2 me-3\"\n (click)=\"navigateToTagList()\"\n (keydown.enter)=\"navigateToTagList()\"\n (keydown.space)=\"navigateToTagList()\"\n title=\"Edit Logo\"></i>\n <div class=\"search-wrapper position-relative\">\n <i class=\"fa fa-search search-icon\"></i>\n <input type=\"text\" [(ngModel)]=\"searchTextItems\" pInputText size=\"50\" placeholder=\"Search resources...\"\n (input)=\"onSearch(1)\"\n class=\"search-input top-search-input\" />\n </div>\n </div>\n </div>\n </div>\n <div class=\"row resource-row\">\n <!-- All Resources Card -->\n <div class=\"col-md-3 col-sm-6 col-6 mb-4\">\n <div class=\"resource-card d-flex align-items-center p-3\"\n (keydown.enter)=\"getPosts(1, 20, true)\"\n [ngClass]=\"{ 'selected': selectedTags.length === 0 }\"\n (click)=\"getPosts(1, 20, true)\">\n <i class=\"fa fa-layer-group resource-icon me-3\"></i>\n <span class=\"resource-text\">All Resources</span>\n </div>\n </div>\n\n <!-- Dynamic Tags -->\n <div class=\"col-md-3 col-sm-6 mb-4 col-6\"\n *ngFor=\"let tag of tags\">\n <div\n class=\"resource-card d-flex align-items-center p-3\"\n (keydown.enter)=\"tagPost(tag)\"\n [ngClass]=\"{ 'selected': isSelected(tag.id) }\"\n (click)=\"tagPost(tag)\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"loading && !loaded\">\n <div class=\"w-100 text-center mt-3\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n </ng-container>\n <ng-container *ngIf=\"posts?.length && !loading\">\n <div>\n <div class=\"blog-list\">\n <div class=\"row mt-4 mb-5 ms-1 me-1 blog-listing\"\n *ngFor=\"let post of data\">\n <div class=\"col-md-6 col-sm-12 col-xs-12 my-auto\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post?.id\"\n [resourceData]=\"post\"\n (updated)=\"getPosts(1, pageSize)\">\n </pw-resource-edit-card-lazy>\n <div class=\"list-blog-image\" [routerLink]=\"['/resources/view', post.slug]\">\n <img [src]=\"post.picture?.url\"\n alt=\"Resource thumbnail\"\n class=\"img-fluid\" />\n </div>\n </div>\n <div class=\"col-md-6 col-sm-12 col-xs-12 px-4 position-relative\">\n <div class=\"tag-div\">\n <div class=\"author d-flex\">\n <div class=\"avatar-image\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\">\n <img *ngIf=\"post.author?.avatar\"\n [src]=\"post.author?.avatar[0]?.url\"\n alt=\"Author profile\" />\n <img *ngIf=\"!post.author?.avatar\"\n src=\"/assets/img/icons/male.png\"\n alt=\"Default author profile\"\n class=\"default-user-image\" />\n </a>\n </div>\n\n <div class=\"author-name ps-2\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\"\n class=\"name\">\n {{ post.author.first_name }}\n <i class=\"fas fa-crown\" aria-hidden=\"true\"></i></a>\n <ul>\n <li>\n <a href=\"javascript:void(0);\">\n {{ post.published_at | date: 'dd/MM/yyyy' }}\n </a>\n </li>\n <li>.</li>\n <li>\n <a href=\"javascript:void(0);\">{{ thisPostReadingTime(post.body) }}\n </a>\n </li>\n </ul>\n </div>\n <div class=\"share-post\">\n <div class=\"dropdown position-relative d-flex justify-content-end\" (clickOutside)=\"post.showDropdown = false\">\n <div class=\"three-dots-wrapper\" (keydown.enter)=\"toggleDropdown($event, post)\" (click)=\"toggleDropdown($event, post)\">\n <i class=\"fas fa-ellipsis-v\"></i>\n </div>\n\n <div class=\"dropdown-menu show\"\n *ngIf=\"post.showDropdown\">\n <a class=\"dropdown-item\"\n href=\"http://www.facebook.com/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <i class=\"fas fa-share\"></i> Share Post\n </a>\n </div>\n </div>\n\n </div>\n </div>\n <h4 [routerLink]=\"['/resources/view', post.slug]\"\n class=\"title my-3\">{{ post.title }}</h4>\n <p [routerLink]=\"['/resources/view', post.slug]\"\n class=\"body mb-3 pb-3 post-body-text\">\n {{ post.body | removeHtml: 'quill' | textTruncate: 200 }}\n </p>\n <div class=\"d-flex flex-wrap align-items-center gap-2 mt-auto mb-3\">\n <ng-container *ngIf=\"post?.tags?.length\">\n <ng-container *ngFor=\"let tag of post?.tags?.slice(0, 4)\">\n <span class=\"badge m-1\"\n [appDynamicBadge]=\"{ itemsArray: post?.tags, item: tag }\"\n [colorByName]=\"true\"\n [dataName]=\"tag.name\"\n color=\"blue-grey\">\n {{ tag.name }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"post.expandedTags\">\n <ng-container *ngFor=\"let tag of post?.tags?.slice(4)\">\n <span class=\"badge m-1\"\n [appDynamicBadge]=\"{ itemsArray: post?.tags, item: tag }\"\n [colorByName]=\"true\"\n [dataName]=\"tag.name\"\n color=\"blue-grey\">\n {{ tag.name }}\n </span>\n </ng-container>\n </ng-container>\n\n <span *ngIf=\"post?.tags?.length > 4\"\n (click)=\"post.expandedTags = !post.expandedTags\"\n (keydown.enter)=\"post.expandedTags = !post.expandedTags\"\n class=\"fw-bold cursor-pointer m-1 expand-tags\">...</span>\n </ng-container>\n </div>\n\n\n <div class=\"blog-view py-3 blog-list-write-view\">\n <ul class=\"d-flex\">\n <li>{{ post.view !== null ? post.view : '0' }} View</li>\n <li><a [routerLink]=\"['/resources/view', post.slug]\">Write Comment</a></li>\n <li>\n <a [routerLink]=\"['/resources/view', post.slug]\" aria-label=\"Blog\"><i class=\"far fa-heart\" aria-hidden=\"true\"></i></a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!posts?.length && loaded\">\n <pw-no-data [withImage]=\"true\" message=\"We couldn't find any resources.\" > </pw-no-data>\n </ng-container>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}body{background:#fff}.edit-card .in-page-edit-icon{margin-top:1rem!important}.blog-listing{border:1px solid rgb(238,238,238);cursor:pointer;box-shadow:0 4px 12px #00000026}.all-posts{margin:2.5em auto 0;max-width:980px;padding:14px 20px;width:100%}.tag-div{height:100%;display:flex;flex-direction:column;justify-content:space-between}ul.tags{display:inline-flex;font-size:16px;font-weight:400}ul.tags li{color:#337ab7;cursor:pointer;font-weight:600;margin-right:20px}ul.tags li:hover{color:#000}.search{position:relative}.search input{border:0;border-bottom:1px solid rgb(213,206,206)}.search i{position:absolute;right:5px}.scroll-container{max-height:70vh;overflow-y:auto}.blog-list .blog-listing h4{color:#000;font:28px/1.3 Roboto,sans-serif;transition:all .5s}.blog-list .blog-listing h4:hover{color:#0045c7}.blog-list .blog-listing p.body{color:#b3b3b3;font:16px/1.4 Roboto,sans-serif;transition:all .5s;min-height:120px!important;word-break:break-word;overflow-wrap:break-word;white-space:normal}.blog-list .blog-listing p.body:hover{color:#0045c7}.blog-list .blog-listing p.body p{color:inherit;font:inherit;transition:inherit}.blog-list .blog-listing p.body p:hover{color:#0045c7}.blog-list .blog-listing .list-blog-image img{padding:7px 25px 25px}.blog-list .blog-listing .author{padding-top:1.5rem}.blog-list .blog-listing .author .avatar-image{border:1px solid rgb(0,0,0);border-radius:50px;height:50px;clip-path:circle(50% at 50% 50%);width:50px}.blog-list .blog-listing .author .avatar-image img{left:50%;position:relative;top:50%;transform:translate(-50%,-50%)}.blog-list .blog-listing .author .avatar-image .default-user-image{width:50px}.blog-list .blog-listing .author .author-name p.name{color:#000;font:14px/1 Roboto,sans-serif;margin:0;transition:all .5s}.blog-list .blog-listing .author .author-name p.name:hover{color:#0045c7}.blog-list .blog-listing .author .author-name p.name i{color:#000}.blog-list .blog-listing .author .author-name ul li{display:inline-block;padding-right:10px;vertical-align:middle}.blog-list .blog-listing .author .author-name ul li a{color:#b3b3b3;font:12px/1 Roboto,sans-serif}.blog-list .blog-listing .author .share-post{flex-grow:3;position:relative;text-align:right}.blog-list .blog-listing .author .share-post i{color:var(--first)}.blog-list .blog-listing .author .share-post .dropdown-menu{border:0 0;box-shadow:0 3px 8px #0003;left:auto!important;right:12px;top:26px!important;transform:translate(0)!important}.blog-list .blog-listing .blog-view{border-top:1px solid rgb(238,238,238)}.blog-list .blog-listing .blog-view ul li{color:#b3b3b3;font:12px/1 Roboto,sans-serif;padding-right:14px}.blog-list .blog-listing .blog-view ul li a{color:inherit;font:inherit;transition:all .5s}.blog-list .blog-listing .blog-view ul li a:hover{color:#0045c7}.blog-list .blog-listing .blog-view ul li:last-child{flex-grow:3;padding-right:0;text-align:right}.blog-list .blog-listing .blog-view ul li:last-child i{color:#e84a43;font-size:14px}@media only screen and (width <= 1024px){.cust-mt{padding:14px 5px}.cust-mt .blog-list .blog-listing h4{font:20px/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body{font:.9rem/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body p{font:inherit}.cust-mt .blog-list .blog-listing .blog-image{height:300px}}@media only screen and (width <= 767px){.blog-list .blog-listing{height:auto;max-height:none;overflow:visible}.blog-list .blog-listing .blog-view{padding-bottom:1rem}}@media (width >= 768px){.blog-view{bottom:0;width:92%}}.post-body-text:hover{color:var(--titles)!important}.resource-card{border:2px dashed #d4d4d4;border-radius:16px;background-color:#fff;transition:box-shadow .3s ease;cursor:pointer;min-height:95px;padding:1.5rem!important}.resource-card:hover{box-shadow:0 0 30px #00000014}@media (width <= 576px){.resource-card{padding:.3rem 1rem!important;height:100%;min-height:75px}.tag-section{padding-bottom:4.5rem!important}.resource-icon{font-size:2rem!important}.resource-text{font-size:1.2rem!important;line-height:1.6rem!important;word-break:break-word;overflow-wrap:break-word;hyphens:auto}}.selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.resource-icon{font-size:2.5rem;color:var(--first)}.resource-text{font-size:1.4rem;font-weight:500;color:var(--text-color);line-height:2rem}.three-dots-wrapper{width:32px;height:32px;display:flex;margin-top:.25rem!important;justify-content:center;cursor:pointer;position:relative;z-index:2}.expand-tags{font-size:1.2rem}\n", ".top-search-input{color:#000!important;border:3px solid #d4d4d4!important;padding:5px 30px!important;border-radius:29px!important}::placeholder{color:#d4d4d4}.vendors-distributor-wrapper{margin-top:5rem!important}.vendor-icon{max-width:180px;max-height:100%;width:100%!important}.vendor-name{font-size:3rem;line-height:3rem;color:var(--text-color, black)}::ng-deep .customPaginator .p-paginator{border:none!important}::ng-deep .customPaginator .p-paginator button{border:none!important}.int-span{text-transform:uppercase;font-size:2.5rem;color:var(--first)}.boxes{width:100%;min-height:150px;display:flex;align-items:center;justify-content:center;text-align:center;padding:15px;border:1px dashed #ccc;border-radius:8px;word-break:break-word;white-space:normal;height:100%}a.vendor-link{display:inline-block;transition:transform .2s ease}a.vendor-link:hover{transform:scale(1.05);cursor:pointer}.search-wrapper{position:relative;width:300px}.search-input{width:100%;padding:10px 20px 10px 40px;border:2px solid #d4d4d4;border-radius:30px;font-size:1rem;color:#000;background-color:#fff}.search-input::placeholder{color:silver}.search-input:focus{outline:none;border-color:var(--first)}.search-icon{position:absolute;top:50%;left:14px;transform:translateY(-50%);color:#d4d4d4;font-size:1.1rem}@media (width <= 768px){.vendor-icon{width:50!important}.search-container{flex-wrap:wrap!important;gap:2rem}.int-span{font-size:1.75rem}}\n"] }]
|
|
204
|
-
}], ctorParameters: () => [{ type: i1.ResourceService }, { type: i2.AuthService }, { type: i2.TagService }, { type: i0.Injector }], propDecorators: { onWindowScroll: [{
|
|
205
|
-
type: HostListener,
|
|
206
|
-
args: ['window:scroll', []]
|
|
207
|
-
}] } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLWh1Yi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlcy1odWIvcmVzb3VyY2VzLWh1Yi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlcy1odWIvcmVzb3VyY2VzLWh1Yi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixRQUFRLEVBR1IsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXNUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQThDdEQsWUFDcUIsZUFBZ0MsRUFDaEMsV0FBd0IsRUFDeEIsVUFBc0IsRUFDdkMsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBTEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFoRG5DLGlCQUFZLEdBQXlDLElBQUksQ0FBQztRQUdsRSxTQUFJLEdBQUcsRUFBRSxDQUFDO1FB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T0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRVEsV0FBVztRQUNoQixJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzVCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQscURBQXFEO0lBQzdDLDBCQUEwQjtRQUM5QixPQUFPLGFBQWEsQ0FBQywwQkFBMEIsQ0FDM0MsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FDckQsQ0FBQztJQUNOLENBQUM7SUFFTywyQkFBMkI7UUFDL0IsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUN2RCxJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxpQkFBaUIsQ0FDekIsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztRQUN2QyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3RDLENBQUM7K0dBM1BRLG9CQUFvQjttR0FBcEIsb0JBQW9CLDBJQzNCakMsdWlRQXVMQTs7NEZENUphLG9CQUFvQjtrQkFUaEMsU0FBUzsrQkFDSSxlQUFlLGlCQU1WLGlCQUFpQixDQUFDLElBQUk7OEpBdUtyQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIFRhZ1NlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFJlc291cmNlLCBUYWcsIFVzZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcblxuaW1wb3J0IHsgZm9ya0pvaW4sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBSZXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1wb3N0cy1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVzb3VyY2VzLWh1Yi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbXG4gICAgICAgICcuL3Jlc291cmNlcy1odWIuY29tcG9uZW50LnNjc3MnLFxuICAgICAgICAnLi4vcmVzb3VyY2UtY29tcGFueS1jYXJkL3Jlc291cmNlLWNvbXBhbnktY2FyZC5jb21wb25lbnQuc2NzcydcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VIdWJDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgZGVsYXlUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgdXNlclN1YjogU3Vic2NyaXB0aW9uO1xuXG4gICAgZGF0YSA9IFtdO1xuXG4gICAgcG9zdHM6IFJlc291cmNlW10gPSBbXTtcbiAgICB0YWdzOiBUYWdbXSA9IFtdO1xuXG4gICAgc2VsZWN0ZWRUYWdzID0gW107XG5cbiAgICBjdXJyZW50UGFnZSA9IDE7XG4gICAgcGFnZVNpemUgPSAyMDtcbiAgICBvYmplY3RDb3VudCA9IDA7XG5cbiAgICBzZWFyY2hUZXh0SXRlbXMgPSAnJztcbiAgICBzZWFyY2hJbnB1dCA9IGZhbHNlO1xuXG4gICAgcmVhZGluZ1RpbWU6IG51bWJlcjtcblxuICAgIHRvdGFsUmVjb3JkczogbnVtYmVyO1xuXG4gICAgbG9hZGluZyA9IHRydWU7XG4gICAgbG9hZGVkID0gZmFsc2U7XG5cbiAgICBtYXN0ZXJTdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuICAgIHN1YnNjcmlwdGlvbklkO1xuICAgIHVzZXJMb2dnZWRJbjogYm9vbGVhbjtcbiAgICBpc01hc3RlclN1YnNjcmlwdGlvbjtcblxuICAgIHNjcm9sbExvY2tlZCA9IGZhbHNlO1xuXG4gICAgaWNvbkNsYXNzZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAnZmEtbGlnaHRidWxiJyxcbiAgICAgICAgJ2ZhLXJvY2tldCcsXG4gICAgICAgICdmYS1maWxlLWFsdCcsXG4gICAgICAgICdmYS11c2VycycsXG4gICAgICAgICdmYS12aWRlbycsXG4gICAgICAgICdmYS1wZW5jaWwtYWx0JyxcbiAgICAgICAgJ2ZhLWJvb2stb3BlbicsXG4gICAgICAgICdmYS1jb2dzJ1xuICAgIF07XG4gICAgdXNlcjogVXNlcjtcblxuICAgIGNhbkVkaXRSZXNvdXJjZXNWYWx1ZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VTZXJ2aWNlOiBSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRhZ1NlcnZpY2U6IFRhZ1NlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4kKCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbiA9ICEhcmVzO1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlckxvZ2dlZEluKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSQoJ3Byb2R1Y3QnKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlcyA/IEpTT04ucGFyc2UocmVzKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBkYXRhPy5zdWJzY3JpcHRpb25JZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJTdWIgPSB0aGlzLnVzZXJTZXJ2aWNlLmdldFVzZXJJbmZvKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXIgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbkVkaXRSZXNvdXJjZXNWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFBvc3RzQW5kVGFncygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldFBvc3RzQW5kVGFncygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tYXN0ZXJTdWJzY3JpcHRpb25JZCA9IHRoaXMuYXBwQ29uZmlnLm1hc3Rlcl9zdWJzY3JpcHRpb24uc3Vic2NyaXB0aW9uX2lkO1xuICAgICAgICB0aGlzLnJlYWRpbmdUaW1lID0gMDtcbiAgICB9XG5cbiAgICBnZXRQb3N0c0FuZFRhZ3MoKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMubG9hZGVkID0gZmFsc2U7XG4gICAgICAgIGZvcmtKb2luKHtcbiAgICAgICAgICAgIHJlc1Bvc3RzOiB0aGlzLnJlc291cmNlU2VydmljZS5nZXRQdWJsaWNQb3N0cyhcbiAgICAgICAgICAgICAgICB0aGlzLmdldEVmZmVjdGl2ZVN1YnNjcmlwdGlvbklkKCksXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSxcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VTaXplLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dEl0ZW1zXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgcmVzVGFnczogdGhpcy50YWdTZXJ2aWNlLmdldFRhZ3NCeVR5cGUoXG4gICAgICAgICAgICAgICAgJ3Bvc3RfY2F0ZWdvcmllcycsXG4gICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRFZmZlY3RpdmVTdWJzY3JpcHRpb25JZCgpXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3N0cyA9IHJlcz8ucmVzUG9zdHM/LnBvc3RzO1xuICAgICAgICAgICAgICAgIHRoaXMub2JqZWN0Q291bnQgPSByZXM/LnJlc1Bvc3RzLm9iamVjdF9jb3VudDtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSByZXM/LnJlc1Bvc3RzPy5wb3N0cztcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSByZXM/LnJlc1Bvc3RzPy5wb3N0cy5tYXAocG9zdCA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi5wb3N0LFxuICAgICAgICAgICAgICAgICAgICBleHBhbmRlZFRhZ3M6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gdGhpcy5wb3N0cz8ubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgdGhpcy50YWdzID0gcmVzPy5yZXNUYWdzPy50YWdzPy5maWx0ZXIodGFnID0+IHRhZy52aXNpYmxlX2luX3Jlc291cmNlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWdzID0gdGhpcy50YWdzLm1hcCh0YWcgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGFnXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRvZ2dsZURyb3Bkb3duKGV2ZW50OiBFdmVudCwgcG9zdCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgcG9zdC5zaG93RHJvcGRvd24gPSAhcG9zdC5zaG93RHJvcGRvd247XG4gICAgfVxuXG4gICAgZ2V0UG9zdHMocGFnZTogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyLCBmZXRjaEFsbCA9IGZhbHNlLCBhcHBlbmQgPSBmYWxzZSkge1xuICAgICAgICBpZiAoZmV0Y2hBbGwpIHRoaXMuc2VsZWN0ZWRUYWdzID0gW107XG5cbiAgICAgICAgaWYgKCFhcHBlbmQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmxvYWRlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFnQ2F0ZWdvcnlQYXJhbSA9IHRoaXMuc2VsZWN0ZWRUYWdzLm1hcCh0YWcgPT4gdGFnLnRhZ19jYXRlZ29yeV9pZCkuam9pbignLCcpO1xuXG4gICAgICAgIHRoaXMucmVzb3VyY2VTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0UHVibGljUG9zdHMoXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRFZmZlY3RpdmVTdWJzY3JpcHRpb25JZCgpLFxuICAgICAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICAgICAgYXBwZW5kID8gMTAgOiBwYWdlU2l6ZSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRleHRJdGVtcyxcbiAgICAgICAgICAgICAgICB0YWdDYXRlZ29yeVBhcmFtXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9iamVjdENvdW50ID0gcmVzcG9uc2Uub2JqZWN0X2NvdW50O1xuICAgICAgICAgICAgICAgIHRoaXMucG9zdHMgPSBhcHBlbmQgPyBbLi4udGhpcy5wb3N0cywgLi4ucmVzcG9uc2UucG9zdHNdIDogcmVzcG9uc2UucG9zdHM7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gWy4uLnRoaXMucG9zdHNdO1xuICAgICAgICAgICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gdGhpcy5wb3N0cz8ubGVuZ3RoO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uU2VhcmNoKHNlY29uZHM6IG51bWJlcikge1xuICAgICAgICBsZXQgZGVsYXkgPSAwO1xuICAgICAgICBkZWxheSA9IHNlY29uZHMgKiAxMDAwO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5kZWxheVRpbWVvdXQpO1xuICAgICAgICBjb25zdCBkZWxheVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgICAgICAgICAgdGhpcy5nZXRQb3N0cygxLCB0aGlzLnBhZ2VTaXplKTtcbiAgICAgICAgfSwgZGVsYXkpO1xuXG4gICAgICAgIHRoaXMuZGVsYXlUaW1lb3V0ID0gZGVsYXlUaW1lb3V0O1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9UYWdMaXN0KCk6IHZvaWQge1xuICAgICAgICBIZWxwZXJTZXJ2aWNlLm5hdmlnYXRlVG9UYWdMaXN0KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFtdKVxuICAgIG9uV2luZG93U2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzY3JvbGxQb3NpdGlvbiA9IHdpbmRvdy5zY3JvbGxZICsgd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICBjb25zdCBwYWdlSGVpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodDtcblxuICAgICAgICBjb25zdCBuZWFyQm90dG9tID0gc2Nyb2xsUG9zaXRpb24gPj0gcGFnZUhlaWdodCAtIDEwMDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBuZWFyQm90dG9tICYmXG4gICAgICAgICAgICB0aGlzLnBvc3RzLmxlbmd0aCA8IHRoaXMub2JqZWN0Q291bnQgJiZcbiAgICAgICAgICAgICF0aGlzLmxvYWRpbmcgJiZcbiAgICAgICAgICAgICF0aGlzLnNjcm9sbExvY2tlZFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsTG9ja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgKz0gMTtcblxuICAgICAgICAgICAgdGhpcy5nZXRQb3N0cyh0aGlzLmN1cnJlbnRQYWdlLCB0aGlzLnBhZ2VTaXplLCBmYWxzZSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsTG9ja2VkID0gZmFsc2U7XG4gICAgICAgICAgICB9LCA1MDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNTZWxlY3RlZCh0YWdJZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGFncy5tYXAodGFnID0+IHRhZy5pZCkuaW5jbHVkZXModGFnSWQpO1xuICAgIH1cblxuICAgIHRhZ1Bvc3Qoc2VsZWN0ZWRUYWcpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkVGFncy5maW5kSW5kZXgoXG4gICAgICAgICAgICB0YWcgPT4gdGFnLnRhZ19jYXRlZ29yeV9pZCA9PT0gc2VsZWN0ZWRUYWc/LnRhZ19jYXRlZ29yeV9pZCAmJiB0YWcuaWQgPT09IHNlbGVjdGVkVGFnLmlkXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgdGFnX2NhdGVnb3J5X2lkOiBzZWxlY3RlZFRhZz8udGFnX2NhdGVnb3J5X2lkLFxuICAgICAgICAgICAgICAgIGlkOiBzZWxlY3RlZFRhZy5pZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFncy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIHRoaXMuZ2V0UG9zdHMoMSwgdGhpcy5wYWdlU2l6ZSk7XG4gICAgfVxuXG4gICAgdGhpc1Bvc3RSZWFkaW5nVGltZSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGV4dCkge1xuICAgICAgICAgICAgY29uc3Qgd29yZHNQZXJNaW51dGUgPSAyMDA7XG4gICAgICAgICAgICBjb25zdCBub09mV29yZHMgPSB0ZXh0LnNwbGl0KC9cXHMvZykubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgbWludXRlcyA9IG5vT2ZXb3JkcyAvIHdvcmRzUGVyTWludXRlO1xuICAgICAgICAgICAgY29uc3QgcmVhZFRpbWUgPSBNYXRoLmNlaWwobWludXRlcyk7XG5cbiAgICAgICAgICAgIHJldHVybiBgJHtyZWFkVGltZX0gbWludXRlIHJlYWRgO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVzZXJTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIEhlbHBlciBtZXRob2QgdG8gZ2V0IGVmZmVjdGl2ZSBzdWJzY3JpcHRpb24gSUQgKi9cbiAgICBwcml2YXRlIGdldEVmZmVjdGl2ZVN1YnNjcmlwdGlvbklkKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIZWxwZXJTZXJ2aWNlLmdldEVmZmVjdGl2ZVN1YnNjcmlwdGlvbklkKFxuICAgICAgICAgICAgdGhpcy51c2VyLFxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCxcbiAgICAgICAgICAgIHRoaXMuYXBwQ29uZmlnLm1hc3Rlcl9zdWJzY3JpcHRpb24uc3Vic2NyaXB0aW9uX2lkXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDYW5FZGl0UmVzb3VyY2VzVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnVzZXJMb2dnZWRJbiAmJiB0aGlzLnVzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2FuRWRpdFJlc291cmNlc1ZhbHVlID0gSGVscGVyU2VydmljZS5jYW5FZGl0UmVzb3VyY2VzKFxuICAgICAgICAgICAgICAgIHRoaXMudXNlcixcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbixcbiAgICAgICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jYW5FZGl0UmVzb3VyY2VzVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNhbkVkaXRSZXNvdXJjZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbkVkaXRSZXNvdXJjZXNWYWx1ZTtcbiAgICB9XG59XG4iLCI8cHctcmVzb3VyY2UtaGVhZGVyIFt1c2VyXT1cInVzZXJcIiBbdXNlckxvZ2dlZEluXT1cInVzZXJMb2dnZWRJblwiPjwvcHctcmVzb3VyY2UtaGVhZGVyPlxuPGRpdiBjbGFzcz1cImFsbC1wb3N0cyBweS01XCI+XG5cbiAgPGRpdiBjbGFzcz1cInJvdyBtdC0xIG1iLTQgcHgtMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOFwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIG10LTAgbXQtc20tMyBkLWZsZXhcIj5cbiAgICAgICAgPGkgKm5nSWY9XCJ1c2VyTG9nZ2VkSW4gJiYgdXNlcj8uYXV0aD8uZ3JhbnRlZFsnUGFnZXMuQWRtaW4nXVwiXG4gICAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gY3Vyc29yLXBvaW50ZXIgbXQtMiBtZS0zXCJcbiAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvVGFnTGlzdCgpXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIm5hdmlnYXRlVG9UYWdMaXN0KClcIlxuICAgICAgKGtleWRvd24uc3BhY2UpPVwibmF2aWdhdGVUb1RhZ0xpc3QoKVwiXG4gICAgICB0aXRsZT1cIkVkaXQgTG9nb1wiPjwvaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC13cmFwcGVyIHBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2ggc2VhcmNoLWljb25cIj48L2k+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0SXRlbXNcIiBwSW5wdXRUZXh0IHNpemU9XCI1MFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIHJlc291cmNlcy4uLlwiXG4gICAgICAgIChpbnB1dCk9XCJvblNlYXJjaCgxKVwiXG4gICAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dCB0b3Atc2VhcmNoLWlucHV0XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJyb3cgcmVzb3VyY2Utcm93XCI+XG4gICAgPCEtLSBBbGwgUmVzb3VyY2VzIENhcmQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIGNvbC1zbS02IGNvbC02IG1iLTRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZXNvdXJjZS1jYXJkIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC0zXCJcbiAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiZ2V0UG9zdHMoMSwgMjAsIHRydWUpXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQnOiBzZWxlY3RlZFRhZ3MubGVuZ3RoID09PSAwIH1cIlxuICAgICAgICAgICAoY2xpY2spPVwiZ2V0UG9zdHMoMSwgMjAsIHRydWUpXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtbGF5ZXItZ3JvdXAgcmVzb3VyY2UtaWNvbiBtZS0zXCI+PC9pPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInJlc291cmNlLXRleHRcIj5BbGwgUmVzb3VyY2VzPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIER5bmFtaWMgVGFncyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgY29sLXNtLTYgbWItNCBjb2wtNlwiXG4gICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3NcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgICAgY2xhc3M9XCJyZXNvdXJjZS1jYXJkIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC0zXCJcbiAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwidGFnUG9zdCh0YWcpXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQnOiBpc1NlbGVjdGVkKHRhZy5pZCkgfVwiXG4gICAgICAgICAgIChjbGljayk9XCJ0YWdQb3N0KHRhZylcIj5cbiAgICAgICAgICAgPGkgKm5nSWY9XCJ0YWc/Lmljb25fbmFtZVwiIGNsYXNzPVwiZmFcIiBbbmdDbGFzc109XCJ0YWcuaWNvbl9uYW1lICsgJyByZXNvdXJjZS1pY29uIG1lLTMnXCI+PC9pPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInJlc291cmNlLXRleHRcIj57eyB0YWcubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmcgJiYgIWxvYWRlZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCI+XG4gICAgICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicG9zdHM/Lmxlbmd0aCAmJiAhbG9hZGluZ1wiPlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYmxvZy1saXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNCBtYi01IG1zLTEgbWUtMSBibG9nLWxpc3RpbmdcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwb3N0IG9mIGRhdGFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLXNtLTEyIGNvbC14cy0xMiBteS1hdXRvXCI+XG4gICAgICAgICAgICAgIDxwdy1yZXNvdXJjZS1lZGl0LWNhcmQtbGF6eVxuICAgICAgICAgICAgICBbY2FuRWRpdF09XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIlxuICAgICAgICAgICAgICBbaWRdPVwicG9zdD8uaWRcIlxuICAgICAgICAgICAgICBbcmVzb3VyY2VEYXRhXT1cInBvc3RcIlxuICAgICAgICAgICAgICAodXBkYXRlZCk9XCJnZXRQb3N0cygxLCBwYWdlU2l6ZSlcIj5cbiAgICAgICAgICAgIDwvcHctcmVzb3VyY2UtZWRpdC1jYXJkLWxhenk+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ibG9nLWltYWdlXCIgW3JvdXRlckxpbmtdPVwiWycvcmVzb3VyY2VzL3ZpZXcnLCBwb3N0LnNsdWddXCI+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJwb3N0LnBpY3R1cmU/LnVybFwiXG4gICAgICAgICAgICAgICAgYWx0PVwiUmVzb3VyY2UgdGh1bWJuYWlsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImltZy1mbHVpZFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLXNtLTEyIGNvbC14cy0xMiBweC00IHBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFnLWRpdlwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0aG9yIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItaW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgIDxhIFthdHRyLmRpc2FibGVkXT1cIiF1c2VyTG9nZ2VkSW5cIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9tZW1iZXJzJywgcG9zdD8uYXV0aG9yPy5zbHVnXVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwicG9zdC5hdXRob3I/LmF2YXRhclwiXG4gICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJwb3N0LmF1dGhvcj8uYXZhdGFyWzBdPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkF1dGhvciBwcm9maWxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFwb3N0LmF1dGhvcj8uYXZhdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvYXNzZXRzL2ltZy9pY29ucy9tYWxlLnBuZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgYWx0PVwiRGVmYXVsdCBhdXRob3IgcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkZWZhdWx0LXVzZXItaW1hZ2VcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dGhvci1uYW1lIHBzLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxhIFthdHRyLmRpc2FibGVkXT1cIiF1c2VyTG9nZ2VkSW5cIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9tZW1iZXJzJywgcG9zdD8uYXV0aG9yPy5zbHVnXVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBwb3N0LmF1dGhvci5maXJzdF9uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNyb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cbiAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBwb3N0LnB1Ymxpc2hlZF9hdCB8IGRhdGU6ICdkZC9NTS95eXl5JyB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPi48L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIj57eyB0aGlzUG9zdFJlYWRpbmdUaW1lKHBvc3QuYm9keSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGFyZS1wb3N0XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24gcG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIiAoY2xpY2tPdXRzaWRlKT1cInBvc3Quc2hvd0Ryb3Bkb3duID0gZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRocmVlLWRvdHMtd3JhcHBlclwiICAoa2V5ZG93bi5lbnRlcik9XCJ0b2dnbGVEcm9wZG93bigkZXZlbnQsIHBvc3QpXCIgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCRldmVudCwgcG9zdClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1lbGxpcHNpcy12XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBzaG93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBvc3Quc2hvd0Ryb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cDovL3d3dy5mYWNlYm9vay5jb20vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1zaGFyZVwiPjwvaT4gU2hhcmUgUG9zdFxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGg0IFtyb3V0ZXJMaW5rXT1cIlsnL3Jlc291cmNlcy92aWV3JywgcG9zdC5zbHVnXVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0aXRsZSBteS0zXCI+e3sgcG9zdC50aXRsZSB9fTwvaDQ+XG4gICAgICAgICAgICAgIDxwIFtyb3V0ZXJMaW5rXT1cIlsnL3Jlc291cmNlcy92aWV3JywgcG9zdC5zbHVnXVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJib2R5IG1iLTMgcGItMyBwb3N0LWJvZHktdGV4dFwiPlxuICAgICAgICAgICAgICAgIHt7IHBvc3QuYm9keSB8IHJlbW92ZUh0bWw6ICdxdWlsbCcgfCB0ZXh0VHJ1bmNhdGU6IDIwMCB9fVxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBtdC1hdXRvIG1iLTNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicG9zdD8udGFncz8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWcgb2YgcG9zdD8udGFncz8uc2xpY2UoMCwgNClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBtLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwRHluYW1pY0JhZGdlXT1cInsgaXRlbXNBcnJheTogcG9zdD8udGFncywgaXRlbTogdGFnIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JCeU5hbWVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhTmFtZV09XCJ0YWcubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYmx1ZS1ncmV5XCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgdGFnLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwb3N0LmV4cGFuZGVkVGFnc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWcgb2YgcG9zdD8udGFncz8uc2xpY2UoNClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIG0tMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcER5bmFtaWNCYWRnZV09XCJ7IGl0ZW1zQXJyYXk6IHBvc3Q/LnRhZ3MsIGl0ZW06IHRhZyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JCeU5hbWVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFOYW1lXT1cInRhZy5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImJsdWUtZ3JleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdGFnLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicG9zdD8udGFncz8ubGVuZ3RoID4gNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicG9zdC5leHBhbmRlZFRhZ3MgPSAhcG9zdC5leHBhbmRlZFRhZ3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicG9zdC5leHBhbmRlZFRhZ3MgPSAhcG9zdC5leHBhbmRlZFRhZ3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdy1ib2xkIGN1cnNvci1wb2ludGVyIG0tMSBleHBhbmQtdGFnc1wiPi4uLjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvZy12aWV3IHB5LTMgYmxvZy1saXN0LXdyaXRlLXZpZXdcIj5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgIDxsaT57eyBwb3N0LnZpZXcgIT09IG51bGwgPyBwb3N0LnZpZXcgOiAnMCcgfX0gVmlldzwvbGk+XG4gICAgICAgICAgICAgICAgICA8bGk+PGEgW3JvdXRlckxpbmtdPVwiWycvcmVzb3VyY2VzL3ZpZXcnLCBwb3N0LnNsdWddXCI+V3JpdGUgQ29tbWVudDwvYT48L2xpPlxuICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9yZXNvdXJjZXMvdmlldycsIHBvc3Quc2x1Z11cIiBhcmlhLWxhYmVsPVwiQmxvZ1wiPjxpIGNsYXNzPVwiZmFyIGZhLWhlYXJ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwb3N0cz8ubGVuZ3RoICYmIGxvYWRlZFwiPlxuICAgIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIG1lc3NhZ2U9XCJXZSBjb3VsZG4ndCBmaW5kIGFueSByZXNvdXJjZXMuXCIgPiA8L3B3LW5vLWRhdGE+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "@posiwise/directives";
|
|
5
|
-
import * as i3 from "../resource-edit-card-lazy/resource-edit-card-lazy.component";
|
|
6
|
-
import * as i4 from "@posiwise/shared-components";
|
|
7
|
-
import * as i5 from "@jsverse/transloco";
|
|
8
|
-
export class TestimonialCardListComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.editPost = new EventEmitter();
|
|
11
|
-
this.posts = [];
|
|
12
|
-
this.postHeader = '';
|
|
13
|
-
this.canEdit = false;
|
|
14
|
-
}
|
|
15
|
-
ngOnChanges(changes) {
|
|
16
|
-
if (changes.posts && this.posts?.length) {
|
|
17
|
-
setTimeout(() => this.initSwiper(), 0); // Wait for DOM to render
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
async initSwiper() {
|
|
21
|
-
// Dynamically import Swiper only when needed (lazy-load ~150KB library)
|
|
22
|
-
const { default: Swiper, Navigation, Pagination } = await import('swiper');
|
|
23
|
-
this.swiper = new Swiper('.swiper-container', {
|
|
24
|
-
modules: [Navigation, Pagination],
|
|
25
|
-
slidesPerView: 1,
|
|
26
|
-
spaceBetween: 24,
|
|
27
|
-
centeredSlides: true,
|
|
28
|
-
touchRatio: 1,
|
|
29
|
-
touchAngle: 45,
|
|
30
|
-
grabCursor: true,
|
|
31
|
-
navigation: {
|
|
32
|
-
nextEl: '.swiper-button-next',
|
|
33
|
-
prevEl: '.swiper-button-prev'
|
|
34
|
-
},
|
|
35
|
-
pagination: {
|
|
36
|
-
el: '.swiper-pagination',
|
|
37
|
-
clickable: true
|
|
38
|
-
},
|
|
39
|
-
breakpoints: {
|
|
40
|
-
425: {
|
|
41
|
-
slidesPerView: 1.05,
|
|
42
|
-
centeredSlides: true
|
|
43
|
-
},
|
|
44
|
-
470: {
|
|
45
|
-
slidesPerView: 1.25,
|
|
46
|
-
centeredSlides: true
|
|
47
|
-
},
|
|
48
|
-
564: {
|
|
49
|
-
slidesPerView: 1.5,
|
|
50
|
-
centeredSlides: true
|
|
51
|
-
},
|
|
52
|
-
640: {
|
|
53
|
-
slidesPerView: 1.5,
|
|
54
|
-
centeredSlides: true
|
|
55
|
-
},
|
|
56
|
-
768: {
|
|
57
|
-
slidesPerView: 1.5,
|
|
58
|
-
centeredSlides: true
|
|
59
|
-
},
|
|
60
|
-
1024: {
|
|
61
|
-
slidesPerView: 2, // Allow room between cards
|
|
62
|
-
centeredSlides: false
|
|
63
|
-
},
|
|
64
|
-
1200: {
|
|
65
|
-
slidesPerView: 3,
|
|
66
|
-
centeredSlides: false
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TestimonialCardListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: TestimonialCardListComponent, selector: "pw-testimonial-card", inputs: { posts: "posts", postHeader: "postHeader", canEdit: "canEdit" }, outputs: { editPost: "editPost" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"resource-section section-outer bg-white\">\n <div class=\"container\">\n <div *ngIf=\"postHeader\" class=\"d-flex justify-content-between align-items-center flex-wrap mb-3\">\n <h2 class=\"section-heading\">{{postHeader}}</h2>\n </div>\n <div *ngIf=\"posts.length === 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n<div [hidden]=\"posts.length === 0\">\n <div class=\"swiper-container\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" *ngFor=\"let post of posts\">\n <div class=\"testimonial-box\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEdit\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"editPost.emit(1, 100)\">\n </pw-resource-edit-card-lazy>\n <div class=\"stars mb-5\">\u2605\u2605\u2605\u2605\u2605</div>\n <div class=\"testimonial-content\">\n <div class=\"ql-container ql-snow ql-res\">\n <div class=\"ql-editor\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n </div>\n\n <!-- THIS STAYS AT BOTTOM -->\n <div class=\"avatar-container\">\n <img\n *ngIf=\"!post.rectangular_picture.url.includes('default-photo.jpg') \" [src]=\"post.rectangular_picture.url\"\n alt=\"Logo\"\n class=\"testimonial-logo mt-4\"\n />\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"swiper-pagination\"></div>\n <div class=\"swiper-button-prev\"></div>\n <div class=\"swiper-button-next\"></div>\n </div>\n</div>\n </div>\n</section>", styles: [".resource-section{box-shadow:0 4px 32px -14px #40576d4d!important;position:relative}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 767px){.container{padding:0 1rem!important}}.ql-res{resize:none!important;border-width:0}.swiper-container{padding:20px;position:relative;overflow:hidden}@media (width >= 768px){.swiper-container{padding:20px 40px}}.resource-card{background:#fff;border-radius:8px;box-shadow:0 0 20px #0000001a;padding:1.5rem;height:100%;display:flex;flex-direction:column;margin:0 auto;width:100%;max-width:350px}.resource-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem}.resource-image{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px}.read-now-btn{margin-top:auto;display:inline-flex;align-items:center;gap:.5rem;color:#000;text-decoration:none;font-weight:500}.read-now-btn .arrow{transition:transform .2s ease}.read-now-btn:hover .arrow{transform:translate(5px)}.swiper-button-prev,.swiper-button-next{color:#000}.swiper-button-prev:after,.swiper-button-next:after{font-size:24px}@media (width <= 767px){.swiper-button-prev,.swiper-button-next{display:none}}.swiper-pagination{position:relative;margin-top:20px}.swiper-pagination-bullet{background:#000;opacity:.5}.swiper-pagination-bullet-active{opacity:1}.swiper-wrapper{display:flex;align-items:stretch}.swiper-slide{display:flex;align-items:stretch;height:auto}.testimonial-box{display:flex;flex-direction:column;justify-content:space-between;background:#fff;border-radius:20px;padding:2.5rem 1.5rem;box-shadow:0 0 20px #0000001a;text-align:center;width:338px;font-size:1.1rem;height:100%;min-height:100%}.testimonial-box span{margin:0;font-size:22px}.testimonial-box .avatar-container{margin-top:auto}.testimonial-box .testimonial-logo{width:100%!important;height:auto!important;max-width:150px!important;object-fit:contain;align-self:center}.testimonial-box .stars{font-size:2.2rem;color:#f6b300;margin-bottom:2.5rem}.centaris-text{margin-bottom:3rem!important}@media (width <= 768px){::ng-deep .swiper-wrapper{gap:1rem!important}.testimonial-box{width:300px!important}}\n", ".video-row{gap:5.5rem!important;margin-top:3rem!important}::ng-deep .resource-section{box-shadow:0 4px 32px -14px #40576d4d!important}.release-icon{height:auto;margin:0 11px 1.9rem;display:block;align-self:center}@media (width >= 768px) and (width <= 1200px){.resource-title{font-size:1.4rem!important}}textarea{font-size:1.4rem!important}@media (width <= 768px){.resource-title{font-size:1.2rem!important}.container{padding:1rem!important}}@media (width >= 768px) and (width <= 1200px){.container{padding:1rem 3rem!important}}@media (width <= 1200px){.resource-vault-section .vault-heading{font-size:3.5rem}.resource-vault-section .vault-description{margin-top:1.35rem}.resource-vault-section .vault-card{width:100%!important}.resource-vault-section .vault-btn{margin-left:0!important;width:100%!important}}@media (width >= 991px){::ng-deep .trial-meeting-section:before{top:600px!important}::ng-deep .dashboard{margin-bottom:1rem!important}section.bg-white.text-center.extra-top-padding{position:relative;overflow:hidden}section.bg-white.text-center.extra-top-padding .banner-header{margin-bottom:4rem!important}section.bg-white.text-center.extra-top-padding:before,section.bg-white.text-center.extra-top-padding:after{content:\"\";position:absolute;background:url(/assets/img/logos/background-banner.png) no-repeat;background-size:contain;width:160px;height:450px;z-index:0;opacity:.8}section.bg-white.text-center.extra-top-padding:before{top:500px;left:0}section.bg-white.text-center.extra-top-padding:after{top:90px;right:0}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 1200px){.resource-card{width:100%!important}.release-notes-section{padding:7rem 0!important}}@media (width >= 768px) and (width <= 1200px){.resource-hero-section{padding:0 6rem!important}.cards-row{justify-content:center}}.resource-body-section{background-color:#fff}.resource-body-section .container{padding:0 1.5rem;padding-bottom:4rem!important;padding-top:7rem!important;max-width:850px;margin:0 auto;text-align:left}.user-not-logged-in{background:#f7f7f7;border:1px solid rgb(238,238,238);font-weight:400}.user-not-logged-in a{color:var(--first)!important;text-decoration:none;font-weight:500}.resource-book-section{background:#fff;padding-top:7rem;padding-bottom:0}.resource-book-section .container{max-width:850px;margin:0 auto;padding:0 2rem!important;text-align:left}.resource-book-section .resource-contact{line-height:1.6;font-size:1.5rem}.resource-book-section .resource-contact a{text-decoration:underline;color:#000;margin:0 .2rem}.resource-book-section .resource-contact a:hover{color:var(--first)!important}.resource-offer-section{background:#fff;padding-top:2rem}.resource-offer-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.resource-offer-section .resource-title{font-size:2rem;font-weight:700;color:#000;margin-bottom:.25em!important}.resource-offer-section .resource-title strong{font-weight:700}.resource-offer-section .resource-description{font-size:1.5rem;line-height:1.8rem;color:#333;margin-bottom:1.5rem}.resource-offer-section .resource-offer-list{font-size:1.1rem;line-height:1.5rem;margin-bottom:2.5rem;margin-top:2.5rem}.resource-offer-section .resource-offer-list p{font-size:1.5rem;margin:.5rem 0;font-weight:400}.resource-offer-section .resource-signup{margin-bottom:2.5rem}.resource-offer-section .resource-signup .signup-link{font-size:1.5rem;font-weight:400;text-decoration:underline;color:#000}@media (width <= 768px){.resource-offer-section .resource-book-section{padding-top:2rem!important}.resource-offer-section .container{text-align:left}.resource-offer-section .resource-title{font-size:1.5rem}.resource-offer-section .resource-description,.resource-offer-section .resource-offer-list,.resource-offer-section .resource-signup,.resource-offer-section .signup-link,.resource-offer-section .resource-contact,.resource-offer-section .resource-offer-list p{font-size:1.2rem!important}}.resource-offer-intro{font-size:1.5rem;font-weight:400}.outer-section-fadeout{position:absolute;top:139rem;height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.body-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}@media (width <= 768px){.resource-book-section{padding-top:2rem!important}.resource-contact{font-size:1.2rem!important}}::ng-deep .body-quill{border-width:0!important;max-width:900px;display:block;margin-left:auto;margin-right:auto}::ng-deep .p-inputtextarea{border-radius:.5rem;border-color:#ced4da;font-size:1rem}.card{background-color:#fff;border-radius:12px}.comment-row{gap:2rem;padding-bottom:5rem;max-width:1000px;display:block;margin-left:auto;margin-right:auto}.comment-label{font-size:1.5rem!important}.response-row{max-width:1000px;display:block;margin-left:auto;margin-right:auto;margin-top:3rem!important}\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: i2.LazyImgDirective, selector: "img" }, { kind: "component", type: i3.ResourceEditCardLazyComponent, selector: "pw-resource-edit-card-lazy", inputs: ["id", "resourceData", "canEdit"], outputs: ["updated"] }, { kind: "component", type: i4.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "pipe", type: i5.TranslocoPipe, name: "transloco" }] }); }
|
|
73
|
-
}
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TestimonialCardListComponent, decorators: [{
|
|
75
|
-
type: Component,
|
|
76
|
-
args: [{ selector: 'pw-testimonial-card', template: "<section class=\"resource-section section-outer bg-white\">\n <div class=\"container\">\n <div *ngIf=\"postHeader\" class=\"d-flex justify-content-between align-items-center flex-wrap mb-3\">\n <h2 class=\"section-heading\">{{postHeader}}</h2>\n </div>\n <div *ngIf=\"posts.length === 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n<div [hidden]=\"posts.length === 0\">\n <div class=\"swiper-container\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" *ngFor=\"let post of posts\">\n <div class=\"testimonial-box\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEdit\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"editPost.emit(1, 100)\">\n </pw-resource-edit-card-lazy>\n <div class=\"stars mb-5\">\u2605\u2605\u2605\u2605\u2605</div>\n <div class=\"testimonial-content\">\n <div class=\"ql-container ql-snow ql-res\">\n <div class=\"ql-editor\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n </div>\n\n <!-- THIS STAYS AT BOTTOM -->\n <div class=\"avatar-container\">\n <img\n *ngIf=\"!post.rectangular_picture.url.includes('default-photo.jpg') \" [src]=\"post.rectangular_picture.url\"\n alt=\"Logo\"\n class=\"testimonial-logo mt-4\"\n />\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"swiper-pagination\"></div>\n <div class=\"swiper-button-prev\"></div>\n <div class=\"swiper-button-next\"></div>\n </div>\n</div>\n </div>\n</section>", styles: [".resource-section{box-shadow:0 4px 32px -14px #40576d4d!important;position:relative}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 767px){.container{padding:0 1rem!important}}.ql-res{resize:none!important;border-width:0}.swiper-container{padding:20px;position:relative;overflow:hidden}@media (width >= 768px){.swiper-container{padding:20px 40px}}.resource-card{background:#fff;border-radius:8px;box-shadow:0 0 20px #0000001a;padding:1.5rem;height:100%;display:flex;flex-direction:column;margin:0 auto;width:100%;max-width:350px}.resource-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem}.resource-image{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px}.read-now-btn{margin-top:auto;display:inline-flex;align-items:center;gap:.5rem;color:#000;text-decoration:none;font-weight:500}.read-now-btn .arrow{transition:transform .2s ease}.read-now-btn:hover .arrow{transform:translate(5px)}.swiper-button-prev,.swiper-button-next{color:#000}.swiper-button-prev:after,.swiper-button-next:after{font-size:24px}@media (width <= 767px){.swiper-button-prev,.swiper-button-next{display:none}}.swiper-pagination{position:relative;margin-top:20px}.swiper-pagination-bullet{background:#000;opacity:.5}.swiper-pagination-bullet-active{opacity:1}.swiper-wrapper{display:flex;align-items:stretch}.swiper-slide{display:flex;align-items:stretch;height:auto}.testimonial-box{display:flex;flex-direction:column;justify-content:space-between;background:#fff;border-radius:20px;padding:2.5rem 1.5rem;box-shadow:0 0 20px #0000001a;text-align:center;width:338px;font-size:1.1rem;height:100%;min-height:100%}.testimonial-box span{margin:0;font-size:22px}.testimonial-box .avatar-container{margin-top:auto}.testimonial-box .testimonial-logo{width:100%!important;height:auto!important;max-width:150px!important;object-fit:contain;align-self:center}.testimonial-box .stars{font-size:2.2rem;color:#f6b300;margin-bottom:2.5rem}.centaris-text{margin-bottom:3rem!important}@media (width <= 768px){::ng-deep .swiper-wrapper{gap:1rem!important}.testimonial-box{width:300px!important}}\n", ".video-row{gap:5.5rem!important;margin-top:3rem!important}::ng-deep .resource-section{box-shadow:0 4px 32px -14px #40576d4d!important}.release-icon{height:auto;margin:0 11px 1.9rem;display:block;align-self:center}@media (width >= 768px) and (width <= 1200px){.resource-title{font-size:1.4rem!important}}textarea{font-size:1.4rem!important}@media (width <= 768px){.resource-title{font-size:1.2rem!important}.container{padding:1rem!important}}@media (width >= 768px) and (width <= 1200px){.container{padding:1rem 3rem!important}}@media (width <= 1200px){.resource-vault-section .vault-heading{font-size:3.5rem}.resource-vault-section .vault-description{margin-top:1.35rem}.resource-vault-section .vault-card{width:100%!important}.resource-vault-section .vault-btn{margin-left:0!important;width:100%!important}}@media (width >= 991px){::ng-deep .trial-meeting-section:before{top:600px!important}::ng-deep .dashboard{margin-bottom:1rem!important}section.bg-white.text-center.extra-top-padding{position:relative;overflow:hidden}section.bg-white.text-center.extra-top-padding .banner-header{margin-bottom:4rem!important}section.bg-white.text-center.extra-top-padding:before,section.bg-white.text-center.extra-top-padding:after{content:\"\";position:absolute;background:url(/assets/img/logos/background-banner.png) no-repeat;background-size:contain;width:160px;height:450px;z-index:0;opacity:.8}section.bg-white.text-center.extra-top-padding:before{top:500px;left:0}section.bg-white.text-center.extra-top-padding:after{top:90px;right:0}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 1200px){.resource-card{width:100%!important}.release-notes-section{padding:7rem 0!important}}@media (width >= 768px) and (width <= 1200px){.resource-hero-section{padding:0 6rem!important}.cards-row{justify-content:center}}.resource-body-section{background-color:#fff}.resource-body-section .container{padding:0 1.5rem;padding-bottom:4rem!important;padding-top:7rem!important;max-width:850px;margin:0 auto;text-align:left}.user-not-logged-in{background:#f7f7f7;border:1px solid rgb(238,238,238);font-weight:400}.user-not-logged-in a{color:var(--first)!important;text-decoration:none;font-weight:500}.resource-book-section{background:#fff;padding-top:7rem;padding-bottom:0}.resource-book-section .container{max-width:850px;margin:0 auto;padding:0 2rem!important;text-align:left}.resource-book-section .resource-contact{line-height:1.6;font-size:1.5rem}.resource-book-section .resource-contact a{text-decoration:underline;color:#000;margin:0 .2rem}.resource-book-section .resource-contact a:hover{color:var(--first)!important}.resource-offer-section{background:#fff;padding-top:2rem}.resource-offer-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.resource-offer-section .resource-title{font-size:2rem;font-weight:700;color:#000;margin-bottom:.25em!important}.resource-offer-section .resource-title strong{font-weight:700}.resource-offer-section .resource-description{font-size:1.5rem;line-height:1.8rem;color:#333;margin-bottom:1.5rem}.resource-offer-section .resource-offer-list{font-size:1.1rem;line-height:1.5rem;margin-bottom:2.5rem;margin-top:2.5rem}.resource-offer-section .resource-offer-list p{font-size:1.5rem;margin:.5rem 0;font-weight:400}.resource-offer-section .resource-signup{margin-bottom:2.5rem}.resource-offer-section .resource-signup .signup-link{font-size:1.5rem;font-weight:400;text-decoration:underline;color:#000}@media (width <= 768px){.resource-offer-section .resource-book-section{padding-top:2rem!important}.resource-offer-section .container{text-align:left}.resource-offer-section .resource-title{font-size:1.5rem}.resource-offer-section .resource-description,.resource-offer-section .resource-offer-list,.resource-offer-section .resource-signup,.resource-offer-section .signup-link,.resource-offer-section .resource-contact,.resource-offer-section .resource-offer-list p{font-size:1.2rem!important}}.resource-offer-intro{font-size:1.5rem;font-weight:400}.outer-section-fadeout{position:absolute;top:139rem;height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.body-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}@media (width <= 768px){.resource-book-section{padding-top:2rem!important}.resource-contact{font-size:1.2rem!important}}::ng-deep .body-quill{border-width:0!important;max-width:900px;display:block;margin-left:auto;margin-right:auto}::ng-deep .p-inputtextarea{border-radius:.5rem;border-color:#ced4da;font-size:1rem}.card{background-color:#fff;border-radius:12px}.comment-row{gap:2rem;padding-bottom:5rem;max-width:1000px;display:block;margin-left:auto;margin-right:auto}.comment-label{font-size:1.5rem!important}.response-row{max-width:1000px;display:block;margin-left:auto;margin-right:auto;margin-top:3rem!important}\n"] }]
|
|
77
|
-
}], propDecorators: { editPost: [{
|
|
78
|
-
type: Output
|
|
79
|
-
}], posts: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}], postHeader: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}], canEdit: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}] } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGltb25pYWwtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Rlc3RpbW9uaWFsLWNhcmQvdGVzdGltb25pYWwtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Rlc3RpbW9uaWFsLWNhcmQvdGVzdGltb25pYWwtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBWWxGLE1BQU0sT0FBTyw0QkFBNEI7SUFSekM7UUFTYyxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFckQsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUN2QixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxLQUFLLENBQUM7S0E2RDVCO0lBMURHLFdBQVcsQ0FBQyxPQUFPO1FBQ2YsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDdEMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtRQUNyRSxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxVQUFVO1FBQ3BCLHdFQUF3RTtRQUN4RSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRTtZQUMxQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQ2pDLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFVBQVUsRUFBRSxDQUFDO1lBQ2IsVUFBVSxFQUFFLEVBQUU7WUFDZCxVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLHFCQUFxQjtnQkFDN0IsTUFBTSxFQUFFLHFCQUFxQjthQUNoQztZQUNELFVBQVUsRUFBRTtnQkFDUixFQUFFLEVBQUUsb0JBQW9CO2dCQUN4QixTQUFTLEVBQUUsSUFBSTthQUNsQjtZQUNELFdBQVcsRUFBRTtnQkFDVCxHQUFHLEVBQUU7b0JBQ0QsYUFBYSxFQUFFLElBQUk7b0JBQ25CLGNBQWMsRUFBRSxJQUFJO2lCQUN2QjtnQkFDRCxHQUFHLEVBQUU7b0JBQ0QsYUFBYSxFQUFFLElBQUk7b0JBQ25CLGNBQWMsRUFBRSxJQUFJO2lCQUN2QjtnQkFDRCxHQUFHLEVBQUU7b0JBQ0QsYUFBYSxFQUFFLEdBQUc7b0JBQ2xCLGNBQWMsRUFBRSxJQUFJO2lCQUN2QjtnQkFDRCxHQUFHLEVBQUU7b0JBQ0QsYUFBYSxFQUFFLEdBQUc7b0JBQ2xCLGNBQWMsRUFBRSxJQUFJO2lCQUN2QjtnQkFDRCxHQUFHLEVBQUU7b0JBQ0QsYUFBYSxFQUFFLEdBQUc7b0JBQ2xCLGNBQWMsRUFBRSxJQUFJO2lCQUN2QjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0YsYUFBYSxFQUFFLENBQUMsRUFBRSwyQkFBMkI7b0JBQzdDLGNBQWMsRUFBRSxLQUFLO2lCQUN4QjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0YsYUFBYSxFQUFFLENBQUM7b0JBQ2hCLGNBQWMsRUFBRSxLQUFLO2lCQUN4QjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FqRVEsNEJBQTRCO21HQUE1Qiw0QkFBNEIsNkxDWnpDLHVzREE4Q1U7OzRGRGxDRyw0QkFBNEI7a0JBUnhDLFNBQVM7K0JBQ0kscUJBQXFCOzhCQVFyQixRQUFRO3NCQUFqQixNQUFNO2dCQUVFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctdGVzdGltb25pYWwtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rlc3RpbW9uaWFsLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogW1xuICAgICAgICAnLi90ZXN0aW1vbmlhbC1jYXJkLmNvbXBvbmVudC5zY3NzJyxcbiAgICAgICAgJy4uL3Jlc291cmNlLXBvc3QvcmVsYXRlZC1yZXNvdXJjZXMvcmVsYXRlZC1yZXNvdXJjZXMuY29tcG9uZW50LnNjc3MnXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZXN0aW1vbmlhbENhcmRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBAT3V0cHV0KCkgZWRpdFBvc3Q6IEV2ZW50RW1pdHRlcjxvYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQElucHV0KCkgcG9zdHM6IFJlc291cmNlW10gPSBbXTtcbiAgICBASW5wdXQoKSBwb3N0SGVhZGVyID0gJyc7XG4gICAgQElucHV0KCkgY2FuRWRpdCA9IGZhbHNlO1xuICAgIHN3aXBlcjtcblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMucG9zdHMgJiYgdGhpcy5wb3N0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW5pdFN3aXBlcigpLCAwKTsgLy8gV2FpdCBmb3IgRE9NIHRvIHJlbmRlclxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBpbml0U3dpcGVyKCkge1xuICAgICAgICAvLyBEeW5hbWljYWxseSBpbXBvcnQgU3dpcGVyIG9ubHkgd2hlbiBuZWVkZWQgKGxhenktbG9hZCB+MTUwS0IgbGlicmFyeSlcbiAgICAgICAgY29uc3QgeyBkZWZhdWx0OiBTd2lwZXIsIE5hdmlnYXRpb24sIFBhZ2luYXRpb24gfSA9IGF3YWl0IGltcG9ydCgnc3dpcGVyJyk7XG5cbiAgICAgICAgdGhpcy5zd2lwZXIgPSBuZXcgU3dpcGVyKCcuc3dpcGVyLWNvbnRhaW5lcicsIHtcbiAgICAgICAgICAgIG1vZHVsZXM6IFtOYXZpZ2F0aW9uLCBQYWdpbmF0aW9uXSxcbiAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDEsXG4gICAgICAgICAgICBzcGFjZUJldHdlZW46IDI0LFxuICAgICAgICAgICAgY2VudGVyZWRTbGlkZXM6IHRydWUsXG4gICAgICAgICAgICB0b3VjaFJhdGlvOiAxLFxuICAgICAgICAgICAgdG91Y2hBbmdsZTogNDUsXG4gICAgICAgICAgICBncmFiQ3Vyc29yOiB0cnVlLFxuICAgICAgICAgICAgbmF2aWdhdGlvbjoge1xuICAgICAgICAgICAgICAgIG5leHRFbDogJy5zd2lwZXItYnV0dG9uLW5leHQnLFxuICAgICAgICAgICAgICAgIHByZXZFbDogJy5zd2lwZXItYnV0dG9uLXByZXYnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICAgICAgICAgIGVsOiAnLnN3aXBlci1wYWdpbmF0aW9uJyxcbiAgICAgICAgICAgICAgICBjbGlja2FibGU6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBicmVha3BvaW50czoge1xuICAgICAgICAgICAgICAgIDQyNToge1xuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLjA1LFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXJlZFNsaWRlczogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgNDcwOiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDEuMjUsXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlcmVkU2xpZGVzOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICA1NjQ6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMS41LFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXJlZFNsaWRlczogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgNjQwOiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDEuNSxcbiAgICAgICAgICAgICAgICAgICAgY2VudGVyZWRTbGlkZXM6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIDc2ODoge1xuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLjUsXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlcmVkU2xpZGVzOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAxMDI0OiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDIsIC8vIEFsbG93IHJvb20gYmV0d2VlbiBjYXJkc1xuICAgICAgICAgICAgICAgICAgICBjZW50ZXJlZFNsaWRlczogZmFsc2VcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIDEyMDA6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMyxcbiAgICAgICAgICAgICAgICAgICAgY2VudGVyZWRTbGlkZXM6IGZhbHNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cInJlc291cmNlLXNlY3Rpb24gc2VjdGlvbi1vdXRlciBiZy13aGl0ZVwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgPGRpdiAqbmdJZj1cInBvc3RIZWFkZXJcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIG1iLTNcIj5cbiAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24taGVhZGluZ1wiPnt7cG9zdEhlYWRlcn19PC9oMj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwicG9zdHMubGVuZ3RoID09PSAwXCI+XG4gICAgICA8cHctbm8tZGF0YSBbd2l0aEltYWdlXT1cInRydWVcIiBbbWVzc2FnZV09XCInUmVzb3VyY2UuTm9EYXRhTWVzc2FnZScgfCB0cmFuc2xvY29cIi8+XG4gICAgPC9kaXY+XG48ZGl2IFtoaWRkZW5dPVwicG9zdHMubGVuZ3RoID09PSAwXCI+XG4gIDxkaXYgY2xhc3M9XCJzd2lwZXItY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInN3aXBlci13cmFwcGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLXNsaWRlXCIgKm5nRm9yPVwibGV0IHBvc3Qgb2YgcG9zdHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRlc3RpbW9uaWFsLWJveFwiPlxuICAgICAgICAgIDxwdy1yZXNvdXJjZS1lZGl0LWNhcmQtbGF6eVxuICAgICAgICAgIFtjYW5FZGl0XT1cImNhbkVkaXRcIlxuICAgICAgICAgIFtpZF09XCJwb3N0LmlkXCJcbiAgICAgICAgICBbcmVzb3VyY2VEYXRhXT1cInBvc3RcIlxuICAgICAgICAgICh1cGRhdGVkKT1cImVkaXRQb3N0LmVtaXQoMSwgMTAwKVwiPlxuICAgICAgICAgIDwvcHctcmVzb3VyY2UtZWRpdC1jYXJkLWxhenk+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXJzIG1iLTVcIj7imIXimIXimIXimIXimIU8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVzdGltb25pYWwtY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFsLWNvbnRhaW5lciBxbC1zbm93IHFsLXJlc1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicWwtZWRpdG9yXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInBvc3Q/LmJvZHlcIj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gVEhJUyBTVEFZUyBBVCBCT1RUT00gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgKm5nSWY9XCIhcG9zdC5yZWN0YW5ndWxhcl9waWN0dXJlLnVybC5pbmNsdWRlcygnZGVmYXVsdC1waG90by5qcGcnKSBcIiBbc3JjXT1cInBvc3QucmVjdGFuZ3VsYXJfcGljdHVyZS51cmxcIlxuICAgICAgICAgICAgICBhbHQ9XCJMb2dvXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0aW1vbmlhbC1sb2dvIG10LTRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzd2lwZXItcGFnaW5hdGlvblwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzd2lwZXItYnV0dG9uLXByZXZcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLWJ1dHRvbi1uZXh0XCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPiJdfQ==
|