@posiwise/resource-module 0.0.202 → 0.0.204

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-C_sTQ0w2.mjs} +54 -72
  4. package/fesm2022/posiwise-resource-module-resource-blogs.module-C_sTQ0w2.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-D1hCU5_H.mjs} +64 -63
  8. package/fesm2022/posiwise-resource-module-resource-case-studies.module-D1hCU5_H.mjs.map +1 -0
  9. package/fesm2022/{posiwise-resource-module-resource-events.module-0PDppSJ6.mjs → posiwise-resource-module-resource-events.module-D7yC0Sqt.mjs} +55 -56
  10. package/fesm2022/posiwise-resource-module-resource-events.module-D7yC0Sqt.mjs.map +1 -0
  11. package/fesm2022/{posiwise-resource-module-resource-hub.module-2qzLV9I1.mjs → posiwise-resource-module-resource-hub.module-alVvQLvR.mjs} +145 -126
  12. package/fesm2022/posiwise-resource-module-resource-hub.module-alVvQLvR.mjs.map +1 -0
  13. package/fesm2022/{posiwise-resource-module-resource-integrations.module-DqDd_1U9.mjs → posiwise-resource-module-resource-integrations.module-G4XvMMYf.mjs} +133 -136
  14. package/fesm2022/posiwise-resource-module-resource-integrations.module-G4XvMMYf.mjs.map +1 -0
  15. package/fesm2022/posiwise-resource-module-resource-jobs.module-DOdaBrZi.mjs +399 -0
  16. package/fesm2022/posiwise-resource-module-resource-jobs.module-DOdaBrZi.mjs.map +1 -0
  17. package/fesm2022/{posiwise-resource-module-resource-post.module-BFuEjqA9.mjs → posiwise-resource-module-resource-post.module-CGxj27dN.mjs} +208 -214
  18. package/fesm2022/posiwise-resource-module-resource-post.module-CGxj27dN.mjs.map +1 -0
  19. package/fesm2022/{posiwise-resource-module-resource-release-notes.module-BbofH_0n.mjs → posiwise-resource-module-resource-release-notes.module-CLry1QNC.mjs} +63 -75
  20. package/fesm2022/posiwise-resource-module-resource-release-notes.module-CLry1QNC.mjs.map +1 -0
  21. package/fesm2022/{posiwise-resource-module-resource-root.module-C9c17Dhm.mjs → posiwise-resource-module-resource-root.module-x4TYntdq.mjs} +135 -138
  22. package/fesm2022/posiwise-resource-module-resource-root.module-x4TYntdq.mjs.map +1 -0
  23. package/fesm2022/{posiwise-resource-module-resource-videos.module-BsnB9vFd.mjs → posiwise-resource-module-resource-videos.module-2ugtK7wA.mjs} +54 -75
  24. package/fesm2022/posiwise-resource-module-resource-videos.module-2ugtK7wA.mjs.map +1 -0
  25. package/fesm2022/{posiwise-resource-module-resource-white-papers.module-BC-OyhAK.mjs → posiwise-resource-module-resource-white-papers.module-pn6rtDc3.mjs} +58 -72
  26. package/fesm2022/posiwise-resource-module-resource-white-papers.module-pn6rtDc3.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 +254 -221
  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,41 +1,36 @@
1
- import { t as ResourceService } from "./posiwise-resource-module-resource.service-IK3r0iUB.mjs";
2
- import { c as ResourceNoteCardComponent, i as ResourceVaultComponent, l as ResourceEditCardLazyComponent, n as UpcomingEventCardComponent, o as ResourceCardComponent, r as ResourceVideoCardComponent, s as CaseStudyCardComponent, t as ResourceCardsModule, u as Trial4ContactUsModule } from "./posiwise-resource-module-resource-cards.module-D3yf7FNt.mjs";
1
+ import { t as ResourceService } from "./posiwise-resource-module-resource.service-DAXsq-WG.mjs";
2
+ import { a as ResourceCardComponent, c as ResourceNoteCardComponent, d as Trial4ContactUsModule, n as UpcomingEventCardComponent, o as CaseStudyCardComponent, r as ResourceVaultComponent, s as ResourceVideoCardComponent, t as ResourceCardsModule, u as ResourceEditCardLazyComponent } from "./posiwise-resource-module-resource-cards.module-BSJpkk9V.mjs";
3
3
  import * as i0 from "@angular/core";
4
- import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, EventEmitter, Input, NgModule, Output, ViewChild } from "@angular/core";
4
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, NgModule, Output, ViewChild, inject } from "@angular/core";
5
+ import { AuthService, TagService } from "@posiwise/common-services";
5
6
  import { HelperService } from "@posiwise/helper-service";
6
- import * as i3 from "@posiwise/common-services";
7
7
  import * as i1$2 from "@angular/router";
8
8
  import { RouterModule } from "@angular/router";
9
- import * as i1$1 from "@angular/common";
10
- import { CommonModule } from "@angular/common";
11
- import * as i1 from "@angular/forms";
12
- import { FormsModule, ReactiveFormsModule } from "@angular/forms";
9
+ import { CommonModule, NgClass, NgTemplateOutlet, SlicePipe } from "@angular/common";
10
+ import * as i1$1 from "@angular/forms";
11
+ import { FormBuilder, FormsModule, ReactiveFormsModule } from "@angular/forms";
13
12
  import { HubSpotMeetingsSharedModule } from "@posiwise/alpha-module";
14
13
  import { CoreTranslocoModule } from "@posiwise/core-transloco";
15
- import * as i3$1 from "@posiwise/directives";
16
- import { DirectivesModule } from "@posiwise/directives";
14
+ import { ButtonBusyDirective, DirectivesModule, LazyImgDirective } from "@posiwise/directives";
17
15
  import { PipesModule } from "@posiwise/pipes";
18
- import * as i2$1 from "@posiwise/shared-components";
19
- import { ResourceSharedComponentsModule } from "@posiwise/shared-components";
16
+ import { InputContainerComponent, NoDataComponent, ResourceSharedComponentsModule } from "@posiwise/shared-components";
20
17
  import { IconFieldModule } from "primeng/iconfield";
21
18
  import { InputIconModule } from "primeng/inputicon";
22
19
  import { InputTextModule } from "primeng/inputtext";
23
20
  import { TextareaModule } from "primeng/textarea";
24
- import * as i6$1 from "@jsverse/transloco";
25
- import { TranslocoModule } from "@jsverse/transloco";
21
+ import { TranslocoModule, TranslocoPipe } from "@jsverse/transloco";
26
22
  import { AppBaseComponent } from "@posiwise/app-base-component";
23
+ import { Bind } from "primeng/bind";
24
+ import { Paginator } from "primeng/paginator";
27
25
  import { Subject } from "rxjs";
28
- import * as i5 from "primeng/paginator";
29
- import * as i2 from "@ng-bootstrap/ng-bootstrap";
30
- import * as i4 from "@posiwise/utils";
31
- import * as i11 from "ngx-quill";
32
- import { QuillModule } from "ngx-quill";
33
- import * as i12 from "ngx-ui-switch";
26
+ import { ProfileImageCropperComponent } from "@posiwise/utils";
27
+ import { NgbModal } from "@ng-bootstrap/ng-bootstrap";
28
+ import * as i1 from "ngx-quill";
29
+ import { QuillEditorComponent, QuillModule } from "ngx-quill";
30
+ import * as i2 from "ngx-ui-switch";
34
31
  import { UiSwitchModule } from "ngx-ui-switch";
35
- import * as i7 from "primeng/autocomplete";
36
- import { AutoCompleteModule } from "primeng/autocomplete";
37
- import * as i6 from "primeng/datepicker";
38
- import { DatePickerModule } from "primeng/datepicker";
32
+ import { AutoComplete, AutoCompleteModule } from "primeng/autocomplete";
33
+ import { DatePicker, DatePickerModule } from "primeng/datepicker";
39
34
  import moment from "moment";
40
35
  var __defProp = Object.defineProperty;
41
36
  var __exportAll = (all, no_symbols) => {
@@ -51,43 +46,47 @@ const routes = [
51
46
  {
52
47
  path: "",
53
48
  pathMatch: "full",
54
- loadChildren: () => import("./posiwise-resource-module-resource-root.module-C9c17Dhm.mjs").then((m) => m.ResourceRootModule)
49
+ loadChildren: () => import("./posiwise-resource-module-resource-root.module-x4TYntdq.mjs").then((m) => m.ResourceRootModule)
55
50
  },
56
51
  {
57
52
  path: "hub",
58
- loadChildren: () => import("./posiwise-resource-module-resource-hub.module-2qzLV9I1.mjs").then((m) => m.ResourceHubModule)
53
+ loadChildren: () => import("./posiwise-resource-module-resource-hub.module-alVvQLvR.mjs").then((m) => m.ResourceHubModule)
59
54
  },
60
55
  {
61
56
  path: "blogs",
62
- loadChildren: () => import("./posiwise-resource-module-resource-blogs.module-hxktrj98.mjs").then((m) => m.ResourceBlogsModule)
57
+ loadChildren: () => import("./posiwise-resource-module-resource-blogs.module-C_sTQ0w2.mjs").then((m) => m.ResourceBlogsModule)
63
58
  },
64
59
  {
65
60
  path: "videos",
66
- loadChildren: () => import("./posiwise-resource-module-resource-videos.module-BsnB9vFd.mjs").then((m) => m.ResourceVideosModule)
61
+ loadChildren: () => import("./posiwise-resource-module-resource-videos.module-2ugtK7wA.mjs").then((m) => m.ResourceVideosModule)
67
62
  },
68
63
  {
69
64
  path: "integrations",
70
- loadChildren: () => import("./posiwise-resource-module-resource-integrations.module-DqDd_1U9.mjs").then((m) => m.ResourceIntegrationsModule)
65
+ loadChildren: () => import("./posiwise-resource-module-resource-integrations.module-G4XvMMYf.mjs").then((m) => m.ResourceIntegrationsModule)
71
66
  },
72
67
  {
73
68
  path: "release-notes",
74
- loadChildren: () => import("./posiwise-resource-module-resource-release-notes.module-BbofH_0n.mjs").then((m) => m.ResourceReleaseNotesModule)
69
+ loadChildren: () => import("./posiwise-resource-module-resource-release-notes.module-CLry1QNC.mjs").then((m) => m.ResourceReleaseNotesModule)
75
70
  },
76
71
  {
77
72
  path: "events",
78
- loadChildren: () => import("./posiwise-resource-module-resource-events.module-0PDppSJ6.mjs").then((m) => m.ResourceEventsModule)
73
+ loadChildren: () => import("./posiwise-resource-module-resource-events.module-D7yC0Sqt.mjs").then((m) => m.ResourceEventsModule)
79
74
  },
80
75
  {
81
76
  path: "white-papers",
82
- loadChildren: () => import("./posiwise-resource-module-resource-white-papers.module-BC-OyhAK.mjs").then((m) => m.ResourceWhitePapersModule)
77
+ loadChildren: () => import("./posiwise-resource-module-resource-white-papers.module-pn6rtDc3.mjs").then((m) => m.ResourceWhitePapersModule)
83
78
  },
84
79
  {
85
80
  path: "case-studies",
86
- loadChildren: () => import("./posiwise-resource-module-resource-case-studies.module-CFcO0CI-.mjs").then((m) => m.ResourceCaseStudiesModule)
81
+ loadChildren: () => import("./posiwise-resource-module-resource-case-studies.module-D1hCU5_H.mjs").then((m) => m.ResourceCaseStudiesModule)
82
+ },
83
+ {
84
+ path: "careers",
85
+ loadChildren: () => import("./posiwise-resource-module-resource-jobs.module-DOdaBrZi.mjs").then((m) => m.ResourceJobsModule)
87
86
  },
88
87
  {
89
88
  path: "view/:slug",
90
- loadChildren: () => import("./posiwise-resource-module-resource-post.module-BFuEjqA9.mjs").then((m) => m.ResourcePostModule)
89
+ loadChildren: () => import("./posiwise-resource-module-resource-post.module-CGxj27dN.mjs").then((m) => m.ResourcePostModule)
91
90
  }
92
91
  ];
93
92
  var BlogPublicRoutingModule = class BlogPublicRoutingModule {
@@ -220,9 +219,9 @@ i0.ɵɵngDeclareClassMetadata({
220
219
  }]
221
220
  });
222
221
  var ResourceCompanyCardComponent = class ResourceCompanyCardComponent extends AppBaseComponent {
223
- constructor(injector, cdr) {
224
- super(injector);
225
- this.cdr = cdr;
222
+ constructor() {
223
+ super(...arguments);
224
+ this.cdr = inject(ChangeDetectorRef);
226
225
  this.getPosts = new EventEmitter();
227
226
  this.destroy$ = new Subject();
228
227
  this.canEditResourcesValue = false;
@@ -280,7 +279,7 @@ var ResourceCompanyCardComponent = class ResourceCompanyCardComponent extends Ap
280
279
  version: "22.2.3",
281
280
  ngImport: i0,
282
281
  type: ResourceCompanyCardComponent,
283
- deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }],
282
+ deps: null,
284
283
  target: i0.ɵɵFactoryTarget.Component
285
284
  });
286
285
  }
@@ -289,7 +288,7 @@ var ResourceCompanyCardComponent = class ResourceCompanyCardComponent extends Ap
289
288
  minVersion: "17.0.0",
290
289
  version: "22.2.3",
291
290
  type: ResourceCompanyCardComponent,
292
- isStandalone: false,
291
+ isStandalone: true,
293
292
  selector: "pw-resource-company-card",
294
293
  inputs: {
295
294
  header: "header",
@@ -308,23 +307,13 @@ var ResourceCompanyCardComponent = class ResourceCompanyCardComponent extends Ap
308
307
  dependencies: [
309
308
  {
310
309
  kind: "directive",
311
- type: i1$1.NgClass,
310
+ type: NgClass,
312
311
  selector: "[ngClass]",
313
312
  inputs: ["class", "ngClass"]
314
313
  },
315
- {
316
- kind: "directive",
317
- type: i1$1.NgTemplateOutlet,
318
- selector: "[ngTemplateOutlet]",
319
- inputs: [
320
- "ngTemplateOutletContext",
321
- "ngTemplateOutlet",
322
- "ngTemplateOutletInjector"
323
- ]
324
- },
325
314
  {
326
315
  kind: "component",
327
- type: i2$1.NoDataComponent,
316
+ type: NoDataComponent,
328
317
  selector: "pw-no-data",
329
318
  inputs: [
330
319
  "message",
@@ -334,7 +323,7 @@ var ResourceCompanyCardComponent = class ResourceCompanyCardComponent extends Ap
334
323
  },
335
324
  {
336
325
  kind: "directive",
337
- type: i3$1.LazyImgDirective,
326
+ type: LazyImgDirective,
338
327
  selector: "img"
339
328
  },
340
329
  {
@@ -348,9 +337,19 @@ var ResourceCompanyCardComponent = class ResourceCompanyCardComponent extends Ap
348
337
  ],
349
338
  outputs: ["updated"]
350
339
  },
340
+ {
341
+ kind: "directive",
342
+ type: NgTemplateOutlet,
343
+ selector: "[ngTemplateOutlet]",
344
+ inputs: [
345
+ "ngTemplateOutletContext",
346
+ "ngTemplateOutlet",
347
+ "ngTemplateOutletInjector"
348
+ ]
349
+ },
351
350
  {
352
351
  kind: "component",
353
- type: i5.Paginator,
352
+ type: Paginator,
354
353
  selector: "p-paginator",
355
354
  inputs: [
356
355
  "pageLinkSize",
@@ -381,12 +380,12 @@ var ResourceCompanyCardComponent = class ResourceCompanyCardComponent extends Ap
381
380
  },
382
381
  {
383
382
  kind: "pipe",
384
- type: i1$1.SlicePipe,
383
+ type: SlicePipe,
385
384
  name: "slice"
386
385
  },
387
386
  {
388
387
  kind: "pipe",
389
- type: i6$1.TranslocoPipe,
388
+ type: TranslocoPipe,
390
389
  name: "transloco"
391
390
  }
392
391
  ],
@@ -404,12 +403,22 @@ i0.ɵɵngDeclareClassMetadata({
404
403
  args: [{
405
404
  selector: "pw-resource-company-card",
406
405
  changeDetection: ChangeDetectionStrategy.OnPush,
407
- standalone: false,
406
+ imports: [
407
+ NgClass,
408
+ NoDataComponent,
409
+ LazyImgDirective,
410
+ ResourceEditCardLazyComponent,
411
+ NgTemplateOutlet,
412
+ Bind,
413
+ Paginator,
414
+ SlicePipe,
415
+ TranslocoPipe
416
+ ],
417
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
408
418
  template: "<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 @if (integrationCountDisplay > 0) {\n <div class=\"search-wrapper position-relative\">\n <i class=\"fa fa-search search-icon\"></i>\n <input type=\"text\"\n (keyup)=\"search($event.target.value)\"\n placeholder=\"Search eg security\"\n class=\"search-input top-search-input\" id=\"input_search_eg_security_9712\" name=\"input_search_eg_security_9712\"\n aria-label=\"Search eg security\" />\n </div>\n }\n\n </div>\n\n @if (postData) {\n <div>\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\"> </pw-no-data>\n </div>\n }\n\n @if (showNoPostsMessage) {\n <div>\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"></pw-no-data>\n </div>\n }\n\n @if (!postData && integrationCountDisplay > 0 && filteredData.length > 0) {\n <div class=\"row\">\n @for (img of filteredData | slice:first:(first + rows); track img) {\n <div class=\"col-md-3 mt-4\"\n >\n <div class=\"boxes d-flex align-items-center justify-content-center\">\n @if (img?.companyImg) {\n <img [src]=\"img.companyImg\" alt=\"Vendor Company Icon\" class=\"vendor-icon\" />\n } @else {\n @if (img?.rectangular_picture?.url) {\n @if (!img.rectangular_picture.url.includes('default-photo')) {\n @if (img?.showcase) {\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 } @else {\n <img [src]=\"img.rectangular_picture.url\" alt=\"Vendor Rectangular Company Icon\" class=\"vendor-icon\" />\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 } @else {\n @if (img?.showcase) {\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 } @else {\n <span class=\"vendor-name text-center\">{{ img?.title }}</span>\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 }\n } @else {\n <ng-template [ngTemplateOutlet]=\"noImage\"></ng-template>\n }\n }\n </div>\n </div>\n }\n @if (filteredData.length > 0) {\n <div class=\"customPaginator d-flex align-items-center mt-5 justify-content-center\"\n >\n <p-paginator\n [first]=\"first\"\n [rows]=\"rows\"\n [totalRecords]=\"filteredData.length\"\n (onPageChange)=\"onPageChange($event)\"></p-paginator>\n </div>\n }\n </div>\n }\n</div>\n",
409
419
  styles: [".top-search-input{color:#000!important;border:3px solid #d4d4d4!important;padding:5px 30px!important;border-radius:29px!important}::placeholder{color:#d4d4d4}.vendors-distributor-wrapper{margin-top:5rem!important}.vendor-icon{max-width:180px;max-height:100%;width:100%!important}.vendor-name{font-size:3rem;line-height:3rem;color:var(--text-color, black)}::ng-deep .customPaginator .p-paginator{border:none!important}::ng-deep .customPaginator .p-paginator button{border:none!important}.int-span{text-transform:uppercase;font-size:2.5rem;color:var(--first)}.boxes{width:100%;min-height:150px;display:flex;align-items:center;justify-content:center;text-align:center;padding:15px;border:1px dashed #ccc;border-radius:8px;overflow-wrap:break-word;white-space:normal;height:100%}a.vendor-link{display:inline-block;transition:transform .2s ease}a.vendor-link:hover{transform:scale(1.05);cursor:pointer}.search-wrapper{position:relative;width:300px}.search-input{width:100%;padding:10px 20px 10px 40px;border:2px solid #d4d4d4;border-radius:30px;font-size:1rem;color:#000;background-color:#fff}.search-input::placeholder{color:silver}.search-input:focus{outline:none;border-color:var(--first)}.search-icon{position:absolute;top:50%;left:14px;transform:translateY(-50%);color:#d4d4d4;font-size:1.1rem}@media(width<=768px){.vendor-icon{width:50!important}.search-container{flex-wrap:wrap!important;gap:2rem}.int-span{font-size:1.75rem}}\n"]
410
420
  }]
411
421
  }],
412
- ctorParameters: () => [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }],
413
422
  propDecorators: {
414
423
  getPosts: [{ type: Output }],
415
424
  header: [{ type: Input }],
@@ -421,12 +430,12 @@ i0.ɵɵngDeclareClassMetadata({
421
430
  }
422
431
  });
423
432
  var ResourceTopBannerEditComponent = class ResourceTopBannerEditComponent extends AppBaseComponent {
424
- constructor(fb, modalService, tagService, cdr, injector) {
425
- super(injector);
426
- this.fb = fb;
427
- this.modalService = modalService;
428
- this.tagService = tagService;
429
- this.cdr = cdr;
433
+ constructor() {
434
+ super(...arguments);
435
+ this.fb = inject(FormBuilder);
436
+ this.modalService = inject(NgbModal);
437
+ this.tagService = inject(TagService);
438
+ this.cdr = inject(ChangeDetectorRef);
430
439
  this.getUpdatedTag = new EventEmitter();
431
440
  this.image = null;
432
441
  this.defaultImage = "assets/img/resource/blog.png";
@@ -496,13 +505,7 @@ var ResourceTopBannerEditComponent = class ResourceTopBannerEditComponent extend
496
505
  version: "22.2.3",
497
506
  ngImport: i0,
498
507
  type: ResourceTopBannerEditComponent,
499
- deps: [
500
- { token: i1.FormBuilder },
501
- { token: i2.NgbModal },
502
- { token: i3.TagService },
503
- { token: i0.ChangeDetectorRef },
504
- { token: i0.Injector }
505
- ],
508
+ deps: null,
506
509
  target: i0.ɵɵFactoryTarget.Component
507
510
  });
508
511
  }
@@ -511,7 +514,7 @@ var ResourceTopBannerEditComponent = class ResourceTopBannerEditComponent extend
511
514
  minVersion: "17.0.0",
512
515
  version: "22.2.3",
513
516
  type: ResourceTopBannerEditComponent,
514
- isStandalone: false,
517
+ isStandalone: true,
515
518
  selector: "pw-resource-top-banner-edit",
516
519
  inputs: {
517
520
  blogPostTag: "blogPostTag",
@@ -532,31 +535,39 @@ var ResourceTopBannerEditComponent = class ResourceTopBannerEditComponent extend
532
535
  }],
533
536
  usesInheritance: true,
534
537
  ngImport: i0,
535
- template: "<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\" id=\"input_title_1\" name=\"input_title_1\"\n aria-label=\"Title\"/>\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container label=\"Description\" name=\"description\" controlId=\"resource-top-banner-description\">\n <textarea id=\"resource-top-banner-description\" name=\"description\" class=\"form-control\" rows=\"4\" formControlName=\"description\"\n aria-label=\"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\" id=\"input_meta_title_2\" name=\"input_meta_title_2\"\n aria-label=\"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\" controlId=\"resource-top-banner-meta_description\">\n <textarea id=\"resource-top-banner-meta_description\" name=\"meta_description\" class=\"form-control\" rows=\"3\" formControlName=\"meta_description\" placeholder=\"Meta Description for SEO\"\n aria-label=\"Meta Description for SEO\"></textarea>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 my-4\">\n <span id=\"resource-top-banner-tag-image-label\" class=\"pw-label-style\">Blog Tag Image</span>\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 @if (image) {\n <i\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 }\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",
538
+ template: "<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\" id=\"input_title_1\" name=\"input_title_1\"\n aria-label=\"Title\"/>\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container label=\"Description\" name=\"description\" controlId=\"resource-top-banner-description\">\n <textarea id=\"resource-top-banner-description\" name=\"description\" class=\"form-control\" rows=\"4\" formControlName=\"description\"\n aria-label=\"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\" id=\"input_meta_title_2\" name=\"input_meta_title_2\"\n aria-label=\"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\" controlId=\"resource-top-banner-meta_description\">\n <textarea id=\"resource-top-banner-meta_description\" name=\"meta_description\" class=\"form-control\" rows=\"3\" formControlName=\"meta_description\" placeholder=\"Meta Description for SEO\"\n aria-label=\"Meta Description for SEO\"></textarea>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 my-4\">\n <span id=\"resource-top-banner-tag-image-label\" class=\"pw-label-style\">Blog Tag Image</span>\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 <button type=\"button\" class=\"btn btn-link p-0 d-inline-block mt-2\"\n (click)=\"openImageModal(imageCropContent)\">\n {{ image ? 'Update' : 'Add' }} Image\n </button>\n @if (image) {\n <i\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 }\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",
536
539
  dependencies: [
540
+ {
541
+ kind: "ngmodule",
542
+ type: FormsModule
543
+ },
537
544
  {
538
545
  kind: "directive",
539
- type: i1.ɵNgNoValidate,
546
+ type: i1$1.ɵNgNoValidate,
540
547
  selector: "form:not([ngNoForm]):not([ngNativeValidate])"
541
548
  },
542
549
  {
543
550
  kind: "directive",
544
- type: i1.DefaultValueAccessor,
551
+ type: i1$1.DefaultValueAccessor,
545
552
  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]"
546
553
  },
547
554
  {
548
555
  kind: "directive",
549
- type: i1.NgControlStatus,
556
+ type: i1$1.NgControlStatus,
550
557
  selector: "[formControlName],[ngModel],[formControl]"
551
558
  },
552
559
  {
553
560
  kind: "directive",
554
- type: i1.NgControlStatusGroup,
561
+ type: i1$1.NgControlStatusGroup,
555
562
  selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]"
556
563
  },
564
+ {
565
+ kind: "ngmodule",
566
+ type: ReactiveFormsModule
567
+ },
557
568
  {
558
569
  kind: "directive",
559
- type: i1.FormGroupDirective,
570
+ type: i1$1.FormGroupDirective,
560
571
  selector: "[formGroup]",
561
572
  inputs: ["formGroup"],
562
573
  outputs: ["ngSubmit"],
@@ -564,7 +575,7 @@ var ResourceTopBannerEditComponent = class ResourceTopBannerEditComponent extend
564
575
  },
565
576
  {
566
577
  kind: "directive",
567
- type: i1.FormControlName,
578
+ type: i1$1.FormControlName,
568
579
  selector: "[formControlName]",
569
580
  inputs: [
570
581
  "formControlName",
@@ -575,18 +586,7 @@ var ResourceTopBannerEditComponent = class ResourceTopBannerEditComponent extend
575
586
  },
576
587
  {
577
588
  kind: "component",
578
- type: i4.ProfileImageCropperComponent,
579
- selector: "pw-image-cropper",
580
- inputs: ["aspectRatio", "dynamicData"],
581
- outputs: [
582
- "imageSelectionEvent",
583
- "closeEvent",
584
- "fileChangeEvent"
585
- ]
586
- },
587
- {
588
- kind: "component",
589
- type: i2$1.InputContainerComponent,
589
+ type: InputContainerComponent,
590
590
  selector: "pw-input-container",
591
591
  inputs: [
592
592
  "name",
@@ -609,14 +609,25 @@ var ResourceTopBannerEditComponent = class ResourceTopBannerEditComponent extend
609
609
  },
610
610
  {
611
611
  kind: "directive",
612
- type: i3$1.ButtonBusyDirective,
612
+ type: LazyImgDirective,
613
+ selector: "img"
614
+ },
615
+ {
616
+ kind: "directive",
617
+ type: ButtonBusyDirective,
613
618
  selector: "[buttonBusy]",
614
619
  inputs: ["buttonBusy", "busyText"]
615
620
  },
616
621
  {
617
- kind: "directive",
618
- type: i3$1.LazyImgDirective,
619
- selector: "img"
622
+ kind: "component",
623
+ type: ProfileImageCropperComponent,
624
+ selector: "pw-image-cropper",
625
+ inputs: ["aspectRatio", "dynamicData"],
626
+ outputs: [
627
+ "imageSelectionEvent",
628
+ "closeEvent",
629
+ "fileChangeEvent"
630
+ ]
620
631
  }
621
632
  ],
622
633
  changeDetection: i0.ChangeDetectionStrategy.OnPush
@@ -633,17 +644,18 @@ i0.ɵɵngDeclareClassMetadata({
633
644
  args: [{
634
645
  selector: "pw-resource-top-banner-edit",
635
646
  changeDetection: ChangeDetectionStrategy.OnPush,
636
- standalone: false,
637
- template: "<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\" id=\"input_title_1\" name=\"input_title_1\"\n aria-label=\"Title\"/>\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container label=\"Description\" name=\"description\" controlId=\"resource-top-banner-description\">\n <textarea id=\"resource-top-banner-description\" name=\"description\" class=\"form-control\" rows=\"4\" formControlName=\"description\"\n aria-label=\"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\" id=\"input_meta_title_2\" name=\"input_meta_title_2\"\n aria-label=\"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\" controlId=\"resource-top-banner-meta_description\">\n <textarea id=\"resource-top-banner-meta_description\" name=\"meta_description\" class=\"form-control\" rows=\"3\" formControlName=\"meta_description\" placeholder=\"Meta Description for SEO\"\n aria-label=\"Meta Description for SEO\"></textarea>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 my-4\">\n <span id=\"resource-top-banner-tag-image-label\" class=\"pw-label-style\">Blog Tag Image</span>\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 @if (image) {\n <i\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 }\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"
647
+ imports: [
648
+ FormsModule,
649
+ ReactiveFormsModule,
650
+ InputContainerComponent,
651
+ LazyImgDirective,
652
+ ButtonBusyDirective,
653
+ ProfileImageCropperComponent
654
+ ],
655
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
656
+ template: "<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\" id=\"input_title_1\" name=\"input_title_1\"\n aria-label=\"Title\"/>\n </pw-input-container>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container label=\"Description\" name=\"description\" controlId=\"resource-top-banner-description\">\n <textarea id=\"resource-top-banner-description\" name=\"description\" class=\"form-control\" rows=\"4\" formControlName=\"description\"\n aria-label=\"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\" id=\"input_meta_title_2\" name=\"input_meta_title_2\"\n aria-label=\"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\" controlId=\"resource-top-banner-meta_description\">\n <textarea id=\"resource-top-banner-meta_description\" name=\"meta_description\" class=\"form-control\" rows=\"3\" formControlName=\"meta_description\" placeholder=\"Meta Description for SEO\"\n aria-label=\"Meta Description for SEO\"></textarea>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 my-4\">\n <span id=\"resource-top-banner-tag-image-label\" class=\"pw-label-style\">Blog Tag Image</span>\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 <button type=\"button\" class=\"btn btn-link p-0 d-inline-block mt-2\"\n (click)=\"openImageModal(imageCropContent)\">\n {{ image ? 'Update' : 'Add' }} Image\n </button>\n @if (image) {\n <i\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 }\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"
638
657
  }]
639
658
  }],
640
- ctorParameters: () => [
641
- { type: i1.FormBuilder },
642
- { type: i2.NgbModal },
643
- { type: i3.TagService },
644
- { type: i0.ChangeDetectorRef },
645
- { type: i0.Injector }
646
- ],
647
659
  propDecorators: {
648
660
  blogPostTag: [{ type: Input }],
649
661
  user: [{ type: Input }],
@@ -676,7 +688,6 @@ var ResourceSharedModule = class ResourceSharedModule {
676
688
  version: "22.2.3",
677
689
  ngImport: i0,
678
690
  type: ResourceSharedModule,
679
- declarations: [ResourceCompanyCardComponent, ResourceTopBannerEditComponent],
680
691
  imports: [
681
692
  CommonModule,
682
693
  RouterModule,
@@ -692,7 +703,9 @@ var ResourceSharedModule = class ResourceSharedModule {
692
703
  InputIconModule,
693
704
  TextareaModule,
694
705
  ResourceCardsModule,
695
- HubSpotMeetingsSharedModule
706
+ HubSpotMeetingsSharedModule,
707
+ ResourceCompanyCardComponent,
708
+ ResourceTopBannerEditComponent
696
709
  ],
697
710
  exports: [
698
711
  ResourceCompanyCardComponent,
@@ -737,6 +750,8 @@ var ResourceSharedModule = class ResourceSharedModule {
737
750
  TextareaModule,
738
751
  ResourceCardsModule,
739
752
  HubSpotMeetingsSharedModule,
753
+ ResourceCompanyCardComponent,
754
+ ResourceTopBannerEditComponent,
740
755
  ResourceCardsModule,
741
756
  HubSpotMeetingsSharedModule,
742
757
  CommonModule,
@@ -764,7 +779,6 @@ i0.ɵɵngDeclareClassMetadata({
764
779
  decorators: [{
765
780
  type: NgModule,
766
781
  args: [{
767
- declarations: [ResourceCompanyCardComponent, ResourceTopBannerEditComponent],
768
782
  imports: [
769
783
  CommonModule,
770
784
  RouterModule,
@@ -780,7 +794,9 @@ i0.ɵɵngDeclareClassMetadata({
780
794
  InputIconModule,
781
795
  TextareaModule,
782
796
  ResourceCardsModule,
783
- HubSpotMeetingsSharedModule
797
+ HubSpotMeetingsSharedModule,
798
+ ResourceCompanyCardComponent,
799
+ ResourceTopBannerEditComponent
784
800
  ],
785
801
  exports: [
786
802
  ResourceCompanyCardComponent,
@@ -807,14 +823,14 @@ i0.ɵɵngDeclareClassMetadata({
807
823
  });
808
824
  var resource_edit_card_component_exports = /* @__PURE__ */ __exportAll({ ResourceEditCardComponent: () => ResourceEditCardComponent });
809
825
  var ResourceEditCardComponent = class ResourceEditCardComponent extends AppBaseComponent {
810
- constructor(fb, modalService, resourceService, authService, tagService, cdr, injector) {
811
- super(injector);
812
- this.fb = fb;
813
- this.modalService = modalService;
814
- this.resourceService = resourceService;
815
- this.authService = authService;
816
- this.tagService = tagService;
817
- this.cdr = cdr;
826
+ constructor() {
827
+ super();
828
+ this.fb = inject(FormBuilder);
829
+ this.modalService = inject(NgbModal);
830
+ this.resourceService = inject(ResourceService);
831
+ this.authService = inject(AuthService);
832
+ this.tagService = inject(TagService);
833
+ this.cdr = inject(ChangeDetectorRef);
818
834
  this.updated = new EventEmitter();
819
835
  this.image = "";
820
836
  this.rectangularImage = "";
@@ -1000,15 +1016,7 @@ var ResourceEditCardComponent = class ResourceEditCardComponent extends AppBaseC
1000
1016
  version: "22.2.3",
1001
1017
  ngImport: i0,
1002
1018
  type: ResourceEditCardComponent,
1003
- deps: [
1004
- { token: i1.FormBuilder },
1005
- { token: i2.NgbModal },
1006
- { token: ResourceService },
1007
- { token: i3.AuthService },
1008
- { token: i3.TagService },
1009
- { token: i0.ChangeDetectorRef },
1010
- { token: i0.Injector }
1011
- ],
1019
+ deps: [],
1012
1020
  target: i0.ɵɵFactoryTarget.Component
1013
1021
  });
1014
1022
  }
@@ -1017,7 +1025,7 @@ var ResourceEditCardComponent = class ResourceEditCardComponent extends AppBaseC
1017
1025
  minVersion: "17.0.0",
1018
1026
  version: "22.2.3",
1019
1027
  type: ResourceEditCardComponent,
1020
- isStandalone: false,
1028
+ isStandalone: true,
1021
1029
  selector: "pw-resource-edit-card",
1022
1030
  inputs: {
1023
1031
  id: "id",
@@ -1026,44 +1034,42 @@ var ResourceEditCardComponent = class ResourceEditCardComponent extends AppBaseC
1026
1034
  outputs: { updated: "updated" },
1027
1035
  usesInheritance: true,
1028
1036
  ngImport: i0,
1029
- template: "<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\" id=\"input_title_1\" name=\"input_title_1\"\n aria-label=\"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\" id=\"input_cta_text_2\" name=\"input_cta_text_2\"\n aria-label=\"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\" id=\"input_external_url_3\" name=\"input_external_url_3\"\n [attr.aria-label]=\"'Resource.Posts.Body' | transloco\"/>\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\">\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-datepicker inputId=\"resource-edit-card-when\" formControlName=\"when\"\n [showIcon]=\"true\"\n dateFormat=\"dd-M-yy\"\n [placeholder]=\"'Select Date'\"\n [ngClass]=\"{ 'is-invalid': submitted && f['when'].errors }\">\n </p-datepicker>\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-auto-complete appendTo=\"body\" [(ngModel)]=\"selectedTags\"\n class=\"body-bg w-100\"\n [suggestions]=\"tagsSuggestion\"\n dataKey=\"id\"\n optionLabel=\"name\"\n (completeMethod)=\"search($event)\"\n [minLength]=\"1\"\n [maxlength]=\"10\"\n [dropdown]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n placeholder=\"Tags\"\n [multiple]=\"true\">\n </p-auto-complete>\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 <span id=\"resource-edit-cover-picture-label\" class=\"pw-label-style\">{{ 'Resource.Posts.CoverPicture' | transloco }}</span>\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 @if (image && !image.includes('default-photo.jpg')) {\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 </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 <span id=\"resource-edit-rectangular-picture-label\" class=\"pw-label-style\">Rectangular Picture</span>\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 @if (rectangularImage && !rectangularImage.includes('default-photo.jpg')) {\n <i\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 }\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",
1037
+ template: "<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\" id=\"input_title_1\" name=\"input_title_1\"\n aria-label=\"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\" id=\"input_cta_text_2\" name=\"input_cta_text_2\"\n aria-label=\"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\" id=\"input_external_url_3\" name=\"input_external_url_3\"\n [attr.aria-label]=\"'Resource.Posts.Body' | transloco\"/>\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\">\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-datepicker inputId=\"resource-edit-card-when\" formControlName=\"when\"\n [ariaLabel]=\"'Resource.Posts.When' | transloco\"\n [showIcon]=\"true\"\n dateFormat=\"dd-M-yy\"\n [placeholder]=\"'Select Date'\"\n [ngClass]=\"{ 'is-invalid': submitted && f['when'].errors }\">\n </p-datepicker>\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-auto-complete appendTo=\"body\" [(ngModel)]=\"selectedTags\"\n [ariaLabel]=\"'Resource.Posts.Tags' | transloco\"\n class=\"body-bg w-100\"\n [suggestions]=\"tagsSuggestion\"\n dataKey=\"id\"\n optionLabel=\"name\"\n (completeMethod)=\"search($event)\"\n [minLength]=\"1\"\n [maxlength]=\"10\"\n [dropdown]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n placeholder=\"Tags\"\n [multiple]=\"true\">\n </p-auto-complete>\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 <span id=\"resource-edit-cover-picture-label\" class=\"pw-label-style\">{{ 'Resource.Posts.CoverPicture' | transloco }}</span>\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 <button type=\"button\" class=\"btn btn-link p-0 d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ slug !== 'create' ? 'Edit' : 'Add' }} Picture\n </button>\n @if (image && !image.includes('default-photo.jpg')) {\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 </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 <span id=\"resource-edit-rectangular-picture-label\" class=\"pw-label-style\">Rectangular Picture</span>\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 <button type=\"button\" class=\"btn btn-link p-0 d-inline-block\" (click)=\"openRectModal(rectContent)\">\n {{ slug !== 'create' ? 'Edit' : 'Add' }} Picture\n </button>\n @if (rectangularImage && !rectangularImage.includes('default-photo.jpg')) {\n <i\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 }\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\" [attr.aria-label]=\"'Common.Close' | transloco\" (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",
1030
1038
  styles: ["::ng-deep .modal-content{margin-top:5rem!important}\n"],
1031
1039
  dependencies: [
1032
1040
  {
1033
- kind: "directive",
1034
- type: i1$1.NgClass,
1035
- selector: "[ngClass]",
1036
- inputs: ["class", "ngClass"]
1041
+ kind: "ngmodule",
1042
+ type: FormsModule
1037
1043
  },
1038
1044
  {
1039
1045
  kind: "directive",
1040
- type: i1.ɵNgNoValidate,
1046
+ type: i1$1.ɵNgNoValidate,
1041
1047
  selector: "form:not([ngNoForm]):not([ngNativeValidate])"
1042
1048
  },
1043
1049
  {
1044
1050
  kind: "directive",
1045
- type: i1.DefaultValueAccessor,
1051
+ type: i1$1.DefaultValueAccessor,
1046
1052
  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]"
1047
1053
  },
1048
1054
  {
1049
1055
  kind: "directive",
1050
- type: i1.NgControlStatus,
1056
+ type: i1$1.NgControlStatus,
1051
1057
  selector: "[formControlName],[ngModel],[formControl]"
1052
1058
  },
1053
1059
  {
1054
1060
  kind: "directive",
1055
- type: i1.NgControlStatusGroup,
1061
+ type: i1$1.NgControlStatusGroup,
1056
1062
  selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]"
1057
1063
  },
1058
1064
  {
1059
1065
  kind: "directive",
1060
- type: i1.MaxLengthValidator,
1066
+ type: i1$1.MaxLengthValidator,
1061
1067
  selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]",
1062
1068
  inputs: ["maxlength"]
1063
1069
  },
1064
1070
  {
1065
1071
  kind: "directive",
1066
- type: i1.NgModel,
1072
+ type: i1$1.NgModel,
1067
1073
  selector: "[ngModel]:not([formControlName]):not([formControl])",
1068
1074
  inputs: [
1069
1075
  "name",
@@ -1074,9 +1080,13 @@ var ResourceEditCardComponent = class ResourceEditCardComponent extends AppBaseC
1074
1080
  outputs: ["ngModelChange"],
1075
1081
  exportAs: ["ngModel"]
1076
1082
  },
1083
+ {
1084
+ kind: "ngmodule",
1085
+ type: ReactiveFormsModule
1086
+ },
1077
1087
  {
1078
1088
  kind: "directive",
1079
- type: i1.FormGroupDirective,
1089
+ type: i1$1.FormGroupDirective,
1080
1090
  selector: "[formGroup]",
1081
1091
  inputs: ["formGroup"],
1082
1092
  outputs: ["ngSubmit"],
@@ -1084,7 +1094,7 @@ var ResourceEditCardComponent = class ResourceEditCardComponent extends AppBaseC
1084
1094
  },
1085
1095
  {
1086
1096
  kind: "directive",
1087
- type: i1.FormControlName,
1097
+ type: i1$1.FormControlName,
1088
1098
  selector: "[formControlName]",
1089
1099
  inputs: [
1090
1100
  "formControlName",
@@ -1095,7 +1105,41 @@ var ResourceEditCardComponent = class ResourceEditCardComponent extends AppBaseC
1095
1105
  },
1096
1106
  {
1097
1107
  kind: "component",
1098
- type: i6.DatePicker,
1108
+ type: InputContainerComponent,
1109
+ selector: "pw-input-container",
1110
+ inputs: [
1111
+ "name",
1112
+ "controlId",
1113
+ "useAriaLabelledbyOnly",
1114
+ "label",
1115
+ "labelClass",
1116
+ "tooltipPosition",
1117
+ "required",
1118
+ "errorMsg",
1119
+ "isReadOnly",
1120
+ "showTooltip",
1121
+ "tooltipText",
1122
+ "showTriangle",
1123
+ "afterLabel",
1124
+ "showAfterLabel",
1125
+ "showTriangleText",
1126
+ "isLeftTooltip"
1127
+ ]
1128
+ },
1129
+ {
1130
+ kind: "component",
1131
+ type: QuillEditorComponent,
1132
+ selector: "quill-editor"
1133
+ },
1134
+ {
1135
+ kind: "directive",
1136
+ type: NgClass,
1137
+ selector: "[ngClass]",
1138
+ inputs: ["class", "ngClass"]
1139
+ },
1140
+ {
1141
+ kind: "component",
1142
+ type: DatePicker,
1099
1143
  selector: "p-datepicker, p-date-picker",
1100
1144
  inputs: [
1101
1145
  "iconDisplay",
@@ -1173,7 +1217,7 @@ var ResourceEditCardComponent = class ResourceEditCardComponent extends AppBaseC
1173
1217
  },
1174
1218
  {
1175
1219
  kind: "component",
1176
- type: i7.AutoComplete,
1220
+ type: AutoComplete,
1177
1221
  selector: "p-autocomplete, p-auto-complete",
1178
1222
  inputs: [
1179
1223
  "minQueryLength",
@@ -1251,58 +1295,12 @@ var ResourceEditCardComponent = class ResourceEditCardComponent extends AppBaseC
1251
1295
  ]
1252
1296
  },
1253
1297
  {
1254
- kind: "component",
1255
- type: i4.ProfileImageCropperComponent,
1256
- selector: "pw-image-cropper",
1257
- inputs: ["aspectRatio", "dynamicData"],
1258
- outputs: [
1259
- "imageSelectionEvent",
1260
- "closeEvent",
1261
- "fileChangeEvent"
1262
- ]
1263
- },
1264
- {
1265
- kind: "component",
1266
- type: i2$1.InputContainerComponent,
1267
- selector: "pw-input-container",
1268
- inputs: [
1269
- "name",
1270
- "controlId",
1271
- "useAriaLabelledbyOnly",
1272
- "label",
1273
- "labelClass",
1274
- "tooltipPosition",
1275
- "required",
1276
- "errorMsg",
1277
- "isReadOnly",
1278
- "showTooltip",
1279
- "tooltipText",
1280
- "showTriangle",
1281
- "afterLabel",
1282
- "showAfterLabel",
1283
- "showTriangleText",
1284
- "isLeftTooltip"
1285
- ]
1286
- },
1287
- {
1288
- kind: "directive",
1289
- type: i3$1.ButtonBusyDirective,
1290
- selector: "[buttonBusy]",
1291
- inputs: ["buttonBusy", "busyText"]
1292
- },
1293
- {
1294
- kind: "directive",
1295
- type: i3$1.LazyImgDirective,
1296
- selector: "img"
1297
- },
1298
- {
1299
- kind: "component",
1300
- type: i11.QuillEditorComponent,
1301
- selector: "quill-editor"
1298
+ kind: "ngmodule",
1299
+ type: UiSwitchModule
1302
1300
  },
1303
1301
  {
1304
1302
  kind: "component",
1305
- type: i12.UiSwitchComponent,
1303
+ type: i2.UiSwitchComponent,
1306
1304
  selector: "ui-switch",
1307
1305
  inputs: [
1308
1306
  "size",
@@ -1328,9 +1326,31 @@ var ResourceEditCardComponent = class ResourceEditCardComponent extends AppBaseC
1328
1326
  "valueChange"
1329
1327
  ]
1330
1328
  },
1329
+ {
1330
+ kind: "directive",
1331
+ type: LazyImgDirective,
1332
+ selector: "img"
1333
+ },
1334
+ {
1335
+ kind: "directive",
1336
+ type: ButtonBusyDirective,
1337
+ selector: "[buttonBusy]",
1338
+ inputs: ["buttonBusy", "busyText"]
1339
+ },
1340
+ {
1341
+ kind: "component",
1342
+ type: ProfileImageCropperComponent,
1343
+ selector: "pw-image-cropper",
1344
+ inputs: ["aspectRatio", "dynamicData"],
1345
+ outputs: [
1346
+ "imageSelectionEvent",
1347
+ "closeEvent",
1348
+ "fileChangeEvent"
1349
+ ]
1350
+ },
1331
1351
  {
1332
1352
  kind: "pipe",
1333
- type: i6$1.TranslocoPipe,
1353
+ type: TranslocoPipe,
1334
1354
  name: "transloco"
1335
1355
  }
1336
1356
  ],
@@ -1348,20 +1368,27 @@ i0.ɵɵngDeclareClassMetadata({
1348
1368
  args: [{
1349
1369
  selector: "pw-resource-edit-card",
1350
1370
  changeDetection: ChangeDetectionStrategy.OnPush,
1351
- standalone: false,
1352
- template: "<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\" id=\"input_title_1\" name=\"input_title_1\"\n aria-label=\"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\" id=\"input_cta_text_2\" name=\"input_cta_text_2\"\n aria-label=\"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\" id=\"input_external_url_3\" name=\"input_external_url_3\"\n [attr.aria-label]=\"'Resource.Posts.Body' | transloco\"/>\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\">\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-datepicker inputId=\"resource-edit-card-when\" formControlName=\"when\"\n [showIcon]=\"true\"\n dateFormat=\"dd-M-yy\"\n [placeholder]=\"'Select Date'\"\n [ngClass]=\"{ 'is-invalid': submitted && f['when'].errors }\">\n </p-datepicker>\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-auto-complete appendTo=\"body\" [(ngModel)]=\"selectedTags\"\n class=\"body-bg w-100\"\n [suggestions]=\"tagsSuggestion\"\n dataKey=\"id\"\n optionLabel=\"name\"\n (completeMethod)=\"search($event)\"\n [minLength]=\"1\"\n [maxlength]=\"10\"\n [dropdown]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n placeholder=\"Tags\"\n [multiple]=\"true\">\n </p-auto-complete>\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 <span id=\"resource-edit-cover-picture-label\" class=\"pw-label-style\">{{ 'Resource.Posts.CoverPicture' | transloco }}</span>\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 @if (image && !image.includes('default-photo.jpg')) {\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 </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 <span id=\"resource-edit-rectangular-picture-label\" class=\"pw-label-style\">Rectangular Picture</span>\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 @if (rectangularImage && !rectangularImage.includes('default-photo.jpg')) {\n <i\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 }\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",
1371
+ imports: [
1372
+ FormsModule,
1373
+ ReactiveFormsModule,
1374
+ InputContainerComponent,
1375
+ QuillEditorComponent,
1376
+ NgClass,
1377
+ Bind,
1378
+ DatePicker,
1379
+ AutoComplete,
1380
+ UiSwitchModule,
1381
+ LazyImgDirective,
1382
+ ButtonBusyDirective,
1383
+ ProfileImageCropperComponent,
1384
+ TranslocoPipe
1385
+ ],
1386
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
1387
+ template: "<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\" id=\"input_title_1\" name=\"input_title_1\"\n aria-label=\"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\" id=\"input_cta_text_2\" name=\"input_cta_text_2\"\n aria-label=\"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\" id=\"input_external_url_3\" name=\"input_external_url_3\"\n [attr.aria-label]=\"'Resource.Posts.Body' | transloco\"/>\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\">\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-datepicker inputId=\"resource-edit-card-when\" formControlName=\"when\"\n [ariaLabel]=\"'Resource.Posts.When' | transloco\"\n [showIcon]=\"true\"\n dateFormat=\"dd-M-yy\"\n [placeholder]=\"'Select Date'\"\n [ngClass]=\"{ 'is-invalid': submitted && f['when'].errors }\">\n </p-datepicker>\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-auto-complete appendTo=\"body\" [(ngModel)]=\"selectedTags\"\n [ariaLabel]=\"'Resource.Posts.Tags' | transloco\"\n class=\"body-bg w-100\"\n [suggestions]=\"tagsSuggestion\"\n dataKey=\"id\"\n optionLabel=\"name\"\n (completeMethod)=\"search($event)\"\n [minLength]=\"1\"\n [maxlength]=\"10\"\n [dropdown]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n placeholder=\"Tags\"\n [multiple]=\"true\">\n </p-auto-complete>\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 <span id=\"resource-edit-cover-picture-label\" class=\"pw-label-style\">{{ 'Resource.Posts.CoverPicture' | transloco }}</span>\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 <button type=\"button\" class=\"btn btn-link p-0 d-inline-block\" (click)=\"openImageModal(imageCropContent)\">\n {{ slug !== 'create' ? 'Edit' : 'Add' }} Picture\n </button>\n @if (image && !image.includes('default-photo.jpg')) {\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 </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 <span id=\"resource-edit-rectangular-picture-label\" class=\"pw-label-style\">Rectangular Picture</span>\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 <button type=\"button\" class=\"btn btn-link p-0 d-inline-block\" (click)=\"openRectModal(rectContent)\">\n {{ slug !== 'create' ? 'Edit' : 'Add' }} Picture\n </button>\n @if (rectangularImage && !rectangularImage.includes('default-photo.jpg')) {\n <i\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 }\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\" [attr.aria-label]=\"'Common.Close' | transloco\" (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",
1353
1388
  styles: ["::ng-deep .modal-content{margin-top:5rem!important}\n"]
1354
1389
  }]
1355
1390
  }],
1356
- ctorParameters: () => [
1357
- { type: i1.FormBuilder },
1358
- { type: i2.NgbModal },
1359
- { type: ResourceService },
1360
- { type: i3.AuthService },
1361
- { type: i3.TagService },
1362
- { type: i0.ChangeDetectorRef },
1363
- { type: i0.Injector }
1364
- ],
1391
+ ctorParameters: () => [],
1365
1392
  propDecorators: {
1366
1393
  id: [{ type: Input }],
1367
1394
  resourceData: [{ type: Input }],
@@ -1385,7 +1412,6 @@ var ResourceEditModule = class ResourceEditModule {
1385
1412
  version: "22.2.3",
1386
1413
  ngImport: i0,
1387
1414
  type: ResourceEditModule,
1388
- declarations: [ResourceEditCardComponent],
1389
1415
  imports: [
1390
1416
  CommonModule,
1391
1417
  FormsModule,
@@ -1396,8 +1422,9 @@ var ResourceEditModule = class ResourceEditModule {
1396
1422
  CoreTranslocoModule,
1397
1423
  TranslocoModule,
1398
1424
  DirectivesModule,
1399
- i11.QuillModule,
1400
- UiSwitchModule
1425
+ i1.QuillModule,
1426
+ UiSwitchModule,
1427
+ ResourceEditCardComponent
1401
1428
  ],
1402
1429
  exports: [ResourceEditCardComponent]
1403
1430
  });
@@ -1419,7 +1446,8 @@ var ResourceEditModule = class ResourceEditModule {
1419
1446
  TranslocoModule,
1420
1447
  DirectivesModule,
1421
1448
  QuillModule.forRoot(),
1422
- UiSwitchModule
1449
+ UiSwitchModule,
1450
+ ResourceEditCardComponent
1423
1451
  ]
1424
1452
  });
1425
1453
  }
@@ -1432,7 +1460,6 @@ i0.ɵɵngDeclareClassMetadata({
1432
1460
  decorators: [{
1433
1461
  type: NgModule,
1434
1462
  args: [{
1435
- declarations: [ResourceEditCardComponent],
1436
1463
  imports: [
1437
1464
  CommonModule,
1438
1465
  FormsModule,
@@ -1444,7 +1471,8 @@ i0.ɵɵngDeclareClassMetadata({
1444
1471
  TranslocoModule,
1445
1472
  DirectivesModule,
1446
1473
  QuillModule.forRoot(),
1447
- UiSwitchModule
1474
+ UiSwitchModule,
1475
+ ResourceEditCardComponent
1448
1476
  ],
1449
1477
  exports: [ResourceEditCardComponent],
1450
1478
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
@@ -1527,7 +1555,7 @@ var TestimonialCardListComponent = class TestimonialCardListComponent {
1527
1555
  minVersion: "17.0.0",
1528
1556
  version: "22.2.3",
1529
1557
  type: TestimonialCardListComponent,
1530
- isStandalone: false,
1558
+ isStandalone: true,
1531
1559
  selector: "pw-testimonial-card",
1532
1560
  inputs: {
1533
1561
  posts: "posts",
@@ -1541,9 +1569,14 @@ var TestimonialCardListComponent = class TestimonialCardListComponent {
1541
1569
  styles: [".resource-section{box-shadow:0 4px 32px -14px #40576d4d!important;position:relative}@media(width>=768px)and (width<=1200px){.container{padding:0 6rem!important}}@media(width<=767px){.container{padding:0 1rem!important}}.ql-res{resize:none!important;border-width:0}.swiper-container{padding:20px;position:relative;overflow:hidden}@media(width>=768px){.swiper-container{padding:20px 40px}}.resource-card{background:#fff;border-radius:8px;box-shadow:0 0 20px #0000001a;padding:1.5rem;height:100%;display:flex;flex-direction:column;margin:0 auto;width:100%;max-width:350px}.resource-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem}.resource-image{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px}.read-now-btn{margin-top:auto;display:inline-flex;align-items:center;gap:.5rem;color:#000;text-decoration:none;font-weight:500}.read-now-btn .arrow{transition:transform .2s ease}.read-now-btn:hover .arrow{transform:translate(5px)}.swiper-button-prev,.swiper-button-next{color:#000}.swiper-button-prev:after,.swiper-button-next:after{font-size:24px}@media(width<=767px){.swiper-button-prev,.swiper-button-next{display:none}}.swiper-pagination{position:relative;margin-top:20px}.swiper-pagination-bullet{background:#000;opacity:.5}.swiper-pagination-bullet-active{opacity:1}.swiper-wrapper{display:flex;align-items:stretch}.swiper-slide{display:flex;align-items:stretch;height:auto}.testimonial-box{display:flex;flex-direction:column;justify-content:space-between;background:#fff;border-radius:20px;padding:2.5rem 1.5rem;box-shadow:0 0 20px #0000001a;text-align:center;width:338px;font-size:1.1rem;height:100%;min-height:100%}.testimonial-box span{margin:0;font-size:22px}.testimonial-box .avatar-container{margin-top:auto}.testimonial-box .testimonial-logo{width:100%!important;height:auto!important;max-width:150px!important;object-fit:contain;align-self:center}.testimonial-box .stars{font-size:2.2rem;color:#f6b300;margin-bottom:2.5rem}.centaris-text{margin-bottom:3rem!important}@media(width<=768px){::ng-deep .swiper-wrapper{gap:1rem!important}.testimonial-box{width:300px!important}}\n", "textarea{font-size:1rem!important}.resource-body-section{background-color:#fff}.resource-body-section .container{padding:3rem 1.5rem 4rem!important;max-width:850px!important;margin:0 auto;text-align:left}.user-not-logged-in{background:#fafbfc;border:1px solid #e2e5ea;border-radius:8px;font-size:14px;font-weight:400;color:#5a6473;padding:1rem 1.5rem;box-shadow:none!important;margin-bottom:2rem!important}.user-not-logged-in a{color:#1a1d21!important;text-decoration:none;font-weight:600;transition:color .15s ease-out}.user-not-logged-in a:hover,.user-not-logged-in a:focus-visible{color:var(--first)!important}.user-not-logged-in a:focus-visible{outline:2px solid var(--first);outline-offset:2px;border-radius:2px}.resource-book-section{background:#fff;padding-top:4rem;padding-bottom:0}.resource-book-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem!important;text-align:left}.resource-book-section .resource-contact{line-height:1.6;font-size:1rem;color:#3d4654}.resource-book-section .resource-contact a{text-decoration:underline;color:#1a1d21;margin:0 .2rem;transition:color .15s ease-out}.resource-book-section .resource-contact a:hover{color:var(--first)!important}.resource-offer-section{background:#fff;padding-top:1rem}.resource-offer-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.resource-divider{border:0;border-top:1px solid #e2e5ea;margin:2rem auto;max-width:850px;height:0;background:none}::ng-deep .body-quill{border-width:0!important;max-width:850px;display:block;margin-left:auto;margin-right:auto}::ng-deep .ql-snow .ql-editor.post-body-text blockquote{font-size:22px;line-height:1.45;font-weight:600;color:#1a1d21;border-left:4px solid var(--first);padding:6px 0 6px 22px;margin:8px 0}::ng-deep .ql-snow .ql-editor.post-body-text mark{background:linear-gradient(transparent 55%,color-mix(in srgb,var(--first) 22%,transparent) 55%);color:inherit;padding:0 2px}::ng-deep .p-textarea{border-radius:8px;border:1px solid #e2e5ea;font-size:1rem!important}.card{background-color:#fff;border-radius:12px}.comment-row{gap:1.5rem;padding-bottom:3rem;max-width:850px;display:block;margin-left:auto;margin-right:auto}.comment-label{font-size:14px!important;font-weight:600!important;letter-spacing:.04em;text-transform:uppercase;color:#5a6473}.response-row{max-width:850px;display:block;margin-left:auto;margin-right:auto;margin-top:2rem!important}@media(width<=768px){.resource-body-section .container{padding:2rem 1rem 3rem}.resource-book-section{padding-top:2rem!important}.resource-book-section .resource-contact{font-size:.9375rem!important}}\n"],
1542
1570
  dependencies: [
1543
1571
  {
1544
- kind: "directive",
1545
- type: i3$1.LazyImgDirective,
1546
- selector: "img"
1572
+ kind: "component",
1573
+ type: NoDataComponent,
1574
+ selector: "pw-no-data",
1575
+ inputs: [
1576
+ "message",
1577
+ "description",
1578
+ "withImage"
1579
+ ]
1547
1580
  },
1548
1581
  {
1549
1582
  kind: "component",
@@ -1557,18 +1590,13 @@ var TestimonialCardListComponent = class TestimonialCardListComponent {
1557
1590
  outputs: ["updated"]
1558
1591
  },
1559
1592
  {
1560
- kind: "component",
1561
- type: i2$1.NoDataComponent,
1562
- selector: "pw-no-data",
1563
- inputs: [
1564
- "message",
1565
- "description",
1566
- "withImage"
1567
- ]
1593
+ kind: "directive",
1594
+ type: LazyImgDirective,
1595
+ selector: "img"
1568
1596
  },
1569
1597
  {
1570
1598
  kind: "pipe",
1571
- type: i6$1.TranslocoPipe,
1599
+ type: TranslocoPipe,
1572
1600
  name: "transloco"
1573
1601
  }
1574
1602
  ],
@@ -1586,7 +1614,12 @@ i0.ɵɵngDeclareClassMetadata({
1586
1614
  args: [{
1587
1615
  selector: "pw-testimonial-card",
1588
1616
  changeDetection: ChangeDetectionStrategy.OnPush,
1589
- standalone: false,
1617
+ imports: [
1618
+ NoDataComponent,
1619
+ ResourceEditCardLazyComponent,
1620
+ LazyImgDirective,
1621
+ TranslocoPipe
1622
+ ],
1590
1623
  template: "<section class=\"resource-section section-outer bg-white\">\n <div class=\"container\">\n @if (postHeader) {\n <div class=\"d-flex justify-content-between align-items-center flex-wrap mb-3\">\n <h2 class=\"section-heading\">{{postHeader}}</h2>\n </div>\n }\n @if (posts.length === 0) {\n <div>\n <pw-no-data [withImage]=\"true\" [message]=\"'Resource.NoDataMessage' | transloco\"/>\n </div>\n }\n <div [hidden]=\"posts.length === 0\">\n <div class=\"swiper-container\">\n <div class=\"swiper-wrapper\">\n @for (post of posts; track post) {\n <div class=\"swiper-slide\">\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 <!-- THIS STAYS AT BOTTOM -->\n <div class=\"avatar-container\">\n @if (!post.rectangular_picture.url.includes('default-photo.jpg') ) {\n <img\n [src]=\"post.rectangular_picture.url\"\n alt=\"Logo\"\n class=\"testimonial-logo mt-4\"\n />\n }\n </div>\n </div>\n </div>\n }\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>",
1591
1624
  styles: [".resource-section{box-shadow:0 4px 32px -14px #40576d4d!important;position:relative}@media(width>=768px)and (width<=1200px){.container{padding:0 6rem!important}}@media(width<=767px){.container{padding:0 1rem!important}}.ql-res{resize:none!important;border-width:0}.swiper-container{padding:20px;position:relative;overflow:hidden}@media(width>=768px){.swiper-container{padding:20px 40px}}.resource-card{background:#fff;border-radius:8px;box-shadow:0 0 20px #0000001a;padding:1.5rem;height:100%;display:flex;flex-direction:column;margin:0 auto;width:100%;max-width:350px}.resource-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem}.resource-image{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px}.read-now-btn{margin-top:auto;display:inline-flex;align-items:center;gap:.5rem;color:#000;text-decoration:none;font-weight:500}.read-now-btn .arrow{transition:transform .2s ease}.read-now-btn:hover .arrow{transform:translate(5px)}.swiper-button-prev,.swiper-button-next{color:#000}.swiper-button-prev:after,.swiper-button-next:after{font-size:24px}@media(width<=767px){.swiper-button-prev,.swiper-button-next{display:none}}.swiper-pagination{position:relative;margin-top:20px}.swiper-pagination-bullet{background:#000;opacity:.5}.swiper-pagination-bullet-active{opacity:1}.swiper-wrapper{display:flex;align-items:stretch}.swiper-slide{display:flex;align-items:stretch;height:auto}.testimonial-box{display:flex;flex-direction:column;justify-content:space-between;background:#fff;border-radius:20px;padding:2.5rem 1.5rem;box-shadow:0 0 20px #0000001a;text-align:center;width:338px;font-size:1.1rem;height:100%;min-height:100%}.testimonial-box span{margin:0;font-size:22px}.testimonial-box .avatar-container{margin-top:auto}.testimonial-box .testimonial-logo{width:100%!important;height:auto!important;max-width:150px!important;object-fit:contain;align-self:center}.testimonial-box .stars{font-size:2.2rem;color:#f6b300;margin-bottom:2.5rem}.centaris-text{margin-bottom:3rem!important}@media(width<=768px){::ng-deep .swiper-wrapper{gap:1rem!important}.testimonial-box{width:300px!important}}\n", "textarea{font-size:1rem!important}.resource-body-section{background-color:#fff}.resource-body-section .container{padding:3rem 1.5rem 4rem!important;max-width:850px!important;margin:0 auto;text-align:left}.user-not-logged-in{background:#fafbfc;border:1px solid #e2e5ea;border-radius:8px;font-size:14px;font-weight:400;color:#5a6473;padding:1rem 1.5rem;box-shadow:none!important;margin-bottom:2rem!important}.user-not-logged-in a{color:#1a1d21!important;text-decoration:none;font-weight:600;transition:color .15s ease-out}.user-not-logged-in a:hover,.user-not-logged-in a:focus-visible{color:var(--first)!important}.user-not-logged-in a:focus-visible{outline:2px solid var(--first);outline-offset:2px;border-radius:2px}.resource-book-section{background:#fff;padding-top:4rem;padding-bottom:0}.resource-book-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem!important;text-align:left}.resource-book-section .resource-contact{line-height:1.6;font-size:1rem;color:#3d4654}.resource-book-section .resource-contact a{text-decoration:underline;color:#1a1d21;margin:0 .2rem;transition:color .15s ease-out}.resource-book-section .resource-contact a:hover{color:var(--first)!important}.resource-offer-section{background:#fff;padding-top:1rem}.resource-offer-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.resource-divider{border:0;border-top:1px solid #e2e5ea;margin:2rem auto;max-width:850px;height:0;background:none}::ng-deep .body-quill{border-width:0!important;max-width:850px;display:block;margin-left:auto;margin-right:auto}::ng-deep .ql-snow .ql-editor.post-body-text blockquote{font-size:22px;line-height:1.45;font-weight:600;color:#1a1d21;border-left:4px solid var(--first);padding:6px 0 6px 22px;margin:8px 0}::ng-deep .ql-snow .ql-editor.post-body-text mark{background:linear-gradient(transparent 55%,color-mix(in srgb,var(--first) 22%,transparent) 55%);color:inherit;padding:0 2px}::ng-deep .p-textarea{border-radius:8px;border:1px solid #e2e5ea;font-size:1rem!important}.card{background-color:#fff;border-radius:12px}.comment-row{gap:1.5rem;padding-bottom:3rem;max-width:850px;display:block;margin-left:auto;margin-right:auto}.comment-label{font-size:14px!important;font-weight:600!important;letter-spacing:.04em;text-transform:uppercase;color:#5a6473}.response-row{max-width:850px;display:block;margin-left:auto;margin-right:auto;margin-top:2rem!important}@media(width<=768px){.resource-body-section .container{padding:2rem 1rem 3rem}.resource-book-section{padding-top:2rem!important}.resource-book-section .resource-contact{font-size:.9375rem!important}}\n"]
1592
1625
  }]