@posiwise/resource-module 0.0.201 → 0.0.203

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 (45) hide show
  1. package/fesm2022/{posiwise-resource-module-base-top-banner.component-CrdBpNSj.mjs → posiwise-resource-module-base-top-banner.component-BwujN_up.mjs} +16 -32
  2. package/fesm2022/posiwise-resource-module-base-top-banner.component-BwujN_up.mjs.map +1 -0
  3. package/fesm2022/{posiwise-resource-module-resource-blogs.module-hxktrj98.mjs → posiwise-resource-module-resource-blogs.module-mSKg7oDE.mjs} +52 -70
  4. package/fesm2022/posiwise-resource-module-resource-blogs.module-mSKg7oDE.mjs.map +1 -0
  5. package/fesm2022/{posiwise-resource-module-resource-cards.module-D3yf7FNt.mjs → posiwise-resource-module-resource-cards.module-BSJpkk9V.mjs} +718 -705
  6. package/fesm2022/posiwise-resource-module-resource-cards.module-BSJpkk9V.mjs.map +1 -0
  7. package/fesm2022/{posiwise-resource-module-resource-case-studies.module-CFcO0CI-.mjs → posiwise-resource-module-resource-case-studies.module-rCEpwQ4J.mjs} +62 -61
  8. package/fesm2022/posiwise-resource-module-resource-case-studies.module-rCEpwQ4J.mjs.map +1 -0
  9. package/fesm2022/{posiwise-resource-module-resource-events.module-0PDppSJ6.mjs → posiwise-resource-module-resource-events.module-Djau8zuG.mjs} +53 -54
  10. package/fesm2022/posiwise-resource-module-resource-events.module-Djau8zuG.mjs.map +1 -0
  11. package/fesm2022/{posiwise-resource-module-resource-hub.module-2qzLV9I1.mjs → posiwise-resource-module-resource-hub.module-CQtyBld2.mjs} +141 -122
  12. package/fesm2022/posiwise-resource-module-resource-hub.module-CQtyBld2.mjs.map +1 -0
  13. package/fesm2022/{posiwise-resource-module-resource-integrations.module-DqDd_1U9.mjs → posiwise-resource-module-resource-integrations.module-BXyPZf3W.mjs} +129 -132
  14. package/fesm2022/posiwise-resource-module-resource-integrations.module-BXyPZf3W.mjs.map +1 -0
  15. package/fesm2022/posiwise-resource-module-resource-jobs.module-B53AOs8y.mjs +399 -0
  16. package/fesm2022/posiwise-resource-module-resource-jobs.module-B53AOs8y.mjs.map +1 -0
  17. package/fesm2022/{posiwise-resource-module-resource-post.module-BFuEjqA9.mjs → posiwise-resource-module-resource-post.module-DIaB5kyW.mjs} +206 -212
  18. package/fesm2022/posiwise-resource-module-resource-post.module-DIaB5kyW.mjs.map +1 -0
  19. package/fesm2022/{posiwise-resource-module-resource-release-notes.module-BbofH_0n.mjs → posiwise-resource-module-resource-release-notes.module-Btxs8la7.mjs} +59 -71
  20. package/fesm2022/posiwise-resource-module-resource-release-notes.module-Btxs8la7.mjs.map +1 -0
  21. package/fesm2022/{posiwise-resource-module-resource-root.module-C9c17Dhm.mjs → posiwise-resource-module-resource-root.module-BukwL-wp.mjs} +129 -132
  22. package/fesm2022/posiwise-resource-module-resource-root.module-BukwL-wp.mjs.map +1 -0
  23. package/fesm2022/{posiwise-resource-module-resource-videos.module-BsnB9vFd.mjs → posiwise-resource-module-resource-videos.module-CFkPbXn3.mjs} +50 -71
  24. package/fesm2022/posiwise-resource-module-resource-videos.module-CFkPbXn3.mjs.map +1 -0
  25. package/fesm2022/{posiwise-resource-module-resource-white-papers.module-BC-OyhAK.mjs → posiwise-resource-module-resource-white-papers.module-DBjSfwx4.mjs} +54 -68
  26. package/fesm2022/posiwise-resource-module-resource-white-papers.module-DBjSfwx4.mjs.map +1 -0
  27. package/fesm2022/{posiwise-resource-module-resource.service-IK3r0iUB.mjs → posiwise-resource-module-resource.service-DAXsq-WG.mjs} +7 -8
  28. package/fesm2022/posiwise-resource-module-resource.service-DAXsq-WG.mjs.map +1 -0
  29. package/fesm2022/posiwise-resource-module.mjs +252 -219
  30. package/fesm2022/posiwise-resource-module.mjs.map +1 -1
  31. package/package.json +1 -1
  32. package/types/posiwise-resource-module.d.ts +159 -168
  33. package/fesm2022/posiwise-resource-module-base-top-banner.component-CrdBpNSj.mjs.map +0 -1
  34. package/fesm2022/posiwise-resource-module-resource-blogs.module-hxktrj98.mjs.map +0 -1
  35. package/fesm2022/posiwise-resource-module-resource-cards.module-D3yf7FNt.mjs.map +0 -1
  36. package/fesm2022/posiwise-resource-module-resource-case-studies.module-CFcO0CI-.mjs.map +0 -1
  37. package/fesm2022/posiwise-resource-module-resource-events.module-0PDppSJ6.mjs.map +0 -1
  38. package/fesm2022/posiwise-resource-module-resource-hub.module-2qzLV9I1.mjs.map +0 -1
  39. package/fesm2022/posiwise-resource-module-resource-integrations.module-DqDd_1U9.mjs.map +0 -1
  40. package/fesm2022/posiwise-resource-module-resource-post.module-BFuEjqA9.mjs.map +0 -1
  41. package/fesm2022/posiwise-resource-module-resource-release-notes.module-BbofH_0n.mjs.map +0 -1
  42. package/fesm2022/posiwise-resource-module-resource-root.module-C9c17Dhm.mjs.map +0 -1
  43. package/fesm2022/posiwise-resource-module-resource-videos.module-BsnB9vFd.mjs.map +0 -1
  44. package/fesm2022/posiwise-resource-module-resource-white-papers.module-BC-OyhAK.mjs.map +0 -1
  45. package/fesm2022/posiwise-resource-module-resource.service-IK3r0iUB.mjs.map +0 -1
@@ -1,31 +1,28 @@
1
- import { c as ResourceNoteCardComponent, i as ResourceVaultComponent, n as UpcomingEventCardComponent, o as ResourceCardComponent, r as ResourceVideoCardComponent, s as CaseStudyCardComponent, t as ResourceCardsModule } from "./posiwise-resource-module-resource-cards.module-D3yf7FNt.mjs";
1
+ import { a as ResourceCardComponent, c as ResourceNoteCardComponent, n as UpcomingEventCardComponent, o as CaseStudyCardComponent, r as ResourceVaultComponent, s as ResourceVideoCardComponent, t as ResourceCardsModule } from "./posiwise-resource-module-resource-cards.module-BSJpkk9V.mjs";
2
2
  import * as i0 from "@angular/core";
3
- import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, EventEmitter, Input, NgModule, Output, ViewChild } from "@angular/core";
3
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, NgModule, Output, ViewChild, inject } from "@angular/core";
4
+ import { AuthService, TagService } from "@posiwise/common-services";
4
5
  import { HelperService } from "@posiwise/helper-service";
5
- import * as i1$2 from "@posiwise/common-services";
6
6
  import * as i1 from "@angular/router";
7
7
  import { RouterModule } from "@angular/router";
8
- import * as i8 from "@posiwise/resource-contact-us";
9
- import * as i2$1 from "@angular/common";
10
- import { CommonModule } from "@angular/common";
11
- import * as i4 from "@angular/forms";
8
+ import { Trial4ContactUsComponent } from "@posiwise/resource-contact-us";
9
+ import { CommonModule, NgClass } from "@angular/common";
10
+ import * as i1$1 from "@angular/forms";
12
11
  import { FormsModule } from "@angular/forms";
13
12
  import { CoreTranslocoModule } from "@posiwise/core-transloco";
14
- import * as i5 from "@posiwise/directives";
15
- import * as i7 from "@posiwise/shared-components";
16
- import { ResourceSharedComponentsModule } from "@posiwise/shared-components";
17
- import * as i8$1 from "@jsverse/transloco";
18
- import { TranslocoModule } from "@jsverse/transloco";
13
+ import { LazyImgDirective } from "@posiwise/directives";
14
+ import { NoDataComponent, ResourceSharedComponentsModule } from "@posiwise/shared-components";
15
+ import { TranslocoModule, TranslocoPipe } from "@jsverse/transloco";
19
16
  import { AppBaseComponent } from "@posiwise/app-base-component";
20
- import * as i1$1 from "@ng-bootstrap/ng-bootstrap";
21
- import * as i6 from "@posiwise/utils";
22
- import * as i3 from "@angular/platform-browser";
23
- import * as i2 from "@posiwise/admin-module-utils";
17
+ import { ProfileImageCropperComponent, ResourceHeaderComponent } from "@posiwise/utils";
18
+ import { NgbModal } from "@ng-bootstrap/ng-bootstrap";
19
+ import { Title } from "@angular/platform-browser";
20
+ import { AdminService } from "@posiwise/admin-module-utils";
24
21
  var ResourceTagComponent = class ResourceTagComponent extends AppBaseComponent {
25
- constructor(tagService, cdr, injector) {
26
- super(injector);
27
- this.tagService = tagService;
28
- this.cdr = cdr;
22
+ constructor() {
23
+ super(...arguments);
24
+ this.tagService = inject(TagService);
25
+ this.cdr = inject(ChangeDetectorRef);
29
26
  this.tagsLoaded = new EventEmitter();
30
27
  this.tagSelected = new EventEmitter();
31
28
  this.tags = [];
@@ -81,11 +78,7 @@ var ResourceTagComponent = class ResourceTagComponent extends AppBaseComponent {
81
78
  version: "22.2.3",
82
79
  ngImport: i0,
83
80
  type: ResourceTagComponent,
84
- deps: [
85
- { token: i1$2.TagService },
86
- { token: i0.ChangeDetectorRef },
87
- { token: i0.Injector }
88
- ],
81
+ deps: null,
89
82
  target: i0.ɵɵFactoryTarget.Component
90
83
  });
91
84
  }
@@ -94,7 +87,7 @@ var ResourceTagComponent = class ResourceTagComponent extends AppBaseComponent {
94
87
  minVersion: "17.0.0",
95
88
  version: "22.2.3",
96
89
  type: ResourceTagComponent,
97
- isStandalone: false,
90
+ isStandalone: true,
98
91
  selector: "pw-resource-tags",
99
92
  inputs: {
100
93
  user: "user",
@@ -111,7 +104,7 @@ var ResourceTagComponent = class ResourceTagComponent extends AppBaseComponent {
111
104
  styles: [".tag-section{padding-top:4.5rem!important}.resource-card{border:2px dashed #d4d4d4;border-radius:16px;background-color:#fff;transition:box-shadow .3s ease;cursor:pointer;min-height:95px;padding:1.5rem!important}.resource-card:hover{box-shadow:0 0 30px #00000014}.selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.resource-icon{font-size:2.5rem;color:var(--first)}.resource-text{font-size:1.4rem;font-weight:500;color:var(--text-color, currentColor);line-height:2rem}@media(width<=576px){.resource-card{padding:.3rem 1rem!important;height:100%;min-height:75px}.tag-section{padding-bottom:4.5rem!important}.resource-icon{font-size:2rem!important}.resource-text{font-size:1.2rem!important;line-height:1.6rem!important;overflow-wrap:break-word;hyphens:auto}}\n", "@charset \"UTF-8\";:root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: color-mix(in srgb, var(--first, rgb(23 105 225)) 85%, #000000);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255);--dashboard_bg: rgb(255 255 255);--pw-hairline: #e2e5ea;--public-btn-radius: 24px}.hub-page{display:block}.hub-page section,.hub-page header,.hub-page footer,.hub-page nav,.hub-page ul,.hub-page li,.hub-page article,.hub-page aside{float:none;clear:both}.hub-page ul,.hub-page li{list-style:none}.hub-page .hub-hero{background:linear-gradient(180deg,#061f2a 0%,#042230 60%,var(--sidebar_bg, #00303f) 100%);color:#f5f7fa;overflow:hidden;padding:88px 24px 96px;position:relative}.hub-page .hub-hero h1.hub-hero__title{color:#f5f7fa!important}.hub-page .hub-hero p.hub-hero__eyebrow{color:color-mix(in srgb,var(--first) 70%,white)!important}.hub-page .hub-hero p.hub-hero__subtitle{color:#aab3c0!important}.hub-page .hub-hero__glow{background:radial-gradient(60% 80% at 78% 18%,color-mix(in srgb,var(--first) 38%,transparent),transparent 70%),radial-gradient(40% 60% at 12% 100%,color-mix(in srgb,var(--second, #36c283) 22%,transparent),transparent 70%);inset:0;pointer-events:none;position:absolute}.hub-page .hub-hero__grid{background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;inset:0;opacity:.7;pointer-events:none;position:absolute;-webkit-mask-image:radial-gradient(120% 80% at 50% 30%,#000 30%,transparent 75%);mask-image:radial-gradient(120% 80% at 50% 30%,#000 30%,transparent 75%)}.hub-page .hub-hero__inner{margin:0 auto;max-width:1140px;position:relative}.hub-page .hub-hero__eyebrow{color:color-mix(in srgb,var(--first) 70%,white);font-size:12px;font-weight:600;letter-spacing:.18em;margin:0 0 18px}.hub-page .hub-hero__title{color:#f5f7fa;font-size:64px;font-weight:700;letter-spacing:-.02em;line-height:1.05;margin:0 0 18px;max-width:880px}.hub-page .hub-hero__subtitle{color:#aab3c0;font-size:18px;line-height:1.6;margin:0 0 36px;max-width:620px}.hub-page .hub-hero__br{display:inline}.hub-page .hub-hero__search{align-items:center;display:flex;gap:10px;max-width:560px}.hub-page .hub-hero__search .p-iconfield{flex:1}.hub-page .hub-hero__search .p-iconfield input.hub-hero__search-input{background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:10px;color:#f5f7fa;font-size:15px;height:48px;padding-left:42px;width:100%;transition:border-color .18s cubic-bezier(.2,.7,.2,1),background .18s cubic-bezier(.2,.7,.2,1),box-shadow .18s cubic-bezier(.2,.7,.2,1)}.hub-page .hub-hero__search .p-iconfield input.hub-hero__search-input::placeholder{color:#ffffff73}.hub-page .hub-hero__search .p-iconfield input.hub-hero__search-input:focus,.hub-page .hub-hero__search .p-iconfield input.hub-hero__search-input:focus-visible{background:#ffffff1f;border-color:#ffffff59;box-shadow:0 0 0 4px color-mix(in srgb,var(--first) 24%,transparent);outline:0}.hub-page .hub-hero__search .p-inputicon i{color:#ffffff8c}.hub-page .hub-hero__edit{align-items:center;background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:10px;color:#f5f7fa;cursor:pointer;display:inline-flex;height:48px;justify-content:center;transition:background .18s cubic-bezier(.2,.7,.2,1);width:48px}.hub-page .hub-hero__edit:hover{background:#ffffff29}.hub-shell{background:#fff;margin:0 auto;max-width:1188px;padding:40px 24px 96px;position:relative;width:100%}.hub-shell header,.hub-shell footer{float:none;clear:both}.hub-chips{border-bottom:1px solid #e7eaef;display:flex;flex-wrap:wrap;gap:4px;margin:0 0 32px;padding:0 0 12px}.hub-chip{align-items:center;background:transparent;border:0;border-radius:8px;color:#5a6473;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;line-height:1.2;padding:10px 14px;position:relative;transition:color .18s cubic-bezier(.2,.7,.2,1),background .18s cubic-bezier(.2,.7,.2,1)}.hub-chip__dot{background:#8a93a3;border-radius:9999px;flex-shrink:0;height:8px;transition:transform .18s cubic-bezier(.2,.7,.2,1),background .18s cubic-bezier(.2,.7,.2,1);width:8px}.hub-chip__dot[data-cat=\"0\"]{background:#2c7be5}.hub-chip__dot[data-cat=\"1\"]{background:#1f9d57}.hub-chip__dot[data-cat=\"2\"]{background:#b7791f}.hub-chip__dot[data-cat=\"3\"]{background:#b94c8c}.hub-chip__dot[data-cat=\"4\"]{background:#6a4ec2}.hub-chip__dot[data-cat=\"5\"]{background:#0aa39a}.hub-chip--all .hub-chip__dot{background:var(--first)}.hub-chip__count{background:#f7f8fa;border-radius:9999px;color:#8a93a3;font-size:11px;font-weight:600;padding:2px 8px;transition:background .18s cubic-bezier(.2,.7,.2,1),color .18s cubic-bezier(.2,.7,.2,1)}.hub-chip:hover{background:#f7f8fa;color:#0b0d10}.hub-chip:hover .hub-chip__dot{transform:scale(1.2)}.hub-chip:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--first) 22%,transparent);outline:0}.hub-chip--selected{color:#0b0d10}.hub-chip--selected:after{background:var(--first);border-radius:1px 1px 0 0;bottom:-13px;content:\"\";height:2px;left:14px;position:absolute;right:14px}.hub-chip--selected .hub-chip__count{background:color-mix(in srgb,var(--first) 14%,white);color:var(--first)}.hub-loading{padding:64px 0;text-align:center}.hub-grid{display:grid;gap:28px 24px;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0}.hub-post{--reveal-delay: 0ms;animation:hubReveal .42s .18s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--reveal-delay);background:#fff;border:1px solid #e7eaef;border-radius:14px;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:border-color .18s cubic-bezier(.2,.7,.2,1),transform .18s cubic-bezier(.2,.7,.2,1),box-shadow .18s cubic-bezier(.2,.7,.2,1)}.hub-post>pw-resource-edit-card-lazy{display:contents}.hub-post:hover{border-color:#cfd4dc;box-shadow:0 12px 28px #0b0d1014;transform:translateY(-2px)}.hub-post:hover .hub-post__title{color:var(--first)!important}.hub-post:hover .hub-post__media{transform:scale(1.02)}.hub-post__media{aspect-ratio:16/9;align-items:center;background:linear-gradient(135deg,#f7f8fa,#eef0f3);display:flex;justify-content:center;overflow:hidden;position:relative;text-decoration:none;transition:transform .18s cubic-bezier(.2,.7,.2,1)}.hub-post__media[data-cat=\"0\"]{--accent: $c0}.hub-post__media[data-cat=\"1\"]{--accent: $c1}.hub-post__media[data-cat=\"2\"]{--accent: $c2}.hub-post__media[data-cat=\"3\"]{--accent: $c3}.hub-post__media[data-cat=\"4\"]{--accent: $c4}.hub-post__media[data-cat=\"5\"]{--accent: $c5}.hub-post__media:before{background:linear-gradient(135deg,var(--accent, #2c7be5) 0%,color-mix(in srgb,var(--accent, #2c7be5) 30%,#0b0d10) 100%);content:\"\";inset:0;position:absolute}.hub-post__media:after{background-image:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.18),transparent 60%),radial-gradient(1px 1px at 70% 60%,rgba(255,255,255,.14),transparent 60%),radial-gradient(1px 1px at 40% 80%,rgba(255,255,255,.12),transparent 60%);background-size:200px 200px,180px 180px,220px 220px;content:\"\";inset:0;mix-blend-mode:overlay;opacity:.6;position:absolute}.hub-post__image{display:block;height:100%;object-fit:cover;position:relative;width:100%;z-index:2}.hub-post__glyph{color:#ffffffeb;font-size:76px;font-weight:700;letter-spacing:-.04em;position:relative;z-index:2}.hub-post__icon{color:#ffffffc7;font-size:18px;position:absolute;right:16px;top:16px;z-index:2}.hub-post__body{display:flex;flex:1;flex-direction:column;gap:10px;padding:22px 22px 20px}.hub-post__eyebrow{align-items:center;color:#5a6473;display:flex;font-size:11px;font-weight:600;gap:6px;letter-spacing:.1em;margin:0;text-transform:uppercase}.hub-post__eyebrow[data-cat=\"0\"]{--cat: $c0}.hub-post__eyebrow[data-cat=\"1\"]{--cat: $c1}.hub-post__eyebrow[data-cat=\"2\"]{--cat: $c2}.hub-post__eyebrow[data-cat=\"3\"]{--cat: $c3}.hub-post__eyebrow[data-cat=\"4\"]{--cat: $c4}.hub-post__eyebrow[data-cat=\"5\"]{--cat: $c5}.hub-post__eyebrow .hub-post__dot{background:var(--cat, #8a93a3);border-radius:9999px;flex-shrink:0;height:6px;width:6px}.hub-post__title{color:#0b0d10!important;cursor:pointer;font-size:19px!important;font-weight:600;letter-spacing:-.01em;line-height:1.35;margin:0;transition:color .18s cubic-bezier(.2,.7,.2,1);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding:0!important}.hub-post__excerpt{color:#5a6473;font-size:14px;line-height:1.55;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hub-post__foot{align-items:center;border-top:1px solid #e7eaef;display:flex;flex-wrap:nowrap;gap:10px;margin-top:auto;padding-top:14px}.hub-post__avatar{background:#f7f8fa;border-radius:9999px;flex:0 0 28px;height:28px;object-fit:cover;width:28px}.hub-post__avatar--text{align-items:center;background:color-mix(in srgb,var(--first) 14%,#f7f8fa);color:var(--first);display:inline-flex;font-size:11px;font-weight:700;justify-content:center}.hub-post__author-meta{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;overflow:hidden}.hub-post__author-name{color:#0b0d10;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-post__author-sub{color:#8a93a3;display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-post__author-sub time,.hub-post__author-sub span{display:inline}.hub-post__sep{color:#cfd4dc;margin:0 4px}.hub-post__views{background:#f7f8fa;border-radius:9999px;color:#8a93a3;flex:0 0 auto;font-size:11px;font-weight:600;padding:4px 10px}@keyframes hubReveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hub-empty{background:#f7f8fa;border:1px dashed #e7eaef;border-radius:14px;margin-top:16px;padding:56px 24px;text-align:center}@media(max-width:1100px){.hub-hero__title{font-size:52px}.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.hub-hero{padding:64px 20px 56px}.hub-hero__title{font-size:36px;line-height:1.1}.hub-hero__subtitle{font-size:16px;margin-bottom:28px}.hub-hero__br{display:none}.hub-shell{padding:28px 16px 64px}.hub-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.hub-chip{flex-shrink:0}.hub-grid{gap:20px;grid-template-columns:1fr}}@media(max-width:479px){.hub-hero__title{font-size:30px}.hub-post__body{padding:18px}}\n"],
112
105
  dependencies: [{
113
106
  kind: "directive",
114
- type: i2$1.NgClass,
107
+ type: NgClass,
115
108
  selector: "[ngClass]",
116
109
  inputs: ["class", "ngClass"]
117
110
  }],
@@ -129,16 +122,12 @@ i0.ɵɵngDeclareClassMetadata({
129
122
  args: [{
130
123
  selector: "pw-resource-tags",
131
124
  changeDetection: ChangeDetectionStrategy.OnPush,
132
- standalone: false,
125
+ imports: [NgClass],
126
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
133
127
  template: "@if (loading) {\n <!-- Skeleton — holds same space as real content to prevent CLS -->\n <section class=\"tag-section py-5 bg-white\">\n <div class=\"container\">\n <div class=\"row g-4\">\n @for (i of [1, 2, 3, 4, 5, 6, 7, 8]; track i) {\n <div class=\"col-md-3 col-sm-6 col-6 mb-1 mb-lg-4\">\n <div class=\"resource-card d-flex align-items-center p-3 placeholder-wave\">\n <span class=\"placeholder col-8 rounded\" style=\"height:1rem\"></span>\n </div>\n </div>\n }\n </div>\n </div>\n </section>\n} @else if (tags?.length) {\n <section class=\"tag-section py-5 bg-white\">\n <div class=\"container\">\n @if (userLoggedIn && user?.auth?.granted['Pages.Admin']) {\n <i\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black d-flex justify-content-end mb-3\"\n (click)=\"navigateToTagList()\"\n (keydown.enter)=\"navigateToTagList()\"\n (keydown.space)=\"navigateToTagList()\"\n title=\"Edit Tags\"></i>\n }\n <div class=\"row g-4\">\n @for (tag of tags; track tag) {\n <div class=\"col-md-3 col-sm-6 col-6 mb-1 mb-lg-4\">\n <div (click)=\"selectTag(tag)\" (keydown.enter)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n @if (tag?.icon_name) {\n <i class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n }\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n }\n </div>\n </div>\n </section>\n}\n",
134
128
  styles: [".tag-section{padding-top:4.5rem!important}.resource-card{border:2px dashed #d4d4d4;border-radius:16px;background-color:#fff;transition:box-shadow .3s ease;cursor:pointer;min-height:95px;padding:1.5rem!important}.resource-card:hover{box-shadow:0 0 30px #00000014}.selected{border:4px dashed #d4d4d4;border-color:var(--first)!important}.resource-icon{font-size:2.5rem;color:var(--first)}.resource-text{font-size:1.4rem;font-weight:500;color:var(--text-color, currentColor);line-height:2rem}@media(width<=576px){.resource-card{padding:.3rem 1rem!important;height:100%;min-height:75px}.tag-section{padding-bottom:4.5rem!important}.resource-icon{font-size:2rem!important}.resource-text{font-size:1.2rem!important;line-height:1.6rem!important;overflow-wrap:break-word;hyphens:auto}}\n", "@charset \"UTF-8\";:root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: color-mix(in srgb, var(--first, rgb(23 105 225)) 85%, #000000);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255);--dashboard_bg: rgb(255 255 255);--pw-hairline: #e2e5ea;--public-btn-radius: 24px}.hub-page{display:block}.hub-page section,.hub-page header,.hub-page footer,.hub-page nav,.hub-page ul,.hub-page li,.hub-page article,.hub-page aside{float:none;clear:both}.hub-page ul,.hub-page li{list-style:none}.hub-page .hub-hero{background:linear-gradient(180deg,#061f2a 0%,#042230 60%,var(--sidebar_bg, #00303f) 100%);color:#f5f7fa;overflow:hidden;padding:88px 24px 96px;position:relative}.hub-page .hub-hero h1.hub-hero__title{color:#f5f7fa!important}.hub-page .hub-hero p.hub-hero__eyebrow{color:color-mix(in srgb,var(--first) 70%,white)!important}.hub-page .hub-hero p.hub-hero__subtitle{color:#aab3c0!important}.hub-page .hub-hero__glow{background:radial-gradient(60% 80% at 78% 18%,color-mix(in srgb,var(--first) 38%,transparent),transparent 70%),radial-gradient(40% 60% at 12% 100%,color-mix(in srgb,var(--second, #36c283) 22%,transparent),transparent 70%);inset:0;pointer-events:none;position:absolute}.hub-page .hub-hero__grid{background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;inset:0;opacity:.7;pointer-events:none;position:absolute;-webkit-mask-image:radial-gradient(120% 80% at 50% 30%,#000 30%,transparent 75%);mask-image:radial-gradient(120% 80% at 50% 30%,#000 30%,transparent 75%)}.hub-page .hub-hero__inner{margin:0 auto;max-width:1140px;position:relative}.hub-page .hub-hero__eyebrow{color:color-mix(in srgb,var(--first) 70%,white);font-size:12px;font-weight:600;letter-spacing:.18em;margin:0 0 18px}.hub-page .hub-hero__title{color:#f5f7fa;font-size:64px;font-weight:700;letter-spacing:-.02em;line-height:1.05;margin:0 0 18px;max-width:880px}.hub-page .hub-hero__subtitle{color:#aab3c0;font-size:18px;line-height:1.6;margin:0 0 36px;max-width:620px}.hub-page .hub-hero__br{display:inline}.hub-page .hub-hero__search{align-items:center;display:flex;gap:10px;max-width:560px}.hub-page .hub-hero__search .p-iconfield{flex:1}.hub-page .hub-hero__search .p-iconfield input.hub-hero__search-input{background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:10px;color:#f5f7fa;font-size:15px;height:48px;padding-left:42px;width:100%;transition:border-color .18s cubic-bezier(.2,.7,.2,1),background .18s cubic-bezier(.2,.7,.2,1),box-shadow .18s cubic-bezier(.2,.7,.2,1)}.hub-page .hub-hero__search .p-iconfield input.hub-hero__search-input::placeholder{color:#ffffff73}.hub-page .hub-hero__search .p-iconfield input.hub-hero__search-input:focus,.hub-page .hub-hero__search .p-iconfield input.hub-hero__search-input:focus-visible{background:#ffffff1f;border-color:#ffffff59;box-shadow:0 0 0 4px color-mix(in srgb,var(--first) 24%,transparent);outline:0}.hub-page .hub-hero__search .p-inputicon i{color:#ffffff8c}.hub-page .hub-hero__edit{align-items:center;background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:10px;color:#f5f7fa;cursor:pointer;display:inline-flex;height:48px;justify-content:center;transition:background .18s cubic-bezier(.2,.7,.2,1);width:48px}.hub-page .hub-hero__edit:hover{background:#ffffff29}.hub-shell{background:#fff;margin:0 auto;max-width:1188px;padding:40px 24px 96px;position:relative;width:100%}.hub-shell header,.hub-shell footer{float:none;clear:both}.hub-chips{border-bottom:1px solid #e7eaef;display:flex;flex-wrap:wrap;gap:4px;margin:0 0 32px;padding:0 0 12px}.hub-chip{align-items:center;background:transparent;border:0;border-radius:8px;color:#5a6473;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;line-height:1.2;padding:10px 14px;position:relative;transition:color .18s cubic-bezier(.2,.7,.2,1),background .18s cubic-bezier(.2,.7,.2,1)}.hub-chip__dot{background:#8a93a3;border-radius:9999px;flex-shrink:0;height:8px;transition:transform .18s cubic-bezier(.2,.7,.2,1),background .18s cubic-bezier(.2,.7,.2,1);width:8px}.hub-chip__dot[data-cat=\"0\"]{background:#2c7be5}.hub-chip__dot[data-cat=\"1\"]{background:#1f9d57}.hub-chip__dot[data-cat=\"2\"]{background:#b7791f}.hub-chip__dot[data-cat=\"3\"]{background:#b94c8c}.hub-chip__dot[data-cat=\"4\"]{background:#6a4ec2}.hub-chip__dot[data-cat=\"5\"]{background:#0aa39a}.hub-chip--all .hub-chip__dot{background:var(--first)}.hub-chip__count{background:#f7f8fa;border-radius:9999px;color:#8a93a3;font-size:11px;font-weight:600;padding:2px 8px;transition:background .18s cubic-bezier(.2,.7,.2,1),color .18s cubic-bezier(.2,.7,.2,1)}.hub-chip:hover{background:#f7f8fa;color:#0b0d10}.hub-chip:hover .hub-chip__dot{transform:scale(1.2)}.hub-chip:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--first) 22%,transparent);outline:0}.hub-chip--selected{color:#0b0d10}.hub-chip--selected:after{background:var(--first);border-radius:1px 1px 0 0;bottom:-13px;content:\"\";height:2px;left:14px;position:absolute;right:14px}.hub-chip--selected .hub-chip__count{background:color-mix(in srgb,var(--first) 14%,white);color:var(--first)}.hub-loading{padding:64px 0;text-align:center}.hub-grid{display:grid;gap:28px 24px;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0}.hub-post{--reveal-delay: 0ms;animation:hubReveal .42s .18s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--reveal-delay);background:#fff;border:1px solid #e7eaef;border-radius:14px;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:border-color .18s cubic-bezier(.2,.7,.2,1),transform .18s cubic-bezier(.2,.7,.2,1),box-shadow .18s cubic-bezier(.2,.7,.2,1)}.hub-post>pw-resource-edit-card-lazy{display:contents}.hub-post:hover{border-color:#cfd4dc;box-shadow:0 12px 28px #0b0d1014;transform:translateY(-2px)}.hub-post:hover .hub-post__title{color:var(--first)!important}.hub-post:hover .hub-post__media{transform:scale(1.02)}.hub-post__media{aspect-ratio:16/9;align-items:center;background:linear-gradient(135deg,#f7f8fa,#eef0f3);display:flex;justify-content:center;overflow:hidden;position:relative;text-decoration:none;transition:transform .18s cubic-bezier(.2,.7,.2,1)}.hub-post__media[data-cat=\"0\"]{--accent: $c0}.hub-post__media[data-cat=\"1\"]{--accent: $c1}.hub-post__media[data-cat=\"2\"]{--accent: $c2}.hub-post__media[data-cat=\"3\"]{--accent: $c3}.hub-post__media[data-cat=\"4\"]{--accent: $c4}.hub-post__media[data-cat=\"5\"]{--accent: $c5}.hub-post__media:before{background:linear-gradient(135deg,var(--accent, #2c7be5) 0%,color-mix(in srgb,var(--accent, #2c7be5) 30%,#0b0d10) 100%);content:\"\";inset:0;position:absolute}.hub-post__media:after{background-image:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.18),transparent 60%),radial-gradient(1px 1px at 70% 60%,rgba(255,255,255,.14),transparent 60%),radial-gradient(1px 1px at 40% 80%,rgba(255,255,255,.12),transparent 60%);background-size:200px 200px,180px 180px,220px 220px;content:\"\";inset:0;mix-blend-mode:overlay;opacity:.6;position:absolute}.hub-post__image{display:block;height:100%;object-fit:cover;position:relative;width:100%;z-index:2}.hub-post__glyph{color:#ffffffeb;font-size:76px;font-weight:700;letter-spacing:-.04em;position:relative;z-index:2}.hub-post__icon{color:#ffffffc7;font-size:18px;position:absolute;right:16px;top:16px;z-index:2}.hub-post__body{display:flex;flex:1;flex-direction:column;gap:10px;padding:22px 22px 20px}.hub-post__eyebrow{align-items:center;color:#5a6473;display:flex;font-size:11px;font-weight:600;gap:6px;letter-spacing:.1em;margin:0;text-transform:uppercase}.hub-post__eyebrow[data-cat=\"0\"]{--cat: $c0}.hub-post__eyebrow[data-cat=\"1\"]{--cat: $c1}.hub-post__eyebrow[data-cat=\"2\"]{--cat: $c2}.hub-post__eyebrow[data-cat=\"3\"]{--cat: $c3}.hub-post__eyebrow[data-cat=\"4\"]{--cat: $c4}.hub-post__eyebrow[data-cat=\"5\"]{--cat: $c5}.hub-post__eyebrow .hub-post__dot{background:var(--cat, #8a93a3);border-radius:9999px;flex-shrink:0;height:6px;width:6px}.hub-post__title{color:#0b0d10!important;cursor:pointer;font-size:19px!important;font-weight:600;letter-spacing:-.01em;line-height:1.35;margin:0;transition:color .18s cubic-bezier(.2,.7,.2,1);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding:0!important}.hub-post__excerpt{color:#5a6473;font-size:14px;line-height:1.55;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hub-post__foot{align-items:center;border-top:1px solid #e7eaef;display:flex;flex-wrap:nowrap;gap:10px;margin-top:auto;padding-top:14px}.hub-post__avatar{background:#f7f8fa;border-radius:9999px;flex:0 0 28px;height:28px;object-fit:cover;width:28px}.hub-post__avatar--text{align-items:center;background:color-mix(in srgb,var(--first) 14%,#f7f8fa);color:var(--first);display:inline-flex;font-size:11px;font-weight:700;justify-content:center}.hub-post__author-meta{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;overflow:hidden}.hub-post__author-name{color:#0b0d10;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-post__author-sub{color:#8a93a3;display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-post__author-sub time,.hub-post__author-sub span{display:inline}.hub-post__sep{color:#cfd4dc;margin:0 4px}.hub-post__views{background:#f7f8fa;border-radius:9999px;color:#8a93a3;flex:0 0 auto;font-size:11px;font-weight:600;padding:4px 10px}@keyframes hubReveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hub-empty{background:#f7f8fa;border:1px dashed #e7eaef;border-radius:14px;margin-top:16px;padding:56px 24px;text-align:center}@media(max-width:1100px){.hub-hero__title{font-size:52px}.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.hub-hero{padding:64px 20px 56px}.hub-hero__title{font-size:36px;line-height:1.1}.hub-hero__subtitle{font-size:16px;margin-bottom:28px}.hub-hero__br{display:none}.hub-shell{padding:28px 16px 64px}.hub-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.hub-chip{flex-shrink:0}.hub-grid{gap:20px;grid-template-columns:1fr}}@media(max-width:479px){.hub-hero__title{font-size:30px}.hub-post__body{padding:18px}}\n"]
135
129
  }]
136
130
  }],
137
- ctorParameters: () => [
138
- { type: i1$2.TagService },
139
- { type: i0.ChangeDetectorRef },
140
- { type: i0.Injector }
141
- ],
142
131
  propDecorators: {
143
132
  tagsLoaded: [{ type: Output }],
144
133
  tagSelected: [{ type: Output }],
@@ -147,12 +136,12 @@ i0.ɵɵngDeclareClassMetadata({
147
136
  }
148
137
  });
149
138
  var VaultSectionComponent = class VaultSectionComponent extends AppBaseComponent {
150
- constructor(injector, modalService, adminService, titleService, cdr) {
151
- super(injector);
152
- this.modalService = modalService;
153
- this.adminService = adminService;
154
- this.titleService = titleService;
155
- this.cdr = cdr;
139
+ constructor() {
140
+ super(...arguments);
141
+ this.modalService = inject(NgbModal);
142
+ this.adminService = inject(AdminService);
143
+ this.titleService = inject(Title);
144
+ this.cdr = inject(ChangeDetectorRef);
156
145
  this.resourceTagLine = this.appConfig.pages_config?.resources.resources_tagline;
157
146
  this.resourceImage = this.appConfig.pages_config?.resources.resources_image.url;
158
147
  this.resourceDescription = this.appConfig.pages_config?.resources.resources_description;
@@ -266,13 +255,7 @@ var VaultSectionComponent = class VaultSectionComponent extends AppBaseComponent
266
255
  version: "22.2.3",
267
256
  ngImport: i0,
268
257
  type: VaultSectionComponent,
269
- deps: [
270
- { token: i0.Injector },
271
- { token: i1$1.NgbModal },
272
- { token: i2.AdminService },
273
- { token: i3.Title },
274
- { token: i0.ChangeDetectorRef }
275
- ],
258
+ deps: null,
276
259
  target: i0.ɵɵFactoryTarget.Component
277
260
  });
278
261
  }
@@ -281,7 +264,7 @@ var VaultSectionComponent = class VaultSectionComponent extends AppBaseComponent
281
264
  minVersion: "17.0.0",
282
265
  version: "22.2.3",
283
266
  type: VaultSectionComponent,
284
- isStandalone: false,
267
+ isStandalone: true,
285
268
  selector: "pw-vault-section",
286
269
  inputs: {
287
270
  user: "user",
@@ -301,17 +284,36 @@ var VaultSectionComponent = class VaultSectionComponent extends AppBaseComponent
301
284
  dependencies: [
302
285
  {
303
286
  kind: "directive",
304
- type: i4.DefaultValueAccessor,
287
+ type: LazyImgDirective,
288
+ selector: "img"
289
+ },
290
+ {
291
+ kind: "component",
292
+ type: NoDataComponent,
293
+ selector: "pw-no-data",
294
+ inputs: [
295
+ "message",
296
+ "description",
297
+ "withImage"
298
+ ]
299
+ },
300
+ {
301
+ kind: "ngmodule",
302
+ type: FormsModule
303
+ },
304
+ {
305
+ kind: "directive",
306
+ type: i1$1.DefaultValueAccessor,
305
307
  selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]"
306
308
  },
307
309
  {
308
310
  kind: "directive",
309
- type: i4.NgControlStatus,
311
+ type: i1$1.NgControlStatus,
310
312
  selector: "[formControlName],[ngModel],[formControl]"
311
313
  },
312
314
  {
313
315
  kind: "directive",
314
- type: i4.NgModel,
316
+ type: i1$1.NgModel,
315
317
  selector: "[ngModel]:not([formControlName]):not([formControl])",
316
318
  inputs: [
317
319
  "name",
@@ -322,14 +324,9 @@ var VaultSectionComponent = class VaultSectionComponent extends AppBaseComponent
322
324
  outputs: ["ngModelChange"],
323
325
  exportAs: ["ngModel"]
324
326
  },
325
- {
326
- kind: "directive",
327
- type: i5.LazyImgDirective,
328
- selector: "img"
329
- },
330
327
  {
331
328
  kind: "component",
332
- type: i6.ProfileImageCropperComponent,
329
+ type: ProfileImageCropperComponent,
333
330
  selector: "pw-image-cropper",
334
331
  inputs: ["aspectRatio", "dynamicData"],
335
332
  outputs: [
@@ -338,19 +335,9 @@ var VaultSectionComponent = class VaultSectionComponent extends AppBaseComponent
338
335
  "fileChangeEvent"
339
336
  ]
340
337
  },
341
- {
342
- kind: "component",
343
- type: i7.NoDataComponent,
344
- selector: "pw-no-data",
345
- inputs: [
346
- "message",
347
- "description",
348
- "withImage"
349
- ]
350
- },
351
338
  {
352
339
  kind: "pipe",
353
- type: i8$1.TranslocoPipe,
340
+ type: TranslocoPipe,
354
341
  name: "transloco"
355
342
  }
356
343
  ],
@@ -368,18 +355,18 @@ i0.ɵɵngDeclareClassMetadata({
368
355
  args: [{
369
356
  selector: "pw-vault-section",
370
357
  changeDetection: ChangeDetectionStrategy.OnPush,
371
- standalone: false,
358
+ imports: [
359
+ LazyImgDirective,
360
+ NoDataComponent,
361
+ FormsModule,
362
+ ProfileImageCropperComponent,
363
+ TranslocoPipe
364
+ ],
365
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
372
366
  template: "<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n\n <!-- Edit Icon (top-right) -->\n\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <div class=\"d-flex\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n @if (canEditResourcesValue) {\n <i\n class=\"fa fa-edit tag-edit-icon in-page-edit-icon mt-4 ms-3 cursor-pointer\"\n title=\"Edit Resource\"\n (click)=\"openEditResourceModal()\"\n (keydown.enter)=\"openEditResourceModal()\"\n (keydown.space)=\"openEditResourceModal()\"\n ></i>\n }\n </div>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n @if (resourceImage) {\n <img\n [src]=\"resourceImage\"\n alt=\"Vault Mockup\"\n class=\"img-fluid\"\n width=\"800\"\n height=\"600\"\n fetchpriority=\"high\"\n decoding=\"async\"\n loading=\"eager\" />\n } @else {\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n }\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<!-- Edit Modal -->\n<ng-template #editResourceModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Resources</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"mb-3\">\n <label for=\"editTagline\" class=\"form-label\">Tagline</label>\n <input id=\"editTagline\" [(ngModel)]=\"editingTagline\" class=\"form-control\"\n aria-label=\"Edit Tagline\" />\n </div>\n <div class=\"mb-3\">\n <label for=\"editDescription\" class=\"form-label\">Description</label>\n <textarea id=\"editDescription\" name=\"editingDescription\" [(ngModel)]=\"editingDescription\" rows=\"4\" class=\"form-control\"\n aria-label=\"Editing Description\"></textarea>\n </div>\n <div class=\"mb-3\">\n <span class=\"pw-label-style form-label\" id=\"vault-section-resource-image-label\">Resource Image</span>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img\n [src]=\"image || 'assets/img/resource/blog.png'\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n class=\"image w-100 mb-2\"\n alt=\"Resource content\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ file || image ? 'Edit' : 'Add' }} Picture\n </a>\n @if (image) {\n <i\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 }\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"modal-footer\">\n <button class=\"btn btn-primary\" (click)=\"saveResourceContent(modal)\">Save</button>\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n </div>\n</ng-template>\n\n\n\n<ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Picture</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file.</small>\n <pw-image-cropper\n [aspectRatio]=\"'dynamic'\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"modal.close()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n",
373
367
  styles: [".vault-section{position:relative;padding:5rem 0;color:#fff;background:linear-gradient(90deg,var(--first) 0%,#a8e1fb 100%);overflow:hidden}.vault-section:after{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:61%;background:#fff;clip-path:polygon(0 18%,100% 0%,100% 100%,0% 100%);z-index:1}.vault-section .container{position:relative;z-index:2}.vault-section .row{min-height:600px;align-items:center}.vault-section .text-content{max-width:550px;height:100%;display:flex;flex-direction:column;justify-content:center}.vault-section .text-content .headline{font-weight:500;color:#fff!important;font-size:4.5rem!important}.vault-section .text-content .description{font-size:2rem;line-height:3rem;font-weight:400;color:var(--text-color, currentColor);margin-bottom:1rem}.vault-section .text-content .description strong{font-weight:700}.vault-section .text-content .cta-btn{display:inline-block;background:var(--text-color, black);color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.vault-section .text-content .cta-btn:hover{background-color:#fff!important;color:var(--text-color, black)!important}.vault-section .img-wrapper{text-align:center;min-height:400px;display:flex;align-items:center;justify-content:center}@media(width>=991px){.vault-section .img-wrapper{min-height:600px}.vault-section .img-wrapper img,.vault-section .img-wrapper pw-no-data{max-width:800px;max-height:800px;height:auto;width:100%;object-fit:contain}}@media(width>=991px){.vault-section img,.vault-section pw-no-data{max-width:800px;width:100%;height:auto;position:relative;top:11.6rem}.vault-section .description-content{max-width:500px;position:absolute;margin-top:31rem!important}.vault-section .headline{margin-bottom:21rem!important}}@media(width>=1100px){.vault-section img,.vault-section pw-no-data{left:25%}}@media(width>=991px)and (width<=1100px){.vault-section img,.vault-section pw-no-data{top:12.9rem!important;left:19%}}@media(width<=991px){.vault-section .vault-row{text-align:center;justify-content:center}.vault-section img,.vault-section pw-no-data{top:5rem!important;position:relative}}@media(width<=768px){.vault-section .text-content{text-align:center;margin-bottom:2rem;margin-top:3rem!important}.vault-section .text-content .headline{font-size:3rem!important}.vault-section .text-content .description{font-size:1.5rem;line-height:2rem}}.tag-edit-icon{margin-top:2rem!important}\n"]
374
368
  }]
375
369
  }],
376
- ctorParameters: () => [
377
- { type: i0.Injector },
378
- { type: i1$1.NgbModal },
379
- { type: i2.AdminService },
380
- { type: i3.Title },
381
- { type: i0.ChangeDetectorRef }
382
- ],
383
370
  propDecorators: {
384
371
  editResourceModalRef: [{
385
372
  type: ViewChild,
@@ -390,10 +377,10 @@ i0.ɵɵngDeclareClassMetadata({
390
377
  }
391
378
  });
392
379
  var ResourceComponent = class ResourceComponent extends AppBaseComponent {
393
- constructor(authService, cdr, injector) {
394
- super(injector);
395
- this.authService = authService;
396
- this.cdr = cdr;
380
+ constructor() {
381
+ super(...arguments);
382
+ this.authService = inject(AuthService);
383
+ this.cdr = inject(ChangeDetectorRef);
397
384
  this.allTags = [];
398
385
  }
399
386
  ngOnInit() {
@@ -448,11 +435,7 @@ var ResourceComponent = class ResourceComponent extends AppBaseComponent {
448
435
  version: "22.2.3",
449
436
  ngImport: i0,
450
437
  type: ResourceComponent,
451
- deps: [
452
- { token: i1$2.AuthService },
453
- { token: i0.ChangeDetectorRef },
454
- { token: i0.Injector }
455
- ],
438
+ deps: null,
456
439
  target: i0.ɵɵFactoryTarget.Component
457
440
  });
458
441
  }
@@ -461,13 +444,32 @@ var ResourceComponent = class ResourceComponent extends AppBaseComponent {
461
444
  minVersion: "17.0.0",
462
445
  version: "22.2.3",
463
446
  type: ResourceComponent,
464
- isStandalone: false,
447
+ isStandalone: true,
465
448
  selector: "pw-resources",
466
449
  usesInheritance: true,
467
450
  ngImport: i0,
468
451
  template: "\n<pw-resource-header [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-header>\n<pw-vault-section [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-vault-section>\n<pw-resource-tags [user]=\"user\" [userLoggedIn]=\"userLoggedIn\" (tagsLoaded)=\"onTagsLoaded($event)\" (tagSelected)=\"scrollToTag($event)\"></pw-resource-tags>\n@if (hasTag('Videos')) {\n <pw-resource-video-card id=\"videos\" [tag]=\"getTag('Videos')\" [showVideoSection]=\"true\" [categoryId]=\"getCategoryIdByTagName('Videos')\" [resourceTitle]=\"getTitleByTagName('Videos')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-video-card>\n}\n@if (hasTag('Events')) {\n <pw-upcoming-event-card id=\"events\" [tag]=\"getTag('Events')\" [showEventContent]=\"true\" [categoryId]=\"getCategoryIdByTagName('Events')\" [resourceTitle]=\"getTitleByTagName('Events')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-upcoming-event-card>\n}\n@if (hasTag('Blog Posts')) {\n <pw-resource-cards resourceLink=\"/resources/blogs\" [tag]=\"getTag('Blog Posts')\" id=\"blog-posts\" [categoryId]=\"getCategoryIdByTagName('Blog Posts')\" [resourceTitle]=\"getTitleByTagName('Blog Posts')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-cards>\n}\n@if (hasTag('Case Studies')) {\n <pw-case-studies-card id=\"case-studies\" [tag]=\"getTag('Case Studies')\" [showCaseStudyHeader]=\"true\" [categoryId]=\"getCategoryIdByTagName('Case Studies')\" [resourceTitle]=\"getTitleByTagName('Case Studies')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-case-studies-card>\n}\n@if (hasTag('White Papers')) {\n <pw-resource--vault (isLoadedChange)=\"onVaultLoaded($event)\" id=\"white-papers\" [tag]=\"getTag('White Papers')\" [showVaultSection]=\"true\" [categoryId]=\"getCategoryIdByTagName('White Papers')\" [resourceTitle]=\"getTitleByTagName('White Papers')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource--vault>\n}\n@if (hasTag('Product Release Notes')) {\n <pw-resource-note-card [isResource]=\"true\" [isReleasePress]=\"true\" id=\"product-release-notes\" [tag]=\"getTag('Product Release Notes')\" [releaseHeader]=\"true\" [categoryId]=\"getCategoryIdByTagName('Product Release Notes')\" [resourceTitle]=\"getTitleByTagName('Product Release Notes')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-note-card>\n}\n@if (isFooterLoaded) {\n <pw-trial-4-contact-us [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-trial-4-contact-us>\n}",
469
452
  styles: ["::ng-deep .resource-vault-section,::ng-deep .release-notes-section,::ng-deep .resource-section,::ng-deep .vault-section{box-shadow:0 4px 32px -14px #40576d4d!important}\n"],
470
453
  dependencies: [
454
+ {
455
+ kind: "component",
456
+ type: ResourceHeaderComponent,
457
+ selector: "pw-resource-header",
458
+ inputs: ["user", "userLoggedIn"]
459
+ },
460
+ {
461
+ kind: "component",
462
+ type: VaultSectionComponent,
463
+ selector: "pw-vault-section",
464
+ inputs: ["user", "userLoggedIn"]
465
+ },
466
+ {
467
+ kind: "component",
468
+ type: ResourceTagComponent,
469
+ selector: "pw-resource-tags",
470
+ inputs: ["user", "userLoggedIn"],
471
+ outputs: ["tagsLoaded", "tagSelected"]
472
+ },
471
473
  {
472
474
  kind: "component",
473
475
  type: ResourceVideoCardComponent,
@@ -527,6 +529,19 @@ var ResourceComponent = class ResourceComponent extends AppBaseComponent {
527
529
  "userLoggedIn"
528
530
  ]
529
531
  },
532
+ {
533
+ kind: "component",
534
+ type: ResourceVaultComponent,
535
+ selector: "pw-resource--vault",
536
+ inputs: [
537
+ "showVaultSection",
538
+ "postSlice",
539
+ "categoryId",
540
+ "resourceTitle",
541
+ "tag"
542
+ ],
543
+ outputs: ["isLoadedChange"]
544
+ },
530
545
  {
531
546
  kind: "component",
532
547
  type: ResourceNoteCardComponent,
@@ -545,20 +560,7 @@ var ResourceComponent = class ResourceComponent extends AppBaseComponent {
545
560
  },
546
561
  {
547
562
  kind: "component",
548
- type: ResourceVaultComponent,
549
- selector: "pw-resource--vault",
550
- inputs: [
551
- "showVaultSection",
552
- "postSlice",
553
- "categoryId",
554
- "resourceTitle",
555
- "tag"
556
- ],
557
- outputs: ["isLoadedChange"]
558
- },
559
- {
560
- kind: "component",
561
- type: i8.Trial4ContactUsComponent,
563
+ type: Trial4ContactUsComponent,
562
564
  selector: "pw-trial-4-contact-us",
563
565
  inputs: [
564
566
  "subscriptionId",
@@ -570,25 +572,6 @@ var ResourceComponent = class ResourceComponent extends AppBaseComponent {
570
572
  "user",
571
573
  "userLoggedIn"
572
574
  ]
573
- },
574
- {
575
- kind: "component",
576
- type: i6.ResourceHeaderComponent,
577
- selector: "pw-resource-header",
578
- inputs: ["user", "userLoggedIn"]
579
- },
580
- {
581
- kind: "component",
582
- type: ResourceTagComponent,
583
- selector: "pw-resource-tags",
584
- inputs: ["user", "userLoggedIn"],
585
- outputs: ["tagsLoaded", "tagSelected"]
586
- },
587
- {
588
- kind: "component",
589
- type: VaultSectionComponent,
590
- selector: "pw-vault-section",
591
- inputs: ["user", "userLoggedIn"]
592
575
  }
593
576
  ],
594
577
  changeDetection: i0.ChangeDetectionStrategy.OnPush
@@ -605,16 +588,23 @@ i0.ɵɵngDeclareClassMetadata({
605
588
  args: [{
606
589
  selector: "pw-resources",
607
590
  changeDetection: ChangeDetectionStrategy.OnPush,
608
- standalone: false,
591
+ imports: [
592
+ ResourceHeaderComponent,
593
+ VaultSectionComponent,
594
+ ResourceTagComponent,
595
+ ResourceVideoCardComponent,
596
+ UpcomingEventCardComponent,
597
+ ResourceCardComponent,
598
+ CaseStudyCardComponent,
599
+ ResourceVaultComponent,
600
+ ResourceNoteCardComponent,
601
+ Trial4ContactUsComponent
602
+ ],
603
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
609
604
  template: "\n<pw-resource-header [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-header>\n<pw-vault-section [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-vault-section>\n<pw-resource-tags [user]=\"user\" [userLoggedIn]=\"userLoggedIn\" (tagsLoaded)=\"onTagsLoaded($event)\" (tagSelected)=\"scrollToTag($event)\"></pw-resource-tags>\n@if (hasTag('Videos')) {\n <pw-resource-video-card id=\"videos\" [tag]=\"getTag('Videos')\" [showVideoSection]=\"true\" [categoryId]=\"getCategoryIdByTagName('Videos')\" [resourceTitle]=\"getTitleByTagName('Videos')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-video-card>\n}\n@if (hasTag('Events')) {\n <pw-upcoming-event-card id=\"events\" [tag]=\"getTag('Events')\" [showEventContent]=\"true\" [categoryId]=\"getCategoryIdByTagName('Events')\" [resourceTitle]=\"getTitleByTagName('Events')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-upcoming-event-card>\n}\n@if (hasTag('Blog Posts')) {\n <pw-resource-cards resourceLink=\"/resources/blogs\" [tag]=\"getTag('Blog Posts')\" id=\"blog-posts\" [categoryId]=\"getCategoryIdByTagName('Blog Posts')\" [resourceTitle]=\"getTitleByTagName('Blog Posts')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-cards>\n}\n@if (hasTag('Case Studies')) {\n <pw-case-studies-card id=\"case-studies\" [tag]=\"getTag('Case Studies')\" [showCaseStudyHeader]=\"true\" [categoryId]=\"getCategoryIdByTagName('Case Studies')\" [resourceTitle]=\"getTitleByTagName('Case Studies')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-case-studies-card>\n}\n@if (hasTag('White Papers')) {\n <pw-resource--vault (isLoadedChange)=\"onVaultLoaded($event)\" id=\"white-papers\" [tag]=\"getTag('White Papers')\" [showVaultSection]=\"true\" [categoryId]=\"getCategoryIdByTagName('White Papers')\" [resourceTitle]=\"getTitleByTagName('White Papers')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource--vault>\n}\n@if (hasTag('Product Release Notes')) {\n <pw-resource-note-card [isResource]=\"true\" [isReleasePress]=\"true\" id=\"product-release-notes\" [tag]=\"getTag('Product Release Notes')\" [releaseHeader]=\"true\" [categoryId]=\"getCategoryIdByTagName('Product Release Notes')\" [resourceTitle]=\"getTitleByTagName('Product Release Notes')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-note-card>\n}\n@if (isFooterLoaded) {\n <pw-trial-4-contact-us [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-trial-4-contact-us>\n}",
610
605
  styles: ["::ng-deep .resource-vault-section,::ng-deep .release-notes-section,::ng-deep .resource-section,::ng-deep .vault-section{box-shadow:0 4px 32px -14px #40576d4d!important}\n"]
611
606
  }]
612
- }],
613
- ctorParameters: () => [
614
- { type: i1$2.AuthService },
615
- { type: i0.ChangeDetectorRef },
616
- { type: i0.Injector }
617
- ]
607
+ }]
618
608
  });
619
609
  var ResourceRootSharedModule = class ResourceRootSharedModule {
620
610
  static {
@@ -728,12 +718,13 @@ var ResourceRootModule = class ResourceRootModule {
728
718
  version: "22.2.3",
729
719
  ngImport: i0,
730
720
  type: ResourceRootModule,
731
- declarations: [
721
+ imports: [
722
+ ResourceRootSharedModule,
723
+ i1.RouterModule,
732
724
  ResourceComponent,
733
725
  ResourceTagComponent,
734
726
  VaultSectionComponent
735
- ],
736
- imports: [ResourceRootSharedModule, i1.RouterModule]
727
+ ]
737
728
  });
738
729
  }
739
730
  static {
@@ -742,7 +733,12 @@ var ResourceRootModule = class ResourceRootModule {
742
733
  version: "22.2.3",
743
734
  ngImport: i0,
744
735
  type: ResourceRootModule,
745
- imports: [ResourceRootSharedModule, RouterModule.forChild(routes)]
736
+ imports: [
737
+ ResourceRootSharedModule,
738
+ RouterModule.forChild(routes),
739
+ ResourceComponent,
740
+ VaultSectionComponent
741
+ ]
746
742
  });
747
743
  }
748
744
  };
@@ -754,16 +750,17 @@ i0.ɵɵngDeclareClassMetadata({
754
750
  decorators: [{
755
751
  type: NgModule,
756
752
  args: [{
757
- declarations: [
753
+ imports: [
754
+ ResourceRootSharedModule,
755
+ RouterModule.forChild(routes),
758
756
  ResourceComponent,
759
757
  ResourceTagComponent,
760
758
  VaultSectionComponent
761
759
  ],
762
- imports: [ResourceRootSharedModule, RouterModule.forChild(routes)],
763
760
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
764
761
  }]
765
762
  }]
766
763
  });
767
764
  export { ResourceRootModule };
768
765
 
769
- //# sourceMappingURL=posiwise-resource-module-resource-root.module-C9c17Dhm.mjs.map
766
+ //# sourceMappingURL=posiwise-resource-module-resource-root.module-BukwL-wp.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posiwise-resource-module-resource-root.module-BukwL-wp.mjs","names":["i1"],"sources":["../../../../libs/resource-module/src/lib/public/components/resources/resource-tags/resource-tags.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/resource-tags/resource-tags.component.html","../../../../libs/resource-module/src/lib/public/components/resources/vault-section/vault-section.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/vault-section/vault-section.component.html","../../../../libs/resource-module/src/lib/public/components/resources/resources.component.ts","../../../../libs/resource-module/src/lib/public/components/resources/resources.component.html","../../../../libs/resource-module/src/lib/public/modules/root/resource-root-shared.module.ts","../../../../libs/resource-module/src/lib/public/modules/root/resource-root.module.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n type SimpleChanges\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { Tag, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-resource-tags',\n templateUrl: './resource-tags.component.html',\n styleUrls: [\n './resource-tags.component.scss',\n '../../resources-hub/resources-hub.component.scss'\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourceTagComponent extends AppBaseComponent implements OnInit, OnChanges {\n private readonly tagService = inject(TagService);\n private readonly cdr = inject(ChangeDetectorRef);\n\n @Output() tagsLoaded = new EventEmitter<Tag[]>();\n @Output() tagSelected = new EventEmitter<Tag>();\n @Input() user: User;\n @Input() userLoggedIn: boolean;\n\n tags = [];\n subscriptionId: number;\n loading = true;\n loaded = false;\n\n selectedTag: Tag | null = null;\n isMasterSubscription;\n\n canEditResourcesValue = false;\n\n ngOnInit() {\n this.localStorage.getItem$('product').subscribe(product => {\n const data = product ? JSON.parse(product) : null;\n this.subscriptionId =\n data?.subscriptionId ?? this.appConfig.master_subscription.subscription_id;\n this.cdr.markForCheck();\n });\n this.getTags();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['user'] || changes['userLoggedIn']) {\n if (this.userLoggedIn && this.user) {\n this.updateCanEditResourcesValue();\n }\n }\n }\n\n navigateToTagList(): void {\n HelperService.navigateToTagList();\n }\n\n selectTag(tag: Tag): void {\n this.selectedTag = tag;\n this.tagSelected.emit(tag);\n }\n\n getTags() {\n this.loading = true;\n this.tagService\n .getTagsByType('post_categories', {}, this.getEffectiveSubscriptionId())\n .subscribe(res => {\n this.tags = (res?.tags ?? [])\n .filter(tag => tag.visible_in_resources)\n .map(tag => ({\n ...tag\n }));\n this.tagsLoaded.emit(this.tags);\n this.cdr.markForCheck();\n })\n .add(() => {\n this.loading = false;\n this.loaded = true;\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.appConfig.master_subscription.subscription_id\n );\n }\n\n private updateCanEditResourcesValue(): void {\n this.canEditResourcesValue = HelperService.canEditResources(\n this.user,\n this.userLoggedIn,\n this.permissionService\n );\n }\n\n canEditResources(): boolean {\n return this.canEditResourcesValue;\n }\n}\n","@if (loading) {\n <!-- Skeleton — holds same space as real content to prevent CLS -->\n <section class=\"tag-section py-5 bg-white\">\n <div class=\"container\">\n <div class=\"row g-4\">\n @for (i of [1, 2, 3, 4, 5, 6, 7, 8]; track i) {\n <div class=\"col-md-3 col-sm-6 col-6 mb-1 mb-lg-4\">\n <div class=\"resource-card d-flex align-items-center p-3 placeholder-wave\">\n <span class=\"placeholder col-8 rounded\" style=\"height:1rem\"></span>\n </div>\n </div>\n }\n </div>\n </div>\n </section>\n} @else if (tags?.length) {\n <section class=\"tag-section py-5 bg-white\">\n <div class=\"container\">\n @if (userLoggedIn && user?.auth?.granted['Pages.Admin']) {\n <i\n class=\"fa fa-edit in-page-edit-icon cursor-pointer text-black d-flex justify-content-end mb-3\"\n (click)=\"navigateToTagList()\"\n (keydown.enter)=\"navigateToTagList()\"\n (keydown.space)=\"navigateToTagList()\"\n title=\"Edit Tags\"></i>\n }\n <div class=\"row g-4\">\n @for (tag of tags; track tag) {\n <div class=\"col-md-3 col-sm-6 col-6 mb-1 mb-lg-4\">\n <div (click)=\"selectTag(tag)\" (keydown.enter)=\"selectTag(tag)\" class=\"resource-card d-flex align-items-center p-3\" [ngClass]=\"{ 'selected': selectedTag?.name === tag.name }\">\n @if (tag?.icon_name) {\n <i class=\"fa\" [ngClass]=\"tag.icon_name + ' resource-icon me-3'\"></i>\n }\n <span class=\"resource-text\">{{ tag.name }}</span>\n </div>\n </div>\n }\n </div>\n </div>\n </section>\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n type SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Title } from '@angular/platform-browser';\n\nimport { AdminService } from '@posiwise/admin-module-utils';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { User } from '@posiwise/common-utilities';\nimport { LazyImgDirective } from '@posiwise/directives';\nimport { HelperService } from '@posiwise/helper-service';\nimport { NoDataComponent } from '@posiwise/shared-components';\nimport { CustomUploaderComponent, ProfileImageCropperComponent } from '@posiwise/utils';\n\nimport { TranslocoPipe } from '@jsverse/transloco';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'pw-vault-section',\n templateUrl: './vault-section.component.html',\n styleUrls: ['./vault-section.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n LazyImgDirective,\n NoDataComponent,\n FormsModule,\n ProfileImageCropperComponent,\n TranslocoPipe\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class VaultSectionComponent\n extends AppBaseComponent\n implements OnInit, OnChanges, OnDestroy\n{\n private readonly modalService = inject(NgbModal);\n private readonly adminService = inject(AdminService);\n private readonly titleService = inject(Title);\n private readonly cdr = inject(ChangeDetectorRef);\n\n @ViewChild('editResourceModal') editResourceModalRef!: TemplateRef<CustomUploaderComponent>;\n @Input() user: User;\n @Input() userLoggedIn: boolean;\n\n companyName;\n resourceTagLine = this.appConfig.pages_config?.resources.resources_tagline;\n resourceImage = this.appConfig.pages_config?.resources.resources_image.url;\n resourceDescription = this.appConfig.pages_config?.resources.resources_description;\n domainId = this.appConfig.domain_id;\n\n image: string | null = null;\n file: File | null = null;\n imageModalRef;\n\n editingTagline = '';\n editingDescription = '';\n\n subscriptionId;\n isMasterSubscription;\n previewResourceImage: { url: string; name: string };\n\n canEditResourcesValue = false;\n\n private seoUpdateTimer;\n\n ngOnInit() {\n this.previewResourceImage = {\n url: this.appConfig.pages_config?.resources.resources_image.url ?? '',\n name: 'resources_image.png'\n };\n this.companyName = this.appConfig?.company.name;\n\n // Critical image preloading is now handled server-side for better LCP performance\n\n // Use proper timer management instead of setTimeout\n this.scheduleSEOMetadataUpdate();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['user'] || changes['userLoggedIn']) {\n if (this.userLoggedIn && this.user) {\n this.permissionService.user = this.user;\n this.updateCanEditResourcesValue();\n }\n }\n }\n\n private scheduleSEOMetadataUpdate(): void {\n // Clear any existing timer to prevent multiple timers\n this.clearSEOTimer();\n\n // Schedule the SEO update with proper timer management\n this.seoUpdateTimer = setTimeout(() => {\n this.updateSEOMetadata();\n this.seoUpdateTimer = null; // Clear reference after execution\n }, 2000);\n }\n\n private clearSEOTimer(): void {\n if (this.seoUpdateTimer) {\n clearTimeout(this.seoUpdateTimer);\n this.seoUpdateTimer = null;\n }\n }\n\n private updateSEOMetadata() {\n // Use resource tagline as page title\n if (this.resourceTagLine) {\n this.titleService.setTitle(this.resourceTagLine);\n }\n\n // Use resource description as meta description\n if (this.resourceDescription) {\n this.updateMetaDescription(this.resourceDescription);\n }\n }\n\n private updateMetaDescription(description: string) {\n let metaDescription = document.querySelector('meta[name=\"description\"]');\n if (!metaDescription) {\n metaDescription = document.createElement('meta');\n metaDescription.setAttribute('name', 'description');\n document.head.appendChild(metaDescription);\n }\n metaDescription.setAttribute('content', description);\n }\n\n openEditResourceModal(): void {\n this.editingTagline = this.resourceTagLine;\n this.editingDescription = this.resourceDescription;\n this.image = this.resourceImage;\n this.file = null;\n this.modalService.open(this.editResourceModalRef, { centered: true });\n }\n\n saveResourceContent(modal): void {\n const formData = new FormData();\n\n formData.append('subscription_id', this.getEffectiveSubscriptionId().toString());\n formData.append('resources_tagline', this.editingTagline || '');\n formData.append('resources_description', this.editingDescription || '');\n\n if (this.file) {\n formData.append('resources_image', this.file);\n } else if (!this.image) {\n formData.append('remove_resources_image', 'true');\n }\n this.adminService.updateDomainConfig(this.appConfig?.domain_id, formData).subscribe(() => {\n this.resourceTagLine = this.editingTagline;\n this.resourceDescription = this.editingDescription;\n this.resourceImage = this.image;\n this.toast.success('Resources updated');\n modal.close();\n this.updateSEOMetadata();\n this.cdr.markForCheck();\n });\n }\n\n openImageModal(modalTemplate): void {\n this.imageModalRef = this.modalService.open(modalTemplate, { centered: true, size: 'md' });\n }\n\n onImageSelected(base64: string): void {\n this.image = base64;\n this.file = HelperService.convertBase64ToFile(base64);\n this.imageModalRef?.close();\n }\n\n removeImage(): void {\n this.image = null;\n this.file = null;\n }\n\n override ngOnDestroy(): void {\n // Clean up timer to prevent memory leaks\n this.clearSEOTimer();\n }\n\n /** Helper method to get effective subscription ID */\n private getEffectiveSubscriptionId(): number {\n return HelperService.getEffectiveSubscriptionId(\n this.user,\n this.subscriptionId,\n this.appConfig.master_subscription.subscription_id\n );\n }\n handleImageError(event: Event, fallbackPath): void {\n HelperService.handleImageFallbackPath(event, fallbackPath);\n }\n\n private updateCanEditResourcesValue(): void {\n if (this.userLoggedIn && this.user) {\n this.canEditResourcesValue = HelperService.canEditResources(\n this.user,\n this.userLoggedIn,\n this.permissionService\n );\n } else {\n this.canEditResourcesValue = false;\n }\n }\n\n canEditResources(): boolean {\n return this.canEditResourcesValue;\n }\n}\n","<section class=\"vault-section\">\n <div class=\"skewed-bg\"></div>\n\n <!-- Edit Icon (top-right) -->\n\n <div class=\"container\">\n <div class=\"row align-items-center vault-row\">\n <!-- Left Content -->\n <div class=\"col-lg-6 col-12 text-content\">\n <div class=\"d-flex\">\n <h2 class=\"headline\">{{resourceTagLine || 'UPDATE ME ON ADMIN/DOMAINS MODULE'}}</h2>\n @if (canEditResourcesValue) {\n <i\n class=\"fa fa-edit tag-edit-icon in-page-edit-icon mt-4 ms-3 cursor-pointer\"\n title=\"Edit Resource\"\n (click)=\"openEditResourceModal()\"\n (keydown.enter)=\"openEditResourceModal()\"\n (keydown.space)=\"openEditResourceModal()\"\n ></i>\n }\n </div>\n <div class=\"description-content\">\n <p class=\"description\" [innerHTML]=\"resourceDescription || 'UPDATE ME ON ADMIN/DOMAINS MODULE.'\">\n </p>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"col-lg-6 col-12 img-wrapper\">\n @if (resourceImage) {\n <img\n [src]=\"resourceImage\"\n alt=\"Vault Mockup\"\n class=\"img-fluid\"\n width=\"800\"\n height=\"600\"\n fetchpriority=\"high\"\n decoding=\"async\"\n loading=\"eager\" />\n } @else {\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n }\n\n <ng-template #noVideo>\n <pw-no-data [withImage]=\"true\" [message]=\"'ADD ME ON ADMIN/DOMAINS MODULE' | transloco\"></pw-no-data>\n </ng-template>\n </div>\n </div>\n </div>\n</section>\n\n<!-- Edit Modal -->\n<ng-template #editResourceModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Resources</h5>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"mb-3\">\n <label for=\"editTagline\" class=\"form-label\">Tagline</label>\n <input id=\"editTagline\" [(ngModel)]=\"editingTagline\" class=\"form-control\"\n aria-label=\"Edit Tagline\" />\n </div>\n <div class=\"mb-3\">\n <label for=\"editDescription\" class=\"form-label\">Description</label>\n <textarea id=\"editDescription\" name=\"editingDescription\" [(ngModel)]=\"editingDescription\" rows=\"4\" class=\"form-control\"\n aria-label=\"Editing Description\"></textarea>\n </div>\n <div class=\"mb-3\">\n <span class=\"pw-label-style form-label\" id=\"vault-section-resource-image-label\">Resource Image</span>\n <div class=\"text-center d-flex flex-column align-items-center\">\n <img\n [src]=\"image || 'assets/img/resource/blog.png'\"\n (click)=\"openImageModal(imageCropContent)\"\n (keydown.enter)=\"openImageModal(imageCropContent)\"\n class=\"image w-100 mb-2\"\n alt=\"Resource content\"\n (error)=\"handleImageError($event, 'assets/img/resource/blog.png')\" />\n\n <div class=\"d-flex justify-content-between align-items-center mt-2\">\n <a class=\"d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ file || image ? 'Edit' : 'Add' }} Picture\n </a>\n @if (image) {\n <i\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 }\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"modal-footer\">\n <button class=\"btn btn-primary\" (click)=\"saveResourceContent(modal)\">Save</button>\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n </div>\n</ng-template>\n\n\n\n<ng-template #imageCropContent let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Upload Picture</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\"></button>\n </div>\n <div class=\"modal-body\">\n <small>You can upload a JPG, GIF, or PNG file.</small>\n <pw-image-cropper\n [aspectRatio]=\"'dynamic'\"\n (imageSelectionEvent)=\"onImageSelected($event)\"\n (closeEvent)=\"modal.close()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n inject,\n OnInit\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { AuthService } from '@posiwise/common-services';\nimport { Tag, User } from '@posiwise/common-utilities';\nimport { Trial4ContactUsComponent } from '@posiwise/resource-contact-us';\nimport { ResourceHeaderComponent } from '@posiwise/utils';\n\nimport { ResourceNoteCardComponent } from '../reslease-note-card/release-note-card.component';\nimport { CaseStudyCardComponent } from '../resource-case-studies/case-studies-cards/case-studies-cards.component';\nimport { ResourceCardComponent } from '../resource-post/related-resources/resource-cards/resource-cards.component';\nimport { ResourceVaultComponent } from '../resource-vault/resource-vault.component';\nimport { ResourceVideoCardComponent } from '../resource-videos/resource-video-cards/resource-video-cards.component';\nimport { UpcomingEventCardComponent } from '../resource-webinars/upcoming-event-cards/upcoming-event-cards.component';\n\nimport { ResourceTagComponent } from './resource-tags/resource-tags.component';\nimport { VaultSectionComponent } from './vault-section/vault-section.component';\n\n@Component({\n selector: 'pw-resources',\n templateUrl: './resources.component.html',\n styleUrls: ['./resources.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ResourceHeaderComponent,\n VaultSectionComponent,\n ResourceTagComponent,\n ResourceVideoCardComponent,\n UpcomingEventCardComponent,\n ResourceCardComponent,\n CaseStudyCardComponent,\n ResourceVaultComponent,\n ResourceNoteCardComponent,\n Trial4ContactUsComponent\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourceComponent extends AppBaseComponent implements OnInit {\n private readonly authService = inject(AuthService);\n private readonly cdr = inject(ChangeDetectorRef);\n\n allTags: Tag[] = [];\n user: User;\n userLoggedIn: boolean;\n isFooterLoaded: boolean;\n\n ngOnInit() {\n this.authService.getToken$().subscribe(res => {\n this.userLoggedIn = !!res;\n this.cdr.markForCheck();\n if (this.userLoggedIn) {\n this.userService.getUserInfo().subscribe(data => {\n this.user = data;\n this.cdr.markForCheck();\n });\n }\n });\n }\n\n onTagsLoaded(tags: Tag[]) {\n this.allTags = tags;\n this.cdr.markForCheck();\n }\n\n hasTag(name: string): boolean {\n return this.allTags.some(tag => tag.name?.toLowerCase() === name.toLowerCase());\n }\n\n getCategoryIdByTagName(name: string): number | undefined {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag?.tag_category_id;\n }\n\n getTag(name: string) {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag;\n }\n\n getTitleByTagName(name: string): string | undefined {\n const tag = this.allTags.find(t => t.name?.toLowerCase() === name.toLowerCase());\n return tag?.title;\n }\n\n scrollToTag(tag: Tag) {\n const sectionMap: { [key: string]: string } = {\n Videos: 'videos',\n Events: 'events',\n 'Blog Posts': 'blog-posts',\n 'Case Studies': 'case-studies',\n 'White Papers': 'white-papers',\n 'Product Release Notes': 'product-release-notes'\n };\n\n const sectionId = sectionMap[tag.name?.trim()];\n if (sectionId) {\n setTimeout(() => {\n const el = document.getElementById(sectionId);\n if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }, 100);\n }\n }\n\n onVaultLoaded(isLoaded: boolean) {\n this.isFooterLoaded = isLoaded;\n }\n}\n","\n<pw-resource-header [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-header>\n<pw-vault-section [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-vault-section>\n<pw-resource-tags [user]=\"user\" [userLoggedIn]=\"userLoggedIn\" (tagsLoaded)=\"onTagsLoaded($event)\" (tagSelected)=\"scrollToTag($event)\"></pw-resource-tags>\n@if (hasTag('Videos')) {\n <pw-resource-video-card id=\"videos\" [tag]=\"getTag('Videos')\" [showVideoSection]=\"true\" [categoryId]=\"getCategoryIdByTagName('Videos')\" [resourceTitle]=\"getTitleByTagName('Videos')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-video-card>\n}\n@if (hasTag('Events')) {\n <pw-upcoming-event-card id=\"events\" [tag]=\"getTag('Events')\" [showEventContent]=\"true\" [categoryId]=\"getCategoryIdByTagName('Events')\" [resourceTitle]=\"getTitleByTagName('Events')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-upcoming-event-card>\n}\n@if (hasTag('Blog Posts')) {\n <pw-resource-cards resourceLink=\"/resources/blogs\" [tag]=\"getTag('Blog Posts')\" id=\"blog-posts\" [categoryId]=\"getCategoryIdByTagName('Blog Posts')\" [resourceTitle]=\"getTitleByTagName('Blog Posts')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-cards>\n}\n@if (hasTag('Case Studies')) {\n <pw-case-studies-card id=\"case-studies\" [tag]=\"getTag('Case Studies')\" [showCaseStudyHeader]=\"true\" [categoryId]=\"getCategoryIdByTagName('Case Studies')\" [resourceTitle]=\"getTitleByTagName('Case Studies')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-case-studies-card>\n}\n@if (hasTag('White Papers')) {\n <pw-resource--vault (isLoadedChange)=\"onVaultLoaded($event)\" id=\"white-papers\" [tag]=\"getTag('White Papers')\" [showVaultSection]=\"true\" [categoryId]=\"getCategoryIdByTagName('White Papers')\" [resourceTitle]=\"getTitleByTagName('White Papers')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource--vault>\n}\n@if (hasTag('Product Release Notes')) {\n <pw-resource-note-card [isResource]=\"true\" [isReleasePress]=\"true\" id=\"product-release-notes\" [tag]=\"getTag('Product Release Notes')\" [releaseHeader]=\"true\" [categoryId]=\"getCategoryIdByTagName('Product Release Notes')\" [resourceTitle]=\"getTitleByTagName('Product Release Notes')\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-note-card>\n}\n@if (isFooterLoaded) {\n <pw-trial-4-contact-us [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-trial-4-contact-us>\n}","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { ResourceSharedComponentsModule } from '@posiwise/shared-components';\n\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { ResourceCardsModule } from '../../shared/resource-cards.module';\n\n/**\n * Shared module specifically for ResourceRootModule\n * Imports only the essential modules needed by the root resource page\n * without the unnecessary dependencies from ResourceSharedModule\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n CoreTranslocoModule,\n TranslocoModule,\n ResourceSharedComponentsModule,\n ResourceCardsModule\n ],\n exports: [\n ResourceCardsModule,\n CommonModule,\n FormsModule,\n CoreTranslocoModule,\n TranslocoModule,\n ResourceSharedComponentsModule\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourceRootSharedModule {}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { ResourceTagComponent } from '../../components/resources/resource-tags/resource-tags.component';\nimport { ResourceComponent } from '../../components/resources/resources.component';\nimport { VaultSectionComponent } from '../../components/resources/vault-section/vault-section.component';\n\nimport { ResourceRootSharedModule } from './resource-root-shared.module';\n\nconst routes: Routes = [\n {\n path: '',\n component: ResourceComponent,\n data: {\n title: 'Resources Library',\n permission: 'Pages.Blog',\n preload: false\n }\n }\n];\n\n@NgModule({\n imports: [\n ResourceRootSharedModule,\n RouterModule.forChild(routes),\n ResourceComponent,\n ResourceTagComponent,\n VaultSectionComponent\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourceRootModule {}\n"],"mappings":"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"}