@posiwise/shared-components 0.0.142 → 0.0.143
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.
- package/esm2022/index.mjs +1 -3
- package/esm2022/lib/resource-shared-components.module.mjs +2 -2
- package/esm2022/lib/shared-components.module.mjs +7 -16
- package/fesm2022/posiwise-shared-components.mjs +25 -156
- package/fesm2022/posiwise-shared-components.mjs.map +1 -1
- package/index.d.ts +0 -2
- package/lib/shared-components.module.d.ts +1 -2
- package/package.json +1 -1
- package/esm2022/lib/demo-cards/demo-cards.component.mjs +0 -101
- package/esm2022/lib/demo-cards/demo-cards.module.mjs +0 -44
- package/lib/demo-cards/demo-cards.component.d.ts +0 -33
- package/lib/demo-cards/demo-cards.module.d.ts +0 -14
package/index.d.ts
CHANGED
|
@@ -7,8 +7,6 @@ export * from './lib/input-container/input-container.component';
|
|
|
7
7
|
export * from './lib/privacy-and-tos/privacy-and-tos.component';
|
|
8
8
|
export * from './lib/privacy-policy/privacy-policy.component';
|
|
9
9
|
export * from './lib/splash/splash.component';
|
|
10
|
-
export * from './lib/demo-cards/demo-cards.component';
|
|
11
|
-
export * from './lib/demo-cards/demo-cards.module';
|
|
12
10
|
export * from './lib/terms-conditions/terms-conditions.component';
|
|
13
11
|
export * from './lib/authenticator/authenticator.component';
|
|
14
12
|
export * from './lib/clearbit-icon/clearbit-icon.component';
|
|
@@ -36,10 +36,9 @@ import * as i34 from "@posiwise/pipes";
|
|
|
36
36
|
import * as i35 from "@angular/common";
|
|
37
37
|
import * as i36 from "@posiwise/utils";
|
|
38
38
|
import * as i37 from "./resource-shared-components.module";
|
|
39
|
-
import * as i38 from "./demo-cards/demo-cards.module";
|
|
40
39
|
export declare class SharedComponentsModule {
|
|
41
40
|
constructor();
|
|
42
41
|
static ɵfac: i0.ɵɵFactoryDeclaration<SharedComponentsModule, never>;
|
|
43
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedComponentsModule, [typeof i1.PasswordValidationComponent, typeof i2.PwTabsComponent, typeof i3.DateRangePickerComponent, typeof i4.PermissionTreeComponent, typeof i5.PrivacyAndTosComponent, typeof i6.PrivacyPolicyComponent, typeof i7.TermsConditionsComponent, typeof i8.SplashComponent, typeof i9.AuthenticatorComponent, typeof i10.ClearBitIconComponent, typeof i11.ComingSoonComponent, typeof i12.EntityGroupComponent, typeof i13.GroupsComponent, typeof i14.GroupDefinitionComponent, typeof i15.NumberPickerComponent, typeof i16.HeaderComponent, typeof i17.LandingPageFooterBComponent], [typeof i18.FormsModule, typeof i19.AppLoaderModule, typeof i18.ReactiveFormsModule, typeof i20.DirectivesModule, typeof i21.CoreTranslocoModule, typeof i22.RouterModule, typeof i23.NgbTooltipModule, typeof i23.NgbNavModule, typeof i23.NgbModalModule, typeof i24.TableModule, typeof i25.TabMenuModule, typeof i26.ButtonModule, typeof i27.DropdownModule, typeof i28.MultiSelectModule, typeof i29.ProgressSpinnerModule, typeof i30.AutoCompleteModule, typeof i31.ImageCropperModule, typeof i32.UiSwitchModule, typeof i33.NgxDaterangepickerMd, typeof i34.PipesModule, typeof i35.CommonModule, typeof i35.NgIf, typeof i36.FieldErrorDisplayModule, typeof i37.ResourceSharedComponentsModule
|
|
42
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedComponentsModule, [typeof i1.PasswordValidationComponent, typeof i2.PwTabsComponent, typeof i3.DateRangePickerComponent, typeof i4.PermissionTreeComponent, typeof i5.PrivacyAndTosComponent, typeof i6.PrivacyPolicyComponent, typeof i7.TermsConditionsComponent, typeof i8.SplashComponent, typeof i9.AuthenticatorComponent, typeof i10.ClearBitIconComponent, typeof i11.ComingSoonComponent, typeof i12.EntityGroupComponent, typeof i13.GroupsComponent, typeof i14.GroupDefinitionComponent, typeof i15.NumberPickerComponent, typeof i16.HeaderComponent, typeof i17.LandingPageFooterBComponent], [typeof i18.FormsModule, typeof i19.AppLoaderModule, typeof i18.ReactiveFormsModule, typeof i20.DirectivesModule, typeof i21.CoreTranslocoModule, typeof i22.RouterModule, typeof i23.NgbTooltipModule, typeof i23.NgbNavModule, typeof i23.NgbModalModule, typeof i24.TableModule, typeof i25.TabMenuModule, typeof i26.ButtonModule, typeof i27.DropdownModule, typeof i28.MultiSelectModule, typeof i29.ProgressSpinnerModule, typeof i30.AutoCompleteModule, typeof i31.ImageCropperModule, typeof i32.UiSwitchModule, typeof i33.NgxDaterangepickerMd, typeof i34.PipesModule, typeof i35.CommonModule, typeof i35.NgIf, typeof i36.FieldErrorDisplayModule, typeof i37.ResourceSharedComponentsModule], [typeof i1.PasswordValidationComponent, typeof i2.PwTabsComponent, typeof i3.DateRangePickerComponent, typeof i23.NgbTooltipModule, typeof i23.NgbNavModule, typeof i23.NgbModalModule, typeof i24.TableModule, typeof i25.TabMenuModule, typeof i26.ButtonModule, typeof i27.DropdownModule, typeof i28.MultiSelectModule, typeof i29.ProgressSpinnerModule, typeof i30.AutoCompleteModule, typeof i31.ImageCropperModule, typeof i32.UiSwitchModule, typeof i33.NgxDaterangepickerMd, typeof i4.PermissionTreeComponent, typeof i5.PrivacyAndTosComponent, typeof i6.PrivacyPolicyComponent, typeof i7.TermsConditionsComponent, typeof i8.SplashComponent, typeof i9.AuthenticatorComponent, typeof i10.ClearBitIconComponent, typeof i11.ComingSoonComponent, typeof i12.EntityGroupComponent, typeof i13.GroupsComponent, typeof i14.GroupDefinitionComponent, typeof i15.NumberPickerComponent, typeof i16.HeaderComponent, typeof i17.LandingPageFooterBComponent, typeof i36.FieldErrorDisplayModule, typeof i37.ResourceSharedComponentsModule]>;
|
|
44
43
|
static ɵinj: i0.ɵɵInjectorDeclaration<SharedComponentsModule>;
|
|
45
44
|
}
|
package/package.json
CHANGED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { moveItemInArray } from '@angular/cdk/drag-drop';
|
|
2
|
-
import { Component, Injector, Input, TemplateRef, ViewChild } 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 { HelperService } from '@posiwise/helper-service';
|
|
7
|
-
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/platform-browser";
|
|
10
|
-
import * as i2 from "@ng-bootstrap/ng-bootstrap";
|
|
11
|
-
import * as i3 from "@posiwise/admin-module-utils";
|
|
12
|
-
import * as i4 from "@angular/common";
|
|
13
|
-
import * as i5 from "@angular/forms";
|
|
14
|
-
import * as i6 from "@angular/cdk/drag-drop";
|
|
15
|
-
export class DemoCardsComponent extends AppBaseComponent {
|
|
16
|
-
constructor(sanitizer, modalService, adminService, injector) {
|
|
17
|
-
super(injector);
|
|
18
|
-
this.sanitizer = sanitizer;
|
|
19
|
-
this.modalService = modalService;
|
|
20
|
-
this.adminService = adminService;
|
|
21
|
-
this.editingBookingLinks = [];
|
|
22
|
-
this.domainId = this.appConfig?.domain_id;
|
|
23
|
-
}
|
|
24
|
-
ngOnInit() {
|
|
25
|
-
if (this.userLoggedIn) {
|
|
26
|
-
this.localStorage.getItem$('product').subscribe(res => {
|
|
27
|
-
const data = res ? JSON.parse(res) : null;
|
|
28
|
-
this.subscriptionId = data?.subscriptionId;
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
this.bookingLinks = (this.appConfig?.pages_config?.book_demo?.items ?? [])
|
|
32
|
-
.filter(link => link?.url)
|
|
33
|
-
.map(link => ({
|
|
34
|
-
...link,
|
|
35
|
-
// NOSONAR: Trusted iframe URL content is handled safely here
|
|
36
|
-
url: this.sanitizer.bypassSecurityTrustResourceUrl(link.url) // NOSONAR
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
39
|
-
ngOnChanges(changes) {
|
|
40
|
-
if (changes['user'] || changes['userLoggedIn']) {
|
|
41
|
-
if (this.userLoggedIn && this.user) {
|
|
42
|
-
this.updateCanEditResourcesValue();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
openEditBookLinks(modal) {
|
|
47
|
-
this.editingBookingLinks = JSON.parse(JSON.stringify(this.appConfig?.pages_config?.book_demo?.items ?? []));
|
|
48
|
-
this.modalService.open(modal, { size: 'lg', centered: true, windowClass: 'modal-holder' });
|
|
49
|
-
}
|
|
50
|
-
addBookingLink() {
|
|
51
|
-
this.editingBookingLinks.push({ title: '', url: '' });
|
|
52
|
-
}
|
|
53
|
-
removeBookDemoLink(i) {
|
|
54
|
-
this.editingBookingLinks.splice(i, 1);
|
|
55
|
-
}
|
|
56
|
-
dropBookingLink(event) {
|
|
57
|
-
moveItemInArray(this.editingBookingLinks, event.previousIndex, event.currentIndex);
|
|
58
|
-
}
|
|
59
|
-
saveBookingLinks(modal) {
|
|
60
|
-
this.adminService
|
|
61
|
-
.updateDomainConfig(this.domainId, {
|
|
62
|
-
book_demo: {
|
|
63
|
-
...this.appConfig?.pages_config?.book_demo,
|
|
64
|
-
items: this.editingBookingLinks
|
|
65
|
-
},
|
|
66
|
-
subscription_id: this.subscriptionId
|
|
67
|
-
})
|
|
68
|
-
.subscribe(() => {
|
|
69
|
-
this.toast.success('Booking links updated');
|
|
70
|
-
this.bookingLinks = this.editingBookingLinks
|
|
71
|
-
.filter(link => link?.url)
|
|
72
|
-
.map(link => ({
|
|
73
|
-
...link,
|
|
74
|
-
// NOSONAR: Trusted iframe URL content is handled safely here
|
|
75
|
-
url: this.sanitizer.bypassSecurityTrustResourceUrl(link.url) // NOSONAR
|
|
76
|
-
}));
|
|
77
|
-
this.appConfig.pages_config.book_demo.items = [...this.editingBookingLinks]; // ✅ Like CTAs
|
|
78
|
-
modal.close();
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
updateCanEditResourcesValue() {
|
|
82
|
-
this.canEditResourcesValue = HelperService.canEditResources(this.user, this.userLoggedIn, this.permissionService);
|
|
83
|
-
}
|
|
84
|
-
canEditResources() {
|
|
85
|
-
return this.canEditResourcesValue;
|
|
86
|
-
}
|
|
87
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DemoCardsComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.NgbModal }, { token: i3.AdminService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: DemoCardsComponent, selector: "pw-demo-card", inputs: { user: "user", userLoggedIn: "userLoggedIn" }, viewQueries: [{ propertyName: "editBookLinksModal", first: true, predicate: ["editBookLinksModal"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- EDIT ICON -->\n\n<!-- DEMO LINKS -->\n<div class=\"row text-center\">\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon mb-3 cursor-pointer\"\n title=\"Edit Booking Links\"\n (click)=\"openEditBookLinks(editBookLinksModal)\"\n (keydown.enter)=\"openEditBookLinks(editBookLinksModal)\"\n (keydown.space)=\"openEditBookLinks(editBookLinksModal)\">\n </i>\n <div class=\"col-md-6 col-lg-4\" *ngFor=\"let link of bookingLinks\">\n <h5 class=\"mb-3\" *ngIf=\"link?.url && link?.title\">{{ link?.title }}</h5>\n <iframe *ngIf=\"link?.url\"\n [src]=\"link?.url\"\n width=\"100%\"\n title=\"Booking frame\"\n height=\"600\"\n class=\"iframe-no-border\">\n </iframe>\n </div>\n</div>\n\n<!-- MODAL TEMPLATE -->\n<ng-template #editBookLinksModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Book Demo Links</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\" aria-label=\"Close\"></button>\n </div>\n\n <div class=\"modal-body\">\n <div cdkDropList (cdkDropListDropped)=\"dropBookingLink($event)\">\n <div *ngFor=\"let item of editingBookingLinks; let i = index\" class=\"card p-3 mb-3\" cdkDrag>\n <div class=\"row\">\n <div class=\"col-md-5\">\n <label for=\"demoLinkTitle{{i}}\" class=\"form-label\">Link Title</label>\n <input id=\"demoLinkTitle{{i}}\" class=\"form-control\" [(ngModel)]=\"item.title\" />\n </div>\n <div class=\"col-md-5\">\n <label for=\"demoLinkUrl{{i}}\" class=\"form-label\">Link URL</label>\n <input id=\"demoLinkUrl{{i}}\" class=\"form-control\" [(ngModel)]=\"item.url\" />\n </div>\n <div class=\"col-sm-1 d-flex justify-content-end mt-3\">\n <i\n ngbTooltip=\"Remove\"\n (click)=\"removeBookDemoLink(i)\"\n (keydown.enter)=\"removeBookDemoLink(i)\"\n (keydown.space)=\"removeBookDemoLink(i)\"\n class=\"fa fa-trash in-page-trash-icon delete-icon text-danger\"\n aria-hidden=\"true\"\n ></i>\n </div>\n\n <div class=\"col-sm-1 d-flex justify-content-end mt-3\">\n <i\n class=\"fa fa-bars in-page-bars-icon cursor-move\"\n cdkDragHandle\n ngbTooltip=\"Drag to reorder\"\n aria-hidden=\"true\"\n ></i>\n </div>\n </div>\n\n </div>\n </div>\n\n <button class=\"btn btn-outline-primary mt-3\" (click)=\"addBookingLink()\">\n <i class=\"fa fa-plus me-1\"></i> Add Book Demo Link\n </button>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" (click)=\"saveBookingLinks(modal)\">Save</button>\n </div>\n</ng-template>\n", styles: [".iframe-no-border{border:0}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }] }); }
|
|
89
|
-
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DemoCardsComponent, decorators: [{
|
|
91
|
-
type: Component,
|
|
92
|
-
args: [{ selector: 'pw-demo-card', template: "<!-- EDIT ICON -->\n\n<!-- DEMO LINKS -->\n<div class=\"row text-center\">\n <i *ngIf=\"canEditResourcesValue\"\n class=\"fa fa-edit in-page-edit-icon mb-3 cursor-pointer\"\n title=\"Edit Booking Links\"\n (click)=\"openEditBookLinks(editBookLinksModal)\"\n (keydown.enter)=\"openEditBookLinks(editBookLinksModal)\"\n (keydown.space)=\"openEditBookLinks(editBookLinksModal)\">\n </i>\n <div class=\"col-md-6 col-lg-4\" *ngFor=\"let link of bookingLinks\">\n <h5 class=\"mb-3\" *ngIf=\"link?.url && link?.title\">{{ link?.title }}</h5>\n <iframe *ngIf=\"link?.url\"\n [src]=\"link?.url\"\n width=\"100%\"\n title=\"Booking frame\"\n height=\"600\"\n class=\"iframe-no-border\">\n </iframe>\n </div>\n</div>\n\n<!-- MODAL TEMPLATE -->\n<ng-template #editBookLinksModal let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Book Demo Links</h5>\n <button type=\"button\" class=\"btn-close\" (click)=\"modal.dismiss()\" aria-label=\"Close\"></button>\n </div>\n\n <div class=\"modal-body\">\n <div cdkDropList (cdkDropListDropped)=\"dropBookingLink($event)\">\n <div *ngFor=\"let item of editingBookingLinks; let i = index\" class=\"card p-3 mb-3\" cdkDrag>\n <div class=\"row\">\n <div class=\"col-md-5\">\n <label for=\"demoLinkTitle{{i}}\" class=\"form-label\">Link Title</label>\n <input id=\"demoLinkTitle{{i}}\" class=\"form-control\" [(ngModel)]=\"item.title\" />\n </div>\n <div class=\"col-md-5\">\n <label for=\"demoLinkUrl{{i}}\" class=\"form-label\">Link URL</label>\n <input id=\"demoLinkUrl{{i}}\" class=\"form-control\" [(ngModel)]=\"item.url\" />\n </div>\n <div class=\"col-sm-1 d-flex justify-content-end mt-3\">\n <i\n ngbTooltip=\"Remove\"\n (click)=\"removeBookDemoLink(i)\"\n (keydown.enter)=\"removeBookDemoLink(i)\"\n (keydown.space)=\"removeBookDemoLink(i)\"\n class=\"fa fa-trash in-page-trash-icon delete-icon text-danger\"\n aria-hidden=\"true\"\n ></i>\n </div>\n\n <div class=\"col-sm-1 d-flex justify-content-end mt-3\">\n <i\n class=\"fa fa-bars in-page-bars-icon cursor-move\"\n cdkDragHandle\n ngbTooltip=\"Drag to reorder\"\n aria-hidden=\"true\"\n ></i>\n </div>\n </div>\n\n </div>\n </div>\n\n <button class=\"btn btn-outline-primary mt-3\" (click)=\"addBookingLink()\">\n <i class=\"fa fa-plus me-1\"></i> Add Book Demo Link\n </button>\n </div>\n\n <div class=\"modal-footer\">\n <button class=\"btn btn-secondary\" (click)=\"modal.dismiss()\">Cancel</button>\n <button class=\"btn btn-primary\" (click)=\"saveBookingLinks(modal)\">Save</button>\n </div>\n</ng-template>\n", styles: [".iframe-no-border{border:0}\n"] }]
|
|
93
|
-
}], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i2.NgbModal }, { type: i3.AdminService }, { type: i0.Injector }], propDecorators: { user: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], userLoggedIn: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], editBookLinksModal: [{
|
|
98
|
-
type: ViewChild,
|
|
99
|
-
args: ['editBookLinksModal', { static: true }]
|
|
100
|
-
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby1jYXJkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvZGVtby1jYXJkcy9kZW1vLWNhcmRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9kZW1vLWNhcmRzL2RlbW8tY2FyZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssRUFJTCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFTdEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQWVwRCxZQUNxQixTQUF1QixFQUN2QixZQUFzQixFQUN0QixZQUEwQixFQUMzQyxRQUFrQjtRQUVsQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFMQyxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3ZCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBYi9DLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztRQUV6QixhQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7SUFlckMsQ0FB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Q0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7aUJBQ3pCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1YsR0FBRyxJQUFJO2dCQUNQLDZEQUE2RDtnQkFDN0QsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVU7YUFDMUUsQ0FBQyxDQUFDLENBQUM7WUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGNBQWM7WUFDM0YsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNPLDJCQUEyQjtRQUMvQixJQUFJLENBQUMscUJBQXFCLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUN2RCxJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxpQkFBaUIsQ0FDekIsQ0FBQztJQUNOLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxDQUFDOytHQXBHUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixnU0MzQi9CLHEzRkE0RUE7OzRGRGpEYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksY0FBYzswSkFLZixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFXTixrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LWRlbW8tY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RlbW8tY2FyZHMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RlbW8tY2FyZHMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEZW1vQ2FyZHNDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHVzZXI6IFVzZXI7XG4gICAgQElucHV0KCkgdXNlckxvZ2dlZEluOiBib29sZWFuO1xuXG4gICAgYm9va2luZ0xpbmtzO1xuICAgIGVkaXRpbmdCb29raW5nTGlua3MgPSBbXTtcblxuICAgIGRvbWFpbklkID0gdGhpcy5hcHBDb25maWc/LmRvbWFpbl9pZDtcbiAgICBzdWJzY3JpcHRpb25JZDogc3RyaW5nO1xuXG4gICAgY2FuRWRpdFJlc291cmNlc1ZhbHVlO1xuXG4gICAgQFZpZXdDaGlsZCgnZWRpdEJvb2tMaW5rc01vZGFsJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBlZGl0Qm9va0xpbmtzTW9kYWwhOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFkbWluU2VydmljZTogQWRtaW5TZXJ2aWNlLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy51c2VyTG9nZ2VkSW4pIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0kKCdwcm9kdWN0Jykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlcyA/IEpTT04ucGFyc2UocmVzKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IGRhdGE/LnN1YnNjcmlwdGlvbklkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJvb2tpbmdMaW5rcyA9ICh0aGlzLmFwcENvbmZpZz8ucGFnZXNfY29uZmlnPy5ib29rX2RlbW8/Lml0ZW1zID8/IFtdKVxuICAgICAgICAgICAgLmZpbHRlcihsaW5rID0+IGxpbms/LnVybClcbiAgICAgICAgICAgIC5tYXAobGluayA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLmxpbmssXG4gICAgICAgICAgICAgICAgLy8gTk9TT05BUjogVHJ1c3RlZCBpZnJhbWUgVVJMIGNvbnRlbnQgaXMgaGFuZGxlZCBzYWZlbHkgaGVyZVxuICAgICAgICAgICAgICAgIHVybDogdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGxpbmsudXJsKSAvLyBOT1NPTkFSXG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1sndXNlciddIHx8IGNoYW5nZXNbJ3VzZXJMb2dnZWRJbiddKSB7XG4gICAgICAgICAgICBpZiAodGhpcy51c2VyTG9nZ2VkSW4gJiYgdGhpcy51c2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYW5FZGl0UmVzb3VyY2VzVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5FZGl0Qm9va0xpbmtzKG1vZGFsKSB7XG4gICAgICAgIHRoaXMuZWRpdGluZ0Jvb2tpbmdMaW5rcyA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLmFwcENvbmZpZz8ucGFnZXNfY29uZmlnPy5ib29rX2RlbW8/Lml0ZW1zID8/IFtdKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKG1vZGFsLCB7IHNpemU6ICdsZycsIGNlbnRlcmVkOiB0cnVlLCB3aW5kb3dDbGFzczogJ21vZGFsLWhvbGRlcicgfSk7XG4gICAgfVxuXG4gICAgYWRkQm9va2luZ0xpbmsoKSB7XG4gICAgICAgIHRoaXMuZWRpdGluZ0Jvb2tpbmdMaW5rcy5wdXNoKHsgdGl0bGU6ICcnLCB1cmw6ICcnIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZUJvb2tEZW1vTGluayhpOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nQm9va2luZ0xpbmtzLnNwbGljZShpLCAxKTtcbiAgICB9XG5cbiAgICBkcm9wQm9va2luZ0xpbmsoZXZlbnQpIHtcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZWRpdGluZ0Jvb2tpbmdMaW5rcywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB9XG5cbiAgICBzYXZlQm9va2luZ0xpbmtzKG1vZGFsKSB7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuZG9tYWluSWQsIHtcbiAgICAgICAgICAgICAgICBib29rX2RlbW86IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5hcHBDb25maWc/LnBhZ2VzX2NvbmZpZz8uYm9va19kZW1vLFxuICAgICAgICAgICAgICAgICAgICBpdGVtczogdGhpcy5lZGl0aW5nQm9va2luZ0xpbmtzXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuc3Vic2NyaXB0aW9uSWRcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoJ0Jvb2tpbmcgbGlua3MgdXBkYXRlZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuYm9va2luZ0xpbmtzID0gdGhpcy5lZGl0aW5nQm9va2luZ0xpbmtzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIobGluayA9PiBsaW5rPy51cmwpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAobGluayA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ubGluayxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5PU09OQVI6IFRydXN0ZWQgaWZyYW1lIFVSTCBjb250ZW50IGlzIGhhbmRsZWQgc2FmZWx5IGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGxpbmsudXJsKSAvLyBOT1NPTkFSXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWcuYm9va19kZW1vLml0ZW1zID0gWy4uLnRoaXMuZWRpdGluZ0Jvb2tpbmdMaW5rc107IC8vIOKchSBMaWtlIENUQXNcbiAgICAgICAgICAgICAgICBtb2RhbC5jbG9zZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIHByaXZhdGUgdXBkYXRlQ2FuRWRpdFJlc291cmNlc1ZhbHVlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbkVkaXRSZXNvdXJjZXNWYWx1ZSA9IEhlbHBlclNlcnZpY2UuY2FuRWRpdFJlc291cmNlcyhcbiAgICAgICAgICAgIHRoaXMudXNlcixcbiAgICAgICAgICAgIHRoaXMudXNlckxvZ2dlZEluLFxuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNhbkVkaXRSZXNvdXJjZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbkVkaXRSZXNvdXJjZXNWYWx1ZTtcbiAgICB9XG59XG4iLCI8IS0tIEVESVQgSUNPTiAtLT5cblxuPCEtLSBERU1PIExJTktTIC0tPlxuPGRpdiBjbGFzcz1cInJvdyB0ZXh0LWNlbnRlclwiPlxuICA8aSAqbmdJZj1cImNhbkVkaXRSZXNvdXJjZXNWYWx1ZVwiXG4gICAgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIG1iLTMgY3Vyc29yLXBvaW50ZXJcIlxuICAgIHRpdGxlPVwiRWRpdCBCb29raW5nIExpbmtzXCJcbiAgICAoY2xpY2spPVwib3BlbkVkaXRCb29rTGlua3MoZWRpdEJvb2tMaW5rc01vZGFsKVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib3BlbkVkaXRCb29rTGlua3MoZWRpdEJvb2tMaW5rc01vZGFsKVwiXG4gICAgKGtleWRvd24uc3BhY2UpPVwib3BlbkVkaXRCb29rTGlua3MoZWRpdEJvb2tMaW5rc01vZGFsKVwiPlxuICA8L2k+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtbGctNFwiICpuZ0Zvcj1cImxldCBsaW5rIG9mIGJvb2tpbmdMaW5rc1wiPlxuICAgIDxoNSBjbGFzcz1cIm1iLTNcIiAqbmdJZj1cImxpbms/LnVybCAmJiBsaW5rPy50aXRsZVwiPnt7IGxpbms/LnRpdGxlIH19PC9oNT5cbiAgICA8aWZyYW1lICpuZ0lmPVwibGluaz8udXJsXCJcbiAgICAgIFtzcmNdPVwibGluaz8udXJsXCJcbiAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICB0aXRsZT1cIkJvb2tpbmcgZnJhbWVcIlxuICAgICAgaGVpZ2h0PVwiNjAwXCJcbiAgICAgIGNsYXNzPVwiaWZyYW1lLW5vLWJvcmRlclwiPlxuICAgIDwvaWZyYW1lPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIE1PREFMIFRFTVBMQVRFIC0tPlxuPG5nLXRlbXBsYXRlICNlZGl0Qm9va0xpbmtzTW9kYWwgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5FZGl0IEJvb2sgRGVtbyBMaW5rczwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BCb29raW5nTGluaygkZXZlbnQpXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVkaXRpbmdCb29raW5nTGlua3M7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImNhcmQgcC0zIG1iLTNcIiBjZGtEcmFnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZGVtb0xpbmtUaXRsZXt7aX19XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+TGluayBUaXRsZTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJkZW1vTGlua1RpdGxle3tpfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiaXRlbS50aXRsZVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZGVtb0xpbmtVcmx7e2l9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkxpbmsgVVJMPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cImRlbW9MaW5rVXJse3tpfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiaXRlbS51cmxcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0zXCI+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUmVtb3ZlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUJvb2tEZW1vTGluayhpKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInJlbW92ZUJvb2tEZW1vTGluayhpKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZUJvb2tEZW1vTGluayhpKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtdHJhc2ggaW4tcGFnZS10cmFzaC1pY29uIGRlbGV0ZS1pY29uIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtM1wiPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1iYXJzIGluLXBhZ2UtYmFycy1pY29uIGN1cnNvci1tb3ZlXCJcbiAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyXCJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBtdC0zXCIgKGNsaWNrKT1cImFkZEJvb2tpbmdMaW5rKClcIj5cbiAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cyBtZS0xXCI+PC9pPiBBZGQgQm9vayBEZW1vIExpbmtcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVCb29raW5nTGlua3MobW9kYWwpXCI+U2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,44 +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 } from '@angular/forms';
|
|
5
|
-
import { AdminModuleUtilsModule } from '@posiwise/admin-module-utils';
|
|
6
|
-
import { DirectivesModule } from '@posiwise/directives';
|
|
7
|
-
import { PipesModule } from '@posiwise/pipes';
|
|
8
|
-
import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap';
|
|
9
|
-
import { DemoCardsComponent } from './demo-cards.component';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
export class DemoCardsModule {
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DemoCardsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: DemoCardsModule, declarations: [DemoCardsComponent], imports: [CommonModule,
|
|
14
|
-
FormsModule,
|
|
15
|
-
DragDropModule,
|
|
16
|
-
NgbModalModule,
|
|
17
|
-
DirectivesModule,
|
|
18
|
-
PipesModule,
|
|
19
|
-
AdminModuleUtilsModule], exports: [DemoCardsComponent] }); }
|
|
20
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DemoCardsModule, imports: [CommonModule,
|
|
21
|
-
FormsModule,
|
|
22
|
-
DragDropModule,
|
|
23
|
-
NgbModalModule,
|
|
24
|
-
DirectivesModule,
|
|
25
|
-
PipesModule,
|
|
26
|
-
AdminModuleUtilsModule] }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DemoCardsModule, decorators: [{
|
|
29
|
-
type: NgModule,
|
|
30
|
-
args: [{
|
|
31
|
-
declarations: [DemoCardsComponent],
|
|
32
|
-
imports: [
|
|
33
|
-
CommonModule,
|
|
34
|
-
FormsModule,
|
|
35
|
-
DragDropModule,
|
|
36
|
-
NgbModalModule,
|
|
37
|
-
DirectivesModule,
|
|
38
|
-
PipesModule,
|
|
39
|
-
AdminModuleUtilsModule
|
|
40
|
-
],
|
|
41
|
-
exports: [DemoCardsComponent]
|
|
42
|
-
}]
|
|
43
|
-
}] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby1jYXJkcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvZGVtby1jYXJkcy9kZW1vLWNhcmRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBZTVELE1BQU0sT0FBTyxlQUFlOytHQUFmLGVBQWU7Z0hBQWYsZUFBZSxpQkFaVCxrQkFBa0IsYUFFN0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjO1lBQ2QsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsc0JBQXNCLGFBRWhCLGtCQUFrQjtnSEFFbkIsZUFBZSxZQVZwQixZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCxjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxzQkFBc0I7OzRGQUlqQixlQUFlO2tCQWIzQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNsQyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsc0JBQXNCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQWRtaW5Nb2R1bGVVdGlsc01vZHVsZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlc01vZHVsZSB9IGZyb20gJ0Bwb3Npd2lzZS9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFBpcGVzTW9kdWxlIH0gZnJvbSAnQHBvc2l3aXNlL3BpcGVzJztcblxuaW1wb3J0IHsgTmdiTW9kYWxNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbmltcG9ydCB7IERlbW9DYXJkc0NvbXBvbmVudCB9IGZyb20gJy4vZGVtby1jYXJkcy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0RlbW9DYXJkc0NvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICAgICAgTmdiTW9kYWxNb2R1bGUsXG4gICAgICAgIERpcmVjdGl2ZXNNb2R1bGUsXG4gICAgICAgIFBpcGVzTW9kdWxlLFxuICAgICAgICBBZG1pbk1vZHVsZVV0aWxzTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbRGVtb0NhcmRzQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBEZW1vQ2FyZHNNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Injector, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
|
|
2
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
-
import { AdminService } from '@posiwise/admin-module-utils';
|
|
4
|
-
import { AppBaseComponent } from '@posiwise/app-base-component';
|
|
5
|
-
import { User } from '@posiwise/common-utilities';
|
|
6
|
-
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
|
7
|
-
import { CustomUploaderComponent } from '@posiwise/utils';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export declare class DemoCardsComponent extends AppBaseComponent implements OnInit, OnChanges {
|
|
10
|
-
private readonly sanitizer;
|
|
11
|
-
private readonly modalService;
|
|
12
|
-
private readonly adminService;
|
|
13
|
-
user: User;
|
|
14
|
-
userLoggedIn: boolean;
|
|
15
|
-
bookingLinks: any;
|
|
16
|
-
editingBookingLinks: any[];
|
|
17
|
-
domainId: any;
|
|
18
|
-
subscriptionId: string;
|
|
19
|
-
canEditResourcesValue: any;
|
|
20
|
-
editBookLinksModal: TemplateRef<CustomUploaderComponent>;
|
|
21
|
-
constructor(sanitizer: DomSanitizer, modalService: NgbModal, adminService: AdminService, injector: Injector);
|
|
22
|
-
ngOnInit(): void;
|
|
23
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
24
|
-
openEditBookLinks(modal: any): void;
|
|
25
|
-
addBookingLink(): void;
|
|
26
|
-
removeBookDemoLink(i: number): void;
|
|
27
|
-
dropBookingLink(event: any): void;
|
|
28
|
-
saveBookingLinks(modal: any): void;
|
|
29
|
-
private updateCanEditResourcesValue;
|
|
30
|
-
canEditResources(): boolean;
|
|
31
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DemoCardsComponent, never>;
|
|
32
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DemoCardsComponent, "pw-demo-card", never, { "user": { "alias": "user"; "required": false; }; "userLoggedIn": { "alias": "userLoggedIn"; "required": false; }; }, {}, never, never, false, never>;
|
|
33
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./demo-cards.component";
|
|
3
|
-
import * as i2 from "@angular/common";
|
|
4
|
-
import * as i3 from "@angular/forms";
|
|
5
|
-
import * as i4 from "@angular/cdk/drag-drop";
|
|
6
|
-
import * as i5 from "@ng-bootstrap/ng-bootstrap";
|
|
7
|
-
import * as i6 from "@posiwise/directives";
|
|
8
|
-
import * as i7 from "@posiwise/pipes";
|
|
9
|
-
import * as i8 from "@posiwise/admin-module-utils";
|
|
10
|
-
export declare class DemoCardsModule {
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DemoCardsModule, never>;
|
|
12
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<DemoCardsModule, [typeof i1.DemoCardsComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i4.DragDropModule, typeof i5.NgbModalModule, typeof i6.DirectivesModule, typeof i7.PipesModule, typeof i8.AdminModuleUtilsModule], [typeof i1.DemoCardsComponent]>;
|
|
13
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<DemoCardsModule>;
|
|
14
|
-
}
|