{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/cobrowse-common/modules/utils.ts","webpack:///./node_modules/cobrowse-common/components/html/login-template.html","webpack:///./product/typescript/components/monitoring.ts","webpack:///./node_modules/cobrowse-common/components/eventBus.ts","webpack:///./node_modules/cobrowse-common/components/ajaxrequest.ts","webpack:///./node_modules/cobrowse-common/components/promiseDialog.ts","webpack:///./node_modules/cobrowse-common/components/loginControl.ts","webpack:///./node_modules/cobrowse-common/components/html/css/login-template.css","webpack:///./product/typescript/pages/newAgent.ts","webpack:///./node_modules/cobrowse-common/components/dialog.ts","webpack:///./node_modules/cobrowse-common/components/html/css/modal-mask.css","webpack:///./node_modules/cobrowse-common/modules/endPoints.ts","webpack:///./node_modules/cobrowse-common/components/html/modal-mask.html","webpack:///./node_modules/cobrowse-common/modules/formHelpers.ts","webpack:///./node_modules/cobrowse-common/interfaces/IMonitoring.ts","webpack:///./node_modules/cobrowse-common/modules/constants.ts","webpack:///./node_modules/cobrowse-common/components/ajaxrequest.legacy.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","formatValue","val","desiredLen","retVal","toString","length","getCurrentTime","Date","getTime","getTimeString","today","getHours","getMinutes","getSeconds","getMilliseconds","isString","isFunction","pointer","isEmpty","whiteSpaceValidationEx","nativeCodeValidationEx","isWhitespace","test","isMethodNative","getViewPort","_a","viewPortWidth","viewPortHeight","window","innerWidth","innerHeight","document","documentElement","clientWidth","getElementsByTagName","clientHeight","width","height","getWinHeight","body","getWinWidth","getElementAs","id","getElementById","setClass","element","className","elem","setCss","attrs","keys","forEach","style","setProperty","hideElement","display","showElement","fireEvent","event","evt","createEvent","initMouseEvent","MouseEvent","button","bubbles","view","cancelable","dispatchEvent","e","stopEvent","returnValue","cancelBubble","stopPropagation","preventDefault","displayText","label","labelText","innerHTML","preloadImageBySource","source","Image","src","encoder","htmlEncode","text","createElement","innerText","htmlDecode","randomInRange","from","to","Math","floor","random","getTopFrame","topdomain","top","location","hostname","curWindow","self","windowCnt","parent","parentdomain","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","apply","Monitoring","this","debugLevel","currentID","latestFlushTimeStamp","currentBatchTime","currentBatch","monitoringID","channelID","useBeacon","url","configure","_debugLevel","_monitoringID","_channelID","addEventListener","performance","now","syncEvent","eventType","eventName","eventParams","filterEvent","generateID","serializedData","ID","commandID","commandName","params","eventTime","push","flush","currentEventType","checkTime","initPolling","setInterval","sendTime","JSON","stringify","encodeURIComponent","time","navigator","sendBeacon","request","XMLHttpRequest","open","setRequestHeader","send","clientError","message","JavascriptException","JavascriptURL","href","EventBus","eventRegistry","args","_b","undefined","x","method","singleUse","splice","fn","Array","listen","indexOf","wait","AjaxRequestClass","bodyParams","headers","timeout","requestRawXHR","post","HttpRequest","html","options","super","dialogPromise","successCallback","rejectCallback","rejectOnEscape","keyHandler","reason","isVisible","hide","dialog","removeEventListener","reportReject","Error","which","keyCode","error","emailValidationRegEx","loginDialog","htmlContent","css","cssContent","dismissOnEscape","enableOverlay","eventBus","enableForgotPassword","enableChangePassword","mainServer","userRole","sessionID","lastErrorStatus","isEmail","email","onContinue","loginButton","getContent","querySelector","onclick","reportRejectOrThrow","configureUI","uiConfig","type","textContent","insertAdjacentHTML","outerHTML","role","lsessionID","setRole","setSessionID","displayAsync","_c","forgotPasswordRow","forgotPassword","changePasswordRow","changePassword","promise","login","doFocus","getContinueButton","click","focus","messageID","getMessageText","loginForm","psw","password","displayError","response","endPoint","userLogin","userPassword","err","apiError","rawResponse","console","state","monitoringContext","parsedResponse","parse","remainingAttemptCount","UserLogin","ErrorCode","ErrorMessage","authResponse","LoginControl","authenticate","isHTML5Supported","history","getContext","form","ratio","devicePixelRatio","dynamicParams","ll_user_agent","userAgent","ll_screen_width","screen","ll_screen_height","ll_java_enabled","javaEnabled","ll_cookies_enabled","cookieEnabled","sizeX","sizeY","zeroWindowSize","ll_html5_enabled","ll_zero_size","documentMode","ll_doc_mode","compatMode","ll_comp_mode","loginRequired","requestParams","uiMessages","jwt","luserRequest","ex","submit","ERROR_NULL_CONTENTS","templateRegEx","docLoadPromise","setTimeout","createDialogContainer","div","descriptor","removeChild","setAttribute","appendChild","items","slice","children","count","nodeType","Node","ELEMENT_NODE","firstChild","processTemplateText","templatedText","search","processedValue","matchResult","exec","templateID","itemID","defaultDescriptor","split","trim","replace","applyAttributes","customAttributes","el","attrDescriptor","attrName","attrText","attributeName","existingValue","getAttribute","customizeSingleElement","data","dataset","textTemplate","textContents","htmlTemplate","processUIElement","childNodes","child","setImageRoot","contents","imageRootPath","path","endsWith","substr","images","getImageElements","log","startsWith","retrieveImages","rootElem","HTMLImageElement","childNode","mask","visibility","dismissOnMaskClick","defaultMask","maskControl","escapeListener","hideListener","reset","wndWidth","objWidth","offsetWidth","left","center","code","CobrowseAuthEndPoint","CobrowseSessionEndPoint","CobrowseJoinEndPoint","pushJSONToForm","cleanUp","frm","currentValue","found","j","appendFormWith","translatedValue","inputElement","getURL","cleanForm","target","parameters","paramPairs","pair","decodeURIComponent","action","getMonitoringInstance","Cobrowse","allowedDebugLevel","ERROR_PROMISE_TIMEOUT","ERROR_REQUEST_TIMEOUT","ERROR_TIMEOUT","ERROR_REVERSE_ALREADY_ACTIVE","ERROR_REVERSE_VIEW_INACTIVE","SESSION_IN_PROGRESS","AjaxException","exceptionStatus","exceptionText","exceptionMessage","status","statusText","errorCallback","thisRequestTimeout","xhr","onload","clearTimeout","requestTimer","onerror","failedURL","errorMessage","closureURL","onreadystatechange","abort","OperationType","Description","RemoteURL","jsonEncoding","hasContentType","toLowerCase","constructor","dictionary","map","join","resolveCallback","responseXML","responseText"],"mappings":"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","file":"newAgent.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 157);\n","import { ERROR_TIMEOUT } from './constants';\r\nexport const formatValue = (val, desiredLen = 2) => {\r\n let retVal = val.toString();\r\n while (retVal.length < desiredLen) {\r\n retVal = '0' + retVal;\r\n }\r\n return retVal;\r\n};\r\nexport const getCurrentTime = () => {\r\n const myCurrentTimestamp = new Date();\r\n return myCurrentTimestamp.getTime();\r\n};\r\nexport const getTimeString = () => {\r\n const today = new Date();\r\n const hours = formatValue(today.getHours());\r\n const mins = formatValue(today.getMinutes());\r\n const secs = formatValue(today.getSeconds());\r\n const ms = formatValue(today.getMilliseconds(), 3);\r\n return `${hours}:${mins}:${secs}.${ms}`;\r\n};\r\nexport const getDateTimeString = () => {\r\n const today = new Date();\r\n const hours = formatValue(today.getHours());\r\n const mins = formatValue(today.getMinutes());\r\n const secs = formatValue(today.getSeconds());\r\n const day = formatValue(today.getDate());\r\n const month = formatValue(today.getMonth() + 1);\r\n const year = today.getFullYear();\r\n return `${month}/${day}/${year} ${hours}:${mins}:${secs}`;\r\n};\r\nexport const isString = (object) => {\r\n return typeof object === 'string';\r\n};\r\nexport const compareIgnoreCase = (stringValue, matches) => {\r\n if (isString(stringValue) && isString(matches)) {\r\n return stringValue.localeCompare(matches, undefined, {\r\n sensitivity: 'accent'\r\n }) === 0;\r\n }\r\n else if (!isEmpty(matches) && matches.constructor === Array) {\r\n let arrayResult = false;\r\n for (let count = 0; count < matches.length; count++) {\r\n const localResult = compareIgnoreCase(stringValue, matches[count]);\r\n if (localResult) {\r\n arrayResult = true;\r\n break;\r\n }\r\n }\r\n return arrayResult;\r\n }\r\n else {\r\n return stringValue !== matches;\r\n }\r\n};\r\nexport const isFunction = (pointer) => {\r\n return typeof pointer === 'function';\r\n};\r\nexport const isEmpty = (object) => {\r\n if (object === undefined || object === null || object === '' || object === 0 || object === false) {\r\n return true;\r\n }\r\n return false;\r\n};\r\nconst whiteSpaceValidationEx = /^\\s*$/;\r\nconst nativeCodeValidationEx = /\\{\\s*\\[native code\\]\\s*\\}/;\r\nexport const isWhitespace = (s) => {\r\n return whiteSpaceValidationEx.test(s);\r\n};\r\nexport const isMethodNative = (pointer) => {\r\n const result = isFunction(pointer) ? (nativeCodeValidationEx).test('' + pointer) : false;\r\n return result;\r\n};\r\nexport const getViewPort = () => {\r\n var _a;\r\n let viewPortWidth = 0;\r\n let viewPortHeight = 0;\r\n if (typeof window.innerWidth !== 'undefined') {\r\n viewPortWidth = window.innerWidth;\r\n viewPortHeight = window.innerHeight;\r\n }\r\n else if (!isEmpty((_a = document.documentElement) === null || _a === void 0 ? void 0 : _a.clientWidth)) {\r\n viewPortWidth = document.documentElement.clientWidth;\r\n viewPortHeight = document.documentElement.clientHeight;\r\n }\r\n else {\r\n viewPortWidth = document.getElementsByTagName('body')[0].clientWidth;\r\n viewPortHeight = document.getElementsByTagName('body')[0].clientHeight;\r\n }\r\n return {\r\n width: viewPortWidth,\r\n height: viewPortHeight\r\n };\r\n};\r\nexport const getWinHeight = () => {\r\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n};\r\nexport const getWinWidth = () => {\r\n return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n};\r\nexport const getElementAs = (id) => {\r\n return document.getElementById(id);\r\n};\r\nexport const setClass = (element, className) => {\r\n const elem = isString(element) ? getElementAs(element) : element;\r\n if (elem !== null) {\r\n elem.className = className;\r\n }\r\n};\r\nexport const setCss = (elem, attrs) => {\r\n const element = isString(elem) ? getElementAs(elem) : elem;\r\n if (element !== null) {\r\n Object.keys(attrs).forEach(key => {\r\n element.style.setProperty(key, attrs[key]);\r\n });\r\n }\r\n};\r\nexport const hideElement = (elem) => {\r\n setCss(elem, { display: 'none' });\r\n};\r\nexport const showElement = (elem) => {\r\n setCss(elem, { display: 'block' });\r\n};\r\nexport const fireEvent = (element, event) => {\r\n try {\r\n let evt = null;\r\n if (isFunction(document.createEvent)) {\r\n evt = document.createEvent('MouseEvent');\r\n evt.initMouseEvent(event, true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\r\n }\r\n else {\r\n evt = new MouseEvent(event, {\r\n button: 0,\r\n bubbles: true,\r\n view: window,\r\n cancelable: true\r\n });\r\n }\r\n return !element.dispatchEvent(evt);\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n};\r\nexport const stopEvent = (e) => {\r\n const evt = !isEmpty(e) ? e : window.event;\r\n if (!isEmpty(evt)) {\r\n evt.returnValue = false;\r\n evt.cancelBubble = true;\r\n if (isFunction(evt.stopPropagation)) {\r\n evt.stopPropagation();\r\n }\r\n if (isFunction(evt.preventDefault)) {\r\n evt.preventDefault();\r\n }\r\n }\r\n};\r\nexport const displayText = (label, labelText) => {\r\n const element = isString(label) ? getElementAs(label) : label;\r\n if (element !== null) {\r\n element.innerHTML = labelText !== null && labelText !== void 0 ? labelText : '';\r\n }\r\n};\r\nexport const preloadImageBySource = (source) => {\r\n const image = new Image();\r\n image.src = source;\r\n};\r\nexport const preloadImage = (elem) => {\r\n return preloadImageBySource(elem.src);\r\n};\r\nlet encoder = null;\r\nexport const htmlEncode = (text) => {\r\n if (encoder === null) {\r\n encoder = document.createElement('span');\r\n }\r\n encoder.innerText = text;\r\n return encoder.innerHTML;\r\n};\r\nexport const htmlDecode = (text) => {\r\n if (encoder === null) {\r\n encoder = document.createElement('span');\r\n }\r\n encoder.innerHTML = text;\r\n return encoder.innerText;\r\n};\r\nexport const randomInRange = (from, to) => Math.floor(Math.random() * (to - from + 1) + from);\r\nexport const getTopFrame = () => {\r\n try {\r\n try {\r\n const topdomain = top === null || top === void 0 ? void 0 : top.location.hostname;\r\n if (isString(topdomain)) {\r\n return top;\r\n }\r\n }\r\n catch (e) { }\r\n let curWindow = self;\r\n let windowCnt = 0;\r\n while (curWindow != curWindow.parent && windowCnt++ < 32) {\r\n try {\r\n const parentdomain = curWindow.parent.location.hostname;\r\n if (isString(parentdomain)) {\r\n curWindow = curWindow.parent;\r\n continue;\r\n }\r\n }\r\n catch (e) { }\r\n return curWindow;\r\n }\r\n return curWindow;\r\n }\r\n catch (e) {\r\n return self;\r\n }\r\n};\r\nexport const doesObjectExist = (objectName) => {\r\n if (isString(objectName)) {\r\n const objectNameParts = objectName.split('.');\r\n if (objectNameParts.length > 0) {\r\n let conditionFullfilled = true;\r\n let context = window;\r\n for (let i = 0; i < objectNameParts.length; i++) {\r\n if (context !== null &&\r\n (objectNameParts[i] in context &&\r\n typeof (context[objectNameParts[i]]) !== 'undefined')) {\r\n context = context[objectNameParts[i]];\r\n }\r\n else {\r\n conditionFullfilled = false;\r\n break;\r\n }\r\n }\r\n return conditionFullfilled;\r\n }\r\n }\r\n return false;\r\n};\r\nexport const awaitObject = (objectName, timeout) => {\r\n return new Promise((resolve, reject) => {\r\n if (doesObjectExist(objectName)) {\r\n resolve();\r\n return;\r\n }\r\n const startTime = getCurrentTime();\r\n const objectWaitInterval = setInterval(() => {\r\n if (doesObjectExist(objectName)) {\r\n clearInterval(objectWaitInterval);\r\n resolve();\r\n return;\r\n }\r\n else if (timeout !== undefined) {\r\n const currentTime = getCurrentTime();\r\n if (currentTime - startTime > timeout) {\r\n clearInterval(objectWaitInterval);\r\n reject(new Error(ERROR_TIMEOUT));\r\n return;\r\n }\r\n }\r\n }, 111);\r\n });\r\n};\r\n","// Module\nvar code = \"
 
Please login
 
Email: 
Password: 
 
 
\";\n// Exports\nmodule.exports = code;","var __awaiter = (this && this.__awaiter) || function (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\nimport { filterEvent } from 'cobrowse-common/interfaces/IMonitoring';\r\nimport { isFunction, getCurrentTime } from 'cobrowse-common/modules/utils';\r\nclass AgentMonitoring {\r\n constructor() {\r\n this.debugLevel = \"1\";\r\n this.currentID = null;\r\n this.latestFlushTimeStamp = 0;\r\n this.currentBatchTime = null;\r\n this.currentBatch = [];\r\n this.monitoringID = null;\r\n this.channelID = null;\r\n this.useBeacon = false;\r\n this.url = '/webinterfaces/integrated/public/log_data.aspx';\r\n this.configure = (_debugLevel, _monitoringID, _channelID) => {\r\n this.debugLevel = _debugLevel;\r\n if (isFunction(window.addEventListener) && window.performance && performance.now) {\r\n this.monitoringID = _monitoringID;\r\n this.channelID = _channelID;\r\n }\r\n };\r\n this.syncEvent = (eventType, eventName, eventParams) => {\r\n if (Monitoring.monitoringID === null) {\r\n return;\r\n }\r\n else if (!Monitoring.filterEvent(eventType)) {\r\n return;\r\n }\r\n if (Monitoring.currentID === null) {\r\n Monitoring.currentID = Monitoring.generateID();\r\n Monitoring.currentBatchTime = new Date().getTime();\r\n }\r\n const serializedData = {\r\n ID: `${Monitoring.currentID}_${Monitoring.currentBatch.length}`,\r\n commandID: eventName,\r\n commandName: eventName,\r\n params: eventParams || {},\r\n eventTime: new Date().getTime()\r\n };\r\n serializedData.params.monitoringID = Monitoring.monitoringID;\r\n serializedData.params.channelID = Monitoring.channelID;\r\n Monitoring.currentBatch.push(serializedData);\r\n if (Monitoring.useBeacon || Monitoring.currentBatch.length > 10) {\r\n Monitoring.flush();\r\n }\r\n };\r\n this.event = (eventType, eventName, eventParams) => __awaiter(this, void 0, void 0, function* () {\r\n this.syncEvent(eventType, eventName, eventParams);\r\n });\r\n this.filterEvent = (currentEventType) => {\r\n return filterEvent(this.debugLevel, currentEventType);\r\n };\r\n this.generateID = () => {\r\n return Math.floor(Math.random() * 100001);\r\n };\r\n this.checkTime = () => {\r\n const currentStamp = performance.now();\r\n if (currentStamp - Monitoring.latestFlushTimeStamp < 10000) {\r\n return;\r\n }\r\n Monitoring.flush();\r\n };\r\n this.initPolling = () => {\r\n setInterval(this.checkTime, 3333);\r\n window.addEventListener('beforeunload', () => {\r\n if (typeof (Monitoring) !== 'undefined') {\r\n Monitoring.flush();\r\n }\r\n }, false);\r\n };\r\n this.flush = () => {\r\n if (Monitoring.monitoringID === null) {\r\n return;\r\n }\r\n Monitoring.latestFlushTimeStamp = performance.now();\r\n if (Monitoring.currentID === null) {\r\n return;\r\n }\r\n else if (Monitoring.currentBatch.length !== 0) {\r\n const sendTime = getCurrentTime();\r\n const params = `data=${JSON.stringify(Monitoring.currentBatch)}`\r\n + `&firstevent_time=${encodeURIComponent(Monitoring.currentBatchTime)}&sendevent_time=${encodeURIComponent(sendTime)}`;\r\n Monitoring.currentBatch.forEach(event => {\r\n event.time = sendTime - event.eventTime;\r\n });\r\n if (Monitoring.useBeacon) {\r\n const success = navigator.sendBeacon(Monitoring.url, params);\r\n if (!success) {\r\n Monitoring.useBeacon = false;\r\n Monitoring.initPolling();\r\n }\r\n }\r\n else {\r\n const request = new XMLHttpRequest();\r\n request.open('POST', Monitoring.url, true);\r\n request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\r\n request.send(params);\r\n }\r\n }\r\n Monitoring.currentBatch = [];\r\n Monitoring.currentID = null;\r\n };\r\n this.useBeacon = isFunction(navigator.sendBeacon);\r\n if (window.performance && performance.now) {\r\n this.latestFlushTimeStamp = performance.now();\r\n if (!this.useBeacon) {\r\n this.initPolling();\r\n }\r\n }\r\n }\r\n}\r\nexport const Monitoring = new AgentMonitoring();\r\nif (typeof window.Monitoring === 'undefined') {\r\n window.Monitoring = Monitoring;\r\n}\r\nexport const clientError = (message, url) => {\r\n Monitoring.syncEvent(\"1\", \"JavascriptError\", { JavascriptException: message, JavascriptURL: url || window.location.href });\r\n};\r\n","export class EventBus {\r\n constructor() {\r\n this.eventRegistry = {};\r\n }\r\n fireEvent(eventName, ...args) {\r\n var _a, _b;\r\n if (this.eventRegistry[eventName] === undefined) {\r\n return;\r\n }\r\n (_a = this.eventRegistry[eventName]) === null || _a === void 0 ? void 0 : _a.forEach(x => {\r\n x.method.apply(null, args);\r\n });\r\n (_b = this.eventRegistry[eventName]) === null || _b === void 0 ? void 0 : _b.forEach((x, i) => {\r\n var _a;\r\n if (x.singleUse) {\r\n (_a = this.eventRegistry[eventName]) === null || _a === void 0 ? void 0 : _a.splice(i, 1);\r\n }\r\n });\r\n }\r\n listen(event, fn) {\r\n if (event instanceof Array) {\r\n event.forEach(eventName => this.listen(eventName, fn));\r\n }\r\n else {\r\n if (this.eventRegistry[event] === undefined) {\r\n this.eventRegistry[event] = [{ method: fn, singleUse: false }];\r\n }\r\n else if (this.eventRegistry[event].indexOf({ method: fn, singleUse: false }) === -1) {\r\n this.eventRegistry[event].push({ method: fn, singleUse: false });\r\n }\r\n }\r\n }\r\n wait(event, fn) {\r\n if (event instanceof Array) {\r\n event.forEach(eventName => this.wait(eventName, fn));\r\n }\r\n else {\r\n if (this.eventRegistry[event] === undefined) {\r\n this.eventRegistry[event] = [{ method: fn, singleUse: true }];\r\n }\r\n else if (this.eventRegistry[event].indexOf({ method: fn, singleUse: true }) === -1) {\r\n this.eventRegistry[event].push({ method: fn, singleUse: true });\r\n }\r\n }\r\n }\r\n unsubscribe(eventName, fn) {\r\n var _a;\r\n (_a = this.eventRegistry[eventName]) === null || _a === void 0 ? void 0 : _a.forEach((x, i) => {\r\n var _a;\r\n if (x.method === fn) {\r\n (_a = this.eventRegistry[eventName]) === null || _a === void 0 ? void 0 : _a.splice(i, 1);\r\n }\r\n });\r\n }\r\n}\r\n","import { HttpRequest as LegacyHttpRequest } from './ajaxrequest.legacy';\r\nexport { AjaxException } from './ajaxrequest.legacy';\r\nexport class AjaxRequestClass {\r\n awaitRawResponse(method, url, bodyParams, headers, timeout) {\r\n return new Promise((resolve, reject) => {\r\n LegacyHttpRequest.requestRawXHR(method, url, bodyParams, headers, resolve, reject);\r\n });\r\n }\r\n request(method, url, bodyParams, headers, timeout) {\r\n return new Promise((resolve, reject) => {\r\n LegacyHttpRequest.request(method, url, bodyParams, headers, resolve, reject);\r\n });\r\n }\r\n send(url, headers) {\r\n return new Promise((resolve, reject) => {\r\n LegacyHttpRequest.send(url, headers, resolve, reject);\r\n });\r\n }\r\n post(url, params, headers) {\r\n return new Promise((resolve, reject) => {\r\n LegacyHttpRequest.post(url, params, headers, resolve, reject);\r\n });\r\n }\r\n}\r\nexport const HttpRequest = new AjaxRequestClass();\r\n","import { isFunction, stopEvent } from '../modules/utils';\r\nimport { SimpleDialog } from './dialog';\r\nexport class PromiseDialog extends SimpleDialog {\r\n constructor(html, options) {\r\n super(html, options);\r\n this.dialogPromise = null;\r\n this.successCallback = null;\r\n this.rejectCallback = null;\r\n this.rejectOnEscape = true;\r\n if (typeof (options === null || options === void 0 ? void 0 : options.rejectOnEscape) === 'boolean') {\r\n this.rejectOnEscape = options.rejectOnEscape;\r\n }\r\n this.keyHandler = this.keyHandler.bind(this);\r\n }\r\n hide(reason) {\r\n if (!this.isVisible()) {\r\n return;\r\n }\r\n super.hide();\r\n if (this.dialog !== null) {\r\n this.dialog.removeEventListener('keypress', this.keyHandler, false);\r\n }\r\n this.reportReject(new Error(reason !== null && reason !== void 0 ? reason : 'ERR_DIALOG_DESTROYED'));\r\n }\r\n displayAsync() {\r\n if (this.dialogPromise !== null) {\r\n return this.dialogPromise;\r\n }\r\n this.dialogPromise = new Promise((resolve, reject) => {\r\n this.successCallback = resolve;\r\n this.rejectCallback = reject;\r\n });\r\n this.display();\r\n if (this.dialog !== null) {\r\n this.dialog.addEventListener('keypress', this.keyHandler, false);\r\n }\r\n return this.dialogPromise;\r\n }\r\n keyHandler(e) {\r\n const keycode = e.which ? e.which : e.keyCode;\r\n if (keycode === 27 && this.rejectOnEscape) {\r\n stopEvent(e);\r\n this.hide('ERR_DISMISSED');\r\n return false;\r\n }\r\n return true;\r\n }\r\n reportReject(error) {\r\n if (isFunction(this.rejectCallback)) {\r\n this.rejectCallback(error);\r\n this.successCallback = null;\r\n this.dialogPromise = null;\r\n this.rejectCallback = null;\r\n }\r\n }\r\n reportRejectOrThrow(error) {\r\n if (isFunction(this.rejectCallback)) {\r\n this.reportReject(error);\r\n }\r\n else {\r\n throw error;\r\n }\r\n }\r\n}\r\n","var __awaiter = (this && this.__awaiter) || function (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\nimport LoginTemplate from './html/login-template.html';\r\nimport LoginCss from './html/css/login-template.css';\r\nimport { displayText, fireEvent, hideElement, isEmpty, isFunction, isString, isWhitespace, showElement, stopEvent } from '../modules/utils';\r\nimport { HttpRequest } from './ajaxrequest';\r\nimport { PromiseDialog } from './promiseDialog';\r\nimport { EventBus } from './eventBus';\r\nimport { getMonitoringInstance } from '../interfaces/IMonitoring';\r\nimport { CobrowseAuthEndPoint } from '../modules/endPoints';\r\nconst emailValidationRegEx = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\nclass LoginControlClass extends PromiseDialog {\r\n constructor() {\r\n var _a;\r\n super({ htmlContent: LoginTemplate, css: [{\r\n id: 'loginTemplateCss',\r\n cssContent: LoginCss\r\n }] }, {\r\n dismissOnEscape: false,\r\n enableOverlay: false,\r\n rejectOnEscape: false\r\n });\r\n this.eventBus = new EventBus();\r\n this.successCallback = null;\r\n this.rejectCallback = null;\r\n this.enableForgotPassword = false;\r\n this.enableChangePassword = false;\r\n this.mainServer = null;\r\n this.userRole = null;\r\n this.sessionID = null;\r\n this.lastErrorStatus = null;\r\n this.isEmail = (email) => emailValidationRegEx.test(email);\r\n this.onContinue = this.onContinue.bind(this);\r\n const loginButton = (_a = this.getContent()) === null || _a === void 0 ? void 0 : _a.querySelector('#btnContinue');\r\n if (loginButton !== null) {\r\n loginButton.onclick = this.onContinue;\r\n }\r\n }\r\n configure(options) {\r\n var _a;\r\n if (this.isVisible()) {\r\n this.reportRejectOrThrow(new Error('ERR_ALREADY_ACTIVE'));\r\n return;\r\n }\r\n this.configureUI(options.uiConfig);\r\n if (typeof (options === null || options === void 0 ? void 0 : options.enableChangePassword) === 'boolean') {\r\n this.enableChangePassword = options.enableChangePassword;\r\n }\r\n if (typeof (options === null || options === void 0 ? void 0 : options.enableForgotPassword) === 'boolean') {\r\n this.enableForgotPassword = options.enableForgotPassword;\r\n }\r\n if (typeof (options === null || options === void 0 ? void 0 : options.mainServer) === 'string') {\r\n this.mainServer = options.mainServer;\r\n }\r\n if (typeof options.cssContent === 'string') {\r\n const style = document.createElement('style');\r\n style.type = 'text/css';\r\n style.textContent = options.cssContent;\r\n (_a = this.getContent()) === null || _a === void 0 ? void 0 : _a.insertAdjacentHTML('afterbegin', style.outerHTML);\r\n }\r\n }\r\n authenticate(role, lsessionID) {\r\n this.setRole(role);\r\n if (isString(lsessionID)) {\r\n this.setSessionID(lsessionID);\r\n }\r\n return this.displayAsync();\r\n }\r\n displayAsync() {\r\n var _a, _b, _c;\r\n if (this.dialogPromise !== null) {\r\n return this.dialogPromise;\r\n }\r\n if (this.userRole === null) {\r\n return Promise.reject(new Error('ERR_NOT_CONFIGURED'));\r\n }\r\n const forgotPasswordRow = (_a = this.getContent()) === null || _a === void 0 ? void 0 : _a.querySelector('.forgotPassword');\r\n if (!isEmpty(forgotPasswordRow)) {\r\n if (this.enableForgotPassword) {\r\n showElement(forgotPasswordRow);\r\n const forgotPassword = forgotPasswordRow.querySelector('a');\r\n if (!isEmpty(forgotPassword)) {\r\n forgotPassword.onclick = (e) => {\r\n stopEvent(e);\r\n this.eventBus.fireEvent(3);\r\n return false;\r\n };\r\n }\r\n }\r\n else {\r\n hideElement(forgotPasswordRow);\r\n }\r\n }\r\n const changePasswordRow = (_b = this.getContent()) === null || _b === void 0 ? void 0 : _b.querySelector('.changePassword');\r\n if (!isEmpty(changePasswordRow)) {\r\n if (this.enableChangePassword) {\r\n showElement(changePasswordRow);\r\n const changePassword = changePasswordRow.querySelector('a');\r\n if (!isEmpty(changePassword)) {\r\n changePassword.onclick = (e) => {\r\n stopEvent(e);\r\n this.eventBus.fireEvent(4);\r\n return false;\r\n };\r\n }\r\n }\r\n else {\r\n hideElement(changePasswordRow);\r\n }\r\n }\r\n const promise = super.displayAsync();\r\n const login = (_c = this.getContent()) === null || _c === void 0 ? void 0 : _c.querySelector('#login');\r\n if (isEmpty(login === null || login === void 0 ? void 0 : login.value)) {\r\n this.doFocus(login);\r\n }\r\n return promise;\r\n }\r\n keyHandler(e) {\r\n if (!super.keyHandler(e)) {\r\n return false;\r\n }\r\n const keycode = e.which ? e.which : e.keyCode;\r\n if (keycode === 13) {\r\n const element = this.getContinueButton();\r\n if (isFunction(element.click)) {\r\n element.click();\r\n }\r\n else {\r\n fireEvent(element, 'click');\r\n }\r\n stopEvent(e);\r\n return false;\r\n }\r\n return true;\r\n }\r\n doFocus(element) {\r\n if (!isEmpty(element)) {\r\n try {\r\n element.focus();\r\n }\r\n catch (e) { }\r\n }\r\n }\r\n setRole(role) {\r\n this.userRole = role;\r\n }\r\n setSessionID(sessionID) {\r\n this.sessionID = sessionID;\r\n }\r\n getContinueButton() {\r\n var _a;\r\n const loginButton = (_a = this.getContent()) === null || _a === void 0 ? void 0 : _a.querySelector('#btnContinue');\r\n return loginButton;\r\n }\r\n getMessageText(messageID) {\r\n const message = this.uiConfig === null ? 'ERR_NOT_CONFIGURED' : this.uiConfig[messageID];\r\n return message;\r\n }\r\n displayError(messageID) {\r\n var _a;\r\n const message = this.getMessageText(messageID);\r\n const element = (_a = this.getContent()) === null || _a === void 0 ? void 0 : _a.querySelector('#ErrorCode');\r\n if (!isEmpty(element)) {\r\n displayText(element, message);\r\n }\r\n }\r\n onContinue(evt) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n stopEvent(evt);\r\n const loginForm = this.getContent();\r\n const login = loginForm === null || loginForm === void 0 ? void 0 : loginForm.querySelector('#login');\r\n const psw = loginForm === null || loginForm === void 0 ? void 0 : loginForm.querySelector('#password');\r\n if (isEmpty(login) || isEmpty(psw)) {\r\n this.reportRejectOrThrow(new Error('ERR_INVALID_CONTENT'));\r\n return;\r\n }\r\n const email = login.value;\r\n const password = psw.value;\r\n if (isEmpty(email)) {\r\n this.doFocus(login);\r\n this.displayError('missingEmail');\r\n return false;\r\n }\r\n else if (isEmpty(password)) {\r\n this.doFocus(psw);\r\n this.displayError('missingPassword');\r\n return false;\r\n }\r\n else if (!this.isEmail(email)) {\r\n this.doFocus(login);\r\n this.displayError('invalidEmail');\r\n return false;\r\n }\r\n else if (isWhitespace(password)) {\r\n this.doFocus(psw);\r\n this.displayError('emptyPassword');\r\n return false;\r\n }\r\n let endPoint = CobrowseAuthEndPoint;\r\n if (isString(this.mainServer)) {\r\n endPoint = `https://${this.mainServer}${endPoint}`;\r\n }\r\n let response;\r\n const headers = {\r\n 'Content-type': 'application/json',\r\n 'Role': this.userRole\r\n };\r\n if (isString(this.sessionID)) {\r\n headers['lsessionID'] = this.sessionID;\r\n }\r\n try {\r\n response = yield HttpRequest.post(endPoint, {\r\n userLogin: email,\r\n userPassword: password\r\n }, headers);\r\n }\r\n catch (err) {\r\n const apiError = err;\r\n if (!isEmpty(apiError.rawResponse)) {\r\n response = apiError.rawResponse;\r\n }\r\n else {\r\n this.eventBus.fireEvent(2, apiError);\r\n console.error(err);\r\n response = {\r\n state: \"FAIL_INVALID_LOGIN\"\r\n };\r\n }\r\n }\r\n const monitoringContext = getMonitoringInstance();\r\n const parsedResponse = isString(response) ? JSON.parse(response) : response;\r\n if (parsedResponse.state !== \"SUCCESS\" && parsedResponse.state !== \"ok\") {\r\n this.lastErrorStatus = parsedResponse.state;\r\n let messageID = null;\r\n switch (parsedResponse.state) {\r\n case \"FAIL_NOT_IN_SERVICE\":\r\n case \"FAIL_TIME_EXPIRED\":\r\n messageID = 'trialExpired';\r\n break;\r\n case \"FAIL_OVER_LIMIT\":\r\n messageID = 'maxNumberExceeded';\r\n break;\r\n case \"FAIL_RESTRICTED_IP\":\r\n messageID = 'unauthorized';\r\n break;\r\n case \"FAIL_PASSWORD_EXPIRED\":\r\n messageID = 'pwdExpired';\r\n break;\r\n case \"FAIL_TMP_LOCK\":\r\n messageID = 'failTmpLock';\r\n break;\r\n case \"FAIL_LOCK\":\r\n messageID = 'failLock';\r\n break;\r\n case \"FAIL_NOT_AGENT\":\r\n messageID = 'authorizationFailed';\r\n break;\r\n default:\r\n messageID = 'invalidEmailPassword';\r\n }\r\n if (parsedResponse.remainingAttemptCount === 1) {\r\n messageID = 'aboutToBeLocked';\r\n }\r\n this.displayError(messageID);\r\n this.eventBus.fireEvent(1, parsedResponse.state);\r\n monitoringContext === null || monitoringContext === void 0 ? void 0 : monitoringContext.syncEvent(\"1\", \"AuthenticationError\", {\r\n UserLogin: email,\r\n ErrorCode: parsedResponse.state,\r\n ErrorMessage: this.getMessageText(messageID)\r\n });\r\n }\r\n else {\r\n this.eventBus.fireEvent(0, parsedResponse.authResponse);\r\n if (isFunction(this.successCallback)) {\r\n this.successCallback(parsedResponse.authResponse);\r\n this.successCallback = null;\r\n this.rejectCallback = null;\r\n this.dialogPromise = null;\r\n this.hide();\r\n }\r\n }\r\n });\r\n }\r\n}\r\nconst loginDialog = new LoginControlClass();\r\nexport const LoginControl = {\r\n eventBus: loginDialog.eventBus,\r\n authenticate: loginDialog.authenticate.bind(loginDialog),\r\n configure: loginDialog.configure.bind(loginDialog)\r\n};\r\n","export default \"ul.noDot{list-style:none;margin-left:0 !important;padding-left:0 !important;padding-top:1em;font-size:1.1em}ul.noDot>li{display:block;padding-top:.5em}.loginForm{height:100%}.loginContainer{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAUAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQEBAQEBQYFBQUFBQUGBgcHCAcHBgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQsJCw0PDg4ODg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgH4AABAwERAAIRAQMRAf/EAE8AAQEBAQEAAAAAAAAAAAAAAAADAgEJAQEBAAAAAAAAAAAAAAAAAAAAAhABAAAAAAAAAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A9/AAATAAABMAHECYAAAJgAAAAmACYACEpgAmACYAAJgAmADSQBMAEwAATABMAEkACYAAJgAAAAmACSUAAJgAAmAACYAAJgAAAAAAmACgAJgoCYKAmCgAJgAAoCYKAAmCgJgoAACYAANoGFgCgJgoCYKAmCgJgoACYAKAAAmCgJgAoCYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/9k=);background-repeat:repeat-x;margin-left:0;margin-top:0;margin-right:0;margin-bottom:0;position:absolute;width:100%;height:100%;top:0;left:0;display:none}.optionalLinkBlock{width:20px}.loginText{font-size:11px;font-family:Trebuchet MS,Arial,Helvetica,sans-serif}.loginBlock{width:160px}.loginBoldDark{font-size:10pt;color:#404040;font-family:Verdana;font-weight:bold}.loginError{width:220px;margin-left:-30px;position:relative;margin-bottom:10px}.loginError>span{font-size:10pt;color:#eb3434;font-family:Verdana;font-weight:normal}td,th{font-family:Trebuchet MS,Arial,Helvetica,sans-serif;font-size:12px;color:#333}\";","var __awaiter = (this && this.__awaiter) || function (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\nimport { getWinWidth, getWinHeight, isFunction, getElementAs, isEmpty, isString } from 'cobrowse-common/modules/utils';\r\nimport { pushJSONToForm } from 'cobrowse-common/modules/formHelpers';\r\nimport { LoginControl } from 'cobrowse-common/components/loginControl';\r\nimport { clientError, Monitoring } from '../components/monitoring';\r\nexport const isHTML5Supported = () => {\r\n try {\r\n const validationPassed = 'postMessage' in window\r\n && 'addEventListener' in window\r\n && 'JSON' in window\r\n && 'history' in window\r\n && 'pushState' in window.history\r\n && 'keys' in Object\r\n && 'forEach' in Array.prototype\r\n && 'indexOf' in Array.prototype\r\n && 'performance' in window\r\n && 'now' in window.performance;\r\n if (!validationPassed) {\r\n return false;\r\n }\r\n const elem = document.createElement('canvas');\r\n return isFunction(elem === null || elem === void 0 ? void 0 : elem.getContext) && !isEmpty(elem.getContext('2d'));\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n};\r\nwindow.addEventListener('load', () => __awaiter(void 0, void 0, void 0, function* () {\r\n var _a, _b;\r\n const form = getElementAs('t');\r\n const ratio = (_a = window.devicePixelRatio) !== null && _a !== void 0 ? _a : 1;\r\n const dynamicParams = {\r\n ll_user_agent: navigator.userAgent,\r\n ll_screen_width: `${screen.width * ratio}`,\r\n ll_screen_height: `${screen.height * ratio}`,\r\n ll_java_enabled: `${navigator.javaEnabled()}`,\r\n ll_cookies_enabled: `${navigator.cookieEnabled}`\r\n };\r\n const sizeX = getWinWidth();\r\n const sizeY = getWinHeight();\r\n const zeroWindowSize = (sizeX === 0 && sizeY === 0);\r\n if (isHTML5Supported()) {\r\n dynamicParams.ll_html5_enabled = 'yes';\r\n }\r\n if (zeroWindowSize) {\r\n dynamicParams.ll_zero_size = zeroWindowSize.toString();\r\n }\r\n if ((_b = document) === null || _b === void 0 ? void 0 : _b.documentMode) {\r\n dynamicParams.ll_doc_mode = document.documentMode.toString();\r\n }\r\n if (isString(document === null || document === void 0 ? void 0 : document.compatMode)) {\r\n dynamicParams.ll_comp_mode = document.compatMode;\r\n }\r\n if (loginRequired) {\r\n Monitoring.configure(debugLevel, requestParams.sessionID);\r\n try {\r\n LoginControl.configure({\r\n uiConfig: uiMessages\r\n });\r\n dynamicParams.jwt = yield LoginControl.authenticate(\"agent\", luserRequest);\r\n }\r\n catch (ex) {\r\n clientError(`Authentication failed with ${ex}`);\r\n console.error(ex);\r\n throw ex;\r\n }\r\n }\r\n pushJSONToForm(form, dynamicParams);\r\n form.submit();\r\n}), false);\r\n","import MaskTemplate from './html/modal-mask.html';\r\nimport MaskTemplateCss from './html/css/modal-mask.css';\r\nimport { stopEvent, hideElement, getWinWidth, showElement, isEmpty, isString, getElementAs } from '../modules/utils';\r\nexport const ERROR_NULL_CONTENTS = new Error('Contents must not be NULL');\r\nexport const templateRegEx = /\\${(.+?)}/g;\r\nconst docLoadPromise = (resolve) => {\r\n if (!isEmpty(document.body)) {\r\n resolve();\r\n return;\r\n }\r\n setTimeout(docLoadPromise, 111, resolve);\r\n};\r\nconst firstChild = (div) => {\r\n const items = Array.prototype.slice.call(div.children);\r\n for (let count = 0; count < items.length; count++) {\r\n if (items[count].nodeType === Node.ELEMENT_NODE) {\r\n return items[count];\r\n }\r\n }\r\n return null;\r\n};\r\nexport const createDialogContainer = (html, css) => {\r\n const div = document.createElement('div');\r\n div.innerHTML = html;\r\n if (!isEmpty(css)) {\r\n css.forEach(descriptor => {\r\n let style = null;\r\n if (!isEmpty(descriptor.id)) {\r\n style = div.querySelector(`#${descriptor.id}`);\r\n if (style !== null) {\r\n div.removeChild(style);\r\n style = null;\r\n }\r\n }\r\n docLoadPromise(() => {\r\n style = document.createElement('style');\r\n style.id = descriptor.id;\r\n style.setAttribute('id', descriptor.id);\r\n style.textContent = descriptor.cssContent;\r\n document.body.appendChild(style);\r\n });\r\n });\r\n }\r\n const dialog = firstChild(div);\r\n if (dialog === null) {\r\n throw ERROR_NULL_CONTENTS;\r\n }\r\n docLoadPromise(() => {\r\n document.body.appendChild(dialog);\r\n });\r\n return dialog;\r\n};\r\nexport class CustomizableDialog {\r\n constructor() {\r\n this.processTemplateText = (templatedText, uiConfig) => {\r\n if (templatedText.search(templateRegEx) > -1) {\r\n let processedValue = templatedText;\r\n let matchResult = templateRegEx.exec(templatedText);\r\n while (matchResult !== null) {\r\n const templateID = matchResult[1];\r\n if (templateID !== undefined) {\r\n const [itemID, defaultDescriptor] = templateID.split(/,\\s*default\\:\\s*/);\r\n const value = uiConfig[itemID.trim()];\r\n if (isString(value) && !isEmpty(value.trim())) {\r\n processedValue = processedValue.replace(matchResult[0], value.trim());\r\n }\r\n else if (defaultDescriptor !== undefined) {\r\n processedValue = processedValue.replace(matchResult[0], defaultDescriptor);\r\n }\r\n else {\r\n processedValue = processedValue.replace(matchResult[0], '');\r\n }\r\n }\r\n matchResult = templateRegEx.exec(templatedText);\r\n }\r\n return processedValue;\r\n }\r\n return templatedText;\r\n };\r\n this.applyAttributes = (customAttributes, uiConfig, el) => {\r\n const attrCollection = customAttributes.split(';');\r\n attrCollection.forEach(attrDescriptor => {\r\n const [attrName, attrText] = attrDescriptor.split(':');\r\n if (attrName !== undefined && attrText !== undefined) {\r\n const attributeName = attrName.trim();\r\n const value = this.processTemplateText(attrText, uiConfig);\r\n const existingValue = el.getAttribute(attributeName);\r\n el.setAttribute(attributeName, value || existingValue || '');\r\n }\r\n });\r\n };\r\n this.customizeSingleElement = (el, uiConfig) => {\r\n const data = el.dataset;\r\n if (!isEmpty(data)) {\r\n if ('customText' in data) {\r\n const textTemplate = data['customText'];\r\n const textContents = this.processTemplateText(textTemplate, uiConfig);\r\n el.innerText = textContents || el.innerText;\r\n }\r\n if ('customHtml' in data) {\r\n const htmlTemplate = data['customHtml'];\r\n const textContents = this.processTemplateText(htmlTemplate, uiConfig);\r\n el.innerHTML = textContents || el.innerHTML;\r\n }\r\n if ('attributes' in data) {\r\n const customAttributes = data['attributes'];\r\n this.applyAttributes(customAttributes, uiConfig, el);\r\n }\r\n }\r\n };\r\n this.processUIElement = (el, uiConfig) => {\r\n this.customizeSingleElement(el, uiConfig);\r\n if (el.nodeType === Node.ELEMENT_NODE) {\r\n const children = el.children !== undefined ? el.children : el.childNodes;\r\n Array.prototype.slice.call(children).forEach((child) => {\r\n if (child.nodeType === Node.ELEMENT_NODE) {\r\n this.processUIElement(child, uiConfig);\r\n }\r\n });\r\n }\r\n };\r\n this.setImageRoot = (contents, imageRootPath) => {\r\n if (contents === null) {\r\n throw ERROR_NULL_CONTENTS;\r\n }\r\n const path = imageRootPath.endsWith('/') ? imageRootPath.substr(0, imageRootPath.length - 1) : imageRootPath;\r\n const images = this.getImageElements(contents);\r\n console.log('Received list of images: ', images, 'path is: ', path);\r\n images.forEach(elem => {\r\n var _a;\r\n const src = (_a = elem.getAttribute('src')) !== null && _a !== void 0 ? _a : elem.src;\r\n if (isString(src) && src.startsWith('/')) {\r\n elem.src = path + src;\r\n }\r\n });\r\n };\r\n this.getImageElements = (contents) => {\r\n const images = [];\r\n if (contents !== null) {\r\n Array.prototype.slice.call(contents.childNodes).forEach((elem) => this.retrieveImages(elem, images));\r\n }\r\n return images;\r\n };\r\n }\r\n retrieveImages(rootElem, images) {\r\n if (rootElem instanceof HTMLImageElement) {\r\n images.push(rootElem);\r\n }\r\n else {\r\n Array.prototype.slice.call(rootElem.childNodes).forEach((childNode) => this.retrieveImages(childNode, images));\r\n }\r\n }\r\n}\r\nexport class SimpleDialog extends CustomizableDialog {\r\n constructor(html, options) {\r\n super();\r\n this.mask = null;\r\n this.dialog = null;\r\n this.visibility = false;\r\n this.uiConfig = null;\r\n this.options = {\r\n enableOverlay: true,\r\n dismissOnEscape: true,\r\n dismissOnMaskClick: true\r\n };\r\n this.isVisible = () => this.visibility;\r\n let defaultMask = {\r\n id: 'LL_modal_mask', htmlContent: MaskTemplate, css: [{ cssContent: MaskTemplateCss, id: 'modalMaskCss' }]\r\n };\r\n if (typeof (options === null || options === void 0 ? void 0 : options.dismissOnEscape) === 'boolean') {\r\n this.options.dismissOnEscape = options.dismissOnEscape;\r\n }\r\n if (typeof (options === null || options === void 0 ? void 0 : options.dismissOnMaskClick) === 'boolean') {\r\n this.options.dismissOnMaskClick = options.dismissOnMaskClick;\r\n }\r\n if (typeof (options === null || options === void 0 ? void 0 : options.enableOverlay) === 'boolean') {\r\n this.options.enableOverlay = options.enableOverlay;\r\n }\r\n if ((options === null || options === void 0 ? void 0 : options.maskControl) !== undefined && this.options.enableOverlay) {\r\n defaultMask = options.maskControl;\r\n }\r\n this.mask = null;\r\n this.dialog = null;\r\n if (this.options.enableOverlay === true) {\r\n if (isString(defaultMask.id)) {\r\n this.mask = getElementAs(defaultMask.id);\r\n }\r\n if (this.mask === null) {\r\n this.mask = createDialogContainer(defaultMask.htmlContent, defaultMask.css);\r\n }\r\n }\r\n if (isString(html.id)) {\r\n this.dialog = getElementAs(html.id);\r\n }\r\n if (this.dialog === null) {\r\n this.dialog = createDialogContainer(html.htmlContent, html.css);\r\n }\r\n this.escapeListener = this.escapeListener.bind(this);\r\n this.hideListener = this.hideListener.bind(this);\r\n this.reset();\r\n }\r\n attachCloseControl(element) {\r\n element.addEventListener('click', this.hideListener, false);\r\n }\r\n reset() {\r\n this.hide();\r\n }\r\n configureUI(uiConfig) {\r\n this.uiConfig = uiConfig;\r\n if (this.dialog === null) {\r\n throw ERROR_NULL_CONTENTS;\r\n }\r\n this.processUIElement(this.dialog, this.uiConfig);\r\n }\r\n center() {\r\n if (this.dialog === null) {\r\n throw ERROR_NULL_CONTENTS;\r\n }\r\n const element = this.dialog;\r\n const wndWidth = getWinWidth();\r\n const objWidth = element.offsetWidth || 0;\r\n element.style.left = `${(wndWidth - objWidth) / 2 - 20}px`;\r\n }\r\n display() {\r\n var _a;\r\n if (this.visibility) {\r\n return;\r\n }\r\n if (this.dialog === null) {\r\n throw ERROR_NULL_CONTENTS;\r\n }\r\n if (this.options.enableOverlay === true && this.mask !== null) {\r\n showElement(this.mask);\r\n if (this.options.dismissOnMaskClick === true) {\r\n this.mask.addEventListener('click', this.hideListener, false);\r\n }\r\n }\r\n if (this.options.dismissOnEscape === true) {\r\n window.addEventListener('keydown', this.escapeListener, false);\r\n }\r\n showElement(this.dialog);\r\n if (!isEmpty((_a = this.dialog) === null || _a === void 0 ? void 0 : _a.offsetWidth)) {\r\n this.visibility = true;\r\n this.center();\r\n }\r\n else {\r\n hideElement(this.dialog);\r\n docLoadPromise(() => {\r\n showElement(this.dialog);\r\n this.center.bind(this);\r\n this.visibility = true;\r\n });\r\n }\r\n }\r\n hide() {\r\n if (this.dialog === null) {\r\n throw ERROR_NULL_CONTENTS;\r\n }\r\n if (this.options.enableOverlay === true && this.mask !== null) {\r\n hideElement(this.mask);\r\n this.mask.removeEventListener('click', this.hideListener, false);\r\n }\r\n hideElement(this.dialog);\r\n this.visibility = false;\r\n window.removeEventListener('keydown', this.escapeListener, false);\r\n }\r\n getContent() {\r\n return this.dialog;\r\n }\r\n getMask() {\r\n return this.mask;\r\n }\r\n hideListener(e) {\r\n stopEvent(e);\r\n this.hide();\r\n return false;\r\n }\r\n escapeListener(e) {\r\n const keyCode = e.keyCode || e.which;\r\n const code = e.code;\r\n if (keyCode !== 27 && code !== 'Escape') {\r\n return;\r\n }\r\n this.hideListener(e);\r\n }\r\n}\r\n","export default \"#LL_modal_mask{display:none;left:0;width:0;height:0;opacity:0;pointer-events:none}\";","export const MonitoringEndPoint = '/webinterfaces/integrated/public/log_data.aspx';\r\nexport const CobrowseAuthEndPoint = '/cobrowse/auth';\r\nexport const CobrowseSessionEndPoint = '/cobrowse/session';\r\nexport const CobrowseJoinEndPoint = '/cobrowse/session/join';\r\nexport const CobrowseACBShellEndPoint = '/cobrowse/acb';\r\n","// Module\nvar code = \"
\";\n// Exports\nmodule.exports = code;","import { isString, getElementAs, isFunction, htmlEncode } from './utils';\r\nexport const pushJSONToForm = (form, dynamicParams, cleanUp) => {\r\n var _a;\r\n const frm = isString(form) ? getElementAs(form) : form;\r\n if (frm !== null) {\r\n const children = frm.children;\r\n if (cleanUp === true) {\r\n for (let i = children.length - 1; i >= 0; i--) {\r\n frm.removeChild(children[i]);\r\n }\r\n }\r\n for (const key in dynamicParams) {\r\n if (dynamicParams.hasOwnProperty(key)) {\r\n const currentValue = (_a = dynamicParams[key]) !== null && _a !== void 0 ? _a : '';\r\n let found = false;\r\n for (let j = 0; j < children.length; j++) {\r\n if (children[j].id === key) {\r\n children[j].value = currentValue;\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (!found) {\r\n appendFormWith(frm, key, currentValue);\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexport const appendFormWith = (form, id, value) => {\r\n try {\r\n const translatedValue = value !== null && value !== void 0 ? value : '';\r\n let inputElement = isFunction(form.querySelector) ?\r\n form.querySelector(`#${id}`) : getElementAs(id);\r\n if (inputElement !== null) {\r\n inputElement.value = htmlEncode(translatedValue);\r\n }\r\n else {\r\n if (navigator.userAgent.indexOf('MSIE 7') !== -1) {\r\n try {\r\n inputElement = document.createElement(``);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n if (inputElement === null) {\r\n inputElement = document.createElement('input');\r\n inputElement.type = 'hidden';\r\n inputElement.name = htmlEncode(id);\r\n inputElement.id = htmlEncode(id);\r\n inputElement.value = htmlEncode(translatedValue);\r\n }\r\n form.appendChild(inputElement);\r\n }\r\n }\r\n catch (e) { }\r\n};\r\nexport const post = (form, getURL, cleanForm = true, target) => {\r\n const [url, parameters] = getURL.split('?');\r\n let paramPairs = [];\r\n const params = {};\r\n if (parameters !== undefined) {\r\n paramPairs = parameters.split('&');\r\n paramPairs.forEach(pair => {\r\n const [key, value] = pair.split('=');\r\n params[key] = value === undefined ? '' : decodeURIComponent(value);\r\n });\r\n }\r\n pushJSONToForm(form, params, cleanForm);\r\n form.method = 'post';\r\n form.action = url;\r\n form.setAttribute('lastKnownURL', getURL);\r\n if (target !== undefined) {\r\n form.target = target.name;\r\n }\r\n form.submit();\r\n};\r\n","export const getMonitoringInstance = () => {\r\n const Cobrowse = window.Cobrowse;\r\n if (typeof Cobrowse === 'object' && Cobrowse !== null) {\r\n return Cobrowse.Monitoring;\r\n }\r\n else if ('Monitoring' in window) {\r\n return window.Monitoring;\r\n }\r\n else {\r\n return undefined;\r\n }\r\n};\r\nexport const filterEvent = (allowedDebugLevel, currentEventType) => {\r\n switch (currentEventType) {\r\n case \"1\":\r\n return allowedDebugLevel !== \"0\";\r\n case \"10\":\r\n return allowedDebugLevel !== \"0\" && allowedDebugLevel !== \"1\";\r\n case \"100\":\r\n return allowedDebugLevel === \"100\" || allowedDebugLevel === \"1000\";\r\n case \"1000\":\r\n return allowedDebugLevel === \"1000\";\r\n }\r\n return false;\r\n};\r\n","export const STORAGE_IE_TIME_KEY = 'ie11_time';\r\nexport const STORAGE_IE_TIME_STRING = `;${STORAGE_IE_TIME_KEY}=`;\r\nexport const STORAGE_EVENT_CMD = 'll.event';\r\nexport const STORAGE_RESPONSE_CMD = 'll.response';\r\nexport const STORAGE_READY_CMD = 'ready';\r\nexport const ERROR_STORAGE_UNAVAILABLE = 'ERR_STORAGE_UNAVAILABLE';\r\nexport const ERROR_ENVIRONMENT = 'ERR_UNSUPPORTED_ENV';\r\nexport const ERROR_PROMISE_TIMEOUT = 'ERR_PROMISE_TIMEOUT';\r\nexport const ERROR_REQUEST_TIMEOUT = 'ERR_REQUEST_TIMEOUT';\r\nexport const ERROR_TIMEOUT = 'ERR_TIMEOUT';\r\nexport const ERROR_NO_ARGS = 'ERR_MISSING_ARGS';\r\nexport const ERROR_CONTEXT_LOCKED = 'ERR_ALREADY_LOCKED';\r\nexport const ERROR_NO_STORAGE_MANAGER = 'ERR_STORAGE_MANAGER_MISSING';\r\nexport const ERROR_OPERATION_FAILED = 'ERR_FAILED';\r\nexport const ERROR_COMPONENT_MISSING = 'REQUIRED_COMPONENT_MISSING';\r\nexport const ERROR_NETWORK_TIMEOUT = 'ERROR_NETWORK_TIMEOUT';\r\nexport const INSTANCE_CONFIG_ERROR = 'ERROR_INSTANCE_NOT_CONFIGURED';\r\nexport const ERROR_REVERSE_ALREADY_ACTIVE = 'ERR_REVERSE_ALREADY_ACTIVE';\r\nexport const ERROR_REVERSE_VIEW_INACTIVE = 'ERR_VIEW_INACTIVE';\r\nexport const SESSION_IN_PROGRESS = 'IN_PROGRESS';\r\n","import { ERROR_REQUEST_TIMEOUT } from '../modules/constants';\r\nimport { isEmpty, isString, isFunction } from '../modules/utils';\r\nimport { getMonitoringInstance } from '../interfaces/IMonitoring';\r\nconst requestTimeout = 10000;\r\nexport class AjaxException {\r\n constructor(exceptionStatus, exceptionText, exceptionMessage) {\r\n this.status = 0;\r\n this.statusText = null;\r\n this.message = null;\r\n this.rawResponse = null;\r\n this.status = exceptionStatus;\r\n this.statusText = exceptionText;\r\n if (exceptionMessage !== undefined) {\r\n this.message = exceptionMessage;\r\n }\r\n }\r\n}\r\nexport class LegacyAjaxRequestClass {\r\n requestRawXHR(method, url, bodyParams, headers, successCallback, errorCallback, timeout) {\r\n const thisRequestTimeout = typeof timeout === 'number' ? timeout : requestTimeout;\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(method, url, true);\r\n xhr.onload = () => {\r\n clearTimeout(requestTimer);\r\n requestTimer = 0;\r\n if (isFunction(successCallback)) {\r\n successCallback(xhr);\r\n }\r\n };\r\n xhr.onerror = () => {\r\n clearTimeout(requestTimer);\r\n requestTimer = 0;\r\n const failedURL = !isEmpty(url) ? url.split('?')[0] : url;\r\n let errorMessage = '';\r\n if (!isEmpty(xhr.statusText)) {\r\n errorMessage = xhr.statusText;\r\n }\r\n else {\r\n errorMessage = `Request to ${failedURL} failed on the network level`;\r\n }\r\n const monitoringContext = getMonitoringInstance();\r\n monitoringContext === null || monitoringContext === void 0 ? void 0 : monitoringContext.syncEvent(\"1\", \"SessionError\", {\r\n ErrorCode: \"NetworkRequestFailed\",\r\n ErrorMessage: errorMessage\r\n });\r\n const error = new AjaxException(xhr.status, errorMessage);\r\n if (isFunction(errorCallback)) {\r\n errorCallback(error);\r\n }\r\n else {\r\n throw error;\r\n }\r\n };\r\n let requestTimer = setTimeout((closureURL) => {\r\n try {\r\n xhr.onreadystatechange = () => { };\r\n xhr.abort();\r\n }\r\n catch (err) { }\r\n const failedURL = !isEmpty(closureURL) ? closureURL.split('?')[0] : '';\r\n const monitoringContext = getMonitoringInstance();\r\n monitoringContext === null || monitoringContext === void 0 ? void 0 : monitoringContext.syncEvent(\"1\", \"NetworkTimeout\", {\r\n OperationType: \"MainNetworkTimeout\",\r\n Description: 'Request timed out', RemoteURL: failedURL\r\n });\r\n const error = new AjaxException(-1, ERROR_REQUEST_TIMEOUT, ERROR_REQUEST_TIMEOUT);\r\n if (isFunction(errorCallback)) {\r\n errorCallback(error);\r\n }\r\n else {\r\n throw error;\r\n }\r\n }, thisRequestTimeout, url);\r\n let jsonEncoding = false;\r\n let hasContentType = false;\r\n if (!isEmpty(headers) && typeof headers === 'object') {\r\n Object.keys(headers).forEach(key => {\r\n if (key.toLowerCase() === 'content-type') {\r\n hasContentType = true;\r\n const value = headers[key];\r\n if (isString(value)) {\r\n if (value.toLowerCase().indexOf('json') !== -1) {\r\n jsonEncoding = true;\r\n }\r\n else if (value.toLowerCase().indexOf('javascript') !== -1) {\r\n jsonEncoding = true;\r\n }\r\n }\r\n }\r\n xhr.setRequestHeader(key, headers[key]);\r\n });\r\n }\r\n if (method === \"POST\" && !hasContentType) {\r\n xhr.setRequestHeader('Content-type', 'application/json');\r\n jsonEncoding = true;\r\n }\r\n let body = null;\r\n if (!isEmpty(bodyParams) && bodyParams.constructor === Object) {\r\n if (jsonEncoding) {\r\n body = JSON.stringify(bodyParams);\r\n }\r\n else {\r\n const dictionary = bodyParams;\r\n body = Object.keys(dictionary).map(key => {\r\n return '\\\"' + encodeURIComponent(key) + '\\\"' + '=' + encodeURIComponent(dictionary[key]);\r\n }).join('&');\r\n }\r\n }\r\n else {\r\n body = bodyParams;\r\n }\r\n xhr.send(body);\r\n }\r\n request(method, url, bodyParams, headers, resolveCallback, rejectCallback, timeout) {\r\n const successProcessor = (xhr) => {\r\n var _a, _b;\r\n if (xhr.status >= 200 && xhr.status < 400) {\r\n if (isFunction(resolveCallback)) {\r\n resolveCallback(xhr.responseXML || xhr.response || xhr.responseText, xhr);\r\n }\r\n }\r\n else {\r\n const failedURL = !isEmpty(url) ? url.split('?')[0] : url;\r\n const message = `Request to ${failedURL} failed with code ${xhr.status}`;\r\n const monitoringContext = getMonitoringInstance();\r\n monitoringContext === null || monitoringContext === void 0 ? void 0 : monitoringContext.syncEvent(\"1\", \"SessionError\", {\r\n ErrorCode: \"NetworkRequestFailed\",\r\n ErrorMessage: message\r\n });\r\n const error = new AjaxException(xhr.status, xhr.statusText, message);\r\n error.rawResponse = (_b = (_a = xhr.responseXML) !== null && _a !== void 0 ? _a : xhr.response) !== null && _b !== void 0 ? _b : xhr.responseText;\r\n if (isFunction(rejectCallback)) {\r\n rejectCallback(error);\r\n }\r\n else {\r\n throw error;\r\n }\r\n }\r\n };\r\n this.requestRawXHR(method, url, bodyParams, headers, successProcessor, rejectCallback, timeout);\r\n }\r\n send(url, headers, resolveCallback, rejectCallback) {\r\n this.request(\"GET\", url, undefined, headers, resolveCallback, rejectCallback);\r\n }\r\n post(url, params, headers, resolveCallback, rejectCallback) {\r\n this.request(\"POST\", url, params, headers, resolveCallback, rejectCallback);\r\n }\r\n}\r\nexport const HttpRequest = new LegacyAjaxRequestClass();\r\n"],"sourceRoot":""}