@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@amc-technology/ui-library/projects/UILibrary/src/app/models/chat.message.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/interaction/interaction.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/scenario/scenario.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/operation/operation.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/models/uilibrary.model.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/Helpers.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/property/property.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/holdtimer/holdtimer.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/duration/duration.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/chat-box/chat-box.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/chat-message/chat-message.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/disposition/disposition.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/activity/activity.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/login/login.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/create/create.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/recent-activity/recent-activity.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/current-activity/current-activity.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/components/search-information/search-information.component.ts","ng://@amc-technology/ui-library/projects/UILibrary/src/app/uilibrary.module.ts"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","push","__values","o","s","m","IChatMessageType","InteractionComponent","minimizedChanged","EventEmitter","isAgentTyping","newMessage","_minimized","prototype","minimized","emit","ngOnInit","minimize","maximize","isConferenceCall","interaction","parties","collapseKeypress","event","code","expandKeypress","clickEvent","id","document","getElementById","className","localStorage","getItem","setItem","Input","Output","Component","selector","template","ScenarioComponent","afterViewChecked","ngAfterViewChecked","onMinimizedChanged","OperationComponent","labelledByText","describedByText","statusText","callType","callId","operationKeypress","operation","handler","operationName","operationMetadata","ValueType","visible","valueType","customOperation","_this","displayOperation","displayKey","displayValue","displayValueType","STRING","customOperations","secondsToHms","seconds_in","Number","h","Math","floor","toString","slice","PropertyComponent","title","_timerId","processedDisplayValue","initValues","property","COUNTER","startCallCounter","window","setInterval","callStartTime","currentTime","Date","getTime","secondsPassed","ngOnDestroy","clearInterval","HoldtimerComponent","displayTime","pastTimeInSeconds","CaculatePastHoldDuration","secondsPassedCurrentCall","holdCounterData","currentHoldStartTime","pastCallDurations","forEach","holdTimerIterator","endTime","startTime","DurationComponent","ChatBoxComponent","renderer","isTyping","lastCount","_isAgentTyping","newMessageText","usernameToColor","colors","colorsIndex","agentColor","selectRootElement","focus","ngAfterViewInit","updatedMessage","newMsgs","messages","scrollToBottom","getColor","message","type","AGENT","username","shouldAlignRight","sendNewMessage","preventDefault","setOnFocus","onNewMessageFocus","onKeyup","messagesContainer","nativeElement","scrollTop","scrollHeight","Renderer2","ViewChild","static","ChatMessageComponent","alignRight","focusOn","DispositionComponent","dispositionEmitter","selectedDispositionValue","dispositionName","_b","disposition","dispositionMetadata","_c","metadata","checkedDisposition","submitDisposition","selectedDisposition","dispositionId","get","selectAndSubmitDisposition","dispositionKey","ActivityComponent","ActivitySave","OnNameSelectChange","OnRelatedToChange","OnSubjectChange","OnCallNotesChange","isActivityMaximized","onNameSelectChange","activity","WhoObject","getWho","currentTarget","parseWhoObject","whoObject","objectType","objectName","parseWhatObject","whatObject","onRelatedToChange","WhatObject","getWhat","onSubjectChange","Subject","srcElement","onCallNotesChange","trim","whoList","objectId","whatList","loadQuickComment","Description","quickCommentList","activitySave","clearActivityFields","LoginComponent","loginDetailsProvided","loginData","header","fields","field","isInvalid","onLogin","loginForm","name","focusOutOfInput","controls","valid","CreateComponent","CreateNewEntity","isCreateMaximized","createNewEntity","getEntities","keys","Entities","getDisplay","entity","substring","indexOf","getImage","RecentActivityComponent","debouncer","eventList","Set","ngOnChanges","getIcon","scenario","pipe","debounceTime","subscribe","newEvent","eventName","Array","from","join","idx","newValue","ActivityDetails","clear","expandAndCollapseRecentActivity","isExpand","openActivity","add","onSubjectKeyUp","onWhoObjectChange","WhoObjectList","find","obj","WhatObjectList","onCallNotesKeyUp","addQuickCommentToDescription","comment","submitActivity","IsProcessing","CurrentActivityComponent","error","triggerDiscardActivity","onNameChange","descriptionToSet","quickCommentOptionRequiredCadArray","cadFields","scenarioToCADMap","ScenarioId","keyToCheckIfCADExists","stringToBeReplaced","replace","Value","displayName","SearchInformationComponent","isSearchInformationMaximized","singleMatchData","multiMatchData","agentSelectedCallerInformation","renderData","shouldShowAllMultiMatchOptions","searchRecordList","parseSearchRecordForNameSingleMatch","parseSearchRecordForNameMultiMatch","onAgentSelectedCallerInformation","searchRecord","results","src","getEntityImgToDisplay","singleMatchIconSrc","sLayoutInfo","getSearchLayoutInfoForDisplay","j","DisplayFields","DevName","nameKey","displayRecord","DisplayName","toUpperCase","layoutInfo","searchLayout","layouts","CallType","UILibraryModule","injector","ngDoBootstrap","app","customElements","strategyFactory","ElementZoneStrategyFactory","define","createCustomElement","Injector","NgModule","imports","BrowserModule","CommonModule","FormsModule","MatTabsModule","declarations","providers","entryComponents","bootstrap","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export interface IChatMessage {\r\n username?: string;\r\n text: string;\r\n /**\r\n * What type of chat message. Defaults to OTHER_PERSON\r\n */\r\n type?: IChatMessageType;\r\n timestamp?: string;\r\n userIcon?: URL;\r\n}\r\n\r\nexport enum IChatMessageType {\r\n AGENT = 'AGENT',\r\n OTHER_PERSON = 'OTHER_PERSON',\r\n INFORMATION = 'INFORMATION'\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChildren, QueryList } from '@angular/core';\r\nimport { IChatMessage, IInteraction } from '../../models/uilibrary.model';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@Component({\r\n selector: 'amc-interaction',\r\n templateUrl: './interaction.component.html',\r\n styleUrls: ['./interaction.component.scss', './../uilibrary.module.scss']\r\n})\r\nexport class InteractionComponent implements OnInit {\r\n\r\n @Input() interaction: IInteraction;\r\n @Input() newMsgs: IChatMessage[];\r\n @Output() minimizedChanged: EventEmitter<boolean> = new EventEmitter();\r\n @Output() isAgentTyping = new EventEmitter<boolean>();\r\n @Output() newMessage = new EventEmitter<string>();\r\n /**\r\n * @ignore\r\n */\r\n minimized: boolean;\r\n set _minimized(value) {\r\n this.minimized = value;\r\n this.minimizedChanged.emit(value);\r\n }\r\n get _minimized() {\r\n return this.minimized;\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor() {\r\n this._minimized = false;\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n ngOnInit() {\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n minimize(): void {\r\n this._minimized = true;\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n maximize(): void {\r\n this._minimized = false;\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n isConferenceCall(): boolean {\r\n if (this.interaction.parties && this.interaction.parties.length > 1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n collapseKeypress(event: KeyboardEvent) {\r\n if (event.code === 'Enter') {\r\n this.minimize();\r\n }\r\n }\r\n\r\n expandKeypress(event: KeyboardEvent) {\r\n if (event.code === 'Enter') {\r\n this.maximize();\r\n }\r\n }\r\n\r\n clickEvent(id){\r\n document.getElementById(id).className = 'success';\r\n if(localStorage.getItem('focusedPanel') === null) {\r\n localStorage.setItem('focusedPanel', id);\r\n } else if (localStorage.getItem('focusedPanel') != id){\r\n document.getElementById(localStorage.getItem('focusedPanel')).className = 'AnswerCallFocused';\r\n localStorage.setItem('focusedPanel', id);\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n AfterViewChecked\r\n} from '@angular/core';\r\nimport { IChatMessage, IScenario } from '../../models/uilibrary.model';\r\n\r\n@Component({\r\n selector: 'amc-scenario',\r\n templateUrl: './scenario.component.html',\r\n styleUrls: ['./scenario.component.scss', './../uilibrary.module.scss']\r\n})\r\nexport class ScenarioComponent implements AfterViewChecked {\r\n @Input() scenario: IScenario;\r\n @Input() newMsgs: IChatMessage[];\r\n @Output() minimizedChanged = new EventEmitter();\r\n @Output() isAgentTyping = new EventEmitter<boolean>();\r\n @Output() newMessage = new EventEmitter<string>();\r\n @Output() afterViewChecked = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngAfterViewChecked() {\r\n this.afterViewChecked.emit();\r\n }\r\n\r\n onMinimizedChanged() {\r\n this.minimizedChanged.emit();\r\n }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { IOperation } from '../../models/uilibrary.model';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@Component({\r\n selector: 'amc-operation',\r\n templateUrl: './operation.component.html',\r\n styleUrls: ['./operation.component.scss', './../uilibrary.module.scss']\r\n})\r\nexport class OperationComponent implements OnInit {\r\n @Input() statusText: string;\r\n @Input() callId: string;\r\n @Input() callType: string;\r\n @Input() operations: IOperation[];\r\n\r\n labelledByText = '';\r\n describedByText = '';\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor() {\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n ngOnInit() {\r\n if (this.statusText && this.callType) {\r\n this.describedByText = `${this.statusText} ${this.callType}`;\r\n } else if (this.statusText) {\r\n this.describedByText = this.statusText;\r\n } else if (this.callType) {\r\n this.describedByText = this.callType\r\n }\r\n\r\n if (this.callId) {\r\n this.labelledByText = this.callId;\r\n }\r\n }\r\n\r\n operationKeypress(event: KeyboardEvent, operation: IOperation) {\r\n if (event.code === 'Enter') {\r\n operation.handler(operation.operationName, operation.operationMetadata);\r\n }\r\n }\r\n}\r\n","import { IChatSettings } from './chat.settings';\r\nimport { IChatMessage } from './chat.message';\r\n\r\nexport * from './chat.message';\r\nexport * from './chat.settings';\r\n\r\n/**\r\n * It is collection of Interaction which need to be displayed on scenario component.\r\n */\r\nexport interface IScenario {\r\n interactions: IInteraction[];\r\n}\r\n\r\nexport interface IInteraction {\r\n /**\r\n * Unique id for the interaction.\r\n * Note: this interactionId is also used to provide id for the div element.\r\n */\r\n interactionId: string;\r\n properties?: Property[];\r\n associatedData?: Property[];\r\n startTime: number;\r\n displayCallTimer: boolean;\r\n /**\r\n * parties is supposed to contain data about all the participants in call except agent himself.\r\n */\r\n parties?: IParty[];\r\n /**\r\n * Operations/buttons which needs to be displayed in interaction and its handlers.\r\n */\r\n operations?: IOperation[];\r\n\r\n /**\r\n * It contains URLs for minimize, maximize, interaction specific icon urls for interaction.\r\n * And header number which needs to be displayed at top.\r\n */\r\n UIHeadersData: IInteractionUIHeaders;\r\n\r\n /**\r\n * Should contain identifying information about the main party in the interaction.\r\n */\r\n subheaderData: IPartyHeader;\r\n\r\n /**\r\n * This enables and configures the chat UI\r\n */\r\n chat?: {\r\n settings: IChatSettings;\r\n messages: IChatMessage[];\r\n isCustomerTyping?: boolean;\r\n };\r\n}\r\n\r\nexport interface IActivity {\r\n interactionId: string;\r\n WhoObject: IActivityDetails;\r\n WhatObject: IActivityDetails;\r\n whoList: IActivityDetails[];\r\n whatList: IActivityDetails[];\r\n CallType: string;\r\n CallDurationInSeconds: string;\r\n Subject: string;\r\n SubjectFieldName: string;\r\n NameFieldName: string;\r\n RelatedToFieldName: string;\r\n Description: string;\r\n Status: string;\r\n ActivityDate: string;\r\n TimeStamp: Date;\r\n ActivityId: string;\r\n quickCommentList: string[];\r\n}\r\n\r\nexport interface IActivityDetails {\r\n objectType: string;\r\n displayName: string;\r\n objectName: string;\r\n objectId: string;\r\n url: string;\r\n}\r\n\r\n/**\r\n * This contains the main identifying information about the interaction.\r\n */\r\nexport interface IPartyHeader {\r\n /**\r\n * Image that identifies the type of interaction\r\n * or the type of the identifying information(ex: phone icon for phone number)\r\n */\r\n image?: URL;\r\n /**\r\n * The tooltip to be displayed when the image is hovered over\r\n */\r\n tooltip?: string;\r\n /**\r\n * The value to be displayed\r\n */\r\n value: string;\r\n}\r\n\r\n/**\r\n * It contains URLs for minimize, maximize, interaction specific icon urls for interaction.\r\n * And header number which needs to be displayed at top.\r\n */\r\nexport interface IInteractionUIHeaders {\r\n /**\r\n * Minimize icon url.\r\n */\r\n minimizeUrl: URL;\r\n\r\n /**\r\n * Maximize Icon url.\r\n */\r\n maximizeUrl: URL;\r\n\r\n /**\r\n * This is the URL for the status image.\r\n * @memberof IInteractionUIHeaders\r\n */\r\n statusUrl: URL;\r\n\r\n /**\r\n * This is the handler for focus(Triggered on click of status).\r\n * @memberof IInteractionUIHeaders\r\n */\r\n focusHandler?: IFocus;\r\n\r\n /**\r\n * This is the text which is going to be displayed for status of the call.\r\n *\r\n * @memberof IInteractionUIHeaders\r\n */\r\n statusText: string;\r\n\r\n /**\r\n *This member will contain the text related to the direction of the call. E.g Inbound, Outbound etc.\r\n * @memberof IInteractionUIHeaders\r\n */\r\n directionText: string;\r\n\r\n /**\r\n *This data will be used to display hold counter whihc will be the combination of the current hold time and complete hold time.\r\n * @memberof IInteractionUIHeaders\r\n */\r\n holdCounterData?: IHoldCounterData;\r\n\r\n /**\r\n *If this value is set to true then hold counter is displayed based on the holdCounterData.\r\n * @memberof IInteractionUIHeaders\r\n */\r\n displayHoldCounter: boolean;\r\n}\r\nexport interface ICallDuration {\r\n startTime: number;\r\n endTime: number;\r\n}\r\nexport interface IHoldCounterData {\r\n pastCallDurations?: ICallDuration[];\r\n currentHoldStartTime: number;\r\n}\r\n\r\n/**\r\n * It contains Operation Icon URL and its hadlers which need to be displayed in Interaction.\r\n */\r\nexport interface IFocus {\r\n /**\r\n * metadata related to operation.\r\n */\r\n operationMetadata?: IMetadata[];\r\n /**\r\n * name of the operation.\r\n */\r\n operationName: string;\r\n /**\r\n * Handler which needs to be invoked when someone clicks on the operation icon.\r\n */\r\n handler: (operationName: string, operationMetadata?: IMetadata[]) => void;\r\n}\r\n\r\n/**\r\n * It contains Operation Icon URL and its hadlers which need to be displayed in Interaction.\r\n */\r\nexport interface IOperation {\r\n /**\r\n * metadata related to operation.\r\n */\r\n operationMetadata?: IMetadata[];\r\n /**\r\n * name of the operation.\r\n */\r\n operationName: string;\r\n /**\r\n * URL for the icon of operations.\r\n */\r\n icon: URL;\r\n /**\r\n * Title which needs to be doisplayed when someone hovers over the icon.\r\n */\r\n title: string;\r\n /**\r\n * Handler which needs to be invoked when someone clicks on the operation icon.\r\n */\r\n handler: (operationName: string, operationMetadata?: IMetadata[]) => void;\r\n /**\r\n * Browser accesskey to jump instantly to this operation Should conform to AMC norms and consist of a single printable character.\r\n */\r\n accesskey?: string\r\n}\r\n\r\n/**\r\n * This contains properties and operations to be displayed for conference member.\r\n */\r\nexport interface IParty {\r\n header: IPartyHeader;\r\n properties: Property[];\r\n operations: IOperation[];\r\n}\r\n\r\n/**\r\n * key value pairs which can be used amongst other interfaces/classes to store metadata of those entities.\r\n */\r\n\r\nexport interface IMetadata {\r\n key: string;\r\n value: string;\r\n}\r\n\r\n/**\r\n * This interface contains key value pairs, some custom operation which generates display key and display value.\r\n * Also it includes custom operation handler for click event on properties.\r\n */\r\nexport interface IProperty {\r\n /**\r\n * KEY value to be displayed on component.\r\n */\r\n displayKey?: string;\r\n\r\n /**\r\n * VALUE to be displayed on component.\r\n */\r\n displayValue?: any;\r\n displayValueType: ValueType;\r\n propertyMetadata?: IMetadata[];\r\n\r\n /**\r\n * Click event handler for property.\r\n */\r\n customOperations?: IEventHandler;\r\n /**\r\n * This flag decides if PROPERTY will be displayed on component or not.\r\n */\r\n visible: boolean;\r\n}\r\n\r\n/**\r\n * A helper method to make instances of [IProperty]\r\n */\r\nexport class Property implements IProperty {\r\n private key: string;\r\n private value: any;\r\n /**\r\n * KEY value to be displayed on component.\r\n */\r\n displayKey?: string;\r\n\r\n /**\r\n * VALUE to be displayed on component.\r\n */\r\n displayValue?: any;\r\n displayValueType: ValueType;\r\n propertyMetadata?: IMetadata[];\r\n\r\n /**\r\n * Click event handler for property.\r\n */\r\n customOperations?: IEventHandler;\r\n /**\r\n * This flag decides if PROPERTY will be displayed on component or not.\r\n */\r\n visible: boolean;\r\n\r\n /**\r\n * Operation responsible for generating displayKey and dispkayValur from key and value.\r\n */\r\n displayOperation: () => void = () => {\r\n this.displayKey = this.key;\r\n this.displayValue = this.value;\r\n }\r\n\r\n /**\r\n *\r\n * @param key\r\n * @param value : if value type is COUNTER then value should be start time in MilliSeconds.\r\n * @param visible\r\n * @param valueType\r\n * @param customOperation\r\n */\r\n constructor(\r\n key: string,\r\n value: any,\r\n visible?: boolean,\r\n valueType?: ValueType,\r\n customOperation?: IEventHandler\r\n ) {\r\n this.key = key;\r\n this.value = value;\r\n visible != null ? (this.visible = visible) : (this.visible = true);\r\n valueType != null\r\n ? (this.displayValueType = valueType)\r\n : (this.displayValueType = ValueType.STRING);\r\n this.customOperations = customOperation;\r\n this.displayOperation();\r\n }\r\n}\r\n\r\n/**\r\n * Interface which contains eventName and handler associated with it.\r\n */\r\nexport interface IEventHandler {\r\n eventName: string;\r\n handler: (eventName: string, eventMetadata?: IMetadata[]) => void;\r\n eventMetadata?: IMetadata[];\r\n}\r\n\r\n/**\r\n * enum for Value types of PROPERTY.\r\n */\r\nexport enum ValueType {\r\n STRING,\r\n COUNTER\r\n}\r\n","export function secondsToHms(seconds_in: number): string {\r\n seconds_in = Number(seconds_in);\r\n const h = Math.floor(seconds_in / 3600);\r\n const m = Math.floor(seconds_in % 3600 / 60);\r\n const s = Math.floor(seconds_in % 3600 % 60);\r\n\r\n const hDisplay = h > 0 ? h.toString() + ':' : '';\r\n const mDisplay = m > 0 ? ('0' + m.toString()).slice(-2) + ':' : '00:';\r\n const sDisplay = s > 0 ? ('0' + s.toString()).slice(-2) : '00';\r\n return hDisplay + mDisplay + sDisplay;\r\n}\r\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { ValueType, IProperty } from '../../models/uilibrary.model';\r\nimport { secondsToHms } from '../../Helpers';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@Component({\r\n selector: 'amc-property',\r\n templateUrl: './property.component.html',\r\n styleUrls: ['./property.component.scss', './../uilibrary.module.scss']\r\n})\r\nexport class PropertyComponent implements OnInit, OnDestroy {\r\n\r\n @Input() statusText: string;\r\n @Input() callId: string;\r\n @Input() callType: string;\r\n @Input() property: IProperty;\r\n\r\n labelledByText = '';\r\n title = '';\r\n\r\n /**\r\n * @ignore\r\n */\r\n processedDisplayValue: string;\r\n\r\n /**\r\n * @ignore\r\n */\r\n private _timerId?: number;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor() {\r\n\r\n this._timerId = null;\r\n this.processedDisplayValue = '';\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n ngOnInit() {\r\n if (this.statusText && this.callType) {\r\n this.labelledByText = `${this.statusText} ${this.callType}`;\r\n } else if (this.statusText) {\r\n this.labelledByText = this.statusText;\r\n } else if (this.callType) {\r\n this.labelledByText = this.callType\r\n }\r\n\r\n if (this.callType && this.callId) {\r\n this.title = `${this.callType} ${this.callId}`\r\n } else if (this.callType) {\r\n this.title = this.callType;\r\n } else if (this.callId) {\r\n this.title = this.callId;\r\n }\r\n\r\n this.initValues();\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n initValues(): void {\r\n if (this.property.displayValueType === ValueType.COUNTER) {\r\n this.startCallCounter();\r\n } else {\r\n this.processedDisplayValue = this.property.displayValue;\r\n }\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n private startCallCounter(): void {\r\n if (this._timerId == null) {\r\n this._timerId = window.setInterval(() => {\r\n const callStartTime: number = this.property.displayValue;\r\n const currentTime: number = new Date().getTime() / 1000;\r\n const secondsPassed: number = Math.floor((currentTime) - (callStartTime / 1000));\r\n this.processedDisplayValue = secondsToHms(secondsPassed);\r\n }, 1000);\r\n }\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n ngOnDestroy(): void {\r\n if (this.property.displayValueType === ValueType.COUNTER) {\r\n // clear the timer.\r\n if (this._timerId != null) {\r\n clearInterval(this._timerId);\r\n this._timerId = null;\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { IHoldCounterData, ICallDuration } from '../../models/uilibrary.model';\r\nimport { secondsToHms } from '../../Helpers';\r\n\r\n@Component({\r\n selector: 'amc-holdtimer',\r\n templateUrl: './holdtimer.component.html',\r\n styleUrls: ['./holdtimer.component.scss', './../uilibrary.module.scss']\r\n})\r\nexport class HoldtimerComponent implements OnInit, OnDestroy {\r\n @Input() holdCounterData: IHoldCounterData;\r\n @Input() statusText: string;\r\n @Input() callId: string;\r\n\r\n displayTime: string;\r\n labelledByText = '';\r\n\r\n private _timerId?: number;\r\n constructor() {\r\n this.displayTime = '00:00/00:00';\r\n }\r\n\r\n ngOnInit() {\r\n if (this.statusText && this.callId) {\r\n this.labelledByText = `${this.statusText} ${this.callId}`;\r\n } else if (this.statusText) {\r\n this.labelledByText = this.statusText;\r\n } else if (this.callId) {\r\n this.labelledByText = this.callId\r\n }\r\n\r\n this.startCallCounter();\r\n }\r\n /**\r\n * @ignore\r\n */\r\n private startCallCounter(): void {\r\n const pastTimeInSeconds = this.CaculatePastHoldDuration();\r\n if (this._timerId == null) {\r\n this._timerId = window.setInterval(() => {\r\n const currentTime: number = new Date().getTime() / 1000;\r\n const secondsPassedCurrentCall: number = Math.floor((currentTime) - (this.holdCounterData.currentHoldStartTime / 1000));\r\n this.displayTime = secondsToHms(secondsPassedCurrentCall) +\r\n '/' + secondsToHms(pastTimeInSeconds + secondsPassedCurrentCall);\r\n }, 1000);\r\n }\r\n }\r\n\r\n private CaculatePastHoldDuration(): number {\r\n let pastTimeInSeconds = 0;\r\n if (this.holdCounterData.pastCallDurations) {\r\n this.holdCounterData.pastCallDurations.forEach((holdTimerIterator: ICallDuration) => {\r\n pastTimeInSeconds += (holdTimerIterator.endTime - holdTimerIterator.startTime) / 1000;\r\n });\r\n }\r\n return pastTimeInSeconds;\r\n\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n ngOnDestroy(): void {\r\n // clear the timer.\r\n if (this._timerId != null) {\r\n clearInterval(this._timerId);\r\n this._timerId = null;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'amc-duration',\r\n templateUrl: './duration.component.html',\r\n styleUrls: ['./duration.component.scss', './../uilibrary.module.scss']\r\n})\r\nexport class DurationComponent implements OnInit, OnDestroy {\r\n @Input() statusText: string;\r\n @Input() callId: string;\r\n @Input() startTime: number;\r\n\r\n displayTime: string;\r\n labelledByText = '';\r\n\r\n private _timerId?: number;\r\n\r\n constructor() {\r\n this.displayTime = '00:00/00:00';\r\n }\r\n\r\n ngOnInit() {\r\n if (this.statusText && this.callId) {\r\n this.labelledByText = `${this.statusText} ${this.callId}`;\r\n } else if (this.statusText) {\r\n this.labelledByText = this.statusText;\r\n } else if (this.callId) {\r\n this.labelledByText = this.callId\r\n }\r\n\r\n this.startCallCounter();\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n private startCallCounter(): void {\r\n if (this._timerId == null) {\r\n this._timerId = window.setInterval(() => {\r\n const callStartTime: number = this.startTime;\r\n const currentTime: number = new Date().getTime() / 1000;\r\n const secondsPassed: number = Math.floor((currentTime) - (callStartTime / 1000));\r\n this.displayTime = Math.floor(secondsPassed / 60) + ':' + ('0' + (secondsPassed % 60)).slice(-2);\r\n }, 1000);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // clear the timer.\r\n if (this._timerId != null) {\r\n clearInterval(this._timerId);\r\n this._timerId = null;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, AfterViewChecked, AfterViewInit, OnInit, Renderer2 } from '@angular/core';\r\nimport { IChatMessage, IChatMessageType } from '../../models/chat.message';\r\nimport { IChatSettings } from '../../models/chat.settings';\r\n\r\n@Component({\r\n selector: 'app-chat-box',\r\n templateUrl: './chat-box.component.html',\r\n styleUrls: ['./chat-box.component.scss'],\r\n})\r\nexport class ChatBoxComponent implements AfterViewChecked, AfterViewInit, OnInit {\r\n @Input() settings: IChatSettings;\r\n @Input() isTyping = false;\r\n\r\n @Input() messages: IChatMessage[];\r\n @Input() newMsgs: IChatMessage[];\r\n private lastCount = -1;\r\n\r\n _isAgentTyping = false;\r\n @Output() isAgentTyping = new EventEmitter<boolean>();\r\n\r\n @Output() newMessage = new EventEmitter<string>();\r\n newMessageText = '';\r\n\r\n @ViewChild('MessagesContainer', { static: true }) messagesContainer: ElementRef;\r\n @ViewChild('autofocus', { static: false }) autofocus: ElementRef;\r\n\r\n usernameToColor: { [username: string]: string } = {};\r\n colors = [\r\n '#c2c4c4',\r\n '#ffab91',\r\n '#f48fb1',\r\n '#29b6f6',\r\n '#e1bee7',\r\n '#9ccc65',\r\n '#ffc107',\r\n '#26c6da',\r\n '#cddc39',\r\n ];\r\n colorsIndex = 0;\r\n agentColor = '#2db0e0';\r\n\r\n constructor(private renderer:Renderer2) {\r\n }\r\n ngOnInit(): void {\r\n this.renderer.selectRootElement('#autofocus').focus();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.renderer.selectRootElement('#autofocus').focus();\r\n }\r\n\r\n updatedMessage(): IChatMessage[] {\r\n try {\r\n if (typeof this.newMsgs !== 'undefined' && this.newMsgs.length > 0) {\r\n return this.newMsgs;\r\n } else {\r\n return this.messages;\r\n }\r\n }catch (e) { }\r\n finally {\r\n this.scrollToBottom();\r\n }\r\n\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (this.lastCount !== this.messages.length) {\r\n this.lastCount = this.messages.length;\r\n this.scrollToBottom();\r\n\r\n }\r\n }\r\n\r\n getColor(message: IChatMessage) {\r\n if (message.type && message.type === IChatMessageType.AGENT) {\r\n return this.agentColor;\r\n } else if (message.username) {\r\n if (!this.usernameToColor[message.username]) {\r\n this.usernameToColor[message.username] = this.colors[this.colorsIndex];\r\n this.colorsIndex = (this.colorsIndex + 1) % this.colors.length;\r\n }\r\n return this.usernameToColor[message.username];\r\n } else {\r\n return this.colors[0];\r\n }\r\n }\r\n\r\n shouldAlignRight(message: IChatMessage) {\r\n return message.type && message.type === IChatMessageType.AGENT;\r\n }\r\n\r\n sendNewMessage(event) {\r\n event.preventDefault();\r\n if (this.newMessageText) {\r\n this.newMessage.emit(this.newMessageText);\r\n this.newMessageText = '';\r\n }\r\n this.renderer.selectRootElement('#autofocus').focus();\r\n }\r\n\r\n setOnFocus(event) {\r\n this.renderer.selectRootElement('#autofocus').focus();\r\n }\r\n\r\n onNewMessageFocus(event: boolean) {\r\n const isTyping = event && this.newMessageText.length > 0;\r\n if (isTyping !== this._isAgentTyping) {\r\n this._isAgentTyping = isTyping;\r\n this.isAgentTyping.emit(isTyping);\r\n }\r\n }\r\n\r\n onKeyup() {\r\n const isTyping = this.newMessageText.length > 0;\r\n if (isTyping !== this._isAgentTyping) {\r\n this._isAgentTyping = isTyping;\r\n this.isAgentTyping.emit(isTyping);\r\n }\r\n }\r\n\r\n scrollToBottom() {\r\n try {\r\n this.messagesContainer.nativeElement.scrollTop = this.messagesContainer.nativeElement.scrollHeight;\r\n }\r\n catch (e) { }\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-chat-message',\r\n templateUrl: './chat-message.component.html',\r\n styleUrls: ['./chat-message.component.scss']\r\n})\r\nexport class ChatMessageComponent implements OnInit {\r\n @Input() message: string;\r\n @Input() alignRight = false;\r\n @Input() username: string;\r\n @Input() color: string;\r\n @Input() timestamp: string;\r\n @Input() image: string;\r\n @Input() fallbackImage: string;\r\n @Output() focusOn = new EventEmitter<any>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.focusOn.emit(true);\r\n }\r\n\r\n\r\n}\r\n","import { IDisposition, IDispositionResult } from './../../models/disposition.interface';\r\nimport { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'amc-disposition',\r\n templateUrl: './disposition.component.html',\r\n styleUrls: ['./disposition.component.css']\r\n})\r\nexport class DispositionComponent implements OnInit {\r\n @Input() disposition: IDisposition;\r\n\r\n @Output() dispositionEmitter = new EventEmitter<IDispositionResult>();\r\n\r\n selectedDispositionValue: string = '';\r\n dispositionName: string = '';\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n for (const metadata of this.disposition.dispositionMetadata) {\r\n if (metadata.key === 'callId') {\r\n this.dispositionName = `disposition_${metadata.value}`;\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (this.disposition.checkedDisposition) {\r\n this.selectedDispositionValue = this.disposition.checkedDisposition;\r\n }\r\n }\r\n\r\n submitDisposition() {\r\n const selectedDisposition: IDispositionResult = {\r\n dispositionId: this.selectedDispositionValue,\r\n dispositionName: this.disposition.disposition.get(this.selectedDispositionValue),\r\n dispositionMetadata: this.disposition.dispositionMetadata\r\n };\r\n\r\n this.dispositionEmitter.emit(selectedDisposition);\r\n }\r\n\r\n selectAndSubmitDisposition(event: KeyboardEvent, dispositionKey: string) {\r\n if (event.code === 'Enter') {\r\n this.selectedDispositionValue = dispositionKey;\r\n this.submitDisposition();\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { IActivity, IActivityDetails } from '../../models/uilibrary.model';\r\n\r\n@Component({\r\n selector: 'app-activity',\r\n templateUrl: './activity.component.html',\r\n styleUrls: ['./activity.component.css']\r\n})\r\nexport class ActivityComponent implements OnInit {\r\n\r\nisActivityMaximized: boolean;\r\n@Input() activity: IActivity;\r\n@Output() ActivitySave: EventEmitter<IActivity> = new EventEmitter<IActivity>();\r\n@Output() OnNameSelectChange: EventEmitter<IActivity> = new EventEmitter<IActivity>();\r\n@Output() OnRelatedToChange: EventEmitter<IActivity> = new EventEmitter<IActivity>();\r\n@Output() OnSubjectChange: EventEmitter<IActivity> = new EventEmitter<IActivity>();\r\n@Output() OnCallNotesChange: EventEmitter<IActivity> = new EventEmitter<IActivity>();\r\n\r\n constructor() {\r\n this.isActivityMaximized = true;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public onNameSelectChange(event) {\r\n this.activity.WhoObject = this.getWho(event.currentTarget.value);\r\n this.OnNameSelectChange.emit(this.activity);\r\n }\r\n\r\n public parseWhoObject(whoObject: IActivityDetails): string {\r\n return whoObject.objectType + ': ' + whoObject.objectName;\r\n }\r\n\r\n public parseWhatObject(whatObject: IActivityDetails): string {\r\n return whatObject.objectType + ': ' + whatObject.objectName;\r\n }\r\n\r\n public onRelatedToChange(event) {\r\n this.activity.WhatObject = this.getWhat(event.currentTarget.value);\r\n this.OnRelatedToChange.emit(this.activity);\r\n }\r\n\r\n public onSubjectChange(event) {\r\n this.activity.Subject = event.srcElement.value;\r\n this.OnSubjectChange.emit(this.activity);\r\n }\r\n public onCallNotesChange(event) {\r\n this.activity.Subject = event.srcElement.value.trim();\r\n this.OnCallNotesChange.emit(this.activity);\r\n }\r\n\r\n public getWho(id): IActivityDetails {\r\n for (let i = 0; i < this.activity.whoList.length; i++) {\r\n if (this.activity.whoList[i].objectId === id) {\r\n return this.activity.whoList[i];\r\n }\r\n }\r\n }\r\n public getWhat(id): IActivityDetails {\r\n for (let i = 0; i < this.activity.whatList.length; i++) {\r\n if (this.activity.whatList[i].objectId === id) {\r\n return this.activity.whatList[i];\r\n }\r\n }\r\n }\r\n\r\n public loadQuickComment(value) {\r\n this.activity.Description = this.activity.Description + this.activity.quickCommentList[value];\r\n }\r\n\r\n public activitySave(clearActivityFields) {\r\n this.ActivitySave.emit(this.activity);\r\n }\r\n}\r\n","import { ILoginData } from './../../models/login.interface';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'amc-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n @Input() loginData: ILoginData;\r\n @Output() loginDetailsProvided = new EventEmitter<ILoginData>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (!this.loginData.header) {\r\n this.loginData.header = 'Login';\r\n }\r\n\r\n for (let field of this.loginData.fields) {\r\n if (!field.isInvalid) {\r\n field.isInvalid = false;\r\n }\r\n }\r\n }\r\n\r\n onLogin(loginForm: NgForm) {\r\n for (const field of this.loginData.fields) {\r\n field.value = loginForm.value[field.name];\r\n }\r\n\r\n this.loginDetailsProvided.emit(this.loginData);\r\n }\r\n\r\n focusOutOfInput(loginForm: NgForm, field) {\r\n if (!loginForm.controls[field.name].valid) {\r\n field.isInvalid = true;\r\n }\r\n }\r\n}\r\n","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'amc-create',\r\n templateUrl: './create.component.html',\r\n styleUrls: ['./create.component.css']\r\n})\r\nexport class CreateComponent {\r\n @Output() CreateNewEntity: EventEmitter<string> = new EventEmitter<string>();\r\n isCreateMaximized: boolean;\r\n @Input() Entities: any;\r\n\r\n constructor() {\r\n this.isCreateMaximized = true;\r\n }\r\n createNewEntity(type: string) {\r\n this.CreateNewEntity.emit(type);\r\n }\r\n\r\n getEntities() {\r\n return Object.keys(this.Entities);\r\n }\r\n\r\n getDisplay(entity) {\r\n return entity.substring(0, entity.indexOf('|'));\r\n }\r\n\r\n getImage(entity) {\r\n return entity.substring(entity.indexOf('|') + 1);\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n OnInit,\r\n OnChanges,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { IActivity } from '../../models/IActivity';\r\nimport { IActivityDetails } from '../../models/IActivityDetails';\r\n\r\n@Component({\r\n selector: 'amc-recent-activity',\r\n templateUrl: './recent-activity.component.html',\r\n styleUrls: ['./recent-activity.component.css']\r\n})\r\nexport class RecentActivityComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() ActivityDetails: IActivity;\r\n @Input() isInConsoleView: boolean;\r\n @Input() quickCommentList: string[];\r\n @Input() workingScenarioID: string;\r\n @Input() idx: number;\r\n @Input() last: boolean;\r\n @Input() WhoObjectList: IActivityDetails[];\r\n @Input() WhatObjectList: IActivityDetails[];\r\n\r\n @Output() EventEmitter: EventEmitter<{\r\n eventName: string;\r\n idx: number;\r\n newValue?: IActivity;\r\n }>;\r\n\r\n private debouncer: Subject<void>;\r\n private eventList: Set<String>;\r\n\r\n constructor() {\r\n this.EventEmitter = new EventEmitter<{\r\n eventName: string;\r\n idx: number;\r\n newValue?: IActivity;\r\n }>();\r\n\r\n this.debouncer = new Subject();\r\n this.eventList = new Set();\r\n }\r\n\r\n ngOnChanges(): void {\r\n }\r\n\r\n getIcon(scenario): string {\r\n switch (scenario) {\r\n case 'Telephony':\r\n return '../../assets/images/Phone_Number_Icon.png';\r\n case 'Email':\r\n return '../../assets/images/emailTab.png';\r\n default:\r\n return '../../assets/images/chat.png';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.debouncer.pipe(debounceTime(500)).subscribe(() => {\r\n const newEvent = {\r\n eventName: Array.from(this.eventList).join('|'),\r\n idx: this.idx,\r\n newValue: this.ActivityDetails\r\n };\r\n this.EventEmitter.emit(newEvent);\r\n this.eventList.clear();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {}\r\n\r\n expandAndCollapseRecentActivity(isExpand: boolean) {\r\n if (isExpand) {\r\n this.EventEmitter.emit({\r\n eventName: 'WorkingEvtivityChanged',\r\n idx: this.idx,\r\n newValue: this.ActivityDetails\r\n });\r\n } else {\r\n this.EventEmitter.emit({\r\n eventName: 'WorkingEvtivityChanged',\r\n idx: -1,\r\n newValue: this.ActivityDetails\r\n });\r\n }\r\n }\r\n\r\n openActivity() {\r\n this.EventEmitter.emit({\r\n eventName: 'OpenCallActivity',\r\n idx: this.idx,\r\n newValue: this.ActivityDetails\r\n });\r\n }\r\n\r\n onSubjectChange() {\r\n this.eventList.add('ActivitySubjectChanged');\r\n this.debouncer.next();\r\n }\r\n\r\n onSubjectKeyUp() {\r\n this.eventList.add('ActivitySubjectChanged');\r\n this.debouncer.next();\r\n }\r\n\r\n onWhoObjectChange(event: any) {\r\n this.ActivityDetails.WhoObject = this.WhoObjectList.find((obj) => obj.objectId === event);\r\n this.EventEmitter.emit({\r\n eventName: 'ActivityWhoObjectChanged',\r\n idx: this.idx,\r\n newValue: this.ActivityDetails\r\n });\r\n }\r\n\r\n onRelatedToChange(event: any) {\r\n this.ActivityDetails.WhatObject = this.WhatObjectList.find((obj) => obj.objectId === event);\r\n this.EventEmitter.emit({\r\n eventName: 'ActivityWhatObjectChanged',\r\n idx: this.idx,\r\n newValue: this.ActivityDetails\r\n });\r\n }\r\n\r\n onCallNotesChange() {\r\n this.eventList.add('ActivityCallNoteChanged');\r\n this.debouncer.next();\r\n }\r\n\r\n onCallNotesKeyUp() {\r\n this.eventList.add('ActivityCallNoteChanged');\r\n this.debouncer.next();\r\n }\r\n\r\n addQuickCommentToDescription(comment: string) {\r\n if (this.ActivityDetails.Description) {\r\n this.ActivityDetails.Description += '\\n';\r\n }\r\n this.ActivityDetails.Description += comment;\r\n this.eventList.add('ActivityCallNoteChanged');\r\n this.debouncer.next();\r\n }\r\n\r\n submitActivity() {\r\n this.ActivityDetails.IsProcessing = true;\r\n this.EventEmitter.emit({\r\n eventName: 'SubmitActivity',\r\n idx: this.idx,\r\n newValue: this.ActivityDetails\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IActivityDetails } from '../../models/IActivityDetails';\r\nimport { IActivity } from '../../models/IActivity';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'amc-current-activity',\r\n templateUrl: './current-activity.component.html',\r\n styleUrls: ['./current-activity.component.css']\r\n})\r\nexport class CurrentActivityComponent implements OnInit {\r\n @Input() ActivityDetails: IActivity;\r\n @Input() quickCommentList: string[];\r\n @Input() isAutoSave: boolean;\r\n @Input() enableDiscard: boolean;\r\n @Input() autoSaveTimer: number;\r\n @Input() quickCommentOptionRequiredCadArray: any;\r\n @Input() WhoObjectList: IActivityDetails[];\r\n @Input() WhatObjectList: IActivityDetails[];\r\n @Input() scenarioToCADMap: {};\r\n @Output() EventEmitter: EventEmitter<{\r\n eventName: string;\r\n newValue?: IActivity;\r\n }>;\r\n\r\n private eventList: Set<String>;\r\n private debouncer: Subject<void>;\r\n\r\n isActivityMaximized: boolean;\r\n\r\n constructor() {\r\n this.isActivityMaximized = true;\r\n\r\n this.EventEmitter = new EventEmitter<{\r\n eventName: string;\r\n newValue?: IActivity;\r\n }>();\r\n\r\n this.debouncer = new Subject();\r\n this.eventList = new Set();\r\n }\r\n\r\n async ngOnInit() {\r\n this.debouncer.pipe(debounceTime(500)).subscribe(() => {\r\n const newEvent = {\r\n eventName: Array.from(this.eventList).join('|'),\r\n newValue: this.ActivityDetails\r\n };\r\n this.EventEmitter.emit(newEvent);\r\n this.eventList.clear();\r\n });\r\n }\r\n\r\n submitActivity() {\r\n try {\r\n this.ActivityDetails.IsProcessing = true;\r\n this.EventEmitter.emit({\r\n eventName: 'SubmitActivity',\r\n newValue: this.ActivityDetails\r\n });\r\n } catch (error) {}\r\n }\r\n\r\n triggerDiscardActivity() {\r\n try {\r\n this.EventEmitter.emit({\r\n eventName: 'TriggerDiscardActivity',\r\n newValue: this.ActivityDetails\r\n });\r\n } catch (error) {}\r\n }\r\n\r\n onNameChange(event: any) {\r\n try {\r\n this.ActivityDetails.WhoObject = this.WhoObjectList.find((obj) => obj.objectId === event);\r\n this.EventEmitter.emit({\r\n eventName: 'ActivityWhoObjectChanged',\r\n newValue: this.ActivityDetails\r\n });\r\n } catch (error) {}\r\n }\r\n\r\n onRelatedToChange(event: any) {\r\n try {\r\n this.ActivityDetails.WhatObject = this.WhatObjectList.find((obj) => obj.objectId === event);\r\n this.EventEmitter.emit({\r\n eventName: 'ActivityWhatObjectChanged',\r\n newValue: this.ActivityDetails\r\n });\r\n } catch (error) {}\r\n }\r\n\r\n onSubjectChange() {\r\n try {\r\n this.eventList.add('ActivitySubjectChanged');\r\n this.debouncer.next();\r\n } catch (error) {}\r\n }\r\n\r\n onSubjectKeyUp() {\r\n try {\r\n this.eventList.add('ActivitySubjectChanged');\r\n this.debouncer.next();\r\n } catch (error) {}\r\n }\r\n\r\n onCallNotesChange() {\r\n try {\r\n this.eventList.add('ActivityCallNoteChanged');\r\n this.debouncer.next();\r\n } catch (error) {}\r\n }\r\n\r\n onCallNotesKeyUp() {\r\n try{\r\n this.eventList.add('ActivityCallNoteChanged');\r\n this.debouncer.next();\r\n } catch (error) {}\r\n }\r\n\r\n addQuickCommentToDescription(comment: string) {\r\n try {\r\n let descriptionToSet = comment;\r\n if (this.quickCommentOptionRequiredCadArray[comment]) {\r\n let cadFields = {};\r\n if (this.ActivityDetails) {\r\n cadFields = this.scenarioToCADMap[this.ActivityDetails.ScenarioId];\r\n }\r\n for (\r\n let i = 0;\r\n i < this.quickCommentOptionRequiredCadArray[comment].length;\r\n i++\r\n ) {\r\n let keyToCheckIfCADExists =\r\n this.quickCommentOptionRequiredCadArray[comment][i];\r\n const stringToBeReplaced =\r\n this.quickCommentOptionRequiredCadArray[comment][i];\r\n keyToCheckIfCADExists = keyToCheckIfCADExists.replace('{{', '');\r\n keyToCheckIfCADExists = keyToCheckIfCADExists.replace('}}', '');\r\n if (cadFields[keyToCheckIfCADExists]) {\r\n descriptionToSet = descriptionToSet.replace(\r\n stringToBeReplaced,\r\n cadFields[keyToCheckIfCADExists].Value\r\n );\r\n }\r\n }\r\n }\r\n if (this.ActivityDetails.Description) {\r\n this.ActivityDetails.Description += '\\n';\r\n }\r\n this.ActivityDetails.Description += descriptionToSet;\r\n this.eventList.add('ActivityCallNoteChanged');\r\n this.debouncer.next();\r\n } catch (error) {}\r\n }\r\n\r\n protected parseWhoObject(whoObject: IActivityDetails): string {\r\n try {\r\n return whoObject.displayName + ': ' + whoObject.objectName;\r\n } catch (error) {}\r\n }\r\n\r\n protected parseWhatObject(whatObject: IActivityDetails): string {\r\n try {\r\n return whatObject.displayName + ': ' + whatObject.objectName;\r\n } catch (error) {}\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnChanges\r\n} from '@angular/core';\r\nimport * as api from '@amc-technology/davinci-api';\r\nimport { IActivity } from '../../models/IActivity';\r\n\r\n@Component({\r\n selector: 'amc-search-information',\r\n templateUrl: './search-information.component.html',\r\n styleUrls: ['./search-information.component.css']\r\n})\r\nexport class SearchInformationComponent implements OnChanges {\r\n @Input() ActivityDetails: IActivity;\r\n @Input() searchLayout: api.SearchLayouts;\r\n @Input() searchRecordList: Array<api.IRecordItem>;\r\n @Output() agentSelectedCallerInformation: EventEmitter<{\r\n id: string;\r\n value: string;\r\n }>;\r\n\r\n isSearchInformationMaximized: boolean;\r\n imageLocation: string;\r\n singleMatchIconSrc: string;\r\n singleMatchData: any;\r\n multiMatchData: any[];\r\n shouldShowAllMultiMatchOptions: boolean;\r\n\r\n constructor() {\r\n this.isSearchInformationMaximized = true;\r\n this.singleMatchData = null;\r\n this.multiMatchData = [];\r\n this.agentSelectedCallerInformation = new EventEmitter();\r\n }\r\n\r\n ngOnChanges() {\r\n this.renderData();\r\n }\r\n\r\n protected renderData() {\r\n try {\r\n this.singleMatchData = null;\r\n this.multiMatchData = [];\r\n this.shouldShowAllMultiMatchOptions = false;\r\n if (this.searchRecordList.length === 1) {\r\n this.singleMatchData = this.parseSearchRecordForNameSingleMatch(\r\n this.searchRecordList[0]\r\n );\r\n } else if (this.searchRecordList.length > 1) {\r\n for (let i = 0; i < this.searchRecordList.length; i++) {\r\n this.multiMatchData.push(\r\n this.parseSearchRecordForNameMultiMatch(this.searchRecordList[i])\r\n );\r\n }\r\n }\r\n } catch (error) {}\r\n }\r\n\r\n onAgentSelectedCallerInformation(event: any) {\r\n try {\r\n this.agentSelectedCallerInformation.emit({\r\n id: event.target.id,\r\n value: event.target.value\r\n });\r\n } catch (error) {}\r\n }\r\n\r\n protected parseSearchRecordForNameSingleMatch(searchRecord: api.IRecordItem) {\r\n const results = [];\r\n try {\r\n const src = this.getEntityImgToDisplay(searchRecord);\r\n this.singleMatchIconSrc = src;\r\n const sLayoutInfo = this.getSearchLayoutInfoForDisplay(searchRecord);\r\n for (let j = 0; j < sLayoutInfo.DisplayFields.length; j++) {\r\n if (sLayoutInfo.DisplayFields && sLayoutInfo.DisplayFields[j].DevName) {\r\n const nameKey = sLayoutInfo.DisplayFields[j].DevName;\r\n const keys = Object.keys(searchRecord.fields);\r\n for (let i = 0; i < keys.length; i++) {\r\n if (\r\n searchRecord.fields[keys[i]] &&\r\n searchRecord.fields[keys[i]].DevName === nameKey\r\n ) {\r\n let displayRecord = searchRecord.fields[keys[i]].Value;\r\n if (j === 0) {\r\n displayRecord = searchRecord.displayName\r\n ? [searchRecord.displayName, displayRecord]\r\n : [searchRecord.type, displayRecord];\r\n } else {\r\n displayRecord = sLayoutInfo.DisplayFields[j].DisplayName\r\n ? [sLayoutInfo.DisplayFields[j].DisplayName, displayRecord]\r\n : [sLayoutInfo.DisplayFields[j].DevName, displayRecord];\r\n }\r\n results.push(displayRecord);\r\n }\r\n }\r\n }\r\n }\r\n } catch (error) {}\r\n return results;\r\n }\r\n\r\n protected parseSearchRecordForNameMultiMatch(searchRecord: api.IRecordItem) {\r\n const results = [];\r\n try {\r\n const src = this.getEntityImgToDisplay(searchRecord);\r\n const sLayoutInfo = this.getSearchLayoutInfoForDisplay(searchRecord);\r\n for (let j = 0; j < sLayoutInfo.DisplayFields.length; j++) {\r\n if (sLayoutInfo.DisplayFields && sLayoutInfo.DisplayFields[j].DevName) {\r\n const nameKey = sLayoutInfo.DisplayFields[j].DevName;\r\n const keys = Object.keys(searchRecord.fields);\r\n for (let i = 0; i < keys.length; i++) {\r\n if (\r\n searchRecord.fields[keys[i]] &&\r\n searchRecord.fields[keys[i]].DevName === nameKey\r\n ) {\r\n let displayRecord = searchRecord.fields[keys[i]].Value;\r\n if (j === 0) {\r\n displayRecord = searchRecord.displayName\r\n ? [searchRecord.displayName, displayRecord]\r\n : [searchRecord.type, displayRecord];\r\n } else {\r\n displayRecord = sLayoutInfo.DisplayFields[j].DisplayName\r\n ? [sLayoutInfo.DisplayFields[j].DisplayName, displayRecord]\r\n : [sLayoutInfo.DisplayFields[j].DevName, displayRecord];\r\n }\r\n displayRecord.push(src);\r\n results.push(displayRecord);\r\n return results;\r\n }\r\n }\r\n }\r\n }\r\n } catch (error) {}\r\n return results;\r\n }\r\n\r\n protected getEntityImgToDisplay(searchRecord: api.IRecordItem) {\r\n let src = '';\r\n try {\r\n if (searchRecord.type) {\r\n if (searchRecord.type.toUpperCase() === 'CONTACT') {\r\n src = '../../assets/images/Icon_Contact.png';\r\n } else if (searchRecord.type.toUpperCase() === 'ACCOUNT') {\r\n src = '../../assets/images/Icon_Account.png';\r\n } else if (searchRecord.type.toUpperCase() === 'LEAD') {\r\n src = '../../assets/images/Icon_Lead.png';\r\n } else {\r\n src = '../../assets/images/Miscellaneous_Icon.png';\r\n }\r\n }\r\n } catch (error) {}\r\n return src;\r\n }\r\n\r\n protected getSearchLayoutInfoForDisplay(searchRecord: api.IRecordItem) {\r\n let layoutInfo: any;\r\n try {\r\n layoutInfo = this.searchLayout.layouts[0][\r\n this.ActivityDetails.CallType\r\n ].find((i) => i.DevName === searchRecord.type);\r\n } catch (error) {}\r\n return layoutInfo;\r\n }\r\n}\r\n","import { NgModule, Injector } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InteractionComponent } from './components/interaction/interaction.component';\r\nimport { ScenarioComponent } from './components/scenario/scenario.component';\r\nimport { OperationComponent } from './components/operation/operation.component';\r\nimport { PropertyComponent } from './components/property/property.component';\r\nimport { HoldtimerComponent } from './components/holdtimer/holdtimer.component';\r\nimport { DurationComponent } from './components/duration/duration.component';\r\nimport { ChatBoxComponent } from './components/chat-box/chat-box.component';\r\nimport { ChatMessageComponent } from './components/chat-message/chat-message.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { createCustomElement } from '@angular/elements';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { ElementZoneStrategyFactory } from 'elements-zone-strategy';\r\nimport { DispositionComponent } from './components/disposition/disposition.component';\r\nimport { ActivityComponent } from './components/activity/activity.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { CreateComponent } from './components/create/create.component';\r\nimport { RecentActivityComponent } from './components/recent-activity/recent-activity.component';\r\nimport { CurrentActivityComponent } from './components/current-activity/current-activity.component';\r\nimport { SearchInformationComponent } from './components/search-information/search-information.component';\r\nimport { MatTabsModule } from \"@angular/material/tabs\";\r\n\r\n@NgModule({\r\n imports: [BrowserModule, CommonModule, FormsModule,MatTabsModule],\r\n declarations: [\r\n InteractionComponent,\r\n ScenarioComponent,\r\n OperationComponent,\r\n PropertyComponent,\r\n HoldtimerComponent,\r\n DurationComponent,\r\n ChatBoxComponent,\r\n ChatMessageComponent,\r\n DispositionComponent,\r\n ActivityComponent,\r\n LoginComponent,\r\n CreateComponent,\r\n RecentActivityComponent,\r\n CurrentActivityComponent,\r\n SearchInformationComponent\r\n ],\r\n providers:[],\r\n entryComponents: [ScenarioComponent, DispositionComponent, LoginComponent, CreateComponent, RecentActivityComponent, CurrentActivityComponent, SearchInformationComponent],\r\n bootstrap: [],\r\n exports: [ScenarioComponent, DispositionComponent, LoginComponent, CreateComponent, RecentActivityComponent, CurrentActivityComponent, SearchInformationComponent]\r\n})\r\nexport class UILibraryModule {\r\n constructor(private injector: Injector) { }\r\n\r\n ngDoBootstrap(app) {\r\n if (!customElements.get('amc-webcomponents-scenario')) {\r\n const strategyFactory = new ElementZoneStrategyFactory(\r\n ScenarioComponent,\r\n this.injector\r\n );\r\n customElements.define(\r\n 'amc-webcomponents-scenario',\r\n createCustomElement(ScenarioComponent, {\r\n injector: this.injector,\r\n strategyFactory: strategyFactory\r\n })\r\n );\r\n }\r\n if (!customElements.get('amc-webcomponents-disposition')) {\r\n const strategyFactory = new ElementZoneStrategyFactory(\r\n DispositionComponent,\r\n this.injector\r\n );\r\n customElements.define(\r\n 'amc-webcomponents-disposition',\r\n createCustomElement(DispositionComponent, {\r\n injector: this.injector,\r\n strategyFactory: strategyFactory\r\n })\r\n );\r\n }\r\n if (!customElements.get('amc-webcomponents-login')) {\r\n const strategyFactory = new ElementZoneStrategyFactory(\r\n LoginComponent,\r\n this.injector\r\n );\r\n customElements.define(\r\n 'amc-webcomponents-login',\r\n createCustomElement(LoginComponent, {\r\n injector: this.injector,\r\n strategyFactory: strategyFactory\r\n })\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport * from './models/uilibrary.model';\r\n"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
export { ActivityComponent as ɵj } from './projects/UILibrary/src/app/components/activity/activity.component';
|
|
6
|
-
export { ChatBoxComponent as ɵg } from './projects/UILibrary/src/app/components/chat-box/chat-box.component';
|
|
7
|
-
export { ChatMessageComponent as ɵh } from './projects/UILibrary/src/app/components/chat-message/chat-message.component';
|
|
8
|
-
export { CreateComponent as ɵl } from './projects/UILibrary/src/app/components/create/create.component';
|
|
9
|
-
export { CurrentActivityComponent as ɵn } from './projects/UILibrary/src/app/components/current-activity/current-activity.component';
|
|
10
|
-
export { DispositionComponent as ɵi } from './projects/UILibrary/src/app/components/disposition/disposition.component';
|
|
11
|
-
export { DurationComponent as ɵf } from './projects/UILibrary/src/app/components/duration/duration.component';
|
|
12
|
-
export { HoldtimerComponent as ɵe } from './projects/UILibrary/src/app/components/holdtimer/holdtimer.component';
|
|
13
|
-
export { InteractionComponent as ɵa } from './projects/UILibrary/src/app/components/interaction/interaction.component';
|
|
14
|
-
export { LoginComponent as ɵk } from './projects/UILibrary/src/app/components/login/login.component';
|
|
15
|
-
export { OperationComponent as ɵc } from './projects/UILibrary/src/app/components/operation/operation.component';
|
|
16
|
-
export { PropertyComponent as ɵd } from './projects/UILibrary/src/app/components/property/property.component';
|
|
17
|
-
export { RecentActivityComponent as ɵm } from './projects/UILibrary/src/app/components/recent-activity/recent-activity.component';
|
|
18
|
-
export { ScenarioComponent as ɵb } from './projects/UILibrary/src/app/components/scenario/scenario.component';
|
|
19
|
-
export { SearchInformationComponent as ɵo } from './projects/UILibrary/src/app/components/search-information/search-information.component';
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1jLXRlY2hub2xvZ3ktdWktbGlicmFyeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbWMtdGVjaG5vbG9neS91aS1saWJyYXJ5LyIsInNvdXJjZXMiOlsiYW1jLXRlY2hub2xvZ3ktdWktbGlicmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUM1RyxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDM0csT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDZFQUE2RSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDdEcsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLHFGQUFxRixDQUFDO0FBQ25JLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwyRUFBMkUsQ0FBQztBQUNySCxPQUFPLEVBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDNUcsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBQy9HLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwyRUFBMkUsQ0FBQztBQUNySCxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx1RUFBdUUsQ0FBQztBQUMvRyxPQUFPLEVBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDNUcsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLG1GQUFtRixDQUFDO0FBQ2hJLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUM1RyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0seUZBQXlGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7QWN0aXZpdHlDb21wb25lbnQgYXMgybVqfSBmcm9tICcuL3Byb2plY3RzL1VJTGlicmFyeS9zcmMvYXBwL2NvbXBvbmVudHMvYWN0aXZpdHkvYWN0aXZpdHkuY29tcG9uZW50JztcbmV4cG9ydCB7Q2hhdEJveENvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vcHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9jaGF0LWJveC9jaGF0LWJveC5jb21wb25lbnQnO1xuZXhwb3J0IHtDaGF0TWVzc2FnZUNvbXBvbmVudCBhcyDJtWh9IGZyb20gJy4vcHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9jaGF0LW1lc3NhZ2UvY2hhdC1tZXNzYWdlLmNvbXBvbmVudCc7XG5leHBvcnQge0NyZWF0ZUNvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vcHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9jcmVhdGUvY3JlYXRlLmNvbXBvbmVudCc7XG5leHBvcnQge0N1cnJlbnRBY3Rpdml0eUNvbXBvbmVudCBhcyDJtW59IGZyb20gJy4vcHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9jdXJyZW50LWFjdGl2aXR5L2N1cnJlbnQtYWN0aXZpdHkuY29tcG9uZW50JztcbmV4cG9ydCB7RGlzcG9zaXRpb25Db21wb25lbnQgYXMgybVpfSBmcm9tICcuL3Byb2plY3RzL1VJTGlicmFyeS9zcmMvYXBwL2NvbXBvbmVudHMvZGlzcG9zaXRpb24vZGlzcG9zaXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7RHVyYXRpb25Db21wb25lbnQgYXMgybVmfSBmcm9tICcuL3Byb2plY3RzL1VJTGlicmFyeS9zcmMvYXBwL2NvbXBvbmVudHMvZHVyYXRpb24vZHVyYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7SG9sZHRpbWVyQ29tcG9uZW50IGFzIMm1ZX0gZnJvbSAnLi9wcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2hvbGR0aW1lci9ob2xkdGltZXIuY29tcG9uZW50JztcbmV4cG9ydCB7SW50ZXJhY3Rpb25Db21wb25lbnQgYXMgybVhfSBmcm9tICcuL3Byb2plY3RzL1VJTGlicmFyeS9zcmMvYXBwL2NvbXBvbmVudHMvaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCB7TG9naW5Db21wb25lbnQgYXMgybVrfSBmcm9tICcuL3Byb2plY3RzL1VJTGlicmFyeS9zcmMvYXBwL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50JztcbmV4cG9ydCB7T3BlcmF0aW9uQ29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9wcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL29wZXJhdGlvbi9vcGVyYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7UHJvcGVydHlDb21wb25lbnQgYXMgybVkfSBmcm9tICcuL3Byb2plY3RzL1VJTGlicmFyeS9zcmMvYXBwL2NvbXBvbmVudHMvcHJvcGVydHkvcHJvcGVydHkuY29tcG9uZW50JztcbmV4cG9ydCB7UmVjZW50QWN0aXZpdHlDb21wb25lbnQgYXMgybVtfSBmcm9tICcuL3Byb2plY3RzL1VJTGlicmFyeS9zcmMvYXBwL2NvbXBvbmVudHMvcmVjZW50LWFjdGl2aXR5L3JlY2VudC1hY3Rpdml0eS5jb21wb25lbnQnO1xuZXhwb3J0IHtTY2VuYXJpb0NvbXBvbmVudCBhcyDJtWJ9IGZyb20gJy4vcHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9zY2VuYXJpby9zY2VuYXJpby5jb21wb25lbnQnO1xuZXhwb3J0IHtTZWFyY2hJbmZvcm1hdGlvbkNvbXBvbmVudCBhcyDJtW99IGZyb20gJy4vcHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9zZWFyY2gtaW5mb3JtYXRpb24vc2VhcmNoLWluZm9ybWF0aW9uLmNvbXBvbmVudCc7Il19
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export function secondsToHms(seconds_in) {
|
|
2
|
-
seconds_in = Number(seconds_in);
|
|
3
|
-
const h = Math.floor(seconds_in / 3600);
|
|
4
|
-
const m = Math.floor(seconds_in % 3600 / 60);
|
|
5
|
-
const s = Math.floor(seconds_in % 3600 % 60);
|
|
6
|
-
const hDisplay = h > 0 ? h.toString() + ':' : '';
|
|
7
|
-
const mDisplay = m > 0 ? ('0' + m.toString()).slice(-2) + ':' : '00:';
|
|
8
|
-
const sDisplay = s > 0 ? ('0' + s.toString()).slice(-2) : '00';
|
|
9
|
-
return hDisplay + mDisplay + sDisplay;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbWMtdGVjaG5vbG9neS91aS1saWJyYXJ5LyIsInNvdXJjZXMiOlsicHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvSGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsWUFBWSxDQUFDLFVBQWtCO0lBQzdDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDeEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUU3QyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvRCxPQUFPLFFBQVEsR0FBRyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gc2Vjb25kc1RvSG1zKHNlY29uZHNfaW46IG51bWJlcik6IHN0cmluZyB7XHJcbiAgc2Vjb25kc19pbiA9IE51bWJlcihzZWNvbmRzX2luKTtcclxuICBjb25zdCBoID0gTWF0aC5mbG9vcihzZWNvbmRzX2luIC8gMzYwMCk7XHJcbiAgY29uc3QgbSA9IE1hdGguZmxvb3Ioc2Vjb25kc19pbiAlIDM2MDAgLyA2MCk7XHJcbiAgY29uc3QgcyA9IE1hdGguZmxvb3Ioc2Vjb25kc19pbiAlIDM2MDAgJSA2MCk7XHJcblxyXG4gIGNvbnN0IGhEaXNwbGF5ID0gaCA+IDAgPyBoLnRvU3RyaW5nKCkgKyAnOicgOiAnJztcclxuICBjb25zdCBtRGlzcGxheSA9IG0gPiAwID8gKCcwJyArIG0udG9TdHJpbmcoKSkuc2xpY2UoLTIpICsgJzonIDogJzAwOic7XHJcbiAgY29uc3Qgc0Rpc3BsYXkgPSBzID4gMCA/ICgnMCcgKyBzLnRvU3RyaW5nKCkpLnNsaWNlKC0yKSA6ICcwMCc7XHJcbiAgcmV0dXJuIGhEaXNwbGF5ICsgbURpc3BsYXkgKyBzRGlzcGxheTtcclxufVxyXG4iXX0=
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
3
|
-
let ActivityComponent = class ActivityComponent {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.ActivitySave = new EventEmitter();
|
|
6
|
-
this.OnNameSelectChange = new EventEmitter();
|
|
7
|
-
this.OnRelatedToChange = new EventEmitter();
|
|
8
|
-
this.OnSubjectChange = new EventEmitter();
|
|
9
|
-
this.OnCallNotesChange = new EventEmitter();
|
|
10
|
-
this.isActivityMaximized = true;
|
|
11
|
-
}
|
|
12
|
-
ngOnInit() {
|
|
13
|
-
}
|
|
14
|
-
onNameSelectChange(event) {
|
|
15
|
-
this.activity.WhoObject = this.getWho(event.currentTarget.value);
|
|
16
|
-
this.OnNameSelectChange.emit(this.activity);
|
|
17
|
-
}
|
|
18
|
-
parseWhoObject(whoObject) {
|
|
19
|
-
return whoObject.objectType + ': ' + whoObject.objectName;
|
|
20
|
-
}
|
|
21
|
-
parseWhatObject(whatObject) {
|
|
22
|
-
return whatObject.objectType + ': ' + whatObject.objectName;
|
|
23
|
-
}
|
|
24
|
-
onRelatedToChange(event) {
|
|
25
|
-
this.activity.WhatObject = this.getWhat(event.currentTarget.value);
|
|
26
|
-
this.OnRelatedToChange.emit(this.activity);
|
|
27
|
-
}
|
|
28
|
-
onSubjectChange(event) {
|
|
29
|
-
this.activity.Subject = event.srcElement.value;
|
|
30
|
-
this.OnSubjectChange.emit(this.activity);
|
|
31
|
-
}
|
|
32
|
-
onCallNotesChange(event) {
|
|
33
|
-
this.activity.Subject = event.srcElement.value.trim();
|
|
34
|
-
this.OnCallNotesChange.emit(this.activity);
|
|
35
|
-
}
|
|
36
|
-
getWho(id) {
|
|
37
|
-
for (let i = 0; i < this.activity.whoList.length; i++) {
|
|
38
|
-
if (this.activity.whoList[i].objectId === id) {
|
|
39
|
-
return this.activity.whoList[i];
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
getWhat(id) {
|
|
44
|
-
for (let i = 0; i < this.activity.whatList.length; i++) {
|
|
45
|
-
if (this.activity.whatList[i].objectId === id) {
|
|
46
|
-
return this.activity.whatList[i];
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
loadQuickComment(value) {
|
|
51
|
-
this.activity.Description = this.activity.Description + this.activity.quickCommentList[value];
|
|
52
|
-
}
|
|
53
|
-
activitySave(clearActivityFields) {
|
|
54
|
-
this.ActivitySave.emit(this.activity);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
__decorate([
|
|
58
|
-
Input()
|
|
59
|
-
], ActivityComponent.prototype, "activity", void 0);
|
|
60
|
-
__decorate([
|
|
61
|
-
Output()
|
|
62
|
-
], ActivityComponent.prototype, "ActivitySave", void 0);
|
|
63
|
-
__decorate([
|
|
64
|
-
Output()
|
|
65
|
-
], ActivityComponent.prototype, "OnNameSelectChange", void 0);
|
|
66
|
-
__decorate([
|
|
67
|
-
Output()
|
|
68
|
-
], ActivityComponent.prototype, "OnRelatedToChange", void 0);
|
|
69
|
-
__decorate([
|
|
70
|
-
Output()
|
|
71
|
-
], ActivityComponent.prototype, "OnSubjectChange", void 0);
|
|
72
|
-
__decorate([
|
|
73
|
-
Output()
|
|
74
|
-
], ActivityComponent.prototype, "OnCallNotesChange", void 0);
|
|
75
|
-
ActivityComponent = __decorate([
|
|
76
|
-
Component({
|
|
77
|
-
selector: 'app-activity',
|
|
78
|
-
template: "<div *ngIf=\"isActivityMaximized\" class=\"callDisplay\">\r\n <div class=\"editor callHeader\">\r\n <label class=\"headerLabel\">\r\n <b>Activity Information</b>\r\n </label>\r\n <img class=\"ViewResizeImage\" src=\"/assets/images/section_collapse.png\" (click)=\"isActivityMaximized = false\" title=\"Collapse\">\r\n </div>\r\n <div class=\"callBody\">\r\n <div class=\"activityFields\">\r\n <form>\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" title=\"Call From\">{{activity.NameFieldName}}</label>\r\n <select class=\"dropDownListStyle displayData\" data-resetperactivity=\"false\" (change)=\"onNameSelectChange($event)\">\r\n <option *ngFor=\"let who of activity.whoList\" value=\"{{who.objectId}}\">{{parseWhoObject(who)}}</option>\r\n </select>\r\n </div>\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" title=\"Related To\">{{activity.RelatedToFieldName}}</label>\r\n <select class=\"dropDownListStyle displayData\" (change)=\"onRelatedToChange($event)\" data-resetperactivity=\"false\">\r\n <option *ngFor=\"let what of activity.whatList\" value=\"{{what.objectId}}\">{{parseWhatObject(what)}}</option>\r\n </select>\r\n </div>\r\n <div class=\"editor displayDiv\">\r\n <label class=\"displayLabels\" title=\"Subject\">{{activity.SubjectFieldName}}</label>\r\n <input class=\"activitySubjectTextBoxStyle displayData\" (change)=\"onSubjectChange($event)\" title=\"{{activity.Subject}}\"\r\n type=\"text\" value=\"{{activity.Subject}}\">\r\n </div>\r\n <div class=\"editor displayDiv\">\r\n <div class=\"callNotesContainer\">\r\n <div class=\"textAreaDiv\">\r\n <textarea value=\"{{activity.Description}}\" placeholder=\"Click to add a comment\" class=\"activityCommentsTextBoxStyle\"\r\n (change)=\"onCallNotesChange($event)\" cols=\"20\" rows=\"2\" title=\"\"></textarea>\r\n </div>\r\n <div class=\"notesButtonBorder\">\r\n <div class=\"commentsButtonDiv\">\r\n <div class=\"quickCommentsDiv\">\r\n <input *ngFor=\"let quickComment of activity.quickCommentList ; let i = index;\" class=\"quickNotesBotton\" type=\"button\"\r\n value=\"{{i+1}}\" (click)=\"loadQuickComment(i)\" title=\"{{quickComment}}\">\r\n </div>\r\n <div class=\"submitDiv\">\r\n <input class=\"submitButton\" type=\"button\" value=\"Submit\" (click)=\"activitySave(false)\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"!isActivityMaximized\" class=\"callDisplay\">\r\n <div class=\"editor callHeader\">\r\n <label class=\"headerLabel\">\r\n <b>Activity Information</b>\r\n </label>\r\n <img class=\"ViewResizeImage\" src=\"assets/images/section_expand.png\" (click)=\"isActivityMaximized = true\" title=\"Expand\">\r\n </div>\r\n",
|
|
79
|
-
styles: [".callDisplay{display:grid;margin-bottom:8px;background-color:#fff}.editor{font-size:.9em;width:70%;text-align:left;margin:4px 5% 0 0;font-family:Arial;white-space:nowrap;text-overflow:ellipsis;border:0;padding-top:2px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.callHeader{background-color:#f4f5fb!important;width:100%!important;margin-top:0!important}.headerLabel{margin-left:10px}.ViewResizeImage{width:20px;height:20px;float:right;cursor:pointer}.callBody{border-top:0;position:relative}.displayDiv{width:100%;display:flex}.displayLabels{margin-left:5px;width:25%;margin-right:2px}.displayData{width:70%}.dropDownListStyle{border:1px solid #939598!important;border-radius:3px!important;width:71%!important;height:20px!important;text-align:left!important;white-space:nowrap!important;text-overflow:ellipsis!important;margin:0 5px 0 0;cursor:pointer}.activitySubjectTextBoxStyle{border:1px solid #939598!important;border-radius:3px!important;width:71%!important;height:20px!important;text-align:left!important;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;margin:0 5px 0 0;padding-left:2px}.activityCommentsTextBoxStyle{border:none;color:#333!important;text-align:left!important;margin:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;resize:none;width:100%;height:95px}.notesButtonBorder{background-color:#fff;border-left:1px solid #939598;border-bottom:1px solid #939598;border-right:1px solid #939598;border-bottom-left-radius:3px!important;border-bottom-right-radius:3px!important;height:auto}.commentsButtonDiv{width:100%;display:flex;align-items:center}.quickNotesBotton{background-color:#1e72ba;border:0;color:#fff;height:70%;width:20px;margin:2px;outline:0;font-size:70%}.quickCommentsDiv{text-align:left;flex:1 0 0;flex-wrap:wrap;display:flex;margin:2px}.submitDiv{text-align:right;padding-right:4px}.submitButton{border:0;float:right;margin-top:2px;outline:0;cursor:pointer;background-color:#6cb047;color:#fff;border-radius:4px;font-size:98%;margin-bottom:2px}"]
|
|
80
|
-
})
|
|
81
|
-
], ActivityComponent);
|
|
82
|
-
export { ActivityComponent };
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtYy10ZWNobm9sb2d5L3VpLWxpYnJhcnkvIiwic291cmNlcyI6WyJwcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2FjdGl2aXR5L2FjdGl2aXR5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvRSxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFpQjtJQVU1QjtRQU5RLGlCQUFZLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7UUFDdEUsdUJBQWtCLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7UUFDNUUsc0JBQWlCLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7UUFDM0Usb0JBQWUsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUN6RSxzQkFBaUIsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUdqRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQUs7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxjQUFjLENBQUMsU0FBMkI7UUFDL0MsT0FBTyxTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDO0lBQzVELENBQUM7SUFFTSxlQUFlLENBQUMsVUFBNEI7UUFDakQsT0FBTyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQzlELENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFLO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQUs7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDTSxpQkFBaUIsQ0FBQyxLQUFLO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxNQUFNLENBQUMsRUFBRTtRQUNkLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFFO2dCQUM1QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pDO1NBQ0Y7SUFDSCxDQUFDO0lBQ00sT0FBTyxDQUFDLEVBQUU7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3RELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLEVBQUUsRUFBRTtnQkFDN0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQztTQUNGO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQUs7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRU0sWUFBWSxDQUFDLG1CQUFtQjtRQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztDQUNGLENBQUE7QUEvRFE7SUFBUixLQUFLLEVBQUU7bURBQXFCO0FBQ25CO0lBQVQsTUFBTSxFQUFFO3VEQUF1RTtBQUN0RTtJQUFULE1BQU0sRUFBRTs2REFBNkU7QUFDNUU7SUFBVCxNQUFNLEVBQUU7NERBQTRFO0FBQzNFO0lBQVQsTUFBTSxFQUFFOzBEQUEwRTtBQUN6RTtJQUFULE1BQU0sRUFBRTs0REFBNEU7QUFSeEUsaUJBQWlCO0lBTDdCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxjQUFjO1FBQ3hCLGduR0FBd0M7O0tBRXpDLENBQUM7R0FDVyxpQkFBaUIsQ0FrRTdCO1NBbEVZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUFjdGl2aXR5LCBJQWN0aXZpdHlEZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VpbGlicmFyeS5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hY3Rpdml0eScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hY3Rpdml0eS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbmlzQWN0aXZpdHlNYXhpbWl6ZWQ6IGJvb2xlYW47XHJcbkBJbnB1dCgpIGFjdGl2aXR5OiBJQWN0aXZpdHk7XHJcbkBPdXRwdXQoKSBBY3Rpdml0eVNhdmU6IEV2ZW50RW1pdHRlcjxJQWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQWN0aXZpdHk+KCk7XHJcbkBPdXRwdXQoKSBPbk5hbWVTZWxlY3RDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJQWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQWN0aXZpdHk+KCk7XHJcbkBPdXRwdXQoKSBPblJlbGF0ZWRUb0NoYW5nZTogRXZlbnRFbWl0dGVyPElBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPElBY3Rpdml0eT4oKTtcclxuQE91dHB1dCgpIE9uU3ViamVjdENoYW5nZTogRXZlbnRFbWl0dGVyPElBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPElBY3Rpdml0eT4oKTtcclxuQE91dHB1dCgpIE9uQ2FsbE5vdGVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8SUFjdGl2aXR5PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuaXNBY3Rpdml0eU1heGltaXplZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk5hbWVTZWxlY3RDaGFuZ2UoZXZlbnQpIHtcclxuICAgIHRoaXMuYWN0aXZpdHkuV2hvT2JqZWN0ID0gdGhpcy5nZXRXaG8oZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSk7XHJcbiAgICB0aGlzLk9uTmFtZVNlbGVjdENoYW5nZS5lbWl0KHRoaXMuYWN0aXZpdHkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBhcnNlV2hvT2JqZWN0KHdob09iamVjdDogSUFjdGl2aXR5RGV0YWlscyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gd2hvT2JqZWN0Lm9iamVjdFR5cGUgKyAnOiAnICsgd2hvT2JqZWN0Lm9iamVjdE5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcGFyc2VXaGF0T2JqZWN0KHdoYXRPYmplY3Q6IElBY3Rpdml0eURldGFpbHMpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHdoYXRPYmplY3Qub2JqZWN0VHlwZSArICc6ICcgKyB3aGF0T2JqZWN0Lm9iamVjdE5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25SZWxhdGVkVG9DaGFuZ2UoZXZlbnQpIHtcclxuICAgIHRoaXMuYWN0aXZpdHkuV2hhdE9iamVjdCA9IHRoaXMuZ2V0V2hhdChldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlKTtcclxuICAgIHRoaXMuT25SZWxhdGVkVG9DaGFuZ2UuZW1pdCh0aGlzLmFjdGl2aXR5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblN1YmplY3RDaGFuZ2UoZXZlbnQpIHtcclxuICAgIHRoaXMuYWN0aXZpdHkuU3ViamVjdCA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWU7XHJcbiAgICB0aGlzLk9uU3ViamVjdENoYW5nZS5lbWl0KHRoaXMuYWN0aXZpdHkpO1xyXG4gIH1cclxuICBwdWJsaWMgb25DYWxsTm90ZXNDaGFuZ2UoZXZlbnQpIHtcclxuICAgIHRoaXMuYWN0aXZpdHkuU3ViamVjdCA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWUudHJpbSgpO1xyXG4gICAgdGhpcy5PbkNhbGxOb3Rlc0NoYW5nZS5lbWl0KHRoaXMuYWN0aXZpdHkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFdobyhpZCk6IElBY3Rpdml0eURldGFpbHMge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmFjdGl2aXR5Lndob0xpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZpdHkud2hvTGlzdFtpXS5vYmplY3RJZCA9PT0gaWQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpdml0eS53aG9MaXN0W2ldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRXaGF0KGlkKTogSUFjdGl2aXR5RGV0YWlscyB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYWN0aXZpdHkud2hhdExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZpdHkud2hhdExpc3RbaV0ub2JqZWN0SWQgPT09IGlkKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZpdHkud2hhdExpc3RbaV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkUXVpY2tDb21tZW50KHZhbHVlKSB7XHJcbiAgICB0aGlzLmFjdGl2aXR5LkRlc2NyaXB0aW9uID0gdGhpcy5hY3Rpdml0eS5EZXNjcmlwdGlvbiArIHRoaXMuYWN0aXZpdHkucXVpY2tDb21tZW50TGlzdFt2YWx1ZV07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWN0aXZpdHlTYXZlKGNsZWFyQWN0aXZpdHlGaWVsZHMpIHtcclxuICAgIHRoaXMuQWN0aXZpdHlTYXZlLmVtaXQodGhpcy5hY3Rpdml0eSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, AfterViewChecked, AfterViewInit, OnInit, Renderer2 } from '@angular/core';
|
|
3
|
-
import { IChatMessageType } from '../../models/chat.message';
|
|
4
|
-
let ChatBoxComponent = class ChatBoxComponent {
|
|
5
|
-
constructor(renderer) {
|
|
6
|
-
this.renderer = renderer;
|
|
7
|
-
this.isTyping = false;
|
|
8
|
-
this.lastCount = -1;
|
|
9
|
-
this._isAgentTyping = false;
|
|
10
|
-
this.isAgentTyping = new EventEmitter();
|
|
11
|
-
this.newMessage = new EventEmitter();
|
|
12
|
-
this.newMessageText = '';
|
|
13
|
-
this.usernameToColor = {};
|
|
14
|
-
this.colors = [
|
|
15
|
-
'#c2c4c4',
|
|
16
|
-
'#ffab91',
|
|
17
|
-
'#f48fb1',
|
|
18
|
-
'#29b6f6',
|
|
19
|
-
'#e1bee7',
|
|
20
|
-
'#9ccc65',
|
|
21
|
-
'#ffc107',
|
|
22
|
-
'#26c6da',
|
|
23
|
-
'#cddc39',
|
|
24
|
-
];
|
|
25
|
-
this.colorsIndex = 0;
|
|
26
|
-
this.agentColor = '#2db0e0';
|
|
27
|
-
}
|
|
28
|
-
ngOnInit() {
|
|
29
|
-
this.renderer.selectRootElement('#autofocus').focus();
|
|
30
|
-
}
|
|
31
|
-
ngAfterViewInit() {
|
|
32
|
-
this.renderer.selectRootElement('#autofocus').focus();
|
|
33
|
-
}
|
|
34
|
-
updatedMessage() {
|
|
35
|
-
try {
|
|
36
|
-
if (typeof this.newMsgs !== 'undefined' && this.newMsgs.length > 0) {
|
|
37
|
-
return this.newMsgs;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
return this.messages;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
catch (e) { }
|
|
44
|
-
finally {
|
|
45
|
-
this.scrollToBottom();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
ngAfterViewChecked() {
|
|
49
|
-
if (this.lastCount !== this.messages.length) {
|
|
50
|
-
this.lastCount = this.messages.length;
|
|
51
|
-
this.scrollToBottom();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
getColor(message) {
|
|
55
|
-
if (message.type && message.type === IChatMessageType.AGENT) {
|
|
56
|
-
return this.agentColor;
|
|
57
|
-
}
|
|
58
|
-
else if (message.username) {
|
|
59
|
-
if (!this.usernameToColor[message.username]) {
|
|
60
|
-
this.usernameToColor[message.username] = this.colors[this.colorsIndex];
|
|
61
|
-
this.colorsIndex = (this.colorsIndex + 1) % this.colors.length;
|
|
62
|
-
}
|
|
63
|
-
return this.usernameToColor[message.username];
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
return this.colors[0];
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
shouldAlignRight(message) {
|
|
70
|
-
return message.type && message.type === IChatMessageType.AGENT;
|
|
71
|
-
}
|
|
72
|
-
sendNewMessage(event) {
|
|
73
|
-
event.preventDefault();
|
|
74
|
-
if (this.newMessageText) {
|
|
75
|
-
this.newMessage.emit(this.newMessageText);
|
|
76
|
-
this.newMessageText = '';
|
|
77
|
-
}
|
|
78
|
-
this.renderer.selectRootElement('#autofocus').focus();
|
|
79
|
-
}
|
|
80
|
-
setOnFocus(event) {
|
|
81
|
-
this.renderer.selectRootElement('#autofocus').focus();
|
|
82
|
-
}
|
|
83
|
-
onNewMessageFocus(event) {
|
|
84
|
-
const isTyping = event && this.newMessageText.length > 0;
|
|
85
|
-
if (isTyping !== this._isAgentTyping) {
|
|
86
|
-
this._isAgentTyping = isTyping;
|
|
87
|
-
this.isAgentTyping.emit(isTyping);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
onKeyup() {
|
|
91
|
-
const isTyping = this.newMessageText.length > 0;
|
|
92
|
-
if (isTyping !== this._isAgentTyping) {
|
|
93
|
-
this._isAgentTyping = isTyping;
|
|
94
|
-
this.isAgentTyping.emit(isTyping);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
scrollToBottom() {
|
|
98
|
-
try {
|
|
99
|
-
this.messagesContainer.nativeElement.scrollTop = this.messagesContainer.nativeElement.scrollHeight;
|
|
100
|
-
}
|
|
101
|
-
catch (e) { }
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
ChatBoxComponent.ctorParameters = () => [
|
|
105
|
-
{ type: Renderer2 }
|
|
106
|
-
];
|
|
107
|
-
__decorate([
|
|
108
|
-
Input()
|
|
109
|
-
], ChatBoxComponent.prototype, "settings", void 0);
|
|
110
|
-
__decorate([
|
|
111
|
-
Input()
|
|
112
|
-
], ChatBoxComponent.prototype, "isTyping", void 0);
|
|
113
|
-
__decorate([
|
|
114
|
-
Input()
|
|
115
|
-
], ChatBoxComponent.prototype, "messages", void 0);
|
|
116
|
-
__decorate([
|
|
117
|
-
Input()
|
|
118
|
-
], ChatBoxComponent.prototype, "newMsgs", void 0);
|
|
119
|
-
__decorate([
|
|
120
|
-
Output()
|
|
121
|
-
], ChatBoxComponent.prototype, "isAgentTyping", void 0);
|
|
122
|
-
__decorate([
|
|
123
|
-
Output()
|
|
124
|
-
], ChatBoxComponent.prototype, "newMessage", void 0);
|
|
125
|
-
__decorate([
|
|
126
|
-
ViewChild('MessagesContainer', { static: true })
|
|
127
|
-
], ChatBoxComponent.prototype, "messagesContainer", void 0);
|
|
128
|
-
__decorate([
|
|
129
|
-
ViewChild('autofocus', { static: false })
|
|
130
|
-
], ChatBoxComponent.prototype, "autofocus", void 0);
|
|
131
|
-
ChatBoxComponent = __decorate([
|
|
132
|
-
Component({
|
|
133
|
-
selector: 'app-chat-box',
|
|
134
|
-
template: "<div class=\"chat-box\">\r\n <div #MessagesContainer id=\"msgScroll\" class=\"messages\" [style.max-height]='settings.maxHeight'>\r\n <ng-container *ngFor=\"let message of updatedMessage()\">\r\n <app-chat-message class=\"chat-line\" [alignRight]=\"shouldAlignRight(message)\" [message]=\"message.text\" [username]=\"message.username\" (focusOn)=\"setOnFocus($event)\"\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\r\n\r\n<div class=\"message-box\">\r\n <textarea id=\"autofocus\" tabindex=\"1\" #NewMessageText [(ngModel)]=\"newMessageText\" type=\"text\" class=\"message-input scroll\" placeholder=\"Type a message...\"\r\n (focus)=\"onNewMessageFocus(true)\" (keydown.enter)=\"sendNewMessage($event)\" (keyup)='onKeyup()' [disabled]=\"settings.disableSendMessage\" ></textarea>\r\n <button type=\"submit\" class=\"message-submit\" (click)=\"sendNewMessage($event)\" [disabled]=\"settings.disableSendMessage\">Send</button>\r\n</div>\r\n</div>\r\n",
|
|
135
|
-
styles: [".message-box{flex:1 1 0;width:99%;background:#fff;margin:auto;position:relative;border-radius:5px;height:100%;border:1px solid #ccc}.message-box .message-input{background:0 0;border:none;outline:0!important;resize:none;font-family:inherit;font-size:.8rem;height:100%;margin:0;padding:10px 7px;width:89%;color:#444}.message-box textarea:focus:-webkit-placeholder{color:transparent}.message-box .message-submit{position:absolute;z-index:1;top:26px;right:5px;background:#1e72ba;border:none;color:#fff;font-size:10px;line-height:1;padding:6px 10px;border-radius:5px;outline:0!important;transition:background .2s;cursor:pointer}.scroll::-webkit-scrollbar{display:none}.chat-box{background-color:#f4f5fb;padding:5px}.messages{padding:5px;overflow:auto;min-height:50px}.chat-line{margin-bottom:15px}.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:#f4f5fb;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:.8em;font-style:italic}.typing-indicator span{display:inline-block;height:4px;width:4px;border-radius:50%;background-color:#9e9e9e;margin:0 1px;opacity:.2}.typing-indicator span:nth-of-type(1){animation:1.5s .33333s infinite blink}.typing-indicator span:nth-of-type(2){animation:1.5s .66666s infinite blink}.typing-indicator span:nth-of-type(3){animation:1.5s .99999s infinite blink}@keyframes blink{50%{opacity:1}}"]
|
|
136
|
-
})
|
|
137
|
-
], ChatBoxComponent);
|
|
138
|
-
export { ChatBoxComponent };
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtYy10ZWNobm9sb2d5L3VpLWxpYnJhcnkvIiwic291cmNlcyI6WyJwcm9qZWN0cy9VSUxpYnJhcnkvc3JjL2FwcC9jb21wb25lbnRzL2NoYXQtYm94L2NoYXQtYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xKLE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVEzRSxJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFnQjtJQWdDM0IsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQTlCN0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUlsQixjQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdkIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDYixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFNUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbEQsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFLcEIsb0JBQWUsR0FBbUMsRUFBRSxDQUFDO1FBQ3JELFdBQU0sR0FBRztZQUNQLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztTQUNWLENBQUM7UUFDRixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixlQUFVLEdBQUcsU0FBUyxDQUFDO0lBR3ZCLENBQUM7SUFDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZ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QyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEQsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztZQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSTtZQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1NBQ3BHO1FBQ0QsT0FBTyxDQUFDLEVBQUUsR0FBRztJQUNmLENBQUM7Q0FDRixDQUFBOztZQXJGOEIsU0FBUzs7QUEvQjdCO0lBQVIsS0FBSyxFQUFFO2tEQUF5QjtBQUN4QjtJQUFSLEtBQUssRUFBRTtrREFBa0I7QUFFakI7SUFBUixLQUFLLEVBQUU7a0RBQTBCO0FBQ3pCO0lBQVIsS0FBSyxFQUFFO2lEQUF5QjtBQUl2QjtJQUFULE1BQU0sRUFBRTt1REFBNkM7QUFFNUM7SUFBVCxNQUFNLEVBQUU7b0RBQXlDO0FBR0E7SUFBakQsU0FBUyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzJEQUErQjtBQUNyQztJQUExQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO21EQUF1QjtBQWZ0RCxnQkFBZ0I7SUFMNUIsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGNBQWM7UUFDeEIsMnlDQUF3Qzs7S0FFekMsQ0FBQztHQUNXLGdCQUFnQixDQXFINUI7U0FySFksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3Q2hlY2tlZCwgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUNoYXRNZXNzYWdlLCBJQ2hhdE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoYXQubWVzc2FnZSc7XHJcbmltcG9ydCB7IElDaGF0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2hhdC5zZXR0aW5ncyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jaGF0LWJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXQtYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGF0LWJveC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hhdEJveENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQsIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgc2V0dGluZ3M6IElDaGF0U2V0dGluZ3M7XHJcbiAgQElucHV0KCkgaXNUeXBpbmcgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgbWVzc2FnZXM6IElDaGF0TWVzc2FnZVtdO1xyXG4gIEBJbnB1dCgpIG5ld01zZ3M6IElDaGF0TWVzc2FnZVtdO1xyXG4gIHByaXZhdGUgbGFzdENvdW50ID0gLTE7XHJcblxyXG4gIF9pc0FnZW50VHlwaW5nID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIGlzQWdlbnRUeXBpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBuZXdNZXNzYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgbmV3TWVzc2FnZVRleHQgPSAnJztcclxuXHJcbiAgQFZpZXdDaGlsZCgnTWVzc2FnZXNDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBtZXNzYWdlc0NvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdhdXRvZm9jdXMnLCB7IHN0YXRpYzogZmFsc2UgfSkgYXV0b2ZvY3VzOiBFbGVtZW50UmVmO1xyXG5cclxuICB1c2VybmFtZVRvQ29sb3I6IHsgW3VzZXJuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gIGNvbG9ycyA9IFtcclxuICAgICcjYzJjNGM0JyxcclxuICAgICcjZmZhYjkxJyxcclxuICAgICcjZjQ4ZmIxJyxcclxuICAgICcjMjliNmY2JyxcclxuICAgICcjZTFiZWU3JyxcclxuICAgICcjOWNjYzY1JyxcclxuICAgICcjZmZjMTA3JyxcclxuICAgICcjMjZjNmRhJyxcclxuICAgICcjY2RkYzM5JyxcclxuICBdO1xyXG4gIGNvbG9yc0luZGV4ID0gMDtcclxuICBhZ2VudENvbG9yID0gJyMyZGIwZTAnO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOlJlbmRlcmVyMikge1xyXG4gIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KCcjYXV0b2ZvY3VzJykuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudCgnI2F1dG9mb2N1cycpLmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVkTWVzc2FnZSgpOiBJQ2hhdE1lc3NhZ2VbXSAge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLm5ld01zZ3MgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubmV3TXNncy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubmV3TXNncztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tZXNzYWdlcztcclxuICAgICAgfVxyXG4gICAgfWNhdGNoIChlKSB7IH1cclxuICAgIGZpbmFsbHkge1xyXG4gICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xyXG4gICAgaWYgKHRoaXMubGFzdENvdW50ICE9PSB0aGlzLm1lc3NhZ2VzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmxhc3RDb3VudCA9IHRoaXMubWVzc2FnZXMubGVuZ3RoO1xyXG4gICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29sb3IobWVzc2FnZTogSUNoYXRNZXNzYWdlKSB7XHJcbiAgICBpZiAobWVzc2FnZS50eXBlICYmIG1lc3NhZ2UudHlwZSA9PT0gSUNoYXRNZXNzYWdlVHlwZS5BR0VOVCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5hZ2VudENvbG9yO1xyXG4gICAgfSBlbHNlIGlmIChtZXNzYWdlLnVzZXJuYW1lKSB7XHJcbiAgICAgIGlmICghdGhpcy51c2VybmFtZVRvQ29sb3JbbWVzc2FnZS51c2VybmFtZV0pIHtcclxuICAgICAgICB0aGlzLnVzZXJuYW1lVG9Db2xvclttZXNzYWdlLnVzZXJuYW1lXSA9IHRoaXMuY29sb3JzW3RoaXMuY29sb3JzSW5kZXhdO1xyXG4gICAgICAgIHRoaXMuY29sb3JzSW5kZXggPSAodGhpcy5jb2xvcnNJbmRleCArIDEpICUgdGhpcy5jb2xvcnMubGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLnVzZXJuYW1lVG9Db2xvclttZXNzYWdlLnVzZXJuYW1lXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbG9yc1swXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3VsZEFsaWduUmlnaHQobWVzc2FnZTogSUNoYXRNZXNzYWdlKSB7XHJcbiAgICByZXR1cm4gbWVzc2FnZS50eXBlICYmIG1lc3NhZ2UudHlwZSA9PT0gSUNoYXRNZXNzYWdlVHlwZS5BR0VOVDtcclxuICB9XHJcblxyXG4gIHNlbmROZXdNZXNzYWdlKGV2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKHRoaXMubmV3TWVzc2FnZVRleHQpIHtcclxuICAgICAgdGhpcy5uZXdNZXNzYWdlLmVtaXQodGhpcy5uZXdNZXNzYWdlVGV4dCk7XHJcbiAgICAgIHRoaXMubmV3TWVzc2FnZVRleHQgPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQoJyNhdXRvZm9jdXMnKS5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgc2V0T25Gb2N1cyhldmVudCkgIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQoJyNhdXRvZm9jdXMnKS5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25OZXdNZXNzYWdlRm9jdXMoZXZlbnQ6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGlzVHlwaW5nID0gZXZlbnQgJiYgdGhpcy5uZXdNZXNzYWdlVGV4dC5sZW5ndGggPiAwO1xyXG4gICAgaWYgKGlzVHlwaW5nICE9PSB0aGlzLl9pc0FnZW50VHlwaW5nKSB7XHJcbiAgICAgIHRoaXMuX2lzQWdlbnRUeXBpbmcgPSBpc1R5cGluZztcclxuICAgICAgdGhpcy5pc0FnZW50VHlwaW5nLmVtaXQoaXNUeXBpbmcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25LZXl1cCgpIHtcclxuICAgIGNvbnN0IGlzVHlwaW5nID0gdGhpcy5uZXdNZXNzYWdlVGV4dC5sZW5ndGggPiAwO1xyXG4gICAgaWYgKGlzVHlwaW5nICE9PSB0aGlzLl9pc0FnZW50VHlwaW5nKSB7XHJcbiAgICAgIHRoaXMuX2lzQWdlbnRUeXBpbmcgPSBpc1R5cGluZztcclxuICAgICAgdGhpcy5pc0FnZW50VHlwaW5nLmVtaXQoaXNUeXBpbmcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVG9Cb3R0b20oKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5tZXNzYWdlc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7IH1cclxuICB9XHJcbn1cclxuIl19
|
package/esm2015/projects/UILibrary/src/app/components/chat-message/chat-message.component.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
3
|
-
let ChatMessageComponent = class ChatMessageComponent {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.alignRight = false;
|
|
6
|
-
this.focusOn = new EventEmitter();
|
|
7
|
-
}
|
|
8
|
-
ngOnInit() {
|
|
9
|
-
this.focusOn.emit(true);
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
__decorate([
|
|
13
|
-
Input()
|
|
14
|
-
], ChatMessageComponent.prototype, "message", void 0);
|
|
15
|
-
__decorate([
|
|
16
|
-
Input()
|
|
17
|
-
], ChatMessageComponent.prototype, "alignRight", void 0);
|
|
18
|
-
__decorate([
|
|
19
|
-
Input()
|
|
20
|
-
], ChatMessageComponent.prototype, "username", void 0);
|
|
21
|
-
__decorate([
|
|
22
|
-
Input()
|
|
23
|
-
], ChatMessageComponent.prototype, "color", void 0);
|
|
24
|
-
__decorate([
|
|
25
|
-
Input()
|
|
26
|
-
], ChatMessageComponent.prototype, "timestamp", void 0);
|
|
27
|
-
__decorate([
|
|
28
|
-
Input()
|
|
29
|
-
], ChatMessageComponent.prototype, "image", void 0);
|
|
30
|
-
__decorate([
|
|
31
|
-
Input()
|
|
32
|
-
], ChatMessageComponent.prototype, "fallbackImage", void 0);
|
|
33
|
-
__decorate([
|
|
34
|
-
Output()
|
|
35
|
-
], ChatMessageComponent.prototype, "focusOn", void 0);
|
|
36
|
-
ChatMessageComponent = __decorate([
|
|
37
|
-
Component({
|
|
38
|
-
selector: 'app-chat-message',
|
|
39
|
-
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 </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 <span *ngIf=\"timestamp\" class=\"timestamp\">{{timestamp}}</span>\r\n</div>\r\n",
|
|
40
|
-
styles: [":host{display:block;margin-top:2px;margin-bottom:2px}.right-message{text-align:end}.timestamp{font-size:10px;margin-right:30px;margin-left:30px}.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:1em;padding:6px;font-style:normal;font-size:.8em;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;border-left:10px solid #000;border-color:inherit;border-right:10px solid transparent;border-bottom:10px solid transparent;left:1px;bottom:-2px}.right-message .message-body:after{content:\"\";position:absolute;border-left:10px solid transparent;border-top:10px solid #000;border-top-color:inherit;border-bottom:0 solid transparent;right:1px;bottom:-2px}"]
|
|
41
|
-
})
|
|
42
|
-
], ChatMessageComponent);
|
|
43
|
-
export { ChatMessageComponent };
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbWMtdGVjaG5vbG9neS91aS1saWJyYXJ5LyIsInNvdXJjZXMiOlsicHJvamVjdHMvVUlMaWJyYXJ5L3NyYy9hcHAvY29tcG9uZW50cy9jaGF0LW1lc3NhZ2UvY2hhdC1tZXNzYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8vRSxJQUFhLG9CQUFvQixHQUFqQyxNQUFhLG9CQUFvQjtJQVUvQjtRQVJTLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFNbEIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFNUIsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUdGLENBQUE7QUFoQlU7SUFBUixLQUFLLEVBQUU7cURBQWlCO0FBQ2hCO0lBQVIsS0FBSyxFQUFFO3dEQUFvQjtBQUNuQjtJQUFSLEtBQUssRUFBRTtzREFBa0I7QUFDakI7SUFBUixLQUFLLEVBQUU7bURBQWU7QUFDZDtJQUFSLEtBQUssRUFBRTt1REFBbUI7QUFDbEI7SUFBUixLQUFLLEVBQUU7bURBQWU7QUFDZDtJQUFSLEtBQUssRUFBRTsyREFBdUI7QUFDckI7SUFBVCxNQUFNLEVBQUU7cURBQW1DO0FBUmpDLG9CQUFvQjtJQUxoQyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsa0JBQWtCO1FBQzVCLHVxQkFBNEM7O0tBRTdDLENBQUM7R0FDVyxvQkFBb0IsQ0FpQmhDO1NBakJZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNoYXQtbWVzc2FnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXQtbWVzc2FnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hhdC1tZXNzYWdlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENoYXRNZXNzYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYWxpZ25SaWdodCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHVzZXJuYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29sb3I6IHN0cmluZztcclxuICBASW5wdXQoKSB0aW1lc3RhbXA6IHN0cmluZztcclxuICBASW5wdXQoKSBpbWFnZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZhbGxiYWNrSW1hZ2U6IHN0cmluZztcclxuICBAT3V0cHV0KCkgZm9jdXNPbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZm9jdXNPbi5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
|