@posiwise/resource-module 0.0.183 → 0.0.184
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{posiwise-resource-module-base-top-banner.component-Dd-cEWOK.mjs → posiwise-resource-module-base-top-banner.component-DwVBOTwY.mjs} +5 -5
- package/fesm2022/{posiwise-resource-module-base-top-banner.component-Dd-cEWOK.mjs.map → posiwise-resource-module-base-top-banner.component-DwVBOTwY.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-posiwise-resource-module-CWeJVSOI.mjs → posiwise-resource-module-posiwise-resource-module-CBgwfoFQ.mjs} +80 -80
- package/fesm2022/posiwise-resource-module-posiwise-resource-module-CBgwfoFQ.mjs.map +1 -0
- package/fesm2022/{posiwise-resource-module-resource-blogs.module-DF9jSJ0X.mjs → posiwise-resource-module-resource-blogs.module-B4QePTqE.mjs} +13 -13
- package/fesm2022/{posiwise-resource-module-resource-blogs.module-DF9jSJ0X.mjs.map → posiwise-resource-module-resource-blogs.module-B4QePTqE.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-case-studies.module-BeMlmXY-.mjs → posiwise-resource-module-resource-case-studies.module-FVdm2xZg.mjs} +9 -9
- package/fesm2022/{posiwise-resource-module-resource-case-studies.module-BeMlmXY-.mjs.map → posiwise-resource-module-resource-case-studies.module-FVdm2xZg.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-events.module-DsvJFj3K.mjs → posiwise-resource-module-resource-events.module-D39_eKV0.mjs} +12 -12
- package/fesm2022/{posiwise-resource-module-resource-events.module-DsvJFj3K.mjs.map → posiwise-resource-module-resource-events.module-D39_eKV0.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-hub.module-FmZJs_UC.mjs → posiwise-resource-module-resource-hub.module-BtDEZ2Bi.mjs} +9 -9
- package/fesm2022/{posiwise-resource-module-resource-hub.module-FmZJs_UC.mjs.map → posiwise-resource-module-resource-hub.module-BtDEZ2Bi.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-integrations.module-CGlY0hNK.mjs → posiwise-resource-module-resource-integrations.module-Ccc_gL-v.mjs} +13 -13
- package/fesm2022/{posiwise-resource-module-resource-integrations.module-CGlY0hNK.mjs.map → posiwise-resource-module-resource-integrations.module-Ccc_gL-v.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-post.module-BYxES6zP.mjs → posiwise-resource-module-resource-post.module-DK-IjPjS.mjs} +15 -15
- package/fesm2022/{posiwise-resource-module-resource-post.module-BYxES6zP.mjs.map → posiwise-resource-module-resource-post.module-DK-IjPjS.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-release-notes.module-D5r9nNZn.mjs → posiwise-resource-module-resource-release-notes.module-BCZ7rBO3.mjs} +13 -13
- package/fesm2022/{posiwise-resource-module-resource-release-notes.module-D5r9nNZn.mjs.map → posiwise-resource-module-resource-release-notes.module-BCZ7rBO3.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-root.module-BP_9gdii.mjs → posiwise-resource-module-resource-root.module-XqP-FANH.mjs} +19 -19
- package/fesm2022/{posiwise-resource-module-resource-root.module-BP_9gdii.mjs.map → posiwise-resource-module-resource-root.module-XqP-FANH.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-videos.module-BGOf2jrC.mjs → posiwise-resource-module-resource-videos.module-CVimxK4w.mjs} +13 -13
- package/fesm2022/{posiwise-resource-module-resource-videos.module-BGOf2jrC.mjs.map → posiwise-resource-module-resource-videos.module-CVimxK4w.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-white-papers.module-WOMqD8QC.mjs → posiwise-resource-module-resource-white-papers.module-0VUIWx4N.mjs} +13 -13
- package/fesm2022/{posiwise-resource-module-resource-white-papers.module-WOMqD8QC.mjs.map → posiwise-resource-module-resource-white-papers.module-0VUIWx4N.mjs.map} +1 -1
- package/fesm2022/posiwise-resource-module.mjs +1 -1
- package/package.json +1 -1
- package/fesm2022/posiwise-resource-module-posiwise-resource-module-CWeJVSOI.mjs.map +0 -1
|
@@ -7,7 +7,7 @@ import * as i2 from '@posiwise/common-services';
|
|
|
7
7
|
import { HelperService } from '@posiwise/helper-service';
|
|
8
8
|
import * as i3 from '@angular/common';
|
|
9
9
|
import { CommonModule } from '@angular/common';
|
|
10
|
-
import { R as ResourceVideoCardComponent, U as UpcomingEventCardComponent, a as ResourceCardComponent, C as CaseStudyCardComponent, b as ResourceNoteCardComponent, c as ResourceVaultComponent, d as ResourceCardsModule } from './posiwise-resource-module-posiwise-resource-module-
|
|
10
|
+
import { R as ResourceVideoCardComponent, U as UpcomingEventCardComponent, a as ResourceCardComponent, C as CaseStudyCardComponent, b as ResourceNoteCardComponent, c as ResourceVaultComponent, d as ResourceCardsModule } from './posiwise-resource-module-posiwise-resource-module-CBgwfoFQ.mjs';
|
|
11
11
|
import * as i4 from '@posiwise/resource-contact-us';
|
|
12
12
|
import * as i6 from '@posiwise/utils';
|
|
13
13
|
import * as i3$1 from '@angular/platform-browser';
|
|
@@ -83,10 +83,10 @@ class ResourceTagComponent extends AppBaseComponent {
|
|
|
83
83
|
canEditResources() {
|
|
84
84
|
return this.canEditResourcesValue;
|
|
85
85
|
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
87
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResourceTagComponent, deps: [{ token: i2.TagService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: ResourceTagComponent, isStandalone: false, selector: "pw-resource-tags", inputs: { user: "user", userLoggedIn: "userLoggedIn" }, outputs: { tagsLoaded: "tagsLoaded", tagSelected: "tagSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section class=\"tag-section py-5 bg-white\" *ngIf=\"tags?.length\">\n <div class=\"container\">\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black d-flex justify-content-end mb-3\"\n (click)=\"navigateToTagList()\"\n (keydown.enter)=\"navigateToTagList()\"\n (keydown.space)=\"navigateToTagList()\"\n title=\"Edit Tags\"></i>\n <div class=\"row g-4\">\n <div class=\"col-md-3 col-sm-6 col-6 mb-1 mb-lg-4\" *ngFor=\"let tag of tags\">\n <div (click)=\"selectTag(tag)\" (keydown.enter)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n </div>\n</section>\n", styles: [".selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.tag-section{padding-top:4.5rem!important}\n", ":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}body{background:#fff}.edit-card .in-page-edit-icon{margin-top:1rem!important}.blog-listing{border:1px solid rgb(238,238,238);cursor:pointer;box-shadow:0 4px 12px #00000026}.all-posts{margin:2.5em auto 0;max-width:980px;padding:14px 20px;width:100%}.tag-div{height:100%;display:flex;flex-direction:column;justify-content:space-between}ul.tags{display:inline-flex;font-size:16px;font-weight:400}ul.tags li{color:#337ab7;cursor:pointer;font-weight:600;margin-right:20px}ul.tags li:hover{color:#000}.search{position:relative}.search input{border:0;border-bottom:1px solid rgb(213,206,206)}.search i{position:absolute;right:5px}.scroll-container{max-height:70vh;overflow-y:auto}.blog-list .blog-listing h4{color:#000;font:28px/1.3 Roboto,sans-serif;transition:all .5s}.blog-list .blog-listing h4:hover{color:#0045c7}.blog-list .blog-listing p.body{color:#b3b3b3;font:16px/1.4 Roboto,sans-serif;transition:all .5s;min-height:120px!important;word-break:break-word;overflow-wrap:break-word;white-space:normal}.blog-list .blog-listing p.body:hover{color:#0045c7}.blog-list .blog-listing p.body p{color:inherit;font:inherit;transition:inherit}.blog-list .blog-listing p.body p:hover{color:#0045c7}.blog-list .blog-listing .list-blog-image img{padding:7px 25px 25px}.blog-list .blog-listing .author{padding-top:1.5rem}.blog-list .blog-listing .author .avatar-image{border:1px solid rgb(0,0,0);border-radius:50px;height:50px;clip-path:circle(50% at 50% 50%);width:50px}.blog-list .blog-listing .author .avatar-image img{left:50%;position:relative;top:50%;transform:translate(-50%,-50%)}.blog-list .blog-listing .author .avatar-image .default-user-image{width:50px}.blog-list .blog-listing .author .author-name p.name{color:#000;font:14px/1 Roboto,sans-serif;margin:0;transition:all .5s}.blog-list .blog-listing .author .author-name p.name:hover{color:#0045c7}.blog-list .blog-listing .author .author-name p.name i{color:#000}.blog-list .blog-listing .author .author-name ul li{display:inline-block;padding-right:10px;vertical-align:middle}.blog-list .blog-listing .author .author-name ul li a{color:#b3b3b3;font:12px/1 Roboto,sans-serif}.blog-list .blog-listing .author .share-post{flex-grow:3;position:relative;text-align:right}.blog-list .blog-listing .author .share-post i{color:var(--first)}.blog-list .blog-listing .author .share-post .dropdown-menu{border:0 0;box-shadow:0 3px 8px #0003;left:auto!important;right:12px;top:26px!important;transform:translate(0)!important}.blog-list .blog-listing .blog-view{border-top:1px solid rgb(238,238,238)}.blog-list .blog-listing .blog-view ul li{color:#b3b3b3;font:12px/1 Roboto,sans-serif;padding-right:14px}.blog-list .blog-listing .blog-view ul li a{color:inherit;font:inherit;transition:all .5s}.blog-list .blog-listing .blog-view ul li a:hover{color:#0045c7}.blog-list .blog-listing .blog-view ul li:last-child{flex-grow:3;padding-right:0;text-align:right}.blog-list .blog-listing .blog-view ul li:last-child i{color:#e84a43;font-size:14px}@media only screen and (width <= 1024px){.cust-mt{padding:14px 5px}.cust-mt .blog-list .blog-listing h4{font:20px/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body{font:.9rem/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body p{font:inherit}.cust-mt .blog-list .blog-listing .blog-image{height:300px}}@media only screen and (width <= 767px){.blog-list .blog-listing{height:auto;max-height:none;overflow:visible}.blog-list .blog-listing .blog-view{padding-bottom:1rem}}@media (width >= 768px){.blog-view{bottom:0;width:92%}}.post-body-text:hover{color:var(--titles)!important}.resource-card{border:2px dashed #d4d4d4;border-radius:16px;background-color:#fff;transition:box-shadow .3s ease;cursor:pointer;min-height:95px;padding:1.5rem!important}.resource-card:hover{box-shadow:0 0 30px #00000014}@media (width <= 576px){.resource-card{padding:.3rem 1rem!important;height:100%;min-height:75px}.tag-section{padding-bottom:4.5rem!important}.resource-icon{font-size:2rem!important}.resource-text{font-size:1.2rem!important;line-height:1.6rem!important;word-break:break-word;overflow-wrap:break-word;hyphens:auto}}.selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.resource-icon{font-size:2.5rem;color:var(--first)}.resource-text{font-size:1.4rem;font-weight:500;color:var(--text-color, currentColor);line-height:2rem}.three-dots-wrapper{width:32px;height:32px;display:flex;margin-top:.25rem!important;justify-content:center;cursor:pointer;position:relative;z-index:2}.expand-tags{font-size:1.2rem}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
88
88
|
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResourceTagComponent, decorators: [{
|
|
90
90
|
type: Component,
|
|
91
91
|
args: [{ selector: 'pw-resource-tags', standalone: false, template: "<section class=\"tag-section py-5 bg-white\" *ngIf=\"tags?.length\">\n <div class=\"container\">\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black d-flex justify-content-end mb-3\"\n (click)=\"navigateToTagList()\"\n (keydown.enter)=\"navigateToTagList()\"\n (keydown.space)=\"navigateToTagList()\"\n title=\"Edit Tags\"></i>\n <div class=\"row g-4\">\n <div class=\"col-md-3 col-sm-6 col-6 mb-1 mb-lg-4\" *ngFor=\"let tag of tags\">\n <div (click)=\"selectTag(tag)\" (keydown.enter)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n </div>\n</section>\n", styles: [".selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.tag-section{padding-top:4.5rem!important}\n", ":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}body{background:#fff}.edit-card .in-page-edit-icon{margin-top:1rem!important}.blog-listing{border:1px solid rgb(238,238,238);cursor:pointer;box-shadow:0 4px 12px #00000026}.all-posts{margin:2.5em auto 0;max-width:980px;padding:14px 20px;width:100%}.tag-div{height:100%;display:flex;flex-direction:column;justify-content:space-between}ul.tags{display:inline-flex;font-size:16px;font-weight:400}ul.tags li{color:#337ab7;cursor:pointer;font-weight:600;margin-right:20px}ul.tags li:hover{color:#000}.search{position:relative}.search input{border:0;border-bottom:1px solid rgb(213,206,206)}.search i{position:absolute;right:5px}.scroll-container{max-height:70vh;overflow-y:auto}.blog-list .blog-listing h4{color:#000;font:28px/1.3 Roboto,sans-serif;transition:all .5s}.blog-list .blog-listing h4:hover{color:#0045c7}.blog-list .blog-listing p.body{color:#b3b3b3;font:16px/1.4 Roboto,sans-serif;transition:all .5s;min-height:120px!important;word-break:break-word;overflow-wrap:break-word;white-space:normal}.blog-list .blog-listing p.body:hover{color:#0045c7}.blog-list .blog-listing p.body p{color:inherit;font:inherit;transition:inherit}.blog-list .blog-listing p.body p:hover{color:#0045c7}.blog-list .blog-listing .list-blog-image img{padding:7px 25px 25px}.blog-list .blog-listing .author{padding-top:1.5rem}.blog-list .blog-listing .author .avatar-image{border:1px solid rgb(0,0,0);border-radius:50px;height:50px;clip-path:circle(50% at 50% 50%);width:50px}.blog-list .blog-listing .author .avatar-image img{left:50%;position:relative;top:50%;transform:translate(-50%,-50%)}.blog-list .blog-listing .author .avatar-image .default-user-image{width:50px}.blog-list .blog-listing .author .author-name p.name{color:#000;font:14px/1 Roboto,sans-serif;margin:0;transition:all .5s}.blog-list .blog-listing .author .author-name p.name:hover{color:#0045c7}.blog-list .blog-listing .author .author-name p.name i{color:#000}.blog-list .blog-listing .author .author-name ul li{display:inline-block;padding-right:10px;vertical-align:middle}.blog-list .blog-listing .author .author-name ul li a{color:#b3b3b3;font:12px/1 Roboto,sans-serif}.blog-list .blog-listing .author .share-post{flex-grow:3;position:relative;text-align:right}.blog-list .blog-listing .author .share-post i{color:var(--first)}.blog-list .blog-listing .author .share-post .dropdown-menu{border:0 0;box-shadow:0 3px 8px #0003;left:auto!important;right:12px;top:26px!important;transform:translate(0)!important}.blog-list .blog-listing .blog-view{border-top:1px solid rgb(238,238,238)}.blog-list .blog-listing .blog-view ul li{color:#b3b3b3;font:12px/1 Roboto,sans-serif;padding-right:14px}.blog-list .blog-listing .blog-view ul li a{color:inherit;font:inherit;transition:all .5s}.blog-list .blog-listing .blog-view ul li a:hover{color:#0045c7}.blog-list .blog-listing .blog-view ul li:last-child{flex-grow:3;padding-right:0;text-align:right}.blog-list .blog-listing .blog-view ul li:last-child i{color:#e84a43;font-size:14px}@media only screen and (width <= 1024px){.cust-mt{padding:14px 5px}.cust-mt .blog-list .blog-listing h4{font:20px/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body{font:.9rem/1.3 Roboto,sans-serif}.cust-mt .blog-list .blog-listing p.body p{font:inherit}.cust-mt .blog-list .blog-listing .blog-image{height:300px}}@media only screen and (width <= 767px){.blog-list .blog-listing{height:auto;max-height:none;overflow:visible}.blog-list .blog-listing .blog-view{padding-bottom:1rem}}@media (width >= 768px){.blog-view{bottom:0;width:92%}}.post-body-text:hover{color:var(--titles)!important}.resource-card{border:2px dashed #d4d4d4;border-radius:16px;background-color:#fff;transition:box-shadow .3s ease;cursor:pointer;min-height:95px;padding:1.5rem!important}.resource-card:hover{box-shadow:0 0 30px #00000014}@media (width <= 576px){.resource-card{padding:.3rem 1rem!important;height:100%;min-height:75px}.tag-section{padding-bottom:4.5rem!important}.resource-icon{font-size:2rem!important}.resource-text{font-size:1.2rem!important;line-height:1.6rem!important;word-break:break-word;overflow-wrap:break-word;hyphens:auto}}.selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.resource-icon{font-size:2.5rem;color:var(--first)}.resource-text{font-size:1.4rem;font-weight:500;color:var(--text-color, currentColor);line-height:2rem}.three-dots-wrapper{width:32px;height:32px;display:flex;margin-top:.25rem!important;justify-content:center;cursor:pointer;position:relative;z-index:2}.expand-tags{font-size:1.2rem}\n"] }]
|
|
92
92
|
}], ctorParameters: () => [{ type: i2.TagService }, { type: i0.Injector }], propDecorators: { tagsLoaded: [{
|
|
@@ -228,10 +228,10 @@ class VaultSectionComponent extends AppBaseComponent {
|
|
|
228
228
|
canEditResources() {
|
|
229
229
|
return this.canEditResourcesValue;
|
|
230
230
|
}
|
|
231
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
232
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
231
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: VaultSectionComponent, deps: [{ token: i0.Injector }, { token: i2$1.NgbModal }, { token: i2$2.AdminService }, { token: i3$1.Title }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
232
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: VaultSectionComponent, isStandalone: false, selector: "pw-vault-section", inputs: { user: "user", userLoggedIn: "userLoggedIn" }, viewQueries: [{ propertyName: "editResourceModalRef", first: true, predicate: ["editResourceModal"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n\n <!-- Edit Icon (top-right) -->\n\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <div class=\"d-flex\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n <i\n *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit tag-edit-icon in-page-edit-icon mt-4 ms-3 cursor-pointer\"\n title=\"Edit Resource\"\n (click)=\"openEditResourceModal()\"\n (keydown.enter)=\"openEditResourceModal()\"\n (keydown.space)=\"openEditResourceModal()\"\n ></i>\n </div>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n <ng-container *ngIf=\"resourceImage; else noVideo\">\n <img\n [src]=\"resourceImage\"\n alt=\"Vault Mockup\"\n class=\"img-fluid\"\n width=\"800\"\n height=\"600\"\n fetchpriority=\"high\"\n decoding=\"async\"\n loading=\"eager\" />\n </ng-container>\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<!-- Edit Modal -->\n<ng-template #editResourceModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Resources</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"mb-3\">\n <label for=\"editTagline\" class=\"form-label\">Tagline</label>\n <input id=\"editTagline\" [(ngModel)]=\"editingTagline\" class=\"form-control\" />\n </div>\n <div class=\"mb-3\">\n <label for=\"editDescription\" class=\"form-label\">Description</label>\n <textarea id=\"editDescription\" name=\"editingDescription\" [(ngModel)]=\"editingDescription\" rows=\"4\" class=\"form-control\"></textarea>\n </div>\n <div class=\"mb-3\">\n <span class=\"pw-label-style form-label\" id=\"vault-section-resource-image-label\">Resource Image</span>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img\n [src]=\"image || 'assets/img/resource/blog.png'\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n class=\"image w-100 mb-2\"\n alt=\"Resource content\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ file || image ? 'Edit' : 'Add' }} Picture\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2 cursor-pointer\"\n title=\"Remove Image\"\n (click)=\"removeImage()\"\n (keydown.enter)=\"removeImage()\"></i>\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"modal-footer\">\n <button class=\"btn btn-primary\" (click)=\"saveResourceContent(modal)\">Save</button>\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n </div>\n</ng-template>\n\n\n\n<ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Picture</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file.</small>\n <pw-image-cropper\n [aspectRatio]=\"'dynamic'\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"modal.close()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n", styles: [".vault-section{position:relative;padding:5rem 0;color:#fff;background:linear-gradient(90deg,var(--first) 0%,#a8e1fb 100%);overflow:hidden}.vault-section:after{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:61%;background:#fff;clip-path:polygon(0 18%,100% 0%,100% 100%,0% 100%);z-index:1}.vault-section .container{position:relative;z-index:2}.vault-section .row{min-height:600px;align-items:center}.vault-section .text-content{max-width:550px;height:100%;display:flex;flex-direction:column;justify-content:center}.vault-section .text-content .headline{font-weight:500;color:#fff!important;font-size:4.5rem!important}.vault-section .text-content .description{font-size:2rem;line-height:3rem;font-weight:400;color:var(--text-color, currentColor);margin-bottom:1rem}.vault-section .text-content .description strong{font-weight:700}.vault-section .text-content .cta-btn{display:inline-block;background:var(--text-color, black);color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.vault-section .text-content .cta-btn:hover{background-color:#fff!important;color:var(--text-color, black)!important}.vault-section .img-wrapper{text-align:center;min-height:400px;display:flex;align-items:center;justify-content:center}@media (width >= 991px){.vault-section .img-wrapper{min-height:600px}.vault-section .img-wrapper img,.vault-section .img-wrapper pw-no-data{max-width:800px;max-height:800px;height:auto;width:100%;object-fit:contain}}@media (width >= 991px){.vault-section img,.vault-section pw-no-data{max-width:800px;width:100%;height:auto;position:relative;top:11.6rem}.vault-section .description-content{max-width:500px;position:absolute;margin-top:31rem!important}.vault-section .headline{margin-bottom:21rem!important}}@media (width >= 1100px){.vault-section img,.vault-section pw-no-data{left:25%}}@media (width >= 991px) and (width <= 1100px){.vault-section img,.vault-section pw-no-data{top:12.9rem!important;left:19%}}@media (width <= 991px){.vault-section .vault-row{text-align:center;justify-content:center}.vault-section img,.vault-section pw-no-data{top:5rem!important;position:relative}}@media (width <= 768px){.vault-section .text-content{text-align:center;margin-bottom:2rem;margin-top:3rem!important}.vault-section .text-content .headline{font-size:3rem!important}.vault-section .text-content .description{font-size:1.5rem;line-height:2rem}}.tag-edit-icon{margin-top:2rem!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.LazyImgDirective, selector: "img" }, { kind: "component", type: i6.ProfileImageCropperComponent, selector: "pw-image-cropper", inputs: ["aspectRatio", "dynamicData"], outputs: ["imageSelectionEvent", "closeEvent", "fileChangeEvent"] }, { kind: "component", type: i6$1.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "pipe", type: i10.TranslocoPipe, name: "transloco" }] }); }
|
|
233
233
|
}
|
|
234
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
234
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: VaultSectionComponent, decorators: [{
|
|
235
235
|
type: Component,
|
|
236
236
|
args: [{ selector: 'pw-vault-section', standalone: false, template: "<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n\n <!-- Edit Icon (top-right) -->\n\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <div class=\"d-flex\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n <i\n *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit tag-edit-icon in-page-edit-icon mt-4 ms-3 cursor-pointer\"\n title=\"Edit Resource\"\n (click)=\"openEditResourceModal()\"\n (keydown.enter)=\"openEditResourceModal()\"\n (keydown.space)=\"openEditResourceModal()\"\n ></i>\n </div>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n <ng-container *ngIf=\"resourceImage; else noVideo\">\n <img\n [src]=\"resourceImage\"\n alt=\"Vault Mockup\"\n class=\"img-fluid\"\n width=\"800\"\n height=\"600\"\n fetchpriority=\"high\"\n decoding=\"async\"\n loading=\"eager\" />\n </ng-container>\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<!-- Edit Modal -->\n<ng-template #editResourceModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Resources</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"mb-3\">\n <label for=\"editTagline\" class=\"form-label\">Tagline</label>\n <input id=\"editTagline\" [(ngModel)]=\"editingTagline\" class=\"form-control\" />\n </div>\n <div class=\"mb-3\">\n <label for=\"editDescription\" class=\"form-label\">Description</label>\n <textarea id=\"editDescription\" name=\"editingDescription\" [(ngModel)]=\"editingDescription\" rows=\"4\" class=\"form-control\"></textarea>\n </div>\n <div class=\"mb-3\">\n <span class=\"pw-label-style form-label\" id=\"vault-section-resource-image-label\">Resource Image</span>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img\n [src]=\"image || 'assets/img/resource/blog.png'\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n class=\"image w-100 mb-2\"\n alt=\"Resource content\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ file || image ? 'Edit' : 'Add' }} Picture\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2 cursor-pointer\"\n title=\"Remove Image\"\n (click)=\"removeImage()\"\n (keydown.enter)=\"removeImage()\"></i>\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"modal-footer\">\n <button class=\"btn btn-primary\" (click)=\"saveResourceContent(modal)\">Save</button>\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n </div>\n</ng-template>\n\n\n\n<ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Picture</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file.</small>\n <pw-image-cropper\n [aspectRatio]=\"'dynamic'\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"modal.close()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n", styles: [".vault-section{position:relative;padding:5rem 0;color:#fff;background:linear-gradient(90deg,var(--first) 0%,#a8e1fb 100%);overflow:hidden}.vault-section:after{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:61%;background:#fff;clip-path:polygon(0 18%,100% 0%,100% 100%,0% 100%);z-index:1}.vault-section .container{position:relative;z-index:2}.vault-section .row{min-height:600px;align-items:center}.vault-section .text-content{max-width:550px;height:100%;display:flex;flex-direction:column;justify-content:center}.vault-section .text-content .headline{font-weight:500;color:#fff!important;font-size:4.5rem!important}.vault-section .text-content .description{font-size:2rem;line-height:3rem;font-weight:400;color:var(--text-color, currentColor);margin-bottom:1rem}.vault-section .text-content .description strong{font-weight:700}.vault-section .text-content .cta-btn{display:inline-block;background:var(--text-color, black);color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.vault-section .text-content .cta-btn:hover{background-color:#fff!important;color:var(--text-color, black)!important}.vault-section .img-wrapper{text-align:center;min-height:400px;display:flex;align-items:center;justify-content:center}@media (width >= 991px){.vault-section .img-wrapper{min-height:600px}.vault-section .img-wrapper img,.vault-section .img-wrapper pw-no-data{max-width:800px;max-height:800px;height:auto;width:100%;object-fit:contain}}@media (width >= 991px){.vault-section img,.vault-section pw-no-data{max-width:800px;width:100%;height:auto;position:relative;top:11.6rem}.vault-section .description-content{max-width:500px;position:absolute;margin-top:31rem!important}.vault-section .headline{margin-bottom:21rem!important}}@media (width >= 1100px){.vault-section img,.vault-section pw-no-data{left:25%}}@media (width >= 991px) and (width <= 1100px){.vault-section img,.vault-section pw-no-data{top:12.9rem!important;left:19%}}@media (width <= 991px){.vault-section .vault-row{text-align:center;justify-content:center}.vault-section img,.vault-section pw-no-data{top:5rem!important;position:relative}}@media (width <= 768px){.vault-section .text-content{text-align:center;margin-bottom:2rem;margin-top:3rem!important}.vault-section .text-content .headline{font-size:3rem!important}.vault-section .text-content .description{font-size:1.5rem;line-height:2rem}}.tag-edit-icon{margin-top:2rem!important}\n"] }]
|
|
237
237
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i2$1.NgbModal }, { type: i2$2.AdminService }, { type: i3$1.Title }], propDecorators: { editResourceModalRef: [{
|
|
@@ -302,10 +302,10 @@ class ResourceComponent extends AppBaseComponent {
|
|
|
302
302
|
onVaultLoaded(isLoaded) {
|
|
303
303
|
this.isFooterLoaded = isLoaded;
|
|
304
304
|
}
|
|
305
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
306
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
305
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResourceComponent, deps: [{ token: i2.AuthService }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
306
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: ResourceComponent, isStandalone: false, selector: "pw-resources", usesInheritance: true, ngImport: i0, template: "\n <pw-resource-header [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-header>\n <pw-vault-section [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-vault-section>\n<pw-resource-tags [user]=\"user\" [userLoggedIn]=\"userLoggedIn\" (tagsLoaded)=\"onTagsLoaded($event)\" (tagSelected)=\"scrollToTag($event)\"></pw-resource-tags>\n<pw-resource-video-card id=\"videos\" [tag]=\"getTag('Videos')\" [showVideoSection]=\"true\" *ngIf=\"hasTag('Videos')\" [categoryId]=\"getCategoryIdByTagName('Videos')\" [resourceTitle]=\"getTitleByTagName('Videos')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-video-card>\n<pw-upcoming-event-card id=\"events\" [tag]=\"getTag('Events')\" [showEventContent]=\"true\" *ngIf=\"hasTag('Events')\" [categoryId]=\"getCategoryIdByTagName('Events')\" [resourceTitle]=\"getTitleByTagName('Events')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-upcoming-event-card>\n<pw-resource-cards resourceLink=\"/resources/blogs\" [tag]=\"getTag('Blog Posts')\" id=\"blog-posts\" *ngIf=\"hasTag('Blog Posts')\" [categoryId]=\"getCategoryIdByTagName('Blog Posts')\" [resourceTitle]=\"getTitleByTagName('Blog Posts')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-cards>\n<pw-case-studies-card id=\"case-studies\" [tag]=\"getTag('Case Studies')\" [showCaseStudyHeader]=\"true\" *ngIf=\"hasTag('Case Studies')\" [categoryId]=\"getCategoryIdByTagName('Case Studies')\" [resourceTitle]=\"getTitleByTagName('Case Studies')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-case-studies-card>\n<pw-resource--vault (isLoadedChange)=\"onVaultLoaded($event)\" id=\"white-papers\" [tag]=\"getTag('White Papers')\" [showVaultSection]=\"true\" *ngIf=\"hasTag('White Papers')\" [categoryId]=\"getCategoryIdByTagName('White Papers')\" [resourceTitle]=\"getTitleByTagName('White Papers')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource--vault>\n<pw-resource-note-card [isResource]=\"true\" [isReleasePress]=\"true\" id=\"product-release-notes\" [tag]=\"getTag('Product Release Notes')\" [releaseHeader]=\"true\" *ngIf=\"hasTag('Product Release Notes')\" [categoryId]=\"getCategoryIdByTagName('Product Release Notes')\" [resourceTitle]=\"getTitleByTagName('Product Release Notes')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-note-card>\n<pw-trial-4-contact-us *ngIf=\"isFooterLoaded\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-trial-4-contact-us>", styles: ["::ng-deep .resource-vault-section,::ng-deep .release-notes-section,::ng-deep .resource-section,::ng-deep .vault-section{box-shadow:0 4px 32px -14px #40576d4d!important}\n"], dependencies: [{ kind: "component", type: ResourceVideoCardComponent, selector: "pw-resource-video-card", inputs: ["showVideoSection", "categoryId", "tag", "postSlice", "resourceTitle", "user", "userLoggedIn"] }, { kind: "component", type: UpcomingEventCardComponent, selector: "pw-upcoming-event-card", inputs: ["showEventContent", "categoryId", "tag", "postSlice", "resourceTitle", "user", "userLoggedIn"] }, { kind: "component", type: ResourceCardComponent, selector: "pw-resource-cards", inputs: ["categoryId", "isHeaderVisible", "isRelated", "resourceTitle", "postSlice", "header", "tag", "resourceLink", "user", "userLoggedIn"] }, { kind: "component", type: CaseStudyCardComponent, selector: "pw-case-studies-card", inputs: ["showCaseStudyHeader", "categoryId", "postSlice", "tag", "resourceTitle", "user", "userLoggedIn"] }, { kind: "component", type: ResourceNoteCardComponent, selector: "pw-resource-note-card", inputs: ["releaseHeader", "categoryId", "isReleasePress", "isResource", "postSlice", "resourceTitle", "tag", "user", "userLoggedIn"] }, { kind: "component", type: ResourceVaultComponent, selector: "pw-resource--vault", inputs: ["showVaultSection", "postSlice", "categoryId", "resourceTitle", "tag"], outputs: ["isLoadedChange"] }, { kind: "component", type: i4.Trial4ContactUsComponent, selector: "pw-trial-4-contact-us", inputs: ["subscriptionId", "sourceId", "masterSubscriptionId", "experimentName", "microserviceName", "shardName", "user", "userLoggedIn"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ResourceHeaderComponent, selector: "pw-resource-header", inputs: ["user", "userLoggedIn"] }, { kind: "component", type: ResourceTagComponent, selector: "pw-resource-tags", inputs: ["user", "userLoggedIn"], outputs: ["tagsLoaded", "tagSelected"] }, { kind: "component", type: VaultSectionComponent, selector: "pw-vault-section", inputs: ["user", "userLoggedIn"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
307
307
|
}
|
|
308
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResourceComponent, decorators: [{
|
|
309
309
|
type: Component,
|
|
310
310
|
args: [{ selector: 'pw-resources', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "\n <pw-resource-header [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-header>\n <pw-vault-section [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-vault-section>\n<pw-resource-tags [user]=\"user\" [userLoggedIn]=\"userLoggedIn\" (tagsLoaded)=\"onTagsLoaded($event)\" (tagSelected)=\"scrollToTag($event)\"></pw-resource-tags>\n<pw-resource-video-card id=\"videos\" [tag]=\"getTag('Videos')\" [showVideoSection]=\"true\" *ngIf=\"hasTag('Videos')\" [categoryId]=\"getCategoryIdByTagName('Videos')\" [resourceTitle]=\"getTitleByTagName('Videos')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-video-card>\n<pw-upcoming-event-card id=\"events\" [tag]=\"getTag('Events')\" [showEventContent]=\"true\" *ngIf=\"hasTag('Events')\" [categoryId]=\"getCategoryIdByTagName('Events')\" [resourceTitle]=\"getTitleByTagName('Events')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-upcoming-event-card>\n<pw-resource-cards resourceLink=\"/resources/blogs\" [tag]=\"getTag('Blog Posts')\" id=\"blog-posts\" *ngIf=\"hasTag('Blog Posts')\" [categoryId]=\"getCategoryIdByTagName('Blog Posts')\" [resourceTitle]=\"getTitleByTagName('Blog Posts')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-cards>\n<pw-case-studies-card id=\"case-studies\" [tag]=\"getTag('Case Studies')\" [showCaseStudyHeader]=\"true\" *ngIf=\"hasTag('Case Studies')\" [categoryId]=\"getCategoryIdByTagName('Case Studies')\" [resourceTitle]=\"getTitleByTagName('Case Studies')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-case-studies-card>\n<pw-resource--vault (isLoadedChange)=\"onVaultLoaded($event)\" id=\"white-papers\" [tag]=\"getTag('White Papers')\" [showVaultSection]=\"true\" *ngIf=\"hasTag('White Papers')\" [categoryId]=\"getCategoryIdByTagName('White Papers')\" [resourceTitle]=\"getTitleByTagName('White Papers')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource--vault>\n<pw-resource-note-card [isResource]=\"true\" [isReleasePress]=\"true\" id=\"product-release-notes\" [tag]=\"getTag('Product Release Notes')\" [releaseHeader]=\"true\" *ngIf=\"hasTag('Product Release Notes')\" [categoryId]=\"getCategoryIdByTagName('Product Release Notes')\" [resourceTitle]=\"getTitleByTagName('Product Release Notes')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-note-card>\n<pw-trial-4-contact-us *ngIf=\"isFooterLoaded\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-trial-4-contact-us>", styles: ["::ng-deep .resource-vault-section,::ng-deep .release-notes-section,::ng-deep .resource-section,::ng-deep .vault-section{box-shadow:0 4px 32px -14px #40576d4d!important}\n"] }]
|
|
311
311
|
}], ctorParameters: () => [{ type: i2.AuthService }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }] });
|
|
@@ -316,8 +316,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImpo
|
|
|
316
316
|
* without the unnecessary dependencies from ResourceSharedModule
|
|
317
317
|
*/
|
|
318
318
|
class ResourceRootSharedModule {
|
|
319
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
320
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
319
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResourceRootSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
320
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: ResourceRootSharedModule, imports: [CommonModule,
|
|
321
321
|
FormsModule,
|
|
322
322
|
CoreTranslocoModule,
|
|
323
323
|
TranslocoModule,
|
|
@@ -328,7 +328,7 @@ class ResourceRootSharedModule {
|
|
|
328
328
|
CoreTranslocoModule,
|
|
329
329
|
TranslocoModule,
|
|
330
330
|
ResourceSharedComponentsModule] }); }
|
|
331
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
331
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResourceRootSharedModule, imports: [CommonModule,
|
|
332
332
|
FormsModule,
|
|
333
333
|
CoreTranslocoModule,
|
|
334
334
|
TranslocoModule,
|
|
@@ -340,7 +340,7 @@ class ResourceRootSharedModule {
|
|
|
340
340
|
TranslocoModule,
|
|
341
341
|
ResourceSharedComponentsModule] }); }
|
|
342
342
|
}
|
|
343
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResourceRootSharedModule, decorators: [{
|
|
344
344
|
type: NgModule,
|
|
345
345
|
args: [{
|
|
346
346
|
imports: [
|
|
@@ -375,11 +375,11 @@ const routes = [
|
|
|
375
375
|
}
|
|
376
376
|
];
|
|
377
377
|
class ResourceRootModule {
|
|
378
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
379
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
380
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
378
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResourceRootModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
379
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: ResourceRootModule, declarations: [ResourceComponent, ResourceTagComponent, VaultSectionComponent], imports: [ResourceRootSharedModule, i1$1.RouterModule] }); }
|
|
380
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResourceRootModule, imports: [ResourceRootSharedModule, RouterModule.forChild(routes)] }); }
|
|
381
381
|
}
|
|
382
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
382
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResourceRootModule, decorators: [{
|
|
383
383
|
type: NgModule,
|
|
384
384
|
args: [{
|
|
385
385
|
declarations: [ResourceComponent, ResourceTagComponent, VaultSectionComponent],
|
|
@@ -389,4 +389,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImpo
|
|
|
389
389
|
}] });
|
|
390
390
|
|
|
391
391
|
export { ResourceRootModule };
|
|
392
|
-
//# sourceMappingURL=posiwise-resource-module-resource-root.module-
|
|
392
|
+
//# sourceMappingURL=posiwise-resource-module-resource-root.module-XqP-FANH.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posiwise-resource-module-resource-root.module-BP_9gdii.mjs","sources":["../../../../libs/resource-module/src/lib/public/components/resources/resource-tags/resource-tags.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/resource-tags/resource-tags.component.html","../../../../libs/resource-module/src/lib/public/components/resources/vault-section/vault-section.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/vault-section/vault-section.component.html","../../../../libs/resource-module/src/lib/public/components/resources/resources.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/resources.component.html","../../../../libs/resource-module/src/lib/public/modules/root/resource-root-shared.module.ts","../../../../libs/resource-module/src/lib/public/modules/root/resource-root.module.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Tag, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-resource-tags',\n templateUrl: './resource-tags.component.html',\n styleUrls: [\n './resource-tags.component.scss',\n '../../resources-hub/resources-hub.component.scss'\n ],\n\n standalone: false\n})\nexport class ResourceTagComponent extends AppBaseComponent implements OnInit, OnChanges {\n @Output() tagsLoaded = new EventEmitter<Tag[]>();\n @Output() tagSelected = new EventEmitter<Tag>();\n @Input() user: User;\n @Input() userLoggedIn: boolean;\n\n tags = [];\n subscriptionId: number;\n loading = true;\n loaded = false;\n\n selectedTag: Tag | null = null;\n isMasterSubscription;\n\n canEditResourcesValue = false;\n\n constructor(\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.localStorage.getItem$('product').subscribe(product => {\n const data = product ? JSON.parse(product) : null;\n this.subscriptionId =\n data?.subscriptionId ?? this.appConfig.master_subscription.subscription_id;\n });\n this.getTags();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['user'] || changes['userLoggedIn']) {\n if (this.userLoggedIn && this.user) {\n this.updateCanEditResourcesValue();\n }\n }\n }\n\n navigateToTagList(): void {\n HelperService.navigateToTagList();\n }\n\n selectTag(tag: Tag): void {\n this.selectedTag = tag;\n this.tagSelected.emit(tag);\n }\n\n getTags() {\n this.loading = true;\n this.tagService\n .getTagsByType('post_categories', {}, this.getEffectiveSubscriptionId())\n .subscribe(res => {\n this.tags = (res?.tags ?? [])\n .filter(tag => tag.visible_in_resources)\n .map(tag => ({\n ...tag\n }));\n this.tagsLoaded.emit(this.tags);\n })\n .add(() => {\n this.loading = false;\n this.loaded = true;\n });\n }\n\n /** Helper method to get effective subscription ID */\n private getEffectiveSubscriptionId(): number {\n return HelperService.getEffectiveSubscriptionId(\n this.user,\n this.subscriptionId,\n this.appConfig.master_subscription.subscription_id\n );\n }\n\n private updateCanEditResourcesValue(): void {\n this.canEditResourcesValue = HelperService.canEditResources(\n this.user,\n this.userLoggedIn,\n this.permissionService\n );\n }\n\n canEditResources(): boolean {\n return this.canEditResourcesValue;\n }\n}\n","<section class=\"tag-section py-5 bg-white\" *ngIf=\"tags?.length\">\n <div class=\"container\">\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black d-flex justify-content-end mb-3\"\n (click)=\"navigateToTagList()\"\n (keydown.enter)=\"navigateToTagList()\"\n (keydown.space)=\"navigateToTagList()\"\n title=\"Edit Tags\"></i>\n <div class=\"row g-4\">\n <div class=\"col-md-3 col-sm-6 col-6 mb-1 mb-lg-4\" *ngFor=\"let tag of tags\">\n <div (click)=\"selectTag(tag)\" (keydown.enter)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n </div>\n</section>\n","import {\n Component,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\nimport { AdminService } from '@posiwise/admin-module-utils';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { CustomUploaderComponent } from '@posiwise/utils';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'pw-vault-section',\n templateUrl: './vault-section.component.html',\n styleUrls: ['./vault-section.component.scss'],\n\n standalone: false\n})\nexport class VaultSectionComponent\n extends AppBaseComponent\n implements OnInit, OnChanges, OnDestroy\n{\n @ViewChild('editResourceModal') editResourceModalRef!: TemplateRef<CustomUploaderComponent>;\n @Input() user: User;\n @Input() userLoggedIn: boolean;\n\n companyName;\n resourceTagLine = this.appConfig.pages_config?.resources.resources_tagline;\n resourceImage = this.appConfig.pages_config?.resources.resources_image.url;\n resourceDescription = this.appConfig.pages_config?.resources.resources_description;\n domainId = this.appConfig.domain_id;\n\n image: string | null = null;\n file: File | null = null;\n imageModalRef;\n\n editingTagline = '';\n editingDescription = '';\n\n subscriptionId;\n isMasterSubscription;\n previewResourceImage: { url: string; name: string };\n\n canEditResourcesValue = false;\n\n private seoUpdateTimer;\n\n constructor(\n injector: Injector,\n private readonly modalService: NgbModal,\n private readonly adminService: AdminService,\n private readonly titleService: Title\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.previewResourceImage = {\n url: this.appConfig.pages_config?.resources.resources_image.url ?? '',\n name: 'resources_image.png'\n };\n this.companyName = this.appConfig?.company.name;\n\n // Critical image preloading is now handled server-side for better LCP performance\n\n // Use proper timer management instead of setTimeout\n this.scheduleSEOMetadataUpdate();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['user'] || changes['userLoggedIn']) {\n if (this.userLoggedIn && this.user) {\n this.permissionService.user = this.user;\n this.updateCanEditResourcesValue();\n }\n }\n }\n\n private scheduleSEOMetadataUpdate(): void {\n // Clear any existing timer to prevent multiple timers\n this.clearSEOTimer();\n\n // Schedule the SEO update with proper timer management\n this.seoUpdateTimer = setTimeout(() => {\n this.updateSEOMetadata();\n this.seoUpdateTimer = null; // Clear reference after execution\n }, 2000);\n }\n\n private clearSEOTimer(): void {\n if (this.seoUpdateTimer) {\n clearTimeout(this.seoUpdateTimer);\n this.seoUpdateTimer = null;\n }\n }\n\n private updateSEOMetadata() {\n // Use resource tagline as page title\n if (this.resourceTagLine) {\n this.titleService.setTitle(this.resourceTagLine);\n }\n\n // Use resource description as meta description\n if (this.resourceDescription) {\n this.updateMetaDescription(this.resourceDescription);\n }\n }\n\n private updateMetaDescription(description: string) {\n let metaDescription = document.querySelector('meta[name=\"description\"]');\n if (!metaDescription) {\n metaDescription = document.createElement('meta');\n metaDescription.setAttribute('name', 'description');\n document.head.appendChild(metaDescription);\n }\n metaDescription.setAttribute('content', description);\n }\n\n openEditResourceModal(): void {\n this.editingTagline = this.resourceTagLine;\n this.editingDescription = this.resourceDescription;\n this.image = this.resourceImage;\n this.file = null;\n this.modalService.open(this.editResourceModalRef, { centered: true });\n }\n\n saveResourceContent(modal): void {\n const formData = new FormData();\n\n formData.append('subscription_id', this.getEffectiveSubscriptionId().toString());\n formData.append('resources_tagline', this.editingTagline || '');\n formData.append('resources_description', this.editingDescription || '');\n\n if (this.file) {\n formData.append('resources_image', this.file);\n } else if (!this.image) {\n formData.append('remove_resources_image', 'true');\n }\n this.adminService.updateDomainConfig(this.appConfig?.domain_id, formData).subscribe(() => {\n this.resourceTagLine = this.editingTagline;\n this.resourceDescription = this.editingDescription;\n this.resourceImage = this.image;\n this.toast.success('Resources updated');\n modal.close();\n this.updateSEOMetadata();\n });\n }\n\n openImageModal(modalTemplate): void {\n this.imageModalRef = this.modalService.open(modalTemplate, { centered: true, size: 'md' });\n }\n\n onImageSelected(base64: string): void {\n this.image = base64;\n this.file = HelperService.convertBase64ToFile(base64);\n this.imageModalRef?.close();\n }\n\n removeImage(): void {\n this.image = null;\n this.file = null;\n }\n\n override ngOnDestroy(): void {\n // Clean up timer to prevent memory leaks\n this.clearSEOTimer();\n }\n\n /** Helper method to get effective subscription ID */\n private getEffectiveSubscriptionId(): number {\n return HelperService.getEffectiveSubscriptionId(\n this.user,\n this.subscriptionId,\n this.appConfig.master_subscription.subscription_id\n );\n }\n handleImageError(event: Event, fallbackPath): void {\n HelperService.handleImageFallbackPath(event, fallbackPath);\n }\n\n private updateCanEditResourcesValue(): void {\n if (this.userLoggedIn && this.user) {\n this.canEditResourcesValue = HelperService.canEditResources(\n this.user,\n this.userLoggedIn,\n this.permissionService\n );\n } else {\n this.canEditResourcesValue = false;\n }\n }\n\n canEditResources(): boolean {\n return this.canEditResourcesValue;\n }\n}\n","<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n\n <!-- Edit Icon (top-right) -->\n\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <div class=\"d-flex\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n <i\n *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit tag-edit-icon in-page-edit-icon mt-4 ms-3 cursor-pointer\"\n title=\"Edit Resource\"\n (click)=\"openEditResourceModal()\"\n (keydown.enter)=\"openEditResourceModal()\"\n (keydown.space)=\"openEditResourceModal()\"\n ></i>\n </div>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n <ng-container *ngIf=\"resourceImage; else noVideo\">\n <img\n [src]=\"resourceImage\"\n alt=\"Vault Mockup\"\n class=\"img-fluid\"\n width=\"800\"\n height=\"600\"\n fetchpriority=\"high\"\n decoding=\"async\"\n loading=\"eager\" />\n </ng-container>\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<!-- Edit Modal -->\n<ng-template #editResourceModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Resources</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"mb-3\">\n <label for=\"editTagline\" class=\"form-label\">Tagline</label>\n <input id=\"editTagline\" [(ngModel)]=\"editingTagline\" class=\"form-control\" />\n </div>\n <div class=\"mb-3\">\n <label for=\"editDescription\" class=\"form-label\">Description</label>\n <textarea id=\"editDescription\" name=\"editingDescription\" [(ngModel)]=\"editingDescription\" rows=\"4\" class=\"form-control\"></textarea>\n </div>\n <div class=\"mb-3\">\n <span class=\"pw-label-style form-label\" id=\"vault-section-resource-image-label\">Resource Image</span>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img\n [src]=\"image || 'assets/img/resource/blog.png'\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n class=\"image w-100 mb-2\"\n alt=\"Resource content\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ file || image ? 'Edit' : 'Add' }} Picture\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2 cursor-pointer\"\n title=\"Remove Image\"\n (click)=\"removeImage()\"\n (keydown.enter)=\"removeImage()\"></i>\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"modal-footer\">\n <button class=\"btn btn-primary\" (click)=\"saveResourceContent(modal)\">Save</button>\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n </div>\n</ng-template>\n\n\n\n<ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Picture</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file.</small>\n <pw-image-cropper\n [aspectRatio]=\"'dynamic'\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"modal.close()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Injector,\n OnInit\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { AuthService } from '@posiwise/common-services';\nimport { Tag, User } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-resources',\n templateUrl: './resources.component.html',\n styleUrls: ['./resources.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n standalone: false\n})\nexport class ResourceComponent extends AppBaseComponent implements OnInit {\n allTags: Tag[] = [];\n user: User;\n userLoggedIn: boolean;\n isFooterLoaded: boolean;\n\n constructor(\n private readonly authService: AuthService,\n private readonly cdr: ChangeDetectorRef,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.authService.getToken$().subscribe(res => {\n this.userLoggedIn = !!res;\n this.cdr.markForCheck();\n if (this.userLoggedIn) {\n this.userService.getUserInfo().subscribe(data => {\n this.user = data;\n this.cdr.markForCheck();\n });\n }\n });\n }\n\n onTagsLoaded(tags: Tag[]) {\n this.allTags = tags;\n this.cdr.markForCheck();\n }\n\n hasTag(name: string): boolean {\n return this.allTags.some(tag => tag.name?.toLowerCase() === name.toLowerCase());\n }\n\n getCategoryIdByTagName(name: string): number | undefined {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag?.tag_category_id;\n }\n\n getTag(name: string) {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag;\n }\n\n getTitleByTagName(name: string): string | undefined {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag?.title;\n }\n\n scrollToTag(tag: Tag) {\n const sectionMap: { [key: string]: string } = {\n Videos: 'videos',\n Events: 'events',\n 'Blog Posts': 'blog-posts',\n 'Case Studies': 'case-studies',\n 'White Papers': 'white-papers',\n 'Product Release Notes': 'product-release-notes'\n };\n\n const sectionId = sectionMap[tag.name?.trim()];\n if (sectionId) {\n setTimeout(() => {\n const el = document.getElementById(sectionId);\n if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }, 100);\n }\n }\n\n onVaultLoaded(isLoaded: boolean) {\n this.isFooterLoaded = isLoaded;\n }\n}\n","\n <pw-resource-header [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-header>\n <pw-vault-section [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-vault-section>\n<pw-resource-tags [user]=\"user\" [userLoggedIn]=\"userLoggedIn\" (tagsLoaded)=\"onTagsLoaded($event)\" (tagSelected)=\"scrollToTag($event)\"></pw-resource-tags>\n<pw-resource-video-card id=\"videos\" [tag]=\"getTag('Videos')\" [showVideoSection]=\"true\" *ngIf=\"hasTag('Videos')\" [categoryId]=\"getCategoryIdByTagName('Videos')\" [resourceTitle]=\"getTitleByTagName('Videos')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-video-card>\n<pw-upcoming-event-card id=\"events\" [tag]=\"getTag('Events')\" [showEventContent]=\"true\" *ngIf=\"hasTag('Events')\" [categoryId]=\"getCategoryIdByTagName('Events')\" [resourceTitle]=\"getTitleByTagName('Events')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-upcoming-event-card>\n<pw-resource-cards resourceLink=\"/resources/blogs\" [tag]=\"getTag('Blog Posts')\" id=\"blog-posts\" *ngIf=\"hasTag('Blog Posts')\" [categoryId]=\"getCategoryIdByTagName('Blog Posts')\" [resourceTitle]=\"getTitleByTagName('Blog Posts')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-cards>\n<pw-case-studies-card id=\"case-studies\" [tag]=\"getTag('Case Studies')\" [showCaseStudyHeader]=\"true\" *ngIf=\"hasTag('Case Studies')\" [categoryId]=\"getCategoryIdByTagName('Case Studies')\" [resourceTitle]=\"getTitleByTagName('Case Studies')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-case-studies-card>\n<pw-resource--vault (isLoadedChange)=\"onVaultLoaded($event)\" id=\"white-papers\" [tag]=\"getTag('White Papers')\" [showVaultSection]=\"true\" *ngIf=\"hasTag('White Papers')\" [categoryId]=\"getCategoryIdByTagName('White Papers')\" [resourceTitle]=\"getTitleByTagName('White Papers')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource--vault>\n<pw-resource-note-card [isResource]=\"true\" [isReleasePress]=\"true\" id=\"product-release-notes\" [tag]=\"getTag('Product Release Notes')\" [releaseHeader]=\"true\" *ngIf=\"hasTag('Product Release Notes')\" [categoryId]=\"getCategoryIdByTagName('Product Release Notes')\" [resourceTitle]=\"getTitleByTagName('Product Release Notes')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-note-card>\n<pw-trial-4-contact-us *ngIf=\"isFooterLoaded\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-trial-4-contact-us>","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { ResourceSharedComponentsModule } from '@posiwise/shared-components';\n\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { ResourceCardsModule } from '../../shared/resource-cards.module';\n\n/**\n * Shared module specifically for ResourceRootModule\n * Imports only the essential modules needed by the root resource page\n * without the unnecessary dependencies from ResourceSharedModule\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n CoreTranslocoModule,\n TranslocoModule,\n ResourceSharedComponentsModule,\n ResourceCardsModule\n ],\n exports: [\n ResourceCardsModule,\n CommonModule,\n FormsModule,\n CoreTranslocoModule,\n TranslocoModule,\n ResourceSharedComponentsModule\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourceRootSharedModule {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { ResourceTagComponent } from '../../components/resources/resource-tags/resource-tags.component';\nimport { ResourceComponent } from '../../components/resources/resources.component';\nimport { VaultSectionComponent } from '../../components/resources/vault-section/vault-section.component';\n\nimport { ResourceRootSharedModule } from './resource-root-shared.module';\n\nconst routes: Routes = [\n {\n path: '',\n component: ResourceComponent,\n data: {\n title: 'Resources Library',\n permission: 'Pages.Blog',\n preload: false\n }\n }\n];\n\n@NgModule({\n declarations: [ResourceComponent, ResourceTagComponent, VaultSectionComponent],\n imports: [ResourceRootSharedModule, RouterModule.forChild(routes)],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourceRootModule {}\n"],"names":["i1","i2","i3","i4","i5","i6","i7","i8","i9","i2.ResourceVideoCardComponent","i3.UpcomingEventCardComponent","i4.ResourceCardComponent","i5.CaseStudyCardComponent","i6.ResourceNoteCardComponent","i7.ResourceVaultComponent","i10","i11.ResourceTagComponent","i12.VaultSectionComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA0BM,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;IAgBtD,WACqB,CAAA,UAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC;QAHE,IAAU,CAAA,UAAA,GAAV,UAAU;AAhBrB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAS;AACtC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO;QAI/C,IAAI,CAAA,IAAA,GAAG,EAAE;QAET,IAAO,CAAA,OAAA,GAAG,IAAI;QACd,IAAM,CAAA,MAAA,GAAG,KAAK;QAEd,IAAW,CAAA,WAAA,GAAe,IAAI;QAG9B,IAAqB,CAAA,qBAAA,GAAG,KAAK;;IAS7B,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,IAAG;AACtD,YAAA,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;AACjD,YAAA,IAAI,CAAC,cAAc;gBACf,IAAI,EAAE,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe;AAClF,SAAC,CAAC;QACF,IAAI,CAAC,OAAO,EAAE;;AAGlB,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;YAC5C,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE;gBAChC,IAAI,CAAC,2BAA2B,EAAE;;;;IAK9C,iBAAiB,GAAA;QACb,aAAa,CAAC,iBAAiB,EAAE;;AAGrC,IAAA,SAAS,CAAC,GAAQ,EAAA;AACd,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;;IAG9B,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC;aACA,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,0BAA0B,EAAE;aACtE,SAAS,CAAC,GAAG,IAAG;YACb,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE;iBACvB,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB;AACtC,iBAAA,GAAG,CAAC,GAAG,KAAK;AACT,gBAAA,GAAG;AACN,aAAA,CAAC,CAAC;YACP,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,SAAC;aACA,GAAG,CAAC,MAAK;AACN,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AACtB,SAAC,CAAC;;;IAIF,0BAA0B,GAAA;QAC9B,OAAO,aAAa,CAAC,0BAA0B,CAC3C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CACrD;;IAGG,2BAA2B,GAAA;AAC/B,QAAA,IAAI,CAAC,qBAAqB,GAAG,aAAa,CAAC,gBAAgB,CACvD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,iBAAiB,CACzB;;IAGL,gBAAgB,GAAA;QACZ,OAAO,IAAI,CAAC,qBAAqB;;+GArF5B,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,oPC1BjC,68BAkBA,EAAA,MAAA,EAAA,CAAA,sHAAA,EAAA,isJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDQa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAOhB,KAAK,EAAA,QAAA,EAAA,68BAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,EAAA,isJAAA,CAAA,EAAA;sGAGP,UAAU,EAAA,CAAA;sBAAnB;gBACS,WAAW,EAAA,CAAA;sBAApB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,YAAY,EAAA,CAAA;sBAApB;;;AEFC,MAAO,qBACT,SAAQ,gBAAgB,CAAA;AA4BxB,IAAA,WAAA,CACI,QAAkB,EACD,YAAsB,EACtB,YAA0B,EAC1B,YAAmB,EAAA;QAEpC,KAAK,CAAC,QAAQ,CAAC;QAJE,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAY,CAAA,YAAA,GAAZ,YAAY;QAxBjC,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,iBAAiB;AAC1E,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,eAAe,CAAC,GAAG;QAC1E,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,qBAAqB;AAClF,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS;QAEnC,IAAK,CAAA,KAAA,GAAkB,IAAI;QAC3B,IAAI,CAAA,IAAA,GAAgB,IAAI;QAGxB,IAAc,CAAA,cAAA,GAAG,EAAE;QACnB,IAAkB,CAAA,kBAAA,GAAG,EAAE;QAMvB,IAAqB,CAAA,qBAAA,GAAG,KAAK;;IAa7B,QAAQ,GAAA;QACJ,IAAI,CAAC,oBAAoB,GAAG;AACxB,YAAA,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE;AACrE,YAAA,IAAI,EAAE;SACT;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI;;;QAK/C,IAAI,CAAC,yBAAyB,EAAE;;AAGpC,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;YAC5C,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE;gBAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;gBACvC,IAAI,CAAC,2BAA2B,EAAE;;;;IAKtC,yBAAyB,GAAA;;QAE7B,IAAI,CAAC,aAAa,EAAE;;AAGpB,QAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,MAAK;YAClC,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC9B,EAAE,IAAI,CAAC;;IAGJ,aAAa,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;;IAI1B,iBAAiB,GAAA;;AAErB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;;;AAIpD,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC1B,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC;;;AAIpD,IAAA,qBAAqB,CAAC,WAAmB,EAAA;QAC7C,IAAI,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC;QACxE,IAAI,CAAC,eAAe,EAAE;AAClB,YAAA,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAChD,YAAA,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC;AACnD,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;;AAE9C,QAAA,eAAe,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC;;IAGxD,qBAAqB,GAAA;AACjB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe;AAC1C,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB;AAClD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa;AAC/B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AAGzE,IAAA,mBAAmB,CAAC,KAAK,EAAA;AACrB,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAE/B,QAAA,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAAC,QAAQ,EAAE,CAAC;QAChF,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QAC/D,QAAQ,CAAC,MAAM,CAAC,uBAAuB,EAAE,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;AAEvE,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC;;AAC1C,aAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACpB,YAAA,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC;;AAErD,QAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAK;AACrF,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc;AAC1C,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB;AAClD,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK;AAC/B,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACvC,KAAK,CAAC,KAAK,EAAE;YACb,IAAI,CAAC,iBAAiB,EAAE;AAC5B,SAAC,CAAC;;AAGN,IAAA,cAAc,CAAC,aAAa,EAAA;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;AAG9F,IAAA,eAAe,CAAC,MAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM;QACnB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC;AACrD,QAAA,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;;IAG/B,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;IAGX,WAAW,GAAA;;QAEhB,IAAI,CAAC,aAAa,EAAE;;;IAIhB,0BAA0B,GAAA;QAC9B,OAAO,aAAa,CAAC,0BAA0B,CAC3C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CACrD;;IAEL,gBAAgB,CAAC,KAAY,EAAE,YAAY,EAAA;AACvC,QAAA,aAAa,CAAC,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC;;IAGtD,2BAA2B,GAAA;QAC/B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE;AAChC,YAAA,IAAI,CAAC,qBAAqB,GAAG,aAAa,CAAC,gBAAgB,CACvD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,iBAAiB,CACzB;;aACE;AACH,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;;;IAI1C,gBAAgB,GAAA;QACZ,OAAO,IAAI,CAAC,qBAAqB;;+GA/K5B,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,4SC5BlC,grIA8GA,EAAA,MAAA,EAAA,CAAA,o/EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDlFa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAIhB,KAAK,EAAA,QAAA,EAAA,grIAAA,EAAA,MAAA,EAAA,CAAA,o/EAAA,CAAA,EAAA;yJAMe,oBAAoB,EAAA,CAAA;sBAAnD,SAAS;uBAAC,mBAAmB;gBACrB,IAAI,EAAA,CAAA;sBAAZ;gBACQ,YAAY,EAAA,CAAA;sBAApB;;;AEdC,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;AAMnD,IAAA,WAAA,CACqB,WAAwB,EACxB,GAAsB,EACvC,QAAkB,EAAA;QAElB,KAAK,CAAC,QAAQ,CAAC;QAJE,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAG,CAAA,GAAA,GAAH,GAAG;QAPxB,IAAO,CAAA,OAAA,GAAU,EAAE;;IAanB,QAAQ,GAAA;QACJ,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,GAAG,IAAG;AACzC,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG;AACzB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACvB,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,IAAG;AAC5C,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,oBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AAC3B,iBAAC,CAAC;;AAEV,SAAC,CAAC;;AAGN,IAAA,YAAY,CAAC,IAAW,EAAA;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAG3B,IAAA,MAAM,CAAC,IAAY,EAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;;AAGnF,IAAA,sBAAsB,CAAC,IAAY,EAAA;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAChF,OAAO,GAAG,EAAE,eAAe;;AAG/B,IAAA,MAAM,CAAC,IAAY,EAAA;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;AAChF,QAAA,OAAO,GAAG;;AAGd,IAAA,iBAAiB,CAAC,IAAY,EAAA;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAChF,OAAO,GAAG,EAAE,KAAK;;AAGrB,IAAA,WAAW,CAAC,GAAQ,EAAA;AAChB,QAAA,MAAM,UAAU,GAA8B;AAC1C,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,YAAY,EAAE,YAAY;AAC1B,YAAA,cAAc,EAAE,cAAc;AAC9B,YAAA,cAAc,EAAE,cAAc;AAC9B,YAAA,uBAAuB,EAAE;SAC5B;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9C,IAAI,SAAS,EAAE;YACX,UAAU,CAAC,MAAK;gBACZ,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;AAC7C,gBAAA,IAAI,EAAE;AAAE,oBAAA,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;aACpE,EAAE,GAAG,CAAC;;;AAIf,IAAA,aAAa,CAAC,QAAiB,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ;;+GAvEzB,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,gGCpB9B,s5EAUkH,EAAA,MAAA,EAAA,CAAA,4KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,KAAA,EAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,KAAA,EAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,cAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,eAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,EAAA,KAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDUrG,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAGP,eAAA,EAAA,uBAAuB,CAAC,MAAM,cAEnC,KAAK,EAAA,QAAA,EAAA,s5EAAA,EAAA,MAAA,EAAA,CAAA,4KAAA,CAAA,EAAA;;;AEPrB;;;;AAIG;MAoBU,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAjB7B,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,8BAA8B;AAC9B,YAAA,mBAAmB,aAGnB,mBAAmB;YACnB,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,8BAA8B,CAAA,EAAA,CAAA,CAAA;AAIzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAjB7B,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,8BAA8B;AAC9B,YAAA,mBAAmB,EAGnB,mBAAmB;YACnB,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,8BAA8B,CAAA,EAAA,CAAA,CAAA;;4FAIzB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAnBpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,eAAe;wBACf,8BAA8B;wBAC9B;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,mBAAmB;wBACnB,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,eAAe;wBACf;AACH,qBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB;AACnC,iBAAA;;;ACzBD,MAAM,MAAM,GAAW;AACnB,IAAA;AACI,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,IAAI,EAAE;AACF,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,OAAO,EAAE;AACZ;AACJ;CACJ;MAOY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBAJZ,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB,aACnE,wBAAwB,EAAAjB,IAAA,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA;gHAGzB,kBAAkB,EAAA,OAAA,EAAA,CAHjB,wBAAwB,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,EAAA,CAAA,CAAA;;4FAGxD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB,CAAC;oBAC9E,OAAO,EAAE,CAAC,wBAAwB,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAClE,OAAO,EAAE,CAAC,sBAAsB;AACnC,iBAAA;;;;;"}
|
|
1
|
+
{"version":3,"file":"posiwise-resource-module-resource-root.module-XqP-FANH.mjs","sources":["../../../../libs/resource-module/src/lib/public/components/resources/resource-tags/resource-tags.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/resource-tags/resource-tags.component.html","../../../../libs/resource-module/src/lib/public/components/resources/vault-section/vault-section.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/vault-section/vault-section.component.html","../../../../libs/resource-module/src/lib/public/components/resources/resources.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/resources.component.html","../../../../libs/resource-module/src/lib/public/modules/root/resource-root-shared.module.ts","../../../../libs/resource-module/src/lib/public/modules/root/resource-root.module.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Tag, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-resource-tags',\n templateUrl: './resource-tags.component.html',\n styleUrls: [\n './resource-tags.component.scss',\n '../../resources-hub/resources-hub.component.scss'\n ],\n\n standalone: false\n})\nexport class ResourceTagComponent extends AppBaseComponent implements OnInit, OnChanges {\n @Output() tagsLoaded = new EventEmitter<Tag[]>();\n @Output() tagSelected = new EventEmitter<Tag>();\n @Input() user: User;\n @Input() userLoggedIn: boolean;\n\n tags = [];\n subscriptionId: number;\n loading = true;\n loaded = false;\n\n selectedTag: Tag | null = null;\n isMasterSubscription;\n\n canEditResourcesValue = false;\n\n constructor(\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.localStorage.getItem$('product').subscribe(product => {\n const data = product ? JSON.parse(product) : null;\n this.subscriptionId =\n data?.subscriptionId ?? this.appConfig.master_subscription.subscription_id;\n });\n this.getTags();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['user'] || changes['userLoggedIn']) {\n if (this.userLoggedIn && this.user) {\n this.updateCanEditResourcesValue();\n }\n }\n }\n\n navigateToTagList(): void {\n HelperService.navigateToTagList();\n }\n\n selectTag(tag: Tag): void {\n this.selectedTag = tag;\n this.tagSelected.emit(tag);\n }\n\n getTags() {\n this.loading = true;\n this.tagService\n .getTagsByType('post_categories', {}, this.getEffectiveSubscriptionId())\n .subscribe(res => {\n this.tags = (res?.tags ?? [])\n .filter(tag => tag.visible_in_resources)\n .map(tag => ({\n ...tag\n }));\n this.tagsLoaded.emit(this.tags);\n })\n .add(() => {\n this.loading = false;\n this.loaded = true;\n });\n }\n\n /** Helper method to get effective subscription ID */\n private getEffectiveSubscriptionId(): number {\n return HelperService.getEffectiveSubscriptionId(\n this.user,\n this.subscriptionId,\n this.appConfig.master_subscription.subscription_id\n );\n }\n\n private updateCanEditResourcesValue(): void {\n this.canEditResourcesValue = HelperService.canEditResources(\n this.user,\n this.userLoggedIn,\n this.permissionService\n );\n }\n\n canEditResources(): boolean {\n return this.canEditResourcesValue;\n }\n}\n","<section class=\"tag-section py-5 bg-white\" *ngIf=\"tags?.length\">\n <div class=\"container\">\n <i *ngIf=\"userLoggedIn && user?.auth?.granted['Pages.Admin']\"\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black d-flex justify-content-end mb-3\"\n (click)=\"navigateToTagList()\"\n (keydown.enter)=\"navigateToTagList()\"\n (keydown.space)=\"navigateToTagList()\"\n title=\"Edit Tags\"></i>\n <div class=\"row g-4\">\n <div class=\"col-md-3 col-sm-6 col-6 mb-1 mb-lg-4\" *ngFor=\"let tag of tags\">\n <div (click)=\"selectTag(tag)\" (keydown.enter)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n <i *ngIf=\"tag?.icon_name\" class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n </div>\n </div>\n</section>\n","import {\n Component,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\nimport { AdminService } from '@posiwise/admin-module-utils';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { CustomUploaderComponent } from '@posiwise/utils';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'pw-vault-section',\n templateUrl: './vault-section.component.html',\n styleUrls: ['./vault-section.component.scss'],\n\n standalone: false\n})\nexport class VaultSectionComponent\n extends AppBaseComponent\n implements OnInit, OnChanges, OnDestroy\n{\n @ViewChild('editResourceModal') editResourceModalRef!: TemplateRef<CustomUploaderComponent>;\n @Input() user: User;\n @Input() userLoggedIn: boolean;\n\n companyName;\n resourceTagLine = this.appConfig.pages_config?.resources.resources_tagline;\n resourceImage = this.appConfig.pages_config?.resources.resources_image.url;\n resourceDescription = this.appConfig.pages_config?.resources.resources_description;\n domainId = this.appConfig.domain_id;\n\n image: string | null = null;\n file: File | null = null;\n imageModalRef;\n\n editingTagline = '';\n editingDescription = '';\n\n subscriptionId;\n isMasterSubscription;\n previewResourceImage: { url: string; name: string };\n\n canEditResourcesValue = false;\n\n private seoUpdateTimer;\n\n constructor(\n injector: Injector,\n private readonly modalService: NgbModal,\n private readonly adminService: AdminService,\n private readonly titleService: Title\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.previewResourceImage = {\n url: this.appConfig.pages_config?.resources.resources_image.url ?? '',\n name: 'resources_image.png'\n };\n this.companyName = this.appConfig?.company.name;\n\n // Critical image preloading is now handled server-side for better LCP performance\n\n // Use proper timer management instead of setTimeout\n this.scheduleSEOMetadataUpdate();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['user'] || changes['userLoggedIn']) {\n if (this.userLoggedIn && this.user) {\n this.permissionService.user = this.user;\n this.updateCanEditResourcesValue();\n }\n }\n }\n\n private scheduleSEOMetadataUpdate(): void {\n // Clear any existing timer to prevent multiple timers\n this.clearSEOTimer();\n\n // Schedule the SEO update with proper timer management\n this.seoUpdateTimer = setTimeout(() => {\n this.updateSEOMetadata();\n this.seoUpdateTimer = null; // Clear reference after execution\n }, 2000);\n }\n\n private clearSEOTimer(): void {\n if (this.seoUpdateTimer) {\n clearTimeout(this.seoUpdateTimer);\n this.seoUpdateTimer = null;\n }\n }\n\n private updateSEOMetadata() {\n // Use resource tagline as page title\n if (this.resourceTagLine) {\n this.titleService.setTitle(this.resourceTagLine);\n }\n\n // Use resource description as meta description\n if (this.resourceDescription) {\n this.updateMetaDescription(this.resourceDescription);\n }\n }\n\n private updateMetaDescription(description: string) {\n let metaDescription = document.querySelector('meta[name=\"description\"]');\n if (!metaDescription) {\n metaDescription = document.createElement('meta');\n metaDescription.setAttribute('name', 'description');\n document.head.appendChild(metaDescription);\n }\n metaDescription.setAttribute('content', description);\n }\n\n openEditResourceModal(): void {\n this.editingTagline = this.resourceTagLine;\n this.editingDescription = this.resourceDescription;\n this.image = this.resourceImage;\n this.file = null;\n this.modalService.open(this.editResourceModalRef, { centered: true });\n }\n\n saveResourceContent(modal): void {\n const formData = new FormData();\n\n formData.append('subscription_id', this.getEffectiveSubscriptionId().toString());\n formData.append('resources_tagline', this.editingTagline || '');\n formData.append('resources_description', this.editingDescription || '');\n\n if (this.file) {\n formData.append('resources_image', this.file);\n } else if (!this.image) {\n formData.append('remove_resources_image', 'true');\n }\n this.adminService.updateDomainConfig(this.appConfig?.domain_id, formData).subscribe(() => {\n this.resourceTagLine = this.editingTagline;\n this.resourceDescription = this.editingDescription;\n this.resourceImage = this.image;\n this.toast.success('Resources updated');\n modal.close();\n this.updateSEOMetadata();\n });\n }\n\n openImageModal(modalTemplate): void {\n this.imageModalRef = this.modalService.open(modalTemplate, { centered: true, size: 'md' });\n }\n\n onImageSelected(base64: string): void {\n this.image = base64;\n this.file = HelperService.convertBase64ToFile(base64);\n this.imageModalRef?.close();\n }\n\n removeImage(): void {\n this.image = null;\n this.file = null;\n }\n\n override ngOnDestroy(): void {\n // Clean up timer to prevent memory leaks\n this.clearSEOTimer();\n }\n\n /** Helper method to get effective subscription ID */\n private getEffectiveSubscriptionId(): number {\n return HelperService.getEffectiveSubscriptionId(\n this.user,\n this.subscriptionId,\n this.appConfig.master_subscription.subscription_id\n );\n }\n handleImageError(event: Event, fallbackPath): void {\n HelperService.handleImageFallbackPath(event, fallbackPath);\n }\n\n private updateCanEditResourcesValue(): void {\n if (this.userLoggedIn && this.user) {\n this.canEditResourcesValue = HelperService.canEditResources(\n this.user,\n this.userLoggedIn,\n this.permissionService\n );\n } else {\n this.canEditResourcesValue = false;\n }\n }\n\n canEditResources(): boolean {\n return this.canEditResourcesValue;\n }\n}\n","<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n\n <!-- Edit Icon (top-right) -->\n\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <div class=\"d-flex\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n <i\n *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit tag-edit-icon in-page-edit-icon mt-4 ms-3 cursor-pointer\"\n title=\"Edit Resource\"\n (click)=\"openEditResourceModal()\"\n (keydown.enter)=\"openEditResourceModal()\"\n (keydown.space)=\"openEditResourceModal()\"\n ></i>\n </div>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n <ng-container *ngIf=\"resourceImage; else noVideo\">\n <img\n [src]=\"resourceImage\"\n alt=\"Vault Mockup\"\n class=\"img-fluid\"\n width=\"800\"\n height=\"600\"\n fetchpriority=\"high\"\n decoding=\"async\"\n loading=\"eager\" />\n </ng-container>\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<!-- Edit Modal -->\n<ng-template #editResourceModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Resources</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"mb-3\">\n <label for=\"editTagline\" class=\"form-label\">Tagline</label>\n <input id=\"editTagline\" [(ngModel)]=\"editingTagline\" class=\"form-control\" />\n </div>\n <div class=\"mb-3\">\n <label for=\"editDescription\" class=\"form-label\">Description</label>\n <textarea id=\"editDescription\" name=\"editingDescription\" [(ngModel)]=\"editingDescription\" rows=\"4\" class=\"form-control\"></textarea>\n </div>\n <div class=\"mb-3\">\n <span class=\"pw-label-style form-label\" id=\"vault-section-resource-image-label\">Resource Image</span>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img\n [src]=\"image || 'assets/img/resource/blog.png'\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n class=\"image w-100 mb-2\"\n alt=\"Resource content\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ file || image ? 'Edit' : 'Add' }} Picture\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2 cursor-pointer\"\n title=\"Remove Image\"\n (click)=\"removeImage()\"\n (keydown.enter)=\"removeImage()\"></i>\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"modal-footer\">\n <button class=\"btn btn-primary\" (click)=\"saveResourceContent(modal)\">Save</button>\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n </div>\n</ng-template>\n\n\n\n<ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Picture</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file.</small>\n <pw-image-cropper\n [aspectRatio]=\"'dynamic'\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"modal.close()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Injector,\n OnInit\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { AuthService } from '@posiwise/common-services';\nimport { Tag, User } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-resources',\n templateUrl: './resources.component.html',\n styleUrls: ['./resources.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n standalone: false\n})\nexport class ResourceComponent extends AppBaseComponent implements OnInit {\n allTags: Tag[] = [];\n user: User;\n userLoggedIn: boolean;\n isFooterLoaded: boolean;\n\n constructor(\n private readonly authService: AuthService,\n private readonly cdr: ChangeDetectorRef,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.authService.getToken$().subscribe(res => {\n this.userLoggedIn = !!res;\n this.cdr.markForCheck();\n if (this.userLoggedIn) {\n this.userService.getUserInfo().subscribe(data => {\n this.user = data;\n this.cdr.markForCheck();\n });\n }\n });\n }\n\n onTagsLoaded(tags: Tag[]) {\n this.allTags = tags;\n this.cdr.markForCheck();\n }\n\n hasTag(name: string): boolean {\n return this.allTags.some(tag => tag.name?.toLowerCase() === name.toLowerCase());\n }\n\n getCategoryIdByTagName(name: string): number | undefined {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag?.tag_category_id;\n }\n\n getTag(name: string) {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag;\n }\n\n getTitleByTagName(name: string): string | undefined {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag?.title;\n }\n\n scrollToTag(tag: Tag) {\n const sectionMap: { [key: string]: string } = {\n Videos: 'videos',\n Events: 'events',\n 'Blog Posts': 'blog-posts',\n 'Case Studies': 'case-studies',\n 'White Papers': 'white-papers',\n 'Product Release Notes': 'product-release-notes'\n };\n\n const sectionId = sectionMap[tag.name?.trim()];\n if (sectionId) {\n setTimeout(() => {\n const el = document.getElementById(sectionId);\n if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }, 100);\n }\n }\n\n onVaultLoaded(isLoaded: boolean) {\n this.isFooterLoaded = isLoaded;\n }\n}\n","\n <pw-resource-header [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-header>\n <pw-vault-section [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-vault-section>\n<pw-resource-tags [user]=\"user\" [userLoggedIn]=\"userLoggedIn\" (tagsLoaded)=\"onTagsLoaded($event)\" (tagSelected)=\"scrollToTag($event)\"></pw-resource-tags>\n<pw-resource-video-card id=\"videos\" [tag]=\"getTag('Videos')\" [showVideoSection]=\"true\" *ngIf=\"hasTag('Videos')\" [categoryId]=\"getCategoryIdByTagName('Videos')\" [resourceTitle]=\"getTitleByTagName('Videos')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-video-card>\n<pw-upcoming-event-card id=\"events\" [tag]=\"getTag('Events')\" [showEventContent]=\"true\" *ngIf=\"hasTag('Events')\" [categoryId]=\"getCategoryIdByTagName('Events')\" [resourceTitle]=\"getTitleByTagName('Events')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-upcoming-event-card>\n<pw-resource-cards resourceLink=\"/resources/blogs\" [tag]=\"getTag('Blog Posts')\" id=\"blog-posts\" *ngIf=\"hasTag('Blog Posts')\" [categoryId]=\"getCategoryIdByTagName('Blog Posts')\" [resourceTitle]=\"getTitleByTagName('Blog Posts')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-cards>\n<pw-case-studies-card id=\"case-studies\" [tag]=\"getTag('Case Studies')\" [showCaseStudyHeader]=\"true\" *ngIf=\"hasTag('Case Studies')\" [categoryId]=\"getCategoryIdByTagName('Case Studies')\" [resourceTitle]=\"getTitleByTagName('Case Studies')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-case-studies-card>\n<pw-resource--vault (isLoadedChange)=\"onVaultLoaded($event)\" id=\"white-papers\" [tag]=\"getTag('White Papers')\" [showVaultSection]=\"true\" *ngIf=\"hasTag('White Papers')\" [categoryId]=\"getCategoryIdByTagName('White Papers')\" [resourceTitle]=\"getTitleByTagName('White Papers')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource--vault>\n<pw-resource-note-card [isResource]=\"true\" [isReleasePress]=\"true\" id=\"product-release-notes\" [tag]=\"getTag('Product Release Notes')\" [releaseHeader]=\"true\" *ngIf=\"hasTag('Product Release Notes')\" [categoryId]=\"getCategoryIdByTagName('Product Release Notes')\" [resourceTitle]=\"getTitleByTagName('Product Release Notes')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-note-card>\n<pw-trial-4-contact-us *ngIf=\"isFooterLoaded\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-trial-4-contact-us>","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { ResourceSharedComponentsModule } from '@posiwise/shared-components';\n\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { ResourceCardsModule } from '../../shared/resource-cards.module';\n\n/**\n * Shared module specifically for ResourceRootModule\n * Imports only the essential modules needed by the root resource page\n * without the unnecessary dependencies from ResourceSharedModule\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n CoreTranslocoModule,\n TranslocoModule,\n ResourceSharedComponentsModule,\n ResourceCardsModule\n ],\n exports: [\n ResourceCardsModule,\n CommonModule,\n FormsModule,\n CoreTranslocoModule,\n TranslocoModule,\n ResourceSharedComponentsModule\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourceRootSharedModule {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { ResourceTagComponent } from '../../components/resources/resource-tags/resource-tags.component';\nimport { ResourceComponent } from '../../components/resources/resources.component';\nimport { VaultSectionComponent } from '../../components/resources/vault-section/vault-section.component';\n\nimport { ResourceRootSharedModule } from './resource-root-shared.module';\n\nconst routes: Routes = [\n {\n path: '',\n component: ResourceComponent,\n data: {\n title: 'Resources Library',\n permission: 'Pages.Blog',\n preload: false\n }\n }\n];\n\n@NgModule({\n declarations: [ResourceComponent, ResourceTagComponent, VaultSectionComponent],\n imports: [ResourceRootSharedModule, RouterModule.forChild(routes)],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourceRootModule {}\n"],"names":["i1","i2","i3","i4","i5","i6","i7","i8","i9","i2.ResourceVideoCardComponent","i3.UpcomingEventCardComponent","i4.ResourceCardComponent","i5.CaseStudyCardComponent","i6.ResourceNoteCardComponent","i7.ResourceVaultComponent","i10","i11.ResourceTagComponent","i12.VaultSectionComponent"],"mappings":"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"}
|