@posiwise/resource-module 0.0.161 → 0.0.162

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.
Files changed (30) hide show
  1. package/esm2022/lib/public/components/resource-company-card/resource-company-card.component.mjs +4 -3
  2. package/esm2022/lib/public/shared/resource-cards.module.mjs +9 -4
  3. package/fesm2022/{posiwise-resource-module-base-top-banner.component-36k8RSYo.mjs → posiwise-resource-module-base-top-banner.component-CfyYVbmA.mjs} +2 -2
  4. package/fesm2022/{posiwise-resource-module-base-top-banner.component-36k8RSYo.mjs.map → posiwise-resource-module-base-top-banner.component-CfyYVbmA.mjs.map} +1 -1
  5. package/fesm2022/{posiwise-resource-module-posiwise-resource-module-DMd9Z3Tg.mjs → posiwise-resource-module-posiwise-resource-module-BLNGyQxJ.mjs} +22 -16
  6. package/fesm2022/posiwise-resource-module-posiwise-resource-module-BLNGyQxJ.mjs.map +1 -0
  7. package/fesm2022/{posiwise-resource-module-resource-blogs.module-Dhwuqrjw.mjs → posiwise-resource-module-resource-blogs.module-D9R8TPyF.mjs} +4 -4
  8. package/fesm2022/{posiwise-resource-module-resource-blogs.module-Dhwuqrjw.mjs.map → posiwise-resource-module-resource-blogs.module-D9R8TPyF.mjs.map} +1 -1
  9. package/fesm2022/{posiwise-resource-module-resource-case-studies.module-Deja9fZh.mjs → posiwise-resource-module-resource-case-studies.module-7XIxi-bU.mjs} +3 -3
  10. package/fesm2022/{posiwise-resource-module-resource-case-studies.module-Deja9fZh.mjs.map → posiwise-resource-module-resource-case-studies.module-7XIxi-bU.mjs.map} +1 -1
  11. package/fesm2022/{posiwise-resource-module-resource-events.module-BVpdfN8X.mjs → posiwise-resource-module-resource-events.module-DKYdAT_d.mjs} +3 -3
  12. package/fesm2022/{posiwise-resource-module-resource-events.module-BVpdfN8X.mjs.map → posiwise-resource-module-resource-events.module-DKYdAT_d.mjs.map} +1 -1
  13. package/fesm2022/{posiwise-resource-module-resource-hub.module-BBziolRz.mjs → posiwise-resource-module-resource-hub.module-e0-ChqUs.mjs} +3 -3
  14. package/fesm2022/{posiwise-resource-module-resource-hub.module-BBziolRz.mjs.map → posiwise-resource-module-resource-hub.module-e0-ChqUs.mjs.map} +1 -1
  15. package/fesm2022/{posiwise-resource-module-resource-integrations.module-BPnHX0j7.mjs → posiwise-resource-module-resource-integrations.module-CdulE2Qx.mjs} +4 -4
  16. package/fesm2022/{posiwise-resource-module-resource-integrations.module-BPnHX0j7.mjs.map → posiwise-resource-module-resource-integrations.module-CdulE2Qx.mjs.map} +1 -1
  17. package/fesm2022/{posiwise-resource-module-resource-post.module-CjaB3nDD.mjs → posiwise-resource-module-resource-post.module-CoIcZ5ay.mjs} +3 -3
  18. package/fesm2022/{posiwise-resource-module-resource-post.module-CjaB3nDD.mjs.map → posiwise-resource-module-resource-post.module-CoIcZ5ay.mjs.map} +1 -1
  19. package/fesm2022/{posiwise-resource-module-resource-release-notes.module-DTzPQ1ku.mjs → posiwise-resource-module-resource-release-notes.module-C-FOASM0.mjs} +4 -4
  20. package/fesm2022/{posiwise-resource-module-resource-release-notes.module-DTzPQ1ku.mjs.map → posiwise-resource-module-resource-release-notes.module-C-FOASM0.mjs.map} +1 -1
  21. package/fesm2022/{posiwise-resource-module-resource-root.module-CWltvY6U.mjs → posiwise-resource-module-resource-root.module-xNFAWKov.mjs} +3 -3
  22. package/fesm2022/{posiwise-resource-module-resource-root.module-CWltvY6U.mjs.map → posiwise-resource-module-resource-root.module-xNFAWKov.mjs.map} +1 -1
  23. package/fesm2022/{posiwise-resource-module-resource-videos.module-Br1wfPoH.mjs → posiwise-resource-module-resource-videos.module-BIaFaFBT.mjs} +4 -4
  24. package/fesm2022/{posiwise-resource-module-resource-videos.module-Br1wfPoH.mjs.map → posiwise-resource-module-resource-videos.module-BIaFaFBT.mjs.map} +1 -1
  25. package/fesm2022/{posiwise-resource-module-resource-white-papers.module-dXrv2302.mjs → posiwise-resource-module-resource-white-papers.module-_f7xcT1t.mjs} +4 -4
  26. package/fesm2022/{posiwise-resource-module-resource-white-papers.module-dXrv2302.mjs.map → posiwise-resource-module-resource-white-papers.module-_f7xcT1t.mjs.map} +1 -1
  27. package/fesm2022/posiwise-resource-module.mjs +2 -2
  28. package/lib/public/shared/resource-cards.module.d.ts +1 -1
  29. package/package.json +1 -1
  30. package/fesm2022/posiwise-resource-module-posiwise-resource-module-DMd9Z3Tg.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"posiwise-resource-module-posiwise-resource-module-DMd9Z3Tg.mjs","sources":["../../../../libs/resource-module/src/lib/resource.service.ts","../../../../libs/resource-module/src/lib/public/resource-public.routing.module.ts","../../../../libs/resource-module/src/lib/public/resource-public.module.ts","../../../../libs/resource-module/src/lib/resource.module.ts","../../../../libs/resource-module/src/lib/public/components/resource-contact-us/resource-contact-us.module.ts","../../../../libs/resource-module/src/lib/public/components/resource-edit-card-lazy/resource-edit-card-lazy.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-company-card/resource-company-card.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-company-card/resource-company-card.component.html","../../../../libs/resource-module/src/lib/public/components/resource-top-banner-edit/resource-top-banner-edit.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-top-banner-edit/resource-top-banner-edit.component.html","../../../../libs/resource-module/src/lib/public/components/reslease-note-card/release-note-card.component.ts","../../../../libs/resource-module/src/lib/public/components/reslease-note-card/release-note-card.component.html","../../../../libs/resource-module/src/lib/public/components/resource-case-studies/case-studies-cards/case-studies-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-case-studies/case-studies-cards/case-studies-cards.component.html","../../../../libs/resource-module/src/lib/public/components/resource-post/related-resources/resource-cards/resource-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-post/related-resources/resource-cards/resource-cards.component.html","../../../../libs/resource-module/src/lib/public/components/base/base-resource.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-vault/resource-vault.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-vault/resource-vault.component.html","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-video-cards/resource-video-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-videos/resource-video-cards/resource-video-cards.component.html","../../../../libs/resource-module/src/lib/public/components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component.html","../../../../libs/resource-module/src/lib/public/shared/resource-cards.module.ts","../../../../libs/resource-module/src/lib/public/shared/resource-shared.module.ts","../../../../libs/resource-module/src/lib/public/components/resource-edit-card/resource-edit-card.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-edit-card/resource-edit-card.component.html","../../../../libs/resource-module/src/lib/public/shared/resource-edit.module.ts","../../../../libs/resource-module/src/lib/public/components/testimonial-card/testimonial-card.component.ts","../../../../libs/resource-module/src/lib/public/components/testimonial-card/testimonial-card.component.html","../../../../libs/resource-module/src/posiwise-resource-module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { MainApiHttpService } from '@posiwise/common-services';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Injectable()\nexport class ResourceService {\n private readonly resource = '/posts';\n\n private readonly comments = '/comments';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getPublicPosts(\n master_subscription_id,\n page: number,\n pageSize: number,\n search: string,\n tagCategoryIds?: string,\n tagIds?: string\n ) {\n const params = {\n page,\n page_size: pageSize,\n search: search,\n master_subscription_id\n };\n\n if (tagCategoryIds) {\n params['tag_category_ids'] = tagCategoryIds;\n }\n\n if (tagIds) {\n params['tag_ids'] = tagIds;\n }\n return this.api.getWithParams(`${this.resource}/get_all`, {\n ...params\n });\n }\n\n getAdminPosts(subscriptionId, paging?: Paging) {\n return this.api.getWithParams(`${this.resource}/admin_get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id: subscriptionId\n });\n }\n\n addPost(post) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in post) {\n if (key in post) {\n formData.append(key, post[key]);\n }\n }\n\n return this.api.post(this.resource, formData);\n }\n\n getPostBySlug(slug: string) {\n return this.api.get(`${this.resource}/${slug}`);\n }\n\n deletePost(id) {\n return this.api.delete(`${this.resource}/${id}`);\n }\n\n updatePost(post, id) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in post) {\n if (key in post) {\n formData.append(key, post[key]);\n }\n }\n\n return this.api.put(`${this.resource}/${id}`, formData);\n }\n\n private getComments() {\n return this.api.get(`${this.comments}/get_all`);\n }\n\n postComments(post) {\n return this.api.post(this.comments, post);\n }\n\n getResourceInsight(subscription_id, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/admin/posts_analytics?type=views&subscription_id=${subscription_id}`,\n { starting_at, ending_at }\n );\n }\n\n getResourcePostsInsight(id) {\n return this.api.get(`${this.resource}/${id}/insights`);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\n// Lazy loaded routes - each route now loads its own module with only the components it needs\nconst routes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadChildren: () =>\n import('./modules/root/resource-root.module').then(m => m.ResourceRootModule)\n },\n {\n path: 'hub',\n loadChildren: () =>\n import('./modules/hub/resource-hub.module').then(m => m.ResourceHubModule)\n },\n {\n path: 'blogs',\n loadChildren: () =>\n import('./modules/blogs/resource-blogs.module').then(m => m.ResourceBlogsModule)\n },\n {\n path: 'videos',\n loadChildren: () =>\n import('./modules/videos/resource-videos.module').then(m => m.ResourceVideosModule)\n },\n {\n path: 'integrations',\n loadChildren: () =>\n import('./modules/integrations/resource-integrations.module').then(\n m => m.ResourceIntegrationsModule\n )\n },\n {\n path: 'release-notes',\n loadChildren: () =>\n import('./modules/release-notes/resource-release-notes.module').then(\n m => m.ResourceReleaseNotesModule\n )\n },\n {\n path: 'events',\n loadChildren: () =>\n import('./modules/events/resource-events.module').then(m => m.ResourceEventsModule)\n },\n {\n path: 'white-papers',\n loadChildren: () =>\n import('./modules/white-papers/resource-white-papers.module').then(\n m => m.ResourceWhitePapersModule\n )\n },\n {\n path: 'case-studies',\n loadChildren: () =>\n import('./modules/case-studies/resource-case-studies.module').then(\n m => m.ResourceCaseStudiesModule\n )\n },\n {\n path: 'view/:slug',\n loadChildren: () =>\n import('./modules/post/resource-post.module').then(m => m.ResourcePostModule)\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class BlogPublicRoutingModule {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\n\nimport { ResourceService } from '../resource.service';\n\nimport { BlogPublicRoutingModule } from './resource-public.routing.module';\n\n@NgModule({\n imports: [BlogPublicRoutingModule],\n providers: [ResourceService],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourcePublicModule {}\n","import { NgModule } from '@angular/core';\n\nimport { ResourcePublicModule } from './public/resource-public.module';\n\n@NgModule({\n imports: [ResourcePublicModule]\n})\nexport class ResourceModule {}\n","import { NgModule } from '@angular/core';\n\nimport { Trial4SharedContactUsModule } from '@posiwise/resource-contact-us';\n\n@NgModule({\n imports: [Trial4SharedContactUsModule],\n exports: [Trial4SharedContactUsModule]\n})\nexport class Trial4ContactUsModule {}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\n/**\n * Lazy-loading wrapper for ResourceEditCard\n */\n@Component({\n selector: 'pw-resource-edit-card-lazy',\n template: `<ng-container #editCardContainer></ng-container>`\n})\nexport class ResourceEditCardLazyComponent implements OnChanges, OnDestroy {\n @ViewChild('editCardContainer', { read: ViewContainerRef, static: true })\n container!: ViewContainerRef;\n\n @Input() id!: number;\n @Input() resourceData;\n @Input() canEdit = false;\n @Output() updated = new EventEmitter<void>();\n\n private componentRef = null;\n private loading = false;\n\n async ngOnChanges(changes: SimpleChanges) {\n if (this.canEdit && !this.componentRef && !this.loading) {\n await this.loadEditCard();\n } else if (!this.canEdit && this.componentRef) {\n this.container.clear();\n this.componentRef = null;\n } else if (this.componentRef && (changes['id'] || changes['resourceData'])) {\n // Update existing component inputs\n this.componentRef.instance.id = this.id;\n this.componentRef.instance.resourceData = this.resourceData;\n }\n }\n\n private async loadEditCard() {\n if (this.componentRef || this.loading) return; // Prevent double loading\n\n this.loading = true; // Set BEFORE async operation\n\n try {\n // Dynamically import ResourceEditCard component (145 KB)\n const module = await import('../resource-edit-card/resource-edit-card.component');\n const ResourceEditCardComponent = module.ResourceEditCardComponent;\n\n // Ensure container exists and is clear\n if (!this.container) return;\n this.container.clear();\n\n // Create component dynamically (only once)\n this.componentRef = this.container.createComponent(ResourceEditCardComponent);\n this.componentRef.instance.id = this.id;\n this.componentRef.instance.resourceData = this.resourceData;\n this.componentRef.instance.updated.subscribe(() => this.updated.emit());\n this.loading = false;\n } catch (error) {\n console.error('Failed to load ResourceEditCard:', error);\n this.loading = false;\n }\n }\n\n ngOnDestroy() {\n this.componentRef?.destroy();\n }\n}\n","import {\n Component,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { ResourcePost, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { Subject } from 'rxjs';\n\ninterface PageEvent {\n first: number;\n rows: number;\n page: number;\n pageCount: number;\n}\n@Component({\n selector: 'pw-resource-company-card',\n templateUrl: './resource-company-card.component.html',\n styleUrl: './resource-company-card.component.scss'\n})\nexport class ResourceCompanyCardComponent\n extends AppBaseComponent\n implements OnChanges, OnInit, OnDestroy\n{\n @Output() getPosts = new EventEmitter<ResourcePost[]>();\n private readonly destroy$ = new Subject<void>();\n\n canEditResourcesValue = false;\n @Input() header = '';\n @Input() data = [];\n @Input() integrationCountDisplay;\n @Input() vendor = false;\n @Input() user: User;\n @Input() userLoggedIn: boolean;\n\n postData = false;\n filteredData = [];\n first = 0;\n rows = 12;\n subscriptionId: string;\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n ngOnChanges(): void {\n this.search();\n }\n ngOnInit() {\n if (this.userLoggedIn) {\n this.updateCanEditResourcesValue();\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n }\n search(keywords?) {\n if (keywords) {\n this.filteredData = this.data.filter(x =>\n x.title.toLowerCase().includes(keywords.toLowerCase())\n );\n if (this.filteredData.length === 0) {\n this.postData = true;\n } else {\n this.postData = false;\n }\n } else {\n this.filteredData = [...this.data];\n this.postData = false;\n }\n }\n onPageChange(event: PageEvent) {\n this.first = event.first;\n this.rows = event.rows;\n }\n\n override ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\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","<div [ngClass]=\"{ 'vendors-distributor-wrapper': !vendor }\">\n <div class=\"d-flex justify-content-between align-items-center mb-3 search-container\">\n <div>\n <span class=\"int-span\">{{header}}</span>\n </div>\n <div class=\"search-wrapper position-relative\" *ngIf=\"integrationCountDisplay > 0\">\n <i class=\"fa fa-search search-icon\"></i>\n <input type=\"text\"\n\n (keyup)=\"search($event.target.value)\"\n placeholder=\"Search eg security\"\n class=\"search-input top-search-input\" />\n </div>\n\n </div>\n\n <div *ngIf=\"postData\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\"> </pw-no-data>\n </div>\n\n <div class=\"row\" *ngIf=\"!postData && integrationCountDisplay > 0\">\n <div class=\"col-md-3 mt-4\"\n *ngFor=\"let img of filteredData | slice:first:(first + rows)\">\n <div class=\"boxes d-flex align-items-center justify-content-center\">\n <ng-container *ngIf=\"img?.companyImg; else checkRectangular\">\n <img [src]=\"img.companyImg\" alt=\"Vendor Company Icon\" class=\"vendor-icon\" />\n </ng-container>\n\n <ng-template #checkRectangular>\n <ng-container *ngIf=\"img?.rectangular_picture?.url; else noImage\">\n <ng-container *ngIf=\"!img.rectangular_picture.url.includes('default-photo'); else showPostName\">\n <ng-container *ngIf=\"img?.showcase; else noLinkImage\">\n <a class=\"vendor-link\" [href]=\"img.external_url || ('/resources/view/' + img.slug)\">\n <img [src]=\"img.rectangular_picture.url\" alt=\"Vendor Rectangular Company Icon\" class=\"vendor-icon\" />\n </a>\n </ng-container>\n <ng-template #noLinkImage>\n <img [src]=\"img.rectangular_picture.url\" alt=\"Vendor Rectangular Company Icon\" class=\"vendor-icon\" />\n </ng-template>\n\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"img?.id\"\n [resourceData]=\"img\"\n (updated)=\"getPosts.emit()\">\n </pw-resource-edit-card-lazy>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template #showPostName>\n <ng-container *ngIf=\"img?.showcase; else noLinkTitle\">\n <a class=\"vendor-link\" [href]=\"img.external_url || ('/resources/view/' + img.slug)\">\n <span class=\"vendor-name text-center mt-2\">{{ img?.title }}</span>\n </a>\n </ng-container>\n <ng-template #noLinkTitle>\n <span class=\"vendor-name text-center\">{{ img?.title }}</span>\n </ng-template>\n\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"img?.id\"\n [resourceData]=\"img\"\n (updated)=\"getPosts.emit()\">\n </pw-resource-edit-card-lazy>\n </ng-template>\n </div>\n </div>\n\n <div class=\"customPaginator d-flex align-items-center mt-5 justify-content-center\"\n *ngIf=\"filteredData.length > 0\"\n >\n <p-paginator\n [first]=\"first\"\n [rows]=\"rows\"\n [totalRecords]=\"filteredData.length\"\n (onPageChange)=\"onPageChange($event)\"></p-paginator>\n </div>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Injector,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\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-resource-top-banner-edit',\n templateUrl: './resource-top-banner-edit.component.html'\n})\nexport class ResourceTopBannerEditComponent extends AppBaseComponent implements OnInit {\n @Input() blogPostTag;\n @Input() user: User;\n @Input() userLoggedIn: boolean;\n @Output() getUpdatedTag = new EventEmitter();\n @ViewChild('editModal') editModal: TemplateRef<CustomUploaderComponent>;\n @ViewChild('imageCropContent') imageCropContent: TemplateRef<CustomUploaderComponent>;\n\n form: FormGroup;\n image: string | null = null;\n defaultImage = 'assets/img/resource/blog.png';\n file: File;\n subscriptionId: string;\n imageModalRef;\n buttonBusy: boolean;\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly modalService: NgbModal,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.form = this.fb.group({\n title: [this.blogPostTag?.title ?? ''],\n description: [this.blogPostTag?.description ?? ''],\n meta_title: [this.blogPostTag?.meta_title ?? ''],\n meta_description: [this.blogPostTag?.meta_description ?? '']\n });\n\n this.image = this.blogPostTag?.image?.url ?? null;\n }\n\n openEditModal() {\n this.modalService.open(this.editModal, { centered: true, size: 'lg' });\n }\n\n openImageModal(modalRef) {\n this.imageModalRef = this.modalService.open(modalRef, { centered: true });\n }\n\n onImageSelected(base64: string): void {\n this.image = base64;\n this.file = HelperService.convertBase64ToFile(base64);\n this.imageModalRef?.close();\n }\n\n onClose() {\n this.imageModalRef?.close();\n }\n\n removeImage() {\n this.image = null;\n }\n\n handleImageError(event: Event) {\n (event.target as HTMLImageElement).src = this.defaultImage;\n }\n\n save() {\n this.buttonBusy = true;\n const payload = {\n title: this.form.value.title ?? this.blogPostTag?.title,\n description: this.form.value.description ?? this.blogPostTag?.description,\n meta_title: this.form.value.meta_title ?? this.blogPostTag?.meta_title,\n meta_description:\n this.form.value.meta_description ?? this.blogPostTag?.meta_description,\n tag_category_id: this.blogPostTag?.tag_category_id,\n tag_type: this.blogPostTag?.tag_type,\n subscription_id: this.subscriptionId,\n name: this.blogPostTag?.name\n };\n\n if (this.file) {\n payload['image'] = this.file;\n } else if (!this.image) {\n payload['remove_image'] = true;\n }\n\n this.tagService.updateTagById(this.blogPostTag.id, payload).subscribe(() => {\n this.buttonBusy = false;\n this.toast.success('Tag Updated');\n this.getUpdatedTag.emit();\n this.modalService.dismissAll();\n });\n }\n}\n","<div class=\"edit-card\">\n <i class=\"fa fa-edit cursor-pointer text-black in-page-edit-icon mb-1 ms-3\"\n (click)=\"openEditModal()\"\n (keydown.enter)=\"openEditModal()\"\n (keydown.space)=\"openEditModal()\"\n title=\"Edit Blog Tag\"></i>\n</div>\n\n <ng-template #editModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Blog Post Tag</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <form [formGroup]=\"form\">\n <div class=\"row\">\n\n <div class=\"col-12\">\n <pw-input-container label=\"Title\" name=\"title\">\n <input type=\"text\" class=\"form-control\" formControlName=\"title\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container label=\"Description\" name=\"description\">\n <textarea class=\"form-control\" rows=\"4\" formControlName=\"description\"></textarea>\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container label=\"Meta Title\" name=\"meta_title\">\n <input type=\"text\" class=\"form-control\" formControlName=\"meta_title\" placeholder=\"Meta Title for SEO\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container label=\"Meta Description\" name=\"meta_description\">\n <textarea class=\"form-control\" rows=\"3\" formControlName=\"meta_description\" placeholder=\"Meta Description for SEO\"></textarea>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 my-4\">\n <label for=\"tagImage\">Blog Tag Image</label>\n <div class=\"text-center d-flex flex-column align-items-center col-6\">\n <img [src]=\"image || defaultImage\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n (keydown.space)=\"openImageModal(imageCropContent)\"\n class=\"image w-100\"\n alt=\"Blog\"\n (error)=\"handleImageError($event)\"\n />\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block mt-2\"\n (click)=\"openImageModal(imageCropContent)\">\n {{ image ? 'Update' : 'Add' }} Image\n </a>\n <i *ngIf=\"image\"\n class=\"fa fa-trash delete-icon text-danger ms-2 cursor-pointer\"\n title=\"Remove Image\"\n (keydown.enter)=\"removeImage()\"\n (keydown.space)=\"removeImage()\"\n (click)=\"removeImage()\"></i>\n </div>\n </div>\n </div>\n\n </div>\n </form>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" [buttonBusy]=\"buttonBusy\" (click)=\"save()\">Save</button>\n </div>\n </ng-template>\n\n <ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Image</h5>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file. Avoid artwork, celebrities, or copyrighted images.</small>\n <pw-image-cropper\n #cropper\n aspectRatio=\"dynamic\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"onClose()\">\n </pw-image-cropper>\n </div>\n </ng-template>\n","import { Component, Injector, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-note-card',\n templateUrl: './release-note-card.component.html',\n styleUrls: ['../resources/resources-shared.component.scss']\n})\nexport class ResourceNoteCardComponent extends AppBaseComponent implements OnInit, OnChanges {\n @Input() releaseHeader = false;\n @Input() categoryId!: string;\n @Input() isReleasePress = false;\n @Input() isResource = false;\n @Input() postSlice = false;\n @Input() resourceTitle!: string;\n @Input() tag;\n @Input() user: User;\n\n canEditResourcesValue = false;\n @Input() userLoggedIn: boolean;\n\n isLoaded = false;\n subscriptionId;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n postTags: { [key: string]: { id: string; title: string } } = {};\n releasePosts: { [key: string]: Resource[] } = {};\n\n tagCategory;\n isEditingTitle: boolean;\n isPressEditingTitle: boolean;\n editedTitle: string;\n isMasterSubscription;\n\n constructor(\n injector: Injector,\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\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 private getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories({ search: 'Release Notes' }, this.getEffectiveSubscriptionId())\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.getEffectiveSubscriptionId())\n .subscribe(response => {\n this.postTags['product'] = this.findTag(\n response.tags,\n 'Product Release Notes',\n this.tagCategory?.id\n );\n this.postTags['press'] = this.findTag(\n response.tags,\n 'Press Release Notes',\n this.tagCategory?.id\n );\n\n if (this.postTags['product']?.id) {\n this.getProductReleasePosts(1, 100);\n } else {\n this.isLoaded = true;\n this.releasePosts['product'] = [];\n }\n\n if (this.postTags['press']?.id) {\n this.getPressReleasePosts(1, 100);\n } else {\n this.isLoaded = true;\n this.releasePosts['press'] = [];\n }\n });\n }\n\n private findTag(tags, name: string, categoryId: number) {\n return tags.find(tag => tag.name === name && tag.tag_category_id === categoryId);\n }\n\n hasPressReleases(): boolean {\n return this.releasePosts['press']?.length !== 0 && this.isLoaded;\n }\n hasProductReleases(): boolean {\n return this.releasePosts['product']?.length !== 0 && this.isLoaded;\n }\n\n getProductReleasePosts(page: number, pageSize: number): void {\n this.isLoaded = false;\n this.resourceService\n .getPublicPosts(\n this.getEffectiveSubscriptionId(),\n page,\n pageSize,\n '',\n '',\n this.postTags['product']?.id\n )\n .subscribe(response => {\n const sortedPosts = response.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.releasePosts['product'] = this.getProcessedPosts(sortedPosts);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n getPressReleasePosts(page: number, pageSize: number): void {\n this.isLoaded = false;\n this.resourceService\n .getPublicPosts(\n this.getEffectiveSubscriptionId(),\n page,\n pageSize,\n '',\n '',\n this.postTags['press']?.id\n )\n .subscribe(response => {\n const sortedPosts = response?.posts\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.releasePosts['press'] = this.getProcessedPosts(sortedPosts);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n private getProcessedPosts(posts: Resource[], sliceCount = 3): Resource[] {\n const cloned = [...posts];\n return this.postSlice ? cloned.reverse() : cloned.slice(0, sliceCount).reverse();\n }\n\n toggleEditTitle() {\n this.isEditingTitle = true;\n this.editedTitle = this.postTags['product'].title;\n }\n\n toggleEditPressTitle() {\n this.isPressEditingTitle = true;\n this.editedTitle = this.postTags['press'].title;\n }\n\n saveEditedTitle(type) {\n HelperService.updateTagTitle(\n this.postTags[type],\n this.editedTitle,\n this.tagService,\n this.getEffectiveSubscriptionId(),\n this.toast\n ).subscribe(() => {\n this.postTags[type].title = this.editedTitle;\n if (type === 'product') {\n this.isEditingTitle = false;\n } else {\n this.isPressEditingTitle = false;\n }\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.masterSubscriptionId\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=\"resource-vault-section bg-white\" *ngIf=\"hasProductReleases()\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isEditingTitle }\">\n <ng-container *ngIf=\"!isEditingTitle; else editTitleBlock\">\n <span *ngIf=\"postTags['product']?.title; else fallback\" [innerHTML]=\"postTags['product']?.title\"></span>\n <ng-template #fallback>Product Release Notes</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditTitle()\" (keydown.enter)=\"toggleEditTitle()\" (keydown.space)=\"toggleEditTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle('product')\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a class=\"view-all\" *ngIf=\"!postSlice\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['product']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasProductReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['product']\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getProductReleasePosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url?.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Product Resource Icon\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Product Resource Default Icon\" />\n </ng-template>\n <ng-template #ctaContent>\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <ng-container *ngTemplateOutlet=\"ctaContent\"></ng-container>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n<section class=\"resource-vault-section bg-white\" *ngIf=\"isReleasePress && hasPressReleases()\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isPressEditingTitle }\">\n <ng-container *ngIf=\"!isPressEditingTitle; else editTitleBlock\">\n <span *ngIf=\"postTags['press']?.title; else fallback\" [innerHTML]=\"postTags['press']?.title\"></span>\n <ng-template #fallback>Press Release Notes</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditPressTitle()\" (keydown.enter)=\"toggleEditPressTitle()\" (keydown.space)=\"toggleEditPressTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isPressEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle('press')\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isPressEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a *ngIf=\"!postSlice\" class=\"view-all\" routerLink=\"/resources/release-notes\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"releasePosts['press']?.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"hasPressReleases()\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of releasePosts['press']\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getPressReleasePosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"resource-title\" [innerHTML]=\"post.title\"></p>\n <img *ngIf=\"!post.picture?.url.includes('default-photo.jpg'); else resourceRocketBox\"\n src=\"{{ post.picture.url }}\"\n class=\"resource-image mt-auto\"\n alt=\"Press Resource Icon\" />\n\n <ng-template #resourceRocketBox>\n <img\n src=\"assets/img/resource/rocket-box.png\"\n class=\"press-release-icon mt-auto\"\n alt=\"Press Resource Default Icon\" />\n </ng-template>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-case-studies-card',\n templateUrl: './case-studies-cards.component.html',\n styleUrls: ['./case-studies-cards.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CaseStudyCardComponent extends AppBaseComponent implements OnInit, OnChanges {\n @Input() showCaseStudyHeader = false;\n @Input() categoryId!: string;\n @Input() postSlice = false;\n @Input() tag;\n @Input() resourceTitle!: string;\n @Input() user: User;\n\n canEditResourcesValue = false;\n @Input() userLoggedIn: boolean;\n\n isLoaded = false;\n subscriptionId;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n companyName = this.appConfig.company.name;\n\n posts: Resource[] = [];\n isMasterSubscription;\n\n isEditingTitle = false;\n editedTitle: string;\n\n constructor(\n injector: Injector,\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n private readonly cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPosts(1, 10);\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 getPosts(page: number, pageSize: number): void {\n this.isLoaded = false;\n this.resourceService\n .getPublicPosts(this.getEffectiveSubscriptionId(), page, pageSize, '', this.categoryId)\n .subscribe(response => {\n const sortedPosts = (response.posts ?? [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n })\n .add(() => {\n this.isLoaded = true;\n this.cdr.markForCheck();\n });\n }\n\n toggleEditTitle() {\n this.isEditingTitle = true;\n this.editedTitle = this.resourceTitle;\n }\n\n saveEditedTitle() {\n HelperService.updateTagTitle(\n this.tag,\n this.editedTitle,\n this.tagService,\n this.getEffectiveSubscriptionId(),\n this.toast\n ).subscribe(() => {\n this.resourceTitle = this.editedTitle;\n this.isEditingTitle = false;\n this.cdr.markForCheck();\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.masterSubscriptionId\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 trackByPostId(index: number, post: Resource): number {\n return post.id;\n }\n}\n","<section class=\"resource-vault-section bg-white text-center py-5 extra-top-padding section-outer\" id=\"case-studies\">\n <div class=\"container\">\n <ng-container *ngIf=\"showCaseStudyHeader; else fallbackBlock\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <ng-container *ngTemplateOutlet=\"caseStudyHeaderTemplate\"></ng-container>\n <a class=\"view-all\" routerLink=\"/resources/case-studies\">VIEW ALL ></a>\n </div>\n </ng-container>\n\n <ng-template #fallbackBlock>\n <div class=\"d-md-flex justify-content-between align-items-start\">\n <ng-container *ngTemplateOutlet=\"caseStudyHeaderTemplate\"></ng-container>\n </div>\n </ng-template>\n\n <ng-template #caseStudyHeaderTemplate>\n <h2 class=\"section-heading d-flex align-items-center\" id=\"case-studies\" [ngClass]=\"{ 'w-50': isEditingTitle }\">\n <ng-container *ngIf=\"!isEditingTitle; else editTitleBlock\">\n <span *ngIf=\"resourceTitle; else fallback\">\n <span [innerHTML]=\"resourceTitle\"></span>\n </span>\n <ng-template #fallback>Case Studies</ng-template>\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\"\n (click)=\"toggleEditTitle()\"\n (keydown.enter)=\"toggleEditTitle()\"\n (keydown.space)=\"toggleEditTitle()\"\n title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle()\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n </ng-template>\n\n\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n\n\n <div class=\"row d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"testimonial-box\" *ngFor=\"let post of posts; trackBy: trackByPostId\">\n\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getPosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n\n <div>\n <img *ngIf=\"!post.rectangular_picture.url.includes('default-photo.jpg') \" [src]=\"post.rectangular_picture.url\"\n alt=\"IT Partners Logo\"\n class=\"company-logo mb-3\"\n loading=\"lazy\" />\n\n <p class=\"mb-4 mt-3 testimonial-section\">\n <span [innerHTML]=\"post.title\"></span>\n </p>\n </div>\n\n <!-- BOTTOM AVATAR -->\n <div class=\"avatar-container mt-5\">\n <img [src]=\"post.picture.url\"\n alt=\"User Avatar\"\n *ngIf=\"post.picture.url && !post.picture.url.includes('default-photo.jpg')\"\n class=\"testimonial-avatar\"\n loading=\"lazy\" />\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"read-more-btn-overlay\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"read-more-btn-overlay\" aria-label=\"Navigate to resource view\" [routerLink]=\"['/resources/view', post?.slug]\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n</section>\n","import { Component, Injector, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-cards',\n templateUrl: './resource-cards.component.html',\n styleUrls: ['../../../resources/resources-shared.component.scss']\n})\nexport class ResourceCardComponent extends AppBaseComponent implements OnInit, OnChanges {\n @Input() categoryId!: string;\n @Input() isHeaderVisible = true;\n @Input() isRelated = false;\n @Input() resourceTitle!: string;\n @Input() postSlice = false;\n @Input() header;\n @Input() tag;\n @Input() resourceLink;\n @Input() user: User;\n @Input() userLoggedIn: boolean;\n\n isLoaded = false;\n subscriptionId;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n isEditingTitle: boolean;\n editedTitle: string;\n isMasterSubscription;\n\n canEditResourcesValue = false;\n\n constructor(\n injector: Injector,\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPosts(1, 10);\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 getPosts(page: number, pageSize: number): void {\n this.isLoaded = false;\n this.resourceService\n .getPublicPosts(this.getEffectiveSubscriptionId(), page, pageSize, '', this.categoryId)\n .subscribe(response => {\n const sortedPosts = (response.posts ?? [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n toggleTagEditTitle() {\n this.isEditingTitle = true;\n this.editedTitle = this.resourceTitle;\n }\n\n saveEditedTitle() {\n HelperService.updateTagTitle(\n this.tag,\n this.editedTitle,\n this.tagService,\n this.getEffectiveSubscriptionId(),\n this.toast\n ).subscribe(() => {\n this.resourceTitle = this.editedTitle;\n this.isEditingTitle = false;\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.masterSubscriptionId\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=\"resource-vault-section bg-white\">\n <div class=\"container\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\" *ngIf=\"isHeaderVisible\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isEditingTitle }\">\n <ng-container *ngIf=\"!isEditingTitle; else editTitleBlock\">\n <span *ngIf=\"resourceTitle; else fallback\" [innerHTML]=\"resourceTitle\"></span>\n <ng-template #fallback>Our team’s articles</ng-template>\n <i *ngIf=\"!isRelated && canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleTagEditTitle()\" (keydown.enter)=\"toggleTagEditTitle()\" (keydown.space)=\"toggleTagEditTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle()\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a class=\"view-all\" [routerLink]=\"resourceLink\">VIEW ALL ></a>\n </div>\n\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n\n <div class=\"row d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card p-4\" *ngFor=\"let post of posts\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getPosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"resource-title\" [innerHTML]=\"post.title \"></p>\n <a\n [href]=\"post.external_url || ('/resources/view/' + post?.slug)\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Navigate to resource\"\n >\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid my-3 mt-auto\"\n alt=\"Webinar\"\n /></a>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n [href]=\"post.external_url\"\n aria-label=\"Navigate to external url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [href]=\"'/resources/view/' + post?.slug\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n </section>","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { AuthService, TagService } from '@posiwise/common-services';\nimport { Resource, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n template: ''\n})\nexport abstract class BaseResourceComponent extends AppBaseComponent implements OnInit {\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n posts: Resource[] = [];\n testimonialsPosts: Resource[] = [];\n userLoggedIn: boolean;\n blogPostTag;\n tagCategory;\n blogTestimonialsPostTag;\n isLoaded = false;\n user: User;\n isMasterSubscription;\n\n canEditResourcesValue = false;\n\n constructor(\n protected readonly resourceService: ResourceService,\n protected readonly tagService: TagService,\n private readonly authService: AuthService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(response => {\n this.subscriptionId = response;\n });\n this.authService.getToken$().subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n this.userService.getUserInfo().subscribe(data => {\n this.user = data;\n this.updateCanEditResourcesValue();\n this.initializeComponent();\n });\n } else {\n this.initializeComponent();\n }\n });\n }\n\n protected initializeComponent() {\n if (this.shouldUseTagCategories()) {\n this.getTags();\n } else {\n this.getPostTags();\n }\n\n if (this.shouldLoadTestimonials()) {\n this.getTestimonialTags();\n }\n }\n\n protected getTags() {\n this.isLoaded = false;\n this.tagService\n .getAllTagCategories(\n { search: this.getSearchTerm() },\n this.getEffectiveSubscriptionId()\n )\n .subscribe(response => {\n this.tagCategory = response.tag_categories[0];\n this.getPostTags();\n });\n }\n\n protected getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.getEffectiveSubscriptionId())\n .subscribe(response => {\n if (this.shouldUseTagCategories()) {\n this.blogPostTag = response.tags.find(\n tag => tag.tag_category_id === this.tagCategory?.id\n );\n } else {\n this.blogPostTag = response.tags.find(\n tag => tag.name === this.getResourceType()\n );\n }\n this.getPosts(1, 100);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n protected getTestimonialTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.getEffectiveSubscriptionId())\n .subscribe(response => {\n this.blogTestimonialsPostTag = response.tags.find(\n tag => tag.name === 'Testimonials'\n );\n this.getTestimonialsPosts(1, 100);\n });\n }\n\n protected getPosts(page: number, pageSize: number) {\n this.fetchPosts(page, pageSize, this.blogPostTag?.tag_category_id, 'posts');\n }\n\n getTestimonialsPosts(page: number, pageSize: number) {\n this.fetchPosts(\n page,\n pageSize,\n this.blogTestimonialsPostTag?.tag_category_id,\n 'testimonialsPosts'\n );\n }\n\n /** Shared method to fetch posts with common filtering, sorting, and slicing logic */\n private fetchPosts(\n page: number,\n pageSize: number,\n tagCategoryId,\n targetProperty: 'posts' | 'testimonialsPosts'\n ) {\n this.resourceService\n .getPublicPosts(this.getEffectiveSubscriptionId(), page, pageSize, '', tagCategoryId)\n .subscribe(response => {\n const filteredPosts = response.posts\n .filter(post => post.tags?.some(tag => tag.tag_category_id === tagCategoryId))\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n )\n .slice(0, 12);\n\n if (targetProperty === 'posts') {\n this.posts = filteredPosts;\n } else {\n this.testimonialsPosts = filteredPosts;\n }\n });\n }\n\n /** Helper method to get effective subscription ID */\n protected getEffectiveSubscriptionId(): number {\n return HelperService.getEffectiveSubscriptionId(\n this.user,\n this.subscriptionId,\n this.masterSubscriptionId\n );\n }\n\n // Abstract methods that each component must implement\n protected abstract getResourceType(): string;\n\n // Optional methods that can be overridden\n protected getSearchTerm(): string {\n return this.getResourceType();\n }\n\n protected shouldUseTagCategories(): boolean {\n return false;\n }\n\n protected shouldLoadTestimonials(): boolean {\n return false;\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","import { Component, Injector, Input, OnInit } from '@angular/core';\n\nimport { AuthService, TagService } from '@posiwise/common-services';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../resource.service';\nimport { BaseResourceComponent } from '../base/base-resource.component';\n\n@Component({\n selector: 'pw-resource--vault',\n templateUrl: './resource-vault.component.html',\n styleUrls: ['../resources/resources-shared.component.scss']\n})\nexport class ResourceVaultComponent extends BaseResourceComponent implements OnInit {\n @Input() showVaultSection = false;\n @Input() postSlice = false;\n @Input() categoryId;\n @Input() resourceTitle;\n @Input() tag;\n\n isEditingTitle = false;\n editedTitle: string;\n\n constructor(\n resourceService: ResourceService,\n tagService: TagService,\n authService: AuthService,\n injector: Injector\n ) {\n super(resourceService, tagService, authService, injector);\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.getPosts(1, 10);\n }\n\n protected getResourceType(): string {\n return 'Vault';\n }\n\n protected override getPosts(page: number, pageSize: number): void {\n this.isLoaded = false;\n this.resourceService\n .getPublicPosts(this.getEffectiveSubscriptionId(), page, pageSize, '', this.categoryId)\n .subscribe(response => {\n const sortedPosts = (response.posts ?? [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n toggleEditTitle() {\n this.isEditingTitle = true;\n this.editedTitle = this.resourceTitle;\n }\n\n saveEditedTitle() {\n HelperService.updateTagTitle(\n this.tag,\n this.editedTitle,\n this.tagService,\n this.getEffectiveSubscriptionId(),\n this.toast\n ).subscribe(() => {\n this.resourceTitle = this.editedTitle;\n this.isEditingTitle = false;\n });\n }\n}\n","<section class=\"resource-vault-section bg-white text-center py-5 extra-top-padding section-outer\">\n <div class=\"container\">\n <div *ngIf=\"showVaultSection\" class=\"d-flex justify-content-between align-items-center flex-wrap mb-5\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isEditingTitle }\">\n <ng-container *ngIf=\"!isEditingTitle; else editTitleBlock\">\n <span *ngIf=\"resourceTitle; else fallback\" [innerHTML]=\"resourceTitle\"></span>\n <ng-template #fallback>Whitepapers &amp; Tools</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditTitle()\" (keydown.enter)=\"toggleEditTitle()\" (keydown.space)=\"toggleEditTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle()\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n\n <a class=\"view-all\" routerLink=\"/resources/white-papers\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"d-flex mt-2 flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card text-center p-4\" *ngFor=\"let post of posts\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getPosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <p class=\"mb-4\" [innerHTML]=\"post.title\"></p>\n <a\n [href]=\"post.external_url || ('/resources/view/' + post?.slug)\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Navigate to resource\"\n >\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid my-3 mt-auto\"\n alt=\"Webinar\"\n loading=\"lazy\"\n />\n </a>\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [href]=\"'/resources/view/' + post?.slug\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges\n} from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-resource-video-card',\n templateUrl: './resource-video-cards.component.html',\n styleUrls: ['../../resources/resources-shared.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ResourceVideoCardComponent extends AppBaseComponent implements OnInit, OnChanges {\n @Input() showVideoSection = false;\n @Input() categoryId!: string;\n @Input() tag;\n @Input() postSlice = false;\n @Input() resourceTitle!: string;\n @Input() user: User;\n\n canEditResourcesValue = false;\n @Input() userLoggedIn: boolean;\n\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n isLoaded = false;\n\n videoStates: { [slug: string]: { loaded: boolean; url: SafeResourceUrl } } = {};\n\n isEditingTitle = false;\n editedTitle: string;\n isMasterSubscription;\n\n constructor(\n private readonly sanitizer: DomSanitizer,\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n private readonly cdr: ChangeDetectorRef,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n this.getPosts(1, 10);\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 loadVideo(post): void {\n if (!post.external_url) return;\n\n const slug = post.slug;\n let externalUrl = post.external_url;\n\n // Append autoplay only when clicked\n externalUrl += externalUrl.includes('?') ? '&autoplay=1' : '?autoplay=1';\n // baseUrl is a trusted internal source (e.g. YouTube embed URL)\n this.videoStates[slug].url = this.sanitizer.bypassSecurityTrustResourceUrl(externalUrl); //NOSONAR\n }\n\n getPosts(page: number, pageSize: number): void {\n this.isLoaded = false;\n this.resourceService\n .getPublicPosts(this.getEffectiveSubscriptionId(), page, pageSize, '', this.categoryId)\n .subscribe(response => {\n const sortedPosts = (response.posts ?? [])\n .filter(post => post.showcase === true)\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = this.postSlice ? sortedPosts : [...sortedPosts].slice(0, 3);\n this.posts.forEach(post => {\n if (post.external_url) {\n this.videoStates[post.slug] = {\n loaded: true,\n // baseUrl is a trusted internal source (e.g. YouTube embed URL)\n url: this.sanitizer.bypassSecurityTrustResourceUrl(post.external_url) //NOSONAR\n };\n }\n });\n })\n .add(() => {\n this.isLoaded = true;\n this.cdr.markForCheck();\n });\n }\n\n toggleTagEditTitle() {\n this.isEditingTitle = true;\n this.editedTitle = this.resourceTitle;\n }\n\n saveEditedTitle() {\n HelperService.updateTagTitle(\n this.tag,\n this.editedTitle,\n this.tagService,\n this.getEffectiveSubscriptionId(),\n this.toast\n ).subscribe(() => {\n this.resourceTitle = this.editedTitle;\n this.isEditingTitle = false;\n this.cdr.markForCheck();\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.masterSubscriptionId\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 trackByPostId(index: number, post: Resource): number {\n return post.id;\n }\n}\n","<section class=\"resource-vault-section bg-white text-center py-5 extra-top-padding section-outer\">\n <div class=\"container\">\n <div *ngIf=\"showVideoSection\" class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isEditingTitle }\">\n <ng-container *ngIf=\"!isEditingTitle; else editTitleBlock\">\n <span *ngIf=\"resourceTitle; else fallback\" [innerHTML]=\"resourceTitle\"></span>\n <ng-template #fallback>On-Demand Videos</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleTagEditTitle()\" (keydown.enter)=\"toggleTagEditTitle()\" (keydown.space)=\"toggleTagEditTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle()\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a class=\"view-all\" routerLink=\"/resources/videos\">VIEW ALL ></a>\n </div>\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card\" *ngFor=\"let post of posts; trackBy: trackByPostId\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getPosts(1, 10)\">\n </pw-resource-edit-card-lazy>\n <p [innerHTML]=\"post.title\" class=\"mb-5\"></p>\n <a [href]=\" post.external_url\" target=\"_blank\">\n <img\n [src]=\"post.picture?.url\"\n class=\"img-fluid mb-3\"\n [alt]=\"post.title\"\n loading=\"lazy\" />\n </a>\n\n <a class=\"resource-btn mt-3\" [href]=\" post.external_url\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Watch now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </div>\n </div>\n </div>\n\n</section>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Resource, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../../resource.service';\n\n@Component({\n selector: 'pw-upcoming-event-card',\n templateUrl: './upcoming-event-cards.component.html',\n styleUrls: ['../../resources/resources-shared.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UpcomingEventCardComponent extends AppBaseComponent implements OnInit, OnChanges {\n @Input() showEventContent = false;\n @Input() categoryId!: string;\n @Input() tag;\n @Input() postSlice = false;\n @Input() resourceTitle!: string;\n @Input() user: User;\n @Input() userLoggedIn: boolean;\n\n canEditResourcesValue = false;\n\n now = new Date().getTime();\n subscriptionId;\n\n isEditingTitle = false;\n editedTitle: string;\n\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n\n posts: Resource[] = [];\n\n isLoaded = false;\n blogPostTag;\n isMasterSubscription;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n private readonly cdr: ChangeDetectorRef,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n this.getPostTags();\n } else {\n this.getPostTags();\n }\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 private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.getEffectiveSubscriptionId())\n .subscribe(response => {\n this.blogPostTag = response.tags.find(tag => tag.name === 'Events');\n if (this.blogPostTag?.tag_category_id) {\n if (this.postSlice) {\n this.getPosts(1, 100);\n } else {\n this.getAllPosts(1, 100);\n }\n } else {\n this.isLoaded = true;\n this.cdr.markForCheck();\n }\n });\n }\n\n getPosts(page: number, pageSize: number): void {\n this.isLoaded = false;\n this.resourceService\n .getPublicPosts(\n this.getEffectiveSubscriptionId(),\n page,\n pageSize,\n '',\n this.categoryId ?? this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n const sortedPosts = (response.posts ?? [])\n .filter(\n post => post.showcase === true && new Date(post?.when).getTime() > this.now\n )\n .sort(\n (a, b) =>\n new Date(b.published_at).getTime() - new Date(a.published_at).getTime()\n );\n this.posts = sortedPosts;\n })\n .add(() => {\n this.isLoaded = true;\n this.cdr.markForCheck();\n });\n }\n\n isUpcoming(post): boolean {\n return new Date(post?.when).getTime() > this.now;\n }\n\n getAllPosts(page: number, pageSize: number): void {\n this.isLoaded = false;\n this.resourceService\n .getPublicPosts(\n this.getEffectiveSubscriptionId(),\n page,\n pageSize,\n '',\n this.categoryId ?? this.blogPostTag?.tag_category_id\n )\n .subscribe(response => {\n const sortedPosts = (response.posts ?? [])\n .filter(post => post.showcase === true)\n .sort((a, b) => new Date(b.when).getTime() - new Date(a.when).getTime());\n\n this.posts = [...sortedPosts].slice(0, 3).reverse();\n })\n .add(() => {\n this.isLoaded = true;\n this.cdr.markForCheck();\n });\n }\n\n toggleEditTitle() {\n this.isEditingTitle = true;\n this.editedTitle = this.resourceTitle;\n }\n\n saveEditedTitle() {\n HelperService.updateTagTitle(\n this.tag,\n this.editedTitle,\n this.tagService,\n this.getEffectiveSubscriptionId(),\n this.toast\n ).subscribe(() => {\n this.resourceTitle = this.editedTitle;\n this.isEditingTitle = false;\n this.cdr.markForCheck();\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.masterSubscriptionId\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 trackByPostId(index: number, post: Resource): number {\n return post.id;\n }\n}\n","<section class=\"resource-vault-section bg-white text-center py-5 extra-top-padding section-outer\">\n <div class=\"container\">\n <div *ngIf=\"showEventContent\" class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isEditingTitle }\">\n <ng-container *ngIf=\"!isEditingTitle; else editTitleBlock\">\n <span *ngIf=\"resourceTitle; else fallback\" [innerHTML]=\"resourceTitle\"></span>\n <ng-template #fallback>Events &amp; Webinars</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditTitle()\" (keydown.enter)=\"toggleEditTitle()\" (keydown.space)=\"toggleEditTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle()\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n <a class=\"view-all\" routerLink=\"/resources/events\">VIEW ALL ></a>\n </div>\n <div *ngIf=\"!showEventContent\" class=\"d-md-flex justify-content-between align-items-start\">\n <h2 class=\"section-heading d-flex align-items-center\" [ngClass]=\"{ 'w-50': isEditingTitle }\">\n <ng-container *ngIf=\"!isEditingTitle; else editTitleBlock\">\n <span *ngIf=\"resourceTitle; else fallback\" [innerHTML]=\"resourceTitle\"></span>\n <ng-template #fallback>Upcoming Events</ng-template>\n <i *ngIf=\"canEditResourcesValue\" class=\"fa fa-edit in-page-edit-icon ms-3 cursor-pointer\" (click)=\"toggleEditTitle()\" (keydown.enter)=\"toggleEditTitle()\" (keydown.space)=\"toggleEditTitle()\" title=\"Edit Title\"></i>\n </ng-container>\n\n <ng-template #editTitleBlock>\n <input [(ngModel)]=\"editedTitle\" class=\"form-control d-inline w-auto me-2\" [ngClass]=\"{ 'w-100': isEditingTitle }\" />\n <button class=\"btn btn-sm btn-primary me-1\" (click)=\"saveEditedTitle()\">Save</button>\n <button class=\"btn btn-sm btn-secondary\" (click)=\"isEditingTitle = false\">Cancel</button>\n </ng-template>\n </h2>\n </div>\n\n <div class=\"w-100 text-center mt-3\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div *ngIf=\"posts.length === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n\n <div class=\"row mt-5 d-flex flex-wrap justify-content-center gap-4 video-row\" *ngIf=\"posts.length !== 0 && isLoaded\">\n <div class=\"resource-blog-card d text-center p-4\" *ngFor=\"let post of posts; trackBy: trackByPostId\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEditResourcesValue\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"getAllPosts(1, 100)\">\n </pw-resource-edit-card-lazy>\n <ng-container *ngIf=\"postSlice; else conditionalCheck\">\n <h5 class=\"badge-title fw-bold\">UPCOMING:</h5>\n </ng-container>\n\n <ng-template #conditionalCheck>\n <h5 class=\"badge-title fw-bold\">\n {{ isUpcoming(post) ? 'UPCOMING:' : 'REPLAY:' }}\n </h5>\n </ng-template>\n\n <p class=\"event-title mb-4\" [innerHtml]=\"post?.title\"></p>\n <a\n [href]=\"post.external_url || ('/resources/view/' + post?.slug)\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Navigate to resource\"\n >\n <img\n [src]=\"post.picture.url\"\n class=\"img-fluid my-3 mt-auto\"\n alt=\"Webinar\"\n loading=\"lazy\"\n />\n </a>\n\n <a *ngIf=\"post?.external_url; else internalLink\"\n class=\"resource-btn mt-3\"\n aria-label=\"Navigate to external url\"\n [href]=\"post.external_url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n\n <ng-template #internalLink>\n <a class=\"resource-btn mt-3\" aria-label=\"Navigate to resource view\" [href]=\"'/resources/view/' + post?.slug\" target=\"_blank\">\n <span>{{ post?.cta_text && post.cta_text !== 'null' ? post.cta_text : 'Read Now' }}</span>\n <span class=\"arrow\">→</span>\n </a>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n\n<section class=\"bg-white\" *ngIf=\"!showEventContent\">\n <pw-replay-event-card [resourceTitle]=\"resourceTitle\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-replay-event-card>\n</section>","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { DirectivesModule } from '@posiwise/directives';\nimport { PipesModule } from '@posiwise/pipes';\nimport { ResourceSharedComponentsModule } from '@posiwise/shared-components';\n\nimport { NgxCaptchaModule } from 'ngx-captcha';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { PaginatorModule } from 'primeng/paginator';\n\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { ResourceNoteCardComponent } from '../components/reslease-note-card/release-note-card.component';\nimport { CaseStudyCardComponent } from '../components/resource-case-studies/case-studies-cards/case-studies-cards.component';\nimport { Trial4ContactUsModule } from '../components/resource-contact-us/resource-contact-us.module';\nimport { ResourceEditCardLazyComponent } from '../components/resource-edit-card-lazy/resource-edit-card-lazy.component';\nimport { ResourceCardComponent } from '../components/resource-post/related-resources/resource-cards/resource-cards.component';\nimport { ResourceVaultComponent } from '../components/resource-vault/resource-vault.component';\nimport { ResourceVideoCardComponent } from '../components/resource-videos/resource-video-cards/resource-video-cards.component';\nimport { UpcomingEventCardComponent } from '../components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component';\n\n/**\n * Module containing resource card components (lightweight version)\n * ResourceEditCard is lazy-loaded on demand to save 145 KB\n * Trial4ContactUs moved to separate module for better tree-shaking\n * Used by both ResourceRootModule and ResourceSharedModule\n */\n@NgModule({\n declarations: [\n ResourceVideoCardComponent,\n UpcomingEventCardComponent,\n ResourceCardComponent,\n CaseStudyCardComponent,\n ResourceNoteCardComponent,\n ResourceVaultComponent,\n ResourceEditCardLazyComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n PipesModule,\n PaginatorModule,\n DropdownModule,\n ResourceSharedComponentsModule,\n CoreTranslocoModule,\n TranslocoModule,\n DirectivesModule,\n DragDropModule,\n NgxCaptchaModule,\n Trial4ContactUsModule // ✅ Import standalone module\n ],\n exports: [\n ResourceVideoCardComponent,\n UpcomingEventCardComponent,\n ResourceCardComponent,\n CaseStudyCardComponent,\n ResourceNoteCardComponent,\n ResourceVaultComponent,\n Trial4ContactUsModule, // ✅ Re-export for backward compatibility\n ResourceEditCardLazyComponent\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourceCardsModule {}\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { HubSpotMeetingsSharedModule } from '@posiwise/alpha-module';\nimport { DemoCardsModule } from '@posiwise/resource-contact-us';\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { DirectivesModule } from '@posiwise/directives';\nimport { PipesModule } from '@posiwise/pipes';\nimport { ResourceSharedComponentsModule } from '@posiwise/shared-components';\n\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\n\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { ResourceCompanyCardComponent } from '../components/resource-company-card/resource-company-card.component';\nimport { ResourceTopBannerEditComponent } from '../components/resource-top-banner-edit/resource-top-banner-edit.component';\n\nimport { ResourceCardsModule } from './resource-cards.module';\n\n// Shared components used across multiple resource routes\n// Note: Most heavy modules (Quill, Calendar, UiSwitch, etc.) are now in ResourceCardsModule\n@NgModule({\n declarations: [ResourceCompanyCardComponent, ResourceTopBannerEditComponent],\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n PipesModule,\n ResourceSharedComponentsModule,\n CoreTranslocoModule,\n TranslocoModule,\n DirectivesModule,\n InputTextModule,\n InputTextareaModule,\n ResourceCardsModule,\n HubSpotMeetingsSharedModule // For pw-book-a-demo component (HubSpotMeetingsComponent)\n ],\n exports: [\n // Export the 2 components specific to this module\n ResourceCompanyCardComponent,\n ResourceTopBannerEditComponent,\n // Export card components module (includes all heavy modules + card components)\n ResourceCardsModule,\n // Export HubSpotMeetingsSharedModule to make pw-book-a-demo component available\n HubSpotMeetingsSharedModule,\n // Export common lightweight modules\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n PipesModule,\n ResourceSharedComponentsModule,\n CoreTranslocoModule,\n TranslocoModule,\n DirectivesModule,\n InputTextModule,\n InputTextareaModule\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourceSharedModule {}\n","import { Component, EventEmitter, Injector, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { AuthService, TagService } from '@posiwise/common-services';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport moment from 'moment';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-resource-edit-card',\n templateUrl: './resource-edit-card.component.html',\n styleUrl: './resource-edit-card.component.scss'\n})\nexport class ResourceEditCardComponent extends AppBaseComponent implements OnInit {\n @Input() id!: number;\n @Input() resourceData;\n @Output() updated = new EventEmitter<void>();\n\n editForm: FormGroup;\n image = '';\n rectangularImage = '';\n file: File | null = null;\n rectangularFile: File | null = null;\n\n imageModalRef;\n selectedTags = [];\n allTags = [];\n tagsSuggestion = [];\n subscriptionId: number;\n userLoggedIn: boolean;\n buttonBusy = false;\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly modalService: NgbModal,\n private readonly resourceService: ResourceService,\n private readonly authService: AuthService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n this.editForm = this.fb.group({\n title: [''],\n external_url: [''],\n cta_text: [''],\n when: [''],\n showcase: [false],\n published_at: [false],\n accepted_at: [false],\n body: ['']\n });\n }\n\n ngOnInit(): void {\n this.authService.getToken$().subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n }\n\n navigateToResourceEdit() {\n const basePath = `/admin/resources/${this.resourceData?.slug}`;\n const fullUrl = `${location.origin}${basePath}`;\n window.open(fullUrl, '_blank');\n }\n\n openModal(modalTemplate): void {\n if (this.resourceData) {\n const when = this.resourceData.when ? new Date(this.resourceData.when) : null;\n this.editForm.setValue({\n title: this.resourceData.title ?? '',\n external_url: this.resourceData.external_url ?? '',\n cta_text: this.resourceData.cta_text ?? '',\n when: when ?? '',\n showcase: !!this.resourceData.showcase,\n published_at: !!this.resourceData.published_at,\n accepted_at: !!this.resourceData.accepted_at,\n body: this.resourceData.body\n });\n this.image = this.resourceData.picture?.url ?? '';\n this.selectedTags = this.resourceData?.tags?.length ? [...this.resourceData.tags] : [];\n this.rectangularImage = this.resourceData.rectangular_picture?.url ?? '';\n }\n this.modalService.open(modalTemplate, { centered: true, size: 'lg' });\n this.getPostTags();\n }\n\n search(event) {\n let values = [];\n if (event.query) {\n values = this.allTags.filter(x =>\n x.name.toLowerCase().includes(event.query.toLowerCase())\n );\n } else {\n this.allTags.forEach(element => {\n values.push(element);\n });\n }\n this.tagsSuggestion = values;\n }\n\n private getPostTags() {\n this.tagService\n .getTagsByType('post_categories', {}, this.subscriptionId)\n .subscribe(response => {\n this.allTags = response.tags;\n });\n }\n\n deleteRectangularImage() {\n this.rectangularImage = null;\n this.rectangularFile = null;\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 onRectangularImageSelection(base64: string) {\n this.rectangularImage = base64;\n this.rectangularFile = HelperService.convertBase64ToFile(base64);\n this.imageModalRef?.close();\n }\n\n removeImage(): void {\n this.image = null;\n this.file = null;\n }\n\n saveResource(): void {\n this.buttonBusy = true;\n this.saveTags(this.id);\n const payload = {\n ...this.editForm.value,\n subscription_id: this.subscriptionId\n };\n\n this.handlePicture(payload);\n this.handlePublishedAt(payload);\n this.handleAcceptedAt(payload);\n this.handleAcceptedAt(payload);\n this.handleOptionalFields(payload);\n this.handleRectangularPicture(payload);\n this.handleRemovals(payload);\n\n this.resourceService.updatePost(payload, this.id).subscribe(() => {\n this.buttonBusy = false;\n this.toast.success('Blog Post Updated');\n this.updated.emit();\n this.modalService.dismissAll();\n });\n }\n\n private saveTags(id: number | string): void {\n if (this.selectedTags.length) {\n const data = {\n entity_tags: this.selectedTags.map(tag => ({ tag_id: tag.id })),\n slug: id,\n tag_entity: 'Post' // or use TAG_ENTITY.POST if you imported it\n };\n\n this.tagService.addTags(data, this.subscriptionId).subscribe();\n }\n }\n\n private handlePicture(data) {\n if (this.file) {\n data.picture = this.file;\n } else {\n delete data.picture;\n }\n }\n\n private handlePublishedAt(data) {\n const control = this.editForm.get('published_at');\n if (control?.dirty) {\n data.published_at = control.value ? moment().format('DD-MMM-YYYY') : '';\n } else {\n delete data.published_at;\n }\n }\n\n private handleAcceptedAt(data) {\n const control = this.editForm.get('accepted_at');\n if (control?.dirty) {\n data.accepted_at = control.value ? moment().format('DD-MMM-YYYY') : '';\n } else {\n delete data.accepted_at;\n }\n }\n\n private handleOptionalFields(data) {\n if (!this.editForm.get('when')?.value) {\n data.when = '';\n }\n if (!this.editForm.get('showcase')?.value) {\n data.showcase = '';\n }\n }\n\n private handleRectangularPicture(data) {\n if (this.rectangularFile) {\n data.rectangular_picture = this.rectangularFile;\n } else {\n delete data.rectangular_picture;\n }\n }\n\n private handleRemovals(data) {\n if (!this.file && !this.image) {\n data.remove_picture = true;\n }\n if (!this.rectangularFile && !this.rectangularImage) {\n data.remove_rectangular_picture = true;\n }\n }\n\n openRectModal(content) {\n this.imageModalRef = this.modalService.open(content, {\n centered: true,\n windowClass: 'modal-holder'\n });\n }\n\n handleImageError(event: Event, fallbackPath): void {\n HelperService.handleImageFallbackPath(event, fallbackPath);\n }\n}\n","<div class=\"edit-card\">\n <i class=\"fa fa-edit cursor-pointer text-dark in-page-edit-icon d-flex justify-content-center mb-2\"\n (click)=\"openModal(editResourceModal)\"\n (keydown.enter)=\"openModal(editResourceModal)\"\n (keydown.space)=\"openModal(editResourceModal)\"\n title=\"Edit Resource\"></i>\n</div>\n\n<ng-template #editResourceModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Resource</h5>\n <i class=\"fa fa-edit cursor-pointer text-dark in-page-edit-icon d-flex justify-content-center ms-3\"\n (click)=\"navigateToResourceEdit()\"\n (keydown.enter)=\"navigateToResourceEdit()\"\n (keydown.space)=\"navigateToResourceEdit()\"\n title=\"Go to the main edit page\"></i>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n\n <div class=\"modal-body\">\n <form [formGroup]=\"editForm\">\n <div class=\"row\">\n\n\n <div class=\"col-12\">\n <pw-input-container label=\"Title\" name=\"title\">\n <input type=\"text\" class=\"form-control\" formControlName=\"title\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 row\">\n <pw-input-container label=\"CTA Text\" name=\"cta_text\" class=\"col-md-6\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Resource.Posts.Tooltip.CtaText' | transloco\">\n <input type=\"text\" class=\"form-control\" formControlName=\"cta_text\" />\n </pw-input-container>\n\n <pw-input-container label=\"External URL\" name=\"external_url\" class=\"col-md-6\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Resource.Posts.Tooltip.ExternalUrl' | transloco\">\n <input type=\"text\" class=\"form-control\" formControlName=\"external_url\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container\n [label]=\"'Resource.Posts.Body' | transloco\"\n name=\"body\"\n [errorMsg]=\"'Resource.Posts.Validation.Body' | transloco\">\n <quill-editor\n [styles]=\"{ height: '300px' }\"\n class=\"quillEditor\"\n [modules]=\"editorConfig\"\n formControlName=\"body\"\n [ngClass]=\"{\n 'w-100': true,\n 'quill-container': true,\n 'is-invalid': submitted && f['body'].errors\n }\">\n </quill-editor>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-md-3 col-sm-6\">\n <pw-input-container\n [label]=\"'Resource.Posts.When' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Resource.Posts.Tooltip.When' | transloco\"\n name=\"when\">\n <p-calendar formControlName=\"when\"\n [showIcon]=\"true\"\n dateFormat=\"dd-M-yy\"\n [placeholder]=\"'Select Date'\"\n [ngClass]=\"{ 'is-invalid': submitted && f['when'].errors }\">\n </p-calendar>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-md-8\">\n <pw-input-container\n [label]=\"'Resource.Posts.Tags' | transloco\"\n class=\"ui-fluid skills-modal tags\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Resource.Posts.Tooltip.CtaText' | transloco\"\n name=\"cta_text\">\n <p-autoComplete [(ngModel)]=\"selectedTags\"\n class=\"body-bg\"\n [suggestions]=\"tagsSuggestion\"\n dataKey=\"id\"\n field=\"name\"\n (completeMethod)=\"search($event)\"\n styleClass=\"w-100\"\n [minLength]=\"1\"\n [maxlength]=\"10\"\n [dropdown]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n placeholder=\"Tags\"\n [multiple]=\"true\">\n </p-autoComplete>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 row\">\n <div class=\"col-md-4 col-sm-6\">\n <pw-input-container\n [label]=\"'SHOWCASE'\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Mark as showcase post'\"\n name=\"showcase\">\n <ui-switch formControlName=\"showcase\" class=\"d-block\"></ui-switch>\n </pw-input-container>\n </div>\n\n <div class=\"col-md-4 col-sm-6\">\n <pw-input-container\n [label]=\"'PUBLISHED'\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Set to publish the post'\"\n name=\"published_at\">\n <ui-switch formControlName=\"published_at\" class=\"d-block\"></ui-switch>\n </pw-input-container>\n </div>\n\n <div class=\"col-md-4 col-sm-6\">\n <pw-input-container\n [label]=\"'ACCEPTED BY ADMIN'\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Indicates approval by admin'\"\n name=\"accepted_at\">\n <ui-switch formControlName=\"accepted_at\" class=\"d-block\"></ui-switch>\n </pw-input-container>\n </div>\n </div>\n\n <div class=\"col-12 col-md-4 col-sm-4 my-4 ms-3\">\n <div class=\"text-center mb-4\">\n <label for=\"coverPicture\">{{ 'Resource.Posts.CoverPicture' | transloco }}</label>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img [src]=\"(image && !image.includes('default-photo.jpg')) ? image : 'assets/img/resource/blog.png'\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n class=\"image w-100\"\n alt=\"Modal\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ slug !== 'create' ? 'Edit' : 'Add' }} Picture\n </a>\n <i *ngIf=\"image && !image.includes('default-photo.jpg')\"\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 </div>\n\n <div class=\"col-12 col-md-4 col-sm-4 my-4 ms-3\">\n <div class=\"text-center mb-4\">\n <label for=\"rectangularPicture\">Rectangular Picture</label>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img [src]=\"(rectangularImage && !rectangularImage.includes('default-photo.jpg')) ? rectangularImage : 'assets/img/resource/blog.png'\"\n (click)=\"openRectModal(rectContent)\"\n (keydown.enter)=\"openRectModal(rectContent)\"\n class=\"image w-100\"\n alt=\"Uploaded rectangular media preview\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openRectModal(rectContent)\">\n {{ slug !== 'create' ? 'Edit' : 'Add' }} Picture\n </a>\n <i *ngIf=\"rectangularImage && !rectangularImage.includes('default-photo.jpg')\"\n class=\"fa fa-trash delete-icon text-danger ms-2 cursor-pointer\"\n title=\"Remove Image\"\n (click)=\"deleteRectangularImage()\"\n (keydown.enter)=\"deleteRectangularImage()\"></i>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </form>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" [buttonBusy]=\"buttonBusy\" (click)=\"saveResource()\">Save</button>\n </div>\n</ng-template>\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. (Do not upload pictures containing celebrities,\n nudity, artwork or copyrighted images.)</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\n<ng-template #rectContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Picture</h5>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file. (Do not upload pictures containing celebrities,\n nudity, artwork or copyrighted images.)</small>\n <pw-image-cropper\n #profile\n [aspectRatio]=\"'dynamic'\"\n (imageSelectionEvent)=\"onRectangularImageSelection($event)\"\n (closeEvent)=\"onClose()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { DirectivesModule } from '@posiwise/directives';\nimport { ResourceSharedComponentsModule } from '@posiwise/shared-components';\n\nimport { QuillModule } from 'ngx-quill';\nimport { UiSwitchModule } from 'ngx-ui-switch';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { CalendarModule } from 'primeng/calendar';\n\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { ResourceEditCardComponent } from '../components/resource-edit-card/resource-edit-card.component';\n\n/**\n * Lazy-loadable module for ResourceEditCard\n * Contains heavy dependencies (Quill, Calendar, etc.) that are only needed for admins\n * This module is dynamically imported when edit button is clicked\n */\n@NgModule({\n declarations: [ResourceEditCardComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CalendarModule,\n AutoCompleteModule,\n ResourceSharedComponentsModule,\n CoreTranslocoModule,\n TranslocoModule,\n DirectivesModule,\n QuillModule.forRoot(),\n UiSwitchModule\n ],\n exports: [ResourceEditCardComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourceEditModule {}\n","import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\n\nimport { Resource } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-testimonial-card',\n templateUrl: './testimonial-card.component.html',\n styleUrls: [\n './testimonial-card.component.scss',\n '../resource-post/related-resources/related-resources.component.scss'\n ]\n})\nexport class TestimonialCardListComponent implements OnChanges {\n @Output() editPost: EventEmitter<object> = new EventEmitter();\n\n @Input() posts: Resource[] = [];\n @Input() postHeader = '';\n @Input() canEdit = false;\n swiper;\n\n ngOnChanges(changes): void {\n if (changes.posts && this.posts?.length) {\n setTimeout(() => this.initSwiper(), 0); // Wait for DOM to render\n }\n }\n\n private async initSwiper() {\n // Dynamically import Swiper only when needed (lazy-load ~150KB library)\n const { default: Swiper, Navigation, Pagination } = await import('swiper');\n\n this.swiper = new Swiper('.swiper-container', {\n modules: [Navigation, Pagination],\n slidesPerView: 1,\n spaceBetween: 24,\n centeredSlides: true,\n touchRatio: 1,\n touchAngle: 45,\n grabCursor: true,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n },\n pagination: {\n el: '.swiper-pagination',\n clickable: true\n },\n breakpoints: {\n 425: {\n slidesPerView: 1.05,\n centeredSlides: true\n },\n 470: {\n slidesPerView: 1.25,\n centeredSlides: true\n },\n 564: {\n slidesPerView: 1.5,\n centeredSlides: true\n },\n 640: {\n slidesPerView: 1.5,\n centeredSlides: true\n },\n 768: {\n slidesPerView: 1.5,\n centeredSlides: true\n },\n 1024: {\n slidesPerView: 2, // Allow room between cards\n centeredSlides: false\n },\n 1200: {\n slidesPerView: 3,\n centeredSlides: false\n }\n }\n });\n }\n}\n","<section class=\"resource-section section-outer bg-white\">\n <div class=\"container\">\n <div *ngIf=\"postHeader\" class=\"d-flex justify-content-between align-items-center flex-wrap mb-3\">\n <h2 class=\"section-heading\">{{postHeader}}</h2>\n </div>\n <div *ngIf=\"posts.length === 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n<div [hidden]=\"posts.length === 0\">\n <div class=\"swiper-container\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" *ngFor=\"let post of posts\">\n <div class=\"testimonial-box\">\n <pw-resource-edit-card-lazy\n [canEdit]=\"canEdit\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"editPost.emit(1, 100)\">\n </pw-resource-edit-card-lazy>\n <div class=\"stars mb-5\">★★★★★</div>\n <div class=\"testimonial-content\">\n <div class=\"ql-container ql-snow ql-res\">\n <div class=\"ql-editor\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n </div>\n\n <!-- THIS STAYS AT BOTTOM -->\n <div class=\"avatar-container\">\n <img\n *ngIf=\"!post.rectangular_picture.url.includes('default-photo.jpg') \" [src]=\"post.rectangular_picture.url\"\n alt=\"Logo\"\n class=\"testimonial-logo mt-4\"\n />\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"swiper-pagination\"></div>\n <div class=\"swiper-button-prev\"></div>\n <div class=\"swiper-button-next\"></div>\n </div>\n</div>\n </div>\n</section>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4.ResourceEditCardLazyComponent","i5","i4","i7","i1.ResourceService","i9.ResourceEditCardLazyComponent","i2.ResourceService","i6","i8","i9","i10.ResourceEditCardLazyComponent","i11","i3.ResourceService","i10","i13","i3.ResourceEditCardLazyComponent"],"mappings":"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"}