@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,867 @@
1
+ import { __decorate, __values } from 'tslib';
2
+ import { EventEmitter, Input, Output, Component, ViewChild, Injector, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { createCustomElement } from '@angular/elements';
6
+ import { BrowserModule } from '@angular/platform-browser';
7
+ import { ElementZoneStrategyFactory } from 'elements-zone-strategy';
8
+
9
+ /**
10
+ * @ignore
11
+ */
12
+ var InteractionComponent = /** @class */ (function () {
13
+ /**
14
+ * @ignore
15
+ */
16
+ function InteractionComponent() {
17
+ this.minimizedChanged = new EventEmitter();
18
+ this.isAgentTyping = new EventEmitter();
19
+ this.newMessage = new EventEmitter();
20
+ this._minimized = false;
21
+ }
22
+ Object.defineProperty(InteractionComponent.prototype, "_minimized", {
23
+ get: function () {
24
+ return this.minimized;
25
+ },
26
+ set: function (value) {
27
+ this.minimized = value;
28
+ this.minimizedChanged.emit(value);
29
+ },
30
+ enumerable: true,
31
+ configurable: true
32
+ });
33
+ /**
34
+ * @ignore
35
+ */
36
+ InteractionComponent.prototype.ngOnInit = function () {
37
+ };
38
+ /**
39
+ * @ignore
40
+ */
41
+ InteractionComponent.prototype.minimize = function () {
42
+ this._minimized = true;
43
+ };
44
+ /**
45
+ * @ignore
46
+ */
47
+ InteractionComponent.prototype.maximize = function () {
48
+ this._minimized = false;
49
+ };
50
+ /**
51
+ * @ignore
52
+ */
53
+ InteractionComponent.prototype.isConferenceCall = function () {
54
+ if (this.interaction.parties && this.interaction.parties.length > 1) {
55
+ return true;
56
+ }
57
+ return false;
58
+ };
59
+ InteractionComponent.prototype.collapseKeypress = function (event) {
60
+ if (event.code === 'Enter') {
61
+ this.minimize();
62
+ }
63
+ };
64
+ InteractionComponent.prototype.expandKeypress = function (event) {
65
+ if (event.code === 'Enter') {
66
+ this.maximize();
67
+ }
68
+ };
69
+ __decorate([
70
+ Input()
71
+ ], InteractionComponent.prototype, "interaction", void 0);
72
+ __decorate([
73
+ Output()
74
+ ], InteractionComponent.prototype, "minimizedChanged", void 0);
75
+ __decorate([
76
+ Output()
77
+ ], InteractionComponent.prototype, "isAgentTyping", void 0);
78
+ __decorate([
79
+ Output()
80
+ ], InteractionComponent.prototype, "newMessage", void 0);
81
+ InteractionComponent = __decorate([
82
+ Component({
83
+ selector: 'amc-interaction',
84
+ 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",
85
+ 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}"]
86
+ })
87
+ ], InteractionComponent);
88
+ return InteractionComponent;
89
+ }());
90
+
91
+ var ScenarioComponent = /** @class */ (function () {
92
+ function ScenarioComponent() {
93
+ this.minimizedChanged = new EventEmitter();
94
+ this.isAgentTyping = new EventEmitter();
95
+ this.newMessage = new EventEmitter();
96
+ this.afterViewChecked = new EventEmitter();
97
+ }
98
+ ScenarioComponent.prototype.ngAfterViewChecked = function () {
99
+ this.afterViewChecked.emit();
100
+ };
101
+ ScenarioComponent.prototype.onMinimizedChanged = function () {
102
+ this.minimizedChanged.emit();
103
+ };
104
+ __decorate([
105
+ Input()
106
+ ], ScenarioComponent.prototype, "scenario", void 0);
107
+ __decorate([
108
+ Output()
109
+ ], ScenarioComponent.prototype, "minimizedChanged", void 0);
110
+ __decorate([
111
+ Output()
112
+ ], ScenarioComponent.prototype, "isAgentTyping", void 0);
113
+ __decorate([
114
+ Output()
115
+ ], ScenarioComponent.prototype, "newMessage", void 0);
116
+ __decorate([
117
+ Output()
118
+ ], ScenarioComponent.prototype, "afterViewChecked", void 0);
119
+ ScenarioComponent = __decorate([
120
+ Component({
121
+ selector: 'amc-scenario',
122
+ template: "<ng-container *ngIf=\"scenario && scenario.interactions\">\r\n <amc-interaction *ngFor=\"let interaction of scenario.interactions\" [interaction]=\"interaction\"\r\n (minimizedChanged)=\"onMinimizedChanged()\" (isAgentTyping)=\"isAgentTyping.emit($event)\"\r\n (newMessage)=\"newMessage.emit($event)\">\r\n </amc-interaction>\r\n</ng-container>\r\n",
123
+ styles: ["", "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}"]
124
+ })
125
+ ], ScenarioComponent);
126
+ return ScenarioComponent;
127
+ }());
128
+
129
+ /**
130
+ * @ignore
131
+ */
132
+ var OperationComponent = /** @class */ (function () {
133
+ /**
134
+ * @ignore
135
+ */
136
+ function OperationComponent() {
137
+ this.labelledByText = '';
138
+ this.describedByText = '';
139
+ }
140
+ /**
141
+ * @ignore
142
+ */
143
+ OperationComponent.prototype.ngOnInit = function () {
144
+ if (this.statusText && this.callType) {
145
+ this.describedByText = this.statusText + " " + this.callType;
146
+ }
147
+ else if (this.statusText) {
148
+ this.describedByText = this.statusText;
149
+ }
150
+ else if (this.callType) {
151
+ this.describedByText = this.callType;
152
+ }
153
+ if (this.callId) {
154
+ this.labelledByText = this.callId;
155
+ }
156
+ };
157
+ OperationComponent.prototype.operationKeypress = function (event, operation) {
158
+ if (event.code === 'Enter') {
159
+ operation.handler(operation.operationName, operation.operationMetadata);
160
+ }
161
+ };
162
+ __decorate([
163
+ Input()
164
+ ], OperationComponent.prototype, "statusText", void 0);
165
+ __decorate([
166
+ Input()
167
+ ], OperationComponent.prototype, "callId", void 0);
168
+ __decorate([
169
+ Input()
170
+ ], OperationComponent.prototype, "callType", void 0);
171
+ __decorate([
172
+ Input()
173
+ ], OperationComponent.prototype, "operations", void 0);
174
+ OperationComponent = __decorate([
175
+ Component({
176
+ selector: 'amc-operation',
177
+ template: "<div class=\"callOptions\">\r\n <img\r\n class=\"AnswerCallImages\"\r\n tabindex=\"0\"\r\n role=\"button\"\r\n attr.aria-label=\"{{ operation.title }}\"\r\n *ngFor=\"let operation of operations\"\r\n [title]=\"operation.title\"\r\n [src]=\"operation.icon\"\r\n [attr.accesskey]=\"operation.accesskey || null\"\r\n [attr.aria-labelledby]=\"labelledByText || null\"\r\n [attr.aria-describedby]=\"describedByText || null\"\r\n (click)=\"operation.handler(operation.operationName, operation.operationMetadata)\"\r\n (keypress)=\"operationKeypress($event, operation)\"/>\r\n</div>\r\n",
178
+ styles: [".AnswerCallImages:focus{outline:#3296da solid 2px;outline-offset:1px}", "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}"]
179
+ })
180
+ ], OperationComponent);
181
+ return OperationComponent;
182
+ }());
183
+
184
+ var IChatMessageType;
185
+ (function (IChatMessageType) {
186
+ IChatMessageType["AGENT"] = "AGENT";
187
+ IChatMessageType["OTHER_PERSON"] = "OTHER_PERSON";
188
+ IChatMessageType["INFORMATION"] = "INFORMATION";
189
+ })(IChatMessageType || (IChatMessageType = {}));
190
+
191
+ /**
192
+ * A helper method to make instances of [IProperty]
193
+ */
194
+ var Property = /** @class */ (function () {
195
+ /**
196
+ *
197
+ * @param key
198
+ * @param value : if value type is COUNTER then value should be start time in MilliSeconds.
199
+ * @param visible
200
+ * @param valueType
201
+ * @param customOperation
202
+ */
203
+ function Property(key, value, visible, valueType, customOperation) {
204
+ var _this = this;
205
+ /**
206
+ * Operation responsible for generating displayKey and dispkayValur from key and value.
207
+ */
208
+ this.displayOperation = function () {
209
+ _this.displayKey = _this.key;
210
+ _this.displayValue = _this.value;
211
+ };
212
+ this.key = key;
213
+ this.value = value;
214
+ visible != null ? (this.visible = visible) : (this.visible = true);
215
+ valueType != null
216
+ ? (this.displayValueType = valueType)
217
+ : (this.displayValueType = ValueType.STRING);
218
+ this.customOperations = customOperation;
219
+ this.displayOperation();
220
+ }
221
+ return Property;
222
+ }());
223
+ /**
224
+ * enum for Value types of PROPERTY.
225
+ */
226
+ var ValueType;
227
+ (function (ValueType) {
228
+ ValueType[ValueType["STRING"] = 0] = "STRING";
229
+ ValueType[ValueType["COUNTER"] = 1] = "COUNTER";
230
+ })(ValueType || (ValueType = {}));
231
+
232
+ function secondsToHms(seconds_in) {
233
+ seconds_in = Number(seconds_in);
234
+ var h = Math.floor(seconds_in / 3600);
235
+ var m = Math.floor(seconds_in % 3600 / 60);
236
+ var s = Math.floor(seconds_in % 3600 % 60);
237
+ var hDisplay = h > 0 ? h.toString() + ':' : '';
238
+ var mDisplay = m > 0 ? ('0' + m.toString()).slice(-2) + ':' : '00:';
239
+ var sDisplay = s > 0 ? ('0' + s.toString()).slice(-2) : '00';
240
+ return hDisplay + mDisplay + sDisplay;
241
+ }
242
+
243
+ /**
244
+ * @ignore
245
+ */
246
+ var PropertyComponent = /** @class */ (function () {
247
+ /**
248
+ * @ignore
249
+ */
250
+ function PropertyComponent() {
251
+ this.labelledByText = '';
252
+ this.title = '';
253
+ this._timerId = null;
254
+ this.processedDisplayValue = '';
255
+ }
256
+ /**
257
+ * @ignore
258
+ */
259
+ PropertyComponent.prototype.ngOnInit = function () {
260
+ if (this.statusText && this.callType) {
261
+ this.labelledByText = this.statusText + " " + this.callType;
262
+ }
263
+ else if (this.statusText) {
264
+ this.labelledByText = this.statusText;
265
+ }
266
+ else if (this.callType) {
267
+ this.labelledByText = this.callType;
268
+ }
269
+ if (this.callType && this.callId) {
270
+ this.title = this.callType + " " + this.callId;
271
+ }
272
+ else if (this.callType) {
273
+ this.title = this.callType;
274
+ }
275
+ else if (this.callId) {
276
+ this.title = this.callId;
277
+ }
278
+ this.initValues();
279
+ };
280
+ /**
281
+ * @ignore
282
+ */
283
+ PropertyComponent.prototype.initValues = function () {
284
+ if (this.property.displayValueType === ValueType.COUNTER) {
285
+ this.startCallCounter();
286
+ }
287
+ else {
288
+ this.processedDisplayValue = this.property.displayValue;
289
+ }
290
+ };
291
+ /**
292
+ * @ignore
293
+ */
294
+ PropertyComponent.prototype.startCallCounter = function () {
295
+ var _this = this;
296
+ if (this._timerId == null) {
297
+ this._timerId = window.setInterval(function () {
298
+ var callStartTime = _this.property.displayValue;
299
+ var currentTime = new Date().getTime() / 1000;
300
+ var secondsPassed = Math.floor((currentTime) - (callStartTime / 1000));
301
+ _this.processedDisplayValue = secondsToHms(secondsPassed);
302
+ }, 1000);
303
+ }
304
+ };
305
+ /**
306
+ * @ignore
307
+ */
308
+ PropertyComponent.prototype.ngOnDestroy = function () {
309
+ if (this.property.displayValueType === ValueType.COUNTER) {
310
+ // clear the timer.
311
+ if (this._timerId != null) {
312
+ clearInterval(this._timerId);
313
+ this._timerId = null;
314
+ }
315
+ }
316
+ };
317
+ __decorate([
318
+ Input()
319
+ ], PropertyComponent.prototype, "statusText", void 0);
320
+ __decorate([
321
+ Input()
322
+ ], PropertyComponent.prototype, "callId", void 0);
323
+ __decorate([
324
+ Input()
325
+ ], PropertyComponent.prototype, "callType", void 0);
326
+ __decorate([
327
+ Input()
328
+ ], PropertyComponent.prototype, "property", void 0);
329
+ PropertyComponent = __decorate([
330
+ Component({
331
+ selector: 'amc-property',
332
+ template: "<input\r\n readonly\r\n *ngIf=\"!property.customOperations\"\r\n class=\"displayData\"\r\n tabindex=\"0\"\r\n type=\"text\"\r\n [name]=\"processedDisplayValue\"\r\n [title]=\"title || null\"\r\n [attr.aria-labelledby]=\"labelledByText || null\"\r\n [value]=\"processedDisplayValue\"/>\r\n\r\n <input\r\n readonly\r\n *ngIf=\"property.customOperations\"\r\n class=\"cursor displayData\"\r\n type=\"text\"\r\n tabindex=\"0\"\r\n [name]=\"processedDisplayValue\"\r\n [title]=\"title || null\"\r\n [value]=\"processedDisplayValue\"\r\n [attr.aria-labelledby]=\"labelledByText || null\"\r\n (click)=\"property.customOperations.handler(property.customOperations.eventName, property.customOperations.eventMetadata)\" />\r\n",
333
+ styles: ["input{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;border:0}", "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}"]
334
+ })
335
+ ], PropertyComponent);
336
+ return PropertyComponent;
337
+ }());
338
+
339
+ var HoldtimerComponent = /** @class */ (function () {
340
+ function HoldtimerComponent() {
341
+ this.labelledByText = '';
342
+ this.displayTime = '00:00/00:00';
343
+ }
344
+ HoldtimerComponent.prototype.ngOnInit = function () {
345
+ if (this.statusText && this.callId) {
346
+ this.labelledByText = this.statusText + " " + this.callId;
347
+ }
348
+ else if (this.statusText) {
349
+ this.labelledByText = this.statusText;
350
+ }
351
+ else if (this.callId) {
352
+ this.labelledByText = this.callId;
353
+ }
354
+ this.startCallCounter();
355
+ };
356
+ /**
357
+ * @ignore
358
+ */
359
+ HoldtimerComponent.prototype.startCallCounter = function () {
360
+ var _this = this;
361
+ var pastTimeInSeconds = this.CaculatePastHoldDuration();
362
+ if (this._timerId == null) {
363
+ this._timerId = window.setInterval(function () {
364
+ var currentTime = new Date().getTime() / 1000;
365
+ var secondsPassedCurrentCall = Math.floor((currentTime) - (_this.holdCounterData.currentHoldStartTime / 1000));
366
+ _this.displayTime = secondsToHms(secondsPassedCurrentCall) +
367
+ '/' + secondsToHms(pastTimeInSeconds + secondsPassedCurrentCall);
368
+ }, 1000);
369
+ }
370
+ };
371
+ HoldtimerComponent.prototype.CaculatePastHoldDuration = function () {
372
+ var pastTimeInSeconds = 0;
373
+ if (this.holdCounterData.pastCallDurations) {
374
+ this.holdCounterData.pastCallDurations.forEach(function (holdTimerIterator) {
375
+ pastTimeInSeconds += (holdTimerIterator.endTime - holdTimerIterator.startTime) / 1000;
376
+ });
377
+ }
378
+ return pastTimeInSeconds;
379
+ };
380
+ /**
381
+ * @ignore
382
+ */
383
+ HoldtimerComponent.prototype.ngOnDestroy = function () {
384
+ // clear the timer.
385
+ if (this._timerId != null) {
386
+ clearInterval(this._timerId);
387
+ this._timerId = null;
388
+ }
389
+ };
390
+ __decorate([
391
+ Input()
392
+ ], HoldtimerComponent.prototype, "holdCounterData", void 0);
393
+ __decorate([
394
+ Input()
395
+ ], HoldtimerComponent.prototype, "statusText", void 0);
396
+ __decorate([
397
+ Input()
398
+ ], HoldtimerComponent.prototype, "callId", void 0);
399
+ HoldtimerComponent = __decorate([
400
+ Component({
401
+ selector: 'amc-holdtimer',
402
+ 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",
403
+ 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}"]
404
+ })
405
+ ], HoldtimerComponent);
406
+ return HoldtimerComponent;
407
+ }());
408
+
409
+ var DurationComponent = /** @class */ (function () {
410
+ function DurationComponent() {
411
+ this.labelledByText = '';
412
+ this.displayTime = '00:00/00:00';
413
+ }
414
+ DurationComponent.prototype.ngOnInit = function () {
415
+ if (this.statusText && this.callId) {
416
+ this.labelledByText = this.statusText + " " + this.callId;
417
+ }
418
+ else if (this.statusText) {
419
+ this.labelledByText = this.statusText;
420
+ }
421
+ else if (this.callId) {
422
+ this.labelledByText = this.callId;
423
+ }
424
+ this.startCallCounter();
425
+ };
426
+ /**
427
+ * @ignore
428
+ */
429
+ DurationComponent.prototype.startCallCounter = function () {
430
+ var _this = this;
431
+ if (this._timerId == null) {
432
+ this._timerId = window.setInterval(function () {
433
+ var callStartTime = _this.startTime;
434
+ var currentTime = new Date().getTime() / 1000;
435
+ var secondsPassed = Math.floor((currentTime) - (callStartTime / 1000));
436
+ _this.displayTime = Math.floor(secondsPassed / 60) + ':' + ('0' + (secondsPassed % 60)).slice(-2);
437
+ }, 1000);
438
+ }
439
+ };
440
+ DurationComponent.prototype.ngOnDestroy = function () {
441
+ // clear the timer.
442
+ if (this._timerId != null) {
443
+ clearInterval(this._timerId);
444
+ this._timerId = null;
445
+ }
446
+ };
447
+ __decorate([
448
+ Input()
449
+ ], DurationComponent.prototype, "statusText", void 0);
450
+ __decorate([
451
+ Input()
452
+ ], DurationComponent.prototype, "callId", void 0);
453
+ __decorate([
454
+ Input()
455
+ ], DurationComponent.prototype, "startTime", void 0);
456
+ DurationComponent = __decorate([
457
+ Component({
458
+ selector: 'amc-duration',
459
+ 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",
460
+ 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}"]
461
+ })
462
+ ], DurationComponent);
463
+ return DurationComponent;
464
+ }());
465
+
466
+ var ChatBoxComponent = /** @class */ (function () {
467
+ function ChatBoxComponent() {
468
+ this.isTyping = false;
469
+ this.lastCount = -1;
470
+ this._isAgentTyping = false;
471
+ this.isAgentTyping = new EventEmitter();
472
+ this.newMessage = new EventEmitter();
473
+ this.newMessageText = '';
474
+ this.usernameToColor = {};
475
+ this.colors = [
476
+ '#81c784',
477
+ '#ffab91',
478
+ '#f48fb1',
479
+ '#29b6f6',
480
+ '#e1bee7',
481
+ '#9ccc65',
482
+ '#ffc107',
483
+ '#26c6da',
484
+ '#cddc39',
485
+ ];
486
+ this.colorsIndex = 0;
487
+ this.agentColor = '#29b6f6';
488
+ }
489
+ ChatBoxComponent.prototype.ngAfterViewChecked = function () {
490
+ if (this.lastCount !== this.messages.length) {
491
+ this.lastCount = this.messages.length;
492
+ this.scrollToBottom();
493
+ }
494
+ };
495
+ ChatBoxComponent.prototype.getColor = function (message) {
496
+ if (message.type && message.type === IChatMessageType.AGENT) {
497
+ return this.agentColor;
498
+ }
499
+ else if (message.username) {
500
+ if (!this.usernameToColor[message.username]) {
501
+ this.usernameToColor[message.username] = this.colors[this.colorsIndex];
502
+ this.colorsIndex = (this.colorsIndex + 1) % this.colors.length;
503
+ }
504
+ return this.usernameToColor[message.username];
505
+ }
506
+ else {
507
+ return this.colors[0];
508
+ }
509
+ };
510
+ ChatBoxComponent.prototype.shouldAlignRight = function (message) {
511
+ return message.type && message.type === IChatMessageType.AGENT;
512
+ };
513
+ ChatBoxComponent.prototype.sendNewMessage = function () {
514
+ if (this.newMessageText) {
515
+ this.newMessage.emit(this.newMessageText);
516
+ this.newMessageText = '';
517
+ }
518
+ };
519
+ ChatBoxComponent.prototype.onNewMessageFocus = function (event) {
520
+ var isTyping = event && this.newMessageText.length > 0;
521
+ if (isTyping !== this._isAgentTyping) {
522
+ this._isAgentTyping = isTyping;
523
+ this.isAgentTyping.emit(isTyping);
524
+ }
525
+ };
526
+ ChatBoxComponent.prototype.onKeyup = function () {
527
+ var isTyping = this.newMessageText.length > 0;
528
+ if (isTyping !== this._isAgentTyping) {
529
+ this._isAgentTyping = isTyping;
530
+ this.isAgentTyping.emit(isTyping);
531
+ }
532
+ };
533
+ ChatBoxComponent.prototype.scrollToBottom = function () {
534
+ try {
535
+ this.messagesContainer.nativeElement.scrollTop = this.messagesContainer.nativeElement.scrollHeight;
536
+ }
537
+ catch (e) { }
538
+ };
539
+ __decorate([
540
+ Input()
541
+ ], ChatBoxComponent.prototype, "settings", void 0);
542
+ __decorate([
543
+ Input()
544
+ ], ChatBoxComponent.prototype, "isTyping", void 0);
545
+ __decorate([
546
+ Input()
547
+ ], ChatBoxComponent.prototype, "messages", void 0);
548
+ __decorate([
549
+ Output()
550
+ ], ChatBoxComponent.prototype, "isAgentTyping", void 0);
551
+ __decorate([
552
+ Output()
553
+ ], ChatBoxComponent.prototype, "newMessage", void 0);
554
+ __decorate([
555
+ ViewChild('MessagesContainer', { static: true })
556
+ ], ChatBoxComponent.prototype, "messagesContainer", void 0);
557
+ ChatBoxComponent = __decorate([
558
+ Component({
559
+ selector: 'app-chat-box',
560
+ 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",
561
+ 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}}"]
562
+ })
563
+ ], ChatBoxComponent);
564
+ return ChatBoxComponent;
565
+ }());
566
+
567
+ var ChatMessageComponent = /** @class */ (function () {
568
+ function ChatMessageComponent() {
569
+ this.alignRight = false;
570
+ }
571
+ ChatMessageComponent.prototype.ngOnInit = function () {
572
+ };
573
+ __decorate([
574
+ Input()
575
+ ], ChatMessageComponent.prototype, "message", void 0);
576
+ __decorate([
577
+ Input()
578
+ ], ChatMessageComponent.prototype, "alignRight", void 0);
579
+ __decorate([
580
+ Input()
581
+ ], ChatMessageComponent.prototype, "username", void 0);
582
+ __decorate([
583
+ Input()
584
+ ], ChatMessageComponent.prototype, "color", void 0);
585
+ __decorate([
586
+ Input()
587
+ ], ChatMessageComponent.prototype, "timestamp", void 0);
588
+ __decorate([
589
+ Input()
590
+ ], ChatMessageComponent.prototype, "image", void 0);
591
+ __decorate([
592
+ Input()
593
+ ], ChatMessageComponent.prototype, "fallbackImage", void 0);
594
+ ChatMessageComponent = __decorate([
595
+ Component({
596
+ selector: 'app-chat-message',
597
+ 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",
598
+ 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}"]
599
+ })
600
+ ], ChatMessageComponent);
601
+ return ChatMessageComponent;
602
+ }());
603
+
604
+ var DispositionComponent = /** @class */ (function () {
605
+ function DispositionComponent() {
606
+ this.dispositionEmitter = new EventEmitter();
607
+ this.selectedDispositionValue = '';
608
+ this.dispositionName = '';
609
+ }
610
+ DispositionComponent.prototype.ngOnInit = function () {
611
+ var e_1, _a;
612
+ try {
613
+ for (var _b = __values(this.disposition.dispositionMetadata), _c = _b.next(); !_c.done; _c = _b.next()) {
614
+ var metadata = _c.value;
615
+ if (metadata.key === 'callId') {
616
+ this.dispositionName = "disposition_" + metadata.value;
617
+ break;
618
+ }
619
+ }
620
+ }
621
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
622
+ finally {
623
+ try {
624
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
625
+ }
626
+ finally { if (e_1) throw e_1.error; }
627
+ }
628
+ if (this.disposition.checkedDisposition) {
629
+ this.selectedDispositionValue = this.disposition.checkedDisposition;
630
+ }
631
+ };
632
+ DispositionComponent.prototype.submitDisposition = function () {
633
+ var selectedDisposition = {
634
+ dispositionId: this.selectedDispositionValue,
635
+ dispositionName: this.disposition.disposition.get(this.selectedDispositionValue),
636
+ dispositionMetadata: this.disposition.dispositionMetadata
637
+ };
638
+ this.dispositionEmitter.emit(selectedDisposition);
639
+ };
640
+ DispositionComponent.prototype.selectAndSubmitDisposition = function (event, dispositionKey) {
641
+ if (event.code === 'Enter') {
642
+ this.selectedDispositionValue = dispositionKey;
643
+ this.submitDisposition();
644
+ }
645
+ };
646
+ __decorate([
647
+ Input()
648
+ ], DispositionComponent.prototype, "disposition", void 0);
649
+ __decorate([
650
+ Output()
651
+ ], DispositionComponent.prototype, "dispositionEmitter", void 0);
652
+ DispositionComponent = __decorate([
653
+ Component({
654
+ selector: 'amc-disposition',
655
+ 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",
656
+ 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}"]
657
+ })
658
+ ], DispositionComponent);
659
+ return DispositionComponent;
660
+ }());
661
+
662
+ var ActivityComponent = /** @class */ (function () {
663
+ function ActivityComponent() {
664
+ this.ActivitySave = new EventEmitter();
665
+ this.OnNameSelectChange = new EventEmitter();
666
+ this.OnRelatedToChange = new EventEmitter();
667
+ this.OnSubjectChange = new EventEmitter();
668
+ this.OnCallNotesChange = new EventEmitter();
669
+ this.isActivityMaximized = true;
670
+ }
671
+ ActivityComponent.prototype.ngOnInit = function () {
672
+ };
673
+ ActivityComponent.prototype.onNameSelectChange = function (event) {
674
+ this.activity.WhoObject = this.getWho(event.currentTarget.value);
675
+ this.OnNameSelectChange.emit(this.activity);
676
+ };
677
+ ActivityComponent.prototype.parseWhoObject = function (whoObject) {
678
+ return whoObject.objectType + ': ' + whoObject.objectName;
679
+ };
680
+ ActivityComponent.prototype.parseWhatObject = function (whatObject) {
681
+ return whatObject.objectType + ': ' + whatObject.objectName;
682
+ };
683
+ ActivityComponent.prototype.onRelatedToChange = function (event) {
684
+ this.activity.WhatObject = this.getWhat(event.currentTarget.value);
685
+ this.OnRelatedToChange.emit(this.activity);
686
+ };
687
+ ActivityComponent.prototype.onSubjectChange = function (event) {
688
+ this.activity.Subject = event.srcElement.value;
689
+ this.OnSubjectChange.emit(this.activity);
690
+ };
691
+ ActivityComponent.prototype.onCallNotesChange = function (event) {
692
+ this.activity.Subject = event.srcElement.value.trim();
693
+ this.OnCallNotesChange.emit(this.activity);
694
+ };
695
+ ActivityComponent.prototype.getWho = function (id) {
696
+ for (var i = 0; i < this.activity.whoList.length; i++) {
697
+ if (this.activity.whoList[i].objectId === id) {
698
+ return this.activity.whoList[i];
699
+ }
700
+ }
701
+ };
702
+ ActivityComponent.prototype.getWhat = function (id) {
703
+ for (var i = 0; i < this.activity.whatList.length; i++) {
704
+ if (this.activity.whatList[i].objectId === id) {
705
+ return this.activity.whatList[i];
706
+ }
707
+ }
708
+ };
709
+ ActivityComponent.prototype.loadQuickComment = function (value) {
710
+ this.activity.Description = this.activity.Description + this.activity.quickCommentList[value];
711
+ };
712
+ ActivityComponent.prototype.activitySave = function (clearActivityFields) {
713
+ this.ActivitySave.emit(this.activity);
714
+ };
715
+ __decorate([
716
+ Input()
717
+ ], ActivityComponent.prototype, "activity", void 0);
718
+ __decorate([
719
+ Output()
720
+ ], ActivityComponent.prototype, "ActivitySave", void 0);
721
+ __decorate([
722
+ Output()
723
+ ], ActivityComponent.prototype, "OnNameSelectChange", void 0);
724
+ __decorate([
725
+ Output()
726
+ ], ActivityComponent.prototype, "OnRelatedToChange", void 0);
727
+ __decorate([
728
+ Output()
729
+ ], ActivityComponent.prototype, "OnSubjectChange", void 0);
730
+ __decorate([
731
+ Output()
732
+ ], ActivityComponent.prototype, "OnCallNotesChange", void 0);
733
+ ActivityComponent = __decorate([
734
+ Component({
735
+ selector: 'app-activity',
736
+ 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",
737
+ 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}"]
738
+ })
739
+ ], ActivityComponent);
740
+ return ActivityComponent;
741
+ }());
742
+
743
+ var LoginComponent = /** @class */ (function () {
744
+ function LoginComponent() {
745
+ this.loginDetailsProvided = new EventEmitter();
746
+ }
747
+ LoginComponent.prototype.ngOnInit = function () {
748
+ var e_1, _a;
749
+ if (!this.loginData.header) {
750
+ this.loginData.header = 'Login';
751
+ }
752
+ try {
753
+ for (var _b = __values(this.loginData.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
754
+ var field = _c.value;
755
+ if (!field.isInvalid) {
756
+ field.isInvalid = false;
757
+ }
758
+ }
759
+ }
760
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
761
+ finally {
762
+ try {
763
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
764
+ }
765
+ finally { if (e_1) throw e_1.error; }
766
+ }
767
+ };
768
+ LoginComponent.prototype.onLogin = function (loginForm) {
769
+ var e_2, _a;
770
+ try {
771
+ for (var _b = __values(this.loginData.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
772
+ var field = _c.value;
773
+ field.value = loginForm.value[field.name];
774
+ }
775
+ }
776
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
777
+ finally {
778
+ try {
779
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
780
+ }
781
+ finally { if (e_2) throw e_2.error; }
782
+ }
783
+ this.loginDetailsProvided.emit(this.loginData);
784
+ };
785
+ LoginComponent.prototype.focusOutOfInput = function (loginForm, field) {
786
+ if (!loginForm.controls[field.name].valid) {
787
+ field.isInvalid = true;
788
+ }
789
+ // console.log(loginForm);
790
+ // console.log(field);
791
+ };
792
+ __decorate([
793
+ Input()
794
+ ], LoginComponent.prototype, "loginData", void 0);
795
+ __decorate([
796
+ Output()
797
+ ], LoginComponent.prototype, "loginDetailsProvided", void 0);
798
+ LoginComponent = __decorate([
799
+ Component({
800
+ selector: 'amc-login',
801
+ template: "<div class=\"login-container\">\r\n <form (ngSubmit)=\"onLogin(loginForm)\"class=\"login-form\" id=\"login-form\" #loginForm=\"ngForm\">\r\n <div class=\"header-container\">\r\n <label class=\"login-header\" attr.aria-label=\"login\">{{ loginData.header }}</label>\r\n </div>\r\n <div class=\"fields-container\">\r\n <div *ngFor=\"let field of loginData.fields\" class=\"field\">\r\n <label class=\"field-label\">\r\n {{ field.name }}:\r\n </label>\r\n\r\n <input\r\n ngModel\r\n class=\"field-input\"\r\n attr.aria-label=\"{{ field.name }}\"\r\n [name]=\"field.name\"\r\n [type]=\"field.type\"\r\n [value]=\"field.value\"\r\n [placeholder]=\"field.placeholder || ''\"\r\n [required]=\"field.isRequired || false\"\r\n (focusout)=\"focusOutOfInput(loginForm, field)\"/>\r\n\r\n <p class=\"invalid-input\" *ngIf=\"field.isInvalid\">{{ field.invalidMessage }}</p>\r\n </div>\r\n\r\n <button\r\n type=\"submit\"\r\n class=\"form-submit\"\r\n form=\"login-form\"\r\n tabindex=\"0\"\r\n attr.aria-label=\"send\"\r\n [disabled]=\"!loginForm.valid\">Login</button>\r\n </div>\r\n\r\n </form>\r\n</div>\r\n",
802
+ styles: [".login-container{border:1px solid #939598;white-space:nowrap;font-family:Arial;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;text-overflow:ellipsis;position:relative;font-size:.9em;overflow-x:hidden;overflow-y:hidden}.header-container{border-bottom:1px solid #939598;background-color:#f4f5fb;width:100%;height:28px;position:-webkit-sticky;position:sticky}.login-header{margin-top:auto;margin-left:7px;padding:5px;font-weight:700;font-size:.9em}.fields-container{overflow-y:auto;font-size:.9em;padding:5px}.field{display:table-row;margin:5px}.field-label{padding:10px;display:table-cell}.field-input{display:table-cell;border:1px solid #939598;border-radius:5px}.field-input:focus{box-shadow:0 0 5px #38badf}.form-submit{margin:15px 10px 10px;display:table-row;border:1px solid #00a4b0;border-radius:5px;background-color:#00a4b0;color:#f7f7f7;width:10em;height:2em;transition:.2s;font-size:1.1em;position:relative;top:50%;left:50%;transform:translate(-50%,-50%)}.form-submit:hover{background-color:#01858f}.form-submit:disabled{background-color:silver;border-color:silver;color:#fff}input.ng-invalid.ng-touched[required]{border-color:#a94442}.form-submit:focus{outline:#3296da solid 2px;outline-offset:5px}.invalid-input{margin:0;padding:0;color:#a94442;font-size:x-small}"]
803
+ })
804
+ ], LoginComponent);
805
+ return LoginComponent;
806
+ }());
807
+
808
+ var UILibraryModule = /** @class */ (function () {
809
+ function UILibraryModule(injector) {
810
+ this.injector = injector;
811
+ }
812
+ UILibraryModule.prototype.ngDoBootstrap = function (app) {
813
+ if (!customElements.get('amc-webcomponents-scenario')) {
814
+ var strategyFactory = new ElementZoneStrategyFactory(ScenarioComponent, this.injector);
815
+ customElements.define('amc-webcomponents-scenario', createCustomElement(ScenarioComponent, {
816
+ injector: this.injector,
817
+ strategyFactory: strategyFactory
818
+ }));
819
+ }
820
+ if (!customElements.get('amc-webcomponents-disposition')) {
821
+ var strategyFactory = new ElementZoneStrategyFactory(DispositionComponent, this.injector);
822
+ customElements.define('amc-webcomponents-disposition', createCustomElement(DispositionComponent, {
823
+ injector: this.injector,
824
+ strategyFactory: strategyFactory
825
+ }));
826
+ }
827
+ if (!customElements.get('amc-webcomponents-login')) {
828
+ var strategyFactory = new ElementZoneStrategyFactory(LoginComponent, this.injector);
829
+ customElements.define('amc-webcomponents-login', createCustomElement(LoginComponent, {
830
+ injector: this.injector,
831
+ strategyFactory: strategyFactory
832
+ }));
833
+ }
834
+ };
835
+ UILibraryModule.ctorParameters = function () { return [
836
+ { type: Injector }
837
+ ]; };
838
+ UILibraryModule = __decorate([
839
+ NgModule({
840
+ imports: [BrowserModule, CommonModule, FormsModule],
841
+ declarations: [
842
+ InteractionComponent,
843
+ ScenarioComponent,
844
+ OperationComponent,
845
+ PropertyComponent,
846
+ HoldtimerComponent,
847
+ DurationComponent,
848
+ ChatBoxComponent,
849
+ ChatMessageComponent,
850
+ DispositionComponent,
851
+ ActivityComponent,
852
+ LoginComponent
853
+ ],
854
+ entryComponents: [ScenarioComponent, DispositionComponent, LoginComponent],
855
+ bootstrap: [],
856
+ exports: [ScenarioComponent, DispositionComponent, LoginComponent]
857
+ })
858
+ ], UILibraryModule);
859
+ return UILibraryModule;
860
+ }());
861
+
862
+ /**
863
+ * Generated bundle index. Do not edit.
864
+ */
865
+
866
+ export { IChatMessageType, Property, UILibraryModule, ValueType, InteractionComponent as ɵa, ScenarioComponent as ɵb, OperationComponent as ɵc, PropertyComponent as ɵd, HoldtimerComponent as ɵe, DurationComponent as ɵf, ChatBoxComponent as ɵg, ChatMessageComponent as ɵh, DispositionComponent as ɵi, ActivityComponent as ɵj, LoginComponent as ɵk };
867
+ //# sourceMappingURL=amc-technology-ui-library.js.map