@posiwise/resource-module 0.0.151 → 0.0.153
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/esm2022/index.mjs +4 -1
- package/esm2022/lib/public/components/reslease-note-card/release-note-card.component.mjs +5 -6
- package/esm2022/lib/public/components/resource-blogs/resource-blog.component.mjs +1 -1
- package/esm2022/lib/public/components/resource-case-studies/resource-case-studies.component.mjs +3 -3
- package/esm2022/lib/public/components/resource-contact-us/resource-contact-us.component.mjs +4 -2
- package/esm2022/lib/public/components/resource-header/resource-header-wrapper.module.mjs +61 -0
- package/esm2022/lib/public/components/resource-header/resource-header.component.mjs +240 -0
- package/esm2022/lib/public/components/resource-header/resource-header.module.mjs +19 -0
- package/esm2022/lib/public/components/resource-integration/resource-integration.component.mjs +5 -4
- package/esm2022/lib/public/components/resource-post/resource-post.component.mjs +1 -1
- package/esm2022/lib/public/components/resource-release-notes/resource-release-notes.component.mjs +1 -1
- package/esm2022/lib/public/components/resource-videos/resource-videos.component.mjs +1 -1
- package/esm2022/lib/public/components/resource-webinars/resource-webinars.component.mjs +3 -3
- package/esm2022/lib/public/components/resources/resources.component.mjs +8 -7
- package/esm2022/lib/public/components/resources-hub/resources-hub.component.mjs +4 -3
- package/esm2022/lib/public/components/white-papers/white-papers.component.mjs +1 -1
- package/esm2022/lib/public/modules/root/resource-root-shared.module.mjs +14 -7
- package/esm2022/lib/public/shared/resource-shared.module.mjs +14 -7
- package/fesm2022/{posiwise-resource-module-base-top-banner.component-DFT3ZpJE.mjs → posiwise-resource-module-base-top-banner.component-B0CjDMZk.mjs} +2 -2
- package/fesm2022/{posiwise-resource-module-base-top-banner.component-DFT3ZpJE.mjs.map → posiwise-resource-module-base-top-banner.component-B0CjDMZk.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-posiwise-resource-module-D953ymF3.mjs → posiwise-resource-module-posiwise-resource-module-DgYZyzRe.mjs} +317 -22
- package/fesm2022/posiwise-resource-module-posiwise-resource-module-DgYZyzRe.mjs.map +1 -0
- package/fesm2022/{posiwise-resource-module-resource-blogs.module-Dpg-VGXf.mjs → posiwise-resource-module-resource-blogs.module-CLAQxsFU.mjs} +5 -5
- package/fesm2022/{posiwise-resource-module-resource-blogs.module-Dpg-VGXf.mjs.map → posiwise-resource-module-resource-blogs.module-CLAQxsFU.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-case-studies.module-Bxfa0c61.mjs → posiwise-resource-module-resource-case-studies.module-vYWWrG4q.mjs} +4 -4
- package/fesm2022/{posiwise-resource-module-resource-case-studies.module-Bxfa0c61.mjs.map → posiwise-resource-module-resource-case-studies.module-vYWWrG4q.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-events.module-CNKoXu2J.mjs → posiwise-resource-module-resource-events.module-6_Zl1MJg.mjs} +3 -3
- package/fesm2022/{posiwise-resource-module-resource-events.module-CNKoXu2J.mjs.map → posiwise-resource-module-resource-events.module-6_Zl1MJg.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-hub.module-ggk9jRt9.mjs → posiwise-resource-module-resource-hub.module-C4jSDvnR.mjs} +4 -4
- package/fesm2022/{posiwise-resource-module-resource-hub.module-ggk9jRt9.mjs.map → posiwise-resource-module-resource-hub.module-C4jSDvnR.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-integrations.module-vGdvpS64.mjs → posiwise-resource-module-resource-integrations.module-CsMRU2OT.mjs} +4 -4
- package/fesm2022/{posiwise-resource-module-resource-integrations.module-vGdvpS64.mjs.map → posiwise-resource-module-resource-integrations.module-CsMRU2OT.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-post.module-RkJpZSPU.mjs → posiwise-resource-module-resource-post.module-gUIT0ORd.mjs} +6 -6
- package/fesm2022/{posiwise-resource-module-resource-post.module-RkJpZSPU.mjs.map → posiwise-resource-module-resource-post.module-gUIT0ORd.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-release-notes.module-DKu39Lgo.mjs → posiwise-resource-module-resource-release-notes.module-DnUiCcG6.mjs} +5 -5
- package/fesm2022/{posiwise-resource-module-resource-release-notes.module-DKu39Lgo.mjs.map → posiwise-resource-module-resource-release-notes.module-DnUiCcG6.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-root.module-CItOAAUj.mjs → posiwise-resource-module-resource-root.module-7LNgCzIL.mjs} +18 -12
- package/fesm2022/{posiwise-resource-module-resource-root.module-CItOAAUj.mjs.map → posiwise-resource-module-resource-root.module-7LNgCzIL.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-videos.module-CuXWTy8y.mjs → posiwise-resource-module-resource-videos.module-cHpJKuM2.mjs} +5 -5
- package/fesm2022/{posiwise-resource-module-resource-videos.module-CuXWTy8y.mjs.map → posiwise-resource-module-resource-videos.module-cHpJKuM2.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-white-papers.module-BJe9cvpS.mjs → posiwise-resource-module-resource-white-papers.module-D2yrD_1D.mjs} +5 -5
- package/fesm2022/{posiwise-resource-module-resource-white-papers.module-BJe9cvpS.mjs.map → posiwise-resource-module-resource-white-papers.module-D2yrD_1D.mjs.map} +1 -1
- package/fesm2022/posiwise-resource-module.mjs +1 -1
- package/index.d.ts +3 -0
- package/lib/public/components/resource-header/resource-header-wrapper.module.d.ts +17 -0
- package/lib/public/components/resource-header/resource-header.component.d.ts +53 -0
- package/lib/public/components/resource-header/resource-header.module.d.ts +8 -0
- package/lib/public/modules/root/resource-root-shared.module.d.ts +2 -1
- package/lib/public/shared/resource-shared.module.d.ts +2 -1
- package/package.json +1 -1
- package/fesm2022/posiwise-resource-module-posiwise-resource-module-D953ymF3.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, NgModule, CUSTOM_ELEMENTS_SCHEMA, Component, ChangeDetectionStrategy, Inject, ViewChild, Input, EventEmitter, ViewContainerRef, Output } from '@angular/core';
|
|
2
|
+
import { Injectable, NgModule, CUSTOM_ELEMENTS_SCHEMA, Component, ChangeDetectionStrategy, Inject, ViewChild, Input, EventEmitter, ViewContainerRef, Output, HostListener } from '@angular/core';
|
|
3
3
|
import * as i2 from '@posiwise/common-services';
|
|
4
4
|
import { ValidationService } from '@posiwise/common-services';
|
|
5
5
|
import { HelperService } from '@posiwise/helper-service';
|
|
@@ -126,43 +126,43 @@ const routes = [
|
|
|
126
126
|
{
|
|
127
127
|
path: '',
|
|
128
128
|
pathMatch: 'full',
|
|
129
|
-
loadChildren: () => import('./posiwise-resource-module-resource-root.module-
|
|
129
|
+
loadChildren: () => import('./posiwise-resource-module-resource-root.module-7LNgCzIL.mjs').then(m => m.ResourceRootModule)
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
path: 'hub',
|
|
133
|
-
loadChildren: () => import('./posiwise-resource-module-resource-hub.module-
|
|
133
|
+
loadChildren: () => import('./posiwise-resource-module-resource-hub.module-C4jSDvnR.mjs').then(m => m.ResourceHubModule)
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
path: 'blogs',
|
|
137
|
-
loadChildren: () => import('./posiwise-resource-module-resource-blogs.module-
|
|
137
|
+
loadChildren: () => import('./posiwise-resource-module-resource-blogs.module-CLAQxsFU.mjs').then(m => m.ResourceBlogsModule)
|
|
138
138
|
},
|
|
139
139
|
{
|
|
140
140
|
path: 'videos',
|
|
141
|
-
loadChildren: () => import('./posiwise-resource-module-resource-videos.module-
|
|
141
|
+
loadChildren: () => import('./posiwise-resource-module-resource-videos.module-cHpJKuM2.mjs').then(m => m.ResourceVideosModule)
|
|
142
142
|
},
|
|
143
143
|
{
|
|
144
144
|
path: 'integrations',
|
|
145
|
-
loadChildren: () => import('./posiwise-resource-module-resource-integrations.module-
|
|
145
|
+
loadChildren: () => import('./posiwise-resource-module-resource-integrations.module-CsMRU2OT.mjs').then(m => m.ResourceIntegrationsModule)
|
|
146
146
|
},
|
|
147
147
|
{
|
|
148
148
|
path: 'release-notes',
|
|
149
|
-
loadChildren: () => import('./posiwise-resource-module-resource-release-notes.module-
|
|
149
|
+
loadChildren: () => import('./posiwise-resource-module-resource-release-notes.module-DnUiCcG6.mjs').then(m => m.ResourceReleaseNotesModule)
|
|
150
150
|
},
|
|
151
151
|
{
|
|
152
152
|
path: 'events',
|
|
153
|
-
loadChildren: () => import('./posiwise-resource-module-resource-events.module-
|
|
153
|
+
loadChildren: () => import('./posiwise-resource-module-resource-events.module-6_Zl1MJg.mjs').then(m => m.ResourceEventsModule)
|
|
154
154
|
},
|
|
155
155
|
{
|
|
156
156
|
path: 'white-papers',
|
|
157
|
-
loadChildren: () => import('./posiwise-resource-module-resource-white-papers.module-
|
|
157
|
+
loadChildren: () => import('./posiwise-resource-module-resource-white-papers.module-D2yrD_1D.mjs').then(m => m.ResourceWhitePapersModule)
|
|
158
158
|
},
|
|
159
159
|
{
|
|
160
160
|
path: 'case-studies',
|
|
161
|
-
loadChildren: () => import('./posiwise-resource-module-resource-case-studies.module-
|
|
161
|
+
loadChildren: () => import('./posiwise-resource-module-resource-case-studies.module-vYWWrG4q.mjs').then(m => m.ResourceCaseStudiesModule)
|
|
162
162
|
},
|
|
163
163
|
{
|
|
164
164
|
path: 'view/:slug',
|
|
165
|
-
loadChildren: () => import('./posiwise-resource-module-resource-post.module-
|
|
165
|
+
loadChildren: () => import('./posiwise-resource-module-resource-post.module-gUIT0ORd.mjs').then(m => m.ResourcePostModule)
|
|
166
166
|
}
|
|
167
167
|
];
|
|
168
168
|
class BlogPublicRoutingModule {
|
|
@@ -519,7 +519,9 @@ class Trial4ContactUsComponent extends AppBaseComponent {
|
|
|
519
519
|
return this.hubspot.find(item => item.position === 'footer') ?? null;
|
|
520
520
|
}
|
|
521
521
|
navigateToBookMeeting() {
|
|
522
|
-
|
|
522
|
+
const bookDemoUrl = this.appConfig?.signup_config?.trial?.book_demo_url ??
|
|
523
|
+
'https://calendly.com/cloudolive';
|
|
524
|
+
window.open(bookDemoUrl, '_blank', 'noreferrer noopener');
|
|
523
525
|
}
|
|
524
526
|
validateEmail() {
|
|
525
527
|
const email = this.form.get('email').value;
|
|
@@ -989,6 +991,293 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
989
991
|
args: ['imageCropContent']
|
|
990
992
|
}] } });
|
|
991
993
|
|
|
994
|
+
class ResourceHeaderComponent extends AppBaseComponent {
|
|
995
|
+
constructor(injector, document, adminService, modalService) {
|
|
996
|
+
super(injector);
|
|
997
|
+
this.document = document;
|
|
998
|
+
this.adminService = adminService;
|
|
999
|
+
this.modalService = modalService;
|
|
1000
|
+
this.isScrolled = false;
|
|
1001
|
+
this.open = false;
|
|
1002
|
+
this.logo = '/assets/img/landing-page/site-logo.png'; // Static fallback for LCP optimization
|
|
1003
|
+
this.navbarItems = this.appConfig?.pages_config?.navbar?.items;
|
|
1004
|
+
this.domainId = this.appConfig?.domain_id;
|
|
1005
|
+
this.contrastImageUrl = this.appConfig?.company?.logos?.main_contrast?.url;
|
|
1006
|
+
this.darkImageUrl = this.appConfig?.company?.logos?.main_dark?.url;
|
|
1007
|
+
this.editingNavbar = {
|
|
1008
|
+
items: []
|
|
1009
|
+
};
|
|
1010
|
+
this.canEditResourcesValue = false;
|
|
1011
|
+
}
|
|
1012
|
+
ngOnInit() {
|
|
1013
|
+
console.log('In Header');
|
|
1014
|
+
// Subscribe to appConfig changes to update logo dynamically
|
|
1015
|
+
this.appConfigService.appConfig$.subscribe(config => {
|
|
1016
|
+
if (config?.company?.logos) {
|
|
1017
|
+
const isAboutUs = this.router.url?.includes('/about-us');
|
|
1018
|
+
const logos = config.company.logos;
|
|
1019
|
+
// Use smaller version for better performance (100x100 instead of 1200x264)
|
|
1020
|
+
this.logo = isAboutUs
|
|
1021
|
+
? logos.main_contrast?.url || '/assets/img/landing-page/site-logo.png'
|
|
1022
|
+
: logos.main_dark?.url || '/assets/img/landing-page/site-logo.png';
|
|
1023
|
+
}
|
|
1024
|
+
});
|
|
1025
|
+
if (this.userLoggedIn) {
|
|
1026
|
+
this.localStorage.getItem$('product').subscribe(res => {
|
|
1027
|
+
const data = res ? JSON.parse(res) : null;
|
|
1028
|
+
this.id = data?.subscriptionId;
|
|
1029
|
+
});
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
ngOnChanges(changes) {
|
|
1033
|
+
if (changes['user'] || changes['userLoggedIn']) {
|
|
1034
|
+
if (this.userLoggedIn && this.user) {
|
|
1035
|
+
this.updateCanEditResourcesValue();
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
openLogoEditModal() {
|
|
1040
|
+
this.modalService.open(this.logoEditModal, { centered: true, size: 'md' });
|
|
1041
|
+
}
|
|
1042
|
+
onSaveLogo(event) {
|
|
1043
|
+
const formData = new FormData();
|
|
1044
|
+
formData.append('subscription_id', this.id);
|
|
1045
|
+
if (event.file instanceof File) {
|
|
1046
|
+
formData.append(this.isScrolled ? 'logo_main_contrast' : 'logo_main_dark', event.file);
|
|
1047
|
+
}
|
|
1048
|
+
else {
|
|
1049
|
+
formData.append(this.isScrolled ? 'remove_logo_main_contrast' : 'remove_logo_main_dark', 'true');
|
|
1050
|
+
}
|
|
1051
|
+
this.adminService.updateDomainConfig(this.domainId, formData).subscribe(() => {
|
|
1052
|
+
if (event.file) {
|
|
1053
|
+
this.logo = URL.createObjectURL(event.file);
|
|
1054
|
+
if (this.isScrolled) {
|
|
1055
|
+
this.contrastImageUrl = URL.createObjectURL(event.file);
|
|
1056
|
+
}
|
|
1057
|
+
else {
|
|
1058
|
+
this.darkImageUrl = URL.createObjectURL(event.file);
|
|
1059
|
+
}
|
|
1060
|
+
this.modalService.dismissAll();
|
|
1061
|
+
}
|
|
1062
|
+
this.toast.success(event.file ? 'Logo updated' : 'Logo removed');
|
|
1063
|
+
});
|
|
1064
|
+
}
|
|
1065
|
+
onScroll() {
|
|
1066
|
+
clearTimeout(this.scrollTimeout);
|
|
1067
|
+
this.scrollTimeout = setTimeout(() => {
|
|
1068
|
+
requestAnimationFrame(() => {
|
|
1069
|
+
const isAboutUs = this.router?.url?.includes('/about-us');
|
|
1070
|
+
const shouldScroll = window.scrollY > 150;
|
|
1071
|
+
this.isScrolled = shouldScroll;
|
|
1072
|
+
if (!isAboutUs) {
|
|
1073
|
+
// Use smaller versions for better performance
|
|
1074
|
+
const logos = this.appConfig?.company?.logos;
|
|
1075
|
+
const newLogo = shouldScroll
|
|
1076
|
+
? logos?.main_contrast?.url ??
|
|
1077
|
+
this.contrastImageUrl ??
|
|
1078
|
+
'/assets/img/landing-page/site-logo.png'
|
|
1079
|
+
: logos?.main_dark?.url ??
|
|
1080
|
+
this.darkImageUrl ??
|
|
1081
|
+
'/assets/img/landing-page/site-logo.png';
|
|
1082
|
+
if (this.logo !== newLogo) {
|
|
1083
|
+
this.logo = newLogo;
|
|
1084
|
+
}
|
|
1085
|
+
}
|
|
1086
|
+
if (window.innerWidth < 768) {
|
|
1087
|
+
this.open = false;
|
|
1088
|
+
const collapseElement = this.navbarCollapse?.nativeElement;
|
|
1089
|
+
if (collapseElement?.classList.contains('show')) {
|
|
1090
|
+
collapseElement.classList.remove('show');
|
|
1091
|
+
}
|
|
1092
|
+
}
|
|
1093
|
+
// Close all dropdowns when scrolling
|
|
1094
|
+
this.closeAllDropdowns();
|
|
1095
|
+
});
|
|
1096
|
+
}, 50);
|
|
1097
|
+
}
|
|
1098
|
+
onDocumentClick(event) {
|
|
1099
|
+
// Close all dropdowns when clicking outside
|
|
1100
|
+
const target = event.target;
|
|
1101
|
+
if (!target.closest('.nav-item') &&
|
|
1102
|
+
!target.closest('.popup') &&
|
|
1103
|
+
!target.closest('.sign-btn')) {
|
|
1104
|
+
this.closeAllDropdowns();
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1107
|
+
closeAllDropdowns() {
|
|
1108
|
+
if (this.navbarItems) {
|
|
1109
|
+
this.navbarItems.forEach(item => {
|
|
1110
|
+
if (item.open) {
|
|
1111
|
+
item.open = false;
|
|
1112
|
+
}
|
|
1113
|
+
});
|
|
1114
|
+
}
|
|
1115
|
+
}
|
|
1116
|
+
openDropdown(item) {
|
|
1117
|
+
// Close other dropdowns first
|
|
1118
|
+
this.navbarItems.forEach(navItem => {
|
|
1119
|
+
if (navItem !== item) {
|
|
1120
|
+
navItem.open = false;
|
|
1121
|
+
}
|
|
1122
|
+
});
|
|
1123
|
+
item.open = true;
|
|
1124
|
+
}
|
|
1125
|
+
onDropdownItemClick(item) {
|
|
1126
|
+
item.open = false;
|
|
1127
|
+
}
|
|
1128
|
+
openEditNavbarModal() {
|
|
1129
|
+
const navbarConfig = this.appConfig.pages_config?.navbar ?? {};
|
|
1130
|
+
navbarConfig.items = navbarConfig.items ?? [];
|
|
1131
|
+
this.editingNavbar = JSON.parse(JSON.stringify(navbarConfig));
|
|
1132
|
+
this.modalService.open(this.editNavbarModal, {
|
|
1133
|
+
size: 'lg',
|
|
1134
|
+
centered: true,
|
|
1135
|
+
windowClass: 'modal-holder'
|
|
1136
|
+
});
|
|
1137
|
+
}
|
|
1138
|
+
saveNavbarLinks(modal) {
|
|
1139
|
+
const updatedConfig = {
|
|
1140
|
+
navbar: this.editingNavbar,
|
|
1141
|
+
subscription_id: this.id
|
|
1142
|
+
};
|
|
1143
|
+
this.adminService
|
|
1144
|
+
.updateDomainConfig(this.appConfig?.domain_id, updatedConfig)
|
|
1145
|
+
.subscribe(() => {
|
|
1146
|
+
this.toast.success('Navbar links updated');
|
|
1147
|
+
this.navbarItems = [...this.editingNavbar.items];
|
|
1148
|
+
// Update the appConfig to reflect the saved changes
|
|
1149
|
+
this.appConfig.pages_config = this.appConfig.pages_config ?? {};
|
|
1150
|
+
this.appConfig.pages_config.navbar = { ...this.editingNavbar };
|
|
1151
|
+
modal.close();
|
|
1152
|
+
});
|
|
1153
|
+
}
|
|
1154
|
+
addNavbarItem() {
|
|
1155
|
+
this.editingNavbar.items.push({
|
|
1156
|
+
title: '',
|
|
1157
|
+
path: '',
|
|
1158
|
+
subtitles: []
|
|
1159
|
+
});
|
|
1160
|
+
}
|
|
1161
|
+
removeNavbarItem(index) {
|
|
1162
|
+
this.editingNavbar.items.splice(index, 1);
|
|
1163
|
+
}
|
|
1164
|
+
addNavbarSubtitle(index) {
|
|
1165
|
+
this.editingNavbar.items[index].subtitles.push({
|
|
1166
|
+
title: '',
|
|
1167
|
+
path: ''
|
|
1168
|
+
});
|
|
1169
|
+
}
|
|
1170
|
+
removeNavbarSubtitle(navIndex, subIndex) {
|
|
1171
|
+
this.editingNavbar.items[navIndex].subtitles.splice(subIndex, 1);
|
|
1172
|
+
}
|
|
1173
|
+
dropNavbarItems(event) {
|
|
1174
|
+
moveItemInArray(this.editingNavbar.items, event.previousIndex, event.currentIndex);
|
|
1175
|
+
}
|
|
1176
|
+
dropNavbarSubtitles(index, event) {
|
|
1177
|
+
moveItemInArray(this.editingNavbar.items[index].subtitles, event.previousIndex, event.currentIndex);
|
|
1178
|
+
}
|
|
1179
|
+
updateCanEditResourcesValue() {
|
|
1180
|
+
this.canEditResourcesValue = HelperService.canEditResources(this.user, this.userLoggedIn, this.permissionService);
|
|
1181
|
+
}
|
|
1182
|
+
canEditResources() {
|
|
1183
|
+
return this.canEditResourcesValue;
|
|
1184
|
+
}
|
|
1185
|
+
navigateToLogin() {
|
|
1186
|
+
window.location.href = '/login';
|
|
1187
|
+
}
|
|
1188
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderComponent, deps: [{ token: i0.Injector }, { token: DOCUMENT }, { token: i5.AdminService }, { token: i2$1.NgbModal }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1189
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceHeaderComponent, selector: "pw-resource-header", inputs: { user: "user", userLoggedIn: "userLoggedIn" }, host: { listeners: { "window:scroll": "onScroll()", "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "navbarCollapse", first: true, predicate: ["collapsibleNavbar"], descendants: true }, { propertyName: "editNavbarModal", first: true, predicate: ["editNavbarModal"], descendants: true }, { propertyName: "logoEditModal", first: true, predicate: ["logoEditModal"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<nav class=\"navbar navbar-expand-md navbar-dark fixed-top primary-nav-bg-color resource-header\"\n id=\"banner\">\n <div class=\"container container-wrapper banner-section\">\n\n <!-- Toggler/collapsibe Button -->\n <button class=\"navbar-toggler header-menu-bar\"\n type=\"button\"\n aria-label=\"Toggle navigation\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#collapsibleNavbar\">\n <img src=\"/assets/img/products/trial/navbar-toggle-icon.png\"\n class=\"img-fluid navbar-toggle-icon\"\n alt=\"\" />\n </button>\n\n <!-- Mobile Logo -->\n <div class=\"d-md-none mb-icon\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openLogoEditModal()\"\n (keydown.enter)=\"openLogoEditModal()\"\n (keydown.space)=\"openLogoEditModal()\"\n title=\"Edit Logo\"></i>\n\n\n <!-- Navbar links -->\n <div class=\"collapse navbar-collapse mt-3 mt-md-0\"\n id=\"collapsibleNavbar\"\n #collapsibleNavbar>\n <div class=\"row align-items-center w-100\">\n\n <!-- Always occupy 3 columns for logo -->\n <div class=\"col-md-2 d-none d-md-flex align-items-center\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <div class=\"col-md-7 d-flex justify-content-start\">\n <ul #anchorLinks\n class=\"navbar-nav flex gap-4 me-0 wow fadeInUp position-relative\"\n data-wow-duration=\"2s\">\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openEditNavbarModal()\"\n (keydown.enter)=\"openEditNavbarModal()\"\n (keydown.space)=\"openEditNavbarModal()\"\n title=\"Edit Navbar Links\"></i>\n <li class=\"nav-item\" *ngFor=\"let item of navbarItems\">\n <div class=\"dropdown-container\"\n (mouseenter)=\"openDropdown(item)\">\n <a\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n [ngClass]=\"{ 'scrolled-nav-link': isScrolled }\"\n (click)=\"item.subtitles?.length ? (item.open = !item.open) : null\"\n [attr.href]=\"!(item.subtitles?.length) ? item.path : null\"\n >\n {{ item?.title }}\n <i *ngIf=\"item.subtitles.length > 0 && item.open\" class=\"fa-solid fa-caret-down\"></i>\n </a>\n <div class=\"popup position-absolute\"\n *ngIf=\"item.subtitles.length > 0 && item.open\">\n <ul>\n <li\n *ngFor=\"let sub of item.subtitles\"\n [routerLink]=\"sub.path\"\n class=\"dropdownItem\"\n (click)=\"onDropdownItemClick(item)\"\n (keydown.enter)=\"onDropdownItemClick(item)\"\n (keydown.space)=\"onDropdownItemClick(item)\"\n >\n {{ sub.title }}\n </li>\n </ul>\n </div>\n </div>\n </li>\n\n <li class=\"nav-item ms-2 mb-3 d-flex d-md-none\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </li>\n </ul>\n </div>\n\n <!-- Always 3 columns for login -->\n <div class=\"col-md-3 d-none d-md-flex justify-content-end\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </div>\n\n </div>\n </div>\n </div>\n</nav>\n\n\n\n<ng-template #editNavbarModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Navbar Links</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <h4 class=\"mb-3\">Navbar Section</h4>\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarItems($event)\">\n <div *ngFor=\"let item of editingNavbar.items; let i = index\" class=\"border p-3 mb-3\" cdkDrag>\n <div class=\"row\">\n <div class=\"col-md-5 mb-2\">\n <label for=\"navbarTitle{{i}}\" class=\"form-label\">Title</label>\n <input id=\"navbarTitle{{i}}\" class=\"form-control\" [(ngModel)]=\"item.title\" />\n </div>\n <div class=\"col-md-5 mb-2\">\n <label for=\"navbarPath{{i}}\" class=\"form-label\">Path</label>\n <input id=\"navbarPath{{i}}\" class=\"form-control\" [(ngModel)]=\"item.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarItem(i)\" (keydown.enter)=\"removeNavbarItem(i)\"\n (keydown.space)=\"removeNavbarItem(i)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarSubtitles(i, $event)\">\n <div *ngFor=\"let sub of item.subtitles; let j = index\" class=\"row border p-3 mb-2 align-items-center\" cdkDrag>\n <div class=\"col-md-5\">\n <label for=\"navbarSubtitleTitle{{i}}{{j}}\" class=\"form-label\">Subtitle Title</label>\n <input id=\"navbarSubtitleTitle{{i}}{{j}}\" class=\"form-control\" [(ngModel)]=\"sub.title\" />\n </div>\n <div class=\"col-md-5\">\n <label for=\"navbarSubtitlePath{{i}}{{j}}\" class=\"form-label\">Subtitle Path</label>\n <input id=\"navbarSubtitlePath{{i}}{{j}}\" class=\"form-control\" [(ngModel)]=\"sub.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarSubtitle(i, j)\" (keydown.enter)=\"removeNavbarSubtitle(i, j)\" (keydown.space)=\"removeNavbarSubtitle(i, j)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n </div>\n\n <button class=\"btn btn-outline-primary btn-sm mt-2\" (click)=\"addNavbarSubtitle(i)\">\n + Add Subtitle\n </button>\n </div>\n </div>\n\n <button class=\"btn btn-primary mt-3\" (click)=\"addNavbarItem()\">\n + Add Navbar Item\n </button>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" (click)=\"saveNavbarLinks(modal)\">Save</button>\n </div>\n</ng-template>\n\n\n\n\n<ng-template #logoEditModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Logo</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <pw-custom-uploader\n [title]=\"'Main Logo'\"\n [controlName]=\"'logo_main'\"\n [aspectRatio]=\"'fullLogo'\"\n [previewData]=\"{ url: logo, name: 'logo_main.png' }\"\n (saveEvent)=\"onSaveLogo($event)\">\n </pw-custom-uploader>\n </div>\n</ng-template>", styles: [".navbar-custom-background{background-color:#00000080;box-shadow:2px 2px 15px 2px #0000001f;transition:width 2s,height 2s,-webkit-transform 2s;transition:width 2s,height 2s,transform 2s background-color .5s ease;z-index:9999}.fixed-top{position:fixed!important}.primary-button{background-color:#000;border-radius:50px;color:#fff;font: 600 16.3px Montserrat-Regular,sans-serif;padding:5px 16px!important;width:auto;display:flex;gap:15px;align-items:center;justify-content:space-between}.logo_img{width:60%!important;min-width:159px!important}.navbar-toggle-icon{width:25px}@media (min-width: 500px){.navbar-nav .nav-item button{margin-top:10px}}@media (max-width: 1200px){.navbar-nav .nav-item .nav-link{font-size:15px!important}}.navbar-nav .nav-link{display:inline-flex!important;white-space:nowrap;gap:4px}.fa-caret-down{font-family:\"Font Awesome 6 Pro\",sans-serif;font-weight:900}@media (min-width: 1200px){.navbar-nav .nav-item .nav-link{padding-bottom:0!important;padding-top:0!important}.popup{top:3.4rem!important;background-color:var(--first)!important;background-color:transparent;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.router-link-active{color:#000!important}}@media (max-width: 1200px){.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.popup ul li:hover{background-color:#f1f1f1}.mb-icon{width:200px}.container-wrapper{padding:10px 20px!important}.dropdown-container{position:relative;display:inline-block}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}}@media (max-width: 500px){.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}}.popup{top:90%;background-color:transparent;padding:10px;z-index:1000}.popup ul{list-style-type:none;padding:0;margin:0}.popup ul li{padding:5px 10px;font: 500 14px Montserrat-Regular,sans-serif}.resource-header .nav-link.scrolled-nav-link{color:#fff!important}.resource-header .sign-btn,.resource-header .sign-header-btn{text-decoration:none!important}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}@media (max-width: 500px){.logo_img{width:60%!important;margin-left:auto;margin-right:0;display:block;transition:margin .5s ease,width .5s ease}.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul{list-style-type:none;padding:0;margin:0}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}.dropdown-container{position:relative;display:inline-block}}.navbar-nav{visibility:visible!important;display:flex!important}.nav-link{text-transform:uppercase}.dropdown-container{position:relative;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i3$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i9.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i9.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i9.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i8.LazyImgDirective, selector: "img" }, { kind: "component", type: i6.CustomUploaderComponent, selector: "pw-custom-uploader", inputs: ["controlName", "previewData", "aspectRatio", "title"], outputs: ["saveEvent"] }] }); }
|
|
1190
|
+
}
|
|
1191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderComponent, decorators: [{
|
|
1192
|
+
type: Component,
|
|
1193
|
+
args: [{ selector: 'pw-resource-header', template: "<nav class=\"navbar navbar-expand-md navbar-dark fixed-top primary-nav-bg-color resource-header\"\n id=\"banner\">\n <div class=\"container container-wrapper banner-section\">\n\n <!-- Toggler/collapsibe Button -->\n <button class=\"navbar-toggler header-menu-bar\"\n type=\"button\"\n aria-label=\"Toggle navigation\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#collapsibleNavbar\">\n <img src=\"/assets/img/products/trial/navbar-toggle-icon.png\"\n class=\"img-fluid navbar-toggle-icon\"\n alt=\"\" />\n </button>\n\n <!-- Mobile Logo -->\n <div class=\"d-md-none mb-icon\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openLogoEditModal()\"\n (keydown.enter)=\"openLogoEditModal()\"\n (keydown.space)=\"openLogoEditModal()\"\n title=\"Edit Logo\"></i>\n\n\n <!-- Navbar links -->\n <div class=\"collapse navbar-collapse mt-3 mt-md-0\"\n id=\"collapsibleNavbar\"\n #collapsibleNavbar>\n <div class=\"row align-items-center w-100\">\n\n <!-- Always occupy 3 columns for logo -->\n <div class=\"col-md-2 d-none d-md-flex align-items-center\">\n <div>\n <img src=\"/assets/img/landing-page/site-logo.png\"\n [src]=\"logo || '/assets/img/landing-page/site-logo.png'\"\n routerLink=\"/\"\n alt=\"logo\"\n class=\"img-fluid logo_img\"\n width=\"100\"\n height=\"100\"\n loading=\"eager\"\n fetchpriority=\"high\"\n sizes=\"100px\" />\n </div>\n </div>\n\n\n <div class=\"col-md-7 d-flex justify-content-start\">\n <ul #anchorLinks\n class=\"navbar-nav flex gap-4 me-0 wow fadeInUp position-relative\"\n data-wow-duration=\"2s\">\n\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black me-3\"\n (click)=\"openEditNavbarModal()\"\n (keydown.enter)=\"openEditNavbarModal()\"\n (keydown.space)=\"openEditNavbarModal()\"\n title=\"Edit Navbar Links\"></i>\n <li class=\"nav-item\" *ngFor=\"let item of navbarItems\">\n <div class=\"dropdown-container\"\n (mouseenter)=\"openDropdown(item)\">\n <a\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n [ngClass]=\"{ 'scrolled-nav-link': isScrolled }\"\n (click)=\"item.subtitles?.length ? (item.open = !item.open) : null\"\n [attr.href]=\"!(item.subtitles?.length) ? item.path : null\"\n >\n {{ item?.title }}\n <i *ngIf=\"item.subtitles.length > 0 && item.open\" class=\"fa-solid fa-caret-down\"></i>\n </a>\n <div class=\"popup position-absolute\"\n *ngIf=\"item.subtitles.length > 0 && item.open\">\n <ul>\n <li\n *ngFor=\"let sub of item.subtitles\"\n [routerLink]=\"sub.path\"\n class=\"dropdownItem\"\n (click)=\"onDropdownItemClick(item)\"\n (keydown.enter)=\"onDropdownItemClick(item)\"\n (keydown.space)=\"onDropdownItemClick(item)\"\n >\n {{ sub.title }}\n </li>\n </ul>\n </div>\n </div>\n </li>\n\n <li class=\"nav-item ms-2 mb-3 d-flex d-md-none\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </li>\n </ul>\n </div>\n\n <!-- Always 3 columns for login -->\n <div class=\"col-md-3 d-none d-md-flex justify-content-end\">\n <a class=\"sign-btn sign-header-btn\"\n (click)=\"navigateToLogin()\">Log In</a>\n </div>\n\n </div>\n </div>\n </div>\n</nav>\n\n\n\n<ng-template #editNavbarModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Navbar Links</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <h4 class=\"mb-3\">Navbar Section</h4>\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarItems($event)\">\n <div *ngFor=\"let item of editingNavbar.items; let i = index\" class=\"border p-3 mb-3\" cdkDrag>\n <div class=\"row\">\n <div class=\"col-md-5 mb-2\">\n <label for=\"navbarTitle{{i}}\" class=\"form-label\">Title</label>\n <input id=\"navbarTitle{{i}}\" class=\"form-control\" [(ngModel)]=\"item.title\" />\n </div>\n <div class=\"col-md-5 mb-2\">\n <label for=\"navbarPath{{i}}\" class=\"form-label\">Path</label>\n <input id=\"navbarPath{{i}}\" class=\"form-control\" [(ngModel)]=\"item.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarItem(i)\" (keydown.enter)=\"removeNavbarItem(i)\"\n (keydown.space)=\"removeNavbarItem(i)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n\n <div cdkDropList (cdkDropListDropped)=\"dropNavbarSubtitles(i, $event)\">\n <div *ngFor=\"let sub of item.subtitles; let j = index\" class=\"row border p-3 mb-2 align-items-center\" cdkDrag>\n <div class=\"col-md-5\">\n <label for=\"navbarSubtitleTitle{{i}}{{j}}\" class=\"form-label\">Subtitle Title</label>\n <input id=\"navbarSubtitleTitle{{i}}{{j}}\" class=\"form-control\" [(ngModel)]=\"sub.title\" />\n </div>\n <div class=\"col-md-5\">\n <label for=\"navbarSubtitlePath{{i}}{{j}}\" class=\"form-label\">Subtitle Path</label>\n <input id=\"navbarSubtitlePath{{i}}{{j}}\" class=\"form-control\" [(ngModel)]=\"sub.path\" />\n </div>\n <div class=\"col-md-2 d-flex justify-content-between align-items-center mt-4\">\n <i class=\"fa fa-trash in-page-trash-icon text-danger cursor-pointer\" (click)=\"removeNavbarSubtitle(i, j)\" (keydown.enter)=\"removeNavbarSubtitle(i, j)\" (keydown.space)=\"removeNavbarSubtitle(i, j)\"></i>\n <i class=\"fa fa-bars in-page-bars-icon cursor-pointer\" cdkDragHandle></i>\n </div>\n </div>\n </div>\n\n <button class=\"btn btn-outline-primary btn-sm mt-2\" (click)=\"addNavbarSubtitle(i)\">\n + Add Subtitle\n </button>\n </div>\n </div>\n\n <button class=\"btn btn-primary mt-3\" (click)=\"addNavbarItem()\">\n + Add Navbar Item\n </button>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" (click)=\"saveNavbarLinks(modal)\">Save</button>\n </div>\n</ng-template>\n\n\n\n\n<ng-template #logoEditModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Logo</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <pw-custom-uploader\n [title]=\"'Main Logo'\"\n [controlName]=\"'logo_main'\"\n [aspectRatio]=\"'fullLogo'\"\n [previewData]=\"{ url: logo, name: 'logo_main.png' }\"\n (saveEvent)=\"onSaveLogo($event)\">\n </pw-custom-uploader>\n </div>\n</ng-template>", styles: [".navbar-custom-background{background-color:#00000080;box-shadow:2px 2px 15px 2px #0000001f;transition:width 2s,height 2s,-webkit-transform 2s;transition:width 2s,height 2s,transform 2s background-color .5s ease;z-index:9999}.fixed-top{position:fixed!important}.primary-button{background-color:#000;border-radius:50px;color:#fff;font: 600 16.3px Montserrat-Regular,sans-serif;padding:5px 16px!important;width:auto;display:flex;gap:15px;align-items:center;justify-content:space-between}.logo_img{width:60%!important;min-width:159px!important}.navbar-toggle-icon{width:25px}@media (min-width: 500px){.navbar-nav .nav-item button{margin-top:10px}}@media (max-width: 1200px){.navbar-nav .nav-item .nav-link{font-size:15px!important}}.navbar-nav .nav-link{display:inline-flex!important;white-space:nowrap;gap:4px}.fa-caret-down{font-family:\"Font Awesome 6 Pro\",sans-serif;font-weight:900}@media (min-width: 1200px){.navbar-nav .nav-item .nav-link{padding-bottom:0!important;padding-top:0!important}.popup{top:3.4rem!important;background-color:var(--first)!important;background-color:transparent;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.router-link-active{color:#000!important}}@media (max-width: 1200px){.popup ul li{color:#fff;font: 500 14px Montserrat-Regular,sans-serif;cursor:pointer;border-bottom:1px solid #eee}.popup ul li:last-child{border-bottom:none}.popup ul li:hover{background-color:#f1f1f1}.mb-icon{width:200px}.container-wrapper{padding:10px 20px!important}.dropdown-container{position:relative;display:inline-block}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}}@media (max-width: 500px){.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}}.popup{top:90%;background-color:transparent;padding:10px;z-index:1000}.popup ul{list-style-type:none;padding:0;margin:0}.popup ul li{padding:5px 10px;font: 500 14px Montserrat-Regular,sans-serif}.resource-header .nav-link.scrolled-nav-link{color:#fff!important}.resource-header .sign-btn,.resource-header .sign-header-btn{text-decoration:none!important}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}@media (max-width: 500px){.logo_img{width:60%!important;margin-left:auto;margin-right:0;display:block;transition:margin .5s ease,width .5s ease}.navbar-nav{background-color:var(--first);border-top:3px solid rgb(254,209,54);color:#fff;margin-top:5px;z-index:1}.navbar-nav .nav-item .nav-link{font-size:100%;font-weight:500;padding:.7em 1em!important}.popup{top:0%!important;background-color:var(--first)!important;left:10rem;padding:10px;z-index:1000;transition:opacity .3s ease-in-out}.popup ul{list-style-type:none;padding:0;margin:0}.dropdownItem{cursor:pointer}.rotate{transform:rotate(180deg)}.dropdown-container{position:relative;display:inline-block}}.navbar-nav{visibility:visible!important;display:flex!important}.nav-link{text-transform:uppercase}.dropdown-container{position:relative;display:inline-block}\n"] }]
|
|
1194
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: Document, decorators: [{
|
|
1195
|
+
type: Inject,
|
|
1196
|
+
args: [DOCUMENT]
|
|
1197
|
+
}] }, { type: i5.AdminService }, { type: i2$1.NgbModal }], propDecorators: { navbarCollapse: [{
|
|
1198
|
+
type: ViewChild,
|
|
1199
|
+
args: ['collapsibleNavbar']
|
|
1200
|
+
}], editNavbarModal: [{
|
|
1201
|
+
type: ViewChild,
|
|
1202
|
+
args: ['editNavbarModal']
|
|
1203
|
+
}], logoEditModal: [{
|
|
1204
|
+
type: ViewChild,
|
|
1205
|
+
args: ['logoEditModal']
|
|
1206
|
+
}], user: [{
|
|
1207
|
+
type: Input
|
|
1208
|
+
}], userLoggedIn: [{
|
|
1209
|
+
type: Input
|
|
1210
|
+
}], onScroll: [{
|
|
1211
|
+
type: HostListener,
|
|
1212
|
+
args: ['window:scroll', []]
|
|
1213
|
+
}], onDocumentClick: [{
|
|
1214
|
+
type: HostListener,
|
|
1215
|
+
args: ['document:click', ['$event']]
|
|
1216
|
+
}] } });
|
|
1217
|
+
|
|
1218
|
+
// Wrapper module: declares ONLY ResourceHeaderComponent
|
|
1219
|
+
// DragDropModule is needed for edit functionality (drag & drop in edit modal)
|
|
1220
|
+
class ResourceHeaderWrapperModule {
|
|
1221
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderWrapperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1222
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderWrapperModule, declarations: [ResourceHeaderComponent], imports: [CommonModule,
|
|
1223
|
+
FormsModule,
|
|
1224
|
+
RouterModule,
|
|
1225
|
+
DragDropModule, // Needed for cdkDropList, cdkDrag, cdkDragHandle in edit modal
|
|
1226
|
+
NgbModalModule,
|
|
1227
|
+
NgbTooltipModule,
|
|
1228
|
+
CoreTranslocoModule,
|
|
1229
|
+
DirectivesModule,
|
|
1230
|
+
PipesModule,
|
|
1231
|
+
AdminModuleUtilsModule,
|
|
1232
|
+
ProfileImageCropperModule], exports: [ResourceHeaderComponent] }); }
|
|
1233
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderWrapperModule, imports: [CommonModule,
|
|
1234
|
+
FormsModule,
|
|
1235
|
+
RouterModule,
|
|
1236
|
+
DragDropModule, // Needed for cdkDropList, cdkDrag, cdkDragHandle in edit modal
|
|
1237
|
+
NgbModalModule,
|
|
1238
|
+
NgbTooltipModule,
|
|
1239
|
+
CoreTranslocoModule,
|
|
1240
|
+
DirectivesModule,
|
|
1241
|
+
PipesModule,
|
|
1242
|
+
AdminModuleUtilsModule,
|
|
1243
|
+
ProfileImageCropperModule] }); }
|
|
1244
|
+
}
|
|
1245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderWrapperModule, decorators: [{
|
|
1246
|
+
type: NgModule,
|
|
1247
|
+
args: [{
|
|
1248
|
+
declarations: [ResourceHeaderComponent],
|
|
1249
|
+
imports: [
|
|
1250
|
+
CommonModule,
|
|
1251
|
+
FormsModule,
|
|
1252
|
+
RouterModule,
|
|
1253
|
+
DragDropModule, // Needed for cdkDropList, cdkDrag, cdkDragHandle in edit modal
|
|
1254
|
+
NgbModalModule,
|
|
1255
|
+
NgbTooltipModule,
|
|
1256
|
+
CoreTranslocoModule,
|
|
1257
|
+
DirectivesModule,
|
|
1258
|
+
PipesModule,
|
|
1259
|
+
AdminModuleUtilsModule,
|
|
1260
|
+
ProfileImageCropperModule
|
|
1261
|
+
],
|
|
1262
|
+
exports: [ResourceHeaderComponent]
|
|
1263
|
+
}]
|
|
1264
|
+
}] });
|
|
1265
|
+
|
|
1266
|
+
// ResourceHeaderModule: imports wrapper module
|
|
1267
|
+
// DragDropModule is already included in ResourceHeaderWrapperModule
|
|
1268
|
+
class ResourceHeaderModule {
|
|
1269
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1270
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderModule, imports: [ResourceHeaderWrapperModule], exports: [ResourceHeaderComponent] }); }
|
|
1271
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderModule, imports: [ResourceHeaderWrapperModule] }); }
|
|
1272
|
+
}
|
|
1273
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderModule, decorators: [{
|
|
1274
|
+
type: NgModule,
|
|
1275
|
+
args: [{
|
|
1276
|
+
imports: [ResourceHeaderWrapperModule],
|
|
1277
|
+
exports: [ResourceHeaderComponent]
|
|
1278
|
+
}]
|
|
1279
|
+
}] });
|
|
1280
|
+
|
|
992
1281
|
class ResourceNoteCardComponent extends AppBaseComponent {
|
|
993
1282
|
constructor(injector, resourceService, tagService) {
|
|
994
1283
|
super(injector);
|
|
@@ -1122,11 +1411,11 @@ class ResourceNoteCardComponent extends AppBaseComponent {
|
|
|
1122
1411
|
return this.canEditResourcesValue;
|
|
1123
1412
|
}
|
|
1124
1413
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceNoteCardComponent, deps: [{ token: i0.Injector }, { token: ResourceService }, { token: i2.TagService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1125
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceNoteCardComponent, selector: "pw-resource-note-card", inputs: { releaseHeader: "releaseHeader", categoryId: "categoryId", isReleasePress: "isReleasePress", isResource: "isResource", postSlice: "postSlice", resourceTitle: "resourceTitle", tag: "tag", user: "user", userLoggedIn: "userLoggedIn" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section class=\"resource-vault-section bg-white\" *ngIf=\"hasProductReleases()\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isEditingTitle }\">\n <ng-container *ngIf=\"!isEditingTitle; else editTitleBlock\">\n <span *ngIf=\"postTags['product']?.title; else fallback\" [innerHTML]=\"postTags['product']?.title\"></span>\n <ng-template #fallback>Product Release Notes</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditTitle()\" (keydown.enter)=\"toggleEditTitle()\" (keydown.space)=\"toggleEditTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle('product')\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a class=\"view-all\" *ngIf=\"!postSlice\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['product']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasProductReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['product']\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getProductReleasePosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url?.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Product Resource Icon\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Product Resource Default Icon\" />\n </ng-template>\n <ng-template #ctaContent>\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n<section class=\"resource-vault-section bg-white\" *ngIf=\"isReleasePress && hasPressReleases()\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isPressEditingTitle }\">\n <ng-container *ngIf=\"!isPressEditingTitle; else editTitleBlock\">\n <span *ngIf=\"postTags['press']?.title; else fallback\" [innerHTML]=\"postTags['press']?.title\"></span>\n <ng-template #fallback>Press Release Notes</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditPressTitle()\" (keydown.enter)=\"toggleEditPressTitle()\" (keydown.space)=\"toggleEditPressTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isPressEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle('press')\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isPressEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a *ngIf=\"!postSlice\" class=\"view-all\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['press']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasPressReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['press']\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getPressReleasePosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Press Resource Icon\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Press Resource Default Icon\" />\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<pw-trial-4-contact-us *ngIf=\"isResource\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-trial-4-contact-us>", styles: [".bold{font-weight:700}.resource-heading{margin-bottom:2rem}.resource-note{margin-top:1rem;font-size:.85rem;color:#555}.resource-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}.press-release-icon{height:auto!important;margin:0 11px 1.9rem;display:block;align-self:center;width:auto!important;aspect-ratio:0!important;object-fit:cover;margin-top:auto;margin-right:0!important}.resource-vault-section{padding:60px 0;background:#fff;padding-bottom:9rem!important;padding-top:7rem!important;box-shadow:0 4px 32px -14px #40576d4d!important}.resource-vault-section .vault-heading{font-size:3rem;font-weight:300}.resource-vault-section .explore-link{color:#000;font-weight:400;text-decoration:none;font-size:1.5rem}.resource-vault-section .resource-blog-card{display:flex;flex-direction:column;justify-content:space-between;background-color:#fff;border-radius:30px;box-shadow:0 20px 40px #00000014;padding:25px;text-align:center;width:338px;height:auto!important}.resource-vault-section .resource-blog-card h5{font-size:1.5rem;font-weight:400;margin-bottom:.5rem;color:var(--text-color, black)}.resource-vault-section .resource-blog-card p{font-size:1.5rem;color:var(--text-color, black);line-height:2rem}.resource-vault-section .resource-blog-card img{width:100%;border-radius:10px;aspect-ratio:1/1;object-fit:cover;margin-top:auto;margin-right:0!important;max-width:250px!important;align-self:center!important}.resource-vault-section .resource-blog-card iframe{height:210px;border-radius:10px;object-fit:cover;margin-right:0!important;max-width:280px!important}.resource-vault-section .resource-blog-card .resource-btn{background-color:var(--text-color, black);color:#fff;margin-top:auto;padding:10px 24px;border-radius:24px;font-size:1.5rem;font-weight:500;width:100%;max-width:240px;cursor:pointer;transition:background .3s ease;display:flex;justify-content:space-between;align-self:center;align-items:center;text-align:left;text-decoration:none;border:1px solid;box-shadow:none!important;border-color:var(--text-color, black)}.resource-vault-section .resource-blog-card .resource-btn:hover{background:#fff;color:var(--text-color, black)!important}.resource-vault-section .vault-description{text-align:left;max-width:657px;color:#182527;line-height:2.3rem!important;font-size:1.65rem}@media (width <= 1200px){.resource-vault-section .vault-heading{font-size:3.5rem}.resource-vault-section .vault-description{margin-top:1.35rem}.resource-vault-section .resource-btn{margin-left:0!important}}.video-row{gap:5.5rem!important;margin-top:3rem!important}@media (width >= 991px){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}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 768px){.video-row{gap:3rem!important}}@media (max-width: 768px){.resource-vault-section{padding-bottom:6rem!important}.resource-vault-section .container{padding-top:0rem!important;padding-bottom:0rem!important}.vault-header{text-align:center!important}.vault-heading{font-size:3rem!important}}@media (width <= 1200px){.container{padding:7rem 3rem 1rem!important}}\n"], dependencies: [{ kind: "directive", type: i3$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "component", type: i7.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "directive", type: i8.LazyImgDirective, selector: "img" }, { kind: "component", type: Trial4ContactUsComponent, selector: "pw-trial-4-contact-us", inputs: ["subscriptionId", "sourceId", "masterSubscriptionId", "experimentName", "microserviceName", "shardName", "user", "userLoggedIn"] }, { kind: "component", type: ResourceEditCardLazyComponent, selector: "pw-resource-edit-card-lazy", inputs: ["id", "resourceData", "canEdit"], outputs: ["updated"] }, { kind: "pipe", type: i10.TranslocoPipe, name: "transloco" }] }); }
|
|
1414
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceNoteCardComponent, selector: "pw-resource-note-card", inputs: { releaseHeader: "releaseHeader", categoryId: "categoryId", isReleasePress: "isReleasePress", isResource: "isResource", postSlice: "postSlice", resourceTitle: "resourceTitle", tag: "tag", user: "user", userLoggedIn: "userLoggedIn" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section class=\"resource-vault-section bg-white\" *ngIf=\"hasProductReleases()\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isEditingTitle }\">\n <ng-container *ngIf=\"!isEditingTitle; else editTitleBlock\">\n <span *ngIf=\"postTags['product']?.title; else fallback\" [innerHTML]=\"postTags['product']?.title\"></span>\n <ng-template #fallback>Product Release Notes</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditTitle()\" (keydown.enter)=\"toggleEditTitle()\" (keydown.space)=\"toggleEditTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle('product')\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a class=\"view-all\" *ngIf=\"!postSlice\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['product']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasProductReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['product']\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getProductReleasePosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url?.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Product Resource Icon\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Product Resource Default Icon\" />\n </ng-template>\n <ng-template #ctaContent>\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n<section class=\"resource-vault-section bg-white\" *ngIf=\"isReleasePress && hasPressReleases()\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isPressEditingTitle }\">\n <ng-container *ngIf=\"!isPressEditingTitle; else editTitleBlock\">\n <span *ngIf=\"postTags['press']?.title; else fallback\" [innerHTML]=\"postTags['press']?.title\"></span>\n <ng-template #fallback>Press Release Notes</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditPressTitle()\" (keydown.enter)=\"toggleEditPressTitle()\" (keydown.space)=\"toggleEditPressTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isPressEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle('press')\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isPressEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a *ngIf=\"!postSlice\" class=\"view-all\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['press']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasPressReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['press']\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getPressReleasePosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Press Resource Icon\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Press Resource Default Icon\" />\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n", styles: [".bold{font-weight:700}.resource-heading{margin-bottom:2rem}.resource-note{margin-top:1rem;font-size:.85rem;color:#555}.resource-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}.press-release-icon{height:auto!important;margin:0 11px 1.9rem;display:block;align-self:center;width:auto!important;aspect-ratio:0!important;object-fit:cover;margin-top:auto;margin-right:0!important}.resource-vault-section{padding:60px 0;background:#fff;padding-bottom:9rem!important;padding-top:7rem!important;box-shadow:0 4px 32px -14px #40576d4d!important}.resource-vault-section .vault-heading{font-size:3rem;font-weight:300}.resource-vault-section .explore-link{color:#000;font-weight:400;text-decoration:none;font-size:1.5rem}.resource-vault-section .resource-blog-card{display:flex;flex-direction:column;justify-content:space-between;background-color:#fff;border-radius:30px;box-shadow:0 20px 40px #00000014;padding:25px;text-align:center;width:338px;height:auto!important}.resource-vault-section .resource-blog-card h5{font-size:1.5rem;font-weight:400;margin-bottom:.5rem;color:var(--text-color, black)}.resource-vault-section .resource-blog-card p{font-size:1.5rem;color:var(--text-color, black);line-height:2rem}.resource-vault-section .resource-blog-card img{width:100%;border-radius:10px;aspect-ratio:1/1;object-fit:cover;margin-top:auto;margin-right:0!important;max-width:250px!important;align-self:center!important}.resource-vault-section .resource-blog-card iframe{height:210px;border-radius:10px;object-fit:cover;margin-right:0!important;max-width:280px!important}.resource-vault-section .resource-blog-card .resource-btn{background-color:var(--text-color, black);color:#fff;margin-top:auto;padding:10px 24px;border-radius:24px;font-size:1.5rem;font-weight:500;width:100%;max-width:240px;cursor:pointer;transition:background .3s ease;display:flex;justify-content:space-between;align-self:center;align-items:center;text-align:left;text-decoration:none;border:1px solid;box-shadow:none!important;border-color:var(--text-color, black)}.resource-vault-section .resource-blog-card .resource-btn:hover{background:#fff;color:var(--text-color, black)!important}.resource-vault-section .vault-description{text-align:left;max-width:657px;color:#182527;line-height:2.3rem!important;font-size:1.65rem}@media (width <= 1200px){.resource-vault-section .vault-heading{font-size:3.5rem}.resource-vault-section .vault-description{margin-top:1.35rem}.resource-vault-section .resource-btn{margin-left:0!important}}.video-row{gap:5.5rem!important;margin-top:3rem!important}@media (width >= 991px){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}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 768px){.video-row{gap:3rem!important}}@media (max-width: 768px){.resource-vault-section{padding-bottom:6rem!important}.resource-vault-section .container{padding-top:0rem!important;padding-bottom:0rem!important}.vault-header{text-align:center!important}.vault-heading{font-size:3rem!important}}@media (width <= 1200px){.container{padding:7rem 3rem 1rem!important}}\n"], dependencies: [{ kind: "directive", type: i3$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "component", type: i7.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "directive", type: i8.LazyImgDirective, selector: "img" }, { kind: "component", type: ResourceEditCardLazyComponent, selector: "pw-resource-edit-card-lazy", inputs: ["id", "resourceData", "canEdit"], outputs: ["updated"] }, { kind: "pipe", type: i10.TranslocoPipe, name: "transloco" }] }); }
|
|
1126
1415
|
}
|
|
1127
1416
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceNoteCardComponent, decorators: [{
|
|
1128
1417
|
type: Component,
|
|
1129
|
-
args: [{ selector: 'pw-resource-note-card', template: "<section class=\"resource-vault-section bg-white\" *ngIf=\"hasProductReleases()\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isEditingTitle }\">\n <ng-container *ngIf=\"!isEditingTitle; else editTitleBlock\">\n <span *ngIf=\"postTags['product']?.title; else fallback\" [innerHTML]=\"postTags['product']?.title\"></span>\n <ng-template #fallback>Product Release Notes</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditTitle()\" (keydown.enter)=\"toggleEditTitle()\" (keydown.space)=\"toggleEditTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle('product')\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a class=\"view-all\" *ngIf=\"!postSlice\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['product']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasProductReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['product']\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getProductReleasePosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url?.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Product Resource Icon\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Product Resource Default Icon\" />\n </ng-template>\n <ng-template #ctaContent>\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n<section class=\"resource-vault-section bg-white\" *ngIf=\"isReleasePress && hasPressReleases()\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isPressEditingTitle }\">\n <ng-container *ngIf=\"!isPressEditingTitle; else editTitleBlock\">\n <span *ngIf=\"postTags['press']?.title; else fallback\" [innerHTML]=\"postTags['press']?.title\"></span>\n <ng-template #fallback>Press Release Notes</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditPressTitle()\" (keydown.enter)=\"toggleEditPressTitle()\" (keydown.space)=\"toggleEditPressTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isPressEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle('press')\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isPressEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a *ngIf=\"!postSlice\" class=\"view-all\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['press']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasPressReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['press']\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getPressReleasePosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Press Resource Icon\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Press Resource Default Icon\" />\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<pw-trial-4-contact-us *ngIf=\"isResource\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-trial-4-contact-us>", styles: [".bold{font-weight:700}.resource-heading{margin-bottom:2rem}.resource-note{margin-top:1rem;font-size:.85rem;color:#555}.resource-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}.press-release-icon{height:auto!important;margin:0 11px 1.9rem;display:block;align-self:center;width:auto!important;aspect-ratio:0!important;object-fit:cover;margin-top:auto;margin-right:0!important}.resource-vault-section{padding:60px 0;background:#fff;padding-bottom:9rem!important;padding-top:7rem!important;box-shadow:0 4px 32px -14px #40576d4d!important}.resource-vault-section .vault-heading{font-size:3rem;font-weight:300}.resource-vault-section .explore-link{color:#000;font-weight:400;text-decoration:none;font-size:1.5rem}.resource-vault-section .resource-blog-card{display:flex;flex-direction:column;justify-content:space-between;background-color:#fff;border-radius:30px;box-shadow:0 20px 40px #00000014;padding:25px;text-align:center;width:338px;height:auto!important}.resource-vault-section .resource-blog-card h5{font-size:1.5rem;font-weight:400;margin-bottom:.5rem;color:var(--text-color, black)}.resource-vault-section .resource-blog-card p{font-size:1.5rem;color:var(--text-color, black);line-height:2rem}.resource-vault-section .resource-blog-card img{width:100%;border-radius:10px;aspect-ratio:1/1;object-fit:cover;margin-top:auto;margin-right:0!important;max-width:250px!important;align-self:center!important}.resource-vault-section .resource-blog-card iframe{height:210px;border-radius:10px;object-fit:cover;margin-right:0!important;max-width:280px!important}.resource-vault-section .resource-blog-card .resource-btn{background-color:var(--text-color, black);color:#fff;margin-top:auto;padding:10px 24px;border-radius:24px;font-size:1.5rem;font-weight:500;width:100%;max-width:240px;cursor:pointer;transition:background .3s ease;display:flex;justify-content:space-between;align-self:center;align-items:center;text-align:left;text-decoration:none;border:1px solid;box-shadow:none!important;border-color:var(--text-color, black)}.resource-vault-section .resource-blog-card .resource-btn:hover{background:#fff;color:var(--text-color, black)!important}.resource-vault-section .vault-description{text-align:left;max-width:657px;color:#182527;line-height:2.3rem!important;font-size:1.65rem}@media (width <= 1200px){.resource-vault-section .vault-heading{font-size:3.5rem}.resource-vault-section .vault-description{margin-top:1.35rem}.resource-vault-section .resource-btn{margin-left:0!important}}.video-row{gap:5.5rem!important;margin-top:3rem!important}@media (width >= 991px){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}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 768px){.video-row{gap:3rem!important}}@media (max-width: 768px){.resource-vault-section{padding-bottom:6rem!important}.resource-vault-section .container{padding-top:0rem!important;padding-bottom:0rem!important}.vault-header{text-align:center!important}.vault-heading{font-size:3rem!important}}@media (width <= 1200px){.container{padding:7rem 3rem 1rem!important}}\n"] }]
|
|
1418
|
+
args: [{ selector: 'pw-resource-note-card', template: "<section class=\"resource-vault-section bg-white\" *ngIf=\"hasProductReleases()\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isEditingTitle }\">\n <ng-container *ngIf=\"!isEditingTitle; else editTitleBlock\">\n <span *ngIf=\"postTags['product']?.title; else fallback\" [innerHTML]=\"postTags['product']?.title\"></span>\n <ng-template #fallback>Product Release Notes</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditTitle()\" (keydown.enter)=\"toggleEditTitle()\" (keydown.space)=\"toggleEditTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle('product')\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a class=\"view-all\" *ngIf=\"!postSlice\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['product']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasProductReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['product']\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getProductReleasePosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url?.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Product Resource Icon\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Product Resource Default Icon\" />\n </ng-template>\n <ng-template #ctaContent>\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n<section class=\"resource-vault-section bg-white\" *ngIf=\"isReleasePress && hasPressReleases()\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isPressEditingTitle }\">\n <ng-container *ngIf=\"!isPressEditingTitle; else editTitleBlock\">\n <span *ngIf=\"postTags['press']?.title; else fallback\" [innerHTML]=\"postTags['press']?.title\"></span>\n <ng-template #fallback>Press Release Notes</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditPressTitle()\" (keydown.enter)=\"toggleEditPressTitle()\" (keydown.space)=\"toggleEditPressTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isPressEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle('press')\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isPressEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a *ngIf=\"!postSlice\" class=\"view-all\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['press']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasPressReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['press']\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getPressReleasePosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Press Resource Icon\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Press Resource Default Icon\" />\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">\u2192</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n", styles: [".bold{font-weight:700}.resource-heading{margin-bottom:2rem}.resource-note{margin-top:1rem;font-size:.85rem;color:#555}.resource-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}.press-release-icon{height:auto!important;margin:0 11px 1.9rem;display:block;align-self:center;width:auto!important;aspect-ratio:0!important;object-fit:cover;margin-top:auto;margin-right:0!important}.resource-vault-section{padding:60px 0;background:#fff;padding-bottom:9rem!important;padding-top:7rem!important;box-shadow:0 4px 32px -14px #40576d4d!important}.resource-vault-section .vault-heading{font-size:3rem;font-weight:300}.resource-vault-section .explore-link{color:#000;font-weight:400;text-decoration:none;font-size:1.5rem}.resource-vault-section .resource-blog-card{display:flex;flex-direction:column;justify-content:space-between;background-color:#fff;border-radius:30px;box-shadow:0 20px 40px #00000014;padding:25px;text-align:center;width:338px;height:auto!important}.resource-vault-section .resource-blog-card h5{font-size:1.5rem;font-weight:400;margin-bottom:.5rem;color:var(--text-color, black)}.resource-vault-section .resource-blog-card p{font-size:1.5rem;color:var(--text-color, black);line-height:2rem}.resource-vault-section .resource-blog-card img{width:100%;border-radius:10px;aspect-ratio:1/1;object-fit:cover;margin-top:auto;margin-right:0!important;max-width:250px!important;align-self:center!important}.resource-vault-section .resource-blog-card iframe{height:210px;border-radius:10px;object-fit:cover;margin-right:0!important;max-width:280px!important}.resource-vault-section .resource-blog-card .resource-btn{background-color:var(--text-color, black);color:#fff;margin-top:auto;padding:10px 24px;border-radius:24px;font-size:1.5rem;font-weight:500;width:100%;max-width:240px;cursor:pointer;transition:background .3s ease;display:flex;justify-content:space-between;align-self:center;align-items:center;text-align:left;text-decoration:none;border:1px solid;box-shadow:none!important;border-color:var(--text-color, black)}.resource-vault-section .resource-blog-card .resource-btn:hover{background:#fff;color:var(--text-color, black)!important}.resource-vault-section .vault-description{text-align:left;max-width:657px;color:#182527;line-height:2.3rem!important;font-size:1.65rem}@media (width <= 1200px){.resource-vault-section .vault-heading{font-size:3.5rem}.resource-vault-section .vault-description{margin-top:1.35rem}.resource-vault-section .resource-btn{margin-left:0!important}}.video-row{gap:5.5rem!important;margin-top:3rem!important}@media (width >= 991px){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}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 768px){.video-row{gap:3rem!important}}@media (max-width: 768px){.resource-vault-section{padding-bottom:6rem!important}.resource-vault-section .container{padding-top:0rem!important;padding-bottom:0rem!important}.vault-header{text-align:center!important}.vault-heading{font-size:3rem!important}}@media (width <= 1200px){.container{padding:7rem 3rem 1rem!important}}\n"] }]
|
|
1130
1419
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: ResourceService }, { type: i2.TagService }], propDecorators: { releaseHeader: [{
|
|
1131
1420
|
type: Input
|
|
1132
1421
|
}], categoryId: [{
|
|
@@ -1875,7 +2164,8 @@ class ResourceSharedModule {
|
|
|
1875
2164
|
DirectivesModule,
|
|
1876
2165
|
InputTextModule,
|
|
1877
2166
|
InputTextareaModule,
|
|
1878
|
-
ResourceCardsModule
|
|
2167
|
+
ResourceCardsModule,
|
|
2168
|
+
ResourceHeaderModule], exports: [
|
|
1879
2169
|
// Export the 2 components specific to this module
|
|
1880
2170
|
ResourceCompanyCardComponent,
|
|
1881
2171
|
ResourceTopBannerEditComponent,
|
|
@@ -1892,7 +2182,8 @@ class ResourceSharedModule {
|
|
|
1892
2182
|
TranslocoModule,
|
|
1893
2183
|
DirectivesModule,
|
|
1894
2184
|
InputTextModule,
|
|
1895
|
-
InputTextareaModule
|
|
2185
|
+
InputTextareaModule,
|
|
2186
|
+
ResourceHeaderModule] }); }
|
|
1896
2187
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceSharedModule, imports: [CommonModule,
|
|
1897
2188
|
RouterModule,
|
|
1898
2189
|
FormsModule,
|
|
@@ -1904,7 +2195,8 @@ class ResourceSharedModule {
|
|
|
1904
2195
|
DirectivesModule,
|
|
1905
2196
|
InputTextModule,
|
|
1906
2197
|
InputTextareaModule,
|
|
1907
|
-
ResourceCardsModule,
|
|
2198
|
+
ResourceCardsModule,
|
|
2199
|
+
ResourceHeaderModule,
|
|
1908
2200
|
// Export card components module (includes all heavy modules + card components)
|
|
1909
2201
|
ResourceCardsModule,
|
|
1910
2202
|
// Export common lightweight modules
|
|
@@ -1918,7 +2210,8 @@ class ResourceSharedModule {
|
|
|
1918
2210
|
TranslocoModule,
|
|
1919
2211
|
DirectivesModule,
|
|
1920
2212
|
InputTextModule,
|
|
1921
|
-
InputTextareaModule
|
|
2213
|
+
InputTextareaModule,
|
|
2214
|
+
ResourceHeaderModule] }); }
|
|
1922
2215
|
}
|
|
1923
2216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceSharedModule, decorators: [{
|
|
1924
2217
|
type: NgModule,
|
|
@@ -1936,7 +2229,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
1936
2229
|
DirectivesModule,
|
|
1937
2230
|
InputTextModule,
|
|
1938
2231
|
InputTextareaModule,
|
|
1939
|
-
ResourceCardsModule
|
|
2232
|
+
ResourceCardsModule,
|
|
2233
|
+
ResourceHeaderModule
|
|
1940
2234
|
],
|
|
1941
2235
|
exports: [
|
|
1942
2236
|
// Export the 2 components specific to this module
|
|
@@ -1955,7 +2249,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
1955
2249
|
TranslocoModule,
|
|
1956
2250
|
DirectivesModule,
|
|
1957
2251
|
InputTextModule,
|
|
1958
|
-
InputTextareaModule
|
|
2252
|
+
InputTextareaModule,
|
|
2253
|
+
ResourceHeaderModule
|
|
1959
2254
|
],
|
|
1960
2255
|
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
|
1961
2256
|
}]
|
|
@@ -2307,5 +2602,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
2307
2602
|
* Generated bundle index. Do not edit.
|
|
2308
2603
|
*/
|
|
2309
2604
|
|
|
2310
|
-
export { BaseResourceComponent as B, CaseStudyCardComponent as C, ResourceVideoCardComponent as R, Trial4ContactUsComponent as T, UpcomingEventCardComponent as U, ResourceCardComponent as a, ResourceNoteCardComponent as b, ResourceVaultComponent as c,
|
|
2311
|
-
//# sourceMappingURL=posiwise-resource-module-posiwise-resource-module-
|
|
2605
|
+
export { BaseResourceComponent as B, CaseStudyCardComponent as C, ResourceVideoCardComponent as R, Trial4ContactUsComponent as T, UpcomingEventCardComponent as U, ResourceCardComponent as a, ResourceNoteCardComponent as b, ResourceVaultComponent as c, ResourceHeaderComponent as d, ResourceCardsModule as e, ResourceHeaderModule as f, ResourceService as g, ResourceEditCardLazyComponent as h, ResourceSharedModule as i, ResourceTopBannerEditComponent as j, ResourceCompanyCardComponent as k, TestimonialCardListComponent as l, ResourceModule as m, Trial4ContactUsModule as n, ResourcePublicModule as o, ResourceEditModule as p, ResourceHeaderWrapperModule as q, ResourceEditCardComponent as r };
|
|
2606
|
+
//# sourceMappingURL=posiwise-resource-module-posiwise-resource-module-DgYZyzRe.mjs.map
|