@amc-technology/ui-library 1.0.31 → 1.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/amc-technology-ui-library.metadata.json +1 -1
  2. package/bundles/amc-technology-ui-library.umd.js +1078 -747
  3. package/bundles/amc-technology-ui-library.umd.js.map +1 -56
  4. package/bundles/amc-technology-ui-library.umd.min.js +16 -2
  5. package/bundles/amc-technology-ui-library.umd.min.js.map +1 -274
  6. package/esm2015/amc-technology-ui-library.js +16 -1417
  7. package/esm2015/projects/UILibrary/src/app/Helpers.js +11 -0
  8. package/esm2015/projects/UILibrary/src/app/components/activity/activity.component.js +83 -0
  9. package/esm2015/projects/UILibrary/src/app/components/chat-box/chat-box.component.js +104 -0
  10. package/esm2015/projects/UILibrary/src/app/components/chat-message/chat-message.component.js +39 -0
  11. package/esm2015/projects/UILibrary/src/app/components/disposition/disposition.component.js +49 -0
  12. package/esm2015/projects/UILibrary/src/app/components/duration/duration.component.js +58 -0
  13. package/esm2015/projects/UILibrary/src/app/components/holdtimer/holdtimer.component.js +72 -0
  14. package/esm2015/projects/UILibrary/src/app/components/interaction/interaction.component.js +80 -0
  15. package/esm2015/projects/UILibrary/src/app/components/login/login.component.js +45 -0
  16. package/esm2015/projects/UILibrary/src/app/components/operation/operation.component.js +57 -0
  17. package/esm2015/projects/UILibrary/src/app/components/property/property.component.js +99 -0
  18. package/esm2015/projects/UILibrary/src/app/components/scenario/scenario.component.js +40 -0
  19. package/esm2015/projects/UILibrary/src/app/models/chat.message.js +7 -0
  20. package/esm2015/projects/UILibrary/src/app/models/chat.settings.js +1 -0
  21. package/esm2015/projects/UILibrary/src/app/models/disposition.interface.js +1 -0
  22. package/esm2015/projects/UILibrary/src/app/models/login.interface.js +1 -0
  23. package/esm2015/projects/UILibrary/src/app/models/uilibrary.model.js +40 -0
  24. package/esm2015/projects/UILibrary/src/app/uilibrary.module.js +73 -0
  25. package/esm2015/public_api.js +2 -0
  26. package/esm5/amc-technology-ui-library.js +16 -714
  27. package/esm5/projects/UILibrary/src/app/Helpers.js +11 -0
  28. package/esm5/projects/UILibrary/src/app/components/activity/activity.component.js +84 -0
  29. package/esm5/projects/UILibrary/src/app/components/chat-box/chat-box.component.js +105 -0
  30. package/esm5/projects/UILibrary/src/app/components/chat-message/chat-message.component.js +40 -0
  31. package/esm5/projects/UILibrary/src/app/components/disposition/disposition.component.js +61 -0
  32. package/esm5/projects/UILibrary/src/app/components/duration/duration.component.js +60 -0
  33. package/esm5/projects/UILibrary/src/app/components/holdtimer/holdtimer.component.js +74 -0
  34. package/esm5/projects/UILibrary/src/app/components/interaction/interaction.component.js +85 -0
  35. package/esm5/projects/UILibrary/src/app/components/login/login.component.js +68 -0
  36. package/esm5/projects/UILibrary/src/app/components/operation/operation.component.js +58 -0
  37. package/esm5/projects/UILibrary/src/app/components/property/property.component.js +101 -0
  38. package/esm5/projects/UILibrary/src/app/components/scenario/scenario.component.js +41 -0
  39. package/esm5/projects/UILibrary/src/app/models/chat.message.js +7 -0
  40. package/esm5/projects/UILibrary/src/app/models/chat.settings.js +1 -0
  41. package/esm5/projects/UILibrary/src/app/models/disposition.interface.js +1 -0
  42. package/esm5/projects/UILibrary/src/app/models/login.interface.js +1 -0
  43. package/esm5/projects/UILibrary/src/app/models/uilibrary.model.js +43 -0
  44. package/esm5/projects/UILibrary/src/app/uilibrary.module.js +74 -0
  45. package/esm5/public_api.js +2 -0
  46. package/fesm2015/amc-technology-ui-library.js +813 -0
  47. package/fesm2015/amc-technology-ui-library.js.map +1 -0
  48. package/fesm5/amc-technology-ui-library.js +867 -0
  49. package/fesm5/amc-technology-ui-library.js.map +1 -0
  50. package/package.json +14 -67
  51. package/projects/UILibrary/src/app/components/activity/activity.component.d.ts +10 -10
  52. package/projects/UILibrary/src/app/components/interaction/interaction.component.d.ts +2 -1
  53. package/projects/UILibrary/src/app/components/scenario/scenario.component.d.ts +2 -2
  54. package/webcomponents/webcomponents.js +3 -3
  55. package/esm2015/amc-technology-ui-library.js.map +0 -40
  56. package/esm5/amc-technology-ui-library.js.map +0 -42
@@ -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==