kwikid-agent-dashboard 0.0.12 → 0.0.13

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.
@@ -0,0 +1,98 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { getObjectValueFromPath } from 'kwikid-toolkit';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/user.service";
5
+ import * as i2 from "kwikui";
6
+ import * as i3 from "@angular/common";
7
+ export class CustomerDetailsComponent {
8
+ constructor(userService) {
9
+ this.userService = userService;
10
+ this.customer = {
11
+ agent_id: 'sparkcpaital_dev_agent_1',
12
+ client_name: 'sparkcpaital_dev',
13
+ extras: {},
14
+ session_status: '',
15
+ task_completed_time: '',
16
+ task_creation_time: '1679469532.340057',
17
+ task_details: {
18
+ customer_details: {
19
+ email: 'gaurang.thakkar1997@gmail.com',
20
+ phone: '9930607033',
21
+ lc_lg_code: 'LC123456',
22
+ branch_code: 'HDFC56475H',
23
+ business_code: 'ABCD12345H'
24
+ },
25
+ link_details: {
26
+ queryParams: {
27
+ autoSendMobileOtp: true,
28
+ client_id: 'sparkcpaital_dev',
29
+ mobileOtpVerification: true,
30
+ mobile_number: '9930607033',
31
+ user_id: '9930607033'
32
+ }
33
+ }
34
+ },
35
+ task_id: 'sparkcpaital_dev_4632c291-1b4c-4f5b-bb95-f9acaab45e27',
36
+ task_schedule_time: '1679469532.340057',
37
+ user_id: '9930607033'
38
+ };
39
+ this.viewTaskDetails = [];
40
+ this.nextStep = new EventEmitter();
41
+ this.removeTask = new EventEmitter();
42
+ }
43
+ ngOnInit() {
44
+ var _a, _b, _c;
45
+ this.viewTaskDetails =
46
+ (_c = (_b = (_a = this.agentConfig) === null || _a === void 0 ? void 0 : _a.dashboardConfig) === null || _b === void 0 ? void 0 : _b.viewTaskDetails) !== null && _c !== void 0 ? _c : this.viewTaskDetails;
47
+ }
48
+ convertToTitleCase(inputString) {
49
+ inputString = inputString.replace('$.task_details.customer_details.', '');
50
+ const words = inputString.split('_');
51
+ const capitalizedWords = words.map((word) => word.charAt(0).toUpperCase() + word.slice(1));
52
+ const titleCaseString = capitalizedWords.join(' ');
53
+ return titleCaseString;
54
+ }
55
+ convertEpochToDate(epochTime) {
56
+ if (typeof epochTime == 'string')
57
+ epochTime = Number(epochTime);
58
+ const date = new Date(epochTime * 1000); // Convert to milliseconds
59
+ const day = date.getDate().toString().padStart(2, '0');
60
+ const month = (date.getMonth() + 1).toString().padStart(2, '0'); // Months are zero-based
61
+ const year = date.getFullYear().toString();
62
+ return `${day}-${month}-${year}`;
63
+ }
64
+ getTaskDetails(taskData) {
65
+ return getObjectValueFromPath(this.customer, taskData);
66
+ }
67
+ goToMaps(location) {
68
+ window.open(`${location}`, '_blank');
69
+ }
70
+ goToNextStep(e) {
71
+ this.nextStep.emit(e);
72
+ }
73
+ close() {
74
+ this.userService.showTaskDetails = undefined;
75
+ }
76
+ handleOnClickRemoveTask(task) {
77
+ this.removeTask.emit(task);
78
+ }
79
+ }
80
+ /** @nocollapse */ CustomerDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomerDetailsComponent, deps: [{ token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component });
81
+ /** @nocollapse */ CustomerDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomerDetailsComponent, selector: "customer-details", inputs: { customer: "customer", agentConfig: "agentConfig" }, outputs: { nextStep: "nextStep", removeTask: "removeTask" }, ngImport: i0, template: "<div class=\"customer-details-wrapper\">\n <div class=\"customer-details-heading\">\n Task Details\n </div>\n <div class=\"customer-details-body\">\n <div class=\"customer-details-user-id\">{{ customer.user_id }}</div>\n\n <div class=\"customer-details-table\">\n <div\n class=\"customer-details-table-data\"\n *ngFor=\"let taskData of viewTaskDetails\"\n >\n <div class=\"customer-details-table-detail-value\">\n {{ getTaskDetails(taskData) }}\n </div>\n </div>\n </div>\n\n <div class=\"customer-details-date\">\n Task Created on: {{convertEpochToDate(customer.task_creation_time)}}\n </div>\n\n <div class=\"customer-details-actions\">\n <div class=\"customer-details-task-buttons\">\n <kwikui-button-icon\n *ngIf=\"agentConfig.dashboardConfig?.allowRemoveTask\"\n [icon]=\"'tuiIconTrash2'\"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"handleOnClickRemoveTask(customer)\"\n ></kwikui-button-icon>\n <kwikui-button-icon\n *ngIf=\"agentConfig.dashboardConfig?.showCopyLink\"\n icon=\"tuiIconCopy\"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"\n goToNextStep({ customer: customer, stepType: 'SHARE_JOURNEY_LINK' })\n \"\n ></kwikui-button-icon>\n </div>\n <div class=\"customer-details-journey-buttons\">\n <kwikui-button\n *ngIf=\"\n agentConfig.dashboardConfig?.showMaps &&\n customer?.task_details?.customer_details?.location\n \"\n label=\"Show Directions\"\n appearance=\"flat\"\n size=\"s\"\n styles=\"font-size:0.7rem;\"\n (onClick)=\"goToMaps(customer?.task_details?.customer_details?.location)\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"\n agentConfig.dashboardConfig?.showStartJourneyButton &&\n customer.session_status !== 'complete' &&\n customer.session_status !== ''\n \"\n label=\"Edit Journey\"\n appearance=\"primary\"\n size=\"s\"\n styles=\"font-size:0.7rem;\"\n (onClick)=\"\n goToNextStep({ customer: customer, stepType: 'EDIT_JOURNEY' })\n \"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"\n agentConfig.dashboardConfig?.showStartJourneyButton &&\n customer.session_status == ''\n \"\n label=\"Start Journey\"\n appearance=\"primary\"\n size=\"s\"\n styles=\"font-size:0.7rem;\"\n (onClick)=\"\n goToNextStep({ customer: customer, stepType: 'START_JOURNEY' })\n \"\n ></kwikui-button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".customer-details-wrapper{display:flex;flex-direction:column;align-items:stretch;overflow:hidden;grid-gap:.5rem;gap:.5rem;padding:1.5rem;height:100%;width:100%}.customer-details-wrapper .customer-details-heading{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:1rem 0;font-size:1.5rem;font-weight:600}.customer-details-wrapper .customer-details-body{display:flex;flex-direction:column;grid-gap:1.25rem;gap:1.25rem}.customer-details-wrapper .customer-details-body .customer-details-user-id{font-size:1.25rem;font-weight:500;padding:.5rem 0}.customer-details-wrapper .customer-details-body .customer-details-table{display:flex;grid-gap:.5rem;gap:.5rem;flex-direction:column}.customer-details-wrapper .customer-details-body .customer-details-table .customer-details-table-data .customer-details-table-detail-name{font-weight:500}.customer-details-wrapper .customer-details-body .customer-details-table .customer-details-table-data .customer-details-table-detail-value{word-wrap:break-word}.customer-details-wrapper .customer-details-body .customer-details-date{padding-top:1rem}.customer-details-wrapper .customer-details-body .customer-details-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.customer-details-wrapper .customer-details-body .customer-details-actions .customer-details-task-buttons{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;padding:1rem 0}.customer-details-wrapper .customer-details-body .customer-details-actions .customer-details-journey-buttons{padding-right:.2rem;display:flex;flex-direction:row;grid-gap:.2rem;gap:.2rem;align-items:center;justify-content:flex-end}.customer-details-wrapper .customer-details-body .customer-details-actions .customer-details-journey-buttons .customer-share-link{font-size:.7rem}\n"], components: [{ type: i2.KwikUIButtonIconComponent, selector: "kwikui-button-icon", inputs: ["disabled", "id", "showLoader", "styles", "class", "type", "appearance", "icon", "shape", "size"], outputs: ["onClick"] }, { type: i2.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomerDetailsComponent, decorators: [{
83
+ type: Component,
84
+ args: [{
85
+ selector: 'customer-details',
86
+ templateUrl: './customer-details.component.html',
87
+ styleUrls: ['./customer-details.component.scss']
88
+ }]
89
+ }], ctorParameters: function () { return [{ type: i1.UserService }]; }, propDecorators: { customer: [{
90
+ type: Input
91
+ }], agentConfig: [{
92
+ type: Input
93
+ }], nextStep: [{
94
+ type: Output
95
+ }], removeTask: [{
96
+ type: Output
97
+ }] } });
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b21lci1kZXRhaWxzL2N1c3RvbWVyLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tZXItZGV0YWlscy9jdXN0b21lci1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBUXhELE1BQU0sT0FBTyx3QkFBd0I7SUEyQ25DLFlBQW1CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBekMzQyxhQUFRLEdBQUc7WUFDVCxRQUFRLEVBQUUsMEJBQTBCO1lBQ3BDLFdBQVcsRUFBRSxrQkFBa0I7WUFDL0IsTUFBTSxFQUFFLEVBQUU7WUFDVixjQUFjLEVBQUUsRUFBRTtZQUNsQixtQkFBbUIsRUFBRSxFQUFFO1lBQ3ZCLGtCQUFrQixFQUFFLG1CQUFtQjtZQUN2QyxZQUFZLEVBQUU7Z0JBQ1osZ0JBQWdCLEVBQUU7b0JBQ2hCLEtBQUssRUFBRSwrQkFBK0I7b0JBQ3RDLEtBQUssRUFBRSxZQUFZO29CQUNuQixVQUFVLEVBQUUsVUFBVTtvQkFDdEIsV0FBVyxFQUFFLFlBQVk7b0JBQ3pCLGFBQWEsRUFBRSxZQUFZO2lCQUM1QjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osV0FBVyxFQUFFO3dCQUNYLGlCQUFpQixFQUFFLElBQUk7d0JBQ3ZCLFNBQVMs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QkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsbUNBQW1DO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztpQkFDakQ7a0dBR0MsUUFBUTtzQkFEUCxLQUFLO2dCQWdDTixXQUFXO3NCQURWLEtBQUs7Z0JBTU4sUUFBUTtzQkFEUCxNQUFNO2dCQUlQLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldE9iamVjdFZhbHVlRnJvbVBhdGggfSBmcm9tICdrd2lraWQtdG9vbGtpdCc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N1c3RvbWVyLWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tZXItZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbWVyLWRldGFpbHMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21lckRldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBjdXN0b21lciA9IHtcbiAgICBhZ2VudF9pZDogJ3NwYXJrY3BhaXRhbF9kZXZfYWdlbnRfMScsXG4gICAgY2xpZW50X25hbWU6ICdzcGFya2NwYWl0YWxfZGV2JyxcbiAgICBleHRyYXM6IHt9LFxuICAgIHNlc3Npb25fc3RhdHVzOiAnJyxcbiAgICB0YXNrX2NvbXBsZXRlZF90aW1lOiAnJyxcbiAgICB0YXNrX2NyZWF0aW9uX3RpbWU6ICcxNjc5NDY5NTMyLjM0MDA1NycsXG4gICAgdGFza19kZXRhaWxzOiB7XG4gICAgICBjdXN0b21lcl9kZXRhaWxzOiB7XG4gICAgICAgIGVtYWlsOiAnZ2F1cmFuZy50aGFra2FyMTk5N0BnbWFpbC5jb20nLFxuICAgICAgICBwaG9uZTogJzk5MzA2MDcwMzMnLFxuICAgICAgICBsY19sZ19jb2RlOiAnTEMxMjM0NTYnLFxuICAgICAgICBicmFuY2hfY29kZTogJ0hERkM1NjQ3NUgnLFxuICAgICAgICBidXNpbmVzc19jb2RlOiAnQUJDRDEyMzQ1SCdcbiAgICAgIH0sXG4gICAgICBsaW5rX2RldGFpbHM6IHtcbiAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICBhdXRvU2VuZE1vYmlsZU90cDogdHJ1ZSxcbiAgICAgICAgICBjbGllbnRfaWQ6ICdzcGFya2NwYWl0YWxfZGV2JyxcbiAgICAgICAgICBtb2JpbGVPdHBWZXJpZmljYXRpb246IHRydWUsXG4gICAgICAgICAgbW9iaWxlX251bWJlcjogJzk5MzA2MDcwMzMnLFxuICAgICAgICAgIHVzZXJfaWQ6ICc5OTMwNjA3MDMzJ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICB0YXNrX2lkOiAnc3BhcmtjcGFpdGFsX2Rldl80NjMyYzI5MS0xYjRjLTRmNWItYmI5NS1mOWFjYWFiNDVlMjcnLFxuICAgIHRhc2tfc2NoZWR1bGVfdGltZTogJzE2Nzk0Njk1MzIuMzQwMDU3JyxcbiAgICB1c2VyX2lkOiAnOTkzMDYwNzAzMydcbiAgfTtcblxuICBASW5wdXQoKVxuICBhZ2VudENvbmZpZzogYW55O1xuXG4gIHZpZXdUYXNrRGV0YWlsczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gIEBPdXRwdXQoKVxuICBuZXh0U3RlcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVtb3ZlVGFzayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlld1Rhc2tEZXRhaWxzID1cbiAgICAgIHRoaXMuYWdlbnRDb25maWc/LmRhc2hib2FyZENvbmZpZz8udmlld1Rhc2tEZXRhaWxzID8/XG4gICAgICB0aGlzLnZpZXdUYXNrRGV0YWlscztcbiAgfVxuXG4gIGNvbnZlcnRUb1RpdGxlQ2FzZShpbnB1dFN0cmluZzogc3RyaW5nKSB7XG4gICAgaW5wdXRTdHJpbmcgPSBpbnB1dFN0cmluZy5yZXBsYWNlKCckLnRhc2tfZGV0YWlscy5jdXN0b21lcl9kZXRhaWxzLicsICcnKTtcbiAgICBjb25zdCB3b3JkcyA9IGlucHV0U3RyaW5nLnNwbGl0KCdfJyk7XG4gICAgY29uc3QgY2FwaXRhbGl6ZWRXb3JkcyA9IHdvcmRzLm1hcChcbiAgICAgICh3b3JkKSA9PiB3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKVxuICAgICk7XG4gICAgY29uc3QgdGl0bGVDYXNlU3RyaW5nID0gY2FwaXRhbGl6ZWRXb3Jkcy5qb2luKCcgJyk7XG5cbiAgICByZXR1cm4gdGl0bGVDYXNlU3RyaW5nO1xuICB9XG5cbiAgY29udmVydEVwb2NoVG9EYXRlKGVwb2NoVGltZSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiBlcG9jaFRpbWUgPT0gJ3N0cmluZycpIGVwb2NoVGltZSA9IE51bWJlcihlcG9jaFRpbWUpO1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShlcG9jaFRpbWUgKiAxMDAwKTsgLy8gQ29udmVydCB0byBtaWxsaXNlY29uZHNcbiAgICBjb25zdCBkYXkgPSBkYXRlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgY29uc3QgbW9udGggPSAoZGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpOyAvLyBNb250aHMgYXJlIHplcm8tYmFzZWRcbiAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk7XG5cbiAgICByZXR1cm4gYCR7ZGF5fS0ke21vbnRofS0ke3llYXJ9YDtcbiAgfVxuXG4gIGdldFRhc2tEZXRhaWxzKHRhc2tEYXRhKSB7XG4gICAgcmV0dXJuIGdldE9iamVjdFZhbHVlRnJvbVBhdGgodGhpcy5jdXN0b21lciwgdGFza0RhdGEpO1xuICB9XG5cbiAgZ29Ub01hcHMobG9jYXRpb24pIHtcbiAgICB3aW5kb3cub3BlbihgJHtsb2NhdGlvbn1gLCAnX2JsYW5rJyk7XG4gIH1cblxuICBnb1RvTmV4dFN0ZXAoZSkge1xuICAgIHRoaXMubmV4dFN0ZXAuZW1pdChlKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMudXNlclNlcnZpY2Uuc2hvd1Rhc2tEZXRhaWxzID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaGFuZGxlT25DbGlja1JlbW92ZVRhc2sodGFzaykge1xuICAgIHRoaXMucmVtb3ZlVGFzay5lbWl0KHRhc2spO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3VzdG9tZXItZGV0YWlscy13cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJjdXN0b21lci1kZXRhaWxzLWhlYWRpbmdcIj5cbiAgICBUYXNrIERldGFpbHNcbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjdXN0b21lci1kZXRhaWxzLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItZGV0YWlscy11c2VyLWlkXCI+e3sgY3VzdG9tZXIudXNlcl9pZCB9fTwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLWRldGFpbHMtdGFibGVcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjdXN0b21lci1kZXRhaWxzLXRhYmxlLWRhdGFcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgdGFza0RhdGEgb2Ygdmlld1Rhc2tEZXRhaWxzXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLWRldGFpbHMtdGFibGUtZGV0YWlsLXZhbHVlXCI+XG4gICAgICAgICAge3sgZ2V0VGFza0RldGFpbHModGFza0RhdGEpIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItZGV0YWlscy1kYXRlXCI+XG4gICAgICBUYXNrIENyZWF0ZWQgb246IHt7Y29udmVydEVwb2NoVG9EYXRlKGN1c3RvbWVyLnRhc2tfY3JlYXRpb25fdGltZSl9fVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLWRldGFpbHMtYWN0aW9uc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLWRldGFpbHMtdGFzay1idXR0b25zXCI+XG4gICAgICAgIDxrd2lrdWktYnV0dG9uLWljb25cbiAgICAgICAgICAqbmdJZj1cImFnZW50Q29uZmlnLmRhc2hib2FyZENvbmZpZz8uYWxsb3dSZW1vdmVUYXNrXCJcbiAgICAgICAgICBbaWNvbl09XCIndHVpSWNvblRyYXNoMidcIlxuICAgICAgICAgIFtzaGFwZV09XCIncm91bmRlZCdcIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlT25DbGlja1JlbW92ZVRhc2soY3VzdG9tZXIpXCJcbiAgICAgICAgPjwva3dpa3VpLWJ1dHRvbi1pY29uPlxuICAgICAgICA8a3dpa3VpLWJ1dHRvbi1pY29uXG4gICAgICAgICAgKm5nSWY9XCJhZ2VudENvbmZpZy5kYXNoYm9hcmRDb25maWc/LnNob3dDb3B5TGlua1wiXG4gICAgICAgICAgaWNvbj1cInR1aUljb25Db3B5XCJcbiAgICAgICAgICBbc2hhcGVdPVwiJ3JvdW5kZWQnXCJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgIChvbkNsaWNrKT1cIlxuICAgICAgICAgICAgZ29Ub05leHRTdGVwKHsgY3VzdG9tZXI6IGN1c3RvbWVyLCBzdGVwVHlwZTogJ1NIQVJFX0pPVVJORVlfTElOSycgfSlcbiAgICAgICAgICBcIlxuICAgICAgICA+PC9rd2lrdWktYnV0dG9uLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b21lci1kZXRhaWxzLWpvdXJuZXktYnV0dG9uc1wiPlxuICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBhZ2VudENvbmZpZy5kYXNoYm9hcmRDb25maWc/LnNob3dNYXBzICYmXG4gICAgICAgICAgICBjdXN0b21lcj8udGFza19kZXRhaWxzPy5jdXN0b21lcl9kZXRhaWxzPy5sb2NhdGlvblxuICAgICAgICAgIFwiXG4gICAgICAgICAgbGFiZWw9XCJTaG93IERpcmVjdGlvbnNcIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgc3R5bGVzPVwiZm9udC1zaXplOjAuN3JlbTtcIlxuICAgICAgICAgIChvbkNsaWNrKT1cImdvVG9NYXBzKGN1c3RvbWVyPy50YXNrX2RldGFpbHM/LmN1c3RvbWVyX2RldGFpbHM/LmxvY2F0aW9uKVwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24+XG4gICAgICAgIDxrd2lrdWktYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGFnZW50Q29uZmlnLmRhc2hib2FyZENvbmZpZz8uc2hvd1N0YXJ0Sm91cm5leUJ1dHRvbiAmJlxuICAgICAgICAgICAgY3VzdG9tZXIuc2Vzc2lvbl9zdGF0dXMgIT09ICdjb21wbGV0ZScgJiZcbiAgICAgICAgICAgIGN1c3RvbWVyLnNlc3Npb25fc3RhdHVzICE9PSAnJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgbGFiZWw9XCJFZGl0IEpvdXJuZXlcIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJwcmltYXJ5XCJcbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgc3R5bGVzPVwiZm9udC1zaXplOjAuN3JlbTtcIlxuICAgICAgICAgIChvbkNsaWNrKT1cIlxuICAgICAgICAgICAgZ29Ub05leHRTdGVwKHsgY3VzdG9tZXI6IGN1c3RvbWVyLCBzdGVwVHlwZTogJ0VESVRfSk9VUk5FWScgfSlcbiAgICAgICAgICBcIlxuICAgICAgICA+PC9rd2lrdWktYnV0dG9uPlxuICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBhZ2VudENvbmZpZy5kYXNoYm9hcmRDb25maWc/LnNob3dTdGFydEpvdXJuZXlCdXR0b24gJiZcbiAgICAgICAgICAgIGN1c3RvbWVyLnNlc3Npb25fc3RhdHVzID09ICcnXG4gICAgICAgICAgXCJcbiAgICAgICAgICBsYWJlbD1cIlN0YXJ0IEpvdXJuZXlcIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJwcmltYXJ5XCJcbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgc3R5bGVzPVwiZm9udC1zaXplOjAuN3JlbTtcIlxuICAgICAgICAgIChvbkNsaWNrKT1cIlxuICAgICAgICAgICAgZ29Ub05leHRTdGVwKHsgY3VzdG9tZXI6IGN1c3RvbWVyLCBzdGVwVHlwZTogJ1NUQVJUX0pPVVJORVknIH0pXG4gICAgICAgICAgXCJcbiAgICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,21 +1,24 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
1
+ import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
2
2
  import { MapInfoWindow } from '@angular/google-maps';
3
3
  import { getObjectValueFromPath } from 'kwikid-toolkit';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../../services/map.service";
6
6
  import * as i2 from "../../services/info-window.service";
7
- import * as i3 from "./status-pill/status-pill.component";
8
- import * as i4 from "kwikui";
9
- import * as i5 from "@angular/common";
7
+ import * as i3 from "../../services/user.service";
8
+ import * as i4 from "./status-pill/status-pill.component";
9
+ import * as i5 from "kwikui";
10
+ import * as i6 from "@angular/common";
10
11
  export class CustomerTileComponent {
11
12
  /**
12
13
  * @description
13
14
  *
14
15
  * @constructor
15
16
  */
16
- constructor(mapService, infoWindowService) {
17
+ constructor(mapService, infoWindowService, userService, hostElement) {
17
18
  this.mapService = mapService;
18
19
  this.infoWindowService = infoWindowService;
20
+ this.userService = userService;
21
+ this.hostElement = hostElement;
19
22
  /**
20
23
  * @description
21
24
  * Determines Customer Data
@@ -32,6 +35,7 @@ export class CustomerTileComponent {
32
35
  *
33
36
  */
34
37
  this.index = undefined;
38
+ this.isMobileView = false;
35
39
  this.viewTaskDetails = [];
36
40
  /**
37
41
  * @description
@@ -43,6 +47,14 @@ export class CustomerTileComponent {
43
47
  this.nextStep = new EventEmitter();
44
48
  this.removeTask = new EventEmitter();
45
49
  }
50
+ windowResizeWatcher() {
51
+ if (this.hostElement.nativeElement.offsetWidth < 600) {
52
+ this.isMobileView = true;
53
+ }
54
+ else {
55
+ this.isMobileView = false;
56
+ }
57
+ }
46
58
  /**
47
59
  * @description
48
60
  * To set Google Maps API on script
@@ -51,12 +63,22 @@ export class CustomerTileComponent {
51
63
  */
52
64
  ngOnInit() {
53
65
  var _a, _b, _c;
54
- this.viewTaskDetails = (_c = (_b = (_a = this.agentConfig) === null || _a === void 0 ? void 0 : _a.dashboardConfig) === null || _b === void 0 ? void 0 : _b.viewTaskDetails) !== null && _c !== void 0 ? _c : this.viewTaskDetails;
66
+ this.viewTaskDetails =
67
+ (_c = (_b = (_a = this.agentConfig) === null || _a === void 0 ? void 0 : _a.dashboardConfig) === null || _b === void 0 ? void 0 : _b.viewTaskDetails) !== null && _c !== void 0 ? _c : this.viewTaskDetails;
55
68
  }
56
69
  getTaskDetails(taskData) {
57
70
  return getObjectValueFromPath(this.customer, taskData);
58
71
  }
72
+ openDetails() {
73
+ if (this.userService.showTaskDetails !== this.index) {
74
+ this.userService.showTaskDetails = this.index;
75
+ }
76
+ else {
77
+ this.userService.showTaskDetails = undefined;
78
+ }
79
+ }
59
80
  tileClick() {
81
+ this.openDetails();
60
82
  if (this.index == this.infoWindowService.getOpenMarker()) {
61
83
  this.infoWindowService.setOpenMarker(null);
62
84
  //this.infoWindowService.lastInfoWindowOpened.close();
@@ -82,6 +104,13 @@ export class CustomerTileComponent {
82
104
  // );
83
105
  this.infoWindowService.setOpenMarker(index);
84
106
  }
107
+ getClass() {
108
+ let string = "customer-tile-wrapper";
109
+ if (this.userService.showTaskDetails == this.index) {
110
+ string += " customer-tile-active";
111
+ }
112
+ return string;
113
+ }
85
114
  goToMaps(location) {
86
115
  window.open(`${location}`, '_blank');
87
116
  }
@@ -92,8 +121,8 @@ export class CustomerTileComponent {
92
121
  this.removeTask.emit(task);
93
122
  }
94
123
  }
95
- /** @nocollapse */ CustomerTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomerTileComponent, deps: [{ token: i1.MapService }, { token: i2.InfoWindowService }], target: i0.ɵɵFactoryTarget.Component });
96
- /** @nocollapse */ CustomerTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomerTileComponent, selector: "customer-tile", inputs: { customer: "customer", index: "index", agentConfig: "agentConfig" }, outputs: { nextStep: "nextStep", removeTask: "removeTask" }, viewQueries: [{ propertyName: "infoWindow", first: true, predicate: MapInfoWindow, descendants: true }], ngImport: i0, template: "<div class=\"customer-tile-wrapper\">\n <div class=\"customer-tile-primary-container\">\n <div class=\"customer-tile-primary-container-data\">\n <div class=\"customer-tile-primary-container-userid\">\n {{ customer.user_id }}\n </div>\n <status-pill *ngIf=\"agentConfig?.dashboardConfig?.showTaskStatus\" [status]=\"customer.session_status\"></status-pill>\n </div>\n <kwikui-button-icon\n [icon]=\"\n index == infoWindowService.getOpenMarker()\n ? 'tuiIconChevronUpLarge'\n : 'tuiIconChevronDownLarge'\n \"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"tileClick()\"\n ></kwikui-button-icon>\n </div>\n <div\n [ngClass]=\"\n index == infoWindowService.getOpenMarker()\n ? 'customer-tile-secondary-container'\n : 'data-collasped'\n \"\n >\n <div class=\"customer-tile-secondary-container-data\">\n <div\n *ngFor=\"let taskData of viewTaskDetails\"\n class=\"customer-tile-secondary-container-custom-details\"\n >\n {{ getTaskDetails(taskData) }}\n </div>\n </div>\n <div class=\"customer-tile-secondary-container-actions\">\n <div class=\"customer-tile-secondary-container-task-buttons\">\n <kwikui-button-icon\n *ngIf=\"agentConfig.dashboardConfig?.allowRemoveTask\"\n [icon]=\"'tuiIconTrash2'\"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"handleOnClickRemoveTask(customer)\"\n ></kwikui-button-icon>\n <kwikui-button-icon\n *ngIf=\"agentConfig.dashboardConfig?.showCopyLink\"\n icon=\"tuiIconCopy\"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"\n goToNextStep({ customer: customer, stepType: 'SHARE_JOURNEY_LINK' })\n \"\n ></kwikui-button-icon>\n </div>\n <div class=\"customer-tile-secondary-container-journey-buttons\">\n <kwikui-button\n *ngIf=\"\n agentConfig.dashboardConfig?.showMaps &&\n customer?.task_details?.customer_details?.location\n \"\n label=\"Show Directions\"\n appearance=\"flat\"\n size=\"s\"\n styles=\"font-size:0.7rem;\"\n (onClick)=\"goToMaps(customer.task_details.customer_details.location)\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"\n agentConfig.dashboardConfig?.showStartJourneyButton &&\n customer.session_status !== 'complete' &&\n customer.session_status !== ''\n \"\n label=\"Edit Journey\"\n appearance=\"primary\"\n size=\"s\"\n styles=\"font-size:0.7rem;\"\n (onClick)=\"\n goToNextStep({ customer: customer, stepType: 'EDIT_JOURNEY' })\n \"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"\n agentConfig.dashboardConfig?.showStartJourneyButton &&\n customer.session_status == ''\n \"\n label=\"Start Journey\"\n appearance=\"primary\"\n size=\"s\"\n styles=\"font-size:0.7rem;\"\n (onClick)=\"\n goToNextStep({ customer: customer, stepType: 'START_JOURNEY' })\n \"\n ></kwikui-button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".customer-tile-wrapper{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:stretch;flex:1;overflow:auto;grid-gap:.5rem;gap:.5rem;padding:1rem;border-bottom:.5px solid #ddd}.customer-tile-wrapper .customer-tile-primary-container{display:flex;grid-gap:.5rem;gap:.5rem;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;width:100%;height:100%}.customer-tile-wrapper .customer-tile-primary-container .customer-tile-primary-container-data{padding-left:.2rem;grid-gap:.6rem;gap:.6rem;display:flex;flex-direction:row;flex-wrap:wrap;align-content:stretch;justify-content:space-evenly;align-items:center}.customer-tile-wrapper .customer-tile-primary-container .customer-tile-primary-container-data .customer-tile-primary-container-userid{font-weight:500;font-size:1.1rem;line-height:1rem}.customer-tile-wrapper .customer-tile-secondary-container{width:100%;height:100%;display:flex;flex-direction:column;overflow:auto;grid-gap:.5rem;gap:.5rem}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-data{padding:.4rem .2rem;display:flex;flex-direction:column;font-size:.7rem;grid-gap:.3rem;gap:.3rem}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-data .customer-tile-secondary-container-custom-details{width:100%;height:100%;line-height:.9rem}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-actions .customer-tile-secondary-container-task-buttons{display:flex;flex-direction:row;align-items:center;justify-content:flex-start}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-actions .customer-tile-secondary-container-journey-buttons{padding-right:.2rem;display:flex;flex-direction:row;grid-gap:.2rem;gap:.2rem;align-items:center;justify-content:flex-end}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-actions .customer-tile-secondary-container-journey-buttons .customer-share-link{font-size:.7rem}.customer-tile-wrapper .data-collasped{display:none}\n"], components: [{ type: i3.StatusPillComponent, selector: "status-pill", inputs: ["status"] }, { type: i4.KwikUIButtonIconComponent, selector: "kwikui-button-icon", inputs: ["disabled", "id", "showLoader", "styles", "class", "type", "appearance", "icon", "shape", "size"], outputs: ["onClick"] }, { type: i4.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
124
+ /** @nocollapse */ CustomerTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomerTileComponent, deps: [{ token: i1.MapService }, { token: i2.InfoWindowService }, { token: i3.UserService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
125
+ /** @nocollapse */ CustomerTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomerTileComponent, selector: "customer-tile", inputs: { customer: "customer", index: "index", agentConfig: "agentConfig" }, outputs: { nextStep: "nextStep", removeTask: "removeTask" }, host: { listeners: { "window:resize": "windowResizeWatcher($event)" } }, viewQueries: [{ propertyName: "infoWindow", first: true, predicate: MapInfoWindow, descendants: true }], ngImport: i0, template: "<div [ngClass]=\"getClass()\">\n <div class=\"customer-tile-primary-container\">\n <div class=\"customer-tile-primary-container-data\">\n <div class=\"customer-tile-primary-container-userid\">\n {{ customer.user_id }}\n </div>\n <status-pill\n *ngIf=\"agentConfig?.dashboardConfig?.showTaskStatus\"\n [status]=\"customer.session_status\"\n ></status-pill>\n </div>\n <kwikui-button-icon\n *ngIf=\"!userService.isMobileView && !userService.showMapview\"\n [icon]=\"\n userService.showTaskDetails==index\n ? 'tuiIconChevronLeftLarge'\n : 'tuiIconChevronRightLarge'\n \"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"openDetails()\"\n ></kwikui-button-icon>\n <kwikui-button-icon\n *ngIf=\"userService.isMobileView || userService.showMapview\"\n [icon]=\"\n userService.showTaskDetails==index\n ? 'tuiIconChevronUpLarge'\n : 'tuiIconChevronDownLarge'\n \"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"openDetails()\"\n ></kwikui-button-icon>\n </div>\n <div\n [ngClass]=\"\n index == userService.showTaskDetails && userService.isMobileView\n ? 'customer-tile-secondary-container'\n : 'data-collasped'\n \"\n >\n <div class=\"customer-tile-secondary-container-data\">\n <div\n *ngFor=\"let taskData of viewTaskDetails\"\n class=\"customer-tile-secondary-container-custom-details\"\n >\n {{ getTaskDetails(taskData) }}\n </div>\n </div>\n <div class=\"customer-tile-secondary-container-actions\">\n <div class=\"customer-tile-secondary-container-task-buttons\">\n <kwikui-button-icon\n *ngIf=\"agentConfig.dashboardConfig?.allowRemoveTask\"\n [icon]=\"'tuiIconTrash2'\"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"handleOnClickRemoveTask(customer)\"\n ></kwikui-button-icon>\n <kwikui-button-icon\n *ngIf=\"agentConfig.dashboardConfig?.showCopyLink\"\n icon=\"tuiIconCopy\"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"\n goToNextStep({ customer: customer, stepType: 'SHARE_JOURNEY_LINK' })\n \"\n ></kwikui-button-icon>\n </div>\n <div class=\"customer-tile-secondary-container-journey-buttons\">\n <kwikui-button\n *ngIf=\"\n agentConfig.dashboardConfig?.showMaps &&\n customer?.task_details?.customer_details?.location\n \"\n label=\"Show Directions\"\n appearance=\"flat\"\n size=\"s\"\n styles=\"font-size:0.7rem;\"\n (onClick)=\"goToMaps(customer.task_details.customer_details.location)\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"\n agentConfig.dashboardConfig?.showStartJourneyButton &&\n customer.session_status !== 'complete' &&\n customer.session_status !== ''\n \"\n label=\"Edit Journey\"\n appearance=\"primary\"\n size=\"s\"\n styles=\"font-size:0.7rem;\"\n (onClick)=\"\n goToNextStep({ customer: customer, stepType: 'EDIT_JOURNEY' })\n \"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"\n agentConfig.dashboardConfig?.showStartJourneyButton &&\n customer.session_status == ''\n \"\n label=\"Start Journey\"\n appearance=\"primary\"\n size=\"s\"\n styles=\"font-size:0.7rem;\"\n (onClick)=\"\n goToNextStep({ customer: customer, stepType: 'START_JOURNEY' })\n \"\n ></kwikui-button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".customer-tile-wrapper{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:stretch;flex:1;overflow:auto;grid-gap:.5rem;gap:.5rem;padding:1rem;border-bottom:.5px solid #ddd}.customer-tile-wrapper .customer-tile-primary-container{display:flex;grid-gap:.5rem;gap:.5rem;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;width:100%;height:100%}.customer-tile-wrapper .customer-tile-primary-container .customer-tile-primary-container-data{padding-left:.2rem;grid-gap:.6rem;gap:.6rem;display:flex;flex-direction:row;flex-wrap:wrap;align-content:stretch;justify-content:space-evenly;align-items:center}.customer-tile-wrapper .customer-tile-primary-container .customer-tile-primary-container-data .customer-tile-primary-container-userid{font-weight:500;font-size:1.1rem;line-height:1rem}.customer-tile-wrapper .customer-tile-secondary-container{width:100%;height:100%;display:flex;flex-direction:column;overflow:auto;grid-gap:.5rem;gap:.5rem}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-data{padding:.4rem .2rem;display:flex;flex-direction:column;font-size:.7rem;grid-gap:.3rem;gap:.3rem}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-data .customer-tile-secondary-container-custom-details{width:100%;height:100%;line-height:.9rem;word-wrap:break-word}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-actions .customer-tile-secondary-container-task-buttons{display:flex;flex-direction:row;align-items:center;justify-content:flex-start}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-actions .customer-tile-secondary-container-journey-buttons{padding-right:.2rem;display:flex;flex-direction:row;grid-gap:.2rem;gap:.2rem;align-items:center;justify-content:flex-end}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-actions .customer-tile-secondary-container-journey-buttons .customer-share-link{font-size:.7rem}.customer-tile-wrapper .data-collasped{display:none}.customer-tile-active{background-color:#dcedfd}\n"], components: [{ type: i4.StatusPillComponent, selector: "status-pill", inputs: ["status"] }, { type: i5.KwikUIButtonIconComponent, selector: "kwikui-button-icon", inputs: ["disabled", "id", "showLoader", "styles", "class", "type", "appearance", "icon", "shape", "size"], outputs: ["onClick"] }, { type: i5.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
97
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomerTileComponent, decorators: [{
98
127
  type: Component,
99
128
  args: [{
@@ -101,7 +130,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
101
130
  templateUrl: './customer-tile.component.html',
102
131
  styleUrls: ['./customer-tile.component.scss']
103
132
  }]
104
- }], ctorParameters: function () { return [{ type: i1.MapService }, { type: i2.InfoWindowService }]; }, propDecorators: { customer: [{
133
+ }], ctorParameters: function () { return [{ type: i1.MapService }, { type: i2.InfoWindowService }, { type: i3.UserService }, { type: i0.ElementRef }]; }, propDecorators: { windowResizeWatcher: [{
134
+ type: HostListener,
135
+ args: ['window:resize', ['$event']]
136
+ }], customer: [{
105
137
  type: Input
106
138
  }], index: [{
107
139
  type: Input
@@ -115,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
115
147
  type: ViewChild,
116
148
  args: [MapInfoWindow]
117
149
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItdGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b21lci10aWxlL2N1c3RvbWVyLXRpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tZXItdGlsZS9jdXN0b21lci10aWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVN4RCxNQUFNLE9BQU8scUJBQXFCO0lBc0NoQzs7OztPQUlHO0lBQ0gsWUFDUyxVQUFzQixFQUN0QixpQkFBb0M7UUFEcEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBNUM3Qzs7Ozs7O1dBTUc7UUFFSCxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBRW5COzs7Ozs7V0FNRztRQUVILFVBQUssR0FBVyxTQUFTLENBQUM7UUFLMUIsb0JBQWUsR0FBa0IsRUFBRSxDQUFBO1FBRW5DOzs7Ozs7V0FNRztRQUVILGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRzlCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBUzdCLENBQUM7SUFJSjs7Ozs7T0FLRztJQUNILFFBQVE7O1FBQ04sSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxlQUFlLDBDQUFFLGVBQWUsbUNBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNwRyxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQVE7UUFDckIsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN4RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLHNEQUFzRDtTQUN2RDthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLO1FBQ3pCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0MsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVoQyx1RUFBdUU7UUFDdkUsY0FBYztRQUNkLFdBQVc7UUFDWCxLQUFLO1FBRUwsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQVE7UUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQVksQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELHVCQUF1QixDQUFDLElBQUk7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7c0lBdkdVLHFCQUFxQjswSEFBckIscUJBQXFCLDRPQWdEckIsYUFBYSxnRENwRTFCLG0zR0FtR0E7NEZEL0VhLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7aUJBQzlDO2lJQVVDLFFBQVE7c0JBRFAsS0FBSztnQkFXTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQWFOLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxVQUFVO3NCQURULE1BQU07Z0JBWW1CLFVBQVU7c0JBQW5DLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hcEluZm9XaW5kb3cgfSBmcm9tICdAYW5ndWxhci9nb29nbGUtbWFwcyc7XG5pbXBvcnQgeyBJbmZvV2luZG93U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2luZm8td2luZG93LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21hcC5zZXJ2aWNlJztcbmltcG9ydCB7IGdldE9iamVjdFZhbHVlRnJvbVBhdGggfSBmcm9tICdrd2lraWQtdG9vbGtpdCc7XG5cbmRlY2xhcmUgY29uc3QgZ29vZ2xlOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N1c3RvbWVyLXRpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tZXItdGlsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbWVyLXRpbGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21lclRpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERldGVybWluZXMgQ3VzdG9tZXIgRGF0YVxuICAgKlxuICAgKiBAZGVmYXVsdFxuICAgKiBge31gXG4gICAqL1xuICBASW5wdXQoKVxuICBjdXN0b21lcjogYW55ID0ge307XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEZXRlcm1pbmVzIEluZGV4IG9mIEN1c3RvbWVyIERhdGEgaW4gQ3VzdG9tZXIgTGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdFxuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgaW5kZXg6IG51bWJlciA9IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBhZ2VudENvbmZpZzogYW55O1xuXG4gIHZpZXdUYXNrRGV0YWlsczogQXJyYXk8c3RyaW5nPiA9IFtdXG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFbWl0dGVyIHRvIGVtaXQgbmV4dCBTdGVwXG4gICAqXG4gICAqIEBlbWl0cyBLd2lrSURBZ2VudERhc2hib2FyZENvbXBvbmVudCNuZXh0U3RlcFxuICAgKiBAZmlyZXMgS3dpa0lEQWdlbnREYXNoYm9hcmRDb21wb25lbnQjbmV4dFN0ZXBcbiAgICovXG4gIEBPdXRwdXQoKVxuICBuZXh0U3RlcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVtb3ZlVGFzayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlLFxuICAgIHB1YmxpYyBpbmZvV2luZG93U2VydmljZTogSW5mb1dpbmRvd1NlcnZpY2VcbiAgKSB7fVxuXG4gIEBWaWV3Q2hpbGQoTWFwSW5mb1dpbmRvdykgaW5mb1dpbmRvdzogTWFwSW5mb1dpbmRvdztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRvIHNldCBHb29nbGUgTWFwcyBBUEkgb24gc2NyaXB0XG4gICAqXG4gICAqIEBuZ09uSW5pdFxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aWV3VGFza0RldGFpbHMgPSB0aGlzLmFnZW50Q29uZmlnPy5kYXNoYm9hcmRDb25maWc/LnZpZXdUYXNrRGV0YWlscyA/PyB0aGlzLnZpZXdUYXNrRGV0YWlscztcbiAgfVxuXG4gIGdldFRhc2tEZXRhaWxzKHRhc2tEYXRhKSB7XG4gICAgcmV0dXJuIGdldE9iamVjdFZhbHVlRnJvbVBhdGgodGhpcy5jdXN0b21lciwgdGFza0RhdGEpO1xuICB9XG5cbiAgdGlsZUNsaWNrKCkge1xuICAgIGlmICh0aGlzLmluZGV4ID09IHRoaXMuaW5mb1dpbmRvd1NlcnZpY2UuZ2V0T3Blbk1hcmtlcigpKSB7XG4gICAgICB0aGlzLmluZm9XaW5kb3dTZXJ2aWNlLnNldE9wZW5NYXJrZXIobnVsbCk7XG4gICAgICAvL3RoaXMuaW5mb1dpbmRvd1NlcnZpY2UubGFzdEluZm9XaW5kb3dPcGVuZWQuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93RGV0YWlscyh0aGlzLmN1c3RvbWVyLCB0aGlzLmluZGV4KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdyYXBwZXIgbWV0aG9kIHRvIHNob3cgQ3VzdG9tZXIgSW5mbyBXaW5kb3dcbiAgICpcbiAgICogQGZ1bmN0aW9uIHNob3dEZXRhaWxzXG4gICAqIEBmdW5jIHNob3dEZXRhaWxzXG4gICAqIEBtZXRob2Qgc2hvd0RldGFpbHNcbiAgICovXG4gIHNob3dEZXRhaWxzKGN1c3RvbWVyLCBpbmRleCkge1xuICAgIGxldCBtYXJrZXJzID0gdGhpcy5tYXBTZXJ2aWNlLmdldE1hcmtlcnMoKTtcbiAgICBsZXQgbWFya2VyID0gbWFya2Vyc1tpbmRleCArIDFdO1xuXG4gICAgLy8gbGV0IHsgaW5mb3dpbmRvdyB9ID0gdGhpcy5pbmZvV2luZG93U2VydmljZS5zaG93Q3VzdG9tZXJJbmZvcm1hdGlvbihcbiAgICAvLyAgIGN1c3RvbWVyLFxuICAgIC8vICAgbWFya2VyXG4gICAgLy8gKTtcblxuICAgIHRoaXMuaW5mb1dpbmRvd1NlcnZpY2Uuc2V0T3Blbk1hcmtlcihpbmRleCk7XG4gIH1cblxuICBnb1RvTWFwcyhsb2NhdGlvbil7XG4gICAgd2luZG93Lm9wZW4oYCR7bG9jYXRpb259YCwgJ19ibGFuaycpO1xuICB9XG5cbiAgZ29Ub05leHRTdGVwKGUpIHtcbiAgICB0aGlzLm5leHRTdGVwLmVtaXQoZSk7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrUmVtb3ZlVGFzayh0YXNrKSB7XG4gICAgdGhpcy5yZW1vdmVUYXNrLmVtaXQodGFzayk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjdXN0b21lci10aWxlLXdyYXBwZXJcIj5cbiAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLXRpbGUtcHJpbWFyeS1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItdGlsZS1wcmltYXJ5LWNvbnRhaW5lci1kYXRhXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItdGlsZS1wcmltYXJ5LWNvbnRhaW5lci11c2VyaWRcIj5cbiAgICAgICAge3sgY3VzdG9tZXIudXNlcl9pZCB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8c3RhdHVzLXBpbGwgKm5nSWY9XCJhZ2VudENvbmZpZz8uZGFzaGJvYXJkQ29uZmlnPy5zaG93VGFza1N0YXR1c1wiIFtzdGF0dXNdPVwiY3VzdG9tZXIuc2Vzc2lvbl9zdGF0dXNcIj48L3N0YXR1cy1waWxsPlxuICAgIDwvZGl2PlxuICAgIDxrd2lrdWktYnV0dG9uLWljb25cbiAgICAgIFtpY29uXT1cIlxuICAgICAgICBpbmRleCA9PSBpbmZvV2luZG93U2VydmljZS5nZXRPcGVuTWFya2VyKClcbiAgICAgICAgICA/ICd0dWlJY29uQ2hldnJvblVwTGFyZ2UnXG4gICAgICAgICAgOiAndHVpSWNvbkNoZXZyb25Eb3duTGFyZ2UnXG4gICAgICBcIlxuICAgICAgW3NoYXBlXT1cIidyb3VuZGVkJ1wiXG4gICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICBzaXplPVwic1wiXG4gICAgICAob25DbGljayk9XCJ0aWxlQ2xpY2soKVwiXG4gICAgPjwva3dpa3VpLWJ1dHRvbi1pY29uPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgaW5kZXggPT0gaW5mb1dpbmRvd1NlcnZpY2UuZ2V0T3Blbk1hcmtlcigpXG4gICAgICAgID8gJ2N1c3RvbWVyLXRpbGUtc2Vjb25kYXJ5LWNvbnRhaW5lcidcbiAgICAgICAgOiAnZGF0YS1jb2xsYXNwZWQnXG4gICAgXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b21lci10aWxlLXNlY29uZGFyeS1jb250YWluZXItZGF0YVwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgdGFza0RhdGEgb2Ygdmlld1Rhc2tEZXRhaWxzXCJcbiAgICAgICAgY2xhc3M9XCJjdXN0b21lci10aWxlLXNlY29uZGFyeS1jb250YWluZXItY3VzdG9tLWRldGFpbHNcIlxuICAgICAgPlxuICAgICAgICB7eyBnZXRUYXNrRGV0YWlscyh0YXNrRGF0YSkgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b21lci10aWxlLXNlY29uZGFyeS1jb250YWluZXItYWN0aW9uc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLXRpbGUtc2Vjb25kYXJ5LWNvbnRhaW5lci10YXNrLWJ1dHRvbnNcIj5cbiAgICAgICAgPGt3aWt1aS1idXR0b24taWNvblxuICAgICAgICAgICpuZ0lmPVwiYWdlbnRDb25maWcuZGFzaGJvYXJkQ29uZmlnPy5hbGxvd1JlbW92ZVRhc2tcIlxuICAgICAgICAgIFtpY29uXT1cIid0dWlJY29uVHJhc2gyJ1wiXG4gICAgICAgICAgW3NoYXBlXT1cIidyb3VuZGVkJ1wiXG4gICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVPbkNsaWNrUmVtb3ZlVGFzayhjdXN0b21lcilcIlxuICAgICAgICA+PC9rd2lrdWktYnV0dG9uLWljb24+XG4gICAgICAgIDxrd2lrdWktYnV0dG9uLWljb25cbiAgICAgICAgICAqbmdJZj1cImFnZW50Q29uZmlnLmRhc2hib2FyZENvbmZpZz8uc2hvd0NvcHlMaW5rXCJcbiAgICAgICAgICBpY29uPVwidHVpSWNvbkNvcHlcIlxuICAgICAgICAgIFtzaGFwZV09XCIncm91bmRlZCdcIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiXG4gICAgICAgICAgICBnb1RvTmV4dFN0ZXAoeyBjdXN0b21lcjogY3VzdG9tZXIsIHN0ZXBUeXBlOiAnU0hBUkVfSk9VUk5FWV9MSU5LJyB9KVxuICAgICAgICAgIFwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24taWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLXRpbGUtc2Vjb25kYXJ5LWNvbnRhaW5lci1qb3VybmV5LWJ1dHRvbnNcIj5cbiAgICAgICAgPGt3aWt1aS1idXR0b25cbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgYWdlbnRDb25maWcuZGFzaGJvYXJkQ29uZmlnPy5zaG93TWFwcyAmJlxuICAgICAgICAgICAgY3VzdG9tZXI/LnRhc2tfZGV0YWlscz8uY3VzdG9tZXJfZGV0YWlscz8ubG9jYXRpb25cbiAgICAgICAgICBcIlxuICAgICAgICAgIGxhYmVsPVwiU2hvdyBEaXJlY3Rpb25zXCJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwiZmxhdFwiXG4gICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgIHN0eWxlcz1cImZvbnQtc2l6ZTowLjdyZW07XCJcbiAgICAgICAgICAob25DbGljayk9XCJnb1RvTWFwcyhjdXN0b21lci50YXNrX2RldGFpbHMuY3VzdG9tZXJfZGV0YWlscy5sb2NhdGlvbilcIlxuICAgICAgICA+PC9rd2lrdWktYnV0dG9uPlxuICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBhZ2VudENvbmZpZy5kYXNoYm9hcmRDb25maWc/LnNob3dTdGFydEpvdXJuZXlCdXR0b24gJiZcbiAgICAgICAgICAgIGN1c3RvbWVyLnNlc3Npb25fc3RhdHVzICE9PSAnY29tcGxldGUnICYmXG4gICAgICAgICAgICBjdXN0b21lci5zZXNzaW9uX3N0YXR1cyAhPT0gJydcbiAgICAgICAgICBcIlxuICAgICAgICAgIGxhYmVsPVwiRWRpdCBKb3VybmV5XCJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwicHJpbWFyeVwiXG4gICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgIHN0eWxlcz1cImZvbnQtc2l6ZTowLjdyZW07XCJcbiAgICAgICAgICAob25DbGljayk9XCJcbiAgICAgICAgICAgIGdvVG9OZXh0U3RlcCh7IGN1c3RvbWVyOiBjdXN0b21lciwgc3RlcFR5cGU6ICdFRElUX0pPVVJORVknIH0pXG4gICAgICAgICAgXCJcbiAgICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICAgICAgPGt3aWt1aS1idXR0b25cbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgYWdlbnRDb25maWcuZGFzaGJvYXJkQ29uZmlnPy5zaG93U3RhcnRKb3VybmV5QnV0dG9uICYmXG4gICAgICAgICAgICBjdXN0b21lci5zZXNzaW9uX3N0YXR1cyA9PSAnJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgbGFiZWw9XCJTdGFydCBKb3VybmV5XCJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwicHJpbWFyeVwiXG4gICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgIHN0eWxlcz1cImZvbnQtc2l6ZTowLjdyZW07XCJcbiAgICAgICAgICAob25DbGljayk9XCJcbiAgICAgICAgICAgIGdvVG9OZXh0U3RlcCh7IGN1c3RvbWVyOiBjdXN0b21lciwgc3RlcFR5cGU6ICdTVEFSVF9KT1VSTkVZJyB9KVxuICAgICAgICAgIFwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItdGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b21lci10aWxlL2N1c3RvbWVyLXRpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tZXItdGlsZS9jdXN0b21lci10aWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHckQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBVXhELE1BQU0sT0FBTyxxQkFBcUI7SUFpRGhDOzs7O09BSUc7SUFDSCxZQUNTLFVBQXNCLEVBQ3RCLGlCQUFvQyxFQUNwQyxXQUF3QixFQUN2QixXQUF1QjtRQUh4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFoRGpDOzs7Ozs7V0FNRztRQUVILGFBQVEsR0FBUSxFQUFFLENBQUM7UUFFbkI7Ozs7OztXQU1HO1FBRUgsVUFBSyxHQUFXLFNBQVMsQ0FBQztRQUsxQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixvQkFBZSxHQUFrQixFQUFFLENBQUM7UUFFcEM7Ozs7OztXQU1HO1FBRUgsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHOUIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFXN0IsQ0FBQztJQXpESixtQkFBbUI7UUFDakIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFO1lBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUF1REQ7Ozs7O09BS0c7SUFDSCxRQUFROztRQUNOLElBQUksQ0FBQyxlQUFlO1lBQ2xCLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLGVBQWUsMENBQUUsZUFBZSxtQ0FDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQVE7UUFDckIsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDL0M7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztTQUM5QztJQUNILENBQUM7SUFFRCxTQUFTO1FBRVAsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWxCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDekQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxzREFBc0Q7U0FDdkQ7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFdBQVcsQ0FBQyxRQUFRLEVBQUUsS0FBSztRQUN6QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzNDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFaEMsdUVBQXVFO1FBQ3ZFLGNBQWM7UUFDZCxXQUFXO1FBQ1gsS0FBSztRQUVMLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQztRQUNyQyxJQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUM7WUFDaEQsTUFBTSxJQUFJLHVCQUF1QixDQUFBO1NBQ2xDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFRO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFJO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7O3NJQXpJVSxxQkFBcUI7MEhBQXJCLHFCQUFxQixxVEE2RHJCLGFBQWEsZ0RDcEYxQix3MUhBbUhBOzRGRDVGYSxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5QztvTEFHQyxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCekMsUUFBUTtzQkFEUCxLQUFLO2dCQVdOLEtBQUs7c0JBREosS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBZU4sUUFBUTtzQkFEUCxNQUFNO2dCQUlQLFVBQVU7c0JBRFQsTUFBTTtnQkFjbUIsVUFBVTtzQkFBbkMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXBJbmZvV2luZG93IH0gZnJvbSAnQGFuZ3VsYXIvZ29vZ2xlLW1hcHMnO1xuaW1wb3J0IHsgSW5mb1dpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbmZvLXdpbmRvdy5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYXAuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRPYmplY3RWYWx1ZUZyb21QYXRoIH0gZnJvbSAna3dpa2lkLXRvb2xraXQnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuXG5kZWNsYXJlIGNvbnN0IGdvb2dsZTogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdXN0b21lci10aWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWVyLXRpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b21lci10aWxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJUaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHdpbmRvd1Jlc2l6ZVdhdGNoZXIoKSB7XG4gICAgaWYgKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA8IDYwMCkge1xuICAgICAgdGhpcy5pc01vYmlsZVZpZXcgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGV0ZXJtaW5lcyBDdXN0b21lciBEYXRhXG4gICAqXG4gICAqIEBkZWZhdWx0XG4gICAqIGB7fWBcbiAgICovXG4gIEBJbnB1dCgpXG4gIGN1c3RvbWVyOiBhbnkgPSB7fTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERldGVybWluZXMgSW5kZXggb2YgQ3VzdG9tZXIgRGF0YSBpbiBDdXN0b21lciBMaXN0XG4gICAqXG4gICAqIEBkZWZhdWx0XG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBpbmRleDogbnVtYmVyID0gdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIGFnZW50Q29uZmlnOiBhbnk7XG5cbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XG5cbiAgdmlld1Rhc2tEZXRhaWxzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFbWl0dGVyIHRvIGVtaXQgbmV4dCBTdGVwXG4gICAqXG4gICAqIEBlbWl0cyBLd2lrSURBZ2VudERhc2hib2FyZENvbXBvbmVudCNuZXh0U3RlcFxuICAgKiBAZmlyZXMgS3dpa0lEQWdlbnREYXNoYm9hcmRDb21wb25lbnQjbmV4dFN0ZXBcbiAgICovXG4gIEBPdXRwdXQoKVxuICBuZXh0U3RlcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVtb3ZlVGFzayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlLFxuICAgIHB1YmxpYyBpbmZvV2luZG93U2VydmljZTogSW5mb1dpbmRvd1NlcnZpY2UsXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmXG4gICkge31cblxuICBAVmlld0NoaWxkKE1hcEluZm9XaW5kb3cpIGluZm9XaW5kb3c6IE1hcEluZm9XaW5kb3c7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUbyBzZXQgR29vZ2xlIE1hcHMgQVBJIG9uIHNjcmlwdFxuICAgKlxuICAgKiBAbmdPbkluaXRcbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlld1Rhc2tEZXRhaWxzID1cbiAgICAgIHRoaXMuYWdlbnRDb25maWc/LmRhc2hib2FyZENvbmZpZz8udmlld1Rhc2tEZXRhaWxzID8/XG4gICAgICB0aGlzLnZpZXdUYXNrRGV0YWlscztcbiAgfVxuXG4gIGdldFRhc2tEZXRhaWxzKHRhc2tEYXRhKSB7XG4gICAgcmV0dXJuIGdldE9iamVjdFZhbHVlRnJvbVBhdGgodGhpcy5jdXN0b21lciwgdGFza0RhdGEpO1xuICB9XG5cbiAgb3BlbkRldGFpbHMoKXtcbiAgICBpZiAodGhpcy51c2VyU2VydmljZS5zaG93VGFza0RldGFpbHMgIT09IHRoaXMuaW5kZXgpIHtcbiAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2hvd1Rhc2tEZXRhaWxzID0gdGhpcy5pbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51c2VyU2VydmljZS5zaG93VGFza0RldGFpbHMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgdGlsZUNsaWNrKCkge1xuXG4gICAgdGhpcy5vcGVuRGV0YWlscygpO1xuXG4gICAgIGlmICh0aGlzLmluZGV4ID09IHRoaXMuaW5mb1dpbmRvd1NlcnZpY2UuZ2V0T3Blbk1hcmtlcigpKSB7XG4gICAgICB0aGlzLmluZm9XaW5kb3dTZXJ2aWNlLnNldE9wZW5NYXJrZXIobnVsbCk7XG4gICAgICAvL3RoaXMuaW5mb1dpbmRvd1NlcnZpY2UubGFzdEluZm9XaW5kb3dPcGVuZWQuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93RGV0YWlscyh0aGlzLmN1c3RvbWVyLCB0aGlzLmluZGV4KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdyYXBwZXIgbWV0aG9kIHRvIHNob3cgQ3VzdG9tZXIgSW5mbyBXaW5kb3dcbiAgICpcbiAgICogQGZ1bmN0aW9uIHNob3dEZXRhaWxzXG4gICAqIEBmdW5jIHNob3dEZXRhaWxzXG4gICAqIEBtZXRob2Qgc2hvd0RldGFpbHNcbiAgICovXG4gIHNob3dEZXRhaWxzKGN1c3RvbWVyLCBpbmRleCkge1xuICAgIGxldCBtYXJrZXJzID0gdGhpcy5tYXBTZXJ2aWNlLmdldE1hcmtlcnMoKTtcbiAgICBsZXQgbWFya2VyID0gbWFya2Vyc1tpbmRleCArIDFdO1xuXG4gICAgLy8gbGV0IHsgaW5mb3dpbmRvdyB9ID0gdGhpcy5pbmZvV2luZG93U2VydmljZS5zaG93Q3VzdG9tZXJJbmZvcm1hdGlvbihcbiAgICAvLyAgIGN1c3RvbWVyLFxuICAgIC8vICAgbWFya2VyXG4gICAgLy8gKTtcblxuICAgIHRoaXMuaW5mb1dpbmRvd1NlcnZpY2Uuc2V0T3Blbk1hcmtlcihpbmRleCk7XG4gIH1cblxuICBnZXRDbGFzcygpe1xuICAgIGxldCBzdHJpbmcgPSBcImN1c3RvbWVyLXRpbGUtd3JhcHBlclwiO1xuICAgIGlmKHRoaXMudXNlclNlcnZpY2Uuc2hvd1Rhc2tEZXRhaWxzID09IHRoaXMuaW5kZXgpe1xuICAgICAgc3RyaW5nICs9IFwiIGN1c3RvbWVyLXRpbGUtYWN0aXZlXCJcbiAgICB9XG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIGdvVG9NYXBzKGxvY2F0aW9uKSB7XG4gICAgd2luZG93Lm9wZW4oYCR7bG9jYXRpb259YCwgJ19ibGFuaycpO1xuICB9XG5cbiAgZ29Ub05leHRTdGVwKGUpIHtcbiAgICB0aGlzLm5leHRTdGVwLmVtaXQoZSk7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrUmVtb3ZlVGFzayh0YXNrKSB7XG4gICAgdGhpcy5yZW1vdmVUYXNrLmVtaXQodGFzayk7XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiZ2V0Q2xhc3MoKVwiPlxuICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItdGlsZS1wcmltYXJ5LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b21lci10aWxlLXByaW1hcnktY29udGFpbmVyLWRhdGFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b21lci10aWxlLXByaW1hcnktY29udGFpbmVyLXVzZXJpZFwiPlxuICAgICAgICB7eyBjdXN0b21lci51c2VyX2lkIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzdGF0dXMtcGlsbFxuICAgICAgICAqbmdJZj1cImFnZW50Q29uZmlnPy5kYXNoYm9hcmRDb25maWc/LnNob3dUYXNrU3RhdHVzXCJcbiAgICAgICAgW3N0YXR1c109XCJjdXN0b21lci5zZXNzaW9uX3N0YXR1c1wiXG4gICAgICA+PC9zdGF0dXMtcGlsbD5cbiAgICA8L2Rpdj5cbiAgICA8a3dpa3VpLWJ1dHRvbi1pY29uXG4gICAgICAqbmdJZj1cIiF1c2VyU2VydmljZS5pc01vYmlsZVZpZXcgJiYgIXVzZXJTZXJ2aWNlLnNob3dNYXB2aWV3XCJcbiAgICAgIFtpY29uXT1cIlxuICAgICAgICB1c2VyU2VydmljZS5zaG93VGFza0RldGFpbHM9PWluZGV4XG4gICAgICAgICAgPyAndHVpSWNvbkNoZXZyb25MZWZ0TGFyZ2UnXG4gICAgICAgICAgOiAndHVpSWNvbkNoZXZyb25SaWdodExhcmdlJ1xuICAgICAgXCJcbiAgICAgIFtzaGFwZV09XCIncm91bmRlZCdcIlxuICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgc2l6ZT1cInNcIlxuICAgICAgKG9uQ2xpY2spPVwib3BlbkRldGFpbHMoKVwiXG4gICAgPjwva3dpa3VpLWJ1dHRvbi1pY29uPlxuICAgIDxrd2lrdWktYnV0dG9uLWljb25cbiAgICAgICpuZ0lmPVwidXNlclNlcnZpY2UuaXNNb2JpbGVWaWV3IHx8IHVzZXJTZXJ2aWNlLnNob3dNYXB2aWV3XCJcbiAgICAgIFtpY29uXT1cIlxuICAgICAgdXNlclNlcnZpY2Uuc2hvd1Rhc2tEZXRhaWxzPT1pbmRleFxuICAgICAgICAgID8gJ3R1aUljb25DaGV2cm9uVXBMYXJnZSdcbiAgICAgICAgICA6ICd0dWlJY29uQ2hldnJvbkRvd25MYXJnZSdcbiAgICAgIFwiXG4gICAgICBbc2hhcGVdPVwiJ3JvdW5kZWQnXCJcbiAgICAgIGFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgIHNpemU9XCJzXCJcbiAgICAgIChvbkNsaWNrKT1cIm9wZW5EZXRhaWxzKClcIlxuICAgID48L2t3aWt1aS1idXR0b24taWNvbj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBbbmdDbGFzc109XCJcbiAgICAgIGluZGV4ID09IHVzZXJTZXJ2aWNlLnNob3dUYXNrRGV0YWlscyAmJiB1c2VyU2VydmljZS5pc01vYmlsZVZpZXdcbiAgICAgICAgPyAnY3VzdG9tZXItdGlsZS1zZWNvbmRhcnktY29udGFpbmVyJ1xuICAgICAgICA6ICdkYXRhLWNvbGxhc3BlZCdcbiAgICBcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLXRpbGUtc2Vjb25kYXJ5LWNvbnRhaW5lci1kYXRhXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCB0YXNrRGF0YSBvZiB2aWV3VGFza0RldGFpbHNcIlxuICAgICAgICBjbGFzcz1cImN1c3RvbWVyLXRpbGUtc2Vjb25kYXJ5LWNvbnRhaW5lci1jdXN0b20tZGV0YWlsc1wiXG4gICAgICA+XG4gICAgICAgIHt7IGdldFRhc2tEZXRhaWxzKHRhc2tEYXRhKSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLXRpbGUtc2Vjb25kYXJ5LWNvbnRhaW5lci1hY3Rpb25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItdGlsZS1zZWNvbmRhcnktY29udGFpbmVyLXRhc2stYnV0dG9uc1wiPlxuICAgICAgICA8a3dpa3VpLWJ1dHRvbi1pY29uXG4gICAgICAgICAgKm5nSWY9XCJhZ2VudENvbmZpZy5kYXNoYm9hcmRDb25maWc/LmFsbG93UmVtb3ZlVGFza1wiXG4gICAgICAgICAgW2ljb25dPVwiJ3R1aUljb25UcmFzaDInXCJcbiAgICAgICAgICBbc2hhcGVdPVwiJ3JvdW5kZWQnXCJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZU9uQ2xpY2tSZW1vdmVUYXNrKGN1c3RvbWVyKVwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24taWNvbj5cbiAgICAgICAgPGt3aWt1aS1idXR0b24taWNvblxuICAgICAgICAgICpuZ0lmPVwiYWdlbnRDb25maWcuZGFzaGJvYXJkQ29uZmlnPy5zaG93Q29weUxpbmtcIlxuICAgICAgICAgIGljb249XCJ0dWlJY29uQ29weVwiXG4gICAgICAgICAgW3NoYXBlXT1cIidyb3VuZGVkJ1wiXG4gICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAob25DbGljayk9XCJcbiAgICAgICAgICAgIGdvVG9OZXh0U3RlcCh7IGN1c3RvbWVyOiBjdXN0b21lciwgc3RlcFR5cGU6ICdTSEFSRV9KT1VSTkVZX0xJTksnIH0pXG4gICAgICAgICAgXCJcbiAgICAgICAgPjwva3dpa3VpLWJ1dHRvbi1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItdGlsZS1zZWNvbmRhcnktY29udGFpbmVyLWpvdXJuZXktYnV0dG9uc1wiPlxuICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBhZ2VudENvbmZpZy5kYXNoYm9hcmRDb25maWc/LnNob3dNYXBzICYmXG4gICAgICAgICAgICBjdXN0b21lcj8udGFza19kZXRhaWxzPy5jdXN0b21lcl9kZXRhaWxzPy5sb2NhdGlvblxuICAgICAgICAgIFwiXG4gICAgICAgICAgbGFiZWw9XCJTaG93IERpcmVjdGlvbnNcIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgc3R5bGVzPVwiZm9udC1zaXplOjAuN3JlbTtcIlxuICAgICAgICAgIChvbkNsaWNrKT1cImdvVG9NYXBzKGN1c3RvbWVyLnRhc2tfZGV0YWlscy5jdXN0b21lcl9kZXRhaWxzLmxvY2F0aW9uKVwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24+XG4gICAgICAgIDxrd2lrdWktYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGFnZW50Q29uZmlnLmRhc2hib2FyZENvbmZpZz8uc2hvd1N0YXJ0Sm91cm5leUJ1dHRvbiAmJlxuICAgICAgICAgICAgY3VzdG9tZXIuc2Vzc2lvbl9zdGF0dXMgIT09ICdjb21wbGV0ZScgJiZcbiAgICAgICAgICAgIGN1c3RvbWVyLnNlc3Npb25fc3RhdHVzICE9PSAnJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgbGFiZWw9XCJFZGl0IEpvdXJuZXlcIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJwcmltYXJ5XCJcbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgc3R5bGVzPVwiZm9udC1zaXplOjAuN3JlbTtcIlxuICAgICAgICAgIChvbkNsaWNrKT1cIlxuICAgICAgICAgICAgZ29Ub05leHRTdGVwKHsgY3VzdG9tZXI6IGN1c3RvbWVyLCBzdGVwVHlwZTogJ0VESVRfSk9VUk5FWScgfSlcbiAgICAgICAgICBcIlxuICAgICAgICA+PC9rd2lrdWktYnV0dG9uPlxuICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBhZ2VudENvbmZpZy5kYXNoYm9hcmRDb25maWc/LnNob3dTdGFydEpvdXJuZXlCdXR0b24gJiZcbiAgICAgICAgICAgIGN1c3RvbWVyLnNlc3Npb25fc3RhdHVzID09ICcnXG4gICAgICAgICAgXCJcbiAgICAgICAgICBsYWJlbD1cIlN0YXJ0IEpvdXJuZXlcIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJwcmltYXJ5XCJcbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgc3R5bGVzPVwiZm9udC1zaXplOjAuN3JlbTtcIlxuICAgICAgICAgIChvbkNsaWNrKT1cIlxuICAgICAgICAgICAgZ29Ub05leHRTdGVwKHsgY3VzdG9tZXI6IGN1c3RvbWVyLCBzdGVwVHlwZTogJ1NUQVJUX0pPVVJORVknIH0pXG4gICAgICAgICAgXCJcbiAgICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19