@amc-technology/ui-library 1.0.28 → 1.0.33
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 +1 -3
- package/amc-technology-ui-library.metadata.json +1 -1
- package/bundles/amc-technology-ui-library.umd.js +1087 -726
- package/bundles/amc-technology-ui-library.umd.js.map +1 -57
- package/bundles/amc-technology-ui-library.umd.min.js +16 -2
- package/bundles/amc-technology-ui-library.umd.min.js.map +1 -266
- package/esm2015/amc-technology-ui-library.js +16 -1579
- package/esm2015/projects/UILibrary/src/app/Helpers.js +11 -0
- package/esm2015/projects/UILibrary/src/app/components/activity/activity.component.js +83 -0
- package/esm2015/projects/UILibrary/src/app/components/chat-box/chat-box.component.js +104 -0
- package/esm2015/projects/UILibrary/src/app/components/chat-message/chat-message.component.js +39 -0
- package/esm2015/projects/UILibrary/src/app/components/disposition/disposition.component.js +49 -0
- package/esm2015/projects/UILibrary/src/app/components/duration/duration.component.js +58 -0
- package/esm2015/projects/UILibrary/src/app/components/holdtimer/holdtimer.component.js +72 -0
- package/esm2015/projects/UILibrary/src/app/components/interaction/interaction.component.js +80 -0
- package/esm2015/projects/UILibrary/src/app/components/login/login.component.js +45 -0
- package/esm2015/projects/UILibrary/src/app/components/operation/operation.component.js +57 -0
- package/esm2015/projects/UILibrary/src/app/components/property/property.component.js +99 -0
- package/esm2015/projects/UILibrary/src/app/components/scenario/scenario.component.js +40 -0
- package/esm2015/projects/UILibrary/src/app/models/chat.message.js +7 -0
- package/esm2015/projects/UILibrary/src/app/models/chat.settings.js +1 -0
- package/esm2015/projects/UILibrary/src/app/models/disposition.interface.js +1 -0
- package/esm2015/projects/UILibrary/src/app/models/login.interface.js +1 -0
- package/esm2015/projects/UILibrary/src/app/models/uilibrary.model.js +40 -0
- package/esm2015/projects/UILibrary/src/app/uilibrary.module.js +73 -0
- package/esm2015/public_api.js +2 -0
- package/esm5/amc-technology-ui-library.js +16 -716
- package/esm5/projects/UILibrary/src/app/Helpers.js +11 -0
- package/esm5/projects/UILibrary/src/app/components/activity/activity.component.js +84 -0
- package/esm5/projects/UILibrary/src/app/components/chat-box/chat-box.component.js +105 -0
- package/esm5/projects/UILibrary/src/app/components/chat-message/chat-message.component.js +40 -0
- package/esm5/projects/UILibrary/src/app/components/disposition/disposition.component.js +61 -0
- package/esm5/projects/UILibrary/src/app/components/duration/duration.component.js +60 -0
- package/esm5/projects/UILibrary/src/app/components/holdtimer/holdtimer.component.js +74 -0
- package/esm5/projects/UILibrary/src/app/components/interaction/interaction.component.js +85 -0
- package/esm5/projects/UILibrary/src/app/components/login/login.component.js +68 -0
- package/esm5/projects/UILibrary/src/app/components/operation/operation.component.js +58 -0
- package/esm5/projects/UILibrary/src/app/components/property/property.component.js +101 -0
- package/esm5/projects/UILibrary/src/app/components/scenario/scenario.component.js +41 -0
- package/esm5/projects/UILibrary/src/app/models/chat.message.js +7 -0
- package/esm5/projects/UILibrary/src/app/models/chat.settings.js +1 -0
- package/esm5/projects/UILibrary/src/app/models/disposition.interface.js +1 -0
- package/esm5/projects/UILibrary/src/app/models/login.interface.js +1 -0
- package/esm5/projects/UILibrary/src/app/models/uilibrary.model.js +43 -0
- package/esm5/projects/UILibrary/src/app/uilibrary.module.js +74 -0
- package/esm5/public_api.js +2 -0
- package/fesm2015/amc-technology-ui-library.js +813 -0
- package/fesm2015/amc-technology-ui-library.js.map +1 -0
- package/fesm5/amc-technology-ui-library.js +867 -0
- package/fesm5/amc-technology-ui-library.js.map +1 -0
- package/package.json +14 -66
- package/projects/UILibrary/src/app/components/activity/activity.component.d.ts +11 -9
- package/projects/UILibrary/src/app/components/disposition/disposition.component.d.ts +5 -3
- package/projects/UILibrary/src/app/components/duration/duration.component.d.ts +4 -1
- package/projects/UILibrary/src/app/components/holdtimer/holdtimer.component.d.ts +4 -1
- package/projects/UILibrary/src/app/components/interaction/interaction.component.d.ts +4 -1
- package/projects/UILibrary/src/app/components/login/login.component.d.ts +11 -0
- package/projects/UILibrary/src/app/components/operation/operation.component.d.ts +6 -0
- package/projects/UILibrary/src/app/components/property/property.component.d.ts +5 -0
- package/projects/UILibrary/src/app/components/scenario/scenario.component.d.ts +2 -2
- package/projects/UILibrary/src/app/models/disposition.interface.d.ts +12 -0
- package/projects/UILibrary/src/app/models/login.interface.d.ts +13 -0
- package/projects/UILibrary/src/app/models/uilibrary.model.d.ts +23 -24
- package/webcomponents/webcomponents.js +3 -3
- package/esm2015/amc-technology-ui-library.js.map +0 -44
- package/esm5/amc-technology-ui-library.js.map +0 -44
- package/projects/UILibrary/src/app/components/amc-collapsible-container/amc-collapsible-container.component.d.ts +0 -6
- package/projects/UILibrary/src/app/components/caller-information/caller-information.component.d.ts +0 -14
- package/projects/UILibrary/src/app/components/recent-activities/recent-activities.component.d.ts +0 -45
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function secondsToHms(seconds_in) {
|
|
2
|
+
seconds_in = Number(seconds_in);
|
|
3
|
+
const h = Math.floor(seconds_in / 3600);
|
|
4
|
+
const m = Math.floor(seconds_in % 3600 / 60);
|
|
5
|
+
const s = Math.floor(seconds_in % 3600 % 60);
|
|
6
|
+
const hDisplay = h > 0 ? h.toString() + ':' : '';
|
|
7
|
+
const mDisplay = m > 0 ? ('0' + m.toString()).slice(-2) + ':' : '00:';
|
|
8
|
+
const sDisplay = s > 0 ? ('0' + s.toString()).slice(-2) : '00';
|
|
9
|
+
return hDisplay + mDisplay + sDisplay;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbWMtdGVjaG5vbG9neS91aS1saWJyYXJ5LyIsInNvdXJjZXMiOlsicHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvSGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsWUFBWSxDQUFDLFVBQWtCO0lBQzdDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDeEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUU3QyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvRCxPQUFPLFFBQVEsR0FBRyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gc2Vjb25kc1RvSG1zKHNlY29uZHNfaW46IG51bWJlcik6IHN0cmluZyB7XHJcbiAgc2Vjb25kc19pbiA9IE51bWJlcihzZWNvbmRzX2luKTtcclxuICBjb25zdCBoID0gTWF0aC5mbG9vcihzZWNvbmRzX2luIC8gMzYwMCk7XHJcbiAgY29uc3QgbSA9IE1hdGguZmxvb3Ioc2Vjb25kc19pbiAlIDM2MDAgLyA2MCk7XHJcbiAgY29uc3QgcyA9IE1hdGguZmxvb3Ioc2Vjb25kc19pbiAlIDM2MDAgJSA2MCk7XHJcblxyXG4gIGNvbnN0IGhEaXNwbGF5ID0gaCA+IDAgPyBoLnRvU3RyaW5nKCkgKyAnOicgOiAnJztcclxuICBjb25zdCBtRGlzcGxheSA9IG0gPiAwID8gKCcwJyArIG0udG9TdHJpbmcoKSkuc2xpY2UoLTIpICsgJzonIDogJzAwOic7XHJcbiAgY29uc3Qgc0Rpc3BsYXkgPSBzID4gMCA/ICgnMCcgKyBzLnRvU3RyaW5nKCkpLnNsaWNlKC0yKSA6ICcwMCc7XHJcbiAgcmV0dXJuIGhEaXNwbGF5ICsgbURpc3BsYXkgKyBzRGlzcGxheTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
3
|
+
let ActivityComponent = class ActivityComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.ActivitySave = new EventEmitter();
|
|
6
|
+
this.OnNameSelectChange = new EventEmitter();
|
|
7
|
+
this.OnRelatedToChange = new EventEmitter();
|
|
8
|
+
this.OnSubjectChange = new EventEmitter();
|
|
9
|
+
this.OnCallNotesChange = new EventEmitter();
|
|
10
|
+
this.isActivityMaximized = true;
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
}
|
|
14
|
+
onNameSelectChange(event) {
|
|
15
|
+
this.activity.WhoObject = this.getWho(event.currentTarget.value);
|
|
16
|
+
this.OnNameSelectChange.emit(this.activity);
|
|
17
|
+
}
|
|
18
|
+
parseWhoObject(whoObject) {
|
|
19
|
+
return whoObject.objectType + ': ' + whoObject.objectName;
|
|
20
|
+
}
|
|
21
|
+
parseWhatObject(whatObject) {
|
|
22
|
+
return whatObject.objectType + ': ' + whatObject.objectName;
|
|
23
|
+
}
|
|
24
|
+
onRelatedToChange(event) {
|
|
25
|
+
this.activity.WhatObject = this.getWhat(event.currentTarget.value);
|
|
26
|
+
this.OnRelatedToChange.emit(this.activity);
|
|
27
|
+
}
|
|
28
|
+
onSubjectChange(event) {
|
|
29
|
+
this.activity.Subject = event.srcElement.value;
|
|
30
|
+
this.OnSubjectChange.emit(this.activity);
|
|
31
|
+
}
|
|
32
|
+
onCallNotesChange(event) {
|
|
33
|
+
this.activity.Subject = event.srcElement.value.trim();
|
|
34
|
+
this.OnCallNotesChange.emit(this.activity);
|
|
35
|
+
}
|
|
36
|
+
getWho(id) {
|
|
37
|
+
for (let i = 0; i < this.activity.whoList.length; i++) {
|
|
38
|
+
if (this.activity.whoList[i].objectId === id) {
|
|
39
|
+
return this.activity.whoList[i];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
getWhat(id) {
|
|
44
|
+
for (let i = 0; i < this.activity.whatList.length; i++) {
|
|
45
|
+
if (this.activity.whatList[i].objectId === id) {
|
|
46
|
+
return this.activity.whatList[i];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
loadQuickComment(value) {
|
|
51
|
+
this.activity.Description = this.activity.Description + this.activity.quickCommentList[value];
|
|
52
|
+
}
|
|
53
|
+
activitySave(clearActivityFields) {
|
|
54
|
+
this.ActivitySave.emit(this.activity);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
__decorate([
|
|
58
|
+
Input()
|
|
59
|
+
], ActivityComponent.prototype, "activity", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
Output()
|
|
62
|
+
], ActivityComponent.prototype, "ActivitySave", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
Output()
|
|
65
|
+
], ActivityComponent.prototype, "OnNameSelectChange", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
Output()
|
|
68
|
+
], ActivityComponent.prototype, "OnRelatedToChange", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
Output()
|
|
71
|
+
], ActivityComponent.prototype, "OnSubjectChange", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
Output()
|
|
74
|
+
], ActivityComponent.prototype, "OnCallNotesChange", void 0);
|
|
75
|
+
ActivityComponent = __decorate([
|
|
76
|
+
Component({
|
|
77
|
+
selector: 'app-activity',
|
|
78
|
+
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\" title=\"Collapse\">\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=\"Call From\">{{activity.NameFieldName}}</label>\r\n <select class=\"dropDownListStyle displayData\" data-resetperactivity=\"false\" (change)=\"onNameSelectChange($event)\">\r\n <option *ngFor=\"let who of activity.whoList\" value=\"{{who.objectId}}\">{{parseWhoObject(who)}}</option>\r\n </select>\r\n </div>\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" title=\"Related To\">{{activity.RelatedToFieldName}}</label>\r\n <select class=\"dropDownListStyle displayData\" (change)=\"onRelatedToChange($event)\" data-resetperactivity=\"false\">\r\n <option *ngFor=\"let what of activity.whatList\" value=\"{{what.objectId}}\">{{parseWhatObject(what)}}</option>\r\n </select>\r\n </div>\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" title=\"Subject\">{{activity.SubjectFieldName}}</label>\r\n <input class=\"activitySubjectTextBoxStyle displayData\" (change)=\"onSubjectChange($event)\" title=\"{{activity.Subject}}\"\r\n type=\"text\" value=\"{{activity.Subject}}\">\r\n </div>\r\n <div class=\"editor displayDiv\">\r\n <div class=\"callNotesContainer\">\r\n <div class=\"textAreaDiv\">\r\n <textarea value=\"{{activity.Description}}\" placeholder=\"Click to add a comment\" class=\"activityCommentsTextBoxStyle\"\r\n (change)=\"onCallNotesChange($event)\" cols=\"20\" rows=\"2\" title=\"\"></textarea>\r\n </div>\r\n <div class=\"notesButtonBorder\">\r\n <div class=\"commentsButtonDiv\">\r\n <div class=\"quickCommentsDiv\">\r\n <input *ngFor=\"let quickComment of activity.quickCommentList ; let i = index;\" class=\"quickNotesBotton\" type=\"button\"\r\n value=\"{{i+1}}\" (click)=\"loadQuickComment(i)\" title=\"{{quickComment}}\">\r\n </div>\r\n <div class=\"submitDiv\">\r\n <input class=\"submitButton\" type=\"button\" value=\"Submit\" (click)=\"activitySave(false)\">\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\" title=\"Expand\">\r\n </div>\r\n",
|
|
79
|
+
styles: [".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}.callHeader{background-color:#f4f5fb!important;width:100%!important;margin-top:0!important}.headerLabel{margin-left:10px}.ViewResizeImage{width:20px;height:20px;float:right;cursor:pointer}.callBody{border-top:0;position:relative}.displayDiv{width:100%;display:flex}.displayLabels{margin-left:5px;width:25%;margin-right:2px}.displayData{width:70%}.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}.notesButtonBorder{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}.commentsButtonDiv{width:100%;display:flex;align-items:center}.quickNotesBotton{background-color:#1e72ba;border:0;color:#fff;height:70%;width:20px;margin:2px;outline:0;font-size:70%}.quickCommentsDiv{text-align:left;flex:1 0 0;flex-wrap:wrap;display:flex;margin:2px}.submitDiv{text-align:right;padding-right:4px}.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}"]
|
|
80
|
+
})
|
|
81
|
+
], ActivityComponent);
|
|
82
|
+
export { ActivityComponent };
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtYy10ZWNobm9sb2d5L3VpLWxpYnJhcnkvIiwic291cmNlcyI6WyJwcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2FjdGl2aXR5L2FjdGl2aXR5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvRSxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFpQjtJQVU1QjtRQU5RLGlCQUFZLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7UUFDdEUsdUJBQWtCLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7UUFDNUUsc0JBQWlCLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7UUFDM0Usb0JBQWUsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUN6RSxzQkFBaUIsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUdqRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQUs7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxjQUFjLENBQUMsU0FBMkI7UUFDL0MsT0FBTyxTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDO0lBQzVELENBQUM7SUFFTSxlQUFlLENBQUMsVUFBNEI7UUFDakQsT0FBTyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQzlELENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFLO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQUs7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDTSxpQkFBaUIsQ0FBQyxLQUFLO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxNQUFNLENBQUMsRUFBRTtRQUNkLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFFO2dCQUM1QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pDO1NBQ0Y7SUFDSCxDQUFDO0lBQ00sT0FBTyxDQUFDLEVBQUU7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3RELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLEVBQUUsRUFBRTtnQkFDN0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQztTQUNGO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQUs7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRU0sWUFBWSxDQUFDLG1CQUFtQjtRQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztDQUNGLENBQUE7QUEvRFE7SUFBUixLQUFLLEVBQUU7bURBQXFCO0FBQ25CO0lBQVQsTUFBTSxFQUFFO3VEQUF1RTtBQUN0RTtJQUFULE1BQU0sRUFBRTs2REFBNkU7QUFDNUU7SUFBVCxNQUFNLEVBQUU7NERBQTRFO0FBQzNFO0lBQVQsTUFBTSxFQUFFOzBEQUEwRTtBQUN6RTtJQUFULE1BQU0sRUFBRTs0REFBNEU7QUFSeEUsaUJBQWlCO0lBTDdCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxjQUFjO1FBQ3hCLGduR0FBd0M7O0tBRXpDLENBQUM7R0FDVyxpQkFBaUIsQ0FrRTdCO1NBbEVZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUFjdGl2aXR5LCBJQWN0aXZpdHlEZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VpbGlicmFyeS5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hY3Rpdml0eScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hY3Rpdml0eS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbmlzQWN0aXZpdHlNYXhpbWl6ZWQ6IGJvb2xlYW47XHJcbkBJbnB1dCgpIGFjdGl2aXR5OiBJQWN0aXZpdHk7XHJcbkBPdXRwdXQoKSBBY3Rpdml0eVNhdmU6IEV2ZW50RW1pdHRlcjxJQWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQWN0aXZpdHk+KCk7XHJcbkBPdXRwdXQoKSBPbk5hbWVTZWxlY3RDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJQWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQWN0aXZpdHk+KCk7XHJcbkBPdXRwdXQoKSBPblJlbGF0ZWRUb0NoYW5nZTogRXZlbnRFbWl0dGVyPElBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPElBY3Rpdml0eT4oKTtcclxuQE91dHB1dCgpIE9uU3ViamVjdENoYW5nZTogRXZlbnRFbWl0dGVyPElBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPElBY3Rpdml0eT4oKTtcclxuQE91dHB1dCgpIE9uQ2FsbE5vdGVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8SUFjdGl2aXR5PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuaXNBY3Rpdml0eU1heGltaXplZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk5hbWVTZWxlY3RDaGFuZ2UoZXZlbnQpIHtcclxuICAgIHRoaXMuYWN0aXZpdHkuV2hvT2JqZWN0ID0gdGhpcy5nZXRXaG8oZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSk7XHJcbiAgICB0aGlzLk9uTmFtZVNlbGVjdENoYW5nZS5lbWl0KHRoaXMuYWN0aXZpdHkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBhcnNlV2hvT2JqZWN0KHdob09iamVjdDogSUFjdGl2aXR5RGV0YWlscyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gd2hvT2JqZWN0Lm9iamVjdFR5cGUgKyAnOiAnICsgd2hvT2JqZWN0Lm9iamVjdE5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcGFyc2VXaGF0T2JqZWN0KHdoYXRPYmplY3Q6IElBY3Rpdml0eURldGFpbHMpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHdoYXRPYmplY3Qub2JqZWN0VHlwZSArICc6ICcgKyB3aGF0T2JqZWN0Lm9iamVjdE5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25SZWxhdGVkVG9DaGFuZ2UoZXZlbnQpIHtcclxuICAgIHRoaXMuYWN0aXZpdHkuV2hhdE9iamVjdCA9IHRoaXMuZ2V0V2hhdChldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlKTtcclxuICAgIHRoaXMuT25SZWxhdGVkVG9DaGFuZ2UuZW1pdCh0aGlzLmFjdGl2aXR5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblN1YmplY3RDaGFuZ2UoZXZlbnQpIHtcclxuICAgIHRoaXMuYWN0aXZpdHkuU3ViamVjdCA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWU7XHJcbiAgICB0aGlzLk9uU3ViamVjdENoYW5nZS5lbWl0KHRoaXMuYWN0aXZpdHkpO1xyXG4gIH1cclxuICBwdWJsaWMgb25DYWxsTm90ZXNDaGFuZ2UoZXZlbnQpIHtcclxuICAgIHRoaXMuYWN0aXZpdHkuU3ViamVjdCA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWUudHJpbSgpO1xyXG4gICAgdGhpcy5PbkNhbGxOb3Rlc0NoYW5nZS5lbWl0KHRoaXMuYWN0aXZpdHkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFdobyhpZCk6IElBY3Rpdml0eURldGFpbHMge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmFjdGl2aXR5Lndob0xpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZpdHkud2hvTGlzdFtpXS5vYmplY3RJZCA9PT0gaWQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpdml0eS53aG9MaXN0W2ldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRXaGF0KGlkKTogSUFjdGl2aXR5RGV0YWlscyB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYWN0aXZpdHkud2hhdExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZpdHkud2hhdExpc3RbaV0ub2JqZWN0SWQgPT09IGlkKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZpdHkud2hhdExpc3RbaV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkUXVpY2tDb21tZW50KHZhbHVlKSB7XHJcbiAgICB0aGlzLmFjdGl2aXR5LkRlc2NyaXB0aW9uID0gdGhpcy5hY3Rpdml0eS5EZXNjcmlwdGlvbiArIHRoaXMuYWN0aXZpdHkucXVpY2tDb21tZW50TGlzdFt2YWx1ZV07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWN0aXZpdHlTYXZlKGNsZWFyQWN0aXZpdHlGaWVsZHMpIHtcclxuICAgIHRoaXMuQWN0aXZpdHlTYXZlLmVtaXQodGhpcy5hY3Rpdml0eSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
|
|
3
|
+
import { IChatMessageType } from '../../models/chat.message';
|
|
4
|
+
let ChatBoxComponent = class ChatBoxComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.isTyping = false;
|
|
7
|
+
this.lastCount = -1;
|
|
8
|
+
this._isAgentTyping = false;
|
|
9
|
+
this.isAgentTyping = new EventEmitter();
|
|
10
|
+
this.newMessage = new EventEmitter();
|
|
11
|
+
this.newMessageText = '';
|
|
12
|
+
this.usernameToColor = {};
|
|
13
|
+
this.colors = [
|
|
14
|
+
'#81c784',
|
|
15
|
+
'#ffab91',
|
|
16
|
+
'#f48fb1',
|
|
17
|
+
'#29b6f6',
|
|
18
|
+
'#e1bee7',
|
|
19
|
+
'#9ccc65',
|
|
20
|
+
'#ffc107',
|
|
21
|
+
'#26c6da',
|
|
22
|
+
'#cddc39',
|
|
23
|
+
];
|
|
24
|
+
this.colorsIndex = 0;
|
|
25
|
+
this.agentColor = '#29b6f6';
|
|
26
|
+
}
|
|
27
|
+
ngAfterViewChecked() {
|
|
28
|
+
if (this.lastCount !== this.messages.length) {
|
|
29
|
+
this.lastCount = this.messages.length;
|
|
30
|
+
this.scrollToBottom();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
getColor(message) {
|
|
34
|
+
if (message.type && message.type === IChatMessageType.AGENT) {
|
|
35
|
+
return this.agentColor;
|
|
36
|
+
}
|
|
37
|
+
else if (message.username) {
|
|
38
|
+
if (!this.usernameToColor[message.username]) {
|
|
39
|
+
this.usernameToColor[message.username] = this.colors[this.colorsIndex];
|
|
40
|
+
this.colorsIndex = (this.colorsIndex + 1) % this.colors.length;
|
|
41
|
+
}
|
|
42
|
+
return this.usernameToColor[message.username];
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return this.colors[0];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
shouldAlignRight(message) {
|
|
49
|
+
return message.type && message.type === IChatMessageType.AGENT;
|
|
50
|
+
}
|
|
51
|
+
sendNewMessage() {
|
|
52
|
+
if (this.newMessageText) {
|
|
53
|
+
this.newMessage.emit(this.newMessageText);
|
|
54
|
+
this.newMessageText = '';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
onNewMessageFocus(event) {
|
|
58
|
+
const isTyping = event && this.newMessageText.length > 0;
|
|
59
|
+
if (isTyping !== this._isAgentTyping) {
|
|
60
|
+
this._isAgentTyping = isTyping;
|
|
61
|
+
this.isAgentTyping.emit(isTyping);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
onKeyup() {
|
|
65
|
+
const isTyping = this.newMessageText.length > 0;
|
|
66
|
+
if (isTyping !== this._isAgentTyping) {
|
|
67
|
+
this._isAgentTyping = isTyping;
|
|
68
|
+
this.isAgentTyping.emit(isTyping);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
scrollToBottom() {
|
|
72
|
+
try {
|
|
73
|
+
this.messagesContainer.nativeElement.scrollTop = this.messagesContainer.nativeElement.scrollHeight;
|
|
74
|
+
}
|
|
75
|
+
catch (e) { }
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
__decorate([
|
|
79
|
+
Input()
|
|
80
|
+
], ChatBoxComponent.prototype, "settings", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
Input()
|
|
83
|
+
], ChatBoxComponent.prototype, "isTyping", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
Input()
|
|
86
|
+
], ChatBoxComponent.prototype, "messages", void 0);
|
|
87
|
+
__decorate([
|
|
88
|
+
Output()
|
|
89
|
+
], ChatBoxComponent.prototype, "isAgentTyping", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
Output()
|
|
92
|
+
], ChatBoxComponent.prototype, "newMessage", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
ViewChild('MessagesContainer', { static: true })
|
|
95
|
+
], ChatBoxComponent.prototype, "messagesContainer", void 0);
|
|
96
|
+
ChatBoxComponent = __decorate([
|
|
97
|
+
Component({
|
|
98
|
+
selector: 'app-chat-box',
|
|
99
|
+
template: "<div class=\"chat-box\">\r\n <div #MessagesContainer class=\"messages\" [style.max-height]='settings.maxHeight'>\r\n <ng-container *ngFor=\"let message of messages\">\r\n <app-chat-message [alignRight]=\"shouldAlignRight(message)\" [message]=\"message.text\" [username]=\"message.username\"\r\n [timestamp]=\"message.timestamp\" [image]=\"message.userIcon\" [fallbackImage]=\"settings.fallbackUserIcon\" [color]=\"getColor(message)\">\r\n </app-chat-message>\r\n </ng-container>\r\n\r\n <div *ngIf=\"isTyping\" class=\"typing-indicator\">\r\n Someone is typing\r\n <span></span>\r\n <span></span>\r\n <span></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"new-message\">\r\n <input #NewMessageText [(ngModel)]=\"newMessageText\" type=\"text\" placeholder=\"Type a message\" (focus)=\"onNewMessageFocus(true)\"\r\n (blur)=\"onNewMessageFocus(false)\" (keydown.enter)=\"sendNewMessage()\" (keyup)='onKeyup()' [disabled]=\"settings.disableSendMessage\">\r\n <input type=\"image\" [src]=\"settings.sendImage\" (click)=\"sendNewMessage()\" [disabled]=\"settings.disableSendMessage\">\r\n </div>\r\n</div>\r\n",
|
|
100
|
+
styles: [".chat-box{background-color:#eceff1}.messages{padding:5px;overflow:auto;min-height:50px}.new-message{border-top:1px solid #000;display:flex;align-content:center;height:25px}.new-message input[type=text]{flex:1 1 0;background-color:#eceff1;border:none;min-width:0}.new-message input[type=image]{position:relative;top:50%;transform:translateY(-50%);height:20px;cursor:pointer}.new-message input[type=image]:disabled{opacity:.5;cursor:auto}.new-message input:focus{outline:0}.typing-indicator{font-size:1em;font-style:italic}.typing-indicator span{display:inline-block;height:10px;width:10px;border-radius:50%;background-color:#9e9e9e;margin:0 1px;opacity:.2}.typing-indicator span:nth-of-type(1){-webkit-animation:1.5s .33333s infinite blink;animation:1.5s .33333s infinite blink}.typing-indicator span:nth-of-type(2){-webkit-animation:1.5s .66666s infinite blink;animation:1.5s .66666s infinite blink}.typing-indicator span:nth-of-type(3){-webkit-animation:1.5s .99999s infinite blink;animation:1.5s .99999s infinite blink}@-webkit-keyframes blink{50%{opacity:1}}@keyframes blink{50%{opacity:1}}"]
|
|
101
|
+
})
|
|
102
|
+
], ChatBoxComponent);
|
|
103
|
+
export { ChatBoxComponent };
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtYy10ZWNobm9sb2d5L3VpLWxpYnJhcnkvIiwic291cmNlcyI6WyJwcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2NoYXQtYm94L2NoYXQtYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVEzRSxJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFnQjtJQThCM0I7UUE1QlMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdsQixjQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdkIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDYixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFNUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbEQsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFJcEIsb0JBQWUsR0FBbUMsRUFBRSxDQUFDO1FBQ3JELFdBQU0sR0FBRztZQUNQLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztTQUNWLENBQUM7UUFDRixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixlQUFVLEdBQUcsU0FBUyxDQUFDO0lBRVAsQ0FBQztJQUVqQixrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDdEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFxQjtRQUM1QixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7WUFDM0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3hCO2FBQU0sSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2FBQ2hFO1lBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvQzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQXFCO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUNqRSxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYztRQUM5QixNQUFNLFFBQVEsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoRCxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJO1lBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7U0FDcEc7UUFDRCxPQUFPLENBQUMsRUFBRSxHQUFHO0lBQ2YsQ0FBQztDQUNGLENBQUE7QUFyRlU7SUFBUixLQUFLLEVBQUU7a0RBQXlCO0FBQ3hCO0lBQVIsS0FBSyxFQUFFO2tEQUFrQjtBQUVqQjtJQUFSLEtBQUssRUFBRTtrREFBMEI7QUFJeEI7SUFBVCxNQUFNLEVBQUU7dURBQTZDO0FBRTVDO0lBQVQsTUFBTSxFQUFFO29EQUF5QztBQUdBO0lBQWpELFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzsyREFBK0I7QUFickUsZ0JBQWdCO0lBTDVCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxjQUFjO1FBQ3hCLDZwQ0FBd0M7O0tBRXpDLENBQUM7R0FDVyxnQkFBZ0IsQ0FzRjVCO1NBdEZZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0NoZWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUNoYXRNZXNzYWdlLCBJQ2hhdE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoYXQubWVzc2FnZSc7XHJcbmltcG9ydCB7IElDaGF0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2hhdC5zZXR0aW5ncyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jaGF0LWJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXQtYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGF0LWJveC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hhdEJveENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQge1xyXG4gIEBJbnB1dCgpIHNldHRpbmdzOiBJQ2hhdFNldHRpbmdzO1xyXG4gIEBJbnB1dCgpIGlzVHlwaW5nID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIG1lc3NhZ2VzOiBJQ2hhdE1lc3NhZ2VbXTtcclxuICBwcml2YXRlIGxhc3RDb3VudCA9IC0xO1xyXG5cclxuICBfaXNBZ2VudFR5cGluZyA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBpc0FnZW50VHlwaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KCkgbmV3TWVzc2FnZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIG5ld01lc3NhZ2VUZXh0ID0gJyc7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ01lc3NhZ2VzQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSkgbWVzc2FnZXNDb250YWluZXI6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHVzZXJuYW1lVG9Db2xvcjogeyBbdXNlcm5hbWU6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgY29sb3JzID0gW1xyXG4gICAgJyM4MWM3ODQnLFxyXG4gICAgJyNmZmFiOTEnLFxyXG4gICAgJyNmNDhmYjEnLFxyXG4gICAgJyMyOWI2ZjYnLFxyXG4gICAgJyNlMWJlZTcnLFxyXG4gICAgJyM5Y2NjNjUnLFxyXG4gICAgJyNmZmMxMDcnLFxyXG4gICAgJyMyNmM2ZGEnLFxyXG4gICAgJyNjZGRjMzknLFxyXG4gIF07XHJcbiAgY29sb3JzSW5kZXggPSAwO1xyXG4gIGFnZW50Q29sb3IgPSAnIzI5YjZmNic7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgIGlmICh0aGlzLmxhc3RDb3VudCAhPT0gdGhpcy5tZXNzYWdlcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5sYXN0Q291bnQgPSB0aGlzLm1lc3NhZ2VzLmxlbmd0aDtcclxuICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29sb3IobWVzc2FnZTogSUNoYXRNZXNzYWdlKSB7XHJcbiAgICBpZiAobWVzc2FnZS50eXBlICYmIG1lc3NhZ2UudHlwZSA9PT0gSUNoYXRNZXNzYWdlVHlwZS5BR0VOVCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5hZ2VudENvbG9yO1xyXG4gICAgfSBlbHNlIGlmIChtZXNzYWdlLnVzZXJuYW1lKSB7XHJcbiAgICAgIGlmICghdGhpcy51c2VybmFtZVRvQ29sb3JbbWVzc2FnZS51c2VybmFtZV0pIHtcclxuICAgICAgICB0aGlzLnVzZXJuYW1lVG9Db2xvclttZXNzYWdlLnVzZXJuYW1lXSA9IHRoaXMuY29sb3JzW3RoaXMuY29sb3JzSW5kZXhdO1xyXG4gICAgICAgIHRoaXMuY29sb3JzSW5kZXggPSAodGhpcy5jb2xvcnNJbmRleCArIDEpICUgdGhpcy5jb2xvcnMubGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLnVzZXJuYW1lVG9Db2xvclttZXNzYWdlLnVzZXJuYW1lXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbG9yc1swXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3VsZEFsaWduUmlnaHQobWVzc2FnZTogSUNoYXRNZXNzYWdlKSB7XHJcbiAgICByZXR1cm4gbWVzc2FnZS50eXBlICYmIG1lc3NhZ2UudHlwZSA9PT0gSUNoYXRNZXNzYWdlVHlwZS5BR0VOVDtcclxuICB9XHJcblxyXG4gIHNlbmROZXdNZXNzYWdlKCkge1xyXG4gICAgaWYgKHRoaXMubmV3TWVzc2FnZVRleHQpIHtcclxuICAgICAgdGhpcy5uZXdNZXNzYWdlLmVtaXQodGhpcy5uZXdNZXNzYWdlVGV4dCk7XHJcbiAgICAgIHRoaXMubmV3TWVzc2FnZVRleHQgPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTmV3TWVzc2FnZUZvY3VzKGV2ZW50OiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBpc1R5cGluZyA9IGV2ZW50ICYmIHRoaXMubmV3TWVzc2FnZVRleHQubGVuZ3RoID4gMDtcclxuICAgIGlmIChpc1R5cGluZyAhPT0gdGhpcy5faXNBZ2VudFR5cGluZykge1xyXG4gICAgICB0aGlzLl9pc0FnZW50VHlwaW5nID0gaXNUeXBpbmc7XHJcbiAgICAgIHRoaXMuaXNBZ2VudFR5cGluZy5lbWl0KGlzVHlwaW5nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uS2V5dXAoKSB7XHJcbiAgICBjb25zdCBpc1R5cGluZyA9IHRoaXMubmV3TWVzc2FnZVRleHQubGVuZ3RoID4gMDtcclxuICAgIGlmIChpc1R5cGluZyAhPT0gdGhpcy5faXNBZ2VudFR5cGluZykge1xyXG4gICAgICB0aGlzLl9pc0FnZW50VHlwaW5nID0gaXNUeXBpbmc7XHJcbiAgICAgIHRoaXMuaXNBZ2VudFR5cGluZy5lbWl0KGlzVHlwaW5nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNjcm9sbFRvQm90dG9tKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5tZXNzYWdlc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMubWVzc2FnZXNDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkgeyB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, Input } from '@angular/core';
|
|
3
|
+
let ChatMessageComponent = class ChatMessageComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.alignRight = false;
|
|
6
|
+
}
|
|
7
|
+
ngOnInit() {
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
__decorate([
|
|
11
|
+
Input()
|
|
12
|
+
], ChatMessageComponent.prototype, "message", void 0);
|
|
13
|
+
__decorate([
|
|
14
|
+
Input()
|
|
15
|
+
], ChatMessageComponent.prototype, "alignRight", void 0);
|
|
16
|
+
__decorate([
|
|
17
|
+
Input()
|
|
18
|
+
], ChatMessageComponent.prototype, "username", void 0);
|
|
19
|
+
__decorate([
|
|
20
|
+
Input()
|
|
21
|
+
], ChatMessageComponent.prototype, "color", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
Input()
|
|
24
|
+
], ChatMessageComponent.prototype, "timestamp", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
Input()
|
|
27
|
+
], ChatMessageComponent.prototype, "image", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
Input()
|
|
30
|
+
], ChatMessageComponent.prototype, "fallbackImage", void 0);
|
|
31
|
+
ChatMessageComponent = __decorate([
|
|
32
|
+
Component({
|
|
33
|
+
selector: 'app-chat-message',
|
|
34
|
+
template: "<div [class]=\"alignRight? 'message right-message' : 'message left-message'\">\r\n <div class=\"message-header\">\r\n <img *ngIf=\"image\" class=\"image\" [src]=\"image\" (error)=\"image = fallbackImage\" [style.border-color]=\"color\" />\r\n <span *ngIf=\"username\" class=\"username\">{{username}}</span>\r\n <span *ngIf=\"timestamp\" class=\"timestamp\">{{timestamp}}</span>\r\n </div>\r\n\r\n <div class=\"message-body-container\">\r\n <div>\r\n <div class=\"message-body\" [style.background-color]=\"color\" [style.border-color]=\"color\">\r\n <span [innerHTML]=\"message\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
35
|
+
styles: [":host{display:block;margin-top:2px;margin-bottom:2px}.right-message{text-align:end}.message-header{display:flex;-webkit-text-emphasis:none;text-emphasis:none;font-style:italic;font-size:.7em;align-items:center;margin-bottom:.5em}.message-header .image{height:30px;border-radius:50%;border:2px solid red}.message-header .username{font-weight:700}.right-message>.message-header{flex-direction:row-reverse;margin-right:1px}.right-message>.message-header .image,.right-message>.message-header .username{margin-left:5px}.left-message>.message-header{margin-left:1px}.left-message>.message-header .image,.left-message>.message-header .username{margin-right:5px}.message-body-container{display:flex}.right-message>.message-body-container{flex-direction:row-reverse}.message-body{display:inline-block;position:relative;border-radius:.4em;padding:3px;font-style:normal;font-size:1em;text-align:start;min-width:2em;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.left-message .message-body:after{content:\"\";position:absolute;left:.8em;top:-.4em;border-bottom:.4em solid #000;border-bottom-color:inherit;border-left:.4em solid transparent;border-right:.4em solid transparent}.right-message .message-body:after{content:\"\";position:absolute;right:.8em;top:-.4em;border-bottom:.4em solid #000;border-bottom-color:inherit;border-left:.4em solid transparent;border-right:.4em solid transparent}"]
|
|
36
|
+
})
|
|
37
|
+
], ChatMessageComponent);
|
|
38
|
+
export { ChatMessageComponent };
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbWMtdGVjaG5vbG9neS91aS1saWJyYXJ5LyIsInNvdXJjZXMiOlsicHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9jaGF0LW1lc3NhZ2UvY2hhdC1tZXNzYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPekQsSUFBYSxvQkFBb0IsR0FBakMsTUFBYSxvQkFBb0I7SUFTL0I7UUFQUyxlQUFVLEdBQUcsS0FBSyxDQUFDO0lBT1osQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztDQUVGLENBQUE7QUFiVTtJQUFSLEtBQUssRUFBRTtxREFBaUI7QUFDaEI7SUFBUixLQUFLLEVBQUU7d0RBQW9CO0FBQ25CO0lBQVIsS0FBSyxFQUFFO3NEQUFrQjtBQUNqQjtJQUFSLEtBQUssRUFBRTttREFBZTtBQUNkO0lBQVIsS0FBSyxFQUFFO3VEQUFtQjtBQUNsQjtJQUFSLEtBQUssRUFBRTttREFBZTtBQUNkO0lBQVIsS0FBSyxFQUFFOzJEQUF1QjtBQVBwQixvQkFBb0I7SUFMaEMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGtCQUFrQjtRQUM1Qix5cUJBQTRDOztLQUU3QyxDQUFDO0dBQ1csb0JBQW9CLENBY2hDO1NBZFksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jaGF0LW1lc3NhZ2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGF0LW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoYXQtbWVzc2FnZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGF0TWVzc2FnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbWVzc2FnZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFsaWduUmlnaHQgPSBmYWxzZTtcclxuICBASW5wdXQoKSB1c2VybmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGltZXN0YW1wOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaW1hZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBmYWxsYmFja0ltYWdlOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
3
|
+
let DispositionComponent = class DispositionComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.dispositionEmitter = new EventEmitter();
|
|
6
|
+
this.selectedDispositionValue = '';
|
|
7
|
+
this.dispositionName = '';
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
for (const metadata of this.disposition.dispositionMetadata) {
|
|
11
|
+
if (metadata.key === 'callId') {
|
|
12
|
+
this.dispositionName = `disposition_${metadata.value}`;
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
if (this.disposition.checkedDisposition) {
|
|
17
|
+
this.selectedDispositionValue = this.disposition.checkedDisposition;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
submitDisposition() {
|
|
21
|
+
const selectedDisposition = {
|
|
22
|
+
dispositionId: this.selectedDispositionValue,
|
|
23
|
+
dispositionName: this.disposition.disposition.get(this.selectedDispositionValue),
|
|
24
|
+
dispositionMetadata: this.disposition.dispositionMetadata
|
|
25
|
+
};
|
|
26
|
+
this.dispositionEmitter.emit(selectedDisposition);
|
|
27
|
+
}
|
|
28
|
+
selectAndSubmitDisposition(event, dispositionKey) {
|
|
29
|
+
if (event.code === 'Enter') {
|
|
30
|
+
this.selectedDispositionValue = dispositionKey;
|
|
31
|
+
this.submitDisposition();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
__decorate([
|
|
36
|
+
Input()
|
|
37
|
+
], DispositionComponent.prototype, "disposition", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
Output()
|
|
40
|
+
], DispositionComponent.prototype, "dispositionEmitter", void 0);
|
|
41
|
+
DispositionComponent = __decorate([
|
|
42
|
+
Component({
|
|
43
|
+
selector: 'amc-disposition',
|
|
44
|
+
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",
|
|
45
|
+
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:-webkit-sticky;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}"]
|
|
46
|
+
})
|
|
47
|
+
], DispositionComponent);
|
|
48
|
+
export { DispositionComponent };
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zaXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtYy10ZWNobm9sb2d5L3VpLWxpYnJhcnkvIiwic291cmNlcyI6WyJwcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2Rpc3Bvc2l0aW9uL2Rpc3Bvc2l0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8vRSxJQUFhLG9CQUFvQixHQUFqQyxNQUFhLG9CQUFvQjtJQVEvQjtRQUxVLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBRXRFLDZCQUF3QixHQUFXLEVBQUUsQ0FBQztRQUN0QyxvQkFBZSxHQUFXLEVBQUUsQ0FBQztJQUViLENBQUM7SUFFakIsUUFBUTtRQUNOLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRTtZQUMzRCxJQUFJLFFBQVEsQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFO2dCQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUV2RCxNQUFNO2FBQ1A7U0FDRjtRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRTtZQUN2QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztTQUNyRTtJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLG1CQUFtQixHQUF1QjtZQUM5QyxhQUFhLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjtZQUM1QyxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztZQUNoRixtQkFBbUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQjtTQUMxRCxDQUFDO1FBRUYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxLQUFvQixFQUFFLGNBQXNCO1FBQ3JFLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLGNBQWMsQ0FBQztZQUMvQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7Q0FDRixDQUFBO0FBdkNVO0lBQVIsS0FBSyxFQUFFO3lEQUEyQjtBQUV6QjtJQUFULE1BQU0sRUFBRTtnRUFBNkQ7QUFIM0Qsb0JBQW9CO0lBTGhDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsK3FDQUEyQzs7S0FFNUMsQ0FBQztHQUNXLG9CQUFvQixDQXdDaEM7U0F4Q1ksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSURpc3Bvc2l0aW9uLCBJRGlzcG9zaXRpb25SZXN1bHQgfSBmcm9tICcuLy4uLy4uL21vZGVscy9kaXNwb3NpdGlvbi5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FtYy1kaXNwb3NpdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Rpc3Bvc2l0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaXNwb3NpdGlvbi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERpc3Bvc2l0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBkaXNwb3NpdGlvbjogSURpc3Bvc2l0aW9uO1xyXG5cclxuICBAT3V0cHV0KCkgZGlzcG9zaXRpb25FbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxJRGlzcG9zaXRpb25SZXN1bHQ+KCk7XHJcblxyXG4gIHNlbGVjdGVkRGlzcG9zaXRpb25WYWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgZGlzcG9zaXRpb25OYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBmb3IgKGNvbnN0IG1ldGFkYXRhIG9mIHRoaXMuZGlzcG9zaXRpb24uZGlzcG9zaXRpb25NZXRhZGF0YSkge1xyXG4gICAgICBpZiAobWV0YWRhdGEua2V5ID09PSAnY2FsbElkJykge1xyXG4gICAgICAgIHRoaXMuZGlzcG9zaXRpb25OYW1lID0gYGRpc3Bvc2l0aW9uXyR7bWV0YWRhdGEudmFsdWV9YDtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kaXNwb3NpdGlvbi5jaGVja2VkRGlzcG9zaXRpb24pIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERpc3Bvc2l0aW9uVmFsdWUgPSB0aGlzLmRpc3Bvc2l0aW9uLmNoZWNrZWREaXNwb3NpdGlvbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1Ym1pdERpc3Bvc2l0aW9uKCkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWREaXNwb3NpdGlvbjogSURpc3Bvc2l0aW9uUmVzdWx0ID0ge1xyXG4gICAgICBkaXNwb3NpdGlvbklkOiB0aGlzLnNlbGVjdGVkRGlzcG9zaXRpb25WYWx1ZSxcclxuICAgICAgZGlzcG9zaXRpb25OYW1lOiB0aGlzLmRpc3Bvc2l0aW9uLmRpc3Bvc2l0aW9uLmdldCh0aGlzLnNlbGVjdGVkRGlzcG9zaXRpb25WYWx1ZSksXHJcbiAgICAgIGRpc3Bvc2l0aW9uTWV0YWRhdGE6IHRoaXMuZGlzcG9zaXRpb24uZGlzcG9zaXRpb25NZXRhZGF0YVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmRpc3Bvc2l0aW9uRW1pdHRlci5lbWl0KHNlbGVjdGVkRGlzcG9zaXRpb24pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QW5kU3VibWl0RGlzcG9zaXRpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGRpc3Bvc2l0aW9uS2V5OiBzdHJpbmcpIHtcclxuICAgIGlmIChldmVudC5jb2RlID09PSAnRW50ZXInKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREaXNwb3NpdGlvblZhbHVlID0gZGlzcG9zaXRpb25LZXk7XHJcbiAgICAgIHRoaXMuc3VibWl0RGlzcG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, Input } from '@angular/core';
|
|
3
|
+
let DurationComponent = class DurationComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.labelledByText = '';
|
|
6
|
+
this.displayTime = '00:00/00:00';
|
|
7
|
+
}
|
|
8
|
+
ngOnInit() {
|
|
9
|
+
if (this.statusText && this.callId) {
|
|
10
|
+
this.labelledByText = `${this.statusText} ${this.callId}`;
|
|
11
|
+
}
|
|
12
|
+
else if (this.statusText) {
|
|
13
|
+
this.labelledByText = this.statusText;
|
|
14
|
+
}
|
|
15
|
+
else if (this.callId) {
|
|
16
|
+
this.labelledByText = this.callId;
|
|
17
|
+
}
|
|
18
|
+
this.startCallCounter();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @ignore
|
|
22
|
+
*/
|
|
23
|
+
startCallCounter() {
|
|
24
|
+
if (this._timerId == null) {
|
|
25
|
+
this._timerId = window.setInterval(() => {
|
|
26
|
+
const callStartTime = this.startTime;
|
|
27
|
+
const currentTime = new Date().getTime() / 1000;
|
|
28
|
+
const secondsPassed = Math.floor((currentTime) - (callStartTime / 1000));
|
|
29
|
+
this.displayTime = Math.floor(secondsPassed / 60) + ':' + ('0' + (secondsPassed % 60)).slice(-2);
|
|
30
|
+
}, 1000);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
// clear the timer.
|
|
35
|
+
if (this._timerId != null) {
|
|
36
|
+
clearInterval(this._timerId);
|
|
37
|
+
this._timerId = null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
__decorate([
|
|
42
|
+
Input()
|
|
43
|
+
], DurationComponent.prototype, "statusText", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
Input()
|
|
46
|
+
], DurationComponent.prototype, "callId", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
Input()
|
|
49
|
+
], DurationComponent.prototype, "startTime", void 0);
|
|
50
|
+
DurationComponent = __decorate([
|
|
51
|
+
Component({
|
|
52
|
+
selector: 'amc-duration',
|
|
53
|
+
template: "<div class=\"holdCallDurationDiv\">\r\n <input\r\n readonly\r\n class=\"block durationInput\"\r\n name=\"CallDuration\"\r\n type=\"text\"\r\n tabindex=\"-1\"\r\n title=\"Call Duration\"\r\n [value]=\"displayTime\"\r\n [attr.aria-labelledby]=\"labelledByText || null\">\r\n</div>\r\n",
|
|
54
|
+
styles: [".durationInput: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:5px}.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}"]
|
|
55
|
+
})
|
|
56
|
+
], DurationComponent);
|
|
57
|
+
export { DurationComponent };
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtYy10ZWNobm9sb2d5L3VpLWxpYnJhcnkvIiwic291cmNlcyI6WyJwcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2R1cmF0aW9uL2R1cmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBT3BFLElBQWEsaUJBQWlCLEdBQTlCLE1BQWEsaUJBQWlCO0lBVTVCO1FBSkEsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFLbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDM0Q7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3ZDO2FBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtTQUNsQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7S0FFQztJQUNPLGdCQUFnQjtRQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RDLE1BQU0sYUFBYSxHQUFXLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQzdDLE1BQU0sV0FBVyxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO2dCQUN4RCxNQUFNLGFBQWEsR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDakYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDVjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsbUJBQW1CO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7WUFDekIsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjtJQUNILENBQUM7Q0FFRixDQUFBO0FBL0NVO0lBQVIsS0FBSyxFQUFFO3FEQUFvQjtBQUNuQjtJQUFSLEtBQUssRUFBRTtpREFBZ0I7QUFDZjtJQUFSLEtBQUssRUFBRTtvREFBbUI7QUFIaEIsaUJBQWlCO0lBTDdCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxjQUFjO1FBQ3hCLHVUQUF3Qzs7S0FFekMsQ0FBQztHQUNXLGlCQUFpQixDQWdEN0I7U0FoRFksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW1jLWR1cmF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHVyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R1cmF0aW9uLmNvbXBvbmVudC5zY3NzJywgJy4vLi4vdWlsaWJyYXJ5Lm1vZHVsZS5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIER1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHN0YXR1c1RleHQ6IHN0cmluZztcclxuICBASW5wdXQoKSBjYWxsSWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzdGFydFRpbWU6IG51bWJlcjtcclxuXHJcbiAgZGlzcGxheVRpbWU6IHN0cmluZztcclxuICBsYWJlbGxlZEJ5VGV4dCA9ICcnO1xyXG5cclxuICBwcml2YXRlIF90aW1lcklkPzogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuZGlzcGxheVRpbWUgPSAnMDA6MDAvMDA6MDAnO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zdGF0dXNUZXh0ICYmIHRoaXMuY2FsbElkKSB7XHJcbiAgICAgIHRoaXMubGFiZWxsZWRCeVRleHQgPSBgJHt0aGlzLnN0YXR1c1RleHR9ICR7dGhpcy5jYWxsSWR9YDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0dXNUZXh0KSB7XHJcbiAgICAgIHRoaXMubGFiZWxsZWRCeVRleHQgPSB0aGlzLnN0YXR1c1RleHQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2FsbElkKSB7XHJcbiAgICAgIHRoaXMubGFiZWxsZWRCeVRleHQgPSB0aGlzLmNhbGxJZFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RhcnRDYWxsQ291bnRlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbiAgcHJpdmF0ZSBzdGFydENhbGxDb3VudGVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3RpbWVySWQgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl90aW1lcklkID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICBjb25zdCBjYWxsU3RhcnRUaW1lOiBudW1iZXIgPSB0aGlzLnN0YXJ0VGltZTtcclxuICAgICAgICBjb25zdCBjdXJyZW50VGltZTogbnVtYmVyID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZHNQYXNzZWQ6IG51bWJlciA9IE1hdGguZmxvb3IoKGN1cnJlbnRUaW1lKSAtIChjYWxsU3RhcnRUaW1lIC8gMTAwMCkpO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheVRpbWUgPSBNYXRoLmZsb29yKHNlY29uZHNQYXNzZWQgLyA2MCkgKyAnOicgKyAoJzAnICsgKHNlY29uZHNQYXNzZWQgJSA2MCkpLnNsaWNlKC0yKTtcclxuICAgICAgfSwgMTAwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIC8vIGNsZWFyIHRoZSB0aW1lci5cclxuICAgIGlmICh0aGlzLl90aW1lcklkICE9IG51bGwpIHtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl90aW1lcklkKTtcclxuICAgICAgdGhpcy5fdGltZXJJZCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, Input } from '@angular/core';
|
|
3
|
+
import { secondsToHms } from '../../Helpers';
|
|
4
|
+
let HoldtimerComponent = class HoldtimerComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.labelledByText = '';
|
|
7
|
+
this.displayTime = '00:00/00:00';
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
if (this.statusText && this.callId) {
|
|
11
|
+
this.labelledByText = `${this.statusText} ${this.callId}`;
|
|
12
|
+
}
|
|
13
|
+
else if (this.statusText) {
|
|
14
|
+
this.labelledByText = this.statusText;
|
|
15
|
+
}
|
|
16
|
+
else if (this.callId) {
|
|
17
|
+
this.labelledByText = this.callId;
|
|
18
|
+
}
|
|
19
|
+
this.startCallCounter();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @ignore
|
|
23
|
+
*/
|
|
24
|
+
startCallCounter() {
|
|
25
|
+
const pastTimeInSeconds = this.CaculatePastHoldDuration();
|
|
26
|
+
if (this._timerId == null) {
|
|
27
|
+
this._timerId = window.setInterval(() => {
|
|
28
|
+
const currentTime = new Date().getTime() / 1000;
|
|
29
|
+
const secondsPassedCurrentCall = Math.floor((currentTime) - (this.holdCounterData.currentHoldStartTime / 1000));
|
|
30
|
+
this.displayTime = secondsToHms(secondsPassedCurrentCall) +
|
|
31
|
+
'/' + secondsToHms(pastTimeInSeconds + secondsPassedCurrentCall);
|
|
32
|
+
}, 1000);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
CaculatePastHoldDuration() {
|
|
36
|
+
let pastTimeInSeconds = 0;
|
|
37
|
+
if (this.holdCounterData.pastCallDurations) {
|
|
38
|
+
this.holdCounterData.pastCallDurations.forEach((holdTimerIterator) => {
|
|
39
|
+
pastTimeInSeconds += (holdTimerIterator.endTime - holdTimerIterator.startTime) / 1000;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return pastTimeInSeconds;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @ignore
|
|
46
|
+
*/
|
|
47
|
+
ngOnDestroy() {
|
|
48
|
+
// clear the timer.
|
|
49
|
+
if (this._timerId != null) {
|
|
50
|
+
clearInterval(this._timerId);
|
|
51
|
+
this._timerId = null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
__decorate([
|
|
56
|
+
Input()
|
|
57
|
+
], HoldtimerComponent.prototype, "holdCounterData", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
Input()
|
|
60
|
+
], HoldtimerComponent.prototype, "statusText", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
Input()
|
|
63
|
+
], HoldtimerComponent.prototype, "callId", void 0);
|
|
64
|
+
HoldtimerComponent = __decorate([
|
|
65
|
+
Component({
|
|
66
|
+
selector: 'amc-holdtimer',
|
|
67
|
+
template: "<div class=\"holdCallDurationDiv\">\r\n <input\r\n readonly\r\n class=\"holdCallDurationTimer\"\r\n name=\"HoldCallDuration/TotalHoldCallDuration\"\r\n type=\"text\"\r\n tabindex=\"-1\"\r\n title=\"Hold Duration\"\r\n [attr.aria-labelledby]=\"labelledByText || null\"\r\n [value]=\"displayTime\">\r\n</div>\r\n",
|
|
68
|
+
styles: [".holdCallDurationTimer: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:5px}.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}"]
|
|
69
|
+
})
|
|
70
|
+
], HoldtimerComponent);
|
|
71
|
+
export { HoldtimerComponent };
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZHRpbWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbWMtdGVjaG5vbG9neS91aS1saWJyYXJ5LyIsInNvdXJjZXMiOlsicHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9ob2xkdGltZXIvaG9sZHRpbWVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU83QyxJQUFhLGtCQUFrQixHQUEvQixNQUFhLGtCQUFrQjtJQVM3QjtRQUhBLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBSWxCLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNEO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN2QzthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7U0FDbEM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0Q7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUMxRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RDLE1BQU0sV0FBVyxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO2dCQUN4RCxNQUFNLHdCQUF3QixHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDeEgsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsd0JBQXdCLENBQUM7b0JBQ3ZELEdBQUcsR0FBRyxZQUFZLENBQUMsaUJBQWlCLEdBQUcsd0JBQXdCLENBQUMsQ0FBQztZQUNyRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDVjtJQUNILENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFO1lBQzFDLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWdDLEVBQUUsRUFBRTtnQkFDbEYsaUJBQWlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3hGLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLGlCQUFpQixDQUFDO0lBRTNCLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxtQkFBbUI7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtZQUN6QixhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztDQUVGLENBQUE7QUE1RFU7SUFBUixLQUFLLEVBQUU7MkRBQW1DO0FBQ2xDO0lBQVIsS0FBSyxFQUFFO3NEQUFvQjtBQUNuQjtJQUFSLEtBQUssRUFBRTtrREFBZ0I7QUFIYixrQkFBa0I7SUFMOUIsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGVBQWU7UUFDekIsbVZBQXlDOztLQUUxQyxDQUFDO0dBQ1csa0JBQWtCLENBNkQ5QjtTQTdEWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJSG9sZENvdW50ZXJEYXRhLCBJQ2FsbER1cmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VpbGlicmFyeS5tb2RlbCc7XHJcbmltcG9ydCB7IHNlY29uZHNUb0htcyB9IGZyb20gJy4uLy4uL0hlbHBlcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbWMtaG9sZHRpbWVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaG9sZHRpbWVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ob2xkdGltZXIuY29tcG9uZW50LnNjc3MnLCAnLi8uLi91aWxpYnJhcnkubW9kdWxlLnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSG9sZHRpbWVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGhvbGRDb3VudGVyRGF0YTogSUhvbGRDb3VudGVyRGF0YTtcclxuICBASW5wdXQoKSBzdGF0dXNUZXh0OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2FsbElkOiBzdHJpbmc7XHJcblxyXG4gIGRpc3BsYXlUaW1lOiBzdHJpbmc7XHJcbiAgbGFiZWxsZWRCeVRleHQgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfdGltZXJJZD86IG51bWJlcjtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuZGlzcGxheVRpbWUgPSAnMDA6MDAvMDA6MDAnO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zdGF0dXNUZXh0ICYmIHRoaXMuY2FsbElkKSB7XHJcbiAgICAgIHRoaXMubGFiZWxsZWRCeVRleHQgPSBgJHt0aGlzLnN0YXR1c1RleHR9ICR7dGhpcy5jYWxsSWR9YDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0dXNUZXh0KSB7XHJcbiAgICAgIHRoaXMubGFiZWxsZWRCeVRleHQgPSB0aGlzLnN0YXR1c1RleHQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2FsbElkKSB7XHJcbiAgICAgIHRoaXMubGFiZWxsZWRCeVRleHQgPSB0aGlzLmNhbGxJZFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RhcnRDYWxsQ291bnRlcigpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdGFydENhbGxDb3VudGVyKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGFzdFRpbWVJblNlY29uZHMgPSB0aGlzLkNhY3VsYXRlUGFzdEhvbGREdXJhdGlvbigpO1xyXG4gICAgaWYgKHRoaXMuX3RpbWVySWQgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl90aW1lcklkID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICBjb25zdCBjdXJyZW50VGltZTogbnVtYmVyID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZHNQYXNzZWRDdXJyZW50Q2FsbDogbnVtYmVyID0gTWF0aC5mbG9vcigoY3VycmVudFRpbWUpIC0gKHRoaXMuaG9sZENvdW50ZXJEYXRhLmN1cnJlbnRIb2xkU3RhcnRUaW1lIC8gMTAwMCkpO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheVRpbWUgPSBzZWNvbmRzVG9IbXMoc2Vjb25kc1Bhc3NlZEN1cnJlbnRDYWxsKSArXHJcbiAgICAgICAgICAnLycgKyBzZWNvbmRzVG9IbXMocGFzdFRpbWVJblNlY29uZHMgKyBzZWNvbmRzUGFzc2VkQ3VycmVudENhbGwpO1xyXG4gICAgICB9LCAxMDAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgQ2FjdWxhdGVQYXN0SG9sZER1cmF0aW9uKCk6IG51bWJlciB7XHJcbiAgICBsZXQgcGFzdFRpbWVJblNlY29uZHMgPSAwO1xyXG4gICAgaWYgKHRoaXMuaG9sZENvdW50ZXJEYXRhLnBhc3RDYWxsRHVyYXRpb25zKSB7XHJcbiAgICAgIHRoaXMuaG9sZENvdW50ZXJEYXRhLnBhc3RDYWxsRHVyYXRpb25zLmZvckVhY2goKGhvbGRUaW1lckl0ZXJhdG9yOiBJQ2FsbER1cmF0aW9uKSA9PiB7XHJcbiAgICAgICAgcGFzdFRpbWVJblNlY29uZHMgKz0gKGhvbGRUaW1lckl0ZXJhdG9yLmVuZFRpbWUgLSBob2xkVGltZXJJdGVyYXRvci5zdGFydFRpbWUpIC8gMTAwMDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFzdFRpbWVJblNlY29uZHM7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgLy8gY2xlYXIgdGhlIHRpbWVyLlxyXG4gICAgaWYgKHRoaXMuX3RpbWVySWQgIT0gbnVsbCkge1xyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMuX3RpbWVySWQpO1xyXG4gICAgICB0aGlzLl90aW1lcklkID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
3
|
+
/**
|
|
4
|
+
* @ignore
|
|
5
|
+
*/
|
|
6
|
+
let InteractionComponent = class InteractionComponent {
|
|
7
|
+
/**
|
|
8
|
+
* @ignore
|
|
9
|
+
*/
|
|
10
|
+
constructor() {
|
|
11
|
+
this.minimizedChanged = new EventEmitter();
|
|
12
|
+
this.isAgentTyping = new EventEmitter();
|
|
13
|
+
this.newMessage = new EventEmitter();
|
|
14
|
+
this._minimized = false;
|
|
15
|
+
}
|
|
16
|
+
set _minimized(value) {
|
|
17
|
+
this.minimized = value;
|
|
18
|
+
this.minimizedChanged.emit(value);
|
|
19
|
+
}
|
|
20
|
+
get _minimized() {
|
|
21
|
+
return this.minimized;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @ignore
|
|
25
|
+
*/
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @ignore
|
|
30
|
+
*/
|
|
31
|
+
minimize() {
|
|
32
|
+
this._minimized = true;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @ignore
|
|
36
|
+
*/
|
|
37
|
+
maximize() {
|
|
38
|
+
this._minimized = false;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @ignore
|
|
42
|
+
*/
|
|
43
|
+
isConferenceCall() {
|
|
44
|
+
if (this.interaction.parties && this.interaction.parties.length > 1) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
collapseKeypress(event) {
|
|
50
|
+
if (event.code === 'Enter') {
|
|
51
|
+
this.minimize();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
expandKeypress(event) {
|
|
55
|
+
if (event.code === 'Enter') {
|
|
56
|
+
this.maximize();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
__decorate([
|
|
61
|
+
Input()
|
|
62
|
+
], InteractionComponent.prototype, "interaction", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
Output()
|
|
65
|
+
], InteractionComponent.prototype, "minimizedChanged", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
Output()
|
|
68
|
+
], InteractionComponent.prototype, "isAgentTyping", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
Output()
|
|
71
|
+
], InteractionComponent.prototype, "newMessage", void 0);
|
|
72
|
+
InteractionComponent = __decorate([
|
|
73
|
+
Component({
|
|
74
|
+
selector: 'amc-interaction',
|
|
75
|
+
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\r\n <app-chat-box *ngIf=\"interaction.chat\" [isTyping]=\"interaction.chat.isCustomerTyping\" [settings]=\"interaction.chat.settings\"\r\n [messages]=\"interaction.chat.messages\" (isAgentTyping)=\"isAgentTyping.emit($event)\" (newMessage)=\"newMessage.emit($event)\"></app-chat-box>\r\n\r\n <div [id]='interaction.interactionId'> </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 *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",
|
|
76
|
+
styles: [":host{display:block}.phoneNumberContainer{margin-left:5px!important;padding-left:0;display:flex;align-items:center}.cadSection{margin-bottom:5px}.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:5px}.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}"]
|
|
77
|
+
})
|
|
78
|
+
], InteractionComponent);
|
|
79
|
+
export { InteractionComponent };
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtYy10ZWNobm9sb2d5L3VpLWxpYnJhcnkvIiwic291cmNlcyI6WyJwcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRTs7R0FFRztBQU1ILElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQW9CO0lBa0IvQjs7T0FFRztJQUNIO1FBbEJVLHFCQUFnQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUM1QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQWlCaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQWJELElBQUksVUFBVSxDQUFDLEtBQUs7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFTRDs7T0FFRztJQUNILFFBQVE7SUFDUixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuRSxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBb0I7UUFDbkMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQW9CO1FBQ2pDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztDQUVGLENBQUE7QUFqRVU7SUFBUixLQUFLLEVBQUU7eURBQTJCO0FBQ3pCO0lBQVQsTUFBTSxFQUFFOzhEQUE4RDtBQUM3RDtJQUFULE1BQU0sRUFBRTsyREFBNkM7QUFDNUM7SUFBVCxNQUFNLEVBQUU7d0RBQXlDO0FBTHZDLG9CQUFvQjtJQUxoQyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLHVzTEFBMkM7O0tBRTVDLENBQUM7R0FDVyxvQkFBb0IsQ0FtRWhDO1NBbkVZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUludGVyYWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VpbGlicmFyeS5tb2RlbCc7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbWMtaW50ZXJhY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcmFjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJhY3Rpb24uY29tcG9uZW50LnNjc3MnLCAnLi8uLi91aWxpYnJhcnkubW9kdWxlLnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJhY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBpbnRlcmFjdGlvbjogSUludGVyYWN0aW9uO1xyXG4gIEBPdXRwdXQoKSBtaW5pbWl6ZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGlzQWdlbnRUeXBpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIG5ld01lc3NhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgbWluaW1pemVkOiBib29sZWFuO1xyXG4gIHNldCBfbWluaW1pemVkKHZhbHVlKSB7XHJcbiAgICB0aGlzLm1pbmltaXplZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5taW5pbWl6ZWRDaGFuZ2VkLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuICBnZXQgX21pbmltaXplZCgpIHtcclxuICAgIHJldHVybiB0aGlzLm1pbmltaXplZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX21pbmltaXplZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIG1pbmltaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbWluaW1pemVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBtYXhpbWl6ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX21pbmltaXplZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGlzQ29uZmVyZW5jZUNhbGwoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5pbnRlcmFjdGlvbi5wYXJ0aWVzICYmIHRoaXMuaW50ZXJhY3Rpb24ucGFydGllcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY29sbGFwc2VLZXlwcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5taW5pbWl6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwYW5kS2V5cHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jb2RlID09PSAnRW50ZXInKSB7XHJcbiAgICAgIHRoaXMubWF4aW1pemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|