@posiwise/shared-components 0.0.146 → 0.0.147

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 (29) hide show
  1. package/fesm2022/posiwise-shared-components.mjs +128 -96
  2. package/fesm2022/posiwise-shared-components.mjs.map +1 -1
  3. package/lib/pw-tabs/pw-tabs.component.d.ts +1 -0
  4. package/package.json +4 -6
  5. package/esm2022/index.mjs +0 -22
  6. package/esm2022/lib/authenticator/authenticator.component.mjs +0 -39
  7. package/esm2022/lib/clearbit-icon/clearbit-icon.component.mjs +0 -34
  8. package/esm2022/lib/coming-soon/coming-soon.component.mjs +0 -29
  9. package/esm2022/lib/header/header.component.mjs +0 -38
  10. package/esm2022/lib/input-container/input-container.component.mjs +0 -91
  11. package/esm2022/lib/label-management/entity-group/entity-group.component.mjs +0 -154
  12. package/esm2022/lib/label-management/group-definition/group-definition.component.mjs +0 -178
  13. package/esm2022/lib/label-management/groups/groups.component.mjs +0 -236
  14. package/esm2022/lib/landing-page-footer-b/landing-page-footer-b.component.mjs +0 -26
  15. package/esm2022/lib/no-data/no-data.component.mjs +0 -75
  16. package/esm2022/lib/number-picker/number-picker.component.mjs +0 -304
  17. package/esm2022/lib/number-picker/number-picker.config.mjs +0 -2
  18. package/esm2022/lib/password-validation/password-validation.component.mjs +0 -55
  19. package/esm2022/lib/permission-tree/permission-tree.component.mjs +0 -111
  20. package/esm2022/lib/privacy-and-tos/privacy-and-tos.component.mjs +0 -119
  21. package/esm2022/lib/privacy-policy/privacy-policy.component.mjs +0 -23
  22. package/esm2022/lib/pw-tabs/pw-tabs.component.mjs +0 -50
  23. package/esm2022/lib/range-date-picker/date-range-picker.component.mjs +0 -48
  24. package/esm2022/lib/resource-shared-components.module.mjs +0 -99
  25. package/esm2022/lib/shared/shared-component.interface.mjs +0 -2
  26. package/esm2022/lib/shared-components.module.mjs +0 -211
  27. package/esm2022/lib/splash/splash.component.mjs +0 -12
  28. package/esm2022/lib/terms-conditions/terms-conditions.component.mjs +0 -32
  29. package/esm2022/posiwise-shared-components.mjs +0 -5
@@ -1,119 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Component, Inject, Injector, Input } from '@angular/core';
3
- import { DomSanitizer } from '@angular/platform-browser';
4
- import { AdminService } from '@posiwise/admin-module-utils';
5
- import { AppBaseComponent } from '@posiwise/app-base-component';
6
- import { PermissionService } from '@posiwise/common-services';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@posiwise/admin-module-utils";
9
- import * as i2 from "@angular/platform-browser";
10
- import * as i3 from "@ng-bootstrap/ng-bootstrap";
11
- import * as i4 from "primeng/progressspinner";
12
- import * as i5 from "@angular/common";
13
- import * as i6 from "../header/header.component";
14
- export class PrivacyAndTosComponent extends AppBaseComponent {
15
- constructor(adminService, injector, document, sanitizer) {
16
- super(injector);
17
- this.adminService = adminService;
18
- this.document = document;
19
- this.sanitizer = sanitizer;
20
- this.tabId = 'privacy-policy';
21
- }
22
- ngOnInit() {
23
- this.privacyAndTos = this.appConfig?.main_tos_id;
24
- this.product = this.route.snapshot.queryParamMap.get('product');
25
- this.isLoaded = false;
26
- this.route.params.subscribe(data => {
27
- this.id = data['Id'];
28
- if (this.id) {
29
- const id = this.id === 'details' ? this.privacyAndTos : this.id;
30
- this.getTosDetails(Number(id));
31
- this.isPublic = true;
32
- }
33
- else if (this.productId) {
34
- this.getSubscribedProduct(this.productId);
35
- }
36
- else {
37
- this.route.params.subscribe(id => {
38
- this.tabId = id['data'] ?? 'privacy-policy';
39
- this.getSubscribedProduct();
40
- });
41
- }
42
- });
43
- }
44
- getSubscribedProduct(id) {
45
- this.userStore().subscribe(user => {
46
- this.user = user;
47
- if (user) {
48
- this.fetchUserSubscriptions(user.id, id);
49
- }
50
- });
51
- }
52
- fetchUserSubscriptions(userId, id) {
53
- this.userService.getUserSubscriptions(userId).subscribe(response => {
54
- this.subscribedSubscriptions = response.subscriptions;
55
- const productId = id ?? PermissionService.selectedProduct.id;
56
- const products = this.findRequiredProducts(productId);
57
- this.productName = products[0]?.name;
58
- this.getTosDetails(products[0].product_privacy_service_id);
59
- });
60
- }
61
- findRequiredProducts(productId) {
62
- const products = [];
63
- this.subscribedSubscriptions.forEach(subscribe => {
64
- const requiredProduct = subscribe?.products.find(x => x?.id === productId);
65
- if (requiredProduct) {
66
- products.push(requiredProduct);
67
- }
68
- });
69
- return products;
70
- }
71
- getTosDetails(id) {
72
- this.adminService
73
- .getTosDetails(id)
74
- .subscribe(response => {
75
- const parser = new DOMParser();
76
- let privacyData;
77
- if (response?.privacy) {
78
- const privacyDoc = parser.parseFromString(response?.privacy, 'text/html');
79
- // Remove all button elements in privacy
80
- const privacyButtons = privacyDoc.querySelectorAll('button');
81
- privacyButtons.forEach(button => button.remove());
82
- // Sanitize and store privacy HTML
83
- // NOSONAR: Trusted HTML content is handled safely here
84
- privacyData = this.sanitizer.bypassSecurityTrustHtml(privacyDoc.body.innerHTML); // NOSONAR
85
- }
86
- let tosData;
87
- if (response?.tos) {
88
- const tosDoc = parser.parseFromString(response?.tos, 'text/html');
89
- // Remove all button elements in tos
90
- const tosButtons = tosDoc.querySelectorAll('button');
91
- tosButtons.forEach(button => button.remove());
92
- // Sanitize and store tos HTML
93
- // NOSONAR: Trusted HTML content is handled safely here
94
- tosData = this.sanitizer.bypassSecurityTrustHtml(tosDoc.body.innerHTML); // NOSONAR
95
- }
96
- // Assign sanitized data back
97
- this.data = {
98
- ...response,
99
- privacy: privacyData,
100
- tos: tosData
101
- };
102
- })
103
- .add(() => {
104
- this.isLoaded = true;
105
- });
106
- }
107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PrivacyAndTosComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }, { token: DOCUMENT }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
108
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PrivacyAndTosComponent, selector: "pw-privacy-and-tos", inputs: { productId: "productId" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"isPublic\">\n <pw-header [landing]=\"false\"></pw-header>\n</ng-container>\n\n<div class=\"col-12 d-flex\"\n *ngIf=\"!isPublic\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">{{ productName }}</h3>\n</div>\n\n\n\n\n<div [ngClass]=\"{ 'container pw-tab overflow-hidden': isPublic }\" >\n <div [ngClass]=\"{ dashboard: isPublic }\">\n <div [ngClass]=\"{ 'dashboard-body': isPublic }\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <h3 *ngIf=\"isPublic\">{{ product }}</h3>\n <div>\n\n <ul ngbNav\n #nav=\"ngbNav\"\n [(activeId)]=\"tabId\"\n class=\"nav-tabs\">\n <li [ngbNavItem]=\"'privacy-policy'\">\n <a ngbNavLink>Privacy policy</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Privacy policy</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.privacy\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'terms-of-service'\">\n <a ngbNavLink>Terms of Services</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Terms of Services</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.tos\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n </ul>\n </div>\n <div class=\"w-100 text-center p-2 mt-5\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"></p-progressSpinner>\n </div>\n <div [ngbNavOutlet]=\"nav\" *ngIf=\"isLoaded\"></div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["::ng-deep .terms-of-service ul{list-style:disc!important;padding-left:40px!important}.ql-container{max-width:1000px;margin:0 auto;resize:none!important}\n"], dependencies: [{ kind: "directive", type: i3.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i3.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i3.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i3.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i3.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "directive", type: i3.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i3.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "component", type: i4.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.HeaderComponent, selector: "pw-header", inputs: ["landing"] }] }); }
109
- }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PrivacyAndTosComponent, decorators: [{
111
- type: Component,
112
- args: [{ selector: 'pw-privacy-and-tos', template: "<ng-container *ngIf=\"isPublic\">\n <pw-header [landing]=\"false\"></pw-header>\n</ng-container>\n\n<div class=\"col-12 d-flex\"\n *ngIf=\"!isPublic\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">{{ productName }}</h3>\n</div>\n\n\n\n\n<div [ngClass]=\"{ 'container pw-tab overflow-hidden': isPublic }\" >\n <div [ngClass]=\"{ dashboard: isPublic }\">\n <div [ngClass]=\"{ 'dashboard-body': isPublic }\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <h3 *ngIf=\"isPublic\">{{ product }}</h3>\n <div>\n\n <ul ngbNav\n #nav=\"ngbNav\"\n [(activeId)]=\"tabId\"\n class=\"nav-tabs\">\n <li [ngbNavItem]=\"'privacy-policy'\">\n <a ngbNavLink>Privacy policy</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Privacy policy</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.privacy\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'terms-of-service'\">\n <a ngbNavLink>Terms of Services</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Terms of Services</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.tos\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n </ul>\n </div>\n <div class=\"w-100 text-center p-2 mt-5\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"></p-progressSpinner>\n </div>\n <div [ngbNavOutlet]=\"nav\" *ngIf=\"isLoaded\"></div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["::ng-deep .terms-of-service ul{list-style:disc!important;padding-left:40px!important}.ql-container{max-width:1000px;margin:0 auto;resize:none!important}\n"] }]
113
- }], ctorParameters: () => [{ type: i1.AdminService }, { type: i0.Injector }, { type: Document, decorators: [{
114
- type: Inject,
115
- args: [DOCUMENT]
116
- }] }, { type: i2.DomSanitizer }], propDecorators: { productId: [{
117
- type: Input
118
- }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wcml2YWN5LWFuZC10b3MvcHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wcml2YWN5LWFuZC10b3MvcHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBUTlELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFzQnhELFlBQ3FCLFlBQTBCLEVBQzNDLFFBQWtCLEVBQ2lCLFFBQWtCLEVBQ3BDLFNBQXVCO1FBRXhDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUxDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRVIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBVjVDLFVBQUssR0FBRyxnQkFBZ0IsQ0FBQztJQWF6QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUM7UUFDakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDVixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDekIsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQztvQkFDNUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEVBQUc7UUFDNUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNQLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsRUFBRztRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMvRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUN0RCxNQUFNLFNBQVMsR0FBRyxFQUFFLElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUM3RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFdEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsU0FBUztRQUNsQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM3QyxNQUFNLGVBQWUsR0FBRyxTQUFTLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUM7WUFDM0UsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDbEIsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNuQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRU8sYUFBYSxDQUFDLEVBQVU7UUFDNUIsSUFBSSxDQUFDLFlBQVk7YUFDWixhQUFhLENBQUMsRUFBRSxDQUFDO2FBQ2pCLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBRS9CLElBQUksV0FBVyxDQUFDO1lBQ2hCLElBQUksUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBRTFFLHdDQUF3QztnQkFDeEMsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3RCxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBRWxELGtDQUFrQztnQkFDbEMsdURBQXVEO2dCQUN2RCxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVTtZQUMvRixDQUFDO1lBRUQsSUFBSSxPQUFPLENBQUM7WUFDWixJQUFJLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUVsRSxvQ0FBb0M7Z0JBQ3BDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDckQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUU5Qyw4QkFBOEI7Z0JBQzlCLHVEQUF1RDtnQkFDdkQsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVU7WUFDdkYsQ0FBQztZQUVELDZCQUE2QjtZQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHO2dCQUNSLEdBQUcsUUFBUTtnQkFDWCxPQUFPLEVBQUUsV0FBVztnQkFDcEIsR0FBRyxFQUFFLE9BQU87YUFDZixDQUFDO1FBQ04sQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzsrR0E3SFEsc0JBQXNCLHNFQXlCbkIsUUFBUTttR0F6Qlgsc0JBQXNCLHFIQ2RuQyw0K0ZBZ0ZBOzs0RkRsRWEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG9CQUFvQjs7MEJBNkJ6QixNQUFNOzJCQUFDLFFBQVE7b0VBeEJYLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXByaXZhY3ktYW5kLXRvcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ByaXZhY3ktYW5kLXRvcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJpdmFjeUFuZFRvc0NvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHByb2R1Y3RJZDogbnVtYmVyO1xuXG4gICAgcHJpdmF0ZSBwcml2YWN5QW5kVG9zOiBudW1iZXI7XG5cbiAgICBpZDogc3RyaW5nO1xuXG4gICAgZGF0YTogeyBwcml2YWN5OiAnJyB9O1xuXG4gICAgdXNlcjogVXNlcjtcblxuICAgIHN1YnNjcmliZWRTdWJzY3JpcHRpb25zOiB7IHByb2R1Y3RzOiB7IGlkOiBudW1iZXIgfVtdIH1bXTtcblxuICAgIHByb2R1Y3Q6IHN0cmluZztcbiAgICBwcm9kdWN0TmFtZTogc3RyaW5nO1xuXG4gICAgdGFiSWQgPSAncHJpdmFjeS1wb2xpY3knO1xuXG4gICAgaXNQdWJsaWM6IGJvb2xlYW47XG5cbiAgICBpc0xvYWRlZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFkbWluU2VydmljZTogQWRtaW5TZXJ2aWNlLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5wcml2YWN5QW5kVG9zID0gdGhpcy5hcHBDb25maWc/Lm1haW5fdG9zX2lkO1xuICAgICAgICB0aGlzLnByb2R1Y3QgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdwcm9kdWN0Jyk7XG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgdGhpcy5pZCA9IGRhdGFbJ0lkJ107XG4gICAgICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gdGhpcy5pZCA9PT0gJ2RldGFpbHMnID8gdGhpcy5wcml2YWN5QW5kVG9zIDogdGhpcy5pZDtcbiAgICAgICAgICAgICAgICB0aGlzLmdldFRvc0RldGFpbHMoTnVtYmVyKGlkKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1B1YmxpYyA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJvZHVjdElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTdWJzY3JpYmVkUHJvZHVjdCh0aGlzLnByb2R1Y3RJZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShpZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiSWQgPSBpZFsnZGF0YSddID8/ICdwcml2YWN5LXBvbGljeSc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3Vic2NyaWJlZFByb2R1Y3QoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdWJzY3JpYmVkUHJvZHVjdChpZD8pIHtcbiAgICAgICAgdGhpcy51c2VyU3RvcmUoKS5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgICAgICAgICAgaWYgKHVzZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZldGNoVXNlclN1YnNjcmlwdGlvbnModXNlci5pZCwgaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmZXRjaFVzZXJTdWJzY3JpcHRpb25zKHVzZXJJZCwgaWQ/KSB7XG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UuZ2V0VXNlclN1YnNjcmlwdGlvbnModXNlcklkKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVkU3Vic2NyaXB0aW9ucyA9IHJlc3BvbnNlLnN1YnNjcmlwdGlvbnM7XG4gICAgICAgICAgICBjb25zdCBwcm9kdWN0SWQgPSBpZCA/PyBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFByb2R1Y3QuaWQ7XG4gICAgICAgICAgICBjb25zdCBwcm9kdWN0cyA9IHRoaXMuZmluZFJlcXVpcmVkUHJvZHVjdHMocHJvZHVjdElkKTtcblxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0TmFtZSA9IHByb2R1Y3RzWzBdPy5uYW1lO1xuICAgICAgICAgICAgdGhpcy5nZXRUb3NEZXRhaWxzKHByb2R1Y3RzWzBdLnByb2R1Y3RfcHJpdmFjeV9zZXJ2aWNlX2lkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kUmVxdWlyZWRQcm9kdWN0cyhwcm9kdWN0SWQpIHtcbiAgICAgICAgY29uc3QgcHJvZHVjdHMgPSBbXTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVkU3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmliZSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXF1aXJlZFByb2R1Y3QgPSBzdWJzY3JpYmU/LnByb2R1Y3RzLmZpbmQoeCA9PiB4Py5pZCA9PT0gcHJvZHVjdElkKTtcbiAgICAgICAgICAgIGlmIChyZXF1aXJlZFByb2R1Y3QpIHtcbiAgICAgICAgICAgICAgICBwcm9kdWN0cy5wdXNoKHJlcXVpcmVkUHJvZHVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvZHVjdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUb3NEZXRhaWxzKGlkOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRUb3NEZXRhaWxzKGlkKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuXG4gICAgICAgICAgICAgICAgbGV0IHByaXZhY3lEYXRhO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZT8ucHJpdmFjeSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcml2YWN5RG9jID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhyZXNwb25zZT8ucHJpdmFjeSwgJ3RleHQvaHRtbCcpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBhbGwgYnV0dG9uIGVsZW1lbnRzIGluIHByaXZhY3lcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpdmFjeUJ1dHRvbnMgPSBwcml2YWN5RG9jLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpO1xuICAgICAgICAgICAgICAgICAgICBwcml2YWN5QnV0dG9ucy5mb3JFYWNoKGJ1dHRvbiA9PiBidXR0b24ucmVtb3ZlKCkpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFNhbml0aXplIGFuZCBzdG9yZSBwcml2YWN5IEhUTUxcbiAgICAgICAgICAgICAgICAgICAgLy8gTk9TT05BUjogVHJ1c3RlZCBIVE1MIGNvbnRlbnQgaXMgaGFuZGxlZCBzYWZlbHkgaGVyZVxuICAgICAgICAgICAgICAgICAgICBwcml2YWN5RGF0YSA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHByaXZhY3lEb2MuYm9keS5pbm5lckhUTUwpOyAvLyBOT1NPTkFSXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IHRvc0RhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlPy50b3MpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9zRG9jID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhyZXNwb25zZT8udG9zLCAndGV4dC9odG1sJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGFsbCBidXR0b24gZWxlbWVudHMgaW4gdG9zXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvc0J1dHRvbnMgPSB0b3NEb2MucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uJyk7XG4gICAgICAgICAgICAgICAgICAgIHRvc0J1dHRvbnMuZm9yRWFjaChidXR0b24gPT4gYnV0dG9uLnJlbW92ZSgpKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBTYW5pdGl6ZSBhbmQgc3RvcmUgdG9zIEhUTUxcbiAgICAgICAgICAgICAgICAgICAgLy8gTk9TT05BUjogVHJ1c3RlZCBIVE1MIGNvbnRlbnQgaXMgaGFuZGxlZCBzYWZlbHkgaGVyZVxuICAgICAgICAgICAgICAgICAgICB0b3NEYXRhID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodG9zRG9jLmJvZHkuaW5uZXJIVE1MKTsgLy8gTk9TT05BUlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEFzc2lnbiBzYW5pdGl6ZWQgZGF0YSBiYWNrXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5yZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgcHJpdmFjeTogcHJpdmFjeURhdGEsXG4gICAgICAgICAgICAgICAgICAgIHRvczogdG9zRGF0YVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQdWJsaWNcIj5cbiAgPHB3LWhlYWRlciBbbGFuZGluZ109XCJmYWxzZVwiPjwvcHctaGVhZGVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXYgY2xhc3M9XCJjb2wtMTIgZC1mbGV4XCJcbiAgKm5nSWY9XCIhaXNQdWJsaWNcIj5cbiAgPGEgYXJpYS1sYWJlbD1cIk5hdmlnYXRlIHRvIFRhcmdldFwiXG4gICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgY2xhc3M9XCJwcmV2aW91c1wiPjxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cbiAgPGgzIGNsYXNzPVwibXQtM1wiPnt7IHByb2R1Y3ROYW1lIH19PC9oMz5cbjwvZGl2PlxuXG5cblxuXG48ZGl2IFtuZ0NsYXNzXT1cInsgJ2NvbnRhaW5lciBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuJzogaXNQdWJsaWMgfVwiID5cbiAgPGRpdiBbbmdDbGFzc109XCJ7IGRhc2hib2FyZDogaXNQdWJsaWMgfVwiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnZGFzaGJvYXJkLWJvZHknOiBpc1B1YmxpYyB9XCI+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ210LTUnOiBpc1B1YmxpYyB9XCI+XG4gICAgICAgIDxoMyAqbmdJZj1cImlzUHVibGljXCI+e3sgcHJvZHVjdCB9fTwvaDM+XG4gICAgICAgIDxkaXY+XG5cbiAgICAgICAgICA8dWwgbmdiTmF2XG4gICAgICAgICAgICAjbmF2PVwibmdiTmF2XCJcbiAgICAgICAgICAgIFsoYWN0aXZlSWQpXT1cInRhYklkXCJcbiAgICAgICAgICAgIGNsYXNzPVwibmF2LXRhYnNcIj5cbiAgICAgICAgICAgIDxsaSBbbmdiTmF2SXRlbV09XCIncHJpdmFjeS1wb2xpY3knXCI+XG4gICAgICAgICAgICAgIDxhIG5nYk5hdkxpbms+UHJpdmFjeSBwb2xpY3k8L2E+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcHctdGFiIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhc2hib2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHkgcHQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGVybXMtb2Ytc2VydmljZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+UHJpdmFjeSBwb2xpY3k8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFsLWNvbnRhaW5lciBxbC1zbm93IGJvZHktcXVpbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicWwtZWRpdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImRhdGE/LnByaXZhY3lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgW25nYk5hdkl0ZW1dPVwiJ3Rlcm1zLW9mLXNlcnZpY2UnXCI+XG4gICAgICAgICAgICAgIDxhIG5nYk5hdkxpbms+VGVybXMgb2YgU2VydmljZXM8L2E+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcHctdGFiIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhc2hib2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHkgcHQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGVybXMtb2Ytc2VydmljZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+VGVybXMgb2YgU2VydmljZXM8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFsLWNvbnRhaW5lciBxbC1zbm93IGJvZHktcXVpbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicWwtZWRpdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImRhdGE/LnRvc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIHAtMiBtdC01XCIgKm5nSWY9XCIhaXNMb2FkZWRcIj5cbiAgICAgICAgICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+PC9wLXByb2dyZXNzU3Bpbm5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgW25nYk5hdk91dGxldF09XCJuYXZcIiAqbmdJZj1cImlzTG9hZGVkXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { AppBaseComponent } from '@posiwise/app-base-component';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class PrivacyPolicyComponent extends AppBaseComponent {
6
- constructor() {
7
- super(...arguments);
8
- this.isPublic = window.location.pathname.includes('privacy-policy');
9
- }
10
- ngOnInit() {
11
- this.company_name = this.appConfig.company.name;
12
- this.company_email = this.appConfig.company.email;
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PrivacyPolicyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PrivacyPolicyComponent, selector: "pw-privacy-policy", inputs: { isPublic: "isPublic" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"isPublic\">\n <pw-landing-page-header [landing]=\"false\"></pw-landing-page-header>\n</ng-container>\n\n<div class=\"container pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h1>Privacy policy</h1>\n <div class=\"clearfix\"></div>\n <h3>Your Content</h3>\n <p>\n If you operate a {{ company_name }} User Account, and/or comment on,\n post material to, post links on or otherwise make (or allow any third\n party to make) material available by means of the Website and or\n Applications (collectively called \u201CContent\u201D), you are entirely\n responsible for that Content and any harm resulting from that Content.\n That is regardless of whether the Content in question constitutes (but\n not limited to) text, graphics, an audio file or computer software. By\n making Content available, you represent and warrant that:\n </p>\n <ol>\n <li>\n the Content is not considered to be obscene, inappropriate,\n defamatory, disparaging, indecent, seditious, offensive,\n pornographic, threatening, abusive, liable to incite racial hatred,\n discriminatory, blasphemous, in breach of confidence or in breach of\n privacy;\n </li>\n <li>\n the downloading, copying and use of the Content will not infringe\n the proprietary rights, including but not limited to the copyright,\n patent, trademark or trade secret rights, of any third party;\n </li>\n <li>\n if your employer has rights to intellectual property you create, you\n have either (i) received permission from your employer to post or\n make available the Content, including but not limited to any\n software, or (ii) secured from your employer a waiver as to all\n rights in or to the Content;\n </li>\n <li>\n you have fully complied with any third-party licenses relating to\n the Content, and have done all things necessary to successfully pass\n through to end users any required terms;\n </li>\n <li>\n the Content does not contain or install any viruses, worms, malware,\n Trojan horses or other harmful or destructive content;\n </li>\n <li>\n the Content is not spam, is not machine or randomly generated and\n does not contain unethical or unwanted commercial content designed\n to drive traffic to third party sites or further unlawful acts;\n </li>\n <li>\n your User Account is not getting advertised via unwanted electronic\n messages such as spam links on newsgroups, email lists, other blogs\n and websites, and similar unsolicited promotional methods;\n </li>\n <li>\n your User Account is not named in a manner that misleads users into\n thinking that you are another person or company;\n </li>\n <li>\n the Content will not cause you or us to breach any law, regulation,\n rule, code or other legal obligation; and\n </li>\n <li>the Content will not bring us, or the Site into disrepute.</li>\n </ol>\n <p></p>\n <p>\n By submitting Content for inclusion in your User Account or to the Site,\n you grant us a worldwide, royalty free, and non-exclusive license to\n use that content in any way (including without limitation, reproducing,\n changing and communicating the Content) and permit us to authorise any\n other person to do the same thing. If you delete any Content, we will\n use reasonable efforts to remove it from the Site, but you acknowledge\n that caching or references to the Content may not be made immediately\n unavailable.\n </p>\n <p>\n Without limiting any of those representations or warranties, we reserve\n the right (though not the obligation) to, in our sole discretion\n </p>\n <ol>\n <li>\n refuse or remove any content that, in our reasonable opinion,\n violates any of our policies or agreements or is in any way harmful\n or objectionable, or\n </li>\n <li>\n terminate or deny access to and use of the Service to any individual\n or entity for any reason, in our sole discretion.\n </li>\n </ol>\n <p></p>\n <h3>Privacy</h3>\n <p>\n We get information about you in a range of ways. We collect your&lrm;\n name,&lrm; email address and other information you directly give us on\n our Site. We may get information about you from other sources. We may\n add this to information we get from this Site. We may automatically log\n information about you and your computer. We may log information using\n \"cookies.\" Cookies are small data files stored on your hard drive by a\n website. Cookies help us make our Site and your visit better. We use\n cookies to see which parts of our Site people use and like and to count\n visits to our Site. We may store your personal information along with\n your files and data on a third party server such as Amazon Web Services;\n </p>\n <p>\n We use your personal information to operate, maintain, and improve our\n sites, products, and services. We use your personal information to\n respond to comments and questions and provide customer service. We use\n your personal information to provide and deliver products and services\n customers request. We also use your personal information to send you\n notifications about the service and to respond to customer support\n requests. You can access and change your personal information by logging\n in to your account settings page.\n </p>\n <p>\n We may share personal information with your consent. For example, you\n may let us share personal information with others for their own\n marketing uses. Those uses will be subject to their privacy policies. We\n may share personal information when we do a business deal, or negotiate\n a business deal, involving sale or transfer of all or a part of our\n business or assets. These deals can include any merger, financing,\n acquisition, or bankruptcy transaction or proceeding. We may share\n personal information for legal, protection, and safety purposes. We may\n share information to comply with laws. We may share information to\n respond to lawful requests and legal process. We may share information\n to protect the rights, property or safety of the Service, our users,\n customers, and others. This includes enforcing our agreements, policies,\n and terms of use. We may share information in an emergency. We may share\n information with those who need it to do work for us. We may also share\n aggregated and/or anonymized data with others for their own uses.\n </p>\n <p>\n Our marketing emails tell you how to \u201Copt-out.\u201D If you opt out, we may\n still send you non-marketing emails. Non-marketing emails include emails\n about your accounts and our business dealings with you.\n </p>\n <p>\n You can typically remove and reject cookies from our Site with your\n browser settings. Many browsers are set to accept cookies until you\n change your settings. If you remove or reject our cookies, it could\n affect how our Site works for you.\n </p>\n <p>\n If {{ company_name }} sells all or part of its business or makes a sale\n or transfer of its assets or is otherwise involved in a merger or\n transfer of all or a material part of its business,\n {{ company_name }} may transfer your information to the party or parties\n involved in the transaction as part of that transaction.\n </p>\n <p>\n {{ company_name }} uses a range of commercially reasonable measures to\n safeguard Personal Information in its possession against loss, theft and\n unauthorized use, disclosure or modification. However, no one can\n guarantee the complete safety of your information. Please immediately\n notify us if you believe there may be an issue or a problem regarding\n the integrity of your information by contacting us.\n </p>\n <p>\n In some cases, we may use an unaffiliated payment service to allow you\n to purchase a product or make payments (\u201CPayment Service\u201D). If you wish\n to purchase a product or make a payment in such a case, you will be\n directed to a Payment Service webpage. Any information that you provide\n to a Payment Service will be subject to the applicable Payment Service\u2019s\n privacy policy, rather than this Privacy Policy. We have no control\n over, and are not responsible for, any Payment Service\u2019s use of\n information collected through any Payment Service.\n </p>\n <p>\n The {{ company_name }} website may also be linked to sites operated by\n third parties, and may carry advertisements or offer content,\n functionality, games or applications developed and maintained by third\n parties. Some of these third party sites may be co-branded with a\n {{ company_name }} logo, even though they are not operated or maintained\n by us.\n </p>\n <p>\n {{ company_name }} is not responsible for the privacy practices of any\n such third parties, and once you leave the {{ company_name }} website,\n you should check the applicable privacy policy of the other service.\n </p>\n <h3>Questions &amp; Comments</h3>\n <p>\n If you have any questions about our Privacy Policy, please\n <a href=\"mailto:{{ company_email }}\">let us know</a>.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}h1,h2,h3,h4,h5,h6{font-weight:600}h1{font-size:36px}.card{padding:10px 15px!important}.card ol li{padding-left:30px!important;position:relative;color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding-top:5px;padding-bottom:5px;padding-right:0}.card ol li ol.list-bullet li,.card ol li ul.list-bullet li{padding-left:0!important}.card ol li:before{font:400 16px/1.3 Roboto,sans-serif;left:0;position:absolute;top:4px}.card ol li h3{font:400 20px/1.3 Roboto,sans-serif;margin-bottom:15px}.card p{color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding:5px 0}.card p strong{font-family:Roboto,sans-serif}.banner{background:url(/assets/img/landing-page/header-bg.jpg) no-repeat center;background-size:cover;padding:0 0 130px}.terms-of-service h3{padding:5px 0 0!important}.terms-of-service ol{counter-reset:section;padding:0 5px 0 0!important}.terms-of-service ol li:before{content:counters(section,\".\") \". \";counter-increment:section;float:left;font-weight:600;padding:0 10px 0 0}.terms-of-service ol li ol li ol li:before,.terms-of-service ol li ol li ul li:before{content:\"\";counter-increment:none}li{padding:10px 0}.parent-ol>li:before{font-size:26px;margin-top:16px}ul.list-bullet,ol.list-bullet{list-style-type:disc;margin-left:20px}ul.list-bullet>li,ol.list-bullet>li{padding:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PrivacyPolicyComponent, decorators: [{
18
- type: Component,
19
- args: [{ selector: 'pw-privacy-policy', template: "<ng-container *ngIf=\"isPublic\">\n <pw-landing-page-header [landing]=\"false\"></pw-landing-page-header>\n</ng-container>\n\n<div class=\"container pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h1>Privacy policy</h1>\n <div class=\"clearfix\"></div>\n <h3>Your Content</h3>\n <p>\n If you operate a {{ company_name }} User Account, and/or comment on,\n post material to, post links on or otherwise make (or allow any third\n party to make) material available by means of the Website and or\n Applications (collectively called \u201CContent\u201D), you are entirely\n responsible for that Content and any harm resulting from that Content.\n That is regardless of whether the Content in question constitutes (but\n not limited to) text, graphics, an audio file or computer software. By\n making Content available, you represent and warrant that:\n </p>\n <ol>\n <li>\n the Content is not considered to be obscene, inappropriate,\n defamatory, disparaging, indecent, seditious, offensive,\n pornographic, threatening, abusive, liable to incite racial hatred,\n discriminatory, blasphemous, in breach of confidence or in breach of\n privacy;\n </li>\n <li>\n the downloading, copying and use of the Content will not infringe\n the proprietary rights, including but not limited to the copyright,\n patent, trademark or trade secret rights, of any third party;\n </li>\n <li>\n if your employer has rights to intellectual property you create, you\n have either (i) received permission from your employer to post or\n make available the Content, including but not limited to any\n software, or (ii) secured from your employer a waiver as to all\n rights in or to the Content;\n </li>\n <li>\n you have fully complied with any third-party licenses relating to\n the Content, and have done all things necessary to successfully pass\n through to end users any required terms;\n </li>\n <li>\n the Content does not contain or install any viruses, worms, malware,\n Trojan horses or other harmful or destructive content;\n </li>\n <li>\n the Content is not spam, is not machine or randomly generated and\n does not contain unethical or unwanted commercial content designed\n to drive traffic to third party sites or further unlawful acts;\n </li>\n <li>\n your User Account is not getting advertised via unwanted electronic\n messages such as spam links on newsgroups, email lists, other blogs\n and websites, and similar unsolicited promotional methods;\n </li>\n <li>\n your User Account is not named in a manner that misleads users into\n thinking that you are another person or company;\n </li>\n <li>\n the Content will not cause you or us to breach any law, regulation,\n rule, code or other legal obligation; and\n </li>\n <li>the Content will not bring us, or the Site into disrepute.</li>\n </ol>\n <p></p>\n <p>\n By submitting Content for inclusion in your User Account or to the Site,\n you grant us a worldwide, royalty free, and non-exclusive license to\n use that content in any way (including without limitation, reproducing,\n changing and communicating the Content) and permit us to authorise any\n other person to do the same thing. If you delete any Content, we will\n use reasonable efforts to remove it from the Site, but you acknowledge\n that caching or references to the Content may not be made immediately\n unavailable.\n </p>\n <p>\n Without limiting any of those representations or warranties, we reserve\n the right (though not the obligation) to, in our sole discretion\n </p>\n <ol>\n <li>\n refuse or remove any content that, in our reasonable opinion,\n violates any of our policies or agreements or is in any way harmful\n or objectionable, or\n </li>\n <li>\n terminate or deny access to and use of the Service to any individual\n or entity for any reason, in our sole discretion.\n </li>\n </ol>\n <p></p>\n <h3>Privacy</h3>\n <p>\n We get information about you in a range of ways. We collect your&lrm;\n name,&lrm; email address and other information you directly give us on\n our Site. We may get information about you from other sources. We may\n add this to information we get from this Site. We may automatically log\n information about you and your computer. We may log information using\n \"cookies.\" Cookies are small data files stored on your hard drive by a\n website. Cookies help us make our Site and your visit better. We use\n cookies to see which parts of our Site people use and like and to count\n visits to our Site. We may store your personal information along with\n your files and data on a third party server such as Amazon Web Services;\n </p>\n <p>\n We use your personal information to operate, maintain, and improve our\n sites, products, and services. We use your personal information to\n respond to comments and questions and provide customer service. We use\n your personal information to provide and deliver products and services\n customers request. We also use your personal information to send you\n notifications about the service and to respond to customer support\n requests. You can access and change your personal information by logging\n in to your account settings page.\n </p>\n <p>\n We may share personal information with your consent. For example, you\n may let us share personal information with others for their own\n marketing uses. Those uses will be subject to their privacy policies. We\n may share personal information when we do a business deal, or negotiate\n a business deal, involving sale or transfer of all or a part of our\n business or assets. These deals can include any merger, financing,\n acquisition, or bankruptcy transaction or proceeding. We may share\n personal information for legal, protection, and safety purposes. We may\n share information to comply with laws. We may share information to\n respond to lawful requests and legal process. We may share information\n to protect the rights, property or safety of the Service, our users,\n customers, and others. This includes enforcing our agreements, policies,\n and terms of use. We may share information in an emergency. We may share\n information with those who need it to do work for us. We may also share\n aggregated and/or anonymized data with others for their own uses.\n </p>\n <p>\n Our marketing emails tell you how to \u201Copt-out.\u201D If you opt out, we may\n still send you non-marketing emails. Non-marketing emails include emails\n about your accounts and our business dealings with you.\n </p>\n <p>\n You can typically remove and reject cookies from our Site with your\n browser settings. Many browsers are set to accept cookies until you\n change your settings. If you remove or reject our cookies, it could\n affect how our Site works for you.\n </p>\n <p>\n If {{ company_name }} sells all or part of its business or makes a sale\n or transfer of its assets or is otherwise involved in a merger or\n transfer of all or a material part of its business,\n {{ company_name }} may transfer your information to the party or parties\n involved in the transaction as part of that transaction.\n </p>\n <p>\n {{ company_name }} uses a range of commercially reasonable measures to\n safeguard Personal Information in its possession against loss, theft and\n unauthorized use, disclosure or modification. However, no one can\n guarantee the complete safety of your information. Please immediately\n notify us if you believe there may be an issue or a problem regarding\n the integrity of your information by contacting us.\n </p>\n <p>\n In some cases, we may use an unaffiliated payment service to allow you\n to purchase a product or make payments (\u201CPayment Service\u201D). If you wish\n to purchase a product or make a payment in such a case, you will be\n directed to a Payment Service webpage. Any information that you provide\n to a Payment Service will be subject to the applicable Payment Service\u2019s\n privacy policy, rather than this Privacy Policy. We have no control\n over, and are not responsible for, any Payment Service\u2019s use of\n information collected through any Payment Service.\n </p>\n <p>\n The {{ company_name }} website may also be linked to sites operated by\n third parties, and may carry advertisements or offer content,\n functionality, games or applications developed and maintained by third\n parties. Some of these third party sites may be co-branded with a\n {{ company_name }} logo, even though they are not operated or maintained\n by us.\n </p>\n <p>\n {{ company_name }} is not responsible for the privacy practices of any\n such third parties, and once you leave the {{ company_name }} website,\n you should check the applicable privacy policy of the other service.\n </p>\n <h3>Questions &amp; Comments</h3>\n <p>\n If you have any questions about our Privacy Policy, please\n <a href=\"mailto:{{ company_email }}\">let us know</a>.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}h1,h2,h3,h4,h5,h6{font-weight:600}h1{font-size:36px}.card{padding:10px 15px!important}.card ol li{padding-left:30px!important;position:relative;color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding-top:5px;padding-bottom:5px;padding-right:0}.card ol li ol.list-bullet li,.card ol li ul.list-bullet li{padding-left:0!important}.card ol li:before{font:400 16px/1.3 Roboto,sans-serif;left:0;position:absolute;top:4px}.card ol li h3{font:400 20px/1.3 Roboto,sans-serif;margin-bottom:15px}.card p{color:#000;font:14px/1.4 Roboto,sans-serif;margin:5px 0;padding:5px 0}.card p strong{font-family:Roboto,sans-serif}.banner{background:url(/assets/img/landing-page/header-bg.jpg) no-repeat center;background-size:cover;padding:0 0 130px}.terms-of-service h3{padding:5px 0 0!important}.terms-of-service ol{counter-reset:section;padding:0 5px 0 0!important}.terms-of-service ol li:before{content:counters(section,\".\") \". \";counter-increment:section;float:left;font-weight:600;padding:0 10px 0 0}.terms-of-service ol li ol li ol li:before,.terms-of-service ol li ol li ul li:before{content:\"\";counter-increment:none}li{padding:10px 0}.parent-ol>li:before{font-size:26px;margin-top:16px}ul.list-bullet,ol.list-bullet{list-style-type:disc;margin-left:20px}ul.list-bullet>li,ol.list-bullet>li{padding:0}\n"] }]
20
- }], propDecorators: { isPublic: [{
21
- type: Input
22
- }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmFjeS1wb2xpY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL3ByaXZhY3ktcG9saWN5L3ByaXZhY3ktcG9saWN5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wcml2YWN5LXBvbGljeS9wcml2YWN5LXBvbGljeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBT2hFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFMNUQ7O1FBT0ksYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBU2xFO0lBSkcsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3RELENBQUM7K0dBVlEsc0JBQXNCO21HQUF0QixzQkFBc0Isa0hDVG5DLHN0V0F1TUE7OzRGRDlMYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksbUJBQW1COzhCQU03QixRQUFRO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXByaXZhY3ktcG9saWN5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJpdmFjeS1wb2xpY3kuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi90ZXJtcy1jb25kaXRpb25zL3Rlcm1zLWNvbmRpdGlvbnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcml2YWN5UG9saWN5Q29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBpc1B1YmxpYyA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmNsdWRlcygncHJpdmFjeS1wb2xpY3knKTtcblxuICAgIGNvbXBhbnlfbmFtZTogc3RyaW5nO1xuICAgIGNvbXBhbnlfZW1haWw6IHN0cmluZztcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbXBhbnlfbmFtZSA9IHRoaXMuYXBwQ29uZmlnLmNvbXBhbnkubmFtZTtcbiAgICAgICAgdGhpcy5jb21wYW55X2VtYWlsID0gdGhpcy5hcHBDb25maWcuY29tcGFueS5lbWFpbDtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQdWJsaWNcIj5cbiAgPHB3LWxhbmRpbmctcGFnZS1oZWFkZXIgW2xhbmRpbmddPVwiZmFsc2VcIj48L3B3LWxhbmRpbmctcGFnZS1oZWFkZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHlcIj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnbXQtNSc6IGlzUHVibGljIH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGVybXMtb2Ytc2VydmljZVwiPlxuICAgICAgICAgICAgPGgxPlByaXZhY3kgcG9saWN5PC9oMT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxuICAgICAgICAgICAgPGgzPllvdXIgQ29udGVudDwvaDM+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgSWYgeW91IG9wZXJhdGUgYSB7eyBjb21wYW55X25hbWUgfX0gVXNlciBBY2NvdW50LCBhbmQvb3IgY29tbWVudCBvbixcbiAgICAgICAgICAgICAgcG9zdCBtYXRlcmlhbCB0bywgcG9zdCBsaW5rcyBvbiBvciBvdGhlcndpc2UgbWFrZSAob3IgYWxsb3cgYW55IHRoaXJkXG4gICAgICAgICAgICAgIHBhcnR5IHRvIG1ha2UpIG1hdGVyaWFsIGF2YWlsYWJsZSBieSBtZWFucyBvZiB0aGUgV2Vic2l0ZSBhbmQgb3JcbiAgICAgICAgICAgICAgQXBwbGljYXRpb25zIChjb2xsZWN0aXZlbHkgY2FsbGVkIOKAnENvbnRlbnTigJ0pLCB5b3UgYXJlIGVudGlyZWx5XG4gICAgICAgICAgICAgIHJlc3BvbnNpYmxlIGZvciB0aGF0IENvbnRlbnQgYW5kIGFueSBoYXJtIHJlc3VsdGluZyBmcm9tIHRoYXQgQ29udGVudC5cbiAgICAgICAgICAgICAgVGhhdCBpcyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIENvbnRlbnQgaW4gcXVlc3Rpb24gY29uc3RpdHV0ZXMgKGJ1dFxuICAgICAgICAgICAgICBub3QgbGltaXRlZCB0bykgdGV4dCwgZ3JhcGhpY3MsIGFuIGF1ZGlvIGZpbGUgb3IgY29tcHV0ZXIgc29mdHdhcmUuIEJ5XG4gICAgICAgICAgICAgIG1ha2luZyBDb250ZW50IGF2YWlsYWJsZSwgeW91IHJlcHJlc2VudCBhbmQgd2FycmFudCB0aGF0OlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPG9sPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgdGhlIENvbnRlbnQgaXMgbm90IGNvbnNpZGVyZWQgdG8gYmUgb2JzY2VuZSwgaW5hcHByb3ByaWF0ZSxcbiAgICAgICAgICAgICAgICBkZWZhbWF0b3J5LCBkaXNwYXJhZ2luZywgaW5kZWNlbnQsIHNlZGl0aW91cywgb2ZmZW5zaXZlLFxuICAgICAgICAgICAgICAgIHBvcm5vZ3JhcGhpYywgdGhyZWF0ZW5pbmcsIGFidXNpdmUsIGxpYWJsZSB0byBpbmNpdGUgcmFjaWFsIGhhdHJlZCxcbiAgICAgICAgICAgICAgICBkaXNjcmltaW5hdG9yeSwgYmxhc3BoZW1vdXMsIGluIGJyZWFjaCBvZiBjb25maWRlbmNlIG9yIGluIGJyZWFjaCBvZlxuICAgICAgICAgICAgICAgIHByaXZhY3k7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB0aGUgZG93bmxvYWRpbmcsIGNvcHlpbmcgYW5kIHVzZSBvZiB0aGUgQ29udGVudCB3aWxsIG5vdCBpbmZyaW5nZVxuICAgICAgICAgICAgICAgIHRoZSBwcm9wcmlldGFyeSByaWdodHMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGNvcHlyaWdodCxcbiAgICAgICAgICAgICAgICBwYXRlbnQsIHRyYWRlbWFyayBvciB0cmFkZSBzZWNyZXQgcmlnaHRzLCBvZiBhbnkgdGhpcmQgcGFydHk7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICBpZiB5b3VyIGVtcGxveWVyIGhhcyByaWdodHMgdG8gaW50ZWxsZWN0dWFsIHByb3BlcnR5IHlvdSBjcmVhdGUsIHlvdVxuICAgICAgICAgICAgICAgIGhhdmUgZWl0aGVyIChpKSByZWNlaXZlZCBwZXJtaXNzaW9uIGZyb20geW91ciBlbXBsb3llciB0byBwb3N0IG9yXG4gICAgICAgICAgICAgICAgbWFrZSBhdmFpbGFibGUgdGhlIENvbnRlbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYW55XG4gICAgICAgICAgICAgICAgc29mdHdhcmUsIG9yIChpaSkgc2VjdXJlZCBmcm9tIHlvdXIgZW1wbG95ZXIgYSB3YWl2ZXIgYXMgdG8gYWxsXG4gICAgICAgICAgICAgICAgcmlnaHRzIGluIG9yIHRvIHRoZSBDb250ZW50O1xuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgeW91IGhhdmUgZnVsbHkgY29tcGxpZWQgd2l0aCBhbnkgdGhpcmQtcGFydHkgbGljZW5zZXMgcmVsYXRpbmcgdG9cbiAgICAgICAgICAgICAgICB0aGUgQ29udGVudCwgYW5kIGhhdmUgZG9uZSBhbGwgdGhpbmdzIG5lY2Vzc2FyeSB0byBzdWNjZXNzZnVsbHkgcGFzc1xuICAgICAgICAgICAgICAgIHRocm91Z2ggdG8gZW5kIHVzZXJzIGFueSByZXF1aXJlZCB0ZXJtcztcbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIHRoZSBDb250ZW50IGRvZXMgbm90IGNvbnRhaW4gb3IgaW5zdGFsbCBhbnkgdmlydXNlcywgd29ybXMsIG1hbHdhcmUsXG4gICAgICAgICAgICAgICAgVHJvamFuIGhvcnNlcyBvciBvdGhlciBoYXJtZnVsIG9yIGRlc3RydWN0aXZlIGNvbnRlbnQ7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB0aGUgQ29udGVudCBpcyBub3Qgc3BhbSwgaXMgbm90IG1hY2hpbmUgb3IgcmFuZG9tbHkgZ2VuZXJhdGVkIGFuZFxuICAgICAgICAgICAgICAgIGRvZXMgbm90IGNvbnRhaW4gdW5ldGhpY2FsIG9yIHVud2FudGVkIGNvbW1lcmNpYWwgY29udGVudCBkZXNpZ25lZFxuICAgICAgICAgICAgICAgIHRvIGRyaXZlIHRyYWZmaWMgdG8gdGhpcmQgcGFydHkgc2l0ZXMgb3IgZnVydGhlciB1bmxhd2Z1bCBhY3RzO1xuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgeW91ciBVc2VyIEFjY291bnQgaXMgbm90IGdldHRpbmcgYWR2ZXJ0aXNlZCB2aWEgdW53YW50ZWQgZWxlY3Ryb25pY1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzIHN1Y2ggYXMgc3BhbSBsaW5rcyBvbiBuZXdzZ3JvdXBzLCBlbWFpbCBsaXN0cywgb3RoZXIgYmxvZ3NcbiAgICAgICAgICAgICAgICBhbmQgd2Vic2l0ZXMsIGFuZCBzaW1pbGFyIHVuc29saWNpdGVkIHByb21vdGlvbmFsIG1ldGhvZHM7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB5b3VyIFVzZXIgQWNjb3VudCBpcyBub3QgbmFtZWQgaW4gYSBtYW5uZXIgdGhhdCBtaXNsZWFkcyB1c2VycyBpbnRvXG4gICAgICAgICAgICAgICAgdGhpbmtpbmcgdGhhdCB5b3UgYXJlIGFub3RoZXIgcGVyc29uIG9yIGNvbXBhbnk7XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB0aGUgQ29udGVudCB3aWxsIG5vdCBjYXVzZSB5b3Ugb3IgdXMgdG8gYnJlYWNoIGFueSBsYXcsIHJlZ3VsYXRpb24sXG4gICAgICAgICAgICAgICAgcnVsZSwgY29kZSBvciBvdGhlciBsZWdhbCBvYmxpZ2F0aW9uOyBhbmRcbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPnRoZSBDb250ZW50IHdpbGwgbm90IGJyaW5nIHVzLCBvciB0aGUgU2l0ZSBpbnRvIGRpc3JlcHV0ZS48L2xpPlxuICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBCeSBzdWJtaXR0aW5nIENvbnRlbnQgZm9yIGluY2x1c2lvbiBpbiB5b3VyIFVzZXIgQWNjb3VudCBvciB0byB0aGUgU2l0ZSxcbiAgICAgICAgICAgICAgeW91IGdyYW50IHVzIGEgd29ybGR3aWRlLCByb3lhbHR5IGZyZWUsIGFuZCBub24tZXhjbHVzaXZlIGxpY2Vuc2UgdG9cbiAgICAgICAgICAgICAgdXNlIHRoYXQgY29udGVudCBpbiBhbnkgd2F5IChpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uLCByZXByb2R1Y2luZyxcbiAgICAgICAgICAgICAgY2hhbmdpbmcgYW5kIGNvbW11bmljYXRpbmcgdGhlIENvbnRlbnQpIGFuZCBwZXJtaXQgdXMgdG8gYXV0aG9yaXNlIGFueVxuICAgICAgICAgICAgICBvdGhlciBwZXJzb24gdG8gZG8gdGhlIHNhbWUgdGhpbmcuIElmIHlvdSBkZWxldGUgYW55IENvbnRlbnQsIHdlIHdpbGxcbiAgICAgICAgICAgICAgdXNlIHJlYXNvbmFibGUgZWZmb3J0cyB0byByZW1vdmUgaXQgZnJvbSB0aGUgU2l0ZSwgYnV0IHlvdSBhY2tub3dsZWRnZVxuICAgICAgICAgICAgICB0aGF0IGNhY2hpbmcgb3IgcmVmZXJlbmNlcyB0byB0aGUgQ29udGVudCBtYXkgbm90IGJlIG1hZGUgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgdW5hdmFpbGFibGUuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgV2l0aG91dCBsaW1pdGluZyBhbnkgb2YgdGhvc2UgcmVwcmVzZW50YXRpb25zIG9yIHdhcnJhbnRpZXMsIHdlIHJlc2VydmVcbiAgICAgICAgICAgICAgdGhlIHJpZ2h0ICh0aG91Z2ggbm90IHRoZSBvYmxpZ2F0aW9uKSB0bywgaW4gb3VyIHNvbGUgZGlzY3JldGlvblxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPG9sPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgcmVmdXNlIG9yIHJlbW92ZSBhbnkgY29udGVudCB0aGF0LCBpbiBvdXIgcmVhc29uYWJsZSBvcGluaW9uLFxuICAgICAgICAgICAgICAgIHZpb2xhdGVzIGFueSBvZiBvdXIgcG9saWNpZXMgb3IgYWdyZWVtZW50cyBvciBpcyBpbiBhbnkgd2F5IGhhcm1mdWxcbiAgICAgICAgICAgICAgICBvciBvYmplY3Rpb25hYmxlLCBvclxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgdGVybWluYXRlIG9yIGRlbnkgYWNjZXNzIHRvIGFuZCB1c2Ugb2YgdGhlIFNlcnZpY2UgdG8gYW55IGluZGl2aWR1YWxcbiAgICAgICAgICAgICAgICBvciBlbnRpdHkgZm9yIGFueSByZWFzb24sIGluIG91ciBzb2xlIGRpc2NyZXRpb24uXG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgICAgPGgzPlByaXZhY3k8L2gzPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIFdlIGdldCBpbmZvcm1hdGlvbiBhYm91dCB5b3UgaW4gYSByYW5nZSBvZiB3YXlzLiBXZSBjb2xsZWN0IHlvdXImbHJtO1xuICAgICAgICAgICAgICBuYW1lLCZscm07IGVtYWlsIGFkZHJlc3MgYW5kIG90aGVyIGluZm9ybWF0aW9uIHlvdSBkaXJlY3RseSBnaXZlIHVzIG9uXG4gICAgICAgICAgICAgIG91ciBTaXRlLiBXZSBtYXkgZ2V0IGluZm9ybWF0aW9uIGFib3V0IHlvdSBmcm9tIG90aGVyIHNvdXJjZXMuIFdlIG1heVxuICAgICAgICAgICAgICBhZGQgdGhpcyB0byBpbmZvcm1hdGlvbiB3ZSBnZXQgZnJvbSB0aGlzIFNpdGUuIFdlIG1heSBhdXRvbWF0aWNhbGx5IGxvZ1xuICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB5b3UgYW5kIHlvdXIgY29tcHV0ZXIuIFdlIG1heSBsb2cgaW5mb3JtYXRpb24gdXNpbmdcbiAgICAgICAgICAgICAgXCJjb29raWVzLlwiIENvb2tpZXMgYXJlIHNtYWxsIGRhdGEgZmlsZXMgc3RvcmVkIG9uIHlvdXIgaGFyZCBkcml2ZSBieSBhXG4gICAgICAgICAgICAgIHdlYnNpdGUuIENvb2tpZXMgaGVscCB1cyBtYWtlIG91ciBTaXRlIGFuZCB5b3VyIHZpc2l0IGJldHRlci4gV2UgdXNlXG4gICAgICAgICAgICAgIGNvb2tpZXMgdG8gc2VlIHdoaWNoIHBhcnRzIG9mIG91ciBTaXRlIHBlb3BsZSB1c2UgYW5kIGxpa2UgYW5kIHRvIGNvdW50XG4gICAgICAgICAgICAgIHZpc2l0cyB0byBvdXIgU2l0ZS4gV2UgbWF5IHN0b3JlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gYWxvbmcgd2l0aFxuICAgICAgICAgICAgICB5b3VyIGZpbGVzIGFuZCBkYXRhIG9uIGEgdGhpcmQgcGFydHkgc2VydmVyIHN1Y2ggYXMgQW1hem9uIFdlYiBTZXJ2aWNlcztcbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBXZSB1c2UgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiB0byBvcGVyYXRlLCBtYWludGFpbiwgYW5kIGltcHJvdmUgb3VyXG4gICAgICAgICAgICAgIHNpdGVzLCBwcm9kdWN0cywgYW5kIHNlcnZpY2VzLiBXZSB1c2UgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiB0b1xuICAgICAgICAgICAgICByZXNwb25kIHRvIGNvbW1lbnRzIGFuZCBxdWVzdGlvbnMgYW5kIHByb3ZpZGUgY3VzdG9tZXIgc2VydmljZS4gV2UgdXNlXG4gICAgICAgICAgICAgIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gdG8gcHJvdmlkZSBhbmQgZGVsaXZlciBwcm9kdWN0cyBhbmQgc2VydmljZXNcbiAgICAgICAgICAgICAgY3VzdG9tZXJzIHJlcXVlc3QuIFdlIGFsc28gdXNlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gdG8gc2VuZCB5b3VcbiAgICAgICAgICAgICAgbm90aWZpY2F0aW9ucyBhYm91dCB0aGUgc2VydmljZSBhbmQgdG8gcmVzcG9uZCB0byBjdXN0b21lciBzdXBwb3J0XG4gICAgICAgICAgICAgIHJlcXVlc3RzLiBZb3UgY2FuIGFjY2VzcyBhbmQgY2hhbmdlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gYnkgbG9nZ2luZ1xuICAgICAgICAgICAgICBpbiB0byB5b3VyIGFjY291bnQgc2V0dGluZ3MgcGFnZS5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBXZSBtYXkgc2hhcmUgcGVyc29uYWwgaW5mb3JtYXRpb24gd2l0aCB5b3VyIGNvbnNlbnQuIEZvciBleGFtcGxlLCB5b3VcbiAgICAgICAgICAgICAgbWF5IGxldCB1cyBzaGFyZSBwZXJzb25hbCBpbmZvcm1hdGlvbiB3aXRoIG90aGVycyBmb3IgdGhlaXIgb3duXG4gICAgICAgICAgICAgIG1hcmtldGluZyB1c2VzLiBUaG9zZSB1c2VzIHdpbGwgYmUgc3ViamVjdCB0byB0aGVpciBwcml2YWN5IHBvbGljaWVzLiBXZVxuICAgICAgICAgICAgICBtYXkgc2hhcmUgcGVyc29uYWwgaW5mb3JtYXRpb24gd2hlbiB3ZSBkbyBhIGJ1c2luZXNzIGRlYWwsIG9yIG5lZ290aWF0ZVxuICAgICAgICAgICAgICBhIGJ1c2luZXNzIGRlYWwsIGludm9sdmluZyBzYWxlIG9yIHRyYW5zZmVyIG9mIGFsbCBvciBhIHBhcnQgb2Ygb3VyXG4gICAgICAgICAgICAgIGJ1c2luZXNzIG9yIGFzc2V0cy4gVGhlc2UgZGVhbHMgY2FuIGluY2x1ZGUgYW55IG1lcmdlciwgZmluYW5jaW5nLFxuICAgICAgICAgICAgICBhY3F1aXNpdGlvbiwgb3IgYmFua3J1cHRjeSB0cmFuc2FjdGlvbiBvciBwcm9jZWVkaW5nLiBXZSBtYXkgc2hhcmVcbiAgICAgICAgICAgICAgcGVyc29uYWwgaW5mb3JtYXRpb24gZm9yIGxlZ2FsLCBwcm90ZWN0aW9uLCBhbmQgc2FmZXR5IHB1cnBvc2VzLiBXZSBtYXlcbiAgICAgICAgICAgICAgc2hhcmUgaW5mb3JtYXRpb24gdG8gY29tcGx5IHdpdGggbGF3cy4gV2UgbWF5IHNoYXJlIGluZm9ybWF0aW9uIHRvXG4gICAgICAgICAgICAgIHJlc3BvbmQgdG8gbGF3ZnVsIHJlcXVlc3RzIGFuZCBsZWdhbCBwcm9jZXNzLiBXZSBtYXkgc2hhcmUgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgdG8gcHJvdGVjdCB0aGUgcmlnaHRzLCBwcm9wZXJ0eSBvciBzYWZldHkgb2YgdGhlIFNlcnZpY2UsIG91ciB1c2VycyxcbiAgICAgICAgICAgICAgY3VzdG9tZXJzLCBhbmQgb3RoZXJzLiBUaGlzIGluY2x1ZGVzIGVuZm9yY2luZyBvdXIgYWdyZWVtZW50cywgcG9saWNpZXMsXG4gICAgICAgICAgICAgIGFuZCB0ZXJtcyBvZiB1c2UuIFdlIG1heSBzaGFyZSBpbmZvcm1hdGlvbiBpbiBhbiBlbWVyZ2VuY3kuIFdlIG1heSBzaGFyZVxuICAgICAgICAgICAgICBpbmZvcm1hdGlvbiB3aXRoIHRob3NlIHdobyBuZWVkIGl0IHRvIGRvIHdvcmsgZm9yIHVzLiBXZSBtYXkgYWxzbyBzaGFyZVxuICAgICAgICAgICAgICBhZ2dyZWdhdGVkIGFuZC9vciBhbm9ueW1pemVkIGRhdGEgd2l0aCBvdGhlcnMgZm9yIHRoZWlyIG93biB1c2VzLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIE91ciBtYXJrZXRpbmcgZW1haWxzIHRlbGwgeW91IGhvdyB0byDigJxvcHQtb3V0LuKAnSBJZiB5b3Ugb3B0IG91dCwgd2UgbWF5XG4gICAgICAgICAgICAgIHN0aWxsIHNlbmQgeW91IG5vbi1tYXJrZXRpbmcgZW1haWxzLiBOb24tbWFya2V0aW5nIGVtYWlscyBpbmNsdWRlIGVtYWlsc1xuICAgICAgICAgICAgICBhYm91dCB5b3VyIGFjY291bnRzIGFuZCBvdXIgYnVzaW5lc3MgZGVhbGluZ3Mgd2l0aCB5b3UuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgWW91IGNhbiB0eXBpY2FsbHkgcmVtb3ZlIGFuZCByZWplY3QgY29va2llcyBmcm9tIG91ciBTaXRlIHdpdGggeW91clxuICAgICAgICAgICAgICBicm93c2VyIHNldHRpbmdzLiBNYW55IGJyb3dzZXJzIGFyZSBzZXQgdG8gYWNjZXB0IGNvb2tpZXMgdW50aWwgeW91XG4gICAgICAgICAgICAgIGNoYW5nZSB5b3VyIHNldHRpbmdzLiBJZiB5b3UgcmVtb3ZlIG9yIHJlamVjdCBvdXIgY29va2llcywgaXQgY291bGRcbiAgICAgICAgICAgICAgYWZmZWN0IGhvdyBvdXIgU2l0ZSB3b3JrcyBmb3IgeW91LlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIElmIHt7IGNvbXBhbnlfbmFtZSB9fSBzZWxscyBhbGwgb3IgcGFydCBvZiBpdHMgYnVzaW5lc3Mgb3IgbWFrZXMgYSBzYWxlXG4gICAgICAgICAgICAgIG9yIHRyYW5zZmVyIG9mIGl0cyBhc3NldHMgb3IgaXMgb3RoZXJ3aXNlIGludm9sdmVkIGluIGEgbWVyZ2VyIG9yXG4gICAgICAgICAgICAgIHRyYW5zZmVyIG9mIGFsbCBvciBhIG1hdGVyaWFsIHBhcnQgb2YgaXRzIGJ1c2luZXNzLFxuICAgICAgICAgICAgICB7eyBjb21wYW55X25hbWUgfX0gbWF5IHRyYW5zZmVyIHlvdXIgaW5mb3JtYXRpb24gdG8gdGhlIHBhcnR5IG9yIHBhcnRpZXNcbiAgICAgICAgICAgICAgaW52b2x2ZWQgaW4gdGhlIHRyYW5zYWN0aW9uIGFzIHBhcnQgb2YgdGhhdCB0cmFuc2FjdGlvbi5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICB7eyBjb21wYW55X25hbWUgfX0gdXNlcyBhIHJhbmdlIG9mIGNvbW1lcmNpYWxseSByZWFzb25hYmxlIG1lYXN1cmVzIHRvXG4gICAgICAgICAgICAgIHNhZmVndWFyZCBQZXJzb25hbCBJbmZvcm1hdGlvbiBpbiBpdHMgcG9zc2Vzc2lvbiBhZ2FpbnN0IGxvc3MsIHRoZWZ0IGFuZFxuICAgICAgICAgICAgICB1bmF1dGhvcml6ZWQgdXNlLCBkaXNjbG9zdXJlIG9yIG1vZGlmaWNhdGlvbi4gSG93ZXZlciwgbm8gb25lIGNhblxuICAgICAgICAgICAgICBndWFyYW50ZWUgdGhlIGNvbXBsZXRlIHNhZmV0eSBvZiB5b3VyIGluZm9ybWF0aW9uLiBQbGVhc2UgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgbm90aWZ5IHVzIGlmIHlvdSBiZWxpZXZlIHRoZXJlIG1heSBiZSBhbiBpc3N1ZSBvciBhIHByb2JsZW0gcmVnYXJkaW5nXG4gICAgICAgICAgICAgIHRoZSBpbnRlZ3JpdHkgb2YgeW91ciBpbmZvcm1hdGlvbiBieSBjb250YWN0aW5nIHVzLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIEluIHNvbWUgY2FzZXMsIHdlIG1heSB1c2UgYW4gdW5hZmZpbGlhdGVkIHBheW1lbnQgc2VydmljZSB0byBhbGxvdyB5b3VcbiAgICAgICAgICAgICAgdG8gcHVyY2hhc2UgYSBwcm9kdWN0IG9yIG1ha2UgcGF5bWVudHMgKOKAnFBheW1lbnQgU2VydmljZeKAnSkuIElmIHlvdSB3aXNoXG4gICAgICAgICAgICAgIHRvIHB1cmNoYXNlIGEgcHJvZHVjdCBvciBtYWtlIGEgcGF5bWVudCBpbiBzdWNoIGEgY2FzZSwgeW91IHdpbGwgYmVcbiAgICAgICAgICAgICAgZGlyZWN0ZWQgdG8gYSBQYXltZW50IFNlcnZpY2Ugd2VicGFnZS4gQW55IGluZm9ybWF0aW9uIHRoYXQgeW91IHByb3ZpZGVcbiAgICAgICAgICAgICAgdG8gYSBQYXltZW50IFNlcnZpY2Ugd2lsbCBiZSBzdWJqZWN0IHRvIHRoZSBhcHBsaWNhYmxlIFBheW1lbnQgU2VydmljZeKAmXNcbiAgICAgICAgICAgICAgcHJpdmFjeSBwb2xpY3ksIHJhdGhlciB0aGFuIHRoaXMgUHJpdmFjeSBQb2xpY3kuIFdlIGhhdmUgbm8gY29udHJvbFxuICAgICAgICAgICAgICBvdmVyLCBhbmQgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IsIGFueSBQYXltZW50IFNlcnZpY2XigJlzIHVzZSBvZlxuICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBjb2xsZWN0ZWQgdGhyb3VnaCBhbnkgUGF5bWVudCBTZXJ2aWNlLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIFRoZSB7eyBjb21wYW55X25hbWUgfX0gd2Vic2l0ZSBtYXkgYWxzbyBiZSBsaW5rZWQgdG8gc2l0ZXMgb3BlcmF0ZWQgYnlcbiAgICAgICAgICAgICAgdGhpcmQgcGFydGllcywgYW5kIG1heSBjYXJyeSBhZHZlcnRpc2VtZW50cyBvciBvZmZlciBjb250ZW50LFxuICAgICAgICAgICAgICBmdW5jdGlvbmFsaXR5LCBnYW1lcyBvciBhcHBsaWNhdGlvbnMgZGV2ZWxvcGVkIGFuZCBtYWludGFpbmVkIGJ5IHRoaXJkXG4gICAgICAgICAgICAgIHBhcnRpZXMuIFNvbWUgb2YgdGhlc2UgdGhpcmQgcGFydHkgc2l0ZXMgbWF5IGJlIGNvLWJyYW5kZWQgd2l0aCBhXG4gICAgICAgICAgICAgIHt7IGNvbXBhbnlfbmFtZSB9fSBsb2dvLCBldmVuIHRob3VnaCB0aGV5IGFyZSBub3Qgb3BlcmF0ZWQgb3IgbWFpbnRhaW5lZFxuICAgICAgICAgICAgICBieSB1cy5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICB7eyBjb21wYW55X25hbWUgfX0gaXMgbm90IHJlc3BvbnNpYmxlIGZvciB0aGUgcHJpdmFjeSBwcmFjdGljZXMgb2YgYW55XG4gICAgICAgICAgICAgIHN1Y2ggdGhpcmQgcGFydGllcywgYW5kIG9uY2UgeW91IGxlYXZlIHRoZSB7eyBjb21wYW55X25hbWUgfX0gd2Vic2l0ZSxcbiAgICAgICAgICAgICAgeW91IHNob3VsZCBjaGVjayB0aGUgYXBwbGljYWJsZSBwcml2YWN5IHBvbGljeSBvZiB0aGUgb3RoZXIgc2VydmljZS5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxoMz5RdWVzdGlvbnMgJmFtcDsgQ29tbWVudHM8L2gzPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIElmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMgYWJvdXQgb3VyIFByaXZhY3kgUG9saWN5LCBwbGVhc2VcbiAgICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzp7eyBjb21wYW55X2VtYWlsIH19XCI+bGV0IHVzIGtub3c8L2E+LlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,50 +0,0 @@
1
- import { Component, Injector, Input, ViewChild } from '@angular/core';
2
- import { NavigationEnd } from '@angular/router';
3
- import { AppBaseComponent } from '@posiwise/app-base-component';
4
- import { PermissionService } from '@posiwise/common-services';
5
- import { TabMenu } from 'primeng/tabmenu';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/router";
8
- import * as i2 from "primeng/tabmenu";
9
- export class PwTabsComponent extends AppBaseComponent {
10
- constructor(injector) {
11
- super(injector);
12
- this.items = [];
13
- this.withSubscription = false;
14
- }
15
- ngOnInit() {
16
- if (this.withSubscription) {
17
- this.getUserSubscription().subscribe((subscription) => {
18
- this.items.forEach(item => {
19
- // prepends the subscription slug to the route
20
- item.routerLink = `/${subscription?.slug}${item.routerLink[0]}`;
21
- item.visible = item?.state
22
- ? this.permissionService.evaluatePermissions(item.state['permission'], PermissionService.selectedProduct?.feature_key, PermissionService.selectedProduct?.permission_key)
23
- : item.visible;
24
- });
25
- });
26
- }
27
- this.routeEventSubscription = this.router.events.subscribe(e => {
28
- if (e instanceof NavigationEnd) {
29
- this.tabInstance.activeItem = this.items.find(item => item.routerLink === this.router.url);
30
- }
31
- });
32
- }
33
- ngOnDestroy() {
34
- this.routeEventSubscription.unsubscribe();
35
- }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PwTabsComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PwTabsComponent, selector: "pw-tabs", inputs: { items: "items", withSubscription: "withSubscription" }, viewQueries: [{ propertyName: "tabInstance", first: true, predicate: ["tabMenu"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu [model]=\"items\"\n #tabMenu></p-tabMenu>\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <router-outlet></router-outlet>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2.TabMenu, selector: "p-tabMenu", inputs: ["model", "activeItem", "scrollable", "popup", "style", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["activeItemChange"] }] }); }
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PwTabsComponent, decorators: [{
40
- type: Component,
41
- args: [{ selector: 'pw-tabs', template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu [model]=\"items\"\n #tabMenu></p-tabMenu>\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <router-outlet></router-outlet>\n </div>\n </div>\n</div>\n" }]
42
- }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { items: [{
43
- type: Input
44
- }], tabInstance: [{
45
- type: ViewChild,
46
- args: ['tabMenu', { static: false }]
47
- }], withSubscription: [{
48
- type: Input
49
- }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHctdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvcHctdGFicy9wdy10YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wdy10YWJzL3B3LXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQU8xQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxnQkFBZ0I7SUFjakQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFicEIsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQU12QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFRekIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3RCLDhDQUE4QztvQkFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNoRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxLQUFLO3dCQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUN4QixpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUM5QyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUNwRDt3QkFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzNELElBQUksQ0FBQyxZQUFZLGFBQWEsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDekMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUM5QyxDQUFDO1lBQ04sQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVRLFdBQVc7UUFDaEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7K0dBOUNRLGVBQWU7bUdBQWYsZUFBZSxnUENmNUIsMlBBU0E7OzRGRE1hLGVBQWU7a0JBSjNCLFNBQVM7K0JBQ0ksU0FBUzs2RUFLbkIsS0FBSztzQkFESixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUl2QyxnQkFBZ0I7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcblxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUYWJNZW51IH0gZnJvbSAncHJpbWVuZy90YWJtZW51JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiBhcyBSeFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXRhYnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdy10YWJzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQd1RhYnNDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgaXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcblxuICAgIEBWaWV3Q2hpbGQoJ3RhYk1lbnUnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICB0YWJJbnN0YW5jZTogVGFiTWVudTtcblxuICAgIEBJbnB1dCgpXG4gICAgd2l0aFN1YnNjcmlwdGlvbiA9IGZhbHNlO1xuXG4gICAgYWN0aXZlVGFiOiBNZW51SXRlbTtcblxuICAgIHByaXZhdGUgcm91dGVFdmVudFN1YnNjcmlwdGlvbjogUnhTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy53aXRoU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmdldFVzZXJTdWJzY3JpcHRpb24oKS5zdWJzY3JpYmUoKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBwcmVwZW5kcyB0aGUgc3Vic2NyaXB0aW9uIHNsdWcgdG8gdGhlIHJvdXRlXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucm91dGVyTGluayA9IGAvJHtzdWJzY3JpcHRpb24/LnNsdWd9JHtpdGVtLnJvdXRlckxpbmtbMF19YDtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS52aXNpYmxlID0gaXRlbT8uc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5wZXJtaXNzaW9uU2VydmljZS5ldmFsdWF0ZVBlcm1pc3Npb25zKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5zdGF0ZVsncGVybWlzc2lvbiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRQcm9kdWN0Py5mZWF0dXJlX2tleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkUHJvZHVjdD8ucGVybWlzc2lvbl9rZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpdGVtLnZpc2libGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucm91dGVFdmVudFN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYkluc3RhbmNlLmFjdGl2ZUl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0gPT4gaXRlbS5yb3V0ZXJMaW5rID09PSB0aGlzLnJvdXRlci51cmxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5yb3V0ZUV2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxwLXRhYk1lbnUgW21vZGVsXT1cIml0ZW1zXCJcbiAgICAjdGFiTWVudT48L3AtdGFiTWVudT5cbiAgPGRpdiBjbGFzcz1cImRhc2hib2FyZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtYm9keVwiPlxuICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,48 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { DaterangepickerDirective } from 'ngx-daterangepicker-material';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/forms";
5
- import * as i2 from "ngx-daterangepicker-material";
6
- export class DateRangePickerComponent {
7
- constructor() {
8
- this.initialized = false;
9
- this.dateRangeChange = new EventEmitter();
10
- }
11
- onDateRangeSelect(event) {
12
- if (event.startDate && event.endDate) {
13
- this.dateRangeChange.emit(event);
14
- }
15
- }
16
- ngAfterViewInit() {
17
- setTimeout(() => {
18
- this.initialized = true;
19
- });
20
- }
21
- onClearDate() {
22
- if (!this.initialized) {
23
- return;
24
- }
25
- this.dateRangeChange.emit({ startDate: null, endDate: null });
26
- }
27
- openDatepicker() {
28
- setTimeout(() => {
29
- this.pickerDirective.open();
30
- }, 50);
31
- }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: DateRangePickerComponent, selector: "app-date-picker", inputs: { selectedDateRange: "selectedDateRange", dateRanges: "dateRanges" }, outputs: { dateRangeChange: "dateRangeChange" }, viewQueries: [{ propertyName: "pickerDirective", first: true, predicate: DaterangepickerDirective, descendants: true }], ngImport: i0, template: "<div class=\"my-3\">\n <div class=\"row\">\n <!-- start date -->\n <div class=\"col-6 col-sm-3\">\n <div class=\"\">\n <input ngxDaterangepickerMd\n class=\"form-control\"\n [(ngModel)]=\"selectedDateRange\"\n [ranges]=\"dateRanges\"\n [alwaysShowCalendars]=\"true\"\n [locale]=\"{ format: 'DD-MMM-YYYY' }\"\n [showCustomRangeLabel]=\"true\"\n [linkedCalendars]=\"true\"\n [showClearButton]=\"true\"\n (clearClicked)=\"onClearDate()\"\n placeholder=\"Select a date range (optional)\"\n opens=\"center\"\n (ngModelChange)=\"onDateRangeSelect($event)\"\n />\n </div>\n </div>\n <div class=\"col-6 col-sm-3 pop\">\n\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary ngx-daterangepicker-action\"\n (click)=\"openDatepicker()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>", styles: ["::ng-deep .md-drppicker{top:auto!important;left:auto!important;margin-top:0!important}::ng-deep .md-drppicker .clear svg{margin-right:2px;margin-bottom:10px}.pop{margin-left:-22px}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }] }); }
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DateRangePickerComponent, decorators: [{
36
- type: Component,
37
- args: [{ selector: 'app-date-picker', template: "<div class=\"my-3\">\n <div class=\"row\">\n <!-- start date -->\n <div class=\"col-6 col-sm-3\">\n <div class=\"\">\n <input ngxDaterangepickerMd\n class=\"form-control\"\n [(ngModel)]=\"selectedDateRange\"\n [ranges]=\"dateRanges\"\n [alwaysShowCalendars]=\"true\"\n [locale]=\"{ format: 'DD-MMM-YYYY' }\"\n [showCustomRangeLabel]=\"true\"\n [linkedCalendars]=\"true\"\n [showClearButton]=\"true\"\n (clearClicked)=\"onClearDate()\"\n placeholder=\"Select a date range (optional)\"\n opens=\"center\"\n (ngModelChange)=\"onDateRangeSelect($event)\"\n />\n </div>\n </div>\n <div class=\"col-6 col-sm-3 pop\">\n\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary ngx-daterangepicker-action\"\n (click)=\"openDatepicker()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>", styles: ["::ng-deep .md-drppicker{top:auto!important;left:auto!important;margin-top:0!important}::ng-deep .md-drppicker .clear svg{margin-right:2px;margin-bottom:10px}.pop{margin-left:-22px}\n"] }]
38
- }], propDecorators: { pickerDirective: [{
39
- type: ViewChild,
40
- args: [DaterangepickerDirective, { static: false }]
41
- }], selectedDateRange: [{
42
- type: Input
43
- }], dateRanges: [{
44
- type: Input
45
- }], dateRangeChange: [{
46
- type: Output
47
- }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL3JhbmdlLWRhdGUtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9yYW5nZS1kYXRlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFPeEUsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQVNZLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBSWxCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBR3hDLENBQUM7S0F1QlI7SUFyQkcsaUJBQWlCLENBQUMsS0FBMkQ7UUFDekUsSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWU7UUFDWCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsV0FBVztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELGNBQWM7UUFDVixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDOytHQWpDUSx3QkFBd0I7bUdBQXhCLHdCQUF3Qix1T0FDdEIsd0JBQXdCLGdEQ1h2Qyw2L0JBZ0NROzs0RkR0Qkssd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLGlCQUFpQjs4QkFNM0IsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFLN0MsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgRGF0ZXJhbmdlcGlja2VyRGlyZWN0aXZlIH0gZnJvbSAnbmd4LWRhdGVyYW5nZXBpY2tlci1tYXRlcmlhbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWRhdGUtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZChEYXRlcmFuZ2VwaWNrZXJEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHBpY2tlckRpcmVjdGl2ZTogRGF0ZXJhbmdlcGlja2VyRGlyZWN0aXZlO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2VsZWN0ZWREYXRlUmFuZ2U6IHsgc3RhcnREYXRlOiBtb21lbnQuTW9tZW50OyBlbmREYXRlOiBtb21lbnQuTW9tZW50IH07XG4gICAgQElucHV0KCkgZGF0ZVJhbmdlcztcbiAgICBAT3V0cHV0KCkgZGF0ZVJhbmdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIHN0YXJ0RGF0ZTogbW9tZW50Lk1vbWVudDtcbiAgICAgICAgZW5kRGF0ZTogbW9tZW50Lk1vbWVudDtcbiAgICB9PigpO1xuXG4gICAgb25EYXRlUmFuZ2VTZWxlY3QoZXZlbnQ6IHsgc3RhcnREYXRlOiBtb21lbnQuTW9tZW50OyBlbmREYXRlOiBtb21lbnQuTW9tZW50IH0pIHtcbiAgICAgICAgaWYgKGV2ZW50LnN0YXJ0RGF0ZSAmJiBldmVudC5lbmREYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVSYW5nZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvbkNsZWFyRGF0ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRlUmFuZ2VDaGFuZ2UuZW1pdCh7IHN0YXJ0RGF0ZTogbnVsbCwgZW5kRGF0ZTogbnVsbCB9KTtcbiAgICB9XG4gICAgb3BlbkRhdGVwaWNrZXIoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5waWNrZXJEaXJlY3RpdmUub3BlbigpO1xuICAgICAgICB9LCA1MCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm15LTNcIj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDwhLS0gc3RhcnQgZGF0ZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLXNtLTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgPGlucHV0IG5neERhdGVyYW5nZXBpY2tlck1kXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIlxuICAgICAgW3Jhbmdlc109XCJkYXRlUmFuZ2VzXCJcbiAgICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cInRydWVcIlxuICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NTS1ZWVlZJyB9XCJcbiAgICAgIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJ0cnVlXCJcbiAgICAgIFtsaW5rZWRDYWxlbmRhcnNdPVwidHJ1ZVwiXG4gICAgICBbc2hvd0NsZWFyQnV0dG9uXT1cInRydWVcIlxuICAgICAgKGNsZWFyQ2xpY2tlZCk9XCJvbkNsZWFyRGF0ZSgpXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGEgZGF0ZSByYW5nZSAob3B0aW9uYWwpXCJcbiAgICAgIG9wZW5zPVwiY2VudGVyXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRGF0ZVJhbmdlU2VsZWN0KCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtc20tMyBwb3BcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG5neC1kYXRlcmFuZ2VwaWNrZXItYWN0aW9uXCJcbiAgICAgICAgICAoY2xpY2spPVwib3BlbkRhdGVwaWNrZXIoKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2FsZW5kYXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8L2Rpdj4iXX0=
@@ -1,99 +0,0 @@
1
- import { DragDropModule } from '@angular/cdk/drag-drop';
2
- import { CommonModule } from '@angular/common';
3
- import { NgModule } from '@angular/core';
4
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
- import { AppLoaderModule } from '@posiwise/app-loader';
6
- import { CoreTranslocoModule } from '@posiwise/core-transloco';
7
- import { DirectivesModule } from '@posiwise/directives';
8
- import { FieldErrorDisplayModule, ProfileImageCropperModule, ResourceHeaderModule } from '@posiwise/utils';
9
- import { AutoCompleteModule } from 'primeng/autocomplete';
10
- import { ButtonModule } from 'primeng/button';
11
- import { ProgressSpinnerModule } from 'primeng/progressspinner';
12
- import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
13
- import { InputContainerComponent } from './input-container/input-container.component';
14
- import { NoDataComponent } from './no-data/no-data.component';
15
- import * as i0 from "@angular/core";
16
- export class ResourceSharedComponentsModule {
17
- constructor() {
18
- console.log('🚀 RESOURCE SHARED COMPONENTS MODULE LOADED! - Minimal shared components for resource module');
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceSharedComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ResourceSharedComponentsModule, declarations: [NoDataComponent, InputContainerComponent], imports: [CommonModule,
22
- FormsModule,
23
- ReactiveFormsModule,
24
- AppLoaderModule,
25
- CoreTranslocoModule,
26
- DirectivesModule,
27
- ButtonModule,
28
- NgbTooltipModule,
29
- ProgressSpinnerModule,
30
- AutoCompleteModule,
31
- DragDropModule,
32
- FieldErrorDisplayModule,
33
- ProfileImageCropperModule, // ✅ Import the separate module
34
- ResourceHeaderModule // ✅ Import the separate module
35
- ], exports: [ProfileImageCropperModule, // ✅ Re-export module for backward compatibility
36
- ResourceHeaderModule, // ✅ Re-export module for backward compatibility
37
- InputContainerComponent,
38
- NoDataComponent,
39
- ButtonModule,
40
- DragDropModule,
41
- ProgressSpinnerModule,
42
- AutoCompleteModule,
43
- FieldErrorDisplayModule] }); }
44
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceSharedComponentsModule, imports: [CommonModule,
45
- FormsModule,
46
- ReactiveFormsModule,
47
- AppLoaderModule,
48
- CoreTranslocoModule,
49
- DirectivesModule,
50
- ButtonModule,
51
- NgbTooltipModule,
52
- ProgressSpinnerModule,
53
- AutoCompleteModule,
54
- DragDropModule,
55
- FieldErrorDisplayModule,
56
- ProfileImageCropperModule, // ✅ Import the separate module
57
- ResourceHeaderModule // ✅ Import the separate module
58
- , ProfileImageCropperModule, // ✅ Re-export module for backward compatibility
59
- ResourceHeaderModule,
60
- ButtonModule,
61
- DragDropModule,
62
- ProgressSpinnerModule,
63
- AutoCompleteModule,
64
- FieldErrorDisplayModule] }); }
65
- }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceSharedComponentsModule, decorators: [{
67
- type: NgModule,
68
- args: [{
69
- declarations: [NoDataComponent, InputContainerComponent],
70
- imports: [
71
- CommonModule,
72
- FormsModule,
73
- ReactiveFormsModule,
74
- AppLoaderModule,
75
- CoreTranslocoModule,
76
- DirectivesModule,
77
- ButtonModule,
78
- NgbTooltipModule,
79
- ProgressSpinnerModule,
80
- AutoCompleteModule,
81
- DragDropModule,
82
- FieldErrorDisplayModule,
83
- ProfileImageCropperModule, // ✅ Import the separate module
84
- ResourceHeaderModule // ✅ Import the separate module
85
- ],
86
- exports: [
87
- ProfileImageCropperModule, // ✅ Re-export module for backward compatibility
88
- ResourceHeaderModule, // ✅ Re-export module for backward compatibility
89
- InputContainerComponent,
90
- NoDataComponent,
91
- ButtonModule,
92
- DragDropModule,
93
- ProgressSpinnerModule,
94
- AutoCompleteModule,
95
- FieldErrorDisplayModule
96
- ]
97
- }]
98
- }], ctorParameters: () => [] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2Utc2hhcmVkLWNvbXBvbmVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL3Jlc291cmNlLXNoYXJlZC1jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixvQkFBb0IsRUFDdkIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQWdDOUQsTUFBTSxPQUFPLDhCQUE4QjtJQUN2QztRQUNJLE9BQU8sQ0FBQyxHQUFHLENBQ1AsOEZBQThGLENBQ2pHLENBQUM7SUFDTixDQUFDOytHQUxRLDhCQUE4QjtnSEFBOUIsOEJBQThCLGlCQTdCeEIsZUFBZSxFQUFFLHVCQUF1QixhQUVuRCxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLHVCQUF1QjtZQUN2Qix5QkFBeUIsRUFBRSwrQkFBK0I7WUFDMUQsb0JBQW9CLENBQUMsK0JBQStCO3FCQUdwRCx5QkFBeUIsRUFBRSxnREFBZ0Q7WUFDM0Usb0JBQW9CLEVBQUUsZ0RBQWdEO1lBQ3RFLHVCQUF1QjtZQUN2QixlQUFlO1lBQ2YsWUFBWTtZQUNaLGNBQWM7WUFDZCxxQkFBcUI7WUFDckIsa0JBQWtCO1lBQ2xCLHVCQUF1QjtnSEFHbEIsOEJBQThCLFlBM0JuQyxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLHVCQUF1QjtZQUN2Qix5QkFBeUIsRUFBRSwrQkFBK0I7WUFDMUQsb0JBQW9CLENBQUMsK0JBQStCO2NBR3BELHlCQUF5QixFQUFFLGdEQUFnRDtZQUMzRSxvQkFBb0I7WUFHcEIsWUFBWTtZQUNaLGNBQWM7WUFDZCxxQkFBcUI7WUFDckIsa0JBQWtCO1lBQ2xCLHVCQUF1Qjs7NEZBR2xCLDhCQUE4QjtrQkE5QjFDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDO29CQUN4RCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIseUJBQXlCLEVBQUUsK0JBQStCO3dCQUMxRCxvQkFBb0IsQ0FBQywrQkFBK0I7cUJBQ3ZEO29CQUNELE9BQU8sRUFBRTt3QkFDTCx5QkFBeUIsRUFBRSxnREFBZ0Q7d0JBQzNFLG9CQUFvQixFQUFFLGdEQUFnRDt3QkFDdEUsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3FCQUMxQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBcHBMb2FkZXJNb2R1bGUgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWxvYWRlcic7XG5pbXBvcnQgeyBDb3JlVHJhbnNsb2NvTW9kdWxlIH0gZnJvbSAnQHBvc2l3aXNlL2NvcmUtdHJhbnNsb2NvJztcbmltcG9ydCB7IERpcmVjdGl2ZXNNb2R1bGUgfSBmcm9tICdAcG9zaXdpc2UvZGlyZWN0aXZlcyc7XG5pbXBvcnQge1xuICAgIEZpZWxkRXJyb3JEaXNwbGF5TW9kdWxlLFxuICAgIFByb2ZpbGVJbWFnZUNyb3BwZXJNb2R1bGUsXG4gICAgUmVzb3VyY2VIZWFkZXJNb2R1bGVcbn0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcblxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9wcm9ncmVzc3NwaW5uZXInO1xuXG5pbXBvcnQgeyBOZ2JUb29sdGlwTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5pbXBvcnQgeyBJbnB1dENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtY29udGFpbmVyL2lucHV0LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9EYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9uby1kYXRhL25vLWRhdGEuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtOb0RhdGFDb21wb25lbnQsIElucHV0Q29udGFpbmVyQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEFwcExvYWRlck1vZHVsZSxcbiAgICAgICAgQ29yZVRyYW5zbG9jb01vZHVsZSxcbiAgICAgICAgRGlyZWN0aXZlc01vZHVsZSxcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxuICAgICAgICBOZ2JUb29sdGlwTW9kdWxlLFxuICAgICAgICBQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgICAgIEF1dG9Db21wbGV0ZU1vZHVsZSxcbiAgICAgICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgICAgIEZpZWxkRXJyb3JEaXNwbGF5TW9kdWxlLFxuICAgICAgICBQcm9maWxlSW1hZ2VDcm9wcGVyTW9kdWxlLCAvLyDinIUgSW1wb3J0IHRoZSBzZXBhcmF0ZSBtb2R1bGVcbiAgICAgICAgUmVzb3VyY2VIZWFkZXJNb2R1bGUgLy8g4pyFIEltcG9ydCB0aGUgc2VwYXJhdGUgbW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFByb2ZpbGVJbWFnZUNyb3BwZXJNb2R1bGUsIC8vIOKchSBSZS1leHBvcnQgbW9kdWxlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICAgIFJlc291cmNlSGVhZGVyTW9kdWxlLCAvLyDinIUgUmUtZXhwb3J0IG1vZHVsZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgICBJbnB1dENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgTm9EYXRhQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25Nb2R1bGUsXG4gICAgICAgIERyYWdEcm9wTW9kdWxlLFxuICAgICAgICBQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgICAgIEF1dG9Db21wbGV0ZU1vZHVsZSxcbiAgICAgICAgRmllbGRFcnJvckRpc3BsYXlNb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlU2hhcmVkQ29tcG9uZW50c01vZHVsZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgJ/CfmoAgUkVTT1VSQ0UgU0hBUkVEIENPTVBPTkVOVFMgTU9EVUxFIExPQURFRCEgLSBNaW5pbWFsIHNoYXJlZCBjb21wb25lbnRzIGZvciByZXNvdXJjZSBtb2R1bGUnXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNvbXBvbmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3NoYXJlZC1jb21wb25lbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNoYXJlZE1vZGFsQ29udGV4dCB7XG4gICAgbW9kYWw6IHtcbiAgICAgICAgZGlzbWlzczogKCkgPT4gdm9pZDtcbiAgICAgICAgY2xvc2U6ICgpID0+IHZvaWQ7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnJvbGxlZFVzZXIge1xuICAgIGlzX293bmVyOiBib29sZWFuO1xuICAgIGlkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBEZWZpbml0aW9uIHtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cCB7XG4gICAgaWQ/OiBudW1iZXI7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBncm91cF9kZWZpbml0aW9uX2lkPzogbnVtYmVyO1xuICAgIGdyb3VwX2RlZmluaXRpb25fbmFtZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUGVybWlzc2lvbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBhcmVudE5hbWU/OiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uVHJlZURhdGEge1xuICAgIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uW107XG4gICAgZ3JhbnRlZFBlcm1pc3Npb25OYW1lczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSlF1ZXJ5IHtcbiAgICBqc3RyZWUobWV0aG9kOiBzdHJpbmcsIC4uLmFyZ3M6IG9iamVjdFtdKTogb2JqZWN0O1xuICAgIGpzdHJlZShvcHRpb25zOiBvYmplY3QpOiBvYmplY3Q7XG59XG4iXX0=