@amc-technology/ui-library 1.0.99 → 1.0.101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/amc-technology-ui-library.mjs +5 -0
- package/esm2022/projects/UILibrary/src/app/Helpers.mjs +11 -0
- package/esm2022/projects/UILibrary/src/app/components/activity/activity.component.mjs +79 -0
- package/esm2022/projects/UILibrary/src/app/components/chat-box/chat-box.component.mjs +137 -0
- package/esm2022/projects/UILibrary/src/app/components/chat-message/chat-message.component.mjs +40 -0
- package/esm2022/projects/UILibrary/src/app/components/create/create.component.mjs +34 -0
- package/esm2022/projects/UILibrary/src/app/components/current-activity/current-activity.component.mjs +170 -0
- package/esm2022/projects/UILibrary/src/app/components/disposition/disposition.component.mjs +47 -0
- package/esm2022/projects/UILibrary/src/app/components/duration/duration.component.mjs +58 -0
- package/esm2022/projects/UILibrary/src/app/components/holdtimer/holdtimer.component.mjs +72 -0
- package/esm2022/projects/UILibrary/src/app/components/interaction/interaction.component.mjs +98 -0
- package/esm2022/projects/UILibrary/src/app/components/login/login.component.mjs +41 -0
- package/esm2022/projects/UILibrary/src/app/components/operation/operation.component.mjs +56 -0
- package/esm2022/projects/UILibrary/src/app/components/property/property.component.mjs +106 -0
- package/esm2022/projects/UILibrary/src/app/components/recent-activity/recent-activity.component.mjs +144 -0
- package/esm2022/projects/UILibrary/src/app/components/scenario/scenario.component.mjs +38 -0
- package/esm2022/projects/UILibrary/src/app/components/search-information/search-information.component.mjs +160 -0
- package/esm2022/projects/UILibrary/src/app/models/IActivity.mjs +2 -0
- package/esm2022/projects/UILibrary/src/app/models/IActivityDetails.mjs +2 -0
- package/esm2022/projects/UILibrary/src/app/models/IHoldActivityDetails.mjs +2 -0
- package/esm2022/projects/UILibrary/src/app/models/IInteractionActivityDetails.mjs +2 -0
- package/esm2022/projects/UILibrary/src/app/models/chat.message.mjs +7 -0
- package/esm2022/projects/UILibrary/src/app/models/chat.settings.mjs +2 -0
- package/esm2022/projects/UILibrary/src/app/models/disposition.interface.mjs +2 -0
- package/esm2022/projects/UILibrary/src/app/models/login.interface.mjs +2 -0
- package/esm2022/projects/UILibrary/src/app/models/uilibrary.model.mjs +61 -0
- package/esm2022/projects/UILibrary/src/app/uilibrary.module.mjs +106 -0
- package/esm2022/public_api.mjs +10 -0
- package/fesm2022/amc-technology-ui-library.mjs +1393 -0
- package/fesm2022/amc-technology-ui-library.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +26 -21
- package/projects/UILibrary/src/app/Helpers.d.ts +1 -1
- package/projects/UILibrary/src/app/components/activity/activity.component.d.ts +26 -23
- package/projects/UILibrary/src/app/components/chat-box/chat-box.component.d.ts +38 -35
- package/projects/UILibrary/src/app/components/chat-message/chat-message.component.d.ts +16 -13
- package/projects/UILibrary/src/app/components/create/create.component.d.ts +14 -11
- package/projects/UILibrary/src/app/components/current-activity/current-activity.component.d.ts +37 -34
- package/projects/UILibrary/src/app/components/disposition/disposition.component.d.ts +15 -12
- package/projects/UILibrary/src/app/components/duration/duration.component.d.ts +19 -16
- package/projects/UILibrary/src/app/components/holdtimer/holdtimer.component.d.ts +24 -21
- package/projects/UILibrary/src/app/components/interaction/interaction.component.d.ts +44 -41
- package/projects/UILibrary/src/app/components/login/login.component.d.ts +14 -11
- package/projects/UILibrary/src/app/components/operation/operation.component.d.ts +25 -22
- package/projects/UILibrary/src/app/components/property/property.component.d.ts +44 -41
- package/projects/UILibrary/src/app/components/recent-activity/recent-activity.component.d.ts +38 -35
- package/projects/UILibrary/src/app/components/scenario/scenario.component.d.ts +16 -13
- package/projects/UILibrary/src/app/components/search-information/search-information.component.d.ts +29 -26
- package/projects/UILibrary/src/app/models/IActivity.d.ts +36 -36
- package/projects/UILibrary/src/app/models/IActivityDetails.d.ts +7 -7
- package/projects/UILibrary/src/app/models/IHoldActivityDetails.d.ts +10 -10
- package/projects/UILibrary/src/app/models/IInteractionActivityDetails.d.ts +9 -9
- package/projects/UILibrary/src/app/models/chat.message.d.ts +15 -15
- package/projects/UILibrary/src/app/models/chat.settings.d.ts +6 -6
- package/projects/UILibrary/src/app/models/disposition.interface.d.ts +12 -12
- package/projects/UILibrary/src/app/models/login.interface.d.ts +13 -13
- package/projects/UILibrary/src/app/models/uilibrary.model.d.ts +281 -281
- package/projects/UILibrary/src/app/uilibrary.module.d.ts +30 -7
- package/public_api.d.ts +9 -1
- package/webcomponents/webcomponents.js +3 -3
- package/amc-technology-ui-library.d.ts +0 -19
- package/amc-technology-ui-library.metadata.json +0 -1
- package/bundles/amc-technology-ui-library.umd.js +0 -1653
- package/bundles/amc-technology-ui-library.umd.js.map +0 -1
- package/bundles/amc-technology-ui-library.umd.min.js +0 -16
- package/bundles/amc-technology-ui-library.umd.min.js.map +0 -1
- package/esm2015/amc-technology-ui-library.js +0 -20
- package/esm2015/projects/UILibrary/src/app/Helpers.js +0 -11
- package/esm2015/projects/UILibrary/src/app/components/activity/activity.component.js +0 -83
- package/esm2015/projects/UILibrary/src/app/components/chat-box/chat-box.component.js +0 -139
- package/esm2015/projects/UILibrary/src/app/components/chat-message/chat-message.component.js +0 -44
- package/esm2015/projects/UILibrary/src/app/components/create/create.component.js +0 -35
- package/esm2015/projects/UILibrary/src/app/components/current-activity/current-activity.component.js +0 -169
- package/esm2015/projects/UILibrary/src/app/components/disposition/disposition.component.js +0 -49
- package/esm2015/projects/UILibrary/src/app/components/duration/duration.component.js +0 -58
- package/esm2015/projects/UILibrary/src/app/components/holdtimer/holdtimer.component.js +0 -72
- package/esm2015/projects/UILibrary/src/app/components/interaction/interaction.component.js +0 -93
- package/esm2015/projects/UILibrary/src/app/components/login/login.component.js +0 -43
- package/esm2015/projects/UILibrary/src/app/components/operation/operation.component.js +0 -57
- package/esm2015/projects/UILibrary/src/app/components/property/property.component.js +0 -99
- package/esm2015/projects/UILibrary/src/app/components/recent-activity/recent-activity.component.js +0 -142
- package/esm2015/projects/UILibrary/src/app/components/scenario/scenario.component.js +0 -43
- package/esm2015/projects/UILibrary/src/app/components/search-information/search-information.component.js +0 -155
- package/esm2015/projects/UILibrary/src/app/models/IActivity.js +0 -1
- package/esm2015/projects/UILibrary/src/app/models/IActivityDetails.js +0 -1
- package/esm2015/projects/UILibrary/src/app/models/IHoldActivityDetails.js +0 -1
- package/esm2015/projects/UILibrary/src/app/models/IInteractionActivityDetails.js +0 -1
- package/esm2015/projects/UILibrary/src/app/models/chat.message.js +0 -7
- package/esm2015/projects/UILibrary/src/app/models/chat.settings.js +0 -1
- package/esm2015/projects/UILibrary/src/app/models/disposition.interface.js +0 -1
- package/esm2015/projects/UILibrary/src/app/models/login.interface.js +0 -1
- package/esm2015/projects/UILibrary/src/app/models/uilibrary.model.js +0 -40
- package/esm2015/projects/UILibrary/src/app/uilibrary.module.js +0 -83
- package/esm2015/public_api.js +0 -2
- package/esm5/amc-technology-ui-library.js +0 -20
- package/esm5/projects/UILibrary/src/app/Helpers.js +0 -11
- package/esm5/projects/UILibrary/src/app/components/activity/activity.component.js +0 -84
- package/esm5/projects/UILibrary/src/app/components/chat-box/chat-box.component.js +0 -140
- package/esm5/projects/UILibrary/src/app/components/chat-message/chat-message.component.js +0 -45
- package/esm5/projects/UILibrary/src/app/components/create/create.component.js +0 -36
- package/esm5/projects/UILibrary/src/app/components/current-activity/current-activity.component.js +0 -174
- package/esm5/projects/UILibrary/src/app/components/disposition/disposition.component.js +0 -61
- package/esm5/projects/UILibrary/src/app/components/duration/duration.component.js +0 -60
- package/esm5/projects/UILibrary/src/app/components/holdtimer/holdtimer.component.js +0 -74
- package/esm5/projects/UILibrary/src/app/components/interaction/interaction.component.js +0 -98
- package/esm5/projects/UILibrary/src/app/components/login/login.component.js +0 -66
- package/esm5/projects/UILibrary/src/app/components/operation/operation.component.js +0 -58
- package/esm5/projects/UILibrary/src/app/components/property/property.component.js +0 -101
- package/esm5/projects/UILibrary/src/app/components/recent-activity/recent-activity.component.js +0 -144
- package/esm5/projects/UILibrary/src/app/components/scenario/scenario.component.js +0 -44
- package/esm5/projects/UILibrary/src/app/components/search-information/search-information.component.js +0 -156
- package/esm5/projects/UILibrary/src/app/models/IActivity.js +0 -1
- package/esm5/projects/UILibrary/src/app/models/IActivityDetails.js +0 -1
- package/esm5/projects/UILibrary/src/app/models/IHoldActivityDetails.js +0 -1
- package/esm5/projects/UILibrary/src/app/models/IInteractionActivityDetails.js +0 -1
- package/esm5/projects/UILibrary/src/app/models/chat.message.js +0 -7
- package/esm5/projects/UILibrary/src/app/models/chat.settings.js +0 -1
- package/esm5/projects/UILibrary/src/app/models/disposition.interface.js +0 -1
- package/esm5/projects/UILibrary/src/app/models/login.interface.js +0 -1
- package/esm5/projects/UILibrary/src/app/models/uilibrary.model.js +0 -43
- package/esm5/projects/UILibrary/src/app/uilibrary.module.js +0 -84
- package/esm5/public_api.js +0 -2
- package/fesm2015/amc-technology-ui-library.js +0 -1360
- package/fesm2015/amc-technology-ui-library.js.map +0 -1
- package/fesm5/amc-technology-ui-library.js +0 -1423
- package/fesm5/amc-technology-ui-library.js.map +0 -1
- package/src/typings.d.ts +0 -5
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "../operation/operation.component";
|
|
5
|
+
import * as i3 from "../property/property.component";
|
|
6
|
+
import * as i4 from "../holdtimer/holdtimer.component";
|
|
7
|
+
import * as i5 from "../duration/duration.component";
|
|
8
|
+
import * as i6 from "../chat-box/chat-box.component";
|
|
9
|
+
/**
|
|
10
|
+
* @ignore
|
|
11
|
+
*/
|
|
12
|
+
export class InteractionComponent {
|
|
13
|
+
interaction;
|
|
14
|
+
newMsgs;
|
|
15
|
+
minimizedChanged = new EventEmitter();
|
|
16
|
+
isAgentTyping = new EventEmitter();
|
|
17
|
+
newMessage = new EventEmitter();
|
|
18
|
+
/**
|
|
19
|
+
* @ignore
|
|
20
|
+
*/
|
|
21
|
+
minimized;
|
|
22
|
+
set _minimized(value) {
|
|
23
|
+
this.minimized = value;
|
|
24
|
+
this.minimizedChanged.emit(value);
|
|
25
|
+
}
|
|
26
|
+
get _minimized() {
|
|
27
|
+
return this.minimized;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @ignore
|
|
31
|
+
*/
|
|
32
|
+
constructor() {
|
|
33
|
+
this._minimized = false;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @ignore
|
|
37
|
+
*/
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @ignore
|
|
42
|
+
*/
|
|
43
|
+
minimize() {
|
|
44
|
+
this._minimized = true;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @ignore
|
|
48
|
+
*/
|
|
49
|
+
maximize() {
|
|
50
|
+
this._minimized = false;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @ignore
|
|
54
|
+
*/
|
|
55
|
+
isConferenceCall() {
|
|
56
|
+
if (this.interaction.parties && this.interaction.parties.length > 1) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
collapseKeypress(event) {
|
|
62
|
+
if (event.code === 'Enter') {
|
|
63
|
+
this.minimize();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
expandKeypress(event) {
|
|
67
|
+
if (event.code === 'Enter') {
|
|
68
|
+
this.maximize();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
clickEvent(id) {
|
|
72
|
+
document.getElementById(id).className = 'success';
|
|
73
|
+
if (localStorage.getItem('focusedPanel') === null) {
|
|
74
|
+
localStorage.setItem('focusedPanel', id);
|
|
75
|
+
}
|
|
76
|
+
else if (localStorage.getItem('focusedPanel') != id) {
|
|
77
|
+
document.getElementById(localStorage.getItem('focusedPanel')).className = 'AnswerCallFocused';
|
|
78
|
+
localStorage.setItem('focusedPanel', id);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: InteractionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: InteractionComponent, selector: "amc-interaction", inputs: { interaction: "interaction", newMsgs: "newMsgs" }, outputs: { minimizedChanged: "minimizedChanged", isAgentTyping: "isAgentTyping", newMessage: "newMessage" }, ngImport: i0, template: "<div class=\"AnswerCallFocused\" [id]=\"interaction.interactionId\">\r\n <div class=\"editor callHeaderTop\" (click)=\"clickEvent(interaction.interactionId)\">\r\n <img class=\"statusImage\" aria-hidden=\"true\" [src]=\"interaction.UIHeadersData.statusUrl\" (click)=\"interaction.UIHeadersData.focusHandler.handler(interaction.UIHeadersData.focusHandler.operationName, interaction.UIHeadersData.focusHandler.operationMetadata)\" />\r\n <label class=\"statusText\">\r\n <b [id]=\"interaction.UIHeadersData.statusText\">{{ interaction.UIHeadersData.statusText }}</b>\r\n </label>\r\n <label class=\"verticalDivider\">|</label>\r\n <label class=\"directionText\" *ngIf=\"!interaction.UIHeadersData.displayHoldCounter\">{{ interaction.UIHeadersData.directionText }}</label>\r\n <div class=\"holdCallDurationDiv\" *ngIf=\"interaction.UIHeadersData.displayHoldCounter\">\r\n <amc-holdtimer [holdCounterData]=\"interaction.UIHeadersData.holdCounterData\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\"></amc-holdtimer>\r\n </div>\r\n <img class=\"ViewExpandImage\" [src]=\"interaction.UIHeadersData.minimizeUrl\" alt=\"Minimize\" (click)=\"minimize()\" (keypress)=\"collapseKeypress($event)\" *ngIf=\"!_minimized\" tabindex=\"0\" role=\"button\" aria-label=\"collapse Call Section\">\r\n <img class=\"ViewCollapseImage\" [src]=\"interaction.UIHeadersData.maximizeUrl\" alt=\"Maximize\" (click)=\"maximize()\" (keypress)=\"expandKeypress($event)\" *ngIf=\"_minimized\" tabindex=\"0\" role=\"button\" aria-label=\"expand Call Section\">\r\n <div class=\"DurationDiv\" *ngIf=\"interaction.displayCallTimer\">\r\n <amc-duration [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [startTime]=\"interaction.startTime\"></amc-duration>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!_minimized\">\r\n\r\n <div *ngIf=\"!isConferenceCall()\">\r\n <div class=\"editor phoneNumberContainer\">\r\n <input class=\"callImage\" type=\"image\" [src]=\"interaction.subheaderData.image.href\" [title]=\"interaction.subheaderData.tooltip || ''\" tabindex=\"-1\">\r\n <input class=\"editor phoneNumberValue\" [attr.aria-labelledby]=\"interaction.UIHeadersData.statusText + ' ' + interaction.subheaderData.value\" readonly type=\"text\" [value]=\"interaction.subheaderData.value\" [id]=\"interaction.subheaderData.value\" tabindex=\"-1\">\r\n </div>\r\n\r\n <div class=\"cadSection\">\r\n <ng-container *ngFor=\"let property of interaction.properties\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <label class=\"col1\" [title]=\"property.displayKey\">{{property.displayKey}}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let property of interaction.associatedData\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" [title]=\"property.displayKey\">{{property.displayKey}}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <amc-operation *ngIf=\"interaction.chat\" id=\"close-chat\" [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n <app-chat-box *ngIf=\"interaction.chat\" [isTyping]=\"interaction.chat.isCustomerTyping\" [settings]=\"interaction.chat.settings\"\r\n [messages]=\"interaction.chat.messages\" [newMsgs]=\"newMsgs\" (isAgentTyping)=\"isAgentTyping.emit($event)\" (newMessage)=\"newMessage.emit($event)\"></app-chat-box>\r\n\r\n <div [id]='interaction.interactionId'> </div>\r\n <amc-operation *ngIf=\"!interaction.chat\" [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n </div>\r\n\r\n <div *ngIf=\"isConferenceCall()\">\r\n <div *ngFor=\"let party of interaction.parties\">\r\n <div class=\"editor phoneNumberContainer\">\r\n <input class=\"callImage\" type=\"image\" [src]=\"party.header.image.href\" [title]=\"party.header.tooltip || ''\" tabindex=\"-1\">\r\n <input class=\"editor phoneNumberValue\" readonly type=\"text\" [value]=\"party.header.value\" tabindex=\"-1\">\r\n </div>\r\n\r\n <div class=\"grid-container\">\r\n <ng-container *ngFor=\"let property of party.properties\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <label class=\"col1\" [title]=\"property.displayKey\">{{ property.displayKey }}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"party.header.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <amc-operation [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"party.header.value\" [operations]=\"party.operations\"></amc-operation>\r\n <div class=\"AnswerCallFocused\"></div>\r\n </div>\r\n <amc-operation [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.phoneNumberContainer{margin-left:5px!important;padding-left:0;display:flex;align-items:center}.cadSection{margin-bottom:5px}#close-chat{-moz-text-align-last:end;text-align-last:end}.grid-container{margin-left:5px;display:grid;grid-template-columns:auto 1fr;grid-column-gap:10px;max-width:calc(100% - 5px);overflow:hidden}.col1{grid-column:1/2}.col2{grid-column:2/3}.ViewExpandImage{margin:3px}.ViewExpandImage:focus{outline:2px solid rgb(50,150,218);outline-offset:0px}.ViewCollapseImage{margin:3px}.ViewCollapseImage:focus{outline:2px solid rgb(50,150,218);outline-offset:0px}.callImage{cursor:default}.phoneNumberValue:focus{outline-style:none}#call123{border:4px!important}.success{border:2px solid #00adbb!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.OperationComponent, selector: "amc-operation", inputs: ["statusText", "callId", "callType", "operations"] }, { kind: "component", type: i3.PropertyComponent, selector: "amc-property", inputs: ["statusText", "callId", "callType", "property"] }, { kind: "component", type: i4.HoldtimerComponent, selector: "amc-holdtimer", inputs: ["holdCounterData", "statusText", "callId"] }, { kind: "component", type: i5.DurationComponent, selector: "amc-duration", inputs: ["statusText", "callId", "startTime"] }, { kind: "component", type: i6.ChatBoxComponent, selector: "app-chat-box", inputs: ["settings", "isTyping", "messages", "newMsgs"], outputs: ["isAgentTyping", "newMessage"] }] });
|
|
83
|
+
}
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: InteractionComponent, decorators: [{
|
|
85
|
+
type: Component,
|
|
86
|
+
args: [{ selector: 'amc-interaction', template: "<div class=\"AnswerCallFocused\" [id]=\"interaction.interactionId\">\r\n <div class=\"editor callHeaderTop\" (click)=\"clickEvent(interaction.interactionId)\">\r\n <img class=\"statusImage\" aria-hidden=\"true\" [src]=\"interaction.UIHeadersData.statusUrl\" (click)=\"interaction.UIHeadersData.focusHandler.handler(interaction.UIHeadersData.focusHandler.operationName, interaction.UIHeadersData.focusHandler.operationMetadata)\" />\r\n <label class=\"statusText\">\r\n <b [id]=\"interaction.UIHeadersData.statusText\">{{ interaction.UIHeadersData.statusText }}</b>\r\n </label>\r\n <label class=\"verticalDivider\">|</label>\r\n <label class=\"directionText\" *ngIf=\"!interaction.UIHeadersData.displayHoldCounter\">{{ interaction.UIHeadersData.directionText }}</label>\r\n <div class=\"holdCallDurationDiv\" *ngIf=\"interaction.UIHeadersData.displayHoldCounter\">\r\n <amc-holdtimer [holdCounterData]=\"interaction.UIHeadersData.holdCounterData\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\"></amc-holdtimer>\r\n </div>\r\n <img class=\"ViewExpandImage\" [src]=\"interaction.UIHeadersData.minimizeUrl\" alt=\"Minimize\" (click)=\"minimize()\" (keypress)=\"collapseKeypress($event)\" *ngIf=\"!_minimized\" tabindex=\"0\" role=\"button\" aria-label=\"collapse Call Section\">\r\n <img class=\"ViewCollapseImage\" [src]=\"interaction.UIHeadersData.maximizeUrl\" alt=\"Maximize\" (click)=\"maximize()\" (keypress)=\"expandKeypress($event)\" *ngIf=\"_minimized\" tabindex=\"0\" role=\"button\" aria-label=\"expand Call Section\">\r\n <div class=\"DurationDiv\" *ngIf=\"interaction.displayCallTimer\">\r\n <amc-duration [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [startTime]=\"interaction.startTime\"></amc-duration>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!_minimized\">\r\n\r\n <div *ngIf=\"!isConferenceCall()\">\r\n <div class=\"editor phoneNumberContainer\">\r\n <input class=\"callImage\" type=\"image\" [src]=\"interaction.subheaderData.image.href\" [title]=\"interaction.subheaderData.tooltip || ''\" tabindex=\"-1\">\r\n <input class=\"editor phoneNumberValue\" [attr.aria-labelledby]=\"interaction.UIHeadersData.statusText + ' ' + interaction.subheaderData.value\" readonly type=\"text\" [value]=\"interaction.subheaderData.value\" [id]=\"interaction.subheaderData.value\" tabindex=\"-1\">\r\n </div>\r\n\r\n <div class=\"cadSection\">\r\n <ng-container *ngFor=\"let property of interaction.properties\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <label class=\"col1\" [title]=\"property.displayKey\">{{property.displayKey}}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let property of interaction.associatedData\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" [title]=\"property.displayKey\">{{property.displayKey}}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <amc-operation *ngIf=\"interaction.chat\" id=\"close-chat\" [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n <app-chat-box *ngIf=\"interaction.chat\" [isTyping]=\"interaction.chat.isCustomerTyping\" [settings]=\"interaction.chat.settings\"\r\n [messages]=\"interaction.chat.messages\" [newMsgs]=\"newMsgs\" (isAgentTyping)=\"isAgentTyping.emit($event)\" (newMessage)=\"newMessage.emit($event)\"></app-chat-box>\r\n\r\n <div [id]='interaction.interactionId'> </div>\r\n <amc-operation *ngIf=\"!interaction.chat\" [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n </div>\r\n\r\n <div *ngIf=\"isConferenceCall()\">\r\n <div *ngFor=\"let party of interaction.parties\">\r\n <div class=\"editor phoneNumberContainer\">\r\n <input class=\"callImage\" type=\"image\" [src]=\"party.header.image.href\" [title]=\"party.header.tooltip || ''\" tabindex=\"-1\">\r\n <input class=\"editor phoneNumberValue\" readonly type=\"text\" [value]=\"party.header.value\" tabindex=\"-1\">\r\n </div>\r\n\r\n <div class=\"grid-container\">\r\n <ng-container *ngFor=\"let property of party.properties\">\r\n <ng-container *ngIf=\"property.visible\">\r\n <label class=\"col1\" [title]=\"property.displayKey\">{{ property.displayKey }}</label>\r\n <amc-property [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"party.header.value\" class=\"col2\" [property]=\"property\"> </amc-property>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <amc-operation [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"party.header.value\" [operations]=\"party.operations\"></amc-operation>\r\n <div class=\"AnswerCallFocused\"></div>\r\n </div>\r\n <amc-operation [callType]=\"interaction.UIHeadersData.directionText\" [statusText]=\"interaction.UIHeadersData.statusText\" [callId]=\"interaction.subheaderData.value\" [operations]=\"interaction.operations\"></amc-operation>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.phoneNumberContainer{margin-left:5px!important;padding-left:0;display:flex;align-items:center}.cadSection{margin-bottom:5px}#close-chat{-moz-text-align-last:end;text-align-last:end}.grid-container{margin-left:5px;display:grid;grid-template-columns:auto 1fr;grid-column-gap:10px;max-width:calc(100% - 5px);overflow:hidden}.col1{grid-column:1/2}.col2{grid-column:2/3}.ViewExpandImage{margin:3px}.ViewExpandImage:focus{outline:2px solid rgb(50,150,218);outline-offset:0px}.ViewCollapseImage{margin:3px}.ViewCollapseImage:focus{outline:2px solid rgb(50,150,218);outline-offset:0px}.callImage{cursor:default}.phoneNumberValue:focus{outline-style:none}#call123{border:4px!important}.success{border:2px solid #00adbb!important}\n"] }]
|
|
87
|
+
}], ctorParameters: function () { return []; }, propDecorators: { interaction: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], newMsgs: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], minimizedChanged: [{
|
|
92
|
+
type: Output
|
|
93
|
+
}], isAgentTyping: [{
|
|
94
|
+
type: Output
|
|
95
|
+
}], newMessage: [{
|
|
96
|
+
type: Output
|
|
97
|
+
}] } });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTJCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQUV4Rzs7R0FFRztBQU1ILE1BQU0sT0FBTyxvQkFBb0I7SUFFdEIsV0FBVyxDQUFlO0lBQzFCLE9BQU8sQ0FBaUI7SUFDdkIsZ0JBQWdCLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDN0QsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFDNUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDakQ7O01BRUU7SUFDSCxTQUFTLENBQVU7SUFDbkIsSUFBSSxVQUFVLENBQUMsS0FBSztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0g7UUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO0lBQ1IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQW9CO1FBQ25DLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFvQjtRQUNqQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsRUFBRTtRQUNYLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUNsRCxJQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2hELFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzFDO2FBQU0sSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBQztZQUNwRCxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUM7WUFDOUYsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDO3VHQTVFVSxvQkFBb0I7MkZBQXBCLG9CQUFvQixnT0NWakMsd2xNQTBFQTs7MkZEaEVhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUI7MEVBTWxCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJQ2hhdE1lc3NhZ2UsIElJbnRlcmFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy91aWxpYnJhcnkubW9kZWwnO1xyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbWMtaW50ZXJhY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcmFjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJhY3Rpb24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJhY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBpbnRlcmFjdGlvbjogSUludGVyYWN0aW9uO1xyXG4gIEBJbnB1dCgpIG5ld01zZ3M6IElDaGF0TWVzc2FnZVtdO1xyXG4gIEBPdXRwdXQoKSBtaW5pbWl6ZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGlzQWdlbnRUeXBpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIG5ld01lc3NhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIG1pbmltaXplZDogYm9vbGVhbjtcclxuICBzZXQgX21pbmltaXplZCh2YWx1ZSkge1xyXG4gICAgdGhpcy5taW5pbWl6ZWQgPSB2YWx1ZTtcclxuICAgIHRoaXMubWluaW1pemVkQ2hhbmdlZC5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IF9taW5pbWl6ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5taW5pbWl6ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9taW5pbWl6ZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBtaW5pbWl6ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX21pbmltaXplZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgbWF4aW1pemUoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9taW5pbWl6ZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBpc0NvbmZlcmVuY2VDYWxsKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuaW50ZXJhY3Rpb24ucGFydGllcyAmJiB0aGlzLmludGVyYWN0aW9uLnBhcnRpZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbGxhcHNlS2V5cHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jb2RlID09PSAnRW50ZXInKSB7XHJcbiAgICAgIHRoaXMubWluaW1pemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4cGFuZEtleXByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLm1heGltaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGlja0V2ZW50KGlkKXtcclxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAnc3VjY2Vzcyc7XHJcbiAgICBpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZm9jdXNlZFBhbmVsJykgPT09IG51bGwpIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2ZvY3VzZWRQYW5lbCcsIGlkKTtcclxuICAgIH0gZWxzZSBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZvY3VzZWRQYW5lbCcpICE9IGlkKXtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZvY3VzZWRQYW5lbCcpKS5jbGFzc05hbWUgPSAnQW5zd2VyQ2FsbEZvY3VzZWQnO1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZm9jdXNlZFBhbmVsJywgaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiQW5zd2VyQ2FsbEZvY3VzZWRcIiBbaWRdPVwiaW50ZXJhY3Rpb24uaW50ZXJhY3Rpb25JZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJlZGl0b3IgY2FsbEhlYWRlclRvcFwiIChjbGljayk9XCJjbGlja0V2ZW50KGludGVyYWN0aW9uLmludGVyYWN0aW9uSWQpXCI+XHJcbiAgICA8aW1nIGNsYXNzPVwic3RhdHVzSW1hZ2VcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbc3JjXT1cImludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEuc3RhdHVzVXJsXCIgKGNsaWNrKT1cImludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEuZm9jdXNIYW5kbGVyLmhhbmRsZXIoaW50ZXJhY3Rpb24uVUlIZWFkZXJzRGF0YS5mb2N1c0hhbmRsZXIub3BlcmF0aW9uTmFtZSwgaW50ZXJhY3Rpb24uVUlIZWFkZXJzRGF0YS5mb2N1c0hhbmRsZXIub3BlcmF0aW9uTWV0YWRhdGEpXCIgLz5cclxuICAgIDxsYWJlbCBjbGFzcz1cInN0YXR1c1RleHRcIj5cclxuICAgICAgPGIgW2lkXT1cImludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEuc3RhdHVzVGV4dFwiPnt7IGludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEuc3RhdHVzVGV4dCB9fTwvYj5cclxuICAgIDwvbGFiZWw+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJ2ZXJ0aWNhbERpdmlkZXJcIj58PC9sYWJlbD5cclxuICAgIDxsYWJlbCBjbGFzcz1cImRpcmVjdGlvblRleHRcIiAqbmdJZj1cIiFpbnRlcmFjdGlvbi5VSUhlYWRlcnNEYXRhLmRpc3BsYXlIb2xkQ291bnRlclwiPnt7IGludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEuZGlyZWN0aW9uVGV4dCB9fTwvbGFiZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaG9sZENhbGxEdXJhdGlvbkRpdlwiICpuZ0lmPVwiaW50ZXJhY3Rpb24uVUlIZWFkZXJzRGF0YS5kaXNwbGF5SG9sZENvdW50ZXJcIj5cclxuICAgICAgPGFtYy1ob2xkdGltZXIgW2hvbGRDb3VudGVyRGF0YV09XCJpbnRlcmFjdGlvbi5VSUhlYWRlcnNEYXRhLmhvbGRDb3VudGVyRGF0YVwiIFtzdGF0dXNUZXh0XT1cImludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEuc3RhdHVzVGV4dFwiIFtjYWxsSWRdPVwiaW50ZXJhY3Rpb24uc3ViaGVhZGVyRGF0YS52YWx1ZVwiPjwvYW1jLWhvbGR0aW1lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGltZyBjbGFzcz1cIlZpZXdFeHBhbmRJbWFnZVwiIFtzcmNdPVwiaW50ZXJhY3Rpb24uVUlIZWFkZXJzRGF0YS5taW5pbWl6ZVVybFwiIGFsdD1cIk1pbmltaXplXCIgKGNsaWNrKT1cIm1pbmltaXplKClcIiAoa2V5cHJlc3MpPVwiY29sbGFwc2VLZXlwcmVzcygkZXZlbnQpXCIgKm5nSWY9XCIhX21pbmltaXplZFwiIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiY29sbGFwc2UgQ2FsbCBTZWN0aW9uXCI+XHJcbiAgICA8aW1nIGNsYXNzPVwiVmlld0NvbGxhcHNlSW1hZ2VcIiBbc3JjXT1cImludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEubWF4aW1pemVVcmxcIiBhbHQ9XCJNYXhpbWl6ZVwiIChjbGljayk9XCJtYXhpbWl6ZSgpXCIgKGtleXByZXNzKT1cImV4cGFuZEtleXByZXNzKCRldmVudClcIiAqbmdJZj1cIl9taW5pbWl6ZWRcIiB0YWJpbmRleD1cIjBcIiByb2xlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cImV4cGFuZCBDYWxsIFNlY3Rpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJEdXJhdGlvbkRpdlwiICpuZ0lmPVwiaW50ZXJhY3Rpb24uZGlzcGxheUNhbGxUaW1lclwiPlxyXG4gICAgICA8YW1jLWR1cmF0aW9uIFtzdGF0dXNUZXh0XT1cImludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEuc3RhdHVzVGV4dFwiIFtjYWxsSWRdPVwiaW50ZXJhY3Rpb24uc3ViaGVhZGVyRGF0YS52YWx1ZVwiIFtzdGFydFRpbWVdPVwiaW50ZXJhY3Rpb24uc3RhcnRUaW1lXCI+PC9hbWMtZHVyYXRpb24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFfbWluaW1pemVkXCI+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIiFpc0NvbmZlcmVuY2VDYWxsKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVkaXRvciBwaG9uZU51bWJlckNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImNhbGxJbWFnZVwiIHR5cGU9XCJpbWFnZVwiIFtzcmNdPVwiaW50ZXJhY3Rpb24uc3ViaGVhZGVyRGF0YS5pbWFnZS5ocmVmXCIgW3RpdGxlXT1cImludGVyYWN0aW9uLnN1YmhlYWRlckRhdGEudG9vbHRpcCB8fCAnJ1wiIHRhYmluZGV4PVwiLTFcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJlZGl0b3IgcGhvbmVOdW1iZXJWYWx1ZVwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpbnRlcmFjdGlvbi5VSUhlYWRlcnNEYXRhLnN0YXR1c1RleHQgKyAnICcgKyBpbnRlcmFjdGlvbi5zdWJoZWFkZXJEYXRhLnZhbHVlXCIgcmVhZG9ubHkgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwiaW50ZXJhY3Rpb24uc3ViaGVhZGVyRGF0YS52YWx1ZVwiIFtpZF09XCJpbnRlcmFjdGlvbi5zdWJoZWFkZXJEYXRhLnZhbHVlXCIgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYWRTZWN0aW9uXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgaW50ZXJhY3Rpb24ucHJvcGVydGllc1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3BlcnR5LnZpc2libGVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sMVwiIFt0aXRsZV09XCJwcm9wZXJ0eS5kaXNwbGF5S2V5XCI+e3twcm9wZXJ0eS5kaXNwbGF5S2V5fX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8YW1jLXByb3BlcnR5IFtjYWxsVHlwZV09XCJpbnRlcmFjdGlvbi5VSUhlYWRlcnNEYXRhLmRpcmVjdGlvblRleHRcIiBbc3RhdHVzVGV4dF09XCJpbnRlcmFjdGlvbi5VSUhlYWRlcnNEYXRhLnN0YXR1c1RleHRcIiBbY2FsbElkXT1cImludGVyYWN0aW9uLnN1YmhlYWRlckRhdGEudmFsdWVcIiBjbGFzcz1cImNvbDJcIiBbcHJvcGVydHldPVwicHJvcGVydHlcIj4gPC9hbWMtcHJvcGVydHk+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgaW50ZXJhY3Rpb24uYXNzb2NpYXRlZERhdGFcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eS52aXNpYmxlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0b3IgZGlzcGxheURpdlwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImRpc3BsYXlMYWJlbHNcIiBbdGl0bGVdPVwicHJvcGVydHkuZGlzcGxheUtleVwiPnt7cHJvcGVydHkuZGlzcGxheUtleX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YW1jLXByb3BlcnR5IFtjYWxsVHlwZV09XCJpbnRlcmFjdGlvbi5VSUhlYWRlcnNEYXRhLmRpcmVjdGlvblRleHRcIiBbc3RhdHVzVGV4dF09XCJpbnRlcmFjdGlvbi5VSUhlYWRlcnNEYXRhLnN0YXR1c1RleHRcIiBbY2FsbElkXT1cImludGVyYWN0aW9uLnN1YmhlYWRlckRhdGEudmFsdWVcIiBjbGFzcz1cImNvbDJcIiBbcHJvcGVydHldPVwicHJvcGVydHlcIj4gPC9hbWMtcHJvcGVydHk+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YW1jLW9wZXJhdGlvbiAqbmdJZj1cImludGVyYWN0aW9uLmNoYXRcIiBpZD1cImNsb3NlLWNoYXRcIiBbY2FsbFR5cGVdPVwiaW50ZXJhY3Rpb24uVUlIZWFkZXJzRGF0YS5kaXJlY3Rpb25UZXh0XCIgW3N0YXR1c1RleHRdPVwiaW50ZXJhY3Rpb24uVUlIZWFkZXJzRGF0YS5zdGF0dXNUZXh0XCIgW2NhbGxJZF09XCJpbnRlcmFjdGlvbi5zdWJoZWFkZXJEYXRhLnZhbHVlXCIgW29wZXJhdGlvbnNdPVwiaW50ZXJhY3Rpb24ub3BlcmF0aW9uc1wiPjwvYW1jLW9wZXJhdGlvbj5cclxuICAgICAgPGFwcC1jaGF0LWJveCAqbmdJZj1cImludGVyYWN0aW9uLmNoYXRcIiBbaXNUeXBpbmddPVwiaW50ZXJhY3Rpb24uY2hhdC5pc0N1c3RvbWVyVHlwaW5nXCIgW3NldHRpbmdzXT1cImludGVyYWN0aW9uLmNoYXQuc2V0dGluZ3NcIlxyXG4gICAgICAgIFttZXNzYWdlc109XCJpbnRlcmFjdGlvbi5jaGF0Lm1lc3NhZ2VzXCIgW25ld01zZ3NdPVwibmV3TXNnc1wiIChpc0FnZW50VHlwaW5nKT1cImlzQWdlbnRUeXBpbmcuZW1pdCgkZXZlbnQpXCIgKG5ld01lc3NhZ2UpPVwibmV3TWVzc2FnZS5lbWl0KCRldmVudClcIj48L2FwcC1jaGF0LWJveD5cclxuXHJcbiAgICAgIDxkaXYgW2lkXT0naW50ZXJhY3Rpb24uaW50ZXJhY3Rpb25JZCc+IDwvZGl2PlxyXG4gICAgICA8YW1jLW9wZXJhdGlvbiAqbmdJZj1cIiFpbnRlcmFjdGlvbi5jaGF0XCIgW2NhbGxUeXBlXT1cImludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEuZGlyZWN0aW9uVGV4dFwiIFtzdGF0dXNUZXh0XT1cImludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEuc3RhdHVzVGV4dFwiIFtjYWxsSWRdPVwiaW50ZXJhY3Rpb24uc3ViaGVhZGVyRGF0YS52YWx1ZVwiIFtvcGVyYXRpb25zXT1cImludGVyYWN0aW9uLm9wZXJhdGlvbnNcIj48L2FtYy1vcGVyYXRpb24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNDb25mZXJlbmNlQ2FsbCgpXCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHBhcnR5IG9mIGludGVyYWN0aW9uLnBhcnRpZXNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yIHBob25lTnVtYmVyQ29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJjYWxsSW1hZ2VcIiB0eXBlPVwiaW1hZ2VcIiBbc3JjXT1cInBhcnR5LmhlYWRlci5pbWFnZS5ocmVmXCIgW3RpdGxlXT1cInBhcnR5LmhlYWRlci50b29sdGlwIHx8ICcnXCIgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZWRpdG9yIHBob25lTnVtYmVyVmFsdWVcIiByZWFkb25seSB0eXBlPVwidGV4dFwiIFt2YWx1ZV09XCJwYXJ0eS5oZWFkZXIudmFsdWVcIiB0YWJpbmRleD1cIi0xXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgcGFydHkucHJvcGVydGllc1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcGVydHkudmlzaWJsZVwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbDFcIiBbdGl0bGVdPVwicHJvcGVydHkuZGlzcGxheUtleVwiPnt7IHByb3BlcnR5LmRpc3BsYXlLZXkgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhbWMtcHJvcGVydHkgW2NhbGxUeXBlXT1cImludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEuZGlyZWN0aW9uVGV4dFwiIFtzdGF0dXNUZXh0XT1cImludGVyYWN0aW9uLlVJSGVhZGVyc0RhdGEuc3RhdHVzVGV4dFwiIFtjYWxsSWRdPVwicGFydHkuaGVhZGVyLnZhbHVlXCIgY2xhc3M9XCJjb2wyXCIgW3Byb3BlcnR5XT1cInByb3BlcnR5XCI+IDwvYW1jLXByb3BlcnR5PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxhbWMtb3BlcmF0aW9uIFtjYWxsVHlwZV09XCJpbnRlcmFjdGlvbi5VSUhlYWRlcnNEYXRhLmRpcmVjdGlvblRleHRcIiBbc3RhdHVzVGV4dF09XCJpbnRlcmFjdGlvbi5VSUhlYWRlcnNEYXRhLnN0YXR1c1RleHRcIiBbY2FsbElkXT1cInBhcnR5LmhlYWRlci52YWx1ZVwiIFtvcGVyYXRpb25zXT1cInBhcnR5Lm9wZXJhdGlvbnNcIj48L2FtYy1vcGVyYXRpb24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIkFuc3dlckNhbGxGb2N1c2VkXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YW1jLW9wZXJhdGlvbiBbY2FsbFR5cGVdPVwiaW50ZXJhY3Rpb24uVUlIZWFkZXJzRGF0YS5kaXJlY3Rpb25UZXh0XCIgW3N0YXR1c1RleHRdPVwiaW50ZXJhY3Rpb24uVUlIZWFkZXJzRGF0YS5zdGF0dXNUZXh0XCIgW2NhbGxJZF09XCJpbnRlcmFjdGlvbi5zdWJoZWFkZXJEYXRhLnZhbHVlXCIgW29wZXJhdGlvbnNdPVwiaW50ZXJhY3Rpb24ub3BlcmF0aW9uc1wiPjwvYW1jLW9wZXJhdGlvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/forms";
|
|
5
|
+
export class LoginComponent {
|
|
6
|
+
loginData;
|
|
7
|
+
loginDetailsProvided = new EventEmitter();
|
|
8
|
+
constructor() { }
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
if (!this.loginData.header) {
|
|
11
|
+
this.loginData.header = 'Login';
|
|
12
|
+
}
|
|
13
|
+
for (let field of this.loginData.fields) {
|
|
14
|
+
if (!field.isInvalid) {
|
|
15
|
+
field.isInvalid = false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
onLogin(loginForm) {
|
|
20
|
+
for (const field of this.loginData.fields) {
|
|
21
|
+
field.value = loginForm.value[field.name];
|
|
22
|
+
}
|
|
23
|
+
this.loginDetailsProvided.emit(this.loginData);
|
|
24
|
+
}
|
|
25
|
+
focusOutOfInput(loginForm, field) {
|
|
26
|
+
if (!loginForm.controls[field.name].valid) {
|
|
27
|
+
field.isInvalid = true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: LoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: LoginComponent, selector: "amc-login", inputs: { loginData: "loginData" }, outputs: { loginDetailsProvided: "loginDetailsProvided" }, ngImport: i0, 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", styles: [".login-container{border:1px solid #939598;white-space:nowrap;font-family:Arial;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;text-overflow:ellipsis;position:relative;font-size:.9em;overflow-x:hidden;overflow-y:hidden}.header-container{border-bottom:1px solid #939598;background-color:#f4f5fb;width:100%;height:28px;position:sticky}.login-header{margin-top:auto;margin-left:7px;padding:5px;font-weight:700;font-size:.9em}.fields-container{overflow-y:auto;font-size:.9em;padding:5px}.field{display:table-row;margin:5px}.field-label{padding:10px;display:table-cell}.field-input{display:table-cell;border:1px solid #939598;border-radius:5px}.field-input:focus{box-shadow:0 0 5px #38badf}.form-submit{margin:15px 10px 10px;display:table-row;border:1px solid #00a4b0;border-radius:5px;background-color:#00a4b0;color:#f7f7f7;width:10em;height:2em;transition:all .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:2px solid rgb(50,150,218);outline-offset:5px}.invalid-input{margin:0;padding:0;color:#a94442;font-size:x-small}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
|
|
32
|
+
}
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: LoginComponent, decorators: [{
|
|
34
|
+
type: Component,
|
|
35
|
+
args: [{ selector: 'amc-login', 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", styles: [".login-container{border:1px solid #939598;white-space:nowrap;font-family:Arial;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;text-overflow:ellipsis;position:relative;font-size:.9em;overflow-x:hidden;overflow-y:hidden}.header-container{border-bottom:1px solid #939598;background-color:#f4f5fb;width:100%;height:28px;position:sticky}.login-header{margin-top:auto;margin-left:7px;padding:5px;font-weight:700;font-size:.9em}.fields-container{overflow-y:auto;font-size:.9em;padding:5px}.field{display:table-row;margin:5px}.field-label{padding:10px;display:table-cell}.field-input{display:table-cell;border:1px solid #939598;border-radius:5px}.field-input:focus{box-shadow:0 0 5px #38badf}.form-submit{margin:15px 10px 10px;display:table-row;border:1px solid #00a4b0;border-radius:5px;background-color:#00a4b0;color:#f7f7f7;width:10em;height:2em;transition:all .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:2px solid rgb(50,150,218);outline-offset:5px}.invalid-input{margin:0;padding:0;color:#a94442;font-size:x-small}\n"] }]
|
|
36
|
+
}], ctorParameters: function () { return []; }, propDecorators: { loginData: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], loginDetailsProvided: [{
|
|
39
|
+
type: Output
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRL0UsTUFBTSxPQUFPLGNBQWM7SUFDaEIsU0FBUyxDQUFhO0lBQ3JCLG9CQUFvQixHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFFaEUsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7U0FDakM7UUFFRCxLQUFLLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUNwQixLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQzthQUN6QjtTQUNGO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxTQUFpQjtRQUN2QixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3pDLEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0M7UUFFRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQWlCLEVBQUUsS0FBSztRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ3pDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzt1R0E5QlUsY0FBYzsyRkFBZCxjQUFjLGdKQ1QzQixxd0NBb0NBOzsyRkQzQmEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxXQUFXOzBFQUtaLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksb0JBQW9CO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxvZ2luRGF0YSB9IGZyb20gJy4vLi4vLi4vbW9kZWxzL2xvZ2luLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbWMtbG9naW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbG9naW5EYXRhOiBJTG9naW5EYXRhO1xyXG4gIEBPdXRwdXQoKSBsb2dpbkRldGFpbHNQcm92aWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUxvZ2luRGF0YT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMubG9naW5EYXRhLmhlYWRlcikge1xyXG4gICAgICB0aGlzLmxvZ2luRGF0YS5oZWFkZXIgPSAnTG9naW4nO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGZpZWxkIG9mIHRoaXMubG9naW5EYXRhLmZpZWxkcykge1xyXG4gICAgICBpZiAoIWZpZWxkLmlzSW52YWxpZCkge1xyXG4gICAgICAgIGZpZWxkLmlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkxvZ2luKGxvZ2luRm9ybTogTmdGb3JtKSB7XHJcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHRoaXMubG9naW5EYXRhLmZpZWxkcykge1xyXG4gICAgICBmaWVsZC52YWx1ZSA9IGxvZ2luRm9ybS52YWx1ZVtmaWVsZC5uYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZ2luRGV0YWlsc1Byb3ZpZGVkLmVtaXQodGhpcy5sb2dpbkRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPdXRPZklucHV0KGxvZ2luRm9ybTogTmdGb3JtLCBmaWVsZCkge1xyXG4gICAgaWYgKCFsb2dpbkZvcm0uY29udHJvbHNbZmllbGQubmFtZV0udmFsaWQpIHtcclxuICAgICAgZmllbGQuaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxvZ2luLWNvbnRhaW5lclwiPlxyXG4gIDxmb3JtIChuZ1N1Ym1pdCk9XCJvbkxvZ2luKGxvZ2luRm9ybSlcImNsYXNzPVwibG9naW4tZm9ybVwiIGlkPVwibG9naW4tZm9ybVwiICNsb2dpbkZvcm09XCJuZ0Zvcm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImxvZ2luLWhlYWRlclwiIGF0dHIuYXJpYS1sYWJlbD1cImxvZ2luXCI+e3sgbG9naW5EYXRhLmhlYWRlciB9fTwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZHMtY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGxvZ2luRGF0YS5maWVsZHNcIiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmllbGQtbGFiZWxcIj5cclxuICAgICAgICAgIHt7IGZpZWxkLm5hbWUgfX06XHJcbiAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgIG5nTW9kZWxcclxuICAgICAgICAgY2xhc3M9XCJmaWVsZC1pbnB1dFwiXHJcbiAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGZpZWxkLm5hbWUgfX1cIlxyXG4gICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICAgW3R5cGVdPVwiZmllbGQudHlwZVwiXHJcbiAgICAgICAgIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXHJcbiAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlciB8fCAnJ1wiXHJcbiAgICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZC5pc1JlcXVpcmVkIHx8IGZhbHNlXCJcclxuICAgICAgICAgKGZvY3Vzb3V0KT1cImZvY3VzT3V0T2ZJbnB1dChsb2dpbkZvcm0sIGZpZWxkKVwiLz5cclxuXHJcbiAgICAgICAgIDxwIGNsYXNzPVwiaW52YWxpZC1pbnB1dFwiICpuZ0lmPVwiZmllbGQuaXNJbnZhbGlkXCI+e3sgZmllbGQuaW52YWxpZE1lc3NhZ2UgfX08L3A+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1zdWJtaXRcIlxyXG4gICAgICAgIGZvcm09XCJsb2dpbi1mb3JtXCJcclxuICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInNlbmRcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhbG9naW5Gb3JtLnZhbGlkXCI+TG9naW48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Zvcm0+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
/**
|
|
5
|
+
* @ignore
|
|
6
|
+
*/
|
|
7
|
+
export class OperationComponent {
|
|
8
|
+
statusText;
|
|
9
|
+
callId;
|
|
10
|
+
callType;
|
|
11
|
+
operations;
|
|
12
|
+
labelledByText = '';
|
|
13
|
+
describedByText = '';
|
|
14
|
+
/**
|
|
15
|
+
* @ignore
|
|
16
|
+
*/
|
|
17
|
+
constructor() {
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @ignore
|
|
21
|
+
*/
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
if (this.statusText && this.callType) {
|
|
24
|
+
this.describedByText = `${this.statusText} ${this.callType}`;
|
|
25
|
+
}
|
|
26
|
+
else if (this.statusText) {
|
|
27
|
+
this.describedByText = this.statusText;
|
|
28
|
+
}
|
|
29
|
+
else if (this.callType) {
|
|
30
|
+
this.describedByText = this.callType;
|
|
31
|
+
}
|
|
32
|
+
if (this.callId) {
|
|
33
|
+
this.labelledByText = this.callId;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
operationKeypress(event, operation) {
|
|
37
|
+
if (event.code === 'Enter') {
|
|
38
|
+
operation.handler(operation.operationName, operation.operationMetadata);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: OperationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: OperationComponent, selector: "amc-operation", inputs: { statusText: "statusText", callId: "callId", callType: "callType", operations: "operations" }, ngImport: i0, 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", styles: [".AnswerCallImages:focus{outline:2px solid rgb(50,150,218);outline-offset:1px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: OperationComponent, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{ selector: 'amc-operation', 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", styles: [".AnswerCallImages:focus{outline:2px solid rgb(50,150,218);outline-offset:1px}\n"] }]
|
|
47
|
+
}], ctorParameters: function () { return []; }, propDecorators: { statusText: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], callId: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], callType: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], operations: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}] } });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL1VJTGlicmFyeS9zcmMvYXBwL2NvbXBvbmVudHMvb3BlcmF0aW9uL29wZXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL29wZXJhdGlvbi9vcGVyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUd6RDs7R0FFRztBQU1ILE1BQU0sT0FBTyxrQkFBa0I7SUFDcEIsVUFBVSxDQUFTO0lBQ25CLE1BQU0sQ0FBUztJQUNmLFFBQVEsQ0FBUztJQUNqQixVQUFVLENBQWU7SUFFbEMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUNwQixlQUFlLEdBQUcsRUFBRSxDQUFDO0lBRXJCOztPQUVHO0lBQ0g7SUFDQSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzlEO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN4QzthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7U0FDckM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBb0IsRUFBRSxTQUFxQjtRQUMzRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQzFCLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7dUdBcENVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLDZKQ1gvQix3bkJBZUE7OzJGREphLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlOzBFQUtoQixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSU9wZXJhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy91aWxpYnJhcnkubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW1jLW9wZXJhdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29wZXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vb3BlcmF0aW9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgc3RhdHVzVGV4dDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNhbGxJZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNhbGxUeXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgb3BlcmF0aW9uczogSU9wZXJhdGlvbltdO1xyXG5cclxuICBsYWJlbGxlZEJ5VGV4dCA9ICcnO1xyXG4gIGRlc2NyaWJlZEJ5VGV4dCA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zdGF0dXNUZXh0ICYmIHRoaXMuY2FsbFR5cGUpIHtcclxuICAgICAgdGhpcy5kZXNjcmliZWRCeVRleHQgPSBgJHt0aGlzLnN0YXR1c1RleHR9ICR7dGhpcy5jYWxsVHlwZX1gO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXR1c1RleHQpIHtcclxuICAgICAgdGhpcy5kZXNjcmliZWRCeVRleHQgPSB0aGlzLnN0YXR1c1RleHQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2FsbFR5cGUpIHtcclxuICAgICAgdGhpcy5kZXNjcmliZWRCeVRleHQgPSB0aGlzLmNhbGxUeXBlXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY2FsbElkKSB7XHJcbiAgICAgIHRoaXMubGFiZWxsZWRCeVRleHQgPSB0aGlzLmNhbGxJZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZXJhdGlvbktleXByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBvcGVyYXRpb246IElPcGVyYXRpb24pIHtcclxuICAgIGlmIChldmVudC5jb2RlID09PSAnRW50ZXInKSB7XHJcbiAgICAgIG9wZXJhdGlvbi5oYW5kbGVyKG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLCBvcGVyYXRpb24ub3BlcmF0aW9uTWV0YWRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FsbE9wdGlvbnNcIj5cclxuICAgIDxpbWdcclxuICAgICBjbGFzcz1cIkFuc3dlckNhbGxJbWFnZXNcIlxyXG4gICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgb3BlcmF0aW9uLnRpdGxlIH19XCJcclxuICAgICAqbmdGb3I9XCJsZXQgb3BlcmF0aW9uIG9mIG9wZXJhdGlvbnNcIlxyXG4gICAgIFt0aXRsZV09XCJvcGVyYXRpb24udGl0bGVcIlxyXG4gICAgIFtzcmNdPVwib3BlcmF0aW9uLmljb25cIlxyXG4gICAgIFthdHRyLmFjY2Vzc2tleV09XCJvcGVyYXRpb24uYWNjZXNza2V5IHx8IG51bGxcIlxyXG4gICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbGxlZEJ5VGV4dCB8fCBudWxsXCJcclxuICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImRlc2NyaWJlZEJ5VGV4dCB8fCBudWxsXCJcclxuICAgICAoY2xpY2spPVwib3BlcmF0aW9uLmhhbmRsZXIob3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsIG9wZXJhdGlvbi5vcGVyYXRpb25NZXRhZGF0YSlcIlxyXG4gICAgIChrZXlwcmVzcyk9XCJvcGVyYXRpb25LZXlwcmVzcygkZXZlbnQsIG9wZXJhdGlvbilcIi8+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { ValueType } from '../../models/uilibrary.model';
|
|
3
|
+
import { secondsToHms } from '../../Helpers';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
/**
|
|
7
|
+
* @ignore
|
|
8
|
+
*/
|
|
9
|
+
export class PropertyComponent {
|
|
10
|
+
statusText;
|
|
11
|
+
callId;
|
|
12
|
+
callType;
|
|
13
|
+
property;
|
|
14
|
+
labelledByText = '';
|
|
15
|
+
title = '';
|
|
16
|
+
/**
|
|
17
|
+
* @ignore
|
|
18
|
+
*/
|
|
19
|
+
processedDisplayValue;
|
|
20
|
+
/**
|
|
21
|
+
* @ignore
|
|
22
|
+
*/
|
|
23
|
+
_timerId;
|
|
24
|
+
/**
|
|
25
|
+
* @ignore
|
|
26
|
+
*/
|
|
27
|
+
constructor() {
|
|
28
|
+
this._timerId = null;
|
|
29
|
+
this.processedDisplayValue = '';
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @ignore
|
|
33
|
+
*/
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
if (this.statusText && this.callType) {
|
|
36
|
+
this.labelledByText = `${this.statusText} ${this.callType}`;
|
|
37
|
+
}
|
|
38
|
+
else if (this.statusText) {
|
|
39
|
+
this.labelledByText = this.statusText;
|
|
40
|
+
}
|
|
41
|
+
else if (this.callType) {
|
|
42
|
+
this.labelledByText = this.callType;
|
|
43
|
+
}
|
|
44
|
+
if (this.callType && this.callId) {
|
|
45
|
+
this.title = `${this.callType} ${this.callId}`;
|
|
46
|
+
}
|
|
47
|
+
else if (this.callType) {
|
|
48
|
+
this.title = this.callType;
|
|
49
|
+
}
|
|
50
|
+
else if (this.callId) {
|
|
51
|
+
this.title = this.callId;
|
|
52
|
+
}
|
|
53
|
+
this.initValues();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @ignore
|
|
57
|
+
*/
|
|
58
|
+
initValues() {
|
|
59
|
+
if (this.property.displayValueType === ValueType.COUNTER) {
|
|
60
|
+
this.startCallCounter();
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.processedDisplayValue = this.property.displayValue;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* @ignore
|
|
68
|
+
*/
|
|
69
|
+
startCallCounter() {
|
|
70
|
+
if (this._timerId == null) {
|
|
71
|
+
this._timerId = window.setInterval(() => {
|
|
72
|
+
const callStartTime = this.property.displayValue;
|
|
73
|
+
const currentTime = new Date().getTime() / 1000;
|
|
74
|
+
const secondsPassed = Math.floor((currentTime) - (callStartTime / 1000));
|
|
75
|
+
this.processedDisplayValue = secondsToHms(secondsPassed);
|
|
76
|
+
}, 1000);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @ignore
|
|
81
|
+
*/
|
|
82
|
+
ngOnDestroy() {
|
|
83
|
+
if (this.property.displayValueType === ValueType.COUNTER) {
|
|
84
|
+
// clear the timer.
|
|
85
|
+
if (this._timerId != null) {
|
|
86
|
+
clearInterval(this._timerId);
|
|
87
|
+
this._timerId = null;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: PropertyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
92
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: PropertyComponent, selector: "amc-property", inputs: { statusText: "statusText", callId: "callId", callType: "callType", property: "property" }, ngImport: i0, 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", styles: ["input{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;border:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
93
|
+
}
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: PropertyComponent, decorators: [{
|
|
95
|
+
type: Component,
|
|
96
|
+
args: [{ selector: 'amc-property', 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", styles: ["input{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;border:0}\n"] }]
|
|
97
|
+
}], ctorParameters: function () { return []; }, propDecorators: { statusText: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], callId: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], callType: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], property: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}] } });
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL3Byb3BlcnR5L3Byb3BlcnR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFDN0M7O0dBRUc7QUFNSCxNQUFNLE9BQU8saUJBQWlCO0lBRW5CLFVBQVUsQ0FBUztJQUNuQixNQUFNLENBQVM7SUFDZixRQUFRLENBQVM7SUFDakIsUUFBUSxDQUFZO0lBRTdCLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDcEIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVYOztPQUVHO0lBQ0gscUJBQXFCLENBQVM7SUFFOUI7O09BRUc7SUFDSyxRQUFRLENBQVU7SUFFMUI7O09BRUc7SUFDSDtRQUVFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM3RDthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDdkM7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO1NBQ3BDO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO1NBQy9DO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUM1QjthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLENBQUMsT0FBTyxFQUFFO1lBQ3hELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7U0FDekQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtZQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUN0QyxNQUFNLGFBQWEsR0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztnQkFDekQsTUFBTSxXQUFXLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ3hELE1BQU0sYUFBYSxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNqRixJQUFJLENBQUMscUJBQXFCLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzNELENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNWO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLENBQUMsT0FBTyxFQUFFO1lBQ3hELG1CQUFtQjtZQUNuQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUN6QixhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQzt1R0F4RlUsaUJBQWlCOzJGQUFqQixpQkFBaUIsd0pDWDlCLHd0QkFzQkE7OzJGRFhhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxjQUFjOzBFQU1mLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFZhbHVlVHlwZSwgSVByb3BlcnR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VpbGlicmFyeS5tb2RlbCc7XHJcbmltcG9ydCB7IHNlY29uZHNUb0htcyB9IGZyb20gJy4uLy4uL0hlbHBlcnMnO1xyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbWMtcHJvcGVydHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHJvcGVydHkuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIHN0YXR1c1RleHQ6IHN0cmluZztcclxuICBASW5wdXQoKSBjYWxsSWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBjYWxsVHlwZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHByb3BlcnR5OiBJUHJvcGVydHk7XHJcblxyXG4gIGxhYmVsbGVkQnlUZXh0ID0gJyc7XHJcbiAgdGl0bGUgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHByb2Nlc3NlZERpc3BsYXlWYWx1ZTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfdGltZXJJZD86IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICAgIHRoaXMuX3RpbWVySWQgPSBudWxsO1xyXG4gICAgdGhpcy5wcm9jZXNzZWREaXNwbGF5VmFsdWUgPSAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnN0YXR1c1RleHQgJiYgdGhpcy5jYWxsVHlwZSkge1xyXG4gICAgICB0aGlzLmxhYmVsbGVkQnlUZXh0ID0gYCR7dGhpcy5zdGF0dXNUZXh0fSAke3RoaXMuY2FsbFR5cGV9YDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0dXNUZXh0KSB7XHJcbiAgICAgIHRoaXMubGFiZWxsZWRCeVRleHQgPSB0aGlzLnN0YXR1c1RleHQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2FsbFR5cGUpIHtcclxuICAgICAgdGhpcy5sYWJlbGxlZEJ5VGV4dCA9IHRoaXMuY2FsbFR5cGVcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jYWxsVHlwZSAmJiB0aGlzLmNhbGxJZCkge1xyXG4gICAgICB0aGlzLnRpdGxlID0gYCR7dGhpcy5jYWxsVHlwZX0gJHt0aGlzLmNhbGxJZH1gXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2FsbFR5cGUpIHtcclxuICAgICAgdGhpcy50aXRsZSA9IHRoaXMuY2FsbFR5cGU7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2FsbElkKSB7XHJcbiAgICAgIHRoaXMudGl0bGUgPSB0aGlzLmNhbGxJZDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRWYWx1ZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBpbml0VmFsdWVzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucHJvcGVydHkuZGlzcGxheVZhbHVlVHlwZSA9PT0gVmFsdWVUeXBlLkNPVU5URVIpIHtcclxuICAgICAgdGhpcy5zdGFydENhbGxDb3VudGVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnByb2Nlc3NlZERpc3BsYXlWYWx1ZSA9IHRoaXMucHJvcGVydHkuZGlzcGxheVZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RhcnRDYWxsQ291bnRlcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl90aW1lcklkID09IG51bGwpIHtcclxuICAgICAgdGhpcy5fdGltZXJJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2FsbFN0YXJ0VGltZTogbnVtYmVyID0gdGhpcy5wcm9wZXJ0eS5kaXNwbGF5VmFsdWU7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWU6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMDtcclxuICAgICAgICBjb25zdCBzZWNvbmRzUGFzc2VkOiBudW1iZXIgPSBNYXRoLmZsb29yKChjdXJyZW50VGltZSkgLSAoY2FsbFN0YXJ0VGltZSAvIDEwMDApKTtcclxuICAgICAgICB0aGlzLnByb2Nlc3NlZERpc3BsYXlWYWx1ZSA9IHNlY29uZHNUb0htcyhzZWNvbmRzUGFzc2VkKTtcclxuICAgICAgfSwgMTAwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wcm9wZXJ0eS5kaXNwbGF5VmFsdWVUeXBlID09PSBWYWx1ZVR5cGUuQ09VTlRFUikge1xyXG4gICAgICAvLyBjbGVhciB0aGUgdGltZXIuXHJcbiAgICAgIGlmICh0aGlzLl90aW1lcklkICE9IG51bGwpIHtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuX3RpbWVySWQpO1xyXG4gICAgICAgIHRoaXMuX3RpbWVySWQgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxpbnB1dFxyXG4gcmVhZG9ubHlcclxuICpuZ0lmPVwiIXByb3BlcnR5LmN1c3RvbU9wZXJhdGlvbnNcIlxyXG4gY2xhc3M9XCJkaXNwbGF5RGF0YVwiXHJcbiB0YWJpbmRleD1cIjBcIlxyXG4gdHlwZT1cInRleHRcIlxyXG4gW25hbWVdPVwicHJvY2Vzc2VkRGlzcGxheVZhbHVlXCJcclxuIFt0aXRsZV09XCJ0aXRsZSB8fCBudWxsXCJcclxuIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbGxlZEJ5VGV4dCB8fCBudWxsXCJcclxuIFt2YWx1ZV09XCJwcm9jZXNzZWREaXNwbGF5VmFsdWVcIi8+XHJcblxyXG4gPGlucHV0XHJcbiAgcmVhZG9ubHlcclxuICAqbmdJZj1cInByb3BlcnR5LmN1c3RvbU9wZXJhdGlvbnNcIlxyXG4gIGNsYXNzPVwiY3Vyc29yIGRpc3BsYXlEYXRhXCJcclxuICB0eXBlPVwidGV4dFwiXHJcbiAgdGFiaW5kZXg9XCIwXCJcclxuICBbbmFtZV09XCJwcm9jZXNzZWREaXNwbGF5VmFsdWVcIlxyXG4gIFt0aXRsZV09XCJ0aXRsZSB8fCBudWxsXCJcclxuICBbdmFsdWVdPVwicHJvY2Vzc2VkRGlzcGxheVZhbHVlXCJcclxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxsZWRCeVRleHQgfHwgbnVsbFwiXHJcbiAgKGNsaWNrKT1cInByb3BlcnR5LmN1c3RvbU9wZXJhdGlvbnMuaGFuZGxlcihwcm9wZXJ0eS5jdXN0b21PcGVyYXRpb25zLmV2ZW50TmFtZSwgcHJvcGVydHkuY3VzdG9tT3BlcmF0aW9ucy5ldmVudE1ldGFkYXRhKVwiIC8+XHJcbiJdfQ==
|