@posiwise/resource-module 0.0.93 → 0.0.95

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 (61) hide show
  1. package/esm2022/index.mjs +3 -2
  2. package/esm2022/lib/public/components/reslease-note-card/release-note-card.component.mjs +26 -0
  3. package/esm2022/lib/public/components/resource-blogs/resource-blog.component.mjs +64 -0
  4. package/esm2022/lib/public/components/resource-card-list/resource-card-list.component.mjs +22 -0
  5. package/esm2022/lib/public/components/resource-case-studies/case-studies-cards/case-studies-cards.component.mjs +24 -0
  6. package/esm2022/lib/public/components/resource-case-studies/resource-case-studies.component.mjs +83 -0
  7. package/esm2022/lib/public/components/resource-company-card/resource-company-card.component.mjs +43 -0
  8. package/esm2022/lib/public/components/resource-integration/resource-integration.component.mjs +52 -0
  9. package/esm2022/lib/public/components/resource-post/related-resources/related-resources.component.mjs +102 -0
  10. package/esm2022/lib/public/components/resource-post/related-resources/resource-cards/resource-cards.component.mjs +36 -0
  11. package/esm2022/lib/public/components/resource-post/resource-post-details/resource-post-details.component.mjs +42 -0
  12. package/esm2022/lib/public/components/resource-post/resource-post.component.mjs +31 -0
  13. package/esm2022/lib/public/components/resource-release-notes/resource-release-notes.component.mjs +64 -0
  14. package/esm2022/lib/public/components/resource-vault/resource-vault.component.mjs +41 -0
  15. package/esm2022/lib/public/components/resource-videos/resource-video-cards/resource-video-cards.component.mjs +35 -0
  16. package/esm2022/lib/public/components/resource-videos/resource-videos.component.mjs +63 -0
  17. package/esm2022/lib/public/components/resource-webinars/replay-event-cards/replay-event-cards.component.mjs +31 -0
  18. package/esm2022/lib/public/components/resource-webinars/resource-webinars.component.mjs +79 -0
  19. package/esm2022/lib/public/components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component.mjs +19 -0
  20. package/esm2022/lib/public/components/resources/resource-tags/resource-tags.component.mjs +51 -0
  21. package/esm2022/lib/public/components/resources/resources.component.mjs +21 -0
  22. package/esm2022/lib/public/components/resources/vault-section/vault-section.component.mjs +12 -0
  23. package/esm2022/lib/public/components/resources-hub/resources-hub.component.mjs +174 -0
  24. package/esm2022/lib/public/components/resources-read/resources-read.component.mjs +3 -3
  25. package/esm2022/lib/public/components/testimonial-card/testimonial-card.component.mjs +74 -0
  26. package/esm2022/lib/public/components/white-papers/white-papers.component.mjs +63 -0
  27. package/esm2022/lib/public/resource-public.module.mjs +88 -7
  28. package/esm2022/lib/public/resource-public.routing.module.mjs +80 -8
  29. package/esm2022/lib/resource.service.mjs +14 -3
  30. package/fesm2022/posiwise-resource-module.mjs +1130 -77
  31. package/fesm2022/posiwise-resource-module.mjs.map +1 -1
  32. package/index.d.ts +2 -1
  33. package/lib/public/components/reslease-note-card/release-note-card.component.d.ts +11 -0
  34. package/lib/public/components/resource-blogs/resource-blog.component.d.ts +20 -0
  35. package/lib/public/components/resource-card-list/resource-card-list.component.d.ts +7 -0
  36. package/lib/public/components/resource-case-studies/case-studies-cards/case-studies-cards.component.d.ts +11 -0
  37. package/lib/public/components/resource-case-studies/resource-case-studies.component.d.ts +23 -0
  38. package/lib/public/components/resource-company-card/resource-company-card.component.d.ts +22 -0
  39. package/lib/public/components/resource-integration/resource-integration.component.d.ts +34 -0
  40. package/lib/public/components/resource-post/related-resources/related-resources.component.d.ts +34 -0
  41. package/lib/public/components/resource-post/related-resources/resource-cards/resource-cards.component.d.ts +11 -0
  42. package/lib/public/components/resource-post/resource-post-details/resource-post-details.component.d.ts +17 -0
  43. package/lib/public/components/resource-post/resource-post.component.d.ts +13 -0
  44. package/lib/public/components/resource-release-notes/resource-release-notes.component.d.ts +20 -0
  45. package/lib/public/components/resource-vault/resource-vault.component.d.ts +20 -0
  46. package/lib/public/components/resource-videos/resource-video-cards/resource-video-cards.component.d.ts +29 -0
  47. package/lib/public/components/resource-videos/resource-videos.component.d.ts +20 -0
  48. package/lib/public/components/resource-webinars/replay-event-cards/replay-event-cards.component.d.ts +28 -0
  49. package/lib/public/components/resource-webinars/resource-webinars.component.d.ts +22 -0
  50. package/lib/public/components/resource-webinars/upcoming-event-cards/upcoming-event-cards.component.d.ts +6 -0
  51. package/lib/public/components/resources/resource-tags/resource-tags.component.d.ts +20 -0
  52. package/lib/public/components/resources/resources.component.d.ts +5 -0
  53. package/lib/public/components/resources/vault-section/vault-section.component.d.ts +5 -0
  54. package/lib/public/components/{resources-list/resources-list.component.d.ts → resources-hub/resources-hub.component.d.ts} +14 -6
  55. package/lib/public/components/resources-read/resources-read.component.d.ts +1 -2
  56. package/lib/public/components/testimonial-card/testimonial-card.component.d.ts +11 -0
  57. package/lib/public/components/white-papers/white-papers.component.d.ts +20 -0
  58. package/lib/public/resource-public.module.d.ts +41 -16
  59. package/lib/resource.service.d.ts +1 -1
  60. package/package.json +1 -1
  61. package/esm2022/lib/public/components/resources-list/resources-list.component.mjs +0 -129
@@ -0,0 +1,83 @@
1
+ import { Component, Injector } from '@angular/core';
2
+ import { AppBaseComponent } from '@posiwise/app-base-component';
3
+ import { TagService } from '@posiwise/common-services';
4
+ import { TOKEN_KEY } from '@posiwise/common-utilities';
5
+ import { ResourceService } from '../../../resource.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../resource.service";
8
+ import * as i2 from "@posiwise/common-services";
9
+ import * as i3 from "@posiwise/alpha-module";
10
+ import * as i4 from "@posiwise/shared-components";
11
+ import * as i5 from "@posiwise/directives";
12
+ import * as i6 from "../testimonial-card/testimonial-card.component";
13
+ import * as i7 from "./case-studies-cards/case-studies-cards.component";
14
+ export class ResourceCaseStudiesComponent extends AppBaseComponent {
15
+ constructor(resourceService, tagService, injector) {
16
+ super(injector);
17
+ this.resourceService = resourceService;
18
+ this.tagService = tagService;
19
+ this.posts = [];
20
+ this.testimonialsPosts = [];
21
+ }
22
+ ngOnInit() {
23
+ this.getUserSubscriptionId().subscribe(response => {
24
+ this.subscriptionId = response;
25
+ });
26
+ this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {
27
+ this.userLoggedIn = !!res;
28
+ if (this.userLoggedIn) {
29
+ this.localStorage.getItem$('product').subscribe(res => {
30
+ const data = res ? JSON.parse(res) : null;
31
+ this.subscriptionId = data?.subscriptionId;
32
+ console.log(this.subscriptionId);
33
+ this.getPostTags();
34
+ });
35
+ }
36
+ });
37
+ }
38
+ getPostTags() {
39
+ this.tagService
40
+ .getTagsByType('post_categories', {}, this.subscriptionId || this.masterSubscriptionId)
41
+ .subscribe(response => {
42
+ console.log(response.tags);
43
+ this.blogPostTag = response.tags.find(tag => tag.name === 'Case Studies');
44
+ this.blogTestimonialsPostTag = response.tags.find(tag => tag.name === 'Testimonials');
45
+ console.log(this.blogPostTag);
46
+ this.getPosts(1, 100);
47
+ this.getTestimonialsPosts(1, 100);
48
+ });
49
+ }
50
+ getPosts(page, pageSize) {
51
+ console.log(this.blogPostTag);
52
+ this.resourceService
53
+ .getPublicPosts(this.subscriptionId, page, pageSize, '', this.blogPostTag?.tag_category_id)
54
+ .subscribe(response => {
55
+ console.log(response.posts, this.blogPostTag);
56
+ this.posts = response.posts
57
+ .filter(post => post.tags?.some(tag => tag.tag_category_id === this.blogPostTag?.tag_category_id))
58
+ .sort((a, b) => new Date(b.published_at).getTime() - new Date(a.published_at).getTime())
59
+ .slice(0, 12);
60
+ });
61
+ }
62
+ getTestimonialsPosts(page, pageSize) {
63
+ console.log(this.blogTestimonialsPostTag?.tag_category_id, 'sop');
64
+ this.resourceService
65
+ .getPublicPosts(this.subscriptionId, page, pageSize, '', this.blogTestimonialsPostTag?.tag_category_id)
66
+ .subscribe(response => {
67
+ console.log(response.posts);
68
+ this.testimonialsPosts = response.posts
69
+ .filter(post => post.tags?.some(tag => tag.tag_category_id ===
70
+ this.blogTestimonialsPostTag?.tag_category_id))
71
+ .sort((a, b) => new Date(b.published_at).getTime() - new Date(a.published_at).getTime())
72
+ .slice(0, 12);
73
+ console.log(this.testimonialsPosts, 'new');
74
+ });
75
+ }
76
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceCaseStudiesComponent, deps: [{ token: i1.ResourceService }, { token: i2.TagService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
77
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceCaseStudiesComponent, selector: "pw-resource-blog", usesInheritance: true, ngImport: i0, template: "<pw-resource-header></pw-resource-header>\n\n<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n Case Studies\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex gap-3 flex-wrap mt-3\">\n <p class=\"intro\">\n Real MSPs. Real results.<br />\n </p>\n <p class=\"intro\">\n See how IT businesses around the<br />\n world are using CloudOlive to fix billing<br />\n bottlenecks, reclaim lost revenue, and<br />\n unlock new levels of profitability. No<br />\n fluff - just proven outcomes.\n </p>\n\n <!-- New buttons -->\n <div class=\"d-flex gap-3 mt-3 flex-wrap mb-5 cta-tab justify-content-center\">\n <a href=\"resources/case-studies#reviews\" class=\"cta-btn filled\">Jump to Reviews</a>\n <a href=\"resources/case-studies#case-studies\" class=\"cta-btn filled\">Jump to Case Studies</a>\n </div>\n </div>\n\n </div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <img class=\"nce-math-img\"\n src=\"/assets/img/resource/math.png\"\n alt=\"NCEasy laptop screen\" />\n <img class=\"nce-laptop-img\"\n src=\"/assets/img/resource/case-studies-man.png\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n <hr class=\"nce-divider\" />\n</section>\n\n<pw-testimonial-card [posts]=\"testimonialsPosts\" [postHeader]=\"'Testimonials'\" id=\"reviews\"></pw-testimonial-card>\n<pw-case-studies-card id=\"case-studies\"></pw-case-studies-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n", styles: [".cta-btn{display:inline-block;background:var(--text-color, black);color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.cta-btn:hover{background-color:#fff!important;color:var(--text-color, black)!important}.text-extension{max-width:560px;margin-top:6rem!important}.text-extension .intro{font-size:2rem;line-height:3rem;font-weight:100;color:#000;margin-bottom:1rem}.text-extension .cta-buttons{margin-top:2rem!important}.text-extension .note{font-size:1.2rem;color:#000;margin-top:1rem;margin-left:3rem}.nce-banner{background-image:url(/assets/img/resource/resource2.png);background-position:center;background-repeat:no-repeat;color:#000}.nce-banner .text-content{max-width:500px;text-align:left;margin-bottom:75rem}.nce-banner .text-content h1{margin-bottom:1.5rem;line-height:1.2}.nce-banner .text-content .intro{font-size:1.2rem;margin:1rem 0;color:#000}.nce-banner .text-content .cta-btn{display:inline-block;background:#000;color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem}.nce-banner .text-content .cta-buttons{margin-top:2rem}.nce-banner .text-content .note{margin-top:1rem;margin-left:5.6rem;font-size:.9rem;color:#555}.nce-banner .nce-header{font-weight:500;color:#fff!important;font-size:4.5rem!important}.nce-banner .blue-text{font-weight:100}@media (width <= 991px){.nce-banner .text-content{margin-top:6.5rem;margin-bottom:0;text-align:center;max-width:360px}.nce-banner .text-content h1{margin-bottom:6.5rem!important}.nce-banner .nce-header{font-size:2.5rem!important}.nce-banner .cta-buttons{margin-top:5rem!important;justify-content:center!important}.nce-banner .note{margin-left:8rem!important}.nce-banner .image-content{position:relative;margin-bottom:3rem;height:230px}.nce-banner .image-content .floating-box{position:absolute;top:25px;left:3rem;transform:translate(-50%) rotate(-10deg);background:#fff;padding:.75rem 1rem;border-radius:20px;box-shadow:0 8px 30px #00000026;text-align:center;z-index:3;display:inline-block;width:auto}.nce-banner .image-content .floating-box img{width:24px;margin-bottom:.4rem}.nce-banner .image-content .floating-box .label{font-size:.75rem;color:#333;margin:0;line-height:1.2}.nce-banner .image-content .floating-box .count{font-size:1.2rem;font-weight:700;color:#000;margin-top:.25rem}.nce-banner .image-content .screen-img{max-width:280px;position:absolute;bottom:0;left:3rem;z-index:2;transform:rotate(-1deg);box-shadow:0 8px 15px #0003}.nce-banner .image-content .person-img{max-width:170px;width:100%;position:relative;z-index:3;left:13rem;top:-11.35rem}.nce-banner .image-content .nce-laptop-img{max-width:350px;width:100%;position:relative;z-index:3;left:2%;height:auto!important;top:11rem}.nce-banner .image-content .nce-math-img{max-width:300px;width:100%;position:relative;z-index:3;left:15%;top:27rem}}@media (width >= 991px){.nce-banner .text-content{position:absolute;width:760px}}.white-content{background:#fff;color:#000}.white-content .intro{font-size:1.2rem;color:#000}.white-content .note{font-size:.85rem;margin-top:1rem;color:#555}@media (width >= 991px){.section-outer{padding-top:7rem!important}}@media (width >= 768px) and (width <= 991px){.nce-laptop-img{left:-17%!important;height:auto!important;top:24rem!important}.nce-math-img{left:36%!important;top:22rem!important}}@media (width >= 991px) and (width <= 1200px){.text-extension{max-width:760px;position:absolute;margin-bottom:23rem!important}.nce-divider{top:63.5rem;position:absolute!important}.nce-banner{padding-bottom:90px!important}}@media (width >= 1200px){.text-extension{max-width:760px;position:absolute;margin-bottom:28rem!important}}@media (width >= 1200px){.nce-divider{top:59.5rem;position:absolute!important}.cta-tab{margin-bottom:5rem!important}}@media (width >= 1200px){.image-content{margin-top:0;display:flex;align-items:flex-end;gap:1.5rem;height:0}.image-content .floating-box{position:absolute;top:25px;transform:translate(-50%) rotate(-10deg);background:#fff;padding:1rem;border-radius:20px;box-shadow:0 8px 30px #00000026;text-align:center;width:170px;z-index:3}.image-content .floating-box img{width:30px;margin-bottom:.5rem}.image-content .floating-box .label{font-size:.85rem;color:#333;margin:0}.image-content .floating-box .count{font-size:1.5rem;font-weight:700;color:#000;margin:.25rem 0 0}.image-content .screen-img{width:100%;position:absolute;bottom:5rem;left:3rem;z-index:2;transform:rotate(-1deg);box-shadow:0 8px 15px #0003;max-width:400px;margin-bottom:4rem}.image-content .person-img{max-width:800px;width:100%;position:relative;z-index:3;min-width:420px;margin-bottom:0;bottom:7rem;left:4rem}.image-content .nce-laptop-img{top:4rem;right:3rem;position:relative}.image-content .nce-math-img{bottom:9rem;left:61rem;position:relative;width:450px!important}}@media (width <= 786px){.text-extension{position:absolute;margin:3rem;margin-top:18rem!important}}@media (width >= 786px) and (width <= 991px){.text-extension{position:absolute;margin:3rem;margin-top:24rem!important}}@media (width >= 786px) and (width <= 1200px){.image-content{margin-top:0;display:flex;align-items:flex-end;gap:1.5rem;height:0}.image-content .floating-box{position:absolute;top:25px;transform:translate(-50%) rotate(-10deg);background:#fff;padding:1rem;border-radius:20px;box-shadow:0 8px 30px #00000026;text-align:center;width:170px;z-index:3}.image-content .floating-box img{width:30px;margin-bottom:.5rem}.image-content .floating-box .label{font-size:.85rem;color:#333;margin:0}.image-content .floating-box .count{font-size:1.5rem;font-weight:700;color:#000;margin:.25rem 0 0}.image-content .screen-img{width:100%;position:absolute;bottom:5rem;left:3rem;z-index:2;transform:rotate(-1deg);box-shadow:0 8px 15px #0003;max-width:400px;margin-bottom:4rem}.image-content .person-img{max-width:800px;width:100%;position:relative;z-index:3;min-width:420px;margin-bottom:0;bottom:7rem;left:4rem}.image-content .nce-laptop-img{top:7rem;left:5%;position:relative}.image-content .nce-math-img{bottom:9rem;left:34rem;position:relative;width:350px!important}}@media (width <= 768px){.nce-laptop-img{top:33rem!important}.nce-math-img{top:45rem!important}.cta-btn{justify-content:center}.pricing-section{height:1300px!important}.nce-divider{margin-top:49rem!important}.intro{font-size:1.7rem!important}}@media (width >= 768px) and (width <= 991px){.nce-laptop-img{top:36rem!important}.nce-math-img{top:33rem!important}.cta-btn{justify-content:center}.pricing-section{height:1090px!important}.nce-divider{margin-top:36rem!important}}@media (width >= 991px){.nce-laptop-img{max-width:100%!important;height:auto}.nce-banner{padding-top:768px;padding-bottom:42px;overflow:hidden}.section-fadeout{height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.nce-heading{width:700px!important}::ng-deep .vault-section{max-width:1580px!important;padding-left:48px!important;padding-top:130px!important}::ng-deep .vault-card{width:330px!important;height:370px!important}::ng-deep .vault-btn{width:224px!important}}@media (width <= 991px){.billing-section{flex-direction:column!important;gap:3rem}.billing-section .billing-section1,.billing-section .billing-section2{width:90%!important}.billing-section .billing-section1{margin-left:1.5rem;margin-top:4rem}.nce-banner{background-image:url(/assets/img/resource/resource2.png)}}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}.outer-section-fadeout{top:62rem!important}}\n", "::ng-deep .navbar-nav .nav-item .nav-link{color:#fff!important}.bold{font-weight:700}.nce-heading{margin-bottom:2rem}.nce-note{margin-top:1rem;font-size:.85rem;color:#555}.nce-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}\n", "::ng-deep .ql-editor p{font-size:1.5rem!important;line-height:1.8rem!important;color:#333!important}.msp-vault-section{padding:60px 0;background:#fff}.msp-vault-section .vault-heading{font-size:4.5rem;font-weight:300;color:#000!important}.msp-vault-section .explore-link{color:#000;font-weight:400;text-decoration:none;font-size:1.5rem}.msp-vault-section .vault-description{text-align:left;max-width:657px;color:#182527;line-height:2.3rem!important;font-size:1.65rem}.msp-vault-section .vault-card{background-color:#fff;border-radius:30px;box-shadow:0 5px 20px #0000000d;padding:25px;text-align:center;width:338px;height:auto}.msp-vault-section .vault-card h5{font-size:1.5rem;font-weight:700;margin-bottom:.5rem;color:#000!important}.msp-vault-section .vault-card p{font-size:1.5rem;color:#444}.msp-vault-section .vault-card img,.msp-vault-section .vault-card iframe{height:180px;border-radius:10px;object-fit:cover}.msp-vault-section .vault-card .vault-btn{background-color:#000!important;margin-top:10px;color:#fff;width:240px;padding:10px 24px;border-radius:24px;border:none;font-size:1.5rem;margin-left:2rem;font-weight:500;cursor:pointer;transition:background .3s ease;display:flex;justify-content:space-between;align-items:center;text-align:left}.msp-vault-section .vault-card .vault-btn:hover{background-color:#333}@media (width >= 768px) and (width <= 1200px){.resource-title{font-size:1.4rem!important}}textarea{font-size:1.4rem!important}@media (width <= 768px){.resource-title{font-size:1.2rem!important}.container{padding:7rem 3rem 1rem!important}}@media (width >= 768px) and (width <= 1200px){.container{padding:1rem 3rem!important}}@media (width <= 1200px){.msp-vault-section .vault-heading{font-size:3.5rem}.msp-vault-section .vault-description{margin-top:1.35rem}.msp-vault-section .vault-card{width:100%!important}.msp-vault-section .vault-btn{margin-left:0!important;width:100%!important}}@media (width >= 991px){::ng-deep .trial-meeting-section:before{top:600px!important}::ng-deep .dashboard{margin-bottom:1rem!important}section.bg-white.text-center.extra-top-padding{position:relative;overflow:hidden}section.bg-white.text-center.extra-top-padding .banner-header{margin-bottom:4rem!important}section.bg-white.text-center.extra-top-padding:before,section.bg-white.text-center.extra-top-padding:after{content:\"\";position:absolute;background:url(/assets/img/logos/background-banner.png) no-repeat;background-size:contain;width:160px;height:450px;z-index:0;opacity:.8}section.bg-white.text-center.extra-top-padding:before{top:500px;left:0}section.bg-white.text-center.extra-top-padding:after{top:90px;right:0}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 1200px){.resource-card{width:100%!important}.release-notes-section{padding:7rem 0!important}}.resource-section{padding:5rem 0;position:relative}.resource-section .section-heading{font-weight:700;font-size:2.4rem;color:#000}.resource-section .view-all{font-size:1.5rem;font-weight:600;color:#000;text-decoration:none;margin-bottom:2.5rem}.resource-section .view-all:hover{color:var(--first)}.resource-section .resource-card{background:#fff;width:353px;border-radius:30px;padding:3rem;box-shadow:0 20px 40px #00000014;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;height:100%}.resource-section .resource-card .resource-title{font-size:1.5rem;line-height:2rem;font-weight:300;color:#000;margin-bottom:16px;text-align:center;height:3.5rem}.resource-section .resource-card .resource-image{width:100%;height:204px!important;object-fit:cover;border-radius:16px;margin-bottom:20px;margin-top:3.5rem!important}.resource-section .resource-card .read-now-btn{background-color:var(--text-color, black);color:#fff;text-decoration:none;padding:14px 20px;font-size:1.5rem;font-weight:500;border-radius:40px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .3s ease;width:100%;max-width:240px;margin:0 auto;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.resource-section .resource-card .read-now-btn .arrow{font-weight:600;font-size:1.5rem}.resource-section .resource-card .read-now-btn:hover{background:#fff;color:var(--text-color, black)!important}@media (width <= 768px){.resource-section .resource-section .cards-row{gap:3rem;margin-top:3rem!important}.resource-section .section-heading,.resource-section .view-all{width:100%;text-align:center;margin-bottom:1rem}.resource-section .resource-card .read-now-btn{flex-direction:row;justify-content:center;gap:8px}}@media (width >= 768px) and (width <= 1200px){.nce-hero-section{padding:0 6rem!important}.cards-row{justify-content:center}}.resource-body-section{background-color:#fff}.resource-body-section .container{padding:0 1.5rem;padding-bottom:4rem!important;padding-top:7rem!important;max-width:850px;margin:0 auto;text-align:left}.user-not-logged-in{background:#f7f7f7;border:1px solid rgb(238,238,238);font-weight:400}.user-not-logged-in a{color:var(--first)!important;text-decoration:none;font-weight:500}.nce-book-section{background:#fff;padding-top:7rem;padding-bottom:0}.nce-book-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-book-section .nce-contact{line-height:1.6;font-size:1.5rem}.nce-book-section .nce-contact a{text-decoration:underline;color:#000;margin:0 .2rem}.nce-offer-section{background:#fff;padding-top:2rem}.nce-offer-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-offer-section .nce-title{font-size:2rem;font-weight:700;color:#000;margin-bottom:.25em!important}.nce-offer-section .nce-title strong{font-weight:700}.nce-offer-section .nce-description{font-size:1.5rem;line-height:1.8rem;color:#333;margin-bottom:1.5rem}.nce-offer-section .nce-offer-list{font-size:1.1rem;line-height:1.5rem;margin-bottom:2.5rem;margin-top:2.5rem}.nce-offer-section .nce-offer-list p{font-size:1.5rem;margin:.5rem 0;font-weight:400}.nce-offer-section .nce-signup{margin-bottom:2.5rem}.nce-offer-section .nce-signup .signup-link{font-size:1.5rem;font-weight:400;text-decoration:underline;color:#000}@media (width <= 768px){.nce-offer-section .nce-book-section{padding-top:5rem!important}.nce-offer-section .container{text-align:left}.nce-offer-section .nce-title{font-size:1.5rem}.nce-offer-section .nce-description,.nce-offer-section .nce-offer-list,.nce-offer-section .nce-signup,.nce-offer-section .signup-link,.nce-offer-section .nce-contact,.nce-offer-section .nce-offer-list p{font-size:1.2rem!important}}.nce-offer-intro{font-size:1.5rem;font-weight:400}.outer-section-fadeout{position:absolute;top:139rem;height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.body-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}@media (width <= 768px){.nce-book-section{padding-top:5rem!important}.nce-contact{font-size:1.2rem!important}}::ng-deep .body-quill{border-width:0!important;max-width:1000px;display:block;margin-left:auto;margin-right:auto}::ng-deep .ql-editor h1{font-size:2rem!important;line-height:2.3rem!important;color:#333!important}::ng-deep .ql-editor li{font-size:1.3rem!important;color:#333!important}::ng-deep .p-inputtextarea{border-radius:.5rem;border-color:#ced4da;font-size:1rem}.card{background-color:#fff;border-radius:12px}.comment-row{gap:2rem;padding-bottom:5rem;max-width:1000px;display:block;margin-left:auto;margin-right:auto}.comment-label{font-size:1.5rem!important}.response-row{max-width:1000px;display:block;margin-left:auto;margin-right:auto;margin-top:6rem!important}\n"], dependencies: [{ kind: "component", type: i3.Trial4ContactUsComponent, selector: "pw-trial-4-contact-us", inputs: ["subscriptionId", "sourceId", "masterSubscriptionId", "experimentName", "microserviceName"] }, { kind: "component", type: i4.ResourceHeaderComponent, selector: "pw-resource-header" }, { kind: "directive", type: i5.LazyImgDirective, selector: "img" }, { kind: "component", type: i6.TestimonialCardListComponent, selector: "pw-testimonial-card", inputs: ["posts", "postHeader"] }, { kind: "component", type: i7.CaseStudyCardComponent, selector: "pw-case-studies-card", inputs: ["showCaseStudyHeader"] }] }); }
78
+ }
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceCaseStudiesComponent, decorators: [{
80
+ type: Component,
81
+ args: [{ selector: 'pw-resource-blog', template: "<pw-resource-header></pw-resource-header>\n\n<section class=\"bg-white pricing-section\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-heading\">\n <h1 class=\"nce-header mb-4\">\n Case Studies\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <!-- Add directly below .text-content, still inside .container -->\n <div class=\"text-extension mt-4\">\n\n <div class=\"cta-buttons d-flex gap-3 flex-wrap mt-3\">\n <p class=\"intro\">\n Real MSPs. Real results.<br />\n </p>\n <p class=\"intro\">\n See how IT businesses around the<br />\n world are using CloudOlive to fix billing<br />\n bottlenecks, reclaim lost revenue, and<br />\n unlock new levels of profitability. No<br />\n fluff - just proven outcomes.\n </p>\n\n <!-- New buttons -->\n <div class=\"d-flex gap-3 mt-3 flex-wrap mb-5 cta-tab justify-content-center\">\n <a href=\"resources/case-studies#reviews\" class=\"cta-btn filled\">Jump to Reviews</a>\n <a href=\"resources/case-studies#case-studies\" class=\"cta-btn filled\">Jump to Case Studies</a>\n </div>\n </div>\n\n </div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <img class=\"nce-math-img\"\n src=\"/assets/img/resource/math.png\"\n alt=\"NCEasy laptop screen\" />\n <img class=\"nce-laptop-img\"\n src=\"/assets/img/resource/case-studies-man.png\"\n alt=\"NCEasy laptop screen\" />\n </div>\n\n </div>\n </div>\n <hr class=\"nce-divider\" />\n</section>\n\n<pw-testimonial-card [posts]=\"testimonialsPosts\" [postHeader]=\"'Testimonials'\" id=\"reviews\"></pw-testimonial-card>\n<pw-case-studies-card id=\"case-studies\"></pw-case-studies-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n", styles: [".cta-btn{display:inline-block;background:var(--text-color, black);color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.cta-btn:hover{background-color:#fff!important;color:var(--text-color, black)!important}.text-extension{max-width:560px;margin-top:6rem!important}.text-extension .intro{font-size:2rem;line-height:3rem;font-weight:100;color:#000;margin-bottom:1rem}.text-extension .cta-buttons{margin-top:2rem!important}.text-extension .note{font-size:1.2rem;color:#000;margin-top:1rem;margin-left:3rem}.nce-banner{background-image:url(/assets/img/resource/resource2.png);background-position:center;background-repeat:no-repeat;color:#000}.nce-banner .text-content{max-width:500px;text-align:left;margin-bottom:75rem}.nce-banner .text-content h1{margin-bottom:1.5rem;line-height:1.2}.nce-banner .text-content .intro{font-size:1.2rem;margin:1rem 0;color:#000}.nce-banner .text-content .cta-btn{display:inline-block;background:#000;color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem}.nce-banner .text-content .cta-buttons{margin-top:2rem}.nce-banner .text-content .note{margin-top:1rem;margin-left:5.6rem;font-size:.9rem;color:#555}.nce-banner .nce-header{font-weight:500;color:#fff!important;font-size:4.5rem!important}.nce-banner .blue-text{font-weight:100}@media (width <= 991px){.nce-banner .text-content{margin-top:6.5rem;margin-bottom:0;text-align:center;max-width:360px}.nce-banner .text-content h1{margin-bottom:6.5rem!important}.nce-banner .nce-header{font-size:2.5rem!important}.nce-banner .cta-buttons{margin-top:5rem!important;justify-content:center!important}.nce-banner .note{margin-left:8rem!important}.nce-banner .image-content{position:relative;margin-bottom:3rem;height:230px}.nce-banner .image-content .floating-box{position:absolute;top:25px;left:3rem;transform:translate(-50%) rotate(-10deg);background:#fff;padding:.75rem 1rem;border-radius:20px;box-shadow:0 8px 30px #00000026;text-align:center;z-index:3;display:inline-block;width:auto}.nce-banner .image-content .floating-box img{width:24px;margin-bottom:.4rem}.nce-banner .image-content .floating-box .label{font-size:.75rem;color:#333;margin:0;line-height:1.2}.nce-banner .image-content .floating-box .count{font-size:1.2rem;font-weight:700;color:#000;margin-top:.25rem}.nce-banner .image-content .screen-img{max-width:280px;position:absolute;bottom:0;left:3rem;z-index:2;transform:rotate(-1deg);box-shadow:0 8px 15px #0003}.nce-banner .image-content .person-img{max-width:170px;width:100%;position:relative;z-index:3;left:13rem;top:-11.35rem}.nce-banner .image-content .nce-laptop-img{max-width:350px;width:100%;position:relative;z-index:3;left:2%;height:auto!important;top:11rem}.nce-banner .image-content .nce-math-img{max-width:300px;width:100%;position:relative;z-index:3;left:15%;top:27rem}}@media (width >= 991px){.nce-banner .text-content{position:absolute;width:760px}}.white-content{background:#fff;color:#000}.white-content .intro{font-size:1.2rem;color:#000}.white-content .note{font-size:.85rem;margin-top:1rem;color:#555}@media (width >= 991px){.section-outer{padding-top:7rem!important}}@media (width >= 768px) and (width <= 991px){.nce-laptop-img{left:-17%!important;height:auto!important;top:24rem!important}.nce-math-img{left:36%!important;top:22rem!important}}@media (width >= 991px) and (width <= 1200px){.text-extension{max-width:760px;position:absolute;margin-bottom:23rem!important}.nce-divider{top:63.5rem;position:absolute!important}.nce-banner{padding-bottom:90px!important}}@media (width >= 1200px){.text-extension{max-width:760px;position:absolute;margin-bottom:28rem!important}}@media (width >= 1200px){.nce-divider{top:59.5rem;position:absolute!important}.cta-tab{margin-bottom:5rem!important}}@media (width >= 1200px){.image-content{margin-top:0;display:flex;align-items:flex-end;gap:1.5rem;height:0}.image-content .floating-box{position:absolute;top:25px;transform:translate(-50%) rotate(-10deg);background:#fff;padding:1rem;border-radius:20px;box-shadow:0 8px 30px #00000026;text-align:center;width:170px;z-index:3}.image-content .floating-box img{width:30px;margin-bottom:.5rem}.image-content .floating-box .label{font-size:.85rem;color:#333;margin:0}.image-content .floating-box .count{font-size:1.5rem;font-weight:700;color:#000;margin:.25rem 0 0}.image-content .screen-img{width:100%;position:absolute;bottom:5rem;left:3rem;z-index:2;transform:rotate(-1deg);box-shadow:0 8px 15px #0003;max-width:400px;margin-bottom:4rem}.image-content .person-img{max-width:800px;width:100%;position:relative;z-index:3;min-width:420px;margin-bottom:0;bottom:7rem;left:4rem}.image-content .nce-laptop-img{top:4rem;right:3rem;position:relative}.image-content .nce-math-img{bottom:9rem;left:61rem;position:relative;width:450px!important}}@media (width <= 786px){.text-extension{position:absolute;margin:3rem;margin-top:18rem!important}}@media (width >= 786px) and (width <= 991px){.text-extension{position:absolute;margin:3rem;margin-top:24rem!important}}@media (width >= 786px) and (width <= 1200px){.image-content{margin-top:0;display:flex;align-items:flex-end;gap:1.5rem;height:0}.image-content .floating-box{position:absolute;top:25px;transform:translate(-50%) rotate(-10deg);background:#fff;padding:1rem;border-radius:20px;box-shadow:0 8px 30px #00000026;text-align:center;width:170px;z-index:3}.image-content .floating-box img{width:30px;margin-bottom:.5rem}.image-content .floating-box .label{font-size:.85rem;color:#333;margin:0}.image-content .floating-box .count{font-size:1.5rem;font-weight:700;color:#000;margin:.25rem 0 0}.image-content .screen-img{width:100%;position:absolute;bottom:5rem;left:3rem;z-index:2;transform:rotate(-1deg);box-shadow:0 8px 15px #0003;max-width:400px;margin-bottom:4rem}.image-content .person-img{max-width:800px;width:100%;position:relative;z-index:3;min-width:420px;margin-bottom:0;bottom:7rem;left:4rem}.image-content .nce-laptop-img{top:7rem;left:5%;position:relative}.image-content .nce-math-img{bottom:9rem;left:34rem;position:relative;width:350px!important}}@media (width <= 768px){.nce-laptop-img{top:33rem!important}.nce-math-img{top:45rem!important}.cta-btn{justify-content:center}.pricing-section{height:1300px!important}.nce-divider{margin-top:49rem!important}.intro{font-size:1.7rem!important}}@media (width >= 768px) and (width <= 991px){.nce-laptop-img{top:36rem!important}.nce-math-img{top:33rem!important}.cta-btn{justify-content:center}.pricing-section{height:1090px!important}.nce-divider{margin-top:36rem!important}}@media (width >= 991px){.nce-laptop-img{max-width:100%!important;height:auto}.nce-banner{padding-top:768px;padding-bottom:42px;overflow:hidden}.section-fadeout{height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.nce-heading{width:700px!important}::ng-deep .vault-section{max-width:1580px!important;padding-left:48px!important;padding-top:130px!important}::ng-deep .vault-card{width:330px!important;height:370px!important}::ng-deep .vault-btn{width:224px!important}}@media (width <= 991px){.billing-section{flex-direction:column!important;gap:3rem}.billing-section .billing-section1,.billing-section .billing-section2{width:90%!important}.billing-section .billing-section1{margin-left:1.5rem;margin-top:4rem}.nce-banner{background-image:url(/assets/img/resource/resource2.png)}}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}.outer-section-fadeout{top:62rem!important}}\n", "::ng-deep .navbar-nav .nav-item .nav-link{color:#fff!important}.bold{font-weight:700}.nce-heading{margin-bottom:2rem}.nce-note{margin-top:1rem;font-size:.85rem;color:#555}.nce-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}\n", "::ng-deep .ql-editor p{font-size:1.5rem!important;line-height:1.8rem!important;color:#333!important}.msp-vault-section{padding:60px 0;background:#fff}.msp-vault-section .vault-heading{font-size:4.5rem;font-weight:300;color:#000!important}.msp-vault-section .explore-link{color:#000;font-weight:400;text-decoration:none;font-size:1.5rem}.msp-vault-section .vault-description{text-align:left;max-width:657px;color:#182527;line-height:2.3rem!important;font-size:1.65rem}.msp-vault-section .vault-card{background-color:#fff;border-radius:30px;box-shadow:0 5px 20px #0000000d;padding:25px;text-align:center;width:338px;height:auto}.msp-vault-section .vault-card h5{font-size:1.5rem;font-weight:700;margin-bottom:.5rem;color:#000!important}.msp-vault-section .vault-card p{font-size:1.5rem;color:#444}.msp-vault-section .vault-card img,.msp-vault-section .vault-card iframe{height:180px;border-radius:10px;object-fit:cover}.msp-vault-section .vault-card .vault-btn{background-color:#000!important;margin-top:10px;color:#fff;width:240px;padding:10px 24px;border-radius:24px;border:none;font-size:1.5rem;margin-left:2rem;font-weight:500;cursor:pointer;transition:background .3s ease;display:flex;justify-content:space-between;align-items:center;text-align:left}.msp-vault-section .vault-card .vault-btn:hover{background-color:#333}@media (width >= 768px) and (width <= 1200px){.resource-title{font-size:1.4rem!important}}textarea{font-size:1.4rem!important}@media (width <= 768px){.resource-title{font-size:1.2rem!important}.container{padding:7rem 3rem 1rem!important}}@media (width >= 768px) and (width <= 1200px){.container{padding:1rem 3rem!important}}@media (width <= 1200px){.msp-vault-section .vault-heading{font-size:3.5rem}.msp-vault-section .vault-description{margin-top:1.35rem}.msp-vault-section .vault-card{width:100%!important}.msp-vault-section .vault-btn{margin-left:0!important;width:100%!important}}@media (width >= 991px){::ng-deep .trial-meeting-section:before{top:600px!important}::ng-deep .dashboard{margin-bottom:1rem!important}section.bg-white.text-center.extra-top-padding{position:relative;overflow:hidden}section.bg-white.text-center.extra-top-padding .banner-header{margin-bottom:4rem!important}section.bg-white.text-center.extra-top-padding:before,section.bg-white.text-center.extra-top-padding:after{content:\"\";position:absolute;background:url(/assets/img/logos/background-banner.png) no-repeat;background-size:contain;width:160px;height:450px;z-index:0;opacity:.8}section.bg-white.text-center.extra-top-padding:before{top:500px;left:0}section.bg-white.text-center.extra-top-padding:after{top:90px;right:0}}.vault-header{text-align:left}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width <= 1200px){.resource-card{width:100%!important}.release-notes-section{padding:7rem 0!important}}.resource-section{padding:5rem 0;position:relative}.resource-section .section-heading{font-weight:700;font-size:2.4rem;color:#000}.resource-section .view-all{font-size:1.5rem;font-weight:600;color:#000;text-decoration:none;margin-bottom:2.5rem}.resource-section .view-all:hover{color:var(--first)}.resource-section .resource-card{background:#fff;width:353px;border-radius:30px;padding:3rem;box-shadow:0 20px 40px #00000014;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;height:100%}.resource-section .resource-card .resource-title{font-size:1.5rem;line-height:2rem;font-weight:300;color:#000;margin-bottom:16px;text-align:center;height:3.5rem}.resource-section .resource-card .resource-image{width:100%;height:204px!important;object-fit:cover;border-radius:16px;margin-bottom:20px;margin-top:3.5rem!important}.resource-section .resource-card .read-now-btn{background-color:var(--text-color, black);color:#fff;text-decoration:none;padding:14px 20px;font-size:1.5rem;font-weight:500;border-radius:40px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .3s ease;width:100%;max-width:240px;margin:0 auto;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.resource-section .resource-card .read-now-btn .arrow{font-weight:600;font-size:1.5rem}.resource-section .resource-card .read-now-btn:hover{background:#fff;color:var(--text-color, black)!important}@media (width <= 768px){.resource-section .resource-section .cards-row{gap:3rem;margin-top:3rem!important}.resource-section .section-heading,.resource-section .view-all{width:100%;text-align:center;margin-bottom:1rem}.resource-section .resource-card .read-now-btn{flex-direction:row;justify-content:center;gap:8px}}@media (width >= 768px) and (width <= 1200px){.nce-hero-section{padding:0 6rem!important}.cards-row{justify-content:center}}.resource-body-section{background-color:#fff}.resource-body-section .container{padding:0 1.5rem;padding-bottom:4rem!important;padding-top:7rem!important;max-width:850px;margin:0 auto;text-align:left}.user-not-logged-in{background:#f7f7f7;border:1px solid rgb(238,238,238);font-weight:400}.user-not-logged-in a{color:var(--first)!important;text-decoration:none;font-weight:500}.nce-book-section{background:#fff;padding-top:7rem;padding-bottom:0}.nce-book-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-book-section .nce-contact{line-height:1.6;font-size:1.5rem}.nce-book-section .nce-contact a{text-decoration:underline;color:#000;margin:0 .2rem}.nce-offer-section{background:#fff;padding-top:2rem}.nce-offer-section .container{max-width:850px;margin:0 auto;padding:0 1.5rem;text-align:left}.nce-offer-section .nce-title{font-size:2rem;font-weight:700;color:#000;margin-bottom:.25em!important}.nce-offer-section .nce-title strong{font-weight:700}.nce-offer-section .nce-description{font-size:1.5rem;line-height:1.8rem;color:#333;margin-bottom:1.5rem}.nce-offer-section .nce-offer-list{font-size:1.1rem;line-height:1.5rem;margin-bottom:2.5rem;margin-top:2.5rem}.nce-offer-section .nce-offer-list p{font-size:1.5rem;margin:.5rem 0;font-weight:400}.nce-offer-section .nce-signup{margin-bottom:2.5rem}.nce-offer-section .nce-signup .signup-link{font-size:1.5rem;font-weight:400;text-decoration:underline;color:#000}@media (width <= 768px){.nce-offer-section .nce-book-section{padding-top:5rem!important}.nce-offer-section .container{text-align:left}.nce-offer-section .nce-title{font-size:1.5rem}.nce-offer-section .nce-description,.nce-offer-section .nce-offer-list,.nce-offer-section .nce-signup,.nce-offer-section .signup-link,.nce-offer-section .nce-contact,.nce-offer-section .nce-offer-list p{font-size:1.2rem!important}}.nce-offer-intro{font-size:1.5rem;font-weight:400}.outer-section-fadeout{position:absolute;top:139rem;height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.body-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}@media (width <= 768px){.nce-book-section{padding-top:5rem!important}.nce-contact{font-size:1.2rem!important}}::ng-deep .body-quill{border-width:0!important;max-width:1000px;display:block;margin-left:auto;margin-right:auto}::ng-deep .ql-editor h1{font-size:2rem!important;line-height:2.3rem!important;color:#333!important}::ng-deep .ql-editor li{font-size:1.3rem!important;color:#333!important}::ng-deep .p-inputtextarea{border-radius:.5rem;border-color:#ced4da;font-size:1rem}.card{background-color:#fff;border-radius:12px}.comment-row{gap:2rem;padding-bottom:5rem;max-width:1000px;display:block;margin-left:auto;margin-right:auto}.comment-label{font-size:1.5rem!important}.response-row{max-width:1000px;display:block;margin-left:auto;margin-right:auto;margin-top:6rem!important}\n"] }]
82
+ }], ctorParameters: () => [{ type: i1.ResourceService }, { type: i2.TagService }, { type: i0.Injector }] });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtY2FzZS1zdHVkaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcmVzb3VyY2UtbW9kdWxlL3NyYy9saWIvcHVibGljL2NvbXBvbmVudHMvcmVzb3VyY2UtY2FzZS1zdHVkaWVzL3Jlc291cmNlLWNhc2Utc3R1ZGllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlLWNhc2Utc3R1ZGllcy9yZXNvdXJjZS1jYXNlLXN0dWRpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7OztBQVc1RCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsZ0JBQWdCO0lBUzlELFlBQ3FCLGVBQWdDLEVBQ2hDLFVBQXNCLEVBQ3ZDLFFBQWtCO1FBRWxCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUpDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBUjNDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxzQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFXdkIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQzFCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2xELE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUMxQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksRUFBRSxjQUFjLENBQUM7b0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLENBQUMsVUFBVTthQUNWLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUM7YUFDdEYsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDN0MsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FDckMsQ0FBQztZQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVksRUFBRSxRQUFnQjtRQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZTthQUNmLGNBQWMsQ0FDWCxJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLEVBQ0osUUFBUSxFQUNSLEVBQUUsRUFDRixJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FDcEM7YUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLO2lCQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDWCxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FDWCxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQ25FLENBQ0o7aUJBQ0EsSUFBSSxDQUNELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ0wsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FDOUU7aUJBQ0EsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7UUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlO2FBQ2YsY0FBYyxDQUNYLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksRUFDSixRQUFRLEVBQ1IsRUFBRSxFQUNGLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxlQUFlLENBQ2hEO2FBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsS0FBSztpQkFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ1gsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQ1gsR0FBRyxDQUFDLEVBQUUsQ0FDRixHQUFHLENBQUMsZUFBZTtnQkFDbkIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLGVBQWUsQ0FDcEQsQ0FDSjtpQkFDQSxJQUFJLENBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDTCxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUM5RTtpQkFDQSxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzsrR0F0R1EsNEJBQTRCO21HQUE1Qiw0QkFBNEIsK0VDakJ6QywrbUVBMkRBOzs0RkQxQ2EsNEJBQTRCO2tCQVR4QyxTQUFTOytCQUNJLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBUT0tFTl9LRVkgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5cbmltcG9ydCB7IFJlc291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXJlc291cmNlLWJsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXNvdXJjZS1jYXNlLXN0dWRpZXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogW1xuICAgICAgICAnLi9yZXNvdXJjZS1jYXNlLXN0dWRpZXMuY29tcG9uZW50LnNjc3MnLFxuICAgICAgICAnLi4vcmVzb3VyY2VzL3Jlc291cmNlcy1zaGFyZWQuY29tcG9uZW50LnNjc3MnLFxuICAgICAgICAnLi4vcmVzb3VyY2UtcG9zdC9yZWxhdGVkLXJlc291cmNlcy9yZWxhdGVkLXJlc291cmNlcy5jb21wb25lbnQuc2NzcydcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlQ2FzZVN0dWRpZXNDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuICAgIG1hc3RlclN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG4gICAgcG9zdHMgPSBbXTtcbiAgICB0ZXN0aW1vbmlhbHNQb3N0cyA9IFtdO1xuICAgIHVzZXJMb2dnZWRJbjogYm9vbGVhbjtcbiAgICBibG9nUG9zdFRhZztcbiAgICBibG9nVGVzdGltb25pYWxzUG9zdFRhZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlU2VydmljZTogUmVzb3VyY2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRhZ1NlcnZpY2U6IFRhZ1NlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZ2V0VXNlclN1YnNjcmlwdGlvbklkKCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSByZXNwb25zZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0kKFRPS0VOX0tFWSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbiA9ICEhcmVzO1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlckxvZ2dlZEluKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSQoJ3Byb2R1Y3QnKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlcyA/IEpTT04ucGFyc2UocmVzKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBkYXRhPy5zdWJzY3JpcHRpb25JZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5zdWJzY3JpcHRpb25JZCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UG9zdFRhZ3MoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQb3N0VGFncygpIHtcbiAgICAgICAgdGhpcy50YWdTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0VGFnc0J5VHlwZSgncG9zdF9jYXRlZ29yaWVzJywge30sIHRoaXMuc3Vic2NyaXB0aW9uSWQgfHwgdGhpcy5tYXN0ZXJTdWJzY3JpcHRpb25JZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnRhZ3MpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvZ1Bvc3RUYWcgPSByZXNwb25zZS50YWdzLmZpbmQodGFnID0+IHRhZy5uYW1lID09PSAnQ2FzZSBTdHVkaWVzJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5ibG9nVGVzdGltb25pYWxzUG9zdFRhZyA9IHJlc3BvbnNlLnRhZ3MuZmluZChcbiAgICAgICAgICAgICAgICAgICAgdGFnID0+IHRhZy5uYW1lID09PSAnVGVzdGltb25pYWxzJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5ibG9nUG9zdFRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRQb3N0cygxLCAxMDApO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGVzdGltb25pYWxzUG9zdHMoMSwgMTAwKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFBvc3RzKHBhZ2U6IG51bWJlciwgcGFnZVNpemU6IG51bWJlcikge1xuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmJsb2dQb3N0VGFnKTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRQdWJsaWNQb3N0cyhcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkLFxuICAgICAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICAgICAgcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9nUG9zdFRhZz8udGFnX2NhdGVnb3J5X2lkXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZS5wb3N0cywgdGhpcy5ibG9nUG9zdFRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3N0cyA9IHJlc3BvbnNlLnBvc3RzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIocG9zdCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdC50YWdzPy5zb21lKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZyA9PiB0YWcudGFnX2NhdGVnb3J5X2lkID09PSB0aGlzLmJsb2dQb3N0VGFnPy50YWdfY2F0ZWdvcnlfaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuc29ydChcbiAgICAgICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKGIucHVibGlzaGVkX2F0KS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShhLnB1Ymxpc2hlZF9hdCkuZ2V0VGltZSgpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIDEyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFRlc3RpbW9uaWFsc1Bvc3RzKHBhZ2U6IG51bWJlciwgcGFnZVNpemU6IG51bWJlcikge1xuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmJsb2dUZXN0aW1vbmlhbHNQb3N0VGFnPy50YWdfY2F0ZWdvcnlfaWQsICdzb3AnKTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRQdWJsaWNQb3N0cyhcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkLFxuICAgICAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICAgICAgcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9nVGVzdGltb25pYWxzUG9zdFRhZz8udGFnX2NhdGVnb3J5X2lkXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZS5wb3N0cyk7XG4gICAgICAgICAgICAgICAgdGhpcy50ZXN0aW1vbmlhbHNQb3N0cyA9IHJlc3BvbnNlLnBvc3RzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIocG9zdCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdC50YWdzPy5zb21lKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZyA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcudGFnX2NhdGVnb3J5X2lkID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2dUZXN0aW1vbmlhbHNQb3N0VGFnPy50YWdfY2F0ZWdvcnlfaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuc29ydChcbiAgICAgICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKGIucHVibGlzaGVkX2F0KS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShhLnB1Ymxpc2hlZF9hdCkuZ2V0VGltZSgpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIDEyKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnRlc3RpbW9uaWFsc1Bvc3RzLCAnbmV3Jyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8cHctcmVzb3VyY2UtaGVhZGVyPjwvcHctcmVzb3VyY2UtaGVhZGVyPlxuXG48c2VjdGlvbiBjbGFzcz1cImJnLXdoaXRlIHByaWNpbmctc2VjdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwibmNlLWJhbm5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbGctcm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuXG4gICAgICA8IS0tIExlZnQgQ29udGVudCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5jZS1oZWFkaW5nXCI+XG4gICAgICAgICAgPGgxIGNsYXNzPVwibmNlLWhlYWRlciBtYi00XCI+XG4gICAgICAgICAgICBDYXNlIFN0dWRpZXNcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmx1ZS10ZXh0XCI+PC9zcGFuPlxuICAgICAgICAgIDwvaDE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQWRkIGRpcmVjdGx5IGJlbG93IC50ZXh0LWNvbnRlbnQsIHN0aWxsIGluc2lkZSAuY29udGFpbmVyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtZXh0ZW5zaW9uIG10LTRcIj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3RhLWJ1dHRvbnMgZC1mbGV4IGdhcC0zIGZsZXgtd3JhcCBtdC0zXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJpbnRyb1wiPlxuICAgICAgICAgICAgUmVhbCBNU1BzLiBSZWFsIHJlc3VsdHMuPGJyIC8+XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwiaW50cm9cIj5cbiAgICAgICAgICAgIFNlZSBob3cgSVQgYnVzaW5lc3NlcyBhcm91bmQgdGhlPGJyIC8+XG4gICAgICAgICAgICB3b3JsZCBhcmUgdXNpbmcgQ2xvdWRPbGl2ZSB0byBmaXggYmlsbGluZzxiciAvPlxuICAgICAgICAgICAgYm90dGxlbmVja3MsIHJlY2xhaW0gbG9zdCByZXZlbnVlLCBhbmQ8YnIgLz5cbiAgICAgICAgICAgIHVubG9jayBuZXcgbGV2ZWxzIG9mIHByb2ZpdGFiaWxpdHkuIE5vPGJyIC8+XG4gICAgICAgICAgICBmbHVmZiAtIGp1c3QgcHJvdmVuIG91dGNvbWVzLlxuICAgICAgICAgIDwvcD5cblxuICAgICAgICAgIDwhLS0gTmV3IGJ1dHRvbnMgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBtdC0zIGZsZXgtd3JhcCBtYi01IGN0YS10YWIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgPGEgaHJlZj1cInJlc291cmNlcy9jYXNlLXN0dWRpZXMjcmV2aWV3c1wiIGNsYXNzPVwiY3RhLWJ0biBmaWxsZWRcIj5KdW1wIHRvIFJldmlld3M8L2E+XG4gICAgICAgICAgICA8YSBocmVmPVwicmVzb3VyY2VzL2Nhc2Utc3R1ZGllcyNjYXNlLXN0dWRpZXNcIiBjbGFzcz1cImN0YS1idG4gZmlsbGVkXCI+SnVtcCB0byBDYXNlIFN0dWRpZXM8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBSaWdodCBDb250ZW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRlbnQgbXMtbGctNSBtdC01IG10LWxnLTBcIj5cbiAgICAgICAgPGltZyBjbGFzcz1cIm5jZS1tYXRoLWltZ1wiXG4gICAgICAgIHNyYz1cIi9hc3NldHMvaW1nL3Jlc291cmNlL21hdGgucG5nXCJcbiAgICAgICAgYWx0PVwiTkNFYXN5IGxhcHRvcCBzY3JlZW5cIiAvPlxuICAgICAgICA8aW1nIGNsYXNzPVwibmNlLWxhcHRvcC1pbWdcIlxuICAgICAgICAgIHNyYz1cIi9hc3NldHMvaW1nL3Jlc291cmNlL2Nhc2Utc3R1ZGllcy1tYW4ucG5nXCJcbiAgICAgICAgICBhbHQ9XCJOQ0Vhc3kgbGFwdG9wIHNjcmVlblwiIC8+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGhyIGNsYXNzPVwibmNlLWRpdmlkZXJcIiAvPlxuPC9zZWN0aW9uPlxuXG48cHctdGVzdGltb25pYWwtY2FyZCBbcG9zdHNdPVwidGVzdGltb25pYWxzUG9zdHNcIiBbcG9zdEhlYWRlcl09XCInVGVzdGltb25pYWxzJ1wiIGlkPVwicmV2aWV3c1wiPjwvcHctdGVzdGltb25pYWwtY2FyZD5cbjxwdy1jYXNlLXN0dWRpZXMtY2FyZCBpZD1cImNhc2Utc3R1ZGllc1wiPjwvcHctY2FzZS1zdHVkaWVzLWNhcmQ+XG5cbjxwdy10cmlhbC00LWNvbnRhY3QtdXM+PC9wdy10cmlhbC00LWNvbnRhY3QtdXM+XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@posiwise/directives";
5
+ export class ResourceCompanyCardComponent {
6
+ constructor() {
7
+ this.header = '';
8
+ this.data = [];
9
+ this.vendor = false;
10
+ this.filteredData = [];
11
+ this.first = 0;
12
+ this.rows = 12;
13
+ }
14
+ ngOnChanges() {
15
+ this.search();
16
+ }
17
+ search(keywords) {
18
+ console.log(this.data, keywords);
19
+ if (keywords) {
20
+ this.filteredData = this.data.filter(x => x.name.toLowerCase().includes(keywords.toLowerCase()));
21
+ }
22
+ else {
23
+ this.filteredData = [...this.data];
24
+ }
25
+ }
26
+ onPageChange(event) {
27
+ this.first = event.first;
28
+ this.rows = event.rows;
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceCompanyCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceCompanyCardComponent, selector: "pw-resource-company-card", inputs: { header: "header", data: "data", vendor: "vendor" }, usesOnChanges: true, ngImport: i0, 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 <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\" />\n </div>\n\n </div>\n\n <div class=\"row justify-content-around\">\n <div class=\"col-md-3 mt-4\"\n *ngFor=\"let img of filteredData | slice:this.first:this.first+this.rows\">\n <div class=\"boxes d-flex align-items-center justify-content-center\">\n <img [src]=\"img.companyImg\"\n alt=\"\"\n class=\"vebdor-icon\" />\n </div>\n </div>\n\n <div class=\"customPaginator d-flex align-items-center mt-5 justify-content-center\"\n [ngClass]=\"vendor ? 'my-5' : 'mt-5'\">\n <p-paginator (onPageChange)=\"onPageChange($event)\"\n [first]=\"first\"\n [rows]=\"rows\"\n [totalRecords]=\"filteredData.length-1\"></p-paginator>\n </div>\n </div>\n</div>\n", styles: ["input[type=text]{color:#000;border:3px solid #d4d4d4;padding:5px 30px;border-radius:29px}::placeholder{color:#d4d4d4}.vendors-distributor-wrapper{margin-top:5rem!important}.int-span{text-transform:uppercase;font-size:2.5rem;color:var(--first)}.boxes{border:2px dashed #d4d4d4;background-color:#fff;border-radius:16px;padding:20px 30px;height:10rem;flex-direction:column}.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}.vendor-icon{width:100%!important}@media (width <= 768px){.vendor-icon{width:50!important}.search-container{flex-wrap:wrap!important;gap:2rem}.int-span{font-size:1.75rem}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.LazyImgDirective, selector: "img" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceCompanyCardComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'pw-resource-company-card', 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 <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\" />\n </div>\n\n </div>\n\n <div class=\"row justify-content-around\">\n <div class=\"col-md-3 mt-4\"\n *ngFor=\"let img of filteredData | slice:this.first:this.first+this.rows\">\n <div class=\"boxes d-flex align-items-center justify-content-center\">\n <img [src]=\"img.companyImg\"\n alt=\"\"\n class=\"vebdor-icon\" />\n </div>\n </div>\n\n <div class=\"customPaginator d-flex align-items-center mt-5 justify-content-center\"\n [ngClass]=\"vendor ? 'my-5' : 'mt-5'\">\n <p-paginator (onPageChange)=\"onPageChange($event)\"\n [first]=\"first\"\n [rows]=\"rows\"\n [totalRecords]=\"filteredData.length-1\"></p-paginator>\n </div>\n </div>\n</div>\n", styles: ["input[type=text]{color:#000;border:3px solid #d4d4d4;padding:5px 30px;border-radius:29px}::placeholder{color:#d4d4d4}.vendors-distributor-wrapper{margin-top:5rem!important}.int-span{text-transform:uppercase;font-size:2.5rem;color:var(--first)}.boxes{border:2px dashed #d4d4d4;background-color:#fff;border-radius:16px;padding:20px 30px;height:10rem;flex-direction:column}.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}.vendor-icon{width:100%!important}@media (width <= 768px){.vendor-icon{width:50!important}.search-container{flex-wrap:wrap!important;gap:2rem}.int-span{font-size:1.75rem}}\n"] }]
36
+ }], propDecorators: { header: [{
37
+ type: Input
38
+ }], data: [{
39
+ type: Input
40
+ }], vendor: [{
41
+ type: Input
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtY29tcGFueS1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcmVzb3VyY2UtbW9kdWxlL3NyYy9saWIvcHVibGljL2NvbXBvbmVudHMvcmVzb3VyY2UtY29tcGFueS1jYXJkL3Jlc291cmNlLWNvbXBhbnktY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlLWNvbXBhbnktY2FyZC9yZXNvdXJjZS1jb21wYW55LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7Ozs7QUFhNUQsTUFBTSxPQUFPLDRCQUE0QjtJQUx6QztRQU1hLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsU0FBSSxHQUFHLEVBQUUsQ0FBQztLQWtCYjtJQWpCRyxXQUFXO1FBQ1AsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxNQUFNLENBQUMsUUFBUztRQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDeEQsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQzsrR0F2QlEsNEJBQTRCO21HQUE1Qiw0QkFBNEIsbUpDYnpDLHdzQ0FrQ0E7OzRGRHJCYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0ksMEJBQTBCOzhCQUszQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbnRlcmZhY2UgUGFnZUV2ZW50IHtcbiAgICBmaXJzdDogbnVtYmVyO1xuICAgIHJvd3M6IG51bWJlcjtcbiAgICBwYWdlOiBudW1iZXI7XG4gICAgcGFnZUNvdW50OiBudW1iZXI7XG59XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXJlc291cmNlLWNvbXBhbnktY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Jlc291cmNlLWNvbXBhbnktY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3Jlc291cmNlLWNvbXBhbnktY2FyZC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VDb21wYW55Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgaGVhZGVyID0gJyc7XG4gICAgQElucHV0KCkgZGF0YSA9IFtdO1xuICAgIEBJbnB1dCgpIHZlbmRvciA9IGZhbHNlO1xuICAgIGZpbHRlcmVkRGF0YSA9IFtdO1xuICAgIGZpcnN0ID0gMDtcbiAgICByb3dzID0gMTI7XG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoKCk7XG4gICAgfVxuICAgIHNlYXJjaChrZXl3b3Jkcz8pIHtcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5kYXRhLCBrZXl3b3Jkcyk7XG4gICAgICAgIGlmIChrZXl3b3Jkcykge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmRhdGEuZmlsdGVyKHggPT5cbiAgICAgICAgICAgICAgICB4Lm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhrZXl3b3Jkcy50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMuZGF0YV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25QYWdlQ2hhbmdlKGV2ZW50OiBQYWdlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5maXJzdCA9IGV2ZW50LmZpcnN0O1xuICAgICAgICB0aGlzLnJvd3MgPSBldmVudC5yb3dzO1xuICAgIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwieyAndmVuZG9ycy1kaXN0cmlidXRvci13cmFwcGVyJzogIXZlbmRvciB9XCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTMgc2VhcmNoLWNvbnRhaW5lclwiPlxuICAgIDxkaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cImludC1zcGFuXCI+e3toZWFkZXJ9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXdyYXBwZXIgcG9zaXRpb24tcmVsYXRpdmVcIj5cbiAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoIHNlYXJjaC1pY29uXCI+PC9pPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgKGtleXVwKT1cInNlYXJjaCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGVnIHNlY3VyaXR5XCJcbiAgICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIiAvPlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWFyb3VuZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBtdC00XCJcbiAgICAgICpuZ0Zvcj1cImxldCBpbWcgb2YgZmlsdGVyZWREYXRhIHwgc2xpY2U6dGhpcy5maXJzdDp0aGlzLmZpcnN0K3RoaXMucm93c1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImJveGVzIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiaW1nLmNvbXBhbnlJbWdcIlxuICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgY2xhc3M9XCJ2ZWJkb3ItaWNvblwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b21QYWdpbmF0b3IgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC01IGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgW25nQ2xhc3NdPVwidmVuZG9yID8gJ215LTUnIDogJ210LTUnXCI+XG4gICAgICA8cC1wYWdpbmF0b3IgKG9uUGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtmaXJzdF09XCJmaXJzdFwiXG4gICAgICAgIFtyb3dzXT1cInJvd3NcIlxuICAgICAgICBbdG90YWxSZWNvcmRzXT1cImZpbHRlcmVkRGF0YS5sZW5ndGgtMVwiPjwvcC1wYWdpbmF0b3I+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,52 @@
1
+ import { Component, Injector } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import { AppBaseComponent } from '@posiwise/app-base-component';
4
+ import { CompanyData } from '@posiwise/common-utilities';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/platform-browser";
7
+ import * as i2 from "@angular/common";
8
+ import * as i3 from "@posiwise/alpha-module";
9
+ import * as i4 from "@posiwise/shared-components";
10
+ import * as i5 from "@angular/router";
11
+ import * as i6 from "@posiwise/directives";
12
+ import * as i7 from "../reslease-note-card/release-note-card.component";
13
+ import * as i8 from "../resource-company-card/resource-company-card.component";
14
+ export class ResourceIntegrationComponent extends AppBaseComponent {
15
+ constructor(sanitizer, injector) {
16
+ super(injector);
17
+ this.sanitizer = sanitizer;
18
+ this.distributorsData = CompanyData?.distributorsData;
19
+ this.vendorsData = CompanyData?.vendorsData;
20
+ this.textColor = this.appConfig?.color_codes?.text;
21
+ this.releaseNotesLink = '/resources/product-release-notes';
22
+ this.q1NotesLink = '/resources/product-release-q1-2025';
23
+ this.q3NotesLink = '/resources/product-release-q3-2024';
24
+ this.q4NotesLink = '/resources/product-release-q4-2024';
25
+ this.videoWebinarLoaded = false;
26
+ this.videoDemoLoaded = false;
27
+ this.youtubeVideoId = 'R7Vk219zbhA';
28
+ this.videoTitle = 'CloudOlive Overview';
29
+ }
30
+ ngOnInit() {
31
+ document.documentElement.style.setProperty('--text-color', this.textColor);
32
+ }
33
+ loadMicrosoftVideo() {
34
+ const baseUrl = `https://www.youtube.com/embed/${this.youtubeVideoId}?autoplay=1`;
35
+ // baseUrl is a trusted internal source (e.g. YouTube embed URL)
36
+ this.sanitizedMicrosoftVideoUrl = this.sanitizer.bypassSecurityTrustResourceUrl(baseUrl); // NOSONAR
37
+ this.videoDemoLoaded = true;
38
+ }
39
+ loadKeseyaVideo() {
40
+ const baseUrl = `https://www.youtube.com/embed/${this.youtubeVideoId}?autoplay=1`;
41
+ // baseUrl is a trusted internal source (e.g. YouTube embed URL)
42
+ this.sanitizedKesyaVideoUrl = this.sanitizer.bypassSecurityTrustResourceUrl(baseUrl); // NOSONAR
43
+ this.videoWebinarLoaded = true;
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceIntegrationComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ResourceIntegrationComponent, selector: "pw-resource-integration", usesInheritance: true, ngImport: i0, template: "<pw-resource-header></pw-resource-header>\n\n<section class=\"bg-white section-integration\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-vendor-heading\">\n <h1 class=\"nce-header mb-4\">\n Map any vendor<br /> or distributor to your PSA.\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <div class=\"sub-text-extension mt-4\">\n <p class=\"intro\">\n CloudOlive is <span class=\"fw-bold\">100% vendor agnostic,</span><br />\n meaning there are NO limitations to<br />\n the connectivity it can provide between<br />\n how you buy and how you sell.<br />\n </p>\n <div class=\"cta-buttons d-flex gap-3 flex-wrap mt-3\">\n <a routerLink=\"/book-a-demo\"\n class=\"cta-btn filled\">Speak to sales ></a>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <img class=\"person-integration-img\"\n src=\"/assets/img/resource/integratebanner.png\"\n alt=\"NCEasy laptop screen\" />\n <img class=\"nce-integration-img\"\n src=\"/assets/img/resource/men.png\"\n alt=\"Smiling guy\" />\n </div>\n\n </div>\n </div>\n <div class=\"section-fadeout\"></div>\n</section>\n<div class=\"mobile-fadeout\"></div>\n<div class=\"bg-white\">\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <h1 class=\"int-title mb-0\">140+ integrations (& counting)</h1>\n <p class=\"int-text\"> Search the current list of CloudOlive\u2019s vendor and distributor integrations below. <br />\n </p>\n <pw-resource-company-card [header]=\"'integrated vendor'\"\n [data]=\"distributorsData\"></pw-resource-company-card>\n </div>\n <div class=\"integration-fadeout\"></div>\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <pw-resource-company-card [header]=\"'integrated vendor'\"\n [vendor]=\"true\"\n [data]=\"distributorsData\"></pw-resource-company-card>\n <div class=\"text-center pt-3\">\n <p class=\"see-span\"> Don\u2019t see what you\u2019re after? <a href=\"/book-a-demo\"\n class=\"int-span team-span\">Speak with our team to request a connection >\n </a>\n </p>\n </div>\n </div>\n <div class=\"integration-fadeout\"></div>\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <div class=\"how-it-works-wrapper\">\n <h1 class=\"it-works-title mb-0\">How it works</h1>\n <p class=\"pb-20\">View short example videos to understand how these integrations can work for your MSP:</p>\n <div class=\"row section-row\">\n <div class=\"col-md-6\">\n <div class=\"d-flex justify-content-center\">\n <img src=\"/assets/img/resource/how-it-works1.png\"\n *ngIf=\"!videoDemoLoaded\"\n (click)=\"loadMicrosoftVideo()\"\n class=\"how-it-works-img\"\n alt=\"\" />\n <iframe *ngIf=\"videoDemoLoaded\"\n class=\"embed-responsive-item\"\n [title]=\"videoTitle\"\n [src]=\"sanitizedMicrosoftVideoUrl\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen>\n </iframe>\n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"d-flex justify-content-center\">\n <img src=\"/assets/img/resource/how-it-works2.png\"\n *ngIf=\"!videoWebinarLoaded\"\n (click)=\"loadKeseyaVideo()\"\n class=\"how-it-works-img\"\n alt=\"\" />\n <iframe *ngIf=\"videoWebinarLoaded\"\n class=\"embed-responsive-item\"\n [title]=\"videoTitle\"\n [src]=\"sanitizedKesyaVideoUrl\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen>\n </iframe>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"integration-fadeout\"></div>\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <div class=\"row align-items-start\">\n <!-- Left Content -->\n <div class=\"col-md-6 text-md-start text-center\">\n <h1 class=\"guide-title mb-3\">A guide to implementing CloudOlive in your business</h1>\n <p class=\"guide-subtext\">\n View where CloudOlive sits in your internal technology stack and monthly workflows, and see how easy\n it is to get started.\n </p>\n <p class=\"guide-note mb-4\">View the quick guide now:</p>\n <button class=\"vault-btn\"\n onclick=\"window.open('https://hubspot.com', '_blank')\">View the guide</button>\n </div>\n\n <!-- Right Image -->\n <div class=\"col-md-6 text-center\">\n <img src=\"/assets/img/resource/guide.png\"\n alt=\"Guide\"\n class=\"img-fluid guide-img\" />\n </div>\n </div>\n </div>\n <div class=\"integration-fadeout\"></div>\n </section>\n</div>\n\n<pw-resource-note-card [releaseHeader]=\"true\"></pw-resource-note-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n", styles: [".int-span{font-size:3rem;color:#3d8fbe}.team-span{font-size:2rem;color:#3d8fbe;font-weight:100}.see-span{font-size:2rem;font-weight:100}.how-it-works-wrapper .it-works-title{font-size:3rem;margin-bottom:2rem;color:#000!important;font-weight:200!important;padding-bottom:12px!important}.how-it-works-wrapper .how-it-works-img{width:85%!important;margin:0 auto!important}.how-it-works-wrapper p{padding-top:1rem;font-size:2rem;color:#000;font-weight:100;margin-bottom:4rem}.guide-wrapper{padding:55px 47px 220px}.guide-wrapper .horizontal{position:absolute;left:0;bottom:24%;width:100%}.guide-wrapper .pb-20{padding-bottom:20px}.guide-wrapper .flex{display:flex}.guide-wrapper .guideimg{margin:0 auto}.guide-wrapper .guide-title{font: 500 28px Montserrat-Regular,sans-serif}.guide-wrapper p{font: 400 17px Montserrat-Regular,sans-serif;color:#182527}@media (width >= 768px){.cloudolive-guide-section .vault-btn{width:50%!important}.cloudolive-guide-section .container-section{padding:20px 190px 20px 120px!important}}@media (width <= 768px){.cloudolive-guide-section .container-section{padding:3rem!important}.cloudolive-guide-section .guide-title{font-size:3.25rem!important}.cloudolive-guide-section .vault-btn{width:90%!important;margin-bottom:3rem!important}.cloudolive-guide-section .guide-subtext{padding:2rem;line-height:2rem!important}}.cloudolive-guide-section .guide-title{font-size:3rem;font-weight:200}.cloudolive-guide-section .guide-subtext{font-size:1.7rem;line-height:3rem;color:#000!important;font-weight:200;margin-bottom:2rem}.cloudolive-guide-section .guide-note{font-size:1.7rem;color:#000;font-weight:100}.cloudolive-guide-section .vault-btn{background:var(--text-color, black);color:#fff;padding:18px 34px;border-radius:30px;font-weight:600;margin-top:1rem!important;font-size:1.7rem;cursor:pointer;transition:background .3s ease;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.cloudolive-guide-section .vault-btn:hover{background:#fff;color:var(--text-color, black)!important}.cloudolive-guide-section .guide-img{width:70%!important;height:auto;box-shadow:0 5px 20px #00000026}@media (width >= 768px){.release-notes-section .release-heading{font-size:3rem;font-weight:300}.release-notes-section .view-all-link{margin-right:4rem}.release-notes-section .container-section{padding:20px 120px 20px 80px!important}.release-notes-section .release-section{justify-content:space-between!important}}@media (width <= 768px){.release-notes-section .release-heading{font-size:2.5rem;font-weight:400}.release-notes-section .release-section{justify-content:center!important}.release-notes-section .view-all-link{margin-right:19rem}.release-notes-section .release-card{width:80%!important}}.release-notes-section .view-all-link{font-size:1.5rem;font-weight:700;margin-bottom:1.2rem;text-decoration:none;color:#000}.release-notes-section .q2-icon{margin-bottom:3.25rem!important}.release-notes-section .release-card{background:#fff;border-radius:30px;padding:30px;box-shadow:0 10px 30px #00000014;text-align:center;max-width:330px;margin:0 auto;transition:all .3s ease}.release-notes-section .release-card .release-header{margin-bottom:1.5rem}.release-notes-section .release-card .release-header .quarter{font-size:1.2rem;font-weight:700;margin-bottom:.3rem;color:#000}.release-notes-section .release-card .release-header .title{font-size:1.2rem;margin-top:.4rem;margin-bottom:.6rem;color:#000}.release-notes-section .release-card .release-header .desc{font-size:1.35rem;line-height:1.87rem;color:#000}.release-notes-section .release-card .release-icon{width:80px;height:auto;margin:0 auto 2rem;display:block}.release-notes-section .release-card .release-btn{background-color:#000;color:#fff;padding:10px 24px;border-radius:24px;border:none;font-size:1.1rem;font-weight:500;display:inline-flex;align-items:center;gap:10px;transition:background .3s ease;margin-top:10px}.release-notes-section .release-card .release-btn .arrow{font-weight:700;font-size:1.2rem}.release-notes-section .release-card .release-btn:hover{background-color:#000}.release-notes-section .row{--bs-gutter-x: 1rem}.sub-text-extension{max-width:560px}.sub-text-extension .intro{font-size:2rem;line-height:3rem;font-weight:100;color:#000;margin-bottom:1rem}.sub-text-extension .cta-buttons{margin-top:2rem!important}.sub-text-extension .cta-btn{display:inline-block;background:var(--text-color, black);color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.sub-text-extension .cta-btn:hover{background-color:#fff!important;color:var(--text-color, black)!important}.sub-text-extension .note{font-size:1.2rem;color:#000;margin-top:1rem;margin-left:3rem}.int-title{color:#000!important;font-size:4rem!important;font-weight:400}.int-text{font-size:1.3rem;font-weight:300}.trial-form-section{padding-bottom:8rem!important}.trial-form-section:before{top:20px;left:0}.trial-form-section:after{top:20px;right:-16px}.nce-banner{background-image:url(/assets/img/resource/resource2.png);background-position:center;background-repeat:no-repeat;color:#000}.nce-banner .text-content{max-width:500px;text-align:left;margin-bottom:75rem}.nce-banner .text-content h1{margin-bottom:1.5rem;line-height:1.2}.nce-banner .text-content .intro{font-size:1.2rem;margin:1rem 0;color:#000}.nce-banner .text-content .cta-btn{display:inline-block;background:#000;color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem}.nce-banner .text-content .cta-buttons{margin-top:2rem}.nce-banner .text-content .note{margin-top:1rem;margin-left:5.6rem;font-size:.9rem;color:#555}.nce-banner .nce-header{font-weight:500;color:#fff!important;font-size:4.5rem!important}.nce-banner .blue-text{font-weight:100}@media (width <= 991px){.nce-banner .text-content{margin-top:6.5rem;margin-bottom:0;text-align:center;max-width:360px}.nce-banner .text-content h1{margin-bottom:6.5rem!important}.nce-banner .nce-header{font-size:2.5rem!important}.nce-banner .cta-buttons{margin-top:5rem!important;justify-content:center!important}.nce-banner .text-extension{position:absolute;margin:3rem;margin-top:24rem!important}.nce-banner .note{margin-left:8rem!important}.nce-banner .image-content{position:relative;margin-bottom:3rem;height:230px}.nce-banner .image-content .floating-box{position:absolute;top:25px;left:3rem;transform:translate(-50%) rotate(-10deg);background:#fff;padding:.75rem 1rem;border-radius:20px;box-shadow:0 8px 30px #00000026;text-align:center;z-index:3;display:inline-block;width:auto}.nce-banner .image-content .floating-box img{width:24px;margin-bottom:.4rem}.nce-banner .image-content .floating-box .label{font-size:.75rem;color:#333;margin:0;line-height:1.2}.nce-banner .image-content .floating-box .count{font-size:1.2rem;font-weight:700;color:#000;margin-top:.25rem}.nce-banner .image-content .screen-img{max-width:280px;position:absolute;bottom:0;left:3rem;z-index:2;transform:rotate(-1deg);box-shadow:0 8px 15px #0003}.nce-banner .image-content .person-img{max-width:170px;width:100%;position:relative;z-index:3;left:13rem;top:-11.35rem}.nce-banner .image-content .nce-laptop-img{max-width:315px;width:100%;position:relative;z-index:3;left:1rem;top:19rem}}@media (width >= 991px){.nce-banner .text-content{position:absolute;width:760px}.nce-banner .text-extension{max-width:760px;position:absolute;margin-bottom:36rem!important}}.white-content{background:#fff;color:#000}.white-content .intro{font-size:1.2rem;color:#000}.white-content .note{font-size:.85rem;margin-top:1rem;color:#555}.text-extension{max-width:560px;margin-top:6rem!important}.text-extension .intro{font-size:2rem;line-height:3rem;font-weight:100;color:#000;margin-bottom:1rem}.text-extension .cta-buttons{margin-top:2rem!important}.text-extension .note{font-size:1.2rem;color:#000;margin-top:1rem;margin-left:3rem}@media (width >= 768px) and (width <= 1200px){.image-content{position:unset!important;height:634px!important}.image-content .person-integration-img{position:relative;width:320px;margin-bottom:0;bottom:5rem;left:58rem}.image-content .nce-integration-img{top:3rem;right:6rem;position:relative;width:800px!important}}@media (width >= 1200px){.image-content{position:unset!important;height:634px!important}.image-content .person-integration-img{width:500px;position:relative;min-width:420px;margin-bottom:0;bottom:1rem;left:63rem}.image-content .nce-integration-img{top:3rem;right:17rem;position:relative;width:950px!important}}@media (width <= 991px){.mobile-fadeout{height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa);margin-top:59rem!important;position:absolute}.sub-text-extension{position:absolute;margin-top:21rem!important;padding:3rem!important}.section-integration{height:850px!important}.vendor-container{padding-left:2rem!important;padding-right:2rem!important}.image-content .person-integration-img{max-width:200px;width:100%;position:relative;z-index:3;left:12rem;top:19.35rem}.image-content .nce-integration-img{max-width:315px;width:100%;position:relative;z-index:3;top:4.5rem}}@media (width >= 991px){.section-outer{padding-bottom:7rem!important}.text-content{margin-bottom:27rem!important}.nce-banner{padding-top:132px!important;padding-bottom:20px!important;overflow:hidden}.nce-banner:before{top:587px!important;left:0}.cloudolive-guide-section{position:relative}.cloudolive-guide-section .integration-fadeout{position:absolute;bottom:0;left:0;width:100%;height:80px;background:linear-gradient(to bottom,#fff0,#f8f9fa);pointer-events:none}.section-fadeout{height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.responsive-social-container{min-width:1580px!important}.nce-vendor-heading{width:1000px!important}.vendor-container{padding-left:19rem!important;max-height:600px}.sub-text-extension{max-width:760px;position:absolute;margin-top:20rem!important}}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width >= 786px) and (width <= 991px){.nce-banner{background-position:bottom!important}.nce-integration-img{bottom:12.3rem!important;top:unset!important}}@media (width >= 991px){.section-outer{padding-top:7rem!important}}@media (width >= 1200px){.image-content{margin-top:0;display:flex;align-items:flex-end;gap:1.5rem;height:0}.image-content .floating-box{position:absolute;top:25px;transform:translate(-50%) rotate(-10deg);background:#fff;padding:1rem;border-radius:20px;box-shadow:0 8px 30px #00000026;text-align:center;width:170px;z-index:3}.image-content .floating-box img{width:30px;margin-bottom:.5rem}.image-content .floating-box .label{font-size:.85rem;color:#333;margin:0}.image-content .floating-box .count{font-size:1.5rem;font-weight:700;color:#000;margin:.25rem 0 0}.image-content .screen-img{width:100%;position:absolute;bottom:5rem;left:3rem;z-index:2;transform:rotate(-1deg);box-shadow:0 8px 15px #0003;max-width:400px;margin-bottom:4rem}.image-content .person-img{max-width:800px;width:100%;position:relative;z-index:3;min-width:420px;margin-bottom:0;bottom:7rem;left:4rem}.image-content .nce-laptop-img{bottom:5rem;left:40rem;position:relative;width:850px!important}}@media (width >= 786px) and (width <= 1200px){.image-content{margin-top:0;display:flex;align-items:flex-end;gap:1.5rem;height:0}.image-content .nce-laptop-img{bottom:5rem;left:31rem;position:relative;width:850px!important}}@media (width >= 991px){.nce-banner{padding-top:768px;padding-bottom:20px;overflow:hidden}.nce-banner:before,.nce-banner:after{content:\"\";position:absolute;background:url(/assets/img/logos/background-banner.png) no-repeat;background-size:contain;width:160px;height:450px;z-index:0;opacity:.8}.nce-banner:before{top:530px;left:0}.nce-banner:after{top:90px;right:0}.section-fadeout{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0;position:absolute;top:58rem!important}.nce-heading{width:700px!important}::ng-deep .vault-section{max-width:1580px!important;padding-left:48px!important;padding-top:130px!important}::ng-deep .vault-card{width:330px!important;height:370px!important}::ng-deep .vault-btn{width:224px!important}}@media (width <= 991px){.mobile-fadeout{height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa);margin-top:60rem!important;position:absolute}.pricing-section{height:890px!important}.billing-section{flex-direction:column!important;gap:3rem}.billing-section .billing-section1,.billing-section .billing-section2{width:90%!important}.billing-section .billing-section1{margin-left:1.5rem;margin-top:4rem}.nce-banner{background-image:url(/assets/img/resource/resource2.png)}}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}.outer-section-fadeout{top:62rem!important}}@media (width >= 768px){iframe{width:85%!important;height:375px!important}}@media (width <= 768px){.how-it-works-wrapper{padding:20px 40px}p{font-size:1.7rem!important;line-height:1.7rem!important}.section-row{gap:3rem!important}iframe{width:100%!important}}\n", "::ng-deep .navbar-nav .nav-item .nav-link{color:#fff!important}.bold{font-weight:700}.nce-heading{margin-bottom:2rem}.nce-note{margin-top:1rem;font-size:.85rem;color:#555}.nce-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.Trial4ContactUsComponent, selector: "pw-trial-4-contact-us", inputs: ["subscriptionId", "sourceId", "masterSubscriptionId", "experimentName", "microserviceName"] }, { kind: "component", type: i4.ResourceHeaderComponent, selector: "pw-resource-header" }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.LazyImgDirective, selector: "img" }, { kind: "component", type: i7.ResourceNoteCardComponent, selector: "pw-resource-note-card", inputs: ["posts", "releaseHeader"] }, { kind: "component", type: i8.ResourceCompanyCardComponent, selector: "pw-resource-company-card", inputs: ["header", "data", "vendor"] }] }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceIntegrationComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'pw-resource-integration', template: "<pw-resource-header></pw-resource-header>\n\n<section class=\"bg-white section-integration\">\n <div class=\"nce-banner\">\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\">\n\n <!-- Left Content -->\n <div class=\"text-content\">\n <div class=\"nce-vendor-heading\">\n <h1 class=\"nce-header mb-4\">\n Map any vendor<br /> or distributor to your PSA.\n <span class=\"blue-text\"></span>\n </h1>\n </div>\n </div>\n\n <div class=\"sub-text-extension mt-4\">\n <p class=\"intro\">\n CloudOlive is <span class=\"fw-bold\">100% vendor agnostic,</span><br />\n meaning there are NO limitations to<br />\n the connectivity it can provide between<br />\n how you buy and how you sell.<br />\n </p>\n <div class=\"cta-buttons d-flex gap-3 flex-wrap mt-3\">\n <a routerLink=\"/book-a-demo\"\n class=\"cta-btn filled\">Speak to sales ></a>\n </div>\n </div>\n\n <!-- Right Content -->\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <img class=\"person-integration-img\"\n src=\"/assets/img/resource/integratebanner.png\"\n alt=\"NCEasy laptop screen\" />\n <img class=\"nce-integration-img\"\n src=\"/assets/img/resource/men.png\"\n alt=\"Smiling guy\" />\n </div>\n\n </div>\n </div>\n <div class=\"section-fadeout\"></div>\n</section>\n<div class=\"mobile-fadeout\"></div>\n<div class=\"bg-white\">\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <h1 class=\"int-title mb-0\">140+ integrations (& counting)</h1>\n <p class=\"int-text\"> Search the current list of CloudOlive\u2019s vendor and distributor integrations below. <br />\n </p>\n <pw-resource-company-card [header]=\"'integrated vendor'\"\n [data]=\"distributorsData\"></pw-resource-company-card>\n </div>\n <div class=\"integration-fadeout\"></div>\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <pw-resource-company-card [header]=\"'integrated vendor'\"\n [vendor]=\"true\"\n [data]=\"distributorsData\"></pw-resource-company-card>\n <div class=\"text-center pt-3\">\n <p class=\"see-span\"> Don\u2019t see what you\u2019re after? <a href=\"/book-a-demo\"\n class=\"int-span team-span\">Speak with our team to request a connection >\n </a>\n </p>\n </div>\n </div>\n <div class=\"integration-fadeout\"></div>\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <div class=\"how-it-works-wrapper\">\n <h1 class=\"it-works-title mb-0\">How it works</h1>\n <p class=\"pb-20\">View short example videos to understand how these integrations can work for your MSP:</p>\n <div class=\"row section-row\">\n <div class=\"col-md-6\">\n <div class=\"d-flex justify-content-center\">\n <img src=\"/assets/img/resource/how-it-works1.png\"\n *ngIf=\"!videoDemoLoaded\"\n (click)=\"loadMicrosoftVideo()\"\n class=\"how-it-works-img\"\n alt=\"\" />\n <iframe *ngIf=\"videoDemoLoaded\"\n class=\"embed-responsive-item\"\n [title]=\"videoTitle\"\n [src]=\"sanitizedMicrosoftVideoUrl\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen>\n </iframe>\n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"d-flex justify-content-center\">\n <img src=\"/assets/img/resource/how-it-works2.png\"\n *ngIf=\"!videoWebinarLoaded\"\n (click)=\"loadKeseyaVideo()\"\n class=\"how-it-works-img\"\n alt=\"\" />\n <iframe *ngIf=\"videoWebinarLoaded\"\n class=\"embed-responsive-item\"\n [title]=\"videoTitle\"\n [src]=\"sanitizedKesyaVideoUrl\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen>\n </iframe>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"integration-fadeout\"></div>\n </section>\n <section class=\"cloudolive-guide-section bg-white py-5 section-outer\">\n <div class=\"container\">\n <div class=\"row align-items-start\">\n <!-- Left Content -->\n <div class=\"col-md-6 text-md-start text-center\">\n <h1 class=\"guide-title mb-3\">A guide to implementing CloudOlive in your business</h1>\n <p class=\"guide-subtext\">\n View where CloudOlive sits in your internal technology stack and monthly workflows, and see how easy\n it is to get started.\n </p>\n <p class=\"guide-note mb-4\">View the quick guide now:</p>\n <button class=\"vault-btn\"\n onclick=\"window.open('https://hubspot.com', '_blank')\">View the guide</button>\n </div>\n\n <!-- Right Image -->\n <div class=\"col-md-6 text-center\">\n <img src=\"/assets/img/resource/guide.png\"\n alt=\"Guide\"\n class=\"img-fluid guide-img\" />\n </div>\n </div>\n </div>\n <div class=\"integration-fadeout\"></div>\n </section>\n</div>\n\n<pw-resource-note-card [releaseHeader]=\"true\"></pw-resource-note-card>\n\n<pw-trial-4-contact-us></pw-trial-4-contact-us>\n", styles: [".int-span{font-size:3rem;color:#3d8fbe}.team-span{font-size:2rem;color:#3d8fbe;font-weight:100}.see-span{font-size:2rem;font-weight:100}.how-it-works-wrapper .it-works-title{font-size:3rem;margin-bottom:2rem;color:#000!important;font-weight:200!important;padding-bottom:12px!important}.how-it-works-wrapper .how-it-works-img{width:85%!important;margin:0 auto!important}.how-it-works-wrapper p{padding-top:1rem;font-size:2rem;color:#000;font-weight:100;margin-bottom:4rem}.guide-wrapper{padding:55px 47px 220px}.guide-wrapper .horizontal{position:absolute;left:0;bottom:24%;width:100%}.guide-wrapper .pb-20{padding-bottom:20px}.guide-wrapper .flex{display:flex}.guide-wrapper .guideimg{margin:0 auto}.guide-wrapper .guide-title{font: 500 28px Montserrat-Regular,sans-serif}.guide-wrapper p{font: 400 17px Montserrat-Regular,sans-serif;color:#182527}@media (width >= 768px){.cloudolive-guide-section .vault-btn{width:50%!important}.cloudolive-guide-section .container-section{padding:20px 190px 20px 120px!important}}@media (width <= 768px){.cloudolive-guide-section .container-section{padding:3rem!important}.cloudolive-guide-section .guide-title{font-size:3.25rem!important}.cloudolive-guide-section .vault-btn{width:90%!important;margin-bottom:3rem!important}.cloudolive-guide-section .guide-subtext{padding:2rem;line-height:2rem!important}}.cloudolive-guide-section .guide-title{font-size:3rem;font-weight:200}.cloudolive-guide-section .guide-subtext{font-size:1.7rem;line-height:3rem;color:#000!important;font-weight:200;margin-bottom:2rem}.cloudolive-guide-section .guide-note{font-size:1.7rem;color:#000;font-weight:100}.cloudolive-guide-section .vault-btn{background:var(--text-color, black);color:#fff;padding:18px 34px;border-radius:30px;font-weight:600;margin-top:1rem!important;font-size:1.7rem;cursor:pointer;transition:background .3s ease;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.cloudolive-guide-section .vault-btn:hover{background:#fff;color:var(--text-color, black)!important}.cloudolive-guide-section .guide-img{width:70%!important;height:auto;box-shadow:0 5px 20px #00000026}@media (width >= 768px){.release-notes-section .release-heading{font-size:3rem;font-weight:300}.release-notes-section .view-all-link{margin-right:4rem}.release-notes-section .container-section{padding:20px 120px 20px 80px!important}.release-notes-section .release-section{justify-content:space-between!important}}@media (width <= 768px){.release-notes-section .release-heading{font-size:2.5rem;font-weight:400}.release-notes-section .release-section{justify-content:center!important}.release-notes-section .view-all-link{margin-right:19rem}.release-notes-section .release-card{width:80%!important}}.release-notes-section .view-all-link{font-size:1.5rem;font-weight:700;margin-bottom:1.2rem;text-decoration:none;color:#000}.release-notes-section .q2-icon{margin-bottom:3.25rem!important}.release-notes-section .release-card{background:#fff;border-radius:30px;padding:30px;box-shadow:0 10px 30px #00000014;text-align:center;max-width:330px;margin:0 auto;transition:all .3s ease}.release-notes-section .release-card .release-header{margin-bottom:1.5rem}.release-notes-section .release-card .release-header .quarter{font-size:1.2rem;font-weight:700;margin-bottom:.3rem;color:#000}.release-notes-section .release-card .release-header .title{font-size:1.2rem;margin-top:.4rem;margin-bottom:.6rem;color:#000}.release-notes-section .release-card .release-header .desc{font-size:1.35rem;line-height:1.87rem;color:#000}.release-notes-section .release-card .release-icon{width:80px;height:auto;margin:0 auto 2rem;display:block}.release-notes-section .release-card .release-btn{background-color:#000;color:#fff;padding:10px 24px;border-radius:24px;border:none;font-size:1.1rem;font-weight:500;display:inline-flex;align-items:center;gap:10px;transition:background .3s ease;margin-top:10px}.release-notes-section .release-card .release-btn .arrow{font-weight:700;font-size:1.2rem}.release-notes-section .release-card .release-btn:hover{background-color:#000}.release-notes-section .row{--bs-gutter-x: 1rem}.sub-text-extension{max-width:560px}.sub-text-extension .intro{font-size:2rem;line-height:3rem;font-weight:100;color:#000;margin-bottom:1rem}.sub-text-extension .cta-buttons{margin-top:2rem!important}.sub-text-extension .cta-btn{display:inline-block;background:var(--text-color, black);color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem;border:1px solid;box-shadow:none!important;border-color:var(--text-color, textColor)}.sub-text-extension .cta-btn:hover{background-color:#fff!important;color:var(--text-color, black)!important}.sub-text-extension .note{font-size:1.2rem;color:#000;margin-top:1rem;margin-left:3rem}.int-title{color:#000!important;font-size:4rem!important;font-weight:400}.int-text{font-size:1.3rem;font-weight:300}.trial-form-section{padding-bottom:8rem!important}.trial-form-section:before{top:20px;left:0}.trial-form-section:after{top:20px;right:-16px}.nce-banner{background-image:url(/assets/img/resource/resource2.png);background-position:center;background-repeat:no-repeat;color:#000}.nce-banner .text-content{max-width:500px;text-align:left;margin-bottom:75rem}.nce-banner .text-content h1{margin-bottom:1.5rem;line-height:1.2}.nce-banner .text-content .intro{font-size:1.2rem;margin:1rem 0;color:#000}.nce-banner .text-content .cta-btn{display:inline-block;background:#000;color:#fff;padding:1rem 2rem;border-radius:40px;font-weight:500;text-decoration:none;font-size:1.4rem}.nce-banner .text-content .cta-buttons{margin-top:2rem}.nce-banner .text-content .note{margin-top:1rem;margin-left:5.6rem;font-size:.9rem;color:#555}.nce-banner .nce-header{font-weight:500;color:#fff!important;font-size:4.5rem!important}.nce-banner .blue-text{font-weight:100}@media (width <= 991px){.nce-banner .text-content{margin-top:6.5rem;margin-bottom:0;text-align:center;max-width:360px}.nce-banner .text-content h1{margin-bottom:6.5rem!important}.nce-banner .nce-header{font-size:2.5rem!important}.nce-banner .cta-buttons{margin-top:5rem!important;justify-content:center!important}.nce-banner .text-extension{position:absolute;margin:3rem;margin-top:24rem!important}.nce-banner .note{margin-left:8rem!important}.nce-banner .image-content{position:relative;margin-bottom:3rem;height:230px}.nce-banner .image-content .floating-box{position:absolute;top:25px;left:3rem;transform:translate(-50%) rotate(-10deg);background:#fff;padding:.75rem 1rem;border-radius:20px;box-shadow:0 8px 30px #00000026;text-align:center;z-index:3;display:inline-block;width:auto}.nce-banner .image-content .floating-box img{width:24px;margin-bottom:.4rem}.nce-banner .image-content .floating-box .label{font-size:.75rem;color:#333;margin:0;line-height:1.2}.nce-banner .image-content .floating-box .count{font-size:1.2rem;font-weight:700;color:#000;margin-top:.25rem}.nce-banner .image-content .screen-img{max-width:280px;position:absolute;bottom:0;left:3rem;z-index:2;transform:rotate(-1deg);box-shadow:0 8px 15px #0003}.nce-banner .image-content .person-img{max-width:170px;width:100%;position:relative;z-index:3;left:13rem;top:-11.35rem}.nce-banner .image-content .nce-laptop-img{max-width:315px;width:100%;position:relative;z-index:3;left:1rem;top:19rem}}@media (width >= 991px){.nce-banner .text-content{position:absolute;width:760px}.nce-banner .text-extension{max-width:760px;position:absolute;margin-bottom:36rem!important}}.white-content{background:#fff;color:#000}.white-content .intro{font-size:1.2rem;color:#000}.white-content .note{font-size:.85rem;margin-top:1rem;color:#555}.text-extension{max-width:560px;margin-top:6rem!important}.text-extension .intro{font-size:2rem;line-height:3rem;font-weight:100;color:#000;margin-bottom:1rem}.text-extension .cta-buttons{margin-top:2rem!important}.text-extension .note{font-size:1.2rem;color:#000;margin-top:1rem;margin-left:3rem}@media (width >= 768px) and (width <= 1200px){.image-content{position:unset!important;height:634px!important}.image-content .person-integration-img{position:relative;width:320px;margin-bottom:0;bottom:5rem;left:58rem}.image-content .nce-integration-img{top:3rem;right:6rem;position:relative;width:800px!important}}@media (width >= 1200px){.image-content{position:unset!important;height:634px!important}.image-content .person-integration-img{width:500px;position:relative;min-width:420px;margin-bottom:0;bottom:1rem;left:63rem}.image-content .nce-integration-img{top:3rem;right:17rem;position:relative;width:950px!important}}@media (width <= 991px){.mobile-fadeout{height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa);margin-top:59rem!important;position:absolute}.sub-text-extension{position:absolute;margin-top:21rem!important;padding:3rem!important}.section-integration{height:850px!important}.vendor-container{padding-left:2rem!important;padding-right:2rem!important}.image-content .person-integration-img{max-width:200px;width:100%;position:relative;z-index:3;left:12rem;top:19.35rem}.image-content .nce-integration-img{max-width:315px;width:100%;position:relative;z-index:3;top:4.5rem}}@media (width >= 991px){.section-outer{padding-bottom:7rem!important}.text-content{margin-bottom:27rem!important}.nce-banner{padding-top:132px!important;padding-bottom:20px!important;overflow:hidden}.nce-banner:before{top:587px!important;left:0}.cloudolive-guide-section{position:relative}.cloudolive-guide-section .integration-fadeout{position:absolute;bottom:0;left:0;width:100%;height:80px;background:linear-gradient(to bottom,#fff0,#f8f9fa);pointer-events:none}.section-fadeout{height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa)}.responsive-social-container{min-width:1580px!important}.nce-vendor-heading{width:1000px!important}.vendor-container{padding-left:19rem!important;max-height:600px}.sub-text-extension{max-width:760px;position:absolute;margin-top:20rem!important}}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}}@media (width >= 786px) and (width <= 991px){.nce-banner{background-position:bottom!important}.nce-integration-img{bottom:12.3rem!important;top:unset!important}}@media (width >= 991px){.section-outer{padding-top:7rem!important}}@media (width >= 1200px){.image-content{margin-top:0;display:flex;align-items:flex-end;gap:1.5rem;height:0}.image-content .floating-box{position:absolute;top:25px;transform:translate(-50%) rotate(-10deg);background:#fff;padding:1rem;border-radius:20px;box-shadow:0 8px 30px #00000026;text-align:center;width:170px;z-index:3}.image-content .floating-box img{width:30px;margin-bottom:.5rem}.image-content .floating-box .label{font-size:.85rem;color:#333;margin:0}.image-content .floating-box .count{font-size:1.5rem;font-weight:700;color:#000;margin:.25rem 0 0}.image-content .screen-img{width:100%;position:absolute;bottom:5rem;left:3rem;z-index:2;transform:rotate(-1deg);box-shadow:0 8px 15px #0003;max-width:400px;margin-bottom:4rem}.image-content .person-img{max-width:800px;width:100%;position:relative;z-index:3;min-width:420px;margin-bottom:0;bottom:7rem;left:4rem}.image-content .nce-laptop-img{bottom:5rem;left:40rem;position:relative;width:850px!important}}@media (width >= 786px) and (width <= 1200px){.image-content{margin-top:0;display:flex;align-items:flex-end;gap:1.5rem;height:0}.image-content .nce-laptop-img{bottom:5rem;left:31rem;position:relative;width:850px!important}}@media (width >= 991px){.nce-banner{padding-top:768px;padding-bottom:20px;overflow:hidden}.nce-banner:before,.nce-banner:after{content:\"\";position:absolute;background:url(/assets/img/logos/background-banner.png) no-repeat;background-size:contain;width:160px;height:450px;z-index:0;opacity:.8}.nce-banner:before{top:530px;left:0}.nce-banner:after{top:90px;right:0}.section-fadeout{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0;position:absolute;top:58rem!important}.nce-heading{width:700px!important}::ng-deep .vault-section{max-width:1580px!important;padding-left:48px!important;padding-top:130px!important}::ng-deep .vault-card{width:330px!important;height:370px!important}::ng-deep .vault-btn{width:224px!important}}@media (width <= 991px){.mobile-fadeout{height:40px;width:100%;background:linear-gradient(to bottom,#fff0,#f8f9fa);margin-top:60rem!important;position:absolute}.pricing-section{height:890px!important}.billing-section{flex-direction:column!important;gap:3rem}.billing-section .billing-section1,.billing-section .billing-section2{width:90%!important}.billing-section .billing-section1{margin-left:1.5rem;margin-top:4rem}.nce-banner{background-image:url(/assets/img/resource/resource2.png)}}@media (width >= 768px) and (width <= 1200px){.container{padding:0 6rem!important}.outer-section-fadeout{top:62rem!important}}@media (width >= 768px){iframe{width:85%!important;height:375px!important}}@media (width <= 768px){.how-it-works-wrapper{padding:20px 40px}p{font-size:1.7rem!important;line-height:1.7rem!important}.section-row{gap:3rem!important}iframe{width:100%!important}}\n", "::ng-deep .navbar-nav .nav-item .nav-link{color:#fff!important}.bold{font-weight:700}.nce-heading{margin-bottom:2rem}.nce-note{margin-top:1rem;font-size:.85rem;color:#555}.nce-divider{border:0;height:40px;width:100%;background:linear-gradient(to bottom,#0000,#00000026);margin:0}\n"] }]
51
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i0.Injector }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtaW50ZWdyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1tb2R1bGUvc3JjL2xpYi9wdWJsaWMvY29tcG9uZW50cy9yZXNvdXJjZS1pbnRlZ3JhdGlvbi9yZXNvdXJjZS1pbnRlZ3JhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlLWludGVncmF0aW9uL3Jlc291cmNlLWludGVncmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sMkJBQTJCLENBQUM7QUFFMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7O0FBVXpELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxnQkFBZ0I7SUFrQjlELFlBQ3FCLFNBQXVCLEVBQ3hDLFFBQWtCO1FBRWxCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUhDLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFsQjVDLHFCQUFnQixHQUFHLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQztRQUNqRCxnQkFBVyxHQUFHLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFFdkMsY0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQztRQUU5QyxxQkFBZ0IsR0FBRyxrQ0FBa0MsQ0FBQztRQUN0RCxnQkFBVyxHQUFHLG9DQUFvQyxDQUFDO1FBQ25ELGdCQUFXLEdBQUcsb0NBQW9DLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxvQ0FBb0MsQ0FBQztRQUVuRCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDM0Isb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsbUJBQWMsR0FBRyxhQUFhLENBQUM7UUFDL0IsZUFBVSxHQUFHLHFCQUFxQixDQUFDO0lBU25DLENBQUM7SUFFRCxRQUFRO1FBQ0osUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELGtCQUFrQjtRQUNkLE1BQU0sT0FBTyxHQUFHLGlDQUFpQyxJQUFJLENBQUMsY0FBYyxhQUFhLENBQUM7UUFDbEYsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUNwRyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQsZUFBZTtRQUNYLE1BQU0sT0FBTyxHQUFHLGlDQUFpQyxJQUFJLENBQUMsY0FBYyxhQUFhLENBQUM7UUFDbEYsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUNoRyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7K0dBekNRLDRCQUE0QjttR0FBNUIsNEJBQTRCLHNGQ2R6QywydUxBOElBOzs0RkRoSWEsNEJBQTRCO2tCQVJ4QyxTQUFTOytCQUNJLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcGFueURhdGEgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctcmVzb3VyY2UtaW50ZWdyYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXNvdXJjZS1pbnRlZ3JhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbXG4gICAgICAgICcuL3Jlc291cmNlLWludGVncmF0aW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgICAgICAgJy4uL3Jlc291cmNlcy9yZXNvdXJjZXMtc2hhcmVkLmNvbXBvbmVudC5zY3NzJ1xuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VJbnRlZ3JhdGlvbkNvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGRpc3RyaWJ1dG9yc0RhdGEgPSBDb21wYW55RGF0YT8uZGlzdHJpYnV0b3JzRGF0YTtcbiAgICB2ZW5kb3JzRGF0YSA9IENvbXBhbnlEYXRhPy52ZW5kb3JzRGF0YTtcblxuICAgIHRleHRDb2xvciA9IHRoaXMuYXBwQ29uZmlnPy5jb2xvcl9jb2Rlcz8udGV4dDtcblxuICAgIHJlbGVhc2VOb3Rlc0xpbmsgPSAnL3Jlc291cmNlcy9wcm9kdWN0LXJlbGVhc2Utbm90ZXMnO1xuICAgIHExTm90ZXNMaW5rID0gJy9yZXNvdXJjZXMvcHJvZHVjdC1yZWxlYXNlLXExLTIwMjUnO1xuICAgIHEzTm90ZXNMaW5rID0gJy9yZXNvdXJjZXMvcHJvZHVjdC1yZWxlYXNlLXEzLTIwMjQnO1xuICAgIHE0Tm90ZXNMaW5rID0gJy9yZXNvdXJjZXMvcHJvZHVjdC1yZWxlYXNlLXE0LTIwMjQnO1xuXG4gICAgdmlkZW9XZWJpbmFyTG9hZGVkID0gZmFsc2U7XG4gICAgdmlkZW9EZW1vTG9hZGVkID0gZmFsc2U7XG4gICAgeW91dHViZVZpZGVvSWQgPSAnUjdWazIxOXpiaEEnO1xuICAgIHZpZGVvVGl0bGUgPSAnQ2xvdWRPbGl2ZSBPdmVydmlldyc7XG4gICAgc2FuaXRpemVkTWljcm9zb2Z0VmlkZW9Vcmw6IFNhZmVSZXNvdXJjZVVybDtcbiAgICBzYW5pdGl6ZWRLZXN5YVZpZGVvVXJsOiBTYWZlUmVzb3VyY2VVcmw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXRleHQtY29sb3InLCB0aGlzLnRleHRDb2xvcik7XG4gICAgfVxuXG4gICAgbG9hZE1pY3Jvc29mdFZpZGVvKCkge1xuICAgICAgICBjb25zdCBiYXNlVXJsID0gYGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7dGhpcy55b3V0dWJlVmlkZW9JZH0/YXV0b3BsYXk9MWA7XG4gICAgICAgIC8vIGJhc2VVcmwgaXMgYSB0cnVzdGVkIGludGVybmFsIHNvdXJjZSAoZS5nLiBZb3VUdWJlIGVtYmVkIFVSTClcbiAgICAgICAgdGhpcy5zYW5pdGl6ZWRNaWNyb3NvZnRWaWRlb1VybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChiYXNlVXJsKTsgLy8gTk9TT05BUlxuICAgICAgICB0aGlzLnZpZGVvRGVtb0xvYWRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgbG9hZEtlc2V5YVZpZGVvKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXNlVXJsID0gYGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7dGhpcy55b3V0dWJlVmlkZW9JZH0/YXV0b3BsYXk9MWA7XG4gICAgICAgIC8vIGJhc2VVcmwgaXMgYSB0cnVzdGVkIGludGVybmFsIHNvdXJjZSAoZS5nLiBZb3VUdWJlIGVtYmVkIFVSTClcbiAgICAgICAgdGhpcy5zYW5pdGl6ZWRLZXN5YVZpZGVvVXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGJhc2VVcmwpOyAvLyBOT1NPTkFSXG4gICAgICAgIHRoaXMudmlkZW9XZWJpbmFyTG9hZGVkID0gdHJ1ZTtcbiAgICB9XG59XG4iLCI8cHctcmVzb3VyY2UtaGVhZGVyPjwvcHctcmVzb3VyY2UtaGVhZGVyPlxuXG48c2VjdGlvbiBjbGFzcz1cImJnLXdoaXRlIHNlY3Rpb24taW50ZWdyYXRpb25cIj5cbiAgPGRpdiBjbGFzcz1cIm5jZS1iYW5uZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWxnLXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cblxuICAgICAgPCEtLSBMZWZ0IENvbnRlbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuY2UtdmVuZG9yLWhlYWRpbmdcIj5cbiAgICAgICAgICA8aDEgY2xhc3M9XCJuY2UtaGVhZGVyIG1iLTRcIj5cbiAgICAgICAgICAgIE1hcCBhbnkgdmVuZG9yPGJyIC8+IG9yIGRpc3RyaWJ1dG9yIHRvIHlvdXIgUFNBLlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJibHVlLXRleHRcIj48L3NwYW4+XG4gICAgICAgICAgPC9oMT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0LWV4dGVuc2lvbiBtdC00XCI+XG4gICAgICAgIDxwIGNsYXNzPVwiaW50cm9cIj5cbiAgICAgICAgICBDbG91ZE9saXZlIGlzIDxzcGFuIGNsYXNzPVwiZnctYm9sZFwiPjEwMCUgdmVuZG9yIGFnbm9zdGljLDwvc3Bhbj48YnIgLz5cbiAgICAgICAgICBtZWFuaW5nIHRoZXJlIGFyZSBOTyBsaW1pdGF0aW9ucyB0bzxiciAvPlxuICAgICAgICAgIHRoZSBjb25uZWN0aXZpdHkgaXQgY2FuIHByb3ZpZGUgYmV0d2VlbjxiciAvPlxuICAgICAgICAgIGhvdyB5b3UgYnV5IGFuZCBob3cgeW91IHNlbGwuPGJyIC8+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImN0YS1idXR0b25zIGQtZmxleCBnYXAtMyBmbGV4LXdyYXAgbXQtM1wiPlxuICAgICAgICAgIDxhIHJvdXRlckxpbms9XCIvYm9vay1hLWRlbW9cIlxuICAgICAgICAgICAgY2xhc3M9XCJjdGEtYnRuIGZpbGxlZFwiPlNwZWFrIHRvIHNhbGVzID48L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gUmlnaHQgQ29udGVudCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1jb250ZW50IG1zLWxnLTUgbXQtNSBtdC1sZy0wXCI+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJwZXJzb24taW50ZWdyYXRpb24taW1nXCJcbiAgICAgICAgICBzcmM9XCIvYXNzZXRzL2ltZy9yZXNvdXJjZS9pbnRlZ3JhdGViYW5uZXIucG5nXCJcbiAgICAgICAgICBhbHQ9XCJOQ0Vhc3kgbGFwdG9wIHNjcmVlblwiIC8+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJuY2UtaW50ZWdyYXRpb24taW1nXCJcbiAgICAgICAgICBzcmM9XCIvYXNzZXRzL2ltZy9yZXNvdXJjZS9tZW4ucG5nXCJcbiAgICAgICAgICBhbHQ9XCJTbWlsaW5nIGd1eVwiIC8+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNlY3Rpb24tZmFkZW91dFwiPjwvZGl2PlxuPC9zZWN0aW9uPlxuPGRpdiBjbGFzcz1cIm1vYmlsZS1mYWRlb3V0XCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiYmctd2hpdGVcIj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJjbG91ZG9saXZlLWd1aWRlLXNlY3Rpb24gYmctd2hpdGUgcHktNSBzZWN0aW9uLW91dGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGgxIGNsYXNzPVwiaW50LXRpdGxlIG1iLTBcIj4xNDArIGludGVncmF0aW9ucyAoJiBjb3VudGluZyk8L2gxPlxuICAgICAgPHAgY2xhc3M9XCJpbnQtdGV4dFwiPiBTZWFyY2ggdGhlIGN1cnJlbnQgbGlzdCBvZiBDbG91ZE9saXZl4oCZcyB2ZW5kb3IgYW5kIGRpc3RyaWJ1dG9yIGludGVncmF0aW9ucyBiZWxvdy4gPGJyIC8+XG4gICAgICA8L3A+XG4gICAgICA8cHctcmVzb3VyY2UtY29tcGFueS1jYXJkIFtoZWFkZXJdPVwiJ2ludGVncmF0ZWQgdmVuZG9yJ1wiXG4gICAgICAgIFtkYXRhXT1cImRpc3RyaWJ1dG9yc0RhdGFcIj48L3B3LXJlc291cmNlLWNvbXBhbnktY2FyZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW50ZWdyYXRpb24tZmFkZW91dFwiPjwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uIGNsYXNzPVwiY2xvdWRvbGl2ZS1ndWlkZS1zZWN0aW9uIGJnLXdoaXRlIHB5LTUgc2VjdGlvbi1vdXRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxwdy1yZXNvdXJjZS1jb21wYW55LWNhcmQgW2hlYWRlcl09XCInaW50ZWdyYXRlZCB2ZW5kb3InXCJcbiAgICAgICAgW3ZlbmRvcl09XCJ0cnVlXCJcbiAgICAgICAgW2RhdGFdPVwiZGlzdHJpYnV0b3JzRGF0YVwiPjwvcHctcmVzb3VyY2UtY29tcGFueS1jYXJkPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTNcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJzZWUtc3BhblwiPiBEb27igJl0IHNlZSB3aGF0IHlvdeKAmXJlIGFmdGVyPyA8YSBocmVmPVwiL2Jvb2stYS1kZW1vXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW50LXNwYW4gdGVhbS1zcGFuXCI+U3BlYWsgd2l0aCBvdXIgdGVhbSB0byByZXF1ZXN0IGEgY29ubmVjdGlvbiA+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW50ZWdyYXRpb24tZmFkZW91dFwiPjwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uIGNsYXNzPVwiY2xvdWRvbGl2ZS1ndWlkZS1zZWN0aW9uIGJnLXdoaXRlIHB5LTUgc2VjdGlvbi1vdXRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJob3ctaXQtd29ya3Mtd3JhcHBlclwiPlxuICAgICAgICA8aDEgY2xhc3M9XCJpdC13b3Jrcy10aXRsZSBtYi0wXCI+SG93IGl0IHdvcmtzPC9oMT5cbiAgICAgICAgPHAgY2xhc3M9XCJwYi0yMFwiPlZpZXcgc2hvcnQgZXhhbXBsZSB2aWRlb3MgdG8gdW5kZXJzdGFuZCBob3cgdGhlc2UgaW50ZWdyYXRpb25zIGNhbiB3b3JrIGZvciB5b3VyIE1TUDo8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgc2VjdGlvbi1yb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL3Jlc291cmNlL2hvdy1pdC13b3JrczEucG5nXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiF2aWRlb0RlbW9Mb2FkZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJsb2FkTWljcm9zb2Z0VmlkZW8oKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJob3ctaXQtd29ya3MtaW1nXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgICA8aWZyYW1lICpuZ0lmPVwidmlkZW9EZW1vTG9hZGVkXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUtaXRlbVwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cInZpZGVvVGl0bGVcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwic2FuaXRpemVkTWljcm9zb2Z0VmlkZW9VcmxcIlxuICAgICAgICAgICAgICAgIGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZVwiXG4gICAgICAgICAgICAgICAgYWxsb3dmdWxsc2NyZWVuPlxuICAgICAgICAgICAgICA8L2lmcmFtZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWcvcmVzb3VyY2UvaG93LWl0LXdvcmtzMi5wbmdcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXZpZGVvV2ViaW5hckxvYWRlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImxvYWRLZXNleWFWaWRlbygpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImhvdy1pdC13b3Jrcy1pbWdcIlxuICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgIDxpZnJhbWUgKm5nSWY9XCJ2aWRlb1dlYmluYXJMb2FkZWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZS1pdGVtXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwidmlkZW9UaXRsZVwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJzYW5pdGl6ZWRLZXN5YVZpZGVvVXJsXCJcbiAgICAgICAgICAgICAgICBhbGxvdz1cImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmVcIlxuICAgICAgICAgICAgICAgIGFsbG93ZnVsbHNjcmVlbj5cbiAgICAgICAgICAgICAgPC9pZnJhbWU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW50ZWdyYXRpb24tZmFkZW91dFwiPjwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uIGNsYXNzPVwiY2xvdWRvbGl2ZS1ndWlkZS1zZWN0aW9uIGJnLXdoaXRlIHB5LTUgc2VjdGlvbi1vdXRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtc3RhcnRcIj5cbiAgICAgICAgPCEtLSBMZWZ0IENvbnRlbnQgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiB0ZXh0LW1kLXN0YXJ0IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPGgxIGNsYXNzPVwiZ3VpZGUtdGl0bGUgbWItM1wiPkEgZ3VpZGUgdG8gaW1wbGVtZW50aW5nIENsb3VkT2xpdmUgaW4geW91ciBidXNpbmVzczwvaDE+XG4gICAgICAgICAgPHAgY2xhc3M9XCJndWlkZS1zdWJ0ZXh0XCI+XG4gICAgICAgICAgICBWaWV3IHdoZXJlIENsb3VkT2xpdmUgc2l0cyBpbiB5b3VyIGludGVybmFsIHRlY2hub2xvZ3kgc3RhY2sgYW5kIG1vbnRobHkgd29ya2Zsb3dzLCBhbmQgc2VlIGhvdyBlYXN5XG4gICAgICAgICAgICBpdCBpcyB0byBnZXQgc3RhcnRlZC5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJndWlkZS1ub3RlIG1iLTRcIj5WaWV3IHRoZSBxdWljayBndWlkZSBub3c6PC9wPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ2YXVsdC1idG5cIlxuICAgICAgICAgICAgb25jbGljaz1cIndpbmRvdy5vcGVuKCdodHRwczovL2h1YnNwb3QuY29tJywgJ19ibGFuaycpXCI+VmlldyB0aGUgZ3VpZGU8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBSaWdodCBJbWFnZSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9yZXNvdXJjZS9ndWlkZS5wbmdcIlxuICAgICAgICAgICAgYWx0PVwiR3VpZGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJpbWctZmx1aWQgZ3VpZGUtaW1nXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW50ZWdyYXRpb24tZmFkZW91dFwiPjwvZGl2PlxuICA8L3NlY3Rpb24+XG48L2Rpdj5cblxuPHB3LXJlc291cmNlLW5vdGUtY2FyZCBbcmVsZWFzZUhlYWRlcl09XCJ0cnVlXCI+PC9wdy1yZXNvdXJjZS1ub3RlLWNhcmQ+XG5cbjxwdy10cmlhbC00LWNvbnRhY3QtdXM+PC9wdy10cmlhbC00LWNvbnRhY3QtdXM+XG4iXX0=