@amc-technology/ui-library 1.0.97 → 1.0.99
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/amc-technology-ui-library.d.ts +4 -0
- package/amc-technology-ui-library.metadata.json +1 -1
- package/bundles/amc-technology-ui-library.umd.js +529 -20
- package/bundles/amc-technology-ui-library.umd.js.map +1 -1
- package/bundles/amc-technology-ui-library.umd.min.js +2 -2
- package/bundles/amc-technology-ui-library.umd.min.js.map +1 -1
- package/esm2015/amc-technology-ui-library.js +5 -1
- package/esm2015/projects/UILibrary/src/app/components/chat-box/chat-box.component.js +5 -7
- package/esm2015/projects/UILibrary/src/app/components/create/create.component.js +35 -0
- package/esm2015/projects/UILibrary/src/app/components/current-activity/current-activity.component.js +169 -0
- package/esm2015/projects/UILibrary/src/app/components/disposition/disposition.component.js +1 -1
- package/esm2015/projects/UILibrary/src/app/components/interaction/interaction.component.js +13 -3
- package/esm2015/projects/UILibrary/src/app/components/login/login.component.js +2 -4
- package/esm2015/projects/UILibrary/src/app/components/recent-activity/recent-activity.component.js +142 -0
- package/esm2015/projects/UILibrary/src/app/components/search-information/search-information.component.js +155 -0
- package/esm2015/projects/UILibrary/src/app/models/IActivity.js +1 -0
- package/esm2015/projects/UILibrary/src/app/models/IActivityDetails.js +1 -0
- package/esm2015/projects/UILibrary/src/app/models/IHoldActivityDetails.js +1 -0
- package/esm2015/projects/UILibrary/src/app/models/IInteractionActivityDetails.js +1 -0
- package/esm2015/projects/UILibrary/src/app/uilibrary.module.js +15 -5
- package/esm5/amc-technology-ui-library.js +5 -1
- package/esm5/projects/UILibrary/src/app/components/chat-box/chat-box.component.js +5 -7
- package/esm5/projects/UILibrary/src/app/components/create/create.component.js +36 -0
- package/esm5/projects/UILibrary/src/app/components/current-activity/current-activity.component.js +174 -0
- package/esm5/projects/UILibrary/src/app/components/disposition/disposition.component.js +1 -1
- package/esm5/projects/UILibrary/src/app/components/interaction/interaction.component.js +13 -3
- package/esm5/projects/UILibrary/src/app/components/login/login.component.js +2 -4
- package/esm5/projects/UILibrary/src/app/components/recent-activity/recent-activity.component.js +144 -0
- package/esm5/projects/UILibrary/src/app/components/search-information/search-information.component.js +156 -0
- package/esm5/projects/UILibrary/src/app/models/IActivity.js +1 -0
- package/esm5/projects/UILibrary/src/app/models/IActivityDetails.js +1 -0
- package/esm5/projects/UILibrary/src/app/models/IHoldActivityDetails.js +1 -0
- package/esm5/projects/UILibrary/src/app/models/IInteractionActivityDetails.js +1 -0
- package/esm5/projects/UILibrary/src/app/uilibrary.module.js +15 -5
- package/fesm2015/amc-technology-ui-library.js +517 -18
- package/fesm2015/amc-technology-ui-library.js.map +1 -1
- package/fesm5/amc-technology-ui-library.js +526 -18
- package/fesm5/amc-technology-ui-library.js.map +1 -1
- package/package.json +6 -1
- package/projects/UILibrary/src/app/components/chat-box/chat-box.component.d.ts +0 -2
- package/projects/UILibrary/src/app/components/create/create.component.d.ts +11 -0
- package/projects/UILibrary/src/app/components/current-activity/current-activity.component.d.ts +34 -0
- package/projects/UILibrary/src/app/components/interaction/interaction.component.d.ts +1 -0
- package/projects/UILibrary/src/app/components/recent-activity/recent-activity.component.d.ts +35 -0
- package/projects/UILibrary/src/app/components/search-information/search-information.component.d.ts +26 -0
- package/projects/UILibrary/src/app/models/IActivity.d.ts +36 -0
- package/projects/UILibrary/src/app/models/IActivityDetails.d.ts +7 -0
- package/projects/UILibrary/src/app/models/IHoldActivityDetails.d.ts +10 -0
- package/projects/UILibrary/src/app/models/IInteractionActivityDetails.d.ts +9 -0
- package/webcomponents/webcomponents.js +2 -2
package/esm5/projects/UILibrary/src/app/components/current-activity/current-activity.component.js
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { __awaiter, __decorate, __generator } from "tslib";
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { debounceTime } from 'rxjs/operators';
|
|
5
|
+
var CurrentActivityComponent = /** @class */ (function () {
|
|
6
|
+
function CurrentActivityComponent() {
|
|
7
|
+
this.isActivityMaximized = true;
|
|
8
|
+
this.EventEmitter = new EventEmitter();
|
|
9
|
+
this.debouncer = new Subject();
|
|
10
|
+
this.eventList = new Set();
|
|
11
|
+
}
|
|
12
|
+
CurrentActivityComponent.prototype.ngOnInit = function () {
|
|
13
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
14
|
+
var _this = this;
|
|
15
|
+
return __generator(this, function (_a) {
|
|
16
|
+
this.debouncer.pipe(debounceTime(500)).subscribe(function () {
|
|
17
|
+
var newEvent = {
|
|
18
|
+
eventName: Array.from(_this.eventList).join('|'),
|
|
19
|
+
newValue: _this.ActivityDetails
|
|
20
|
+
};
|
|
21
|
+
_this.EventEmitter.emit(newEvent);
|
|
22
|
+
_this.eventList.clear();
|
|
23
|
+
});
|
|
24
|
+
return [2 /*return*/];
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
CurrentActivityComponent.prototype.submitActivity = function () {
|
|
29
|
+
try {
|
|
30
|
+
this.ActivityDetails.IsProcessing = true;
|
|
31
|
+
this.EventEmitter.emit({
|
|
32
|
+
eventName: 'SubmitActivity',
|
|
33
|
+
newValue: this.ActivityDetails
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
catch (error) { }
|
|
37
|
+
};
|
|
38
|
+
CurrentActivityComponent.prototype.triggerDiscardActivity = function () {
|
|
39
|
+
try {
|
|
40
|
+
this.EventEmitter.emit({
|
|
41
|
+
eventName: 'TriggerDiscardActivity',
|
|
42
|
+
newValue: this.ActivityDetails
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch (error) { }
|
|
46
|
+
};
|
|
47
|
+
CurrentActivityComponent.prototype.onNameChange = function (event) {
|
|
48
|
+
try {
|
|
49
|
+
this.ActivityDetails.WhoObject = this.WhoObjectList.find(function (obj) { return obj.objectId === event; });
|
|
50
|
+
this.EventEmitter.emit({
|
|
51
|
+
eventName: 'ActivityWhoObjectChanged',
|
|
52
|
+
newValue: this.ActivityDetails
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (error) { }
|
|
56
|
+
};
|
|
57
|
+
CurrentActivityComponent.prototype.onRelatedToChange = function (event) {
|
|
58
|
+
try {
|
|
59
|
+
this.ActivityDetails.WhatObject = this.WhatObjectList.find(function (obj) { return obj.objectId === event; });
|
|
60
|
+
this.EventEmitter.emit({
|
|
61
|
+
eventName: 'ActivityWhatObjectChanged',
|
|
62
|
+
newValue: this.ActivityDetails
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
catch (error) { }
|
|
66
|
+
};
|
|
67
|
+
CurrentActivityComponent.prototype.onSubjectChange = function () {
|
|
68
|
+
try {
|
|
69
|
+
this.eventList.add('ActivitySubjectChanged');
|
|
70
|
+
this.debouncer.next();
|
|
71
|
+
}
|
|
72
|
+
catch (error) { }
|
|
73
|
+
};
|
|
74
|
+
CurrentActivityComponent.prototype.onSubjectKeyUp = function () {
|
|
75
|
+
try {
|
|
76
|
+
this.eventList.add('ActivitySubjectChanged');
|
|
77
|
+
this.debouncer.next();
|
|
78
|
+
}
|
|
79
|
+
catch (error) { }
|
|
80
|
+
};
|
|
81
|
+
CurrentActivityComponent.prototype.onCallNotesChange = function () {
|
|
82
|
+
try {
|
|
83
|
+
this.eventList.add('ActivityCallNoteChanged');
|
|
84
|
+
this.debouncer.next();
|
|
85
|
+
}
|
|
86
|
+
catch (error) { }
|
|
87
|
+
};
|
|
88
|
+
CurrentActivityComponent.prototype.onCallNotesKeyUp = function () {
|
|
89
|
+
try {
|
|
90
|
+
this.eventList.add('ActivityCallNoteChanged');
|
|
91
|
+
this.debouncer.next();
|
|
92
|
+
}
|
|
93
|
+
catch (error) { }
|
|
94
|
+
};
|
|
95
|
+
CurrentActivityComponent.prototype.addQuickCommentToDescription = function (comment) {
|
|
96
|
+
try {
|
|
97
|
+
var descriptionToSet = comment;
|
|
98
|
+
if (this.quickCommentOptionRequiredCadArray[comment]) {
|
|
99
|
+
var cadFields = {};
|
|
100
|
+
if (this.ActivityDetails) {
|
|
101
|
+
cadFields = this.scenarioToCADMap[this.ActivityDetails.ScenarioId];
|
|
102
|
+
}
|
|
103
|
+
for (var i = 0; i < this.quickCommentOptionRequiredCadArray[comment].length; i++) {
|
|
104
|
+
var keyToCheckIfCADExists = this.quickCommentOptionRequiredCadArray[comment][i];
|
|
105
|
+
var stringToBeReplaced = this.quickCommentOptionRequiredCadArray[comment][i];
|
|
106
|
+
keyToCheckIfCADExists = keyToCheckIfCADExists.replace('{{', '');
|
|
107
|
+
keyToCheckIfCADExists = keyToCheckIfCADExists.replace('}}', '');
|
|
108
|
+
if (cadFields[keyToCheckIfCADExists]) {
|
|
109
|
+
descriptionToSet = descriptionToSet.replace(stringToBeReplaced, cadFields[keyToCheckIfCADExists].Value);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (this.ActivityDetails.Description) {
|
|
114
|
+
this.ActivityDetails.Description += '\n';
|
|
115
|
+
}
|
|
116
|
+
this.ActivityDetails.Description += descriptionToSet;
|
|
117
|
+
this.eventList.add('ActivityCallNoteChanged');
|
|
118
|
+
this.debouncer.next();
|
|
119
|
+
}
|
|
120
|
+
catch (error) { }
|
|
121
|
+
};
|
|
122
|
+
CurrentActivityComponent.prototype.parseWhoObject = function (whoObject) {
|
|
123
|
+
try {
|
|
124
|
+
return whoObject.displayName + ': ' + whoObject.objectName;
|
|
125
|
+
}
|
|
126
|
+
catch (error) { }
|
|
127
|
+
};
|
|
128
|
+
CurrentActivityComponent.prototype.parseWhatObject = function (whatObject) {
|
|
129
|
+
try {
|
|
130
|
+
return whatObject.displayName + ': ' + whatObject.objectName;
|
|
131
|
+
}
|
|
132
|
+
catch (error) { }
|
|
133
|
+
};
|
|
134
|
+
__decorate([
|
|
135
|
+
Input()
|
|
136
|
+
], CurrentActivityComponent.prototype, "ActivityDetails", void 0);
|
|
137
|
+
__decorate([
|
|
138
|
+
Input()
|
|
139
|
+
], CurrentActivityComponent.prototype, "quickCommentList", void 0);
|
|
140
|
+
__decorate([
|
|
141
|
+
Input()
|
|
142
|
+
], CurrentActivityComponent.prototype, "isAutoSave", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
Input()
|
|
145
|
+
], CurrentActivityComponent.prototype, "enableDiscard", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
Input()
|
|
148
|
+
], CurrentActivityComponent.prototype, "autoSaveTimer", void 0);
|
|
149
|
+
__decorate([
|
|
150
|
+
Input()
|
|
151
|
+
], CurrentActivityComponent.prototype, "quickCommentOptionRequiredCadArray", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
Input()
|
|
154
|
+
], CurrentActivityComponent.prototype, "WhoObjectList", void 0);
|
|
155
|
+
__decorate([
|
|
156
|
+
Input()
|
|
157
|
+
], CurrentActivityComponent.prototype, "WhatObjectList", void 0);
|
|
158
|
+
__decorate([
|
|
159
|
+
Input()
|
|
160
|
+
], CurrentActivityComponent.prototype, "scenarioToCADMap", void 0);
|
|
161
|
+
__decorate([
|
|
162
|
+
Output()
|
|
163
|
+
], CurrentActivityComponent.prototype, "EventEmitter", void 0);
|
|
164
|
+
CurrentActivityComponent = __decorate([
|
|
165
|
+
Component({
|
|
166
|
+
selector: 'amc-current-activity',
|
|
167
|
+
template: "<div *ngIf=\"isActivityMaximized\" class=\"callDisplay\">\r\n <div class=\"editor callHeader\">\r\n <label class=\"headerLabel\">\r\n <b>Activity Information</b>\r\n </label>\r\n <img class=\"ViewResizeImage\" src=\"/assets/images/section_collapse.png\" (click)=\"isActivityMaximized = false\"\r\n title=\"Collapse\"><img *ngIf=\"enableDiscard\" class=\"DiscardImage\" src=\"assets/images/Discard.png\"\r\n (click)=\"triggerDiscardActivity()\" title=\"Discard\">\r\n </div>\r\n <div class=\"callBody\">\r\n <div class=\"activityFields\">\r\n <form>\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" title=\"Name\">Name</label>\r\n <select class=\"dropDownListStyle displayData\" [ngModel]=\"ActivityDetails.WhoObject.objectId\" (ngModelChange)=\"onNameChange($event)\" name=\"whoItem\">\r\n <option *ngFor=\"let whoItem of WhoObjectList\" [ngValue]=\"whoItem.objectId\">{{ (whoItem.displayName && whoItem.objectName) ? (whoItem.displayName + ': ' +\r\n whoItem.objectName) : \"\"}}</option>\r\n <!-- <option value=\"UserSelectedForEmptyRecord\"></option> -->\r\n </select>\r\n </div>\r\n <div class=\"editor displayDiv\"\r\n *ngIf='(ActivityDetails.WhoObject && ActivityDetails.WhoObject.objectType !== \"Lead\")'>\r\n <label class=\"displayLabels\" title=\"Related To\">Related To</label>\r\n <select class=\"dropDownListStyle displayData\" (ngModelChange)=\"onRelatedToChange($event)\"\r\n [ngModel]=\"ActivityDetails.WhatObject.objectId\" name=\"whatItem\">\r\n <option *ngFor=\"let whatItem of WhatObjectList;\" [ngValue]=\"whatItem.objectId\">\r\n {{ (whatItem.displayName && whatItem.objectName) ? (whatItem.displayName + ': ' + whatItem.objectName) : \"\" }}</option>\r\n <!-- <option value=\"UserSelectedForEmptyRecord\"></option> -->\r\n </select>\r\n </div>\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" title=\"Subject\">Subject</label>\r\n <input class=\"activitySubjectTextBoxStyle displayData\" (change)=\"onSubjectChange()\" type=\"text\"\r\n name=\"subject\" (keyup)=\"onSubjectKeyUp()\" [(ngModel)]=\"ActivityDetails.Subject\">\r\n </div>\r\n <div class=\"editor displayDiv\">\r\n <div class=\"callNotesSection\">\r\n <div class=\"callNotesTextArea\">\r\n <textarea [(ngModel)]=\"ActivityDetails.Description\" placeholder=\"Click to add a comment\"\r\n class=\"activityCommentsTextBoxStyle\" (change)=\"onCallNotesChange()\" name=\"description\"\r\n (keyup)=\"onCallNotesKeyUp()\" cols=\"20\" rows=\"2\" title=\"\"></textarea>\r\n </div>\r\n <div class=\"notesBottonBorder\">\r\n <div class=\"commentsButtonDiv\">\r\n <div class=\"quickCommentsDiv\">\r\n <input *ngFor=\"let quickComment of quickCommentList; let i = index;\"\r\n class=\"quickNotesBotton\" type=\"button\" value=\"{{i+1}}\"\r\n (click)=\"addQuickCommentToDescription(quickComment)\" title=\"{{quickComment}}\">\r\n </div>\r\n <div class=\"callNotesButtonsSection\">\r\n <input class=\"submitButton\" type=\"button\" value=\"Save\"\r\n (click)=\"submitActivity()\" [disabled]=\"!ActivityDetails.IsUnSaved\" />\r\n <!-- TOsDO check this Isprocessing -->\r\n <!-- <input *ngIf=\"!storageService.getActivity().IsProcessing\" class=\"submitButton\" type=\"button\" value=\"Save\" (click)=\"submitActivity(storageService.getActivity().ScenarioId)\" [disabled]=\"!isChangesUnSaved(this.scenarioId)\" /> -->\r\n <img *ngIf=\"ActivityDetails.IsProcessing\" class=\"loadingIcon\"\r\n src=\"assets/images/loading.gif\" title=\"Updating Activity\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"!isActivityMaximized\" class=\"callDisplay\">\r\n <div class=\"editor callHeader\">\r\n <label class=\"headerLabel\">\r\n <b>Activity Information</b>\r\n </label>\r\n <img class=\"ViewResizeImage\" src=\"assets/images/section_expand.png\" (click)=\"isActivityMaximized = true\"\r\n title=\"Expand\">\r\n </div>\r\n</div>\r\n",
|
|
168
|
+
styles: [".imageExpandCollapse{float:right;width:20px;height:20px}.miscSection{position:relative;margin-top:20px;background-color:#e5e6f2}.callHeader{background-color:#f4f5fb!important;width:100%!important;margin-top:0!important;border:1px solid #939598!important}.notesBottonBorder{background-color:#fff;border-left:1px solid #939598;border-bottom:1px solid #939598;border-right:1px solid #939598;border-bottom-left-radius:3px!important;border-bottom-right-radius:3px!important;height:auto}.quickNotesBotton{background-color:#1e72ba;border:0;color:#fff;height:70%;width:20px;margin:2px;outline:0;font-size:70%}.submitButton{border:0;float:right;margin-top:2px;outline:0;cursor:pointer;background-color:#6cb047;color:#fff;border-radius:4px;font-size:98%;margin-bottom:2px}.callBody{border:1px solid #939598;border-top:1px solid #939598;position:relative}.miscIcons{width:20px;height:20px;float:right;margin-top:4px;margin-right:5px;margin-left:5px}.amcIcon{width:50%;height:20px;margin-top:5px;margin-left:10px}.callDisplay{display:grid;margin-bottom:8px;background-color:#fff}.editor{font-size:.9em;width:70%;text-align:left;margin:4px 5% 0 0;font-family:Arial;white-space:nowrap;text-overflow:ellipsis;border:0;padding-top:2px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.AnswerCallImages{width:28px;height:20px;margin:6px 0 0 5px}.dropDownListStyle{border:1px solid #939598!important;border-radius:3px!important;width:71%!important;height:20px!important;text-align:left!important;white-space:nowrap!important;text-overflow:ellipsis!important;margin:0 5px 0 0;cursor:pointer}.activitySubjectTextBoxStyle{border:1px solid #939598!important;border-radius:3px!important;width:71%!important;height:20px!important;text-align:left!important;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;margin:0 5px 0 0;padding-left:2px}.activityCommentsTextBoxStyle{border:none;color:#333!important;text-align:left!important;margin:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;resize:none;width:100%;height:95px}.displayDiv{width:100%;display:flex}.displayLabels{margin-left:5px;width:25%;margin-right:2px}.displayData{width:70%}.commentsButtonDiv{width:100%;display:flex;align-items:center;background-color:#f6f7fb}.quickCommentsDiv{text-align:left;flex:1 0 0;flex-wrap:wrap;display:flex;margin:2px}.callNotesButtonsSection{text-align:right;padding-right:4px}.newEntityImages{width:25px;height:25px;margin-top:2px;cursor:pointer;padding-left:5px}body{font-size:.85em;color:#232323;background-color:#fff;font-family:Arial}.callNotesSection{float:left;height:100%;width:100%;margin-right:5px;margin-left:5px;margin-bottom:5px}.ViewResizeImage{width:20px;height:20px;float:right;cursor:pointer}.DiscardImage{padding-top:2px;width:15px;height:18px;float:right;cursor:pointer}.headerLabel{margin-left:10px}.callNotesTextArea{background-color:#fff;border-left:1px solid #939598;border-bottom:1px solid #939598;border-right:1px solid #939598;border-top:1px solid #939598;border-top-left-radius:3px!important;border-top-right-radius:3px!important}.loadingIcon{float:right;margin-right:5px;height:10px;width:30px;margin-top:8px;padding-bottom:0}input[type=button]:disabled{background-color:#d3d3d3;cursor:auto}"]
|
|
169
|
+
})
|
|
170
|
+
], CurrentActivityComponent);
|
|
171
|
+
return CurrentActivityComponent;
|
|
172
|
+
}());
|
|
173
|
+
export { CurrentActivityComponent };
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC1hY3Rpdml0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1jLXRlY2hub2xvZ3kvdWktbGlicmFyeS8iLCJzb3VyY2VzIjpbInByb2plY3RzL1VJTGlicmFyeS9zcmMvYXBwL2NvbXBvbmVudHMvY3VycmVudC1hY3Rpdml0eS9jdXJyZW50LWFjdGl2aXR5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU85QztJQW9CRTtRQUNFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFHaEMsQ0FBQztRQUVMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVLLDJDQUFRLEdBQWQ7Ozs7Z0JBQ0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUMvQyxJQUFNLFFBQVEsR0FBRzt3QkFDZixTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQzt3QkFDL0MsUUFBUSxFQUFFLEtBQUksQ0FBQyxlQUFlO3FCQUMvQixDQUFDO29CQUNGLEtBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNqQyxLQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN6QixDQUFDLENBQUMsQ0FBQzs7OztLQUNKO0lBRUQsaURBQWMsR0FBZDtRQUNFLElBQUk7WUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ3JCLFNBQVMsRUFBRSxnQkFBZ0I7Z0JBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZTthQUMvQixDQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUU7SUFDcEIsQ0FBQztJQUVELHlEQUFzQixHQUF0QjtRQUNFLElBQUk7WUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDckIsU0FBUyxFQUFFLHdCQUF3QjtnQkFDbkMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQy9CLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRTtJQUNwQixDQUFDO0lBRUQsK0NBQVksR0FBWixVQUFhLEtBQVU7UUFDckIsSUFBSTtZQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRyxJQUFLLE9BQUEsR0FBRyxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQXRCLENBQXNCLENBQUMsQ0FBQztZQUMxRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDckIsU0FBUyxFQUFFLDBCQUEwQjtnQkFDckMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQy9CLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRTtJQUNwQixDQUFDO0lBRUQsb0RBQWlCLEdBQWpCLFVBQWtCLEtBQVU7UUFDMUIsSUFBSTtZQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRyxJQUFLLE9BQUEsR0FBRyxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQXRCLENBQXNCLENBQUMsQ0FBQztZQUM1RixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDckIsU0FBUyxFQUFFLDJCQUEyQjtnQkFDdEMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQy9CLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRTtJQUNwQixDQUFDO0lBRUQsa0RBQWUsR0FBZjtRQUNFLElBQUk7WUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdkI7UUFBQyxPQUFPLEtBQUssRUFBRSxHQUFFO0lBQ3BCLENBQUM7SUFFRCxpREFBYyxHQUFkO1FBQ0UsSUFBSTtZQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN2QjtRQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUU7SUFDcEIsQ0FBQztJQUVELG9EQUFpQixHQUFqQjtRQUNFLElBQUk7WUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdkI7UUFBQyxPQUFPLEtBQUssRUFBRSxHQUFFO0lBQ3BCLENBQUM7SUFFRCxtREFBZ0IsR0FBaEI7UUFDRSxJQUFHO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3ZCO1FBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRTtJQUNwQixDQUFDO0lBRUQsK0RBQTRCLEdBQTVCLFVBQTZCLE9BQWU7UUFDMUMsSUFBSTtZQUNGLElBQUksZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO1lBQy9CLElBQUksSUFBSSxDQUFDLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNwRCxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7Z0JBQ25CLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFDeEIsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNwRTtnQkFDRCxLQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDVCxDQUFDLEdBQUcsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFDM0QsQ0FBQyxFQUFFLEVBQ0g7b0JBQ0EsSUFBSSxxQkFBcUIsR0FDdkIsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN0RCxJQUFNLGtCQUFrQixHQUN0QixJQUFJLENBQUMsa0NBQWtDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RELHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2hFLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2hFLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7d0JBQ3BDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FDekMsa0JBQWtCLEVBQ2xCLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FDdkMsQ0FBQztxQkFDSDtpQkFDRjthQUNGO1lBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDO2FBQzFDO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLElBQUksZ0JBQWdCLENBQUM7WUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3ZCO1FBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRTtJQUNwQixDQUFDO0lBRVMsaURBQWMsR0FBeEIsVUFBeUIsU0FBMkI7UUFDbEQsSUFBSTtZQUNGLE9BQU8sU0FBUyxDQUFDLFdBQVcsR0FBRyxJQUFJLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztTQUM1RDtRQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUU7SUFDcEIsQ0FBQztJQUVTLGtEQUFlLEdBQXpCLFVBQTBCLFVBQTRCO1FBQ3BELElBQUk7WUFDRixPQUFPLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7U0FDOUQ7UUFBQyxPQUFPLEtBQUssRUFBRSxHQUFFO0lBQ3BCLENBQUM7SUEzSlE7UUFBUixLQUFLLEVBQUU7cUVBQTRCO0lBQzNCO1FBQVIsS0FBSyxFQUFFO3NFQUE0QjtJQUMzQjtRQUFSLEtBQUssRUFBRTtnRUFBcUI7SUFDcEI7UUFBUixLQUFLLEVBQUU7bUVBQXdCO0lBQ3ZCO1FBQVIsS0FBSyxFQUFFO21FQUF1QjtJQUN0QjtRQUFSLEtBQUssRUFBRTt3RkFBeUM7SUFDeEM7UUFBUixLQUFLLEVBQUU7bUVBQW1DO0lBQ2xDO1FBQVIsS0FBSyxFQUFFO29FQUFvQztJQUNuQztRQUFSLEtBQUssRUFBRTtzRUFBc0I7SUFDcEI7UUFBVCxNQUFNLEVBQUU7a0VBR047SUFiUSx3QkFBd0I7UUFMcEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQywwaEtBQWdEOztTQUVqRCxDQUFDO09BQ1csd0JBQXdCLENBNkpwQztJQUFELCtCQUFDO0NBQUEsQUE3SkQsSUE2SkM7U0E3Slksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJQWN0aXZpdHlEZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0lBY3Rpdml0eURldGFpbHMnO1xyXG5pbXBvcnQgeyBJQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvSUFjdGl2aXR5JztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FtYy1jdXJyZW50LWFjdGl2aXR5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VycmVudC1hY3Rpdml0eS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3VycmVudC1hY3Rpdml0eS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1cnJlbnRBY3Rpdml0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgQWN0aXZpdHlEZXRhaWxzOiBJQWN0aXZpdHk7XHJcbiAgQElucHV0KCkgcXVpY2tDb21tZW50TGlzdDogc3RyaW5nW107XHJcbiAgQElucHV0KCkgaXNBdXRvU2F2ZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBlbmFibGVEaXNjYXJkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGF1dG9TYXZlVGltZXI6IG51bWJlcjtcclxuICBASW5wdXQoKSBxdWlja0NvbW1lbnRPcHRpb25SZXF1aXJlZENhZEFycmF5OiBhbnk7XHJcbiAgQElucHV0KCkgV2hvT2JqZWN0TGlzdDogSUFjdGl2aXR5RGV0YWlsc1tdO1xyXG4gIEBJbnB1dCgpIFdoYXRPYmplY3RMaXN0OiBJQWN0aXZpdHlEZXRhaWxzW107XHJcbiAgQElucHV0KCkgc2NlbmFyaW9Ub0NBRE1hcDoge307XHJcbiAgQE91dHB1dCgpIEV2ZW50RW1pdHRlcjogRXZlbnRFbWl0dGVyPHtcclxuICAgIGV2ZW50TmFtZTogc3RyaW5nO1xyXG4gICAgbmV3VmFsdWU/OiBJQWN0aXZpdHk7XHJcbiAgfT47XHJcblxyXG4gIHByaXZhdGUgZXZlbnRMaXN0OiBTZXQ8U3RyaW5nPjtcclxuICBwcml2YXRlIGRlYm91bmNlcjogU3ViamVjdDx2b2lkPjtcclxuXHJcbiAgaXNBY3Rpdml0eU1heGltaXplZDogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmlzQWN0aXZpdHlNYXhpbWl6ZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICAgIGV2ZW50TmFtZTogc3RyaW5nO1xyXG4gICAgICBuZXdWYWx1ZT86IElBY3Rpdml0eTtcclxuICAgIH0+KCk7XHJcblxyXG4gICAgdGhpcy5kZWJvdW5jZXIgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgdGhpcy5ldmVudExpc3QgPSBuZXcgU2V0KCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZGVib3VuY2VyLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0V2ZW50ID0ge1xyXG4gICAgICAgIGV2ZW50TmFtZTogQXJyYXkuZnJvbSh0aGlzLmV2ZW50TGlzdCkuam9pbignfCcpLFxyXG4gICAgICAgIG5ld1ZhbHVlOiB0aGlzLkFjdGl2aXR5RGV0YWlsc1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLkV2ZW50RW1pdHRlci5lbWl0KG5ld0V2ZW50KTtcclxuICAgICAgdGhpcy5ldmVudExpc3QuY2xlYXIoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0QWN0aXZpdHkoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLkFjdGl2aXR5RGV0YWlscy5Jc1Byb2Nlc3NpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLkV2ZW50RW1pdHRlci5lbWl0KHtcclxuICAgICAgICBldmVudE5hbWU6ICdTdWJtaXRBY3Rpdml0eScsXHJcbiAgICAgICAgbmV3VmFsdWU6IHRoaXMuQWN0aXZpdHlEZXRhaWxzXHJcbiAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHt9XHJcbiAgfVxyXG5cclxuICB0cmlnZ2VyRGlzY2FyZEFjdGl2aXR5KCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5FdmVudEVtaXR0ZXIuZW1pdCh7XHJcbiAgICAgICAgZXZlbnROYW1lOiAnVHJpZ2dlckRpc2NhcmRBY3Rpdml0eScsXHJcbiAgICAgICAgbmV3VmFsdWU6IHRoaXMuQWN0aXZpdHlEZXRhaWxzXHJcbiAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHt9XHJcbiAgfVxyXG5cclxuICBvbk5hbWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5BY3Rpdml0eURldGFpbHMuV2hvT2JqZWN0ID0gdGhpcy5XaG9PYmplY3RMaXN0LmZpbmQoKG9iaikgPT4gb2JqLm9iamVjdElkID09PSBldmVudCk7XHJcbiAgICAgIHRoaXMuRXZlbnRFbWl0dGVyLmVtaXQoe1xyXG4gICAgICAgIGV2ZW50TmFtZTogJ0FjdGl2aXR5V2hvT2JqZWN0Q2hhbmdlZCcsXHJcbiAgICAgICAgbmV3VmFsdWU6IHRoaXMuQWN0aXZpdHlEZXRhaWxzXHJcbiAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHt9XHJcbiAgfVxyXG5cclxuICBvblJlbGF0ZWRUb0NoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLkFjdGl2aXR5RGV0YWlscy5XaGF0T2JqZWN0ID0gdGhpcy5XaGF0T2JqZWN0TGlzdC5maW5kKChvYmopID0+IG9iai5vYmplY3RJZCA9PT0gZXZlbnQpO1xyXG4gICAgICB0aGlzLkV2ZW50RW1pdHRlci5lbWl0KHtcclxuICAgICAgICBldmVudE5hbWU6ICdBY3Rpdml0eVdoYXRPYmplY3RDaGFuZ2VkJyxcclxuICAgICAgICBuZXdWYWx1ZTogdGhpcy5BY3Rpdml0eURldGFpbHNcclxuICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge31cclxuICB9XHJcblxyXG4gIG9uU3ViamVjdENoYW5nZSgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMuZXZlbnRMaXN0LmFkZCgnQWN0aXZpdHlTdWJqZWN0Q2hhbmdlZCcpO1xyXG4gICAgICB0aGlzLmRlYm91bmNlci5uZXh0KCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge31cclxuICB9XHJcblxyXG4gIG9uU3ViamVjdEtleVVwKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5ldmVudExpc3QuYWRkKCdBY3Rpdml0eVN1YmplY3RDaGFuZ2VkJyk7XHJcbiAgICAgIHRoaXMuZGVib3VuY2VyLm5leHQoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxyXG4gIH1cclxuXHJcbiAgb25DYWxsTm90ZXNDaGFuZ2UoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmV2ZW50TGlzdC5hZGQoJ0FjdGl2aXR5Q2FsbE5vdGVDaGFuZ2VkJyk7XHJcbiAgICAgIHRoaXMuZGVib3VuY2VyLm5leHQoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxyXG4gIH1cclxuXHJcbiAgb25DYWxsTm90ZXNLZXlVcCgpIHtcclxuICAgIHRyeXtcclxuICAgICAgdGhpcy5ldmVudExpc3QuYWRkKCdBY3Rpdml0eUNhbGxOb3RlQ2hhbmdlZCcpO1xyXG4gICAgICB0aGlzLmRlYm91bmNlci5uZXh0KCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge31cclxuICB9XHJcblxyXG4gIGFkZFF1aWNrQ29tbWVudFRvRGVzY3JpcHRpb24oY29tbWVudDogc3RyaW5nKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgZGVzY3JpcHRpb25Ub1NldCA9IGNvbW1lbnQ7XHJcbiAgICAgIGlmICh0aGlzLnF1aWNrQ29tbWVudE9wdGlvblJlcXVpcmVkQ2FkQXJyYXlbY29tbWVudF0pIHtcclxuICAgICAgICBsZXQgY2FkRmllbGRzID0ge307XHJcbiAgICAgICAgaWYgKHRoaXMuQWN0aXZpdHlEZXRhaWxzKSB7XHJcbiAgICAgICAgICBjYWRGaWVsZHMgPSB0aGlzLnNjZW5hcmlvVG9DQURNYXBbdGhpcy5BY3Rpdml0eURldGFpbHMuU2NlbmFyaW9JZF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoXHJcbiAgICAgICAgICBsZXQgaSA9IDA7XHJcbiAgICAgICAgICBpIDwgdGhpcy5xdWlja0NvbW1lbnRPcHRpb25SZXF1aXJlZENhZEFycmF5W2NvbW1lbnRdLmxlbmd0aDtcclxuICAgICAgICAgIGkrK1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgbGV0IGtleVRvQ2hlY2tJZkNBREV4aXN0cyA9XHJcbiAgICAgICAgICAgIHRoaXMucXVpY2tDb21tZW50T3B0aW9uUmVxdWlyZWRDYWRBcnJheVtjb21tZW50XVtpXTtcclxuICAgICAgICAgIGNvbnN0IHN0cmluZ1RvQmVSZXBsYWNlZCA9XHJcbiAgICAgICAgICAgIHRoaXMucXVpY2tDb21tZW50T3B0aW9uUmVxdWlyZWRDYWRBcnJheVtjb21tZW50XVtpXTtcclxuICAgICAgICAgIGtleVRvQ2hlY2tJZkNBREV4aXN0cyA9IGtleVRvQ2hlY2tJZkNBREV4aXN0cy5yZXBsYWNlKCd7eycsICcnKTtcclxuICAgICAgICAgIGtleVRvQ2hlY2tJZkNBREV4aXN0cyA9IGtleVRvQ2hlY2tJZkNBREV4aXN0cy5yZXBsYWNlKCd9fScsICcnKTtcclxuICAgICAgICAgIGlmIChjYWRGaWVsZHNba2V5VG9DaGVja0lmQ0FERXhpc3RzXSkge1xyXG4gICAgICAgICAgICBkZXNjcmlwdGlvblRvU2V0ID0gZGVzY3JpcHRpb25Ub1NldC5yZXBsYWNlKFxyXG4gICAgICAgICAgICAgIHN0cmluZ1RvQmVSZXBsYWNlZCxcclxuICAgICAgICAgICAgICBjYWRGaWVsZHNba2V5VG9DaGVja0lmQ0FERXhpc3RzXS5WYWx1ZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5BY3Rpdml0eURldGFpbHMuRGVzY3JpcHRpb24pIHtcclxuICAgICAgICB0aGlzLkFjdGl2aXR5RGV0YWlscy5EZXNjcmlwdGlvbiArPSAnXFxuJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLkFjdGl2aXR5RGV0YWlscy5EZXNjcmlwdGlvbiArPSBkZXNjcmlwdGlvblRvU2V0O1xyXG4gICAgICB0aGlzLmV2ZW50TGlzdC5hZGQoJ0FjdGl2aXR5Q2FsbE5vdGVDaGFuZ2VkJyk7XHJcbiAgICAgIHRoaXMuZGVib3VuY2VyLm5leHQoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHBhcnNlV2hvT2JqZWN0KHdob09iamVjdDogSUFjdGl2aXR5RGV0YWlscyk6IHN0cmluZyB7XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gd2hvT2JqZWN0LmRpc3BsYXlOYW1lICsgJzogJyArIHdob09iamVjdC5vYmplY3ROYW1lO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHt9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcGFyc2VXaGF0T2JqZWN0KHdoYXRPYmplY3Q6IElBY3Rpdml0eURldGFpbHMpOiBzdHJpbmcge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIHdoYXRPYmplY3QuZGlzcGxheU5hbWUgKyAnOiAnICsgd2hhdE9iamVjdC5vYmplY3ROYW1lO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHt9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -52,7 +52,7 @@ var DispositionComponent = /** @class */ (function () {
|
|
|
52
52
|
Component({
|
|
53
53
|
selector: 'amc-disposition',
|
|
54
54
|
template: "<div class=\"disposition-container\">\r\n <div class=\"header-container\">\r\n <label class=\"disposition-header\" attr.aria-label=\"set disposition\">{{disposition.dispositionHeader}}</label>\r\n </div>\r\n\r\n <div class=\"dispositions-container\">\r\n <div class=\"disposition\" *ngFor=\"let disp of disposition.disposition | keyvalue; let i = index\">\r\n <label\r\n class=\"disposition-label\"\r\n tabindex=\"0\"\r\n [id]=\"disp.key\"\r\n [ngClass]=\"{'disposition-label-selected' : selectedDispositionValue === disp.key, 'first-disposition': i === 0}\"\r\n (keypress)=\"selectAndSubmitDisposition($event, disp.key)\">\r\n\r\n <input\r\n class=\"disposition-input\"\r\n type=\"radio\"\r\n value=\"{{disp.key}}\"\r\n tabindex=\"-1\"\r\n attr.aria-label=\"{{disp.value}}\"\r\n [required]=\"!selectedDispositionValue\"\r\n [name]=\"dispositionName\"\r\n (change)=\"submitDisposition()\"\r\n [(ngModel)]=\"selectedDispositionValue\">\r\n\r\n {{disp.value}}\r\n </label>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
55
|
-
styles: [".disposition-container{border:1px solid #939598;white-space:nowrap;font-family:Arial;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;text-overflow:ellipsis;position:relative;font-size:.9em;max-height:180px;overflow-x:hidden;overflow-y:hidden}.header-container{border-bottom:1px solid #939598;background-color:#f4f5fb;width:100%;white-space:nowrap;height:28px;position
|
|
55
|
+
styles: [".disposition-container{border:1px solid #939598;white-space:nowrap;font-family:Arial;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;text-overflow:ellipsis;position:relative;font-size:.9em;max-height:180px;overflow-x:hidden;overflow-y:hidden}.header-container{border-bottom:1px solid #939598;background-color:#f4f5fb;width:100%;white-space:nowrap;height:28px;position:sticky;overflow-x:hidden;overflow-y:hidden}.disposition-header{margin-top:auto;margin-left:7px;padding:5px;white-space:nowrap;text-overflow:ellipsis;font-weight:700;font-size:.9em;font-family:Arial;overflow-x:hidden}.disposition{margin-left:5px;padding-left:5px;white-space:nowrap}.disposition-label{text-overflow:ellipsis;font-weight:400;white-space:nowrap;font-size:.9em;overflow-x:hidden}.disposition-label-selected{text-overflow:ellipsis;font-weight:700;white-space:nowrap;font-size:.9em}.dispositions-container{padding:3px;overflow-y:scroll;max-height:150px}.disposition-label:focus{outline:#3296da solid 2px;outline-offset:5px}.first-disposition{margin-top:5px}"]
|
|
56
56
|
})
|
|
57
57
|
], DispositionComponent);
|
|
58
58
|
return DispositionComponent;
|
|
@@ -60,6 +60,16 @@ var InteractionComponent = /** @class */ (function () {
|
|
|
60
60
|
this.maximize();
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
|
+
InteractionComponent.prototype.clickEvent = function (id) {
|
|
64
|
+
document.getElementById(id).className = 'success';
|
|
65
|
+
if (localStorage.getItem('focusedPanel') === null) {
|
|
66
|
+
localStorage.setItem('focusedPanel', id);
|
|
67
|
+
}
|
|
68
|
+
else if (localStorage.getItem('focusedPanel') != id) {
|
|
69
|
+
document.getElementById(localStorage.getItem('focusedPanel')).className = 'AnswerCallFocused';
|
|
70
|
+
localStorage.setItem('focusedPanel', id);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
63
73
|
__decorate([
|
|
64
74
|
Input()
|
|
65
75
|
], InteractionComponent.prototype, "interaction", void 0);
|
|
@@ -78,11 +88,11 @@ var InteractionComponent = /** @class */ (function () {
|
|
|
78
88
|
InteractionComponent = __decorate([
|
|
79
89
|
Component({
|
|
80
90
|
selector: 'amc-interaction',
|
|
81
|
-
template: "<div class=\"AnswerCallFocused\">\r\n <div class=\"editor callHeaderTop\">\r\n <img class=\"statusImage\" aria-hidden=\"true\" [src]=\"interaction.UIHeadersData.statusUrl\" (click)=\"interaction.UIHeadersData.focusHandler.handler(interaction.UIHeadersData.focusHandler.operationName, interaction.UIHeadersData.focusHandler.operationMetadata)\" />\r\n <label class=\"statusText\">\r\n <b [id]=\"interaction.UIHeadersData.statusText\">{{ interaction.UIHeadersData.statusText }}</b>\r\n </label>\r\n <label class=\"verticalDivider\">|</label>\r\n <label class=\"directionText\" *ngIf=\"!interaction.UIHeadersData.displayHoldCounter\">{{ interaction.UIHeadersData.directionText }}</label>\r\n <div class=\"holdCallDurationDiv\" *ngIf=\"interaction.UIHeadersData.displayHoldCounter\">\r\n <amc-holdtimer [holdCounterData]=\"interaction.UIHeadersData.holdCounterData\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\"></amc-holdtimer>\r\n </div>\r\n <img class=\"ViewExpandImage\" [src]=\"interaction.UIHeadersData.minimizeUrl\" alt=\"Minimize\" (click)=\"minimize()\" (keypress)=\"collapseKeypress($event)\" *ngIf=\"!_minimized\" tabindex=\"0\" role=\"button\" aria-label=\"collapse Call Section\">\r\n <img class=\"ViewCollapseImage\" [src]=\"interaction.UIHeadersData.maximizeUrl\" alt=\"Maximize\" (click)=\"maximize()\" (keypress)=\"expandKeypress($event)\" *ngIf=\"_minimized\" tabindex=\"0\" role=\"button\" aria-label=\"expand Call Section\">\r\n <div class=\"DurationDiv\" *ngIf=\"interaction.displayCallTimer\">\r\n <amc-duration [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [startTime]=\"interaction.startTime\"></amc-duration>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!_minimized\">\r\n\r\n <div *ngIf=\"!isConferenceCall()\">\r\n <div class=\"editor phoneNumberContainer\">\r\n <input class=\"callImage\" type=\"image\" [src]=\"interaction.subheaderData.image.href\" [title]=\"interaction.subheaderData.tooltip || ''\" tabindex=\"-1\">\r\n <input class=\"editor phoneNumberValue\" [attr.aria-labelledby]=\"interaction.UIHeadersData.statusText + ' ' + interaction.subheaderData.value\" readonly type=\"text\" [value]=\"interaction.subheaderData.value\" [id]=\"interaction.subheaderData.value\" tabindex=\"-1\">\r\n </div>\r\n\r\n <div class=\"cadSection\">\r\n <ng-container *ngFor=\"let property of interaction.properties\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <label class=\"col1\" [title]=\"property.displayKey\">{{property.displayKey}}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let property of interaction.associatedData\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" [title]=\"property.displayKey\">{{property.displayKey}}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <amc-operation *ngIf=\"interaction.chat\" id=\"close-chat\" [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n <app-chat-box *ngIf=\"interaction.chat\" [isTyping]=\"interaction.chat.isCustomerTyping\" [settings]=\"interaction.chat.settings\"\r\n [messages]=\"interaction.chat.messages\" [newMsgs]=\"newMsgs\" (isAgentTyping)=\"isAgentTyping.emit($event)\" (newMessage)=\"newMessage.emit($event)\"></app-chat-box>\r\n\r\n <div [id]='interaction.interactionId'> </div>\r\n <amc-operation *ngIf=\"!interaction.chat\" [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n </div>\r\n\r\n <div *ngIf=\"isConferenceCall()\">\r\n <div *ngFor=\"let party of interaction.parties\">\r\n <div class=\"editor phoneNumberContainer\">\r\n <input class=\"callImage\" type=\"image\" [src]=\"party.header.image.href\" [title]=\"party.header.tooltip || ''\" tabindex=\"-1\">\r\n <input class=\"editor phoneNumberValue\" readonly type=\"text\" [value]=\"party.header.value\" tabindex=\"-1\">\r\n </div>\r\n\r\n <div class=\"grid-container\">\r\n <ng-container *ngFor=\"let property of party.properties\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <label class=\"col1\" [title]=\"property.displayKey\">{{ property.displayKey }}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"party.header.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <amc-operation [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"party.header.value\" [operations]=\"party.operations\"></amc-operation>\r\n <div class=\"AnswerCallFocused\"></div>\r\n </div>\r\n <amc-operation [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
|
|
82
|
-
styles: [":host{display:block}.phoneNumberContainer{margin-left:5px!important;padding-left:0;display:flex;align-items:center}.cadSection{margin-bottom:5px}#close-chat{-moz-text-align-last:end;text-align-last:end}.grid-container{margin-left:5px;display:grid;grid-template-columns:auto 1fr;grid-column-gap:10px;max-width:calc(100% - 5px);overflow:hidden}.col1{grid-column:1/2}.col2{grid-column:2/3}.ViewExpandImage{margin:3px}.ViewExpandImage:focus{outline:#3296da solid 2px;outline-offset:0}.ViewCollapseImage{margin:3px}.ViewCollapseImage:focus{outline:#3296da solid 2px;outline-offset:0}.callImage{cursor:default}.phoneNumberValue:focus{outline-style:none}", "body{padding-top:5px;padding-bottom:5px;margin:0}.login{width:20px;height:20px;display:block;margin-top:2px;margin-left:auto;margin-right:auto}.editor{font-size:.9em;text-align:left;margin:4px 5% 0 0;font-family:Arial;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;border:0;padding-top:2px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.editor .standalone-line{width:90%!important;text-align:center!important}.editorHyperLink label{font-size:.95em;float:left;width:30%;margin-left:2%;text-align:left;color:#000;font-family:Arial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:0;padding-top:0}.editorHyperLink input[type=text]{font-size:.95em;width:60%;text-align:left;margin:0 5% 0 0;color:#318fc5;cursor:pointer;font-family:Arial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:0;padding-top:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.AnswerCallImages{height:20px;margin:0 5px 2px}.AnswerCallFocused{border:1px solid #939598;margin-left:0;font-family:Arial;position:relative;background-color:#fff;width:100%;box-sizing:border-box}.ViewCollapseImage,.ViewExpandImage{width:20px;height:20px;float:right;cursor:pointer}.answerPhoneNumberStyle{border:0;position:relative;top:-12px;left:-38px;max-width:80px;height:15px;text-overflow:ellipsis;font-size:.85em}.callHeaderTop{border-bottom:1px solid;background-color:#f4f5fb;width:100%;margin-top:0}.statusImage{width:15px;height:15px;margin-left:10px;float:left;margin-right:5px}.statusText{float:left;margin-top:1px}.displayDiv{width:100%;display:flex}.DurationDiv{float:right;width:17%;text-align:right;margin-right:5px}.displayLabels{margin-left:5px;width:25%;overflow:hidden;text-overflow:ellipsis}.displayData{border:0;outline:0}.callOptions{background-color:#f6f7fb;bottom:0;width:100%;text-align:center}.directionText{font-size:.8em;margin-left:2px}.phoneNumberValue{font-weight:700;font-size:1em;margin-left:5px}.durationInput{background-color:transparent;border:0;width:100%;text-align:right}.topBorder{border-top:1px solid #939598}.holdCallDurationDiv{float:left;margin-top:1px;margin-left:2px}.holdCallDurationTimer{background-color:transparent;border:0;width:100%}.verticalDivider{margin-left:2px;float:left}.callImage{height:20px}"]
|
|
91
|
+
template: "<div class=\"AnswerCallFocused\" [id]=\"interaction.interactionId\">\r\n <div class=\"editor callHeaderTop\" (click)=\"clickEvent(interaction.interactionId)\">\r\n <img class=\"statusImage\" aria-hidden=\"true\" [src]=\"interaction.UIHeadersData.statusUrl\" (click)=\"interaction.UIHeadersData.focusHandler.handler(interaction.UIHeadersData.focusHandler.operationName, interaction.UIHeadersData.focusHandler.operationMetadata)\" />\r\n <label class=\"statusText\">\r\n <b [id]=\"interaction.UIHeadersData.statusText\">{{ interaction.UIHeadersData.statusText }}</b>\r\n </label>\r\n <label class=\"verticalDivider\">|</label>\r\n <label class=\"directionText\" *ngIf=\"!interaction.UIHeadersData.displayHoldCounter\">{{ interaction.UIHeadersData.directionText }}</label>\r\n <div class=\"holdCallDurationDiv\" *ngIf=\"interaction.UIHeadersData.displayHoldCounter\">\r\n <amc-holdtimer [holdCounterData]=\"interaction.UIHeadersData.holdCounterData\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\"></amc-holdtimer>\r\n </div>\r\n <img class=\"ViewExpandImage\" [src]=\"interaction.UIHeadersData.minimizeUrl\" alt=\"Minimize\" (click)=\"minimize()\" (keypress)=\"collapseKeypress($event)\" *ngIf=\"!_minimized\" tabindex=\"0\" role=\"button\" aria-label=\"collapse Call Section\">\r\n <img class=\"ViewCollapseImage\" [src]=\"interaction.UIHeadersData.maximizeUrl\" alt=\"Maximize\" (click)=\"maximize()\" (keypress)=\"expandKeypress($event)\" *ngIf=\"_minimized\" tabindex=\"0\" role=\"button\" aria-label=\"expand Call Section\">\r\n <div class=\"DurationDiv\" *ngIf=\"interaction.displayCallTimer\">\r\n <amc-duration [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [startTime]=\"interaction.startTime\"></amc-duration>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!_minimized\">\r\n\r\n <div *ngIf=\"!isConferenceCall()\">\r\n <div class=\"editor phoneNumberContainer\">\r\n <input class=\"callImage\" type=\"image\" [src]=\"interaction.subheaderData.image.href\" [title]=\"interaction.subheaderData.tooltip || ''\" tabindex=\"-1\">\r\n <input class=\"editor phoneNumberValue\" [attr.aria-labelledby]=\"interaction.UIHeadersData.statusText + ' ' + interaction.subheaderData.value\" readonly type=\"text\" [value]=\"interaction.subheaderData.value\" [id]=\"interaction.subheaderData.value\" tabindex=\"-1\">\r\n </div>\r\n\r\n <div class=\"cadSection\">\r\n <ng-container *ngFor=\"let property of interaction.properties\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <label class=\"col1\" [title]=\"property.displayKey\">{{property.displayKey}}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let property of interaction.associatedData\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" [title]=\"property.displayKey\">{{property.displayKey}}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <amc-operation *ngIf=\"interaction.chat\" id=\"close-chat\" [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n <app-chat-box *ngIf=\"interaction.chat\" [isTyping]=\"interaction.chat.isCustomerTyping\" [settings]=\"interaction.chat.settings\"\r\n [messages]=\"interaction.chat.messages\" [newMsgs]=\"newMsgs\" (isAgentTyping)=\"isAgentTyping.emit($event)\" (newMessage)=\"newMessage.emit($event)\"></app-chat-box>\r\n\r\n <div [id]='interaction.interactionId'> </div>\r\n <amc-operation *ngIf=\"!interaction.chat\" [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n </div>\r\n\r\n <div *ngIf=\"isConferenceCall()\">\r\n <div *ngFor=\"let party of interaction.parties\">\r\n <div class=\"editor phoneNumberContainer\">\r\n <input class=\"callImage\" type=\"image\" [src]=\"party.header.image.href\" [title]=\"party.header.tooltip || ''\" tabindex=\"-1\">\r\n <input class=\"editor phoneNumberValue\" readonly type=\"text\" [value]=\"party.header.value\" tabindex=\"-1\">\r\n </div>\r\n\r\n <div class=\"grid-container\">\r\n <ng-container *ngFor=\"let property of party.properties\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <label class=\"col1\" [title]=\"property.displayKey\">{{ property.displayKey }}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"party.header.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <amc-operation [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"party.header.value\" [operations]=\"party.operations\"></amc-operation>\r\n <div class=\"AnswerCallFocused\"></div>\r\n </div>\r\n <amc-operation [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
|
|
92
|
+
styles: [":host{display:block}.phoneNumberContainer{margin-left:5px!important;padding-left:0;display:flex;align-items:center}.cadSection{margin-bottom:5px}#close-chat{-moz-text-align-last:end;text-align-last:end}.grid-container{margin-left:5px;display:grid;grid-template-columns:auto 1fr;grid-column-gap:10px;max-width:calc(100% - 5px);overflow:hidden}.col1{grid-column:1/2}.col2{grid-column:2/3}.ViewExpandImage{margin:3px}.ViewExpandImage:focus{outline:#3296da solid 2px;outline-offset:0}.ViewCollapseImage{margin:3px}.ViewCollapseImage:focus{outline:#3296da solid 2px;outline-offset:0}.callImage{cursor:default}.phoneNumberValue:focus{outline-style:none}#call123{border:4px!important}.success{border:2px solid #00adbb!important}", "body{padding-top:5px;padding-bottom:5px;margin:0}.login{width:20px;height:20px;display:block;margin-top:2px;margin-left:auto;margin-right:auto}.editor{font-size:.9em;text-align:left;margin:4px 5% 0 0;font-family:Arial;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;border:0;padding-top:2px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.editor .standalone-line{width:90%!important;text-align:center!important}.editorHyperLink label{font-size:.95em;float:left;width:30%;margin-left:2%;text-align:left;color:#000;font-family:Arial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:0;padding-top:0}.editorHyperLink input[type=text]{font-size:.95em;width:60%;text-align:left;margin:0 5% 0 0;color:#318fc5;cursor:pointer;font-family:Arial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:0;padding-top:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.AnswerCallImages{height:20px;margin:0 5px 2px}.AnswerCallFocused{border:1px solid #939598;margin-left:0;font-family:Arial;position:relative;background-color:#fff;width:100%;box-sizing:border-box}.ViewCollapseImage,.ViewExpandImage{width:20px;height:20px;float:right;cursor:pointer}.answerPhoneNumberStyle{border:0;position:relative;top:-12px;left:-38px;max-width:80px;height:15px;text-overflow:ellipsis;font-size:.85em}.callHeaderTop{border-bottom:1px solid;background-color:#f4f5fb;width:100%;margin-top:0}.statusImage{width:15px;height:15px;margin-left:10px;float:left;margin-right:5px}.statusText{float:left;margin-top:1px}.displayDiv{width:100%;display:flex}.DurationDiv{float:right;width:17%;text-align:right;margin-right:5px}.displayLabels{margin-left:5px;width:25%;overflow:hidden;text-overflow:ellipsis}.displayData{border:0;outline:0}.callOptions{background-color:#f6f7fb;bottom:0;width:100%;text-align:center}.directionText{font-size:.8em;margin-left:2px}.phoneNumberValue{font-weight:700;font-size:1em;margin-left:5px}.durationInput{background-color:transparent;border:0;width:100%;text-align:right}.topBorder{border-top:1px solid #939598}.holdCallDurationDiv{float:left;margin-top:1px;margin-left:2px}.holdCallDurationTimer{background-color:transparent;border:0;width:100%}.verticalDivider{margin-left:2px;float:left}.callImage{height:20px}"]
|
|
83
93
|
})
|
|
84
94
|
], InteractionComponent);
|
|
85
95
|
return InteractionComponent;
|
|
86
96
|
}());
|
|
87
97
|
export { InteractionComponent };
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtYy10ZWNobm9sb2d5L3VpLWxpYnJhcnkvIiwic291cmNlcyI6WyJwcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBMkIsTUFBTSxlQUFlLENBQUM7QUFHeEc7O0dBRUc7QUFNSDtJQW1CRTs7T0FFRztJQUNIO1FBbEJVLHFCQUFnQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUM1QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQWlCaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQWJELHNCQUFJLDRDQUFVO2FBSWQ7WUFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEIsQ0FBQzthQU5ELFVBQWUsS0FBSztZQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUM7OztPQUFBO0lBWUQ7O09BRUc7SUFDSCx1Q0FBUSxHQUFSO0lBQ0EsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUNBQVEsR0FBUjtRQUNFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILHVDQUFRLEdBQVI7UUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCwrQ0FBZ0IsR0FBaEI7UUFDRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELCtDQUFnQixHQUFoQixVQUFpQixLQUFvQjtRQUNuQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCw2Q0FBYyxHQUFkLFVBQWUsS0FBb0I7UUFDakMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRUQseUNBQVUsR0FBVixVQUFXLEVBQUU7UUFDWCxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDbEQsSUFBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNoRCxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUMxQzthQUFNLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEVBQUM7WUFDcEQsUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDO1lBQzlGLFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQTFFUTtRQUFSLEtBQUssRUFBRTs2REFBMkI7SUFDMUI7UUFBUixLQUFLLEVBQUU7eURBQXlCO0lBQ3ZCO1FBQVQsTUFBTSxFQUFFO2tFQUE4RDtJQUM3RDtRQUFULE1BQU0sRUFBRTsrREFBNkM7SUFDNUM7UUFBVCxNQUFNLEVBQUU7NERBQXlDO0lBTnZDLG9CQUFvQjtRQUxoQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLGttTUFBMkM7O1NBRTVDLENBQUM7T0FDVyxvQkFBb0IsQ0FnRmhDO0lBQUQsMkJBQUM7Q0FBQSxBQWhGRCxJQWdGQztTQWhGWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJQ2hhdE1lc3NhZ2UsIElJbnRlcmFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy91aWxpYnJhcnkubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW1jLWludGVyYWN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJhY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ludGVyYWN0aW9uLmNvbXBvbmVudC5zY3NzJywgJy4vLi4vdWlsaWJyYXJ5Lm1vZHVsZS5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgaW50ZXJhY3Rpb246IElJbnRlcmFjdGlvbjtcclxuICBASW5wdXQoKSBuZXdNc2dzOiBJQ2hhdE1lc3NhZ2VbXTtcclxuICBAT3V0cHV0KCkgbWluaW1pemVkQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBpc0FnZW50VHlwaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSBuZXdNZXNzYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBtaW5pbWl6ZWQ6IGJvb2xlYW47XHJcbiAgc2V0IF9taW5pbWl6ZWQodmFsdWUpIHtcclxuICAgIHRoaXMubWluaW1pemVkID0gdmFsdWU7XHJcbiAgICB0aGlzLm1pbmltaXplZENoYW5nZWQuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBfbWluaW1pemVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWluaW1pemVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fbWluaW1pemVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgbWluaW1pemUoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9taW5pbWl6ZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIG1heGltaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbWluaW1pemVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgaXNDb25mZXJlbmNlQ2FsbCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmludGVyYWN0aW9uLnBhcnRpZXMgJiYgdGhpcy5pbnRlcmFjdGlvbi5wYXJ0aWVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjb2xsYXBzZUtleXByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLm1pbmltaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBhbmRLZXlwcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5tYXhpbWl6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xpY2tFdmVudChpZCl7XHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gJ3N1Y2Nlc3MnO1xyXG4gICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZvY3VzZWRQYW5lbCcpID09PSBudWxsKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdmb2N1c2VkUGFuZWwnLCBpZCk7XHJcbiAgICB9IGVsc2UgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdmb2N1c2VkUGFuZWwnKSAhPSBpZCl7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdmb2N1c2VkUGFuZWwnKSkuY2xhc3NOYW1lID0gJ0Fuc3dlckNhbGxGb2N1c2VkJztcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2ZvY3VzZWRQYW5lbCcsIGlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIl19
|
|
@@ -46,8 +46,6 @@ var LoginComponent = /** @class */ (function () {
|
|
|
46
46
|
if (!loginForm.controls[field.name].valid) {
|
|
47
47
|
field.isInvalid = true;
|
|
48
48
|
}
|
|
49
|
-
// console.log(loginForm);
|
|
50
|
-
// console.log(field);
|
|
51
49
|
};
|
|
52
50
|
__decorate([
|
|
53
51
|
Input()
|
|
@@ -59,10 +57,10 @@ var LoginComponent = /** @class */ (function () {
|
|
|
59
57
|
Component({
|
|
60
58
|
selector: 'amc-login',
|
|
61
59
|
template: "<div class=\"login-container\">\r\n <form (ngSubmit)=\"onLogin(loginForm)\"class=\"login-form\" id=\"login-form\" #loginForm=\"ngForm\">\r\n <div class=\"header-container\">\r\n <label class=\"login-header\" attr.aria-label=\"login\">{{ loginData.header }}</label>\r\n </div>\r\n <div class=\"fields-container\">\r\n <div *ngFor=\"let field of loginData.fields\" class=\"field\">\r\n <label class=\"field-label\">\r\n {{ field.name }}:\r\n </label>\r\n\r\n <input\r\n ngModel\r\n class=\"field-input\"\r\n attr.aria-label=\"{{ field.name }}\"\r\n [name]=\"field.name\"\r\n [type]=\"field.type\"\r\n [value]=\"field.value\"\r\n [placeholder]=\"field.placeholder || ''\"\r\n [required]=\"field.isRequired || false\"\r\n (focusout)=\"focusOutOfInput(loginForm, field)\"/>\r\n\r\n <p class=\"invalid-input\" *ngIf=\"field.isInvalid\">{{ field.invalidMessage }}</p>\r\n </div>\r\n\r\n <button\r\n type=\"submit\"\r\n class=\"form-submit\"\r\n form=\"login-form\"\r\n tabindex=\"0\"\r\n attr.aria-label=\"send\"\r\n [disabled]=\"!loginForm.valid\">Login</button>\r\n </div>\r\n\r\n </form>\r\n</div>\r\n",
|
|
62
|
-
styles: [".login-container{border:1px solid #939598;white-space:nowrap;font-family:Arial;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;text-overflow:ellipsis;position:relative;font-size:.9em;overflow-x:hidden;overflow-y:hidden}.header-container{border-bottom:1px solid #939598;background-color:#f4f5fb;width:100%;height:28px;position
|
|
60
|
+
styles: [".login-container{border:1px solid #939598;white-space:nowrap;font-family:Arial;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;text-overflow:ellipsis;position:relative;font-size:.9em;overflow-x:hidden;overflow-y:hidden}.header-container{border-bottom:1px solid #939598;background-color:#f4f5fb;width:100%;height:28px;position:sticky}.login-header{margin-top:auto;margin-left:7px;padding:5px;font-weight:700;font-size:.9em}.fields-container{overflow-y:auto;font-size:.9em;padding:5px}.field{display:table-row;margin:5px}.field-label{padding:10px;display:table-cell}.field-input{display:table-cell;border:1px solid #939598;border-radius:5px}.field-input:focus{box-shadow:0 0 5px #38badf}.form-submit{margin:15px 10px 10px;display:table-row;border:1px solid #00a4b0;border-radius:5px;background-color:#00a4b0;color:#f7f7f7;width:10em;height:2em;transition:.2s;font-size:1.1em;position:relative;top:50%;left:50%;transform:translate(-50%,-50%)}.form-submit:hover{background-color:#01858f}.form-submit:disabled{background-color:silver;border-color:silver;color:#fff}input.ng-invalid.ng-touched[required]{border-color:#a94442}.form-submit:focus{outline:#3296da solid 2px;outline-offset:5px}.invalid-input{margin:0;padding:0;color:#a94442;font-size:x-small}"]
|
|
63
61
|
})
|
|
64
62
|
], LoginComponent);
|
|
65
63
|
return LoginComponent;
|
|
66
64
|
}());
|
|
67
65
|
export { LoginComponent };
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtYy10ZWNobm9sb2d5L3VpLWxpYnJhcnkvIiwic291cmNlcyI6WyJwcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvRTtJQUlFO1FBRlUseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUVoRCxDQUFDO0lBRWpCLGlDQUFRLEdBQVI7O1FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztTQUNqQzs7WUFFRCxLQUFrQixJQUFBLEtBQUEsU0FBQSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQSxnQkFBQSw0QkFBRTtnQkFBcEMsSUFBSSxLQUFLLFdBQUE7Z0JBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7b0JBQ3BCLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2lCQUN6QjthQUNGOzs7Ozs7Ozs7SUFDSCxDQUFDO0lBRUQsZ0NBQU8sR0FBUCxVQUFRLFNBQWlCOzs7WUFDdkIsS0FBb0IsSUFBQSxLQUFBLFNBQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUEsZ0JBQUEsNEJBQUU7Z0JBQXRDLElBQU0sS0FBSyxXQUFBO2dCQUNkLEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0M7Ozs7Ozs7OztRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCx3Q0FBZSxHQUFmLFVBQWdCLFNBQWlCLEVBQUUsS0FBSztRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ3pDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQTdCUTtRQUFSLEtBQUssRUFBRTtxREFBdUI7SUFDckI7UUFBVCxNQUFNLEVBQUU7Z0VBQXVEO0lBRnJELGNBQWM7UUFMMUIsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLFdBQVc7WUFDckIsK3dDQUFxQzs7U0FFdEMsQ0FBQztPQUNXLGNBQWMsQ0ErQjFCO0lBQUQscUJBQUM7Q0FBQSxBQS9CRCxJQStCQztTQS9CWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxvZ2luRGF0YSB9IGZyb20gJy4vLi4vLi4vbW9kZWxzL2xvZ2luLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbWMtbG9naW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbG9naW5EYXRhOiBJTG9naW5EYXRhO1xyXG4gIEBPdXRwdXQoKSBsb2dpbkRldGFpbHNQcm92aWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUxvZ2luRGF0YT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMubG9naW5EYXRhLmhlYWRlcikge1xyXG4gICAgICB0aGlzLmxvZ2luRGF0YS5oZWFkZXIgPSAnTG9naW4nO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGZpZWxkIG9mIHRoaXMubG9naW5EYXRhLmZpZWxkcykge1xyXG4gICAgICBpZiAoIWZpZWxkLmlzSW52YWxpZCkge1xyXG4gICAgICAgIGZpZWxkLmlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkxvZ2luKGxvZ2luRm9ybTogTmdGb3JtKSB7XHJcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHRoaXMubG9naW5EYXRhLmZpZWxkcykge1xyXG4gICAgICBmaWVsZC52YWx1ZSA9IGxvZ2luRm9ybS52YWx1ZVtmaWVsZC5uYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZ2luRGV0YWlsc1Byb3ZpZGVkLmVtaXQodGhpcy5sb2dpbkRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPdXRPZklucHV0KGxvZ2luRm9ybTogTmdGb3JtLCBmaWVsZCkge1xyXG4gICAgaWYgKCFsb2dpbkZvcm0uY29udHJvbHNbZmllbGQubmFtZV0udmFsaWQpIHtcclxuICAgICAgZmllbGQuaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
package/esm5/projects/UILibrary/src/app/components/recent-activity/recent-activity.component.js
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { debounceTime } from 'rxjs/operators';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
var RecentActivityComponent = /** @class */ (function () {
|
|
6
|
+
function RecentActivityComponent() {
|
|
7
|
+
this.EventEmitter = new EventEmitter();
|
|
8
|
+
this.debouncer = new Subject();
|
|
9
|
+
this.eventList = new Set();
|
|
10
|
+
}
|
|
11
|
+
RecentActivityComponent.prototype.ngOnChanges = function () {
|
|
12
|
+
};
|
|
13
|
+
RecentActivityComponent.prototype.getIcon = function (scenario) {
|
|
14
|
+
switch (scenario) {
|
|
15
|
+
case 'Telephony':
|
|
16
|
+
return '../../assets/images/Phone_Number_Icon.png';
|
|
17
|
+
case 'Email':
|
|
18
|
+
return '../../assets/images/emailTab.png';
|
|
19
|
+
default:
|
|
20
|
+
return '../../assets/images/chat.png';
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
RecentActivityComponent.prototype.ngOnInit = function () {
|
|
24
|
+
var _this = this;
|
|
25
|
+
this.debouncer.pipe(debounceTime(500)).subscribe(function () {
|
|
26
|
+
var newEvent = {
|
|
27
|
+
eventName: Array.from(_this.eventList).join('|'),
|
|
28
|
+
idx: _this.idx,
|
|
29
|
+
newValue: _this.ActivityDetails
|
|
30
|
+
};
|
|
31
|
+
_this.EventEmitter.emit(newEvent);
|
|
32
|
+
_this.eventList.clear();
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
RecentActivityComponent.prototype.ngOnDestroy = function () { };
|
|
36
|
+
RecentActivityComponent.prototype.expandAndCollapseRecentActivity = function (isExpand) {
|
|
37
|
+
if (isExpand) {
|
|
38
|
+
this.EventEmitter.emit({
|
|
39
|
+
eventName: 'WorkingEvtivityChanged',
|
|
40
|
+
idx: this.idx,
|
|
41
|
+
newValue: this.ActivityDetails
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.EventEmitter.emit({
|
|
46
|
+
eventName: 'WorkingEvtivityChanged',
|
|
47
|
+
idx: -1,
|
|
48
|
+
newValue: this.ActivityDetails
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
RecentActivityComponent.prototype.openActivity = function () {
|
|
53
|
+
this.EventEmitter.emit({
|
|
54
|
+
eventName: 'OpenCallActivity',
|
|
55
|
+
idx: this.idx,
|
|
56
|
+
newValue: this.ActivityDetails
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
RecentActivityComponent.prototype.onSubjectChange = function () {
|
|
60
|
+
this.eventList.add('ActivitySubjectChanged');
|
|
61
|
+
this.debouncer.next();
|
|
62
|
+
};
|
|
63
|
+
RecentActivityComponent.prototype.onSubjectKeyUp = function () {
|
|
64
|
+
this.eventList.add('ActivitySubjectChanged');
|
|
65
|
+
this.debouncer.next();
|
|
66
|
+
};
|
|
67
|
+
RecentActivityComponent.prototype.onWhoObjectChange = function (event) {
|
|
68
|
+
this.ActivityDetails.WhoObject = this.WhoObjectList.find(function (obj) { return obj.objectId === event; });
|
|
69
|
+
this.EventEmitter.emit({
|
|
70
|
+
eventName: 'ActivityWhoObjectChanged',
|
|
71
|
+
idx: this.idx,
|
|
72
|
+
newValue: this.ActivityDetails
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
RecentActivityComponent.prototype.onRelatedToChange = function (event) {
|
|
76
|
+
this.ActivityDetails.WhatObject = this.WhatObjectList.find(function (obj) { return obj.objectId === event; });
|
|
77
|
+
this.EventEmitter.emit({
|
|
78
|
+
eventName: 'ActivityWhatObjectChanged',
|
|
79
|
+
idx: this.idx,
|
|
80
|
+
newValue: this.ActivityDetails
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
RecentActivityComponent.prototype.onCallNotesChange = function () {
|
|
84
|
+
this.eventList.add('ActivityCallNoteChanged');
|
|
85
|
+
this.debouncer.next();
|
|
86
|
+
};
|
|
87
|
+
RecentActivityComponent.prototype.onCallNotesKeyUp = function () {
|
|
88
|
+
this.eventList.add('ActivityCallNoteChanged');
|
|
89
|
+
this.debouncer.next();
|
|
90
|
+
};
|
|
91
|
+
RecentActivityComponent.prototype.addQuickCommentToDescription = function (comment) {
|
|
92
|
+
if (this.ActivityDetails.Description) {
|
|
93
|
+
this.ActivityDetails.Description += '\n';
|
|
94
|
+
}
|
|
95
|
+
this.ActivityDetails.Description += comment;
|
|
96
|
+
this.eventList.add('ActivityCallNoteChanged');
|
|
97
|
+
this.debouncer.next();
|
|
98
|
+
};
|
|
99
|
+
RecentActivityComponent.prototype.submitActivity = function () {
|
|
100
|
+
this.ActivityDetails.IsProcessing = true;
|
|
101
|
+
this.EventEmitter.emit({
|
|
102
|
+
eventName: 'SubmitActivity',
|
|
103
|
+
idx: this.idx,
|
|
104
|
+
newValue: this.ActivityDetails
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
__decorate([
|
|
108
|
+
Input()
|
|
109
|
+
], RecentActivityComponent.prototype, "ActivityDetails", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
Input()
|
|
112
|
+
], RecentActivityComponent.prototype, "isInConsoleView", void 0);
|
|
113
|
+
__decorate([
|
|
114
|
+
Input()
|
|
115
|
+
], RecentActivityComponent.prototype, "quickCommentList", void 0);
|
|
116
|
+
__decorate([
|
|
117
|
+
Input()
|
|
118
|
+
], RecentActivityComponent.prototype, "workingScenarioID", void 0);
|
|
119
|
+
__decorate([
|
|
120
|
+
Input()
|
|
121
|
+
], RecentActivityComponent.prototype, "idx", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
Input()
|
|
124
|
+
], RecentActivityComponent.prototype, "last", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
Input()
|
|
127
|
+
], RecentActivityComponent.prototype, "WhoObjectList", void 0);
|
|
128
|
+
__decorate([
|
|
129
|
+
Input()
|
|
130
|
+
], RecentActivityComponent.prototype, "WhatObjectList", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
Output()
|
|
133
|
+
], RecentActivityComponent.prototype, "EventEmitter", void 0);
|
|
134
|
+
RecentActivityComponent = __decorate([
|
|
135
|
+
Component({
|
|
136
|
+
selector: 'amc-recent-activity',
|
|
137
|
+
template: "<div *ngIf=\"ActivityDetails.ScenarioId === workingScenarioID\">\r\n <div (click)=\"expandAndCollapseRecentActivity(false);\" class=\"editor callHeaderRecentActivitySelected\">\r\n <label class=\"headerLabelClickableLook\">\r\n <img src=\"../../assets/images/Phone_Number_Icon.png\" class=\"RecentCallsImg\" />\r\n <b>{{ ActivityDetails.Subject }}</b>\r\n </label>\r\n <img *ngIf=\"ActivityDetails.ActivityId\" class=\"RecentCallsImgForActivity\" src=\"../../assets/images/open_activity.png\"\r\n title=\"Open Activity\" (click)=\"openActivity();$event.stopPropagation();\" />\r\n <label *ngIf=\"ActivityDetails.IsUnSaved && isInConsoleView\" class=\"unsavedText\">unsaved</label>\r\n </div>\r\n <div class=\"callBody\">\r\n <div class=\"gray-out\" *ngIf=\"ActivityDetails.IsRecentWorkItemLoading\">\r\n <div class=\"spinner-container\">\r\n <img class=\"spinner\" src=\"../../assets/images/view_progress.gif\" />\r\n </div>\r\n </div>\r\n <div class=\"activityFields\">\r\n <!-- <form> -->\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" title=\"Subject\">Subject</label>\r\n <input class=\"activitySubjectTextBoxStyle displayData\" type=\"text\" (change)=\"onSubjectChange();\"\r\n (keyup)=\"onSubjectKeyUp()\" name=\"subject\" [(ngModel)]=\"ActivityDetails.Subject\" />\r\n </div>\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" title=\"Name\">Name</label>\r\n <select class=\"dropDownListStyle displayData\" [ngModel]=\"ActivityDetails.WhoObject.objectId\"\r\n (ngModelChange)=\"onWhoObjectChange($event)\" name=\"whoItem\">\r\n <option *ngFor=\"let whoItem of WhoObjectList\" [ngValue]=\"whoItem.objectId\">\r\n {{(whoItem.displayName && whoItem.objectName) ? (whoItem.displayName + ': ' + whoItem.objectName) : \"\" }}</option>\r\n <!-- <option value=\"UserSelectedForEmptyRecord\"></option> -->\r\n </select>\r\n </div>\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" title=\"Regarding\">Related To</label>\r\n <select class=\"dropDownListStyle displayData\" [ngModel]=\"ActivityDetails.WhatObject.objectId\"\r\n (ngModelChange)=\"onRelatedToChange($event)\" name=\"whatItem\">\r\n <option *ngFor=\"let whatItem of WhatObjectList;\" [ngValue]=\"whatItem.objectId\">\r\n {{ (whatItem.displayName && whatItem.objectName) ? (whatItem.displayName + ': ' + whatItem.objectName) : \"\" }}</option>\r\n <!-- <option value=\"UserSelectedForEmptyRecord\"></option> -->\r\n </select>\r\n </div>\r\n <div class=\"editor displayDiv\">\r\n <div class=\"callNotesSection\">\r\n <div class=\"callNotesTextArea\">\r\n <textarea placeholder=\"Click to add a comment\" class=\"activityCommentsTextBoxStyle\"\r\n (change)=\"onCallNotesChange();\" (keyup)=\"onCallNotesKeyUp()\" name=\"description\" rows=\"5\" title=\"\"\r\n [(ngModel)]=\"ActivityDetails.Description\">\r\n </textarea>\r\n </div>\r\n <div class=\"notesBottonBorder\">\r\n <div class=\"commentsButtonDiv\">\r\n <div class=\"quickCommentsDiv\">\r\n <input *ngFor=\"let quickComment of quickCommentList; let i = index;\" class=\"quickNotesBotton\"\r\n type=\"button\" value=\"{{i+1}}\" (click)=\"addQuickCommentToDescription(quickComment)\"\r\n title=\"{{quickComment}}\">\r\n </div>\r\n <div class=\"callNotesButtonsSection\">\r\n <input class=\"submitButton\" type=\"button\" value=\"Save\" (click)=\"submitActivity()\"\r\n [disabled]=\"!ActivityDetails.IsUnSaved\" />\r\n <!-- <input *ngIf=\"recentScenario.IsProcessing\" class=\"submitButton\" type=\"button\" value=\"Save\" (click)=\"submitActivity(idx)\" [disabled]=\"!recentScenario.IsUnSaved\"/> -->\r\n <img *ngIf=\"ActivityDetails.IsProcessing\" class=\"loadingIcon\" src=\"../../assets/images/loading.gif\"\r\n title=\"Updating Activity\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- </form> -->\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"ActivityDetails.ScenarioId !== workingScenarioID \">\r\n <div [class.callHeaderBottomBorder]='last' (click)=\"expandAndCollapseRecentActivity(true)\"\r\n class=\"editor callHeaderRecentActivityUnselected\">\r\n <label class=\"headerLabelClickableLook\">\r\n <img [src]=\"getIcon(ActivityDetails.ChannelType)\" class=\"RecentCallsImg\" />\r\n <b>{{ ActivityDetails.Subject }}</b>\r\n </label>\r\n <img *ngIf=\"ActivityDetails.ActivityId\" class=\"RecentCallsImgForActivity\" src=\"../../assets/images/open_activity.png\"\r\n title=\"Open Activity\" (click)=\"openActivity();$event.stopPropagation();\" />\r\n <label *ngIf=\"ActivityDetails.IsUnSaved && isInConsoleView\" class=\"unsavedText\">unsaved</label>\r\n </div>\r\n</div>\r\n\r\n",
|
|
138
|
+
styles: [".callSection{margin-left:0;font-family:Arial;position:relative;margin-top:5px;background-color:#fff}.notesBottonBorder{background-color:#fff;border-left:1px solid #939598;border-bottom:1px solid #939598;border-right:1px solid #939598;border-bottom-left-radius:3px!important;border-bottom-right-radius:3px!important;height:auto}.quickCommentsDiv{text-align:left;flex:1 0 0;flex-wrap:wrap;display:flex;margin:2px}.unsavedText{float:right;margin-right:5px;color:gray;font-style:italic}.quickNotesBotton{background-color:#1e72ba;border:0;color:#fff;height:70%;width:20px;margin:2px;outline:0;font-size:70%}.submitButton{border:0;float:right;margin-top:2px;outline:0;cursor:pointer;background-color:#6cb047;color:#fff;border-radius:4px;font-size:98%;margin-bottom:2px}.commentsButtonDiv{width:100%;display:flex;align-items:center;background-color:#f6f7fb}.gray-out{top:0;left:0;position:absolute;z-index:2000;background:#fff;opacity:.7;width:100%;height:100%}.spinner-container{position:relative;width:-moz-fit-content;width:fit-content;top:50%;left:50%;transform:translate(-50%,-50%)}.spinner{height:80px;width:80px;border:0;position:relative;left:50%;transform:translate(-50%,0)}.callNotesButtonsSection{text-align:right;padding-right:4px}.ViewResizeImage{width:20px;height:20px;float:right;cursor:pointer}.callBody{border:1px solid #939598;border-top:1px solid #fff;position:relative}.callBodyBorderless{position:relative}.callDisplay{margin-bottom:8px;background-color:#fff}.editor{font-size:.9em;width:70%;text-align:left;margin:4px 5% 0 0;font-family:Arial;white-space:nowrap;text-overflow:ellipsis;border:0;padding-top:5px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.dropDownListStyle{border:1px solid #939598!important;border-radius:3px!important;width:70%!important;height:20px!important;text-align:left!important;white-space:nowrap!important;text-overflow:ellipsis!important;margin:0 5px 0 0;cursor:pointer}.activitySubjectTextBoxStyle{border:1px solid #939598!important;border-radius:3px!important;width:70%!important;height:20px!important;text-align:left!important;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;margin:0 5px 0 0;padding-left:2px}.activityCommentsTextBoxStyle{color:#333!important;text-align:left!important;margin:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;resize:none;width:100%;height:100%;border:none}.displayDiv{width:100%;display:flex}.displayLabels{margin-left:5px;width:25%;overflow:hidden;text-overflow:ellipsis}.displayData{width:70%}.headerLabel{margin-left:10px}.activityFields{position:relative;z-index:0}.callNotesTextArea{background-color:#fff;border-bottom:1px solid #939598;border-top:1px solid #939598;border-top-left-radius:3px!important;border-top-right-radius:3px!important}.callNotesSection{float:left;height:100%;width:100%;background-color:#f6f7fb}.callHeaderRecentActivitySelected{cursor:pointer;border-left:1px solid #939598!important;border-right:1px solid #939598!important;background-color:#cfecf2!important;width:100%!important;margin-top:0!important}.callHeaderRecentActivityUnselected{cursor:pointer;border-left:1px solid #939598!important;border-right:1px solid #939598!important;background-color:#e6f4f7!important;width:100%!important;margin-top:0!important}.callHeader{border:1px solid #939598!important;background-color:#f4f5fb!important;width:100%!important;margin-top:0!important}.callHeaderBottomBorder{cursor:pointer;border-bottom:1px solid #939598!important;border-left:1px solid #939598!important;border-right:1px solid #939598!important;background-color:#e6f4f7!important;width:100%!important;margin-top:0!important}.RecentCallsImg{height:15px;vertical-align:text-bottom}.RecentCallsImgForActivity{height:15px;vertical-align:super;margin-right:5px}.headerLabelClickableLook{cursor:pointer;display:inline-block;margin-left:10px;max-width:80%;overflow:hidden;text-overflow:ellipsis}.loadingIcon{margin-left:auto;margin-right:5px;height:10px;width:30px;margin-top:5px;padding-bottom:0}input[type=button]:disabled{background-color:#d3d3d3;cursor:auto}"]
|
|
139
|
+
})
|
|
140
|
+
], RecentActivityComponent);
|
|
141
|
+
return RecentActivityComponent;
|
|
142
|
+
}());
|
|
143
|
+
export { RecentActivityComponent };
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjZW50LWFjdGl2aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbWMtdGVjaG5vbG9neS91aS1saWJyYXJ5LyIsInNvdXJjZXMiOlsicHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9yZWNlbnQtYWN0aXZpdHkvcmVjZW50LWFjdGl2aXR5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFJUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVMvQjtJQW1CRTtRQUNFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBSWhDLENBQUM7UUFFTCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCw2Q0FBVyxHQUFYO0lBQ0EsQ0FBQztJQUVELHlDQUFPLEdBQVAsVUFBUSxRQUFRO1FBQ2QsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxXQUFXO2dCQUNkLE9BQU8sMkNBQTJDLENBQUM7WUFDckQsS0FBSyxPQUFPO2dCQUNWLE9BQU8sa0NBQWtDLENBQUM7WUFDNUM7Z0JBQ0UsT0FBTyw4QkFBOEIsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRCwwQ0FBUSxHQUFSO1FBQUEsaUJBVUM7UUFUQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0MsSUFBTSxRQUFRLEdBQUc7Z0JBQ2YsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLFNB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QSxBQXpJRCxJQXlJQztTQXpJWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIE9uSW5pdCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvSUFjdGl2aXR5JztcclxuaW1wb3J0IHsgSUFjdGl2aXR5RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVscy9JQWN0aXZpdHlEZXRhaWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW1jLXJlY2VudC1hY3Rpdml0eScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2VudC1hY3Rpdml0eS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVjZW50LWFjdGl2aXR5LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjZW50QWN0aXZpdHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBBY3Rpdml0eURldGFpbHM6IElBY3Rpdml0eTtcclxuICBASW5wdXQoKSBpc0luQ29uc29sZVZpZXc6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcXVpY2tDb21tZW50TGlzdDogc3RyaW5nW107XHJcbiAgQElucHV0KCkgd29ya2luZ1NjZW5hcmlvSUQ6IHN0cmluZztcclxuICBASW5wdXQoKSBpZHg6IG51bWJlcjtcclxuICBASW5wdXQoKSBsYXN0OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIFdob09iamVjdExpc3Q6IElBY3Rpdml0eURldGFpbHNbXTtcclxuICBASW5wdXQoKSBXaGF0T2JqZWN0TGlzdDogSUFjdGl2aXR5RGV0YWlsc1tdO1xyXG5cclxuICBAT3V0cHV0KCkgRXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8e1xyXG4gICAgZXZlbnROYW1lOiBzdHJpbmc7XHJcbiAgICBpZHg6IG51bWJlcjtcclxuICAgIG5ld1ZhbHVlPzogSUFjdGl2aXR5O1xyXG4gIH0+O1xyXG5cclxuICBwcml2YXRlIGRlYm91bmNlcjogU3ViamVjdDx2b2lkPjtcclxuICBwcml2YXRlIGV2ZW50TGlzdDogU2V0PFN0cmluZz47XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5FdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgICAgZXZlbnROYW1lOiBzdHJpbmc7XHJcbiAgICAgIGlkeDogbnVtYmVyO1xyXG4gICAgICBuZXdWYWx1ZT86IElBY3Rpdml0eTtcclxuICAgIH0+KCk7XHJcblxyXG4gICAgdGhpcy5kZWJvdW5jZXIgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgdGhpcy5ldmVudExpc3QgPSBuZXcgU2V0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIGdldEljb24oc2NlbmFyaW8pOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChzY2VuYXJpbykge1xyXG4gICAgICBjYXNlICdUZWxlcGhvbnknOlxyXG4gICAgICAgIHJldHVybiAnLi4vLi4vYXNzZXRzL2ltYWdlcy9QaG9uZV9OdW1iZXJfSWNvbi5wbmcnO1xyXG4gICAgICBjYXNlICdFbWFpbCc6XHJcbiAgICAgICAgcmV0dXJuICcuLi8uLi9hc3NldHMvaW1hZ2VzL2VtYWlsVGFiLnBuZyc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICcuLi8uLi9hc3NldHMvaW1hZ2VzL2NoYXQucG5nJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZWJvdW5jZXIucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgY29uc3QgbmV3RXZlbnQgPSB7XHJcbiAgICAgICAgZXZlbnROYW1lOiBBcnJheS5mcm9tKHRoaXMuZXZlbnRMaXN0KS5qb2luKCd8JyksXHJcbiAgICAgICAgaWR4OiB0aGlzLmlkeCxcclxuICAgICAgICBuZXdWYWx1ZTogdGhpcy5BY3Rpdml0eURldGFpbHNcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5FdmVudEVtaXR0ZXIuZW1pdChuZXdFdmVudCk7XHJcbiAgICAgIHRoaXMuZXZlbnRMaXN0LmNsZWFyKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge31cclxuXHJcbiAgZXhwYW5kQW5kQ29sbGFwc2VSZWNlbnRBY3Rpdml0eShpc0V4cGFuZDogYm9vbGVhbikge1xyXG4gICAgaWYgKGlzRXhwYW5kKSB7XHJcbiAgICAgIHRoaXMuRXZlbnRFbWl0dGVyLmVtaXQoe1xyXG4gICAgICAgIGV2ZW50TmFtZTogJ1dvcmtpbmdFdnRpdml0eUNoYW5nZWQnLFxyXG4gICAgICAgIGlkeDogdGhpcy5pZHgsXHJcbiAgICAgICAgbmV3VmFsdWU6IHRoaXMuQWN0aXZpdHlEZXRhaWxzXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5FdmVudEVtaXR0ZXIuZW1pdCh7XHJcbiAgICAgICAgZXZlbnROYW1lOiAnV29ya2luZ0V2dGl2aXR5Q2hhbmdlZCcsXHJcbiAgICAgICAgaWR4OiAtMSxcclxuICAgICAgICBuZXdWYWx1ZTogdGhpcy5BY3Rpdml0eURldGFpbHNcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuQWN0aXZpdHkoKSB7XHJcbiAgICB0aGlzLkV2ZW50RW1pdHRlci5lbWl0KHtcclxuICAgICAgZXZlbnROYW1lOiAnT3BlbkNhbGxBY3Rpdml0eScsXHJcbiAgICAgIGlkeDogdGhpcy5pZHgsXHJcbiAgICAgIG5ld1ZhbHVlOiB0aGlzLkFjdGl2aXR5RGV0YWlsc1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblN1YmplY3RDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmV2ZW50TGlzdC5hZGQoJ0FjdGl2aXR5U3ViamVjdENoYW5nZWQnKTtcclxuICAgIHRoaXMuZGVib3VuY2VyLm5leHQoKTtcclxuICB9XHJcblxyXG4gIG9uU3ViamVjdEtleVVwKCkge1xyXG4gICAgdGhpcy5ldmVudExpc3QuYWRkKCdBY3Rpdml0eVN1YmplY3RDaGFuZ2VkJyk7XHJcbiAgICB0aGlzLmRlYm91bmNlci5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBvbldob09iamVjdENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLkFjdGl2aXR5RGV0YWlscy5XaG9PYmplY3QgPSB0aGlzLldob09iamVjdExpc3QuZmluZCgob2JqKSA9PiBvYmoub2JqZWN0SWQgPT09IGV2ZW50KTtcclxuICAgIHRoaXMuRXZlbnRFbWl0dGVyLmVtaXQoe1xyXG4gICAgICBldmVudE5hbWU6ICdBY3Rpdml0eVdob09iamVjdENoYW5nZWQnLFxyXG4gICAgICBpZHg6IHRoaXMuaWR4LFxyXG4gICAgICBuZXdWYWx1ZTogdGhpcy5BY3Rpdml0eURldGFpbHNcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25SZWxhdGVkVG9DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5BY3Rpdml0eURldGFpbHMuV2hhdE9iamVjdCA9IHRoaXMuV2hhdE9iamVjdExpc3QuZmluZCgob2JqKSA9PiBvYmoub2JqZWN0SWQgPT09IGV2ZW50KTtcclxuICAgIHRoaXMuRXZlbnRFbWl0dGVyLmVtaXQoe1xyXG4gICAgICBldmVudE5hbWU6ICdBY3Rpdml0eVdoYXRPYmplY3RDaGFuZ2VkJyxcclxuICAgICAgaWR4OiB0aGlzLmlkeCxcclxuICAgICAgbmV3VmFsdWU6IHRoaXMuQWN0aXZpdHlEZXRhaWxzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQ2FsbE5vdGVzQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5ldmVudExpc3QuYWRkKCdBY3Rpdml0eUNhbGxOb3RlQ2hhbmdlZCcpO1xyXG4gICAgdGhpcy5kZWJvdW5jZXIubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgb25DYWxsTm90ZXNLZXlVcCgpIHtcclxuICAgIHRoaXMuZXZlbnRMaXN0LmFkZCgnQWN0aXZpdHlDYWxsTm90ZUNoYW5nZWQnKTtcclxuICAgIHRoaXMuZGVib3VuY2VyLm5leHQoKTtcclxuICB9XHJcblxyXG4gIGFkZFF1aWNrQ29tbWVudFRvRGVzY3JpcHRpb24oY29tbWVudDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5BY3Rpdml0eURldGFpbHMuRGVzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5BY3Rpdml0eURldGFpbHMuRGVzY3JpcHRpb24gKz0gJ1xcbic7XHJcbiAgICB9XHJcbiAgICB0aGlzLkFjdGl2aXR5RGV0YWlscy5EZXNjcmlwdGlvbiArPSBjb21tZW50O1xyXG4gICAgdGhpcy5ldmVudExpc3QuYWRkKCdBY3Rpdml0eUNhbGxOb3RlQ2hhbmdlZCcpO1xyXG4gICAgdGhpcy5kZWJvdW5jZXIubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0QWN0aXZpdHkoKSB7XHJcbiAgICB0aGlzLkFjdGl2aXR5RGV0YWlscy5Jc1Byb2Nlc3NpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5FdmVudEVtaXR0ZXIuZW1pdCh7XHJcbiAgICAgIGV2ZW50TmFtZTogJ1N1Ym1pdEFjdGl2aXR5JyxcclxuICAgICAgaWR4OiB0aGlzLmlkeCxcclxuICAgICAgbmV3VmFsdWU6IHRoaXMuQWN0aXZpdHlEZXRhaWxzXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|