{"version":3,"sources":["WebWorkerBundle.js"],"names":["angular","module","factory","lut","Array","apply","length","map","_","i","toString","getRandomValuesFunc","window","crypto","getRandomValues","dvals","Uint32Array","d0","d1","d2","d3","Math","random","uuid","object","generate","myApp","$rootScope","UuidService","GetIp","webWorker","blob","Blob","self","this","GetChildListsToAssociate","apiUrl","token","controller","action","xhr","result","method","XMLHttpRequest","open","setRequestHeader","onreadystatechange","readyState","status","JSON","parse","responseText","send","e","message","addEventListener","workerResult","data","messageId","close","mainElementId","resultDiferences","oldChildsToGet","newChildsToGet","childList","mainElement","m","element","GetNotNullChildsFromObject","CompareChildsAndReturnDiferences","r","push","Child","Values","c","child","property","propertyValue","endsWith","hasOwnProperty","v","childValue","Id","slice","Description","AssociateChildsToMainElement","postMessage","stringify","String","prototype","search","this_len","substring","childs","previousChildList","actualChildList","notFoundControllers","indexOf","concat","unique","a","j","splice","replace","blobURL","URL","webkitURL","createObjectURL","type","onWebWorkerResponse","$apply","$broadcast","CreateNewWorker","Worker","InitiatePageWorker","webWorkerConfiguration","WebWorkerFunction","Token","Parameters"],"mappings":"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","file":"../WebWorkerBundle.1739284541000.js","sourcesContent":["(function () {\n let service = angular.module('chrisjsherm.service.uuid', []);\n\n service.factory('UuidService', UuidService);\n\n function UuidService() {\n\n /**\n * Generates a rfc4122 UUID based on:\n * http://stackoverflow.com/a/21963136/1579559.\n */\n const lut = Array.apply(null, { length: 256 }).map(\n function (_, i) {\n return (i < 16 ? '0' : '') + (i).toString(16);\r\n }\n );\n\n var formatUuid = function (object) {\n return lut[object.d0 & 0xff] + lut[object.d0 >> 8 & 0xff] + lut[object.d0 >> 16 & 0xff] + lut[object.d0 >> 24 & 0xff] + '-' +\n lut[object.d1 & 0xff] + lut[object.d1 >> 8 & 0xff] + '-' +\n lut[object.d1 >> 16 & 0x0f | 0x40] + lut[object.d1 >> 24 & 0xff] + '-' +\n lut[object.d2 & 0x3f | 0x80] + lut[object.d2 >> 8 & 0xff] + '-' +\n lut[object.d2 >> 16 & 0xff] + lut[object.d2 >> 24 & 0xff] +\n lut[object.d3 & 0xff] + lut[object.d3 >> 8 & 0xff] +\n lut[object.d3 >> 16 & 0xff] + lut[object.d3 >> 24 & 0xff];\n };\n\n const getRandomValuesFunc = window.crypto && window.crypto.getRandomValues ?\n function() {\n const dvals = new Uint32Array(4);\n window.crypto.getRandomValues(dvals);\n return {\n d0: dvals[0],\n d1: dvals[1],\n d2: dvals[2],\n d3: dvals[3]\n };\n } :\n function () {\n return {\n d0: Math.random() * 0x100000000 >>> 0,\n d1: Math.random() * 0x100000000 >>> 0,\n d2: Math.random() * 0x100000000 >>> 0,\n d3: Math.random() * 0x100000000 >>> 0\n };\n };\n\n const uuid = function () {\n return formatUuid(getRandomValuesFunc());\r\n };\n\n var service = {\n generate: generateUuid\n };\n\n return service;\n\n function generateUuid() {\n return uuid();\n }\n }\n})();\n(function () {\r\n myApp.factory('WebWorkerService', WebWorkerService);\r\n\r\n function WebWorkerService($rootScope, UuidService, GetIp) {\r\n\r\n function WorkerFunction() {\r\n let self = this;\r\n\r\n self.addEventListener('message', receiveMessage, false);\r\n\r\n function receiveMessage(message) {\r\n var data = JSON.parse(message.data),\r\n workerResult;\r\n const messageId = data[1];\r\n\r\n switch (data[2]) {\r\n case 'Close':\r\n self.close();\r\n break;\r\n case 'AssociateChildsToMainElement':\r\n workerResult = AssociateChildsToMainElement(data[0], data[3], data[4][0], data[4][1], data[4][2]);\r\n break;\r\n case 'LoadServerData':\r\n workerResult = LoadServerData(data[0], data[3], data[4][0], data[4][1]);\r\n break;\r\n }\r\n\r\n self.postMessage(JSON.stringify(\r\n [\r\n messageId,\r\n workerResult\r\n ]\r\n ));\r\n }\r\n\r\n function GetChildListsToAssociate(apiUrl, token, controller, action) {\r\n var xhr;\r\n var result;\r\n var method = \"ListEnablesBasic\";\r\n\r\n if (typeof action !== \"undefined\") {\r\n method = action;\r\n }\r\n\r\n try {\r\n xhr = new XMLHttpRequest();\r\n xhr.open('Get', apiUrl + '/api/' + controller + '/' + method, false);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n xhr.setRequestHeader('Authorization', token);\r\n xhr.onreadystatechange = function () {\r\n if ((xhr.readyState === 4) && (xhr.status === 200)) {\r\n result = JSON.parse(xhr.responseText);\r\n }\r\n };\r\n xhr.send();\r\n return result;\r\n } catch (e) {\r\n result = e.message;\r\n }\r\n }\r\n\r\n if (!String.prototype.endsWith) {\r\n String.prototype.endsWith = function (search, this_len) {\r\n if ((typeof this_len === \"undefined\") || (this_len > this.length)) {\r\n this_len = this.length;\r\n }\r\n return this.substring(this_len - search.length, this_len) === search;\r\n };\r\n }\r\n\r\n function GetNotNullChildsFromObject(object, mainElementId) {\r\n var childs = [];\r\n\r\n for (property in object) {\r\n var propertyValue = object[property];\r\n\r\n if (property.endsWith(\"Id\") && (property !== mainElementId) && object.hasOwnProperty(property) && (typeof propertyValue !== \"undefined\") && (propertyValue !== null)) {\r\n childs.push(property.slice(0, -2));\r\n }\r\n }\r\n\r\n return childs;\r\n }\r\n\r\n Array.prototype.unique = function () {\r\n var a = this.concat();\r\n\r\n for (var i = 0; i < a.length; ++i) {\r\n for (var j = i + 1; j < a.length; ++j) {\r\n if (a[i] === a[j])\r\n a.splice(j--, 1);\r\n }\r\n }\r\n\r\n return a;\r\n };\r\n\r\n function CompareChildsAndReturnDiferences(previousChildList, actualChildList) {\r\n var notFoundControllers = [];\r\n\r\n for (var i = 0; i < actualChildList.length; i++) {\r\n var child = actualChildList[i];\r\n\r\n if (previousChildList.indexOf(child) === -1) {\r\n notFoundControllers.push(child);\r\n }\r\n }\r\n\r\n var result = [notFoundControllers, previousChildList.concat(actualChildList).unique()];\r\n\r\n return result;\r\n }\r\n\r\n function AssociateChildsToMainElement(apiUrl, token, mainElementId, controller, action) {\r\n var oldChildsToGet = [];\r\n var newChildsToGet = [];\r\n var resultDiferences;\r\n var childList = [];\r\n mainElement = GetChildListsToAssociate(apiUrl, token, controller, action);\r\n\r\n for (var m = 0; m < mainElement.length; m++) {\r\n var element = mainElement[m];\r\n\r\n newChildsToGet = GetNotNullChildsFromObject(element, mainElementId);\r\n resultDiferences = CompareChildsAndReturnDiferences(oldChildsToGet, newChildsToGet);\r\n oldChildsToGet = resultDiferences[1];\r\n\r\n if (resultDiferences[0].length) {\r\n for (var r = 0; r < resultDiferences[0].length; r++) {\r\n childList.push({\r\n Child: resultDiferences[0][r] + \"Id\", Values: GetChildListsToAssociate(apiUrl, token, resultDiferences[0][r])\r\n });\r\n }\r\n }\r\n\r\n for (var c = 0; c < childList.length; c++) {\r\n var child = childList[c];\r\n\r\n for (property in element) {\r\n var propertyValue = element[property];\r\n\r\n if (property.endsWith(\"Id\") && (property !== mainElementId) && element.hasOwnProperty(property) && (property === child.Child) && (typeof propertyValue !== \"undefined\") && (propertyValue !== null)) {\r\n for (var v = 0; v < child.Values.length; v++) {\r\n var childValue = child.Values[v];\r\n\r\n if (childValue.Id === propertyValue) {\r\n element[property.slice(0, -2)] = {};\r\n element[property.slice(0, -2)][property] = childValue.Id;\r\n element[property.slice(0, -2)][\"Description\"] = childValue.Description;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return mainElement;\r\n }\r\n\r\n function LoadServerData(apiUrl, token, controller, action) {\r\n return GetChildListsToAssociate(apiUrl, token, controller, action);\r\n }\r\n }\r\n\r\n var dataObj = '(' + WorkerFunction + ')();';\r\n var blob = new Blob([dataObj.replace('\"use strict\";', '')]);\r\n var blobURL = (window.URL ? URL : webkitURL).createObjectURL(blob, {\r\n type: 'application/javascript; charset=utf-8'\r\n });\r\n var webWorker;\r\n\r\n var serviceInterface = {\r\n CreateNewWorker: CreateNewWorker,\r\n InitiatePageWorker: InitiatePageWorker\r\n };\r\n\r\n function activate() {\r\n webWorker.addEventListener(\r\n 'message',\r\n onWebWorkerResponse,\r\n false\r\n );\r\n }\r\n\r\n function InitiatePageWorker(webWorkerConfiguration) {\r\n const messageId = UuidService.generate();\r\n webWorker.postMessage(\r\n JSON.stringify([\r\n GetIp(),\r\n messageId,\r\n webWorkerConfiguration.WebWorkerFunction,\r\n webWorkerConfiguration.Token,\r\n webWorkerConfiguration.Parameters\r\n ])\r\n );\r\n\r\n return messageId;\r\n }\r\n\r\n function CreateNewWorker() {\r\n webWorker = new Worker(blobURL);\r\n\r\n activate();\r\n }\r\n\r\n function onWebWorkerResponse(message) {\r\n var data = JSON.parse(message.data),\r\n messageId = data[0],\r\n result = data[1];\r\n\r\n $rootScope.$apply($rootScope.$broadcast(\r\n messageId,\r\n result\r\n ));\r\n\r\n webWorker.postMessage(JSON.stringify([\r\n GetIp(),\r\n messageId,\r\n 'Close'\r\n ]));\r\n }\r\n\r\n return serviceInterface;\r\n }\r\n})();"]}